--- phase: 02-tier-1-2-providers plan: 04 type: execute wave: 1 depends_on: [] files_modified: - providers/lepton.yaml - providers/modal.yaml - providers/cerebrium.yaml - providers/novita.yaml - providers/sambanova.yaml - providers/octoai.yaml - providers/friendli.yaml - pkg/providers/definitions/lepton.yaml - pkg/providers/definitions/modal.yaml - pkg/providers/definitions/cerebrium.yaml - pkg/providers/definitions/novita.yaml - pkg/providers/definitions/sambanova.yaml - pkg/providers/definitions/octoai.yaml - pkg/providers/definitions/friendli.yaml autonomous: true requirements: [PROV-02] must_haves: truths: - "Registry loads final 7 Tier 2 inference platform providers" - "All 14 Tier 2 providers from PROV-02 are defined after this plan" - "Generic-format providers use strong keyword lists for AC pre-filtering" artifacts: - path: "providers/modal.yaml" provides: "Modal token_id/token_secret keyword anchors" contains: "MODAL_TOKEN" - path: "providers/sambanova.yaml" provides: "SambaNova keyword-anchored pattern" contains: "sambanova" - path: "providers/novita.yaml" provides: "NovitaAI keyword-anchored pattern" contains: "novita" key_links: - from: "keywords[]" to: "Aho-Corasick pre-filter" via: "NewRegistry" pattern: "keywords" --- Create the remaining 7 Tier 2 inference platform provider YAMLs: Lepton AI, Modal, Cerebrium, NovitaAI, SambaNova, OctoAI, Friendli. All are generic-format providers requiring strong keyword lists. Purpose: Complete PROV-02 (14/14 Tier 2 providers). Output: 14 YAML files (7 providers x 2 locations). Addresses PROV-02 requirement. @$HOME/.claude/get-shit-done/workflows/execute-plan.md @$HOME/.claude/get-shit-done/templates/summary.md @.planning/ROADMAP.md @.planning/phases/02-tier-1-2-providers/02-RESEARCH.md @pkg/providers/schema.go Schema: pkg/providers/schema.go. Dual-location required. Go RE2 regex only. All providers in this plan: tier 2, confidence low (no distinctive prefix). Task 1: Lepton, Modal, Cerebrium, Novita YAMLs providers/lepton.yaml, providers/modal.yaml, providers/cerebrium.yaml, providers/novita.yaml, pkg/providers/definitions/lepton.yaml, pkg/providers/definitions/modal.yaml, pkg/providers/definitions/cerebrium.yaml, pkg/providers/definitions/novita.yaml - pkg/providers/schema.go - .planning/phases/02-tier-1-2-providers/02-RESEARCH.md sections "7. Lepton", "8. Modal", "10. Cerebrium", "11. NovitaAI" Create providers/lepton.yaml: ```yaml format_version: 1 name: lepton display_name: Lepton AI (DGX Cloud Lepton) tier: 2 last_verified: "2026-04-05" keywords: - "lepton" - "lepton.ai" - "LEPTON_API_TOKEN" - "dgx-cloud-lepton" patterns: - regex: '[A-Za-z0-9]{32,}' entropy_min: 4.0 confidence: low verify: method: GET url: "" headers: {} valid_status: [] invalid_status: [] ``` Create providers/modal.yaml: ```yaml format_version: 1 name: modal display_name: Modal tier: 2 last_verified: "2026-04-05" keywords: - "modal" - "modal.com" - "MODAL_TOKEN_ID" - "MODAL_TOKEN_SECRET" - "ak-" - "as-" patterns: - regex: 'ak-[A-Za-z0-9]{20,}' entropy_min: 3.5 confidence: medium - regex: 'as-[A-Za-z0-9]{20,}' entropy_min: 3.5 confidence: medium verify: method: GET url: "" headers: {} valid_status: [] invalid_status: [] ``` Create providers/cerebrium.yaml: ```yaml format_version: 1 name: cerebrium display_name: Cerebrium tier: 2 last_verified: "2026-04-05" keywords: - "cerebrium" - "cerebrium.ai" - "CEREBRIUM_API_KEY" - "api.cortex.cerebrium.ai" patterns: - regex: '[A-Za-z0-9]{32,}' entropy_min: 4.0 confidence: low verify: method: GET url: "" headers: {} valid_status: [] invalid_status: [] ``` Create providers/novita.yaml: ```yaml format_version: 1 name: novita display_name: NovitaAI tier: 2 last_verified: "2026-04-05" keywords: - "novita" - "novita.ai" - "NOVITA_API_KEY" - "api.novita.ai" patterns: - regex: '[A-Za-z0-9_\-]{32,}' entropy_min: 4.0 confidence: low verify: method: GET url: https://api.novita.ai/v3/openai/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Copy all four VERBATIM to pkg/providers/definitions/. cd /home/salva/Documents/apikey && for f in lepton modal cerebrium novita; do diff providers/$f.yaml pkg/providers/definitions/$f.yaml || exit 1; done && go test ./pkg/providers/... -count=1 - All 8 files exist - `grep -q 'MODAL_TOKEN_ID' providers/modal.yaml` - `grep -q 'cerebrium.ai' providers/cerebrium.yaml` - `grep -q 'api.novita.ai' providers/novita.yaml` - `grep -q 'lepton.ai' providers/lepton.yaml` - All dual-location diffs empty - `go test ./pkg/providers/... -count=1` passes 4 providers created and dual-located. Task 2: SambaNova, OctoAI, Friendli YAMLs providers/sambanova.yaml, providers/octoai.yaml, providers/friendli.yaml, pkg/providers/definitions/sambanova.yaml, pkg/providers/definitions/octoai.yaml, pkg/providers/definitions/friendli.yaml - pkg/providers/schema.go - .planning/phases/02-tier-1-2-providers/02-RESEARCH.md sections "12. SambaNova", "13. OctoAI", "14. Friendli" Create providers/sambanova.yaml: ```yaml format_version: 1 name: sambanova display_name: SambaNova tier: 2 last_verified: "2026-04-05" keywords: - "sambanova" - "sambanova.ai" - "SAMBANOVA_API_KEY" - "sambastudio" - "api.sambanova.ai" patterns: - regex: '[a-f0-9\-]{36}' entropy_min: 3.5 confidence: low - regex: '[A-Za-z0-9]{40,}' entropy_min: 4.0 confidence: low verify: method: GET url: https://api.sambanova.ai/v1/models headers: Authorization: "Bearer {KEY}" valid_status: [200] invalid_status: [401, 403] ``` Create providers/octoai.yaml: ```yaml format_version: 1 name: octoai display_name: OctoAI tier: 2 last_verified: "2026-04-05" keywords: - "octoai" - "octo.ai" - "OCTOAI_TOKEN" - "OCTOAI_API_KEY" patterns: - regex: '[A-Za-z0-9\-_\.]{40,}' entropy_min: 4.0 confidence: low verify: method: GET url: "" headers: {} valid_status: [] invalid_status: [] ``` Create providers/friendli.yaml: ```yaml format_version: 1 name: friendli display_name: Friendli tier: 2 last_verified: "2026-04-05" keywords: - "friendli" - "friendli.ai" - "FRIENDLI_TOKEN" - "flp_" patterns: - regex: 'flp_[A-Za-z0-9]{20,}' entropy_min: 3.5 confidence: medium - regex: '[A-Za-z0-9]{32,}' entropy_min: 4.0 confidence: low verify: method: GET url: "" headers: {} valid_status: [] invalid_status: [] ``` Copy all three VERBATIM to pkg/providers/definitions/. cd /home/salva/Documents/apikey && for f in sambanova octoai friendli; do diff providers/$f.yaml pkg/providers/definitions/$f.yaml || exit 1; done && go test ./pkg/providers/... -count=1 - All 6 files exist - `grep -q 'sambanova' providers/sambanova.yaml` - `grep -q 'octo.ai' providers/octoai.yaml` - `grep -q 'FRIENDLI_TOKEN' providers/friendli.yaml` - All dual-location diffs empty - `go test ./pkg/providers/... -count=1` passes - After this task: `ls pkg/providers/definitions/*.yaml | wc -l` >= 27 (huggingface + 26 tier1/2) Final 3 Tier 2 providers created. All 14 PROV-02 providers complete. After plan: `grep -l 'tier: 2' providers/*.yaml | wc -l` equals 14. - 7 generic-format Tier 2 providers created - Dual-location verified - Registry loads cleanly - Tier 2 total = 14 providers After completion, create `.planning/phases/02-tier-1-2-providers/02-04-SUMMARY.md`