---
phase: 02-tier-1-2-providers
plan: 02
subsystem: providers
tags: [providers, yaml, tier-1, keyword-anchoring]
requires: [pkg/providers/schema.go, pkg/providers/loader.go, pkg/providers/registry.go]
provides:
  - Azure OpenAI 32-hex pattern provider definition
  - Meta AI (Llama API) LLM|-prefixed token provider definition
  - Cohere 40-char token provider definition
  - Mistral AI 32-char keyword-anchored provider definition
  - Inflection AI (Pi) opaque-token provider definition
  - AI21 Labs 32+-char keyword-anchored provider definition
affects: [providers/, pkg/providers/definitions/]
tech_stack:
  added: []
  patterns: [yaml-provider-definitions, dual-location-embed, keyword-ac-prefilter]
key_files:
  created:
    - providers/azure-openai.yaml
    - providers/meta-ai.yaml
    - providers/cohere.yaml
    - providers/mistral.yaml
    - providers/inflection.yaml
    - providers/ai21.yaml
    - pkg/providers/definitions/azure-openai.yaml
    - pkg/providers/definitions/meta-ai.yaml
    - pkg/providers/definitions/cohere.yaml
    - pkg/providers/definitions/mistral.yaml
    - pkg/providers/definitions/inflection.yaml
    - pkg/providers/definitions/ai21.yaml
  modified: []
decisions:
  - Low-confidence regex (generic character classes) compensated by strong keyword lists for Aho-Corasick pre-filtering
  - Azure OpenAI and Inflection use empty verify blocks (no stable public endpoint / requires deployment URL)
  - Meta AI pattern anchors on LLM| literal prefix to reduce false positives
metrics:
  duration: 1m
  tasks: 2
  files: 12
  completed: "2026-04-05T11:11:55Z"
requirements: [PROV-01]
---

# Phase 2 Plan 2: Tier 1 Medium/Low-Confidence Providers Summary

Added 6 Tier 1 LLM provider YAML definitions (Azure OpenAI, Meta AI, Cohere, Mistral, Inflection, AI21) with strong keyword lists anchoring generic opaque-token regex patterns, completing Tier 1 at 12/12.

## What Was Built

Created 12 YAML files (6 providers x dual location) covering the remaining Tier 1 providers that lack distinctive high-confidence prefix patterns. These providers rely on Aho-Corasick keyword pre-filtering (azure, cohere, mistral, jamba, PI_API_KEY, etc.) to reduce false positives since their key formats are opaque hex/alphanumeric tokens.

- **Azure OpenAI**: 32-hex pattern, no verify endpoint (requires per-deployment URL)
- **Meta AI**: `LLM|` literal prefix anchor, api.llama.com verify endpoint
- **Cohere**: 40-char alphanumeric, api.cohere.ai verify endpoint
- **Mistral AI**: 32-char alphanumeric, api.mistral.ai verify endpoint
- **Inflection AI**: 40+-char token, no public verify endpoint
- **AI21 Labs**: 32+-char alphanumeric, api.ai21.com/studio verify endpoint

All providers dual-located for Go embed.FS (pkg/providers/definitions/) and user visibility (providers/). Registry loader test passes with all 9 providers (3 existing + 6 new).

## Tasks Completed

| Task | Name                                    | Commit  | Files |
|------|-----------------------------------------|---------|-------|
| 1    | Azure OpenAI, Meta AI, Cohere YAMLs     | bca8422 | 6     |
| 2    | Mistral, Inflection, AI21 YAMLs         | adad602 | 6     |

## Verification

- `go test ./pkg/providers/... -count=1` -- PASS (0.037s)
- `diff` on all 6 provider pairs -- no drift between providers/ and pkg/providers/definitions/
- `grep -l 'tier: 1' providers/*.yaml | wc -l` -- 12 (matches Tier 1 complete criterion)

## Deviations from Plan

None - plan executed exactly as written.

## Decisions Made

- **Empty verify blocks for Azure OpenAI and Inflection**: Azure OpenAI requires per-deployment URL (`https://{resource}.openai.azure.com/...`) which cannot be hardcoded; Inflection lacks a stable public verify endpoint. Both use empty `url: ""` and empty status arrays to signal "verification unsupported" for Phase 5.
- **Low confidence on all 6**: Generic character-class regex patterns would cause high false-positive rates without keyword anchoring, so confidence is marked `low` and the AC automaton carries the detection weight.

## Key Links

- Provider `keywords[]` feeds `NewRegistry()` which builds the Aho-Corasick DFA across all providers
- Aho-Corasick pre-filter gates per-pattern regex evaluation (established in Phase 01)

## Self-Check: PASSED

All 12 files verified present:
- providers/{azure-openai,meta-ai,cohere,mistral,inflection,ai21}.yaml -- FOUND
- pkg/providers/definitions/{azure-openai,meta-ai,cohere,mistral,inflection,ai21}.yaml -- FOUND

Commits verified:
- bca8422 -- FOUND
- adad602 -- FOUND
