feat(05-04): extend Tier 1 provider verify specs

- 12 Tier 1 providers now carry success_codes, failure_codes, rate_limit_codes
- {{KEY}} template in headers or URL (double-brace canonical form)
- metadata_paths added where provider APIs return useful metadata
- Anthropic switched to POST /v1/messages with minimal body
- Perplexity gains JSON body, content-type header
- Inflection verify URL left empty (no public endpoint)
- Dual-location sync preserved: providers/ mirrors pkg/providers/definitions/
This commit is contained in:
salvacybersec
2026-04-05 15:46:30 +03:00
parent 3ceccd98ad
commit f3ae8f0b09
24 changed files with 148 additions and 78 deletions

View File

@@ -17,6 +17,7 @@ verify:
method: GET
url: https://api.ai21.com/studio/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]

View File

@@ -15,10 +15,16 @@ patterns:
entropy_min: 3.5
confidence: high
verify:
method: GET
url: https://api.anthropic.com/v1/models
method: POST
url: https://api.anthropic.com/v1/messages
headers:
x-api-key: "{KEY}"
x-api-key: "{{KEY}}"
anthropic-version: "2023-06-01"
valid_status: [200]
invalid_status: [401, 403]
content-type: "application/json"
body: '{"model":"claude-haiku-4-5","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429, 529]
metadata_paths:
model: "model"
stop_reason: "stop_reason"

View File

@@ -17,6 +17,9 @@ verify:
method: GET
url: https://api.cohere.ai/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "models.0.name"

View File

@@ -17,6 +17,9 @@ verify:
method: GET
url: https://api.deepseek.com/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "data.0.id"

View File

@@ -14,7 +14,9 @@ patterns:
confidence: high
verify:
method: GET
url: https://generativelanguage.googleapis.com/v1/models?key={KEY}
headers: {}
valid_status: [200]
invalid_status: [400, 401, 403]
url: https://generativelanguage.googleapis.com/v1/models?key={{KEY}}
success_codes: [200]
failure_codes: [400, 401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "models.0.name"

View File

@@ -16,6 +16,9 @@ verify:
method: GET
url: https://api.groq.com/openai/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "data.0.id"

View File

@@ -16,6 +16,6 @@ patterns:
verify:
method: GET
url: ""
headers: {}
valid_status: []
invalid_status: []
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]

View File

@@ -17,6 +17,9 @@ verify:
method: GET
url: https://api.mistral.ai/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "data.0.id"

View File

@@ -23,6 +23,10 @@ verify:
method: GET
url: https://api.openai.com/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "data.0.id"
object_type: "object"

View File

@@ -16,6 +16,9 @@ verify:
method: POST
url: https://api.perplexity.ai/chat/completions
headers:
Authorization: "Bearer {KEY}"
valid_status: [200, 400]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
content-type: "application/json"
body: '{"model":"sonar","messages":[{"role":"user","content":"hi"}],"max_tokens":1}'
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]

View File

@@ -17,6 +17,9 @@ verify:
method: GET
url: https://api.together.xyz/v1/models
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
first_model: "0.id"

View File

@@ -15,6 +15,10 @@ verify:
method: GET
url: https://api.x.ai/v1/api-key
headers:
Authorization: "Bearer {KEY}"
valid_status: [200]
invalid_status: [401, 403]
Authorization: "Bearer {{KEY}}"
success_codes: [200]
failure_codes: [401, 403]
rate_limit_codes: [429]
metadata_paths:
name: "name"
acls: "acls"