make the clide command surface self-describing

Parity guarantees a verb exists for every UI action, but a verb is
unreachable if nothing advertises it. Add `clide capabilities` — it
reflects the live dispatcher registry to JSON (subsystem, verb, arg
schema) so the surface is discoverable and can't drift from what
dispatches. A thin /clide skill points Claude at it rather than
hard-coding a verb list, so new panels become reachable the moment
they register.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-06 09:57:16 +02:00
co-authored by Claude
parent 13187d3994
commit 3cf77f40ed
7 changed files with 159 additions and 6 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ import 'package:clide/src/ipc/schema_v1.dart';
/// Umbrella commands — single-token names with no subsystem.verb
/// split. Match the IDs the dispatcher exposes directly.
const Set<String> _umbrellaCommands = {'status', 'tail', 'version', 'ping'};
const Set<String> _umbrellaCommands = {'status', 'tail', 'version', 'ping', 'capabilities'};
/// Sealed result of translating argv. Caller (the IPC server, or the
/// C client wrapper in T-126) handles either branch.