mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-20 00:02:11 +00:00
Add get_commands RPC for headless clients (#995)
* Add get_commands RPC for headless clients Headless clients like Emacs can now query which commands are available. Previously they could only discover file-based prompt templates by scanning the filesystem; extension commands and skills were invisible. The response includes each command's name, description, and source (extension, template, or skill). Commands appear in the same order as the TUI's autocomplete: extension commands first, then templates, then skills. Built-in TUI commands (/settings, /fork, etc.) are excluded since they require the interactive UI. Commands like /compact have dedicated RPC equivalents instead. * Add location and path to get_commands response Clients can show where commands come from (user/project/path) and display file paths in tooltips. The data is already available on templates and skills - just exposing it.
This commit is contained in:
parent
c67b582fc4
commit
0ad189f12a
6 changed files with 135 additions and 3 deletions
|
|
@ -372,6 +372,16 @@ export class ExtensionRunner {
|
|||
return commands;
|
||||
}
|
||||
|
||||
getRegisteredCommandsWithPaths(): Array<{ command: RegisteredCommand; extensionPath: string }> {
|
||||
const result: Array<{ command: RegisteredCommand; extensionPath: string }> = [];
|
||||
for (const ext of this.extensions) {
|
||||
for (const command of ext.commands.values()) {
|
||||
result.push({ command, extensionPath: ext.path });
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
getCommand(name: string): RegisteredCommand | undefined {
|
||||
for (const ext of this.extensions) {
|
||||
const command = ext.commands.get(name);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export interface PromptTemplate {
|
|||
name: string;
|
||||
description: string;
|
||||
content: string;
|
||||
source: string; // e.g., "user", "project", "path", "inline"
|
||||
source: string; // "user", "project", or "path"
|
||||
filePath: string; // Absolute path to the template file
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue