---
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
