--- phase: 02-tier-1-2-providers plan: 03 subsystem: providers tags: [providers, tier-2, inference-platforms, yaml] requires: - pkg/providers/schema.go - pkg/providers/loader.go (embed.FS) provides: - Groq provider (gsk_ high-confidence) - Replicate provider (r8_ high-confidence) - Anyscale Endpoints provider (esecret_ high-confidence) - Together AI provider (keyword + generic) - Fireworks AI provider (fw_ + generic) - Baseten provider (keyword + Api-Key) - DeepInfra provider (keyword + generic) affects: - registry AC automaton (7 new keyword sets) tech-stack: added: [] patterns: - Dual-location YAML (providers/ + pkg/providers/definitions/) - RE2 regex patterns only - Keyword-anchored detection for generic-key providers key-files: created: - providers/groq.yaml - providers/replicate.yaml - providers/anyscale.yaml - providers/together.yaml - providers/fireworks.yaml - providers/baseten.yaml - providers/deepinfra.yaml - pkg/providers/definitions/groq.yaml - pkg/providers/definitions/replicate.yaml - pkg/providers/definitions/anyscale.yaml - pkg/providers/definitions/together.yaml - pkg/providers/definitions/fireworks.yaml - pkg/providers/definitions/baseten.yaml - pkg/providers/definitions/deepinfra.yaml modified: [] decisions: - Together/Baseten/DeepInfra use low-confidence generic patterns — rely on keyword pre-filter for specificity - Fireworks has two patterns (fw_ medium + generic low) to catch both historical and current key formats - Baseten verify uses "Api-Key {KEY}" header (not Bearer) per provider docs metrics: duration: ~3min completed: 2026-04-05 requirements: [PROV-02] --- # Phase 2 Plan 3: Tier 2 Inference Platforms (First Half) Summary Created 7 Tier 2 inference platform provider YAMLs (Groq, Replicate, Anyscale, Together AI, Fireworks AI, Baseten, DeepInfra) covering high-confidence prefix patterns and keyword-anchored fallbacks for generic-key providers, dual-located for Go embed. ## What Was Built **High-confidence prefixed providers (3):** - **Groq** — `gsk_[a-zA-Z0-9]{52}`, verify via `/openai/v1/models` - **Replicate** — `r8_[0-9A-Za-z\-_]{37}`, verify via `/v1/predictions` - **Anyscale Endpoints** — `esecret_[A-Za-z0-9_\-]{20,}`, verify via Anyscale models endpoint **Keyword-anchored providers (4):** - **Together AI** — 64-hex pattern (low confidence), 5 context keywords including both .xyz and .ai hosts - **Fireworks AI** — dual pattern: `fw_[A-Za-z0-9]{20,}` (medium) + 40+ alphanumeric (low) - **Baseten** — generic 40+ alphanumeric, uses `Api-Key` auth header instead of Bearer - **DeepInfra** — generic 32+ alphanumeric with keyword anchoring on `deepinfra`/`api.deepinfra.com` All 14 files (7 providers × 2 locations) are byte-identical across the dual locations required by Go embed. ## Verification - `diff providers/$f.yaml pkg/providers/definitions/$f.yaml` — all 7 pairs byte-identical - `go test ./pkg/providers/... -count=1` — PASS - `grep -l 'tier: 2' providers/*.yaml | wc -l` — 13 (cumulative with plans 01/02) ## Deviations from Plan None - plan executed exactly as written. ## Commits - `a1f0b2d` — feat(02-03): add Groq, Replicate, Anyscale provider YAMLs - `5e36f24` — feat(02-03): add Together, Fireworks, Baseten, DeepInfra provider YAMLs ## Self-Check: PASSED - providers/groq.yaml — FOUND - providers/replicate.yaml — FOUND - providers/anyscale.yaml — FOUND - providers/together.yaml — FOUND - providers/fireworks.yaml — FOUND - providers/baseten.yaml — FOUND - providers/deepinfra.yaml — FOUND - pkg/providers/definitions/{groq,replicate,anyscale,together,fireworks,baseten,deepinfra}.yaml — all FOUND - Commit a1f0b2d — FOUND - Commit 5e36f24 — FOUND