mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 09:39:25 +00:00
* feat: add contextual plugin help to Ask OpenClaw Punchcard-Session: crisp-summit-lantern-qk * fix(ui): redact URL credentials from plugin Ask drafts Reuse the canonical URL policy in the bounded help-value scan, including serialized map keys. Keep the editable config value intact and prove rejected Save → Ask → Send on desktop and phone. Punchcard-Session: crisp-summit-lantern-qk * test: reuse the complete Custodian context fixture Punchcard-Session: crisp-summit-lantern-qk * refactor(ui): narrow plugin help selection input Accept only the loaded selection facts consumed by the help controller, removing its type dependency on the complete page renderer model. Punchcard-Session: crisp-summit-lantern-qk * perf(ui): keep plugin help preparation off startup Separate synchronous dock state and session ownership from lazy question preparation and session persistence helpers. Register plugin-only English copy with its lazy consumers while preserving source catalog order. Punchcard-Session: crisp-summit-lantern-qk * style: normalize contextual help rebase spacing Punchcard-Session: crisp-summit-lantern-qk * perf(ui): keep attachment media preparation off startup Punchcard-Session: crisp-summit-lantern-qk * test(qwen): fix the clock for default timeout assertions Punchcard-Session: crisp-summit-lantern-qk * test(ui): wait for side-chat opening focus Punchcard-Session: crisp-summit-lantern-qk * chore(pr): deduplicate wrapper dependency inventory Punchcard-Session: crisp-summit-lantern-qk * test(qwen): drop superseded default-clock workaround * feat: group bundled plugin settings by authored manifest metadata Punchcard-Session: crisp-summit-lantern-qk
64 lines
1.6 KiB
JSON
64 lines
1.6 KiB
JSON
{
|
|
"id": "inworld",
|
|
"categories": ["voice"],
|
|
"capabilityCatalogEntry": "./capability-catalog.ts",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"enabledByDefault": true,
|
|
"name": "Inworld",
|
|
"description": "Inworld streaming text-to-speech (MP3, OGG_OPUS, PCM telephony).",
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "inworld",
|
|
"envVars": ["INWORLD_API_KEY"]
|
|
}
|
|
]
|
|
},
|
|
"contracts": {
|
|
"speechProviders": ["inworld"]
|
|
},
|
|
"configGroups": [
|
|
{
|
|
"id": "inworld-connection",
|
|
"title": "Inworld connection",
|
|
"order": 10,
|
|
"properties": ["apiKey", "baseUrl"]
|
|
},
|
|
{
|
|
"id": "voice-generation",
|
|
"title": "Voice generation",
|
|
"order": 20,
|
|
"properties": ["voiceId", "modelId", "temperature"]
|
|
}
|
|
],
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"apiKey": {
|
|
"type": "string",
|
|
"description": "Inworld API key. Must be the Base64 credential string from the Inworld dashboard (used as Authorization: Basic <apiKey>). Falls back to INWORLD_API_KEY env var."
|
|
},
|
|
"baseUrl": {
|
|
"type": "string",
|
|
"description": "Override Inworld API base URL (default https://api.inworld.ai)."
|
|
},
|
|
"voiceId": {
|
|
"type": "string",
|
|
"description": "Voice identifier (default Sarah)."
|
|
},
|
|
"modelId": {
|
|
"type": "string",
|
|
"description": "TTS model id (default inworld-tts-1.5-max)."
|
|
},
|
|
"temperature": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 2,
|
|
"description": "Sampling temperature 0..2."
|
|
}
|
|
}
|
|
}
|
|
}
|