Files
openclaw/extensions/openrouter/openclaw.plugin.json
Peter Steinberger 8310c565e0 feat(onboarding): add provider sign-in (#104502)
* feat(onboarding): add provider sign-in flows

* fix(oauth): keep callback compatibility

* fix(onboarding): reconcile lost auth outcomes

* fix(onboarding): lock auth cancellation at commit

* fix(onboarding): close provider auth lifecycle gaps

* fix(onboarding): make terminal auth failures dismissable

* fix(onboarding): satisfy native app checks

* fix(onboarding): reconcile absent auth sessions

* fix(onboarding): bound provider auth sessions

* fix(onboarding): open provider auth links safely

* test(onboarding): use scanner-safe auth fixtures

* revert: keep established onboarding auth fixtures

* fix(onboarding): close provider auth cancellation gaps

* fix(gateway): retain uncollected wizard results

* fix(onboarding): bind provider reconciliation attempt

* fix(i18n): avoid guessing moved string identities

* style(onboarding): normalize remote auth choices efficiently

* fix(protocol): refresh optional provider auth choices

* test(gateway): cover provider auth dispatch order

* refactor(macos): split onboarding setup support

* fix(macos): refresh merged native checks
2026-07-11 13:00:17 -07:00

103 lines
2.5 KiB
JSON

{
"id": "openrouter",
"icon": "https://cdn.simpleicons.org/openrouter",
"activation": {
"onStartup": false
},
"enabledByDefault": true,
"providers": ["openrouter"],
"modelIdNormalization": {
"providers": {
"openrouter": {
"prefixWhenBare": "openrouter"
}
}
},
"modelPricing": {
"providers": {
"openrouter": {
"openRouter": {
"passthroughProviderModel": true
},
"liteLLM": false
}
}
},
"providerEndpoints": [
{
"endpointClass": "openrouter",
"hostSuffixes": ["openrouter.ai"]
}
],
"providerRequest": {
"providers": {
"openrouter": {
"family": "openrouter"
}
}
},
"setup": {
"providers": [
{
"id": "openrouter",
"envVars": ["OPENROUTER_API_KEY"]
}
]
},
"providerAuthChoices": [
{
"provider": "openrouter",
"method": "api-key",
"choiceId": "openrouter-api-key",
"appGuidedSecret": true,
"choiceLabel": "OpenRouter API key",
"groupId": "openrouter",
"groupLabel": "OpenRouter",
"groupHint": "OAuth or API key",
"onboardingScopes": ["text-inference", "music-generation"],
"optionKey": "openrouterApiKey",
"cliFlag": "--openrouter-api-key",
"cliOption": "--openrouter-api-key <key>",
"cliDescription": "OpenRouter API key"
},
{
"provider": "openrouter",
"method": "oauth",
"choiceId": "openrouter-oauth",
"appGuidedAuth": "oauth",
"choiceLabel": "OpenRouter OAuth",
"choiceHint": "Browser sign-in",
"groupId": "openrouter",
"groupLabel": "OpenRouter",
"groupHint": "OAuth or API key",
"onboardingScopes": ["text-inference", "music-generation"],
"onboardingFeatured": true
}
],
"contracts": {
"mediaUnderstandingProviders": ["openrouter"],
"imageGenerationProviders": ["openrouter"],
"musicGenerationProviders": ["openrouter"],
"videoGenerationProviders": ["openrouter"],
"speechProviders": ["openrouter"],
"usageProviders": ["openrouter"]
},
"mediaUnderstandingProviderMetadata": {
"openrouter": {
"capabilities": ["image", "audio"],
"defaultModels": {
"image": "auto",
"audio": "openai/whisper-large-v3-turbo"
},
"autoPriority": {
"audio": 35
}
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}