diff --git a/manifest.ts b/manifest.ts index 3829b80..aa82704 100644 --- a/manifest.ts +++ b/manifest.ts @@ -25,7 +25,7 @@ import type { PluginManifest } from '@@/plugins/manifest'; * * Nothing shells out. The sidecar reaches whisper.cpp with `fetch`, the same as the code it replaces did. * - * ── No `web/` ── + * ── No `web/`, and no settings screen of its own ── * * This plugin ships no dashboard route and no dock tile — `plugin.web` gates the tile, and a * backend-only plugin has nothing to pin one to. It is reached from a task's right-click menu and by an @@ -41,6 +41,25 @@ export const manifest: PluginManifest = { icon: 'AudioLines', color: '#f97316', + /** + * The whisper.cpp server this talks to. Declared rather than rendered: this plugin ships no `web/`, so + * without a declaration there is nowhere to set it and the only way in is an HTTP call somebody has to + * know about — which is the state it shipped in. + * + * The platform renders the form and PUTs to this plugin's own `/config`. It stores nothing: the URL + * lives where this plugin keeps it, and validation against the server still happens here. + */ + settings: [ + { + key: 'url', + label: 'Whisper server', + hint: 'The whisper.cpp server to transcribe through. Checked before it is saved.', + type: 'url', + required: true, + placeholder: 'http://127.0.0.1:8178', + }, + ], + permissions: [ { key: 'transcribe',