openclaw/extensions/inworld/openclaw.plugin.json
Patrick Erichsen 9c32bda3c0
feat: group bundled plugin settings by authored manifest metadata (#149331)
* 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
2026-09-16 22:03:41 -07:00

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."
}
}
}
}