8.1 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
| phase | plan | type | wave | depends_on | files_modified | autonomous | requirements | must_haves | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 02-tier-1-2-providers | 04 | execute | 1 |
|
true |
|
|
Purpose: Complete PROV-02 (14/14 Tier 2 providers).
Output: 14 YAML files (7 providers x 2 locations).
Addresses PROV-02 requirement.
<execution_context> @$HOME/.claude/get-shit-done/workflows/execute-plan.md @$HOME/.claude/get-shit-done/templates/summary.md </execution_context>
@.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: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:
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:
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:
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
<acceptance_criteria>
- 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
</acceptance_criteria>
4 providers created and dual-located.
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:
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:
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
<acceptance_criteria>
- 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)
</acceptance_criteria>
Final 3 Tier 2 providers created. All 14 PROV-02 providers complete.
<success_criteria>
- 7 generic-format Tier 2 providers created
- Dual-location verified
- Registry loads cleanly
- Tier 2 total = 14 providers </success_criteria>