refactor: derive bundled contracts from extension manifests

This commit is contained in:
Peter Steinberger
2026-03-27 01:16:11 +00:00
parent b75be09144
commit ba7804df50
36 changed files with 640 additions and 422 deletions

View File

@@ -41,6 +41,9 @@
"cliDescription": "Anthropic API key"
}
],
"contracts": {
"mediaUnderstandingProviders": ["anthropic"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -15,6 +15,9 @@
"help": "Brave Search mode: web or llm-context."
}
},
"contracts": {
"webSearchProviders": ["brave"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -1,6 +1,9 @@
{
"id": "deepgram",
"mediaUnderstandingProviders": ["deepgram"],
"contracts": {
"mediaUnderstandingProviders": ["deepgram"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -10,6 +10,9 @@
"help": "SafeSearch level for DuckDuckGo results."
}
},
"contracts": {
"webSearchProviders": ["duckduckgo"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -1,6 +1,9 @@
{
"id": "elevenlabs",
"speechProviders": ["elevenlabs"],
"contracts": {
"speechProviders": ["elevenlabs"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -11,6 +11,9 @@
"placeholder": "exa-..."
}
},
"contracts": {
"webSearchProviders": ["exa"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -21,6 +21,9 @@
"cliDescription": "fal API key"
}
],
"contracts": {
"imageGenerationProviders": ["fal"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -15,6 +15,10 @@
"help": "Firecrawl Search base URL override."
}
},
"contracts": {
"webSearchProviders": ["firecrawl"],
"tools": ["firecrawl_search", "firecrawl_scrape"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -44,6 +44,11 @@
"help": "Gemini model override for web search grounding."
}
},
"contracts": {
"mediaUnderstandingProviders": ["google"],
"imageGenerationProviders": ["google"],
"webSearchProviders": ["gemini"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -1,6 +1,9 @@
{
"id": "groq",
"mediaUnderstandingProviders": ["groq"],
"contracts": {
"mediaUnderstandingProviders": ["groq"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -1,6 +1,9 @@
{
"id": "microsoft",
"speechProviders": ["microsoft"],
"contracts": {
"speechProviders": ["microsoft"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -57,6 +57,10 @@
"cliDescription": "MiniMax API key"
}
],
"contracts": {
"mediaUnderstandingProviders": ["minimax", "minimax-portal"],
"imageGenerationProviders": ["minimax", "minimax-portal"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -20,6 +20,9 @@
"cliDescription": "Mistral API key"
}
],
"contracts": {
"mediaUnderstandingProviders": ["mistral"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -48,6 +48,10 @@
"help": "Kimi model override."
}
},
"contracts": {
"mediaUnderstandingProviders": ["moonshot"],
"webSearchProviders": ["kimi"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -33,6 +33,11 @@
"cliDescription": "OpenAI API key"
}
],
"contracts": {
"speechProviders": ["openai"],
"mediaUnderstandingProviders": ["openai", "openai-codex"],
"imageGenerationProviders": ["openai"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -19,6 +19,9 @@
"help": "Optional Sonar/OpenRouter model override."
}
},
"contracts": {
"webSearchProviders": ["perplexity"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -16,6 +16,10 @@
"help": "Tavily API base URL override."
}
},
"contracts": {
"webSearchProviders": ["tavily"],
"tools": ["tavily_search", "tavily_extract"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -34,6 +34,9 @@
"help": "Include inline markdown citations in Grok responses."
}
},
"contracts": {
"webSearchProviders": ["grok"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -76,6 +76,9 @@
"cliDescription": "Z.AI API key"
}
],
"contracts": {
"mediaUnderstandingProviders": ["zai"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,