fixo-cli 1.0.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fixo-cli might be problematic. Click here for more details.
- package/CHANGELOG.md +62 -0
- package/README.md +18 -14
- package/dist/agent/agent-client.d.ts +28 -6
- package/dist/agent/agent-client.d.ts.map +1 -1
- package/dist/agent/agent-client.js +118 -39
- package/dist/agent/agent-client.js.map +1 -1
- package/dist/agent/agent-pool.d.ts +55 -6
- package/dist/agent/agent-pool.d.ts.map +1 -1
- package/dist/agent/agent-pool.js +120 -20
- package/dist/agent/agent-pool.js.map +1 -1
- package/dist/agent/auto-verifier.d.ts +55 -0
- package/dist/agent/auto-verifier.d.ts.map +1 -0
- package/dist/agent/auto-verifier.js +50 -0
- package/dist/agent/auto-verifier.js.map +1 -0
- package/dist/agent/command-parser.d.ts.map +1 -1
- package/dist/agent/command-parser.js +176 -0
- package/dist/agent/command-parser.js.map +1 -1
- package/dist/agent/context-builder.d.ts +24 -0
- package/dist/agent/context-builder.d.ts.map +1 -0
- package/dist/agent/context-builder.js +197 -0
- package/dist/agent/context-builder.js.map +1 -0
- package/dist/agent/conversation.d.ts +14 -1
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/conversation.js +53 -7
- package/dist/agent/conversation.js.map +1 -1
- package/dist/agent/mcp-bridge.js +1 -1
- package/dist/agent/mcp-bridge.js.map +1 -1
- package/dist/agent/orchestrator.d.ts +45 -0
- package/dist/agent/orchestrator.d.ts.map +1 -1
- package/dist/agent/orchestrator.js +140 -3
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/parser-adapter.d.ts +17 -0
- package/dist/agent/parser-adapter.d.ts.map +1 -1
- package/dist/agent/parser-adapter.js +254 -2
- package/dist/agent/parser-adapter.js.map +1 -1
- package/dist/agent/predictive-gate.d.ts.map +1 -1
- package/dist/agent/predictive-gate.js +4 -1
- package/dist/agent/predictive-gate.js.map +1 -1
- package/dist/agent/providers-manager.d.ts +5 -0
- package/dist/agent/providers-manager.d.ts.map +1 -1
- package/dist/agent/providers-manager.js +119 -8
- package/dist/agent/providers-manager.js.map +1 -1
- package/dist/agent/repo-map.d.ts +18 -1
- package/dist/agent/repo-map.d.ts.map +1 -1
- package/dist/agent/repo-map.js +144 -54
- package/dist/agent/repo-map.js.map +1 -1
- package/dist/agent/retry.js +1 -2
- package/dist/agent/retry.js.map +1 -1
- package/dist/agent/single-agent.d.ts.map +1 -1
- package/dist/agent/single-agent.js +129 -22
- package/dist/agent/single-agent.js.map +1 -1
- package/dist/agent/skills.d.ts.map +1 -1
- package/dist/agent/skills.js +2 -1
- package/dist/agent/skills.js.map +1 -1
- package/dist/agent/subagent.js +2 -2
- package/dist/agent/subagent.js.map +1 -1
- package/dist/agent/task-router.d.ts +46 -0
- package/dist/agent/task-router.d.ts.map +1 -0
- package/dist/agent/task-router.js +352 -0
- package/dist/agent/task-router.js.map +1 -0
- package/dist/agent/telemetry.d.ts +29 -1
- package/dist/agent/telemetry.d.ts.map +1 -1
- package/dist/agent/telemetry.js +25 -10
- package/dist/agent/telemetry.js.map +1 -1
- package/dist/agent/tool-definitions.d.ts +3 -0
- package/dist/agent/tool-definitions.d.ts.map +1 -0
- package/dist/agent/tool-definitions.js +519 -0
- package/dist/agent/tool-definitions.js.map +1 -0
- package/dist/agent/tool-executor.d.ts +6 -1
- package/dist/agent/tool-executor.d.ts.map +1 -1
- package/dist/agent/tool-executor.js +99 -553
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/agent/tools/command-tools.d.ts +6 -0
- package/dist/agent/tools/command-tools.d.ts.map +1 -0
- package/dist/agent/tools/command-tools.js +104 -0
- package/dist/agent/tools/command-tools.js.map +1 -0
- package/dist/agent/tools/file-tools.d.ts +15 -0
- package/dist/agent/tools/file-tools.d.ts.map +1 -0
- package/dist/agent/tools/file-tools.js +551 -0
- package/dist/agent/tools/file-tools.js.map +1 -0
- package/dist/agent/tools/todo-tools.d.ts +3 -0
- package/dist/agent/tools/todo-tools.d.ts.map +1 -0
- package/dist/agent/tools/todo-tools.js +70 -0
- package/dist/agent/tools/todo-tools.js.map +1 -0
- package/dist/agent/web-impl.d.ts.map +1 -1
- package/dist/agent/web-impl.js +45 -0
- package/dist/agent/web-impl.js.map +1 -1
- package/dist/agent/worker-agent.d.ts +3 -1
- package/dist/agent/worker-agent.d.ts.map +1 -1
- package/dist/agent/worker-agent.js +51 -14
- package/dist/agent/worker-agent.js.map +1 -1
- package/dist/config.d.ts +242 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +79 -0
- package/dist/config.js.map +1 -1
- package/dist/git/git-manager.d.ts +33 -2
- package/dist/git/git-manager.d.ts.map +1 -1
- package/dist/git/git-manager.js +111 -15
- package/dist/git/git-manager.js.map +1 -1
- package/dist/git/git-ops.d.ts.map +1 -1
- package/dist/git/git-ops.js +2 -1
- package/dist/git/git-ops.js.map +1 -1
- package/dist/index.js +85 -8
- package/dist/index.js.map +1 -1
- package/dist/lsp/lsp-manager.js +1 -1
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/model-outcomes.d.ts.map +1 -1
- package/dist/model-outcomes.js +2 -1
- package/dist/model-outcomes.js.map +1 -1
- package/dist/planner.d.ts +0 -9
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +0 -9
- package/dist/planner.js.map +1 -1
- package/dist/project-memory.d.ts +12 -1
- package/dist/project-memory.d.ts.map +1 -1
- package/dist/project-memory.js +8 -6
- package/dist/project-memory.js.map +1 -1
- package/dist/runtime/loop-mitigation.d.ts +78 -7
- package/dist/runtime/loop-mitigation.d.ts.map +1 -1
- package/dist/runtime/loop-mitigation.js +122 -9
- package/dist/runtime/loop-mitigation.js.map +1 -1
- package/dist/runtime/os-sandbox.d.ts +100 -0
- package/dist/runtime/os-sandbox.d.ts.map +1 -0
- package/dist/runtime/os-sandbox.js +246 -0
- package/dist/runtime/os-sandbox.js.map +1 -0
- package/dist/runtime/run-inventory.d.ts +17 -0
- package/dist/runtime/run-inventory.d.ts.map +1 -0
- package/dist/runtime/run-inventory.js +49 -0
- package/dist/runtime/run-inventory.js.map +1 -0
- package/dist/runtime/staging.d.ts.map +1 -1
- package/dist/runtime/staging.js +4 -1
- package/dist/runtime/staging.js.map +1 -1
- package/dist/runtime/task-session.d.ts +14 -0
- package/dist/runtime/task-session.d.ts.map +1 -1
- package/dist/runtime/task-session.js +26 -0
- package/dist/runtime/task-session.js.map +1 -1
- package/dist/setup-wizard.d.ts +11 -3
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +113 -15
- package/dist/setup-wizard.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/commands/context-commands.d.ts +7 -0
- package/dist/ui/commands/context-commands.d.ts.map +1 -0
- package/dist/ui/commands/context-commands.js +241 -0
- package/dist/ui/commands/context-commands.js.map +1 -0
- package/dist/ui/commands/index.d.ts +3 -0
- package/dist/ui/commands/index.d.ts.map +1 -0
- package/dist/ui/commands/index.js +46 -0
- package/dist/ui/commands/index.js.map +1 -0
- package/dist/ui/commands/info-commands.d.ts +15 -0
- package/dist/ui/commands/info-commands.d.ts.map +1 -0
- package/dist/ui/commands/info-commands.js +122 -0
- package/dist/ui/commands/info-commands.js.map +1 -0
- package/dist/ui/commands/model-commands.d.ts +5 -0
- package/dist/ui/commands/model-commands.d.ts.map +1 -0
- package/dist/ui/commands/model-commands.js +417 -0
- package/dist/ui/commands/model-commands.js.map +1 -0
- package/dist/ui/commands/session-commands.d.ts +5 -0
- package/dist/ui/commands/session-commands.d.ts.map +1 -0
- package/dist/ui/commands/session-commands.js +154 -0
- package/dist/ui/commands/session-commands.js.map +1 -0
- package/dist/ui/commands/task-commands.d.ts +8 -0
- package/dist/ui/commands/task-commands.d.ts.map +1 -0
- package/dist/ui/commands/task-commands.js +152 -0
- package/dist/ui/commands/task-commands.js.map +1 -0
- package/dist/ui/commands/types.d.ts +46 -0
- package/dist/ui/commands/types.d.ts.map +1 -0
- package/dist/ui/commands/types.js +2 -0
- package/dist/ui/commands/types.js.map +1 -0
- package/dist/ui/commands/workspace-commands.d.ts +8 -0
- package/dist/ui/commands/workspace-commands.d.ts.map +1 -0
- package/dist/ui/commands/workspace-commands.js +131 -0
- package/dist/ui/commands/workspace-commands.js.map +1 -0
- package/dist/ui/loading-animation.d.ts +24 -0
- package/dist/ui/loading-animation.d.ts.map +1 -0
- package/dist/ui/loading-animation.js +123 -0
- package/dist/ui/loading-animation.js.map +1 -0
- package/dist/ui/markdown-stream.js +2 -2
- package/dist/ui/markdown-stream.js.map +1 -1
- package/dist/ui/prompt.d.ts +7 -0
- package/dist/ui/prompt.d.ts.map +1 -1
- package/dist/ui/prompt.js +435 -1214
- package/dist/ui/prompt.js.map +1 -1
- package/dist/ui/render-primitives.d.ts +6 -0
- package/dist/ui/render-primitives.d.ts.map +1 -1
- package/dist/ui/render-primitives.js +30 -13
- package/dist/ui/render-primitives.js.map +1 -1
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +2 -0
- package/dist/ui/render.js.map +1 -1
- package/package.json +17 -3
- package/scripts/check-vendor-wasm.js +11 -0
- package/vendor/tree-sitter-go.wasm +0 -0
- package/vendor/tree-sitter-javascript.wasm +0 -0
- package/vendor/tree-sitter-python.wasm +0 -0
- package/vendor/tree-sitter-rust.wasm +0 -0
- package/vendor/tree-sitter-tsx.wasm +0 -0
- package/vendor/tree-sitter-typescript.wasm +0 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { colors } from '../colors.js';
|
|
2
|
+
import { addItem, loadTodoList, removeItem, renderTodoList, saveTodoList, setItemStatus, summariseTodoList, } from '../../context/todo.js';
|
|
3
|
+
export const todoCommand = async (ctx) => {
|
|
4
|
+
const sub = ctx.args[0]?.toLowerCase();
|
|
5
|
+
if (!sub || sub === 'list' || sub === 'ls') {
|
|
6
|
+
const list = loadTodoList(ctx.cwd);
|
|
7
|
+
const summary = summariseTodoList(list);
|
|
8
|
+
console.log('');
|
|
9
|
+
console.log(renderTodoList(list));
|
|
10
|
+
if (summary.length > 0) {
|
|
11
|
+
console.log(`\n${colors.dim}(${summary})${colors.reset}`);
|
|
12
|
+
}
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (sub === 'add') {
|
|
16
|
+
const text = ctx.args.slice(1).join(' ').trim();
|
|
17
|
+
if (text.length === 0) {
|
|
18
|
+
console.log(`\n${colors.yellow}Usage: /todo add <text>${colors.reset}`);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const list = addItem(loadTodoList(ctx.cwd), { content: text });
|
|
22
|
+
const result = saveTodoList(ctx.cwd, list);
|
|
23
|
+
if (!result.ok) {
|
|
24
|
+
console.log(`\n${colors.red}✗ Failed to save todo: ${result.error}${colors.reset}`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
console.log(`\n${colors.green}✓ Added todo:${colors.reset} ${text}`);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (sub === 'done' || sub === 'complete' || sub === 'cancel') {
|
|
31
|
+
const id = ctx.args[1];
|
|
32
|
+
if (!id) {
|
|
33
|
+
console.log(`\n${colors.yellow}Usage: /todo ${sub} <id>${colors.reset}`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const status = sub === 'cancel' ? 'cancelled' : 'done';
|
|
37
|
+
let list = loadTodoList(ctx.cwd);
|
|
38
|
+
const exists = list.items.some((it) => it.id === id);
|
|
39
|
+
if (!exists) {
|
|
40
|
+
console.log(`\n${colors.red}✗ No todo with id "${id}"${colors.reset}`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
list = setItemStatus(list, { id, status });
|
|
44
|
+
const result = saveTodoList(ctx.cwd, list);
|
|
45
|
+
if (!result.ok) {
|
|
46
|
+
console.log(`\n${colors.red}✗ Failed to save todo: ${result.error}${colors.reset}`);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
console.log(`\n${colors.green}✓ Marked ${status}${colors.reset}`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (sub === 'start' || sub === 'progress') {
|
|
53
|
+
const id = ctx.args[1];
|
|
54
|
+
if (!id) {
|
|
55
|
+
console.log(`\n${colors.yellow}Usage: /todo ${sub} <id>${colors.reset}`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
let list = loadTodoList(ctx.cwd);
|
|
59
|
+
const exists = list.items.some((it) => it.id === id);
|
|
60
|
+
if (!exists) {
|
|
61
|
+
console.log(`\n${colors.red}✗ No todo with id "${id}"${colors.reset}`);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
list = setItemStatus(list, { id, status: 'in_progress' });
|
|
65
|
+
const result = saveTodoList(ctx.cwd, list);
|
|
66
|
+
if (!result.ok) {
|
|
67
|
+
console.log(`\n${colors.red}✗ Failed to save todo: ${result.error}${colors.reset}`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
console.log(`\n${colors.green}✓ Marked in_progress${colors.reset}`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (sub === 'remove' || sub === 'rm' || sub === 'delete') {
|
|
74
|
+
const id = ctx.args[1];
|
|
75
|
+
if (!id) {
|
|
76
|
+
console.log(`\n${colors.yellow}Usage: /todo remove <id>${colors.reset}`);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
let list = loadTodoList(ctx.cwd);
|
|
80
|
+
const exists = list.items.some((it) => it.id === id);
|
|
81
|
+
if (!exists) {
|
|
82
|
+
console.log(`\n${colors.red}✗ No todo with id "${id}"${colors.reset}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
list = removeItem(list, { id });
|
|
86
|
+
const result = saveTodoList(ctx.cwd, list);
|
|
87
|
+
if (!result.ok) {
|
|
88
|
+
console.log(`\n${colors.red}✗ Failed to save todo: ${result.error}${colors.reset}`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
console.log(`\n${colors.green}✓ Removed todo${colors.reset}`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (sub === 'clear') {
|
|
95
|
+
const list = loadTodoList(ctx.cwd);
|
|
96
|
+
const kept = list.items.filter((it) => it.status !== 'done' && it.status !== 'cancelled');
|
|
97
|
+
const result = saveTodoList(ctx.cwd, { ...list, items: kept, updatedAt: Date.now() });
|
|
98
|
+
if (!result.ok) {
|
|
99
|
+
console.log(`\n${colors.red}✗ Failed to save todo: ${result.error}${colors.reset}`);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const cleared = list.items.length - kept.length;
|
|
103
|
+
console.log(`\n${colors.green}✓ Cleared ${cleared} completed todo(s)${colors.reset}`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (sub === 'help' || sub === '-h' || sub === '--help') {
|
|
107
|
+
console.log(`\n${colors.bold}Usage: /todo <subcommand>${colors.reset}`);
|
|
108
|
+
console.log(` list List all todo items`);
|
|
109
|
+
console.log(` add <text> Add a new todo`);
|
|
110
|
+
console.log(` start <id> Mark a todo as in-progress`);
|
|
111
|
+
console.log(` done <id> Mark a todo as done`);
|
|
112
|
+
console.log(` cancel <id> Cancel a todo`);
|
|
113
|
+
console.log(` remove <id> Remove a todo entirely`);
|
|
114
|
+
console.log(` clear Remove all done/cancelled todos`);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
console.log(`\n${colors.yellow}Unknown /todo subcommand "${sub}". Try /todo help.${colors.reset}`);
|
|
118
|
+
return;
|
|
119
|
+
};
|
|
120
|
+
export const mcpCommand = async (ctx) => {
|
|
121
|
+
const sub = ctx.args[0]?.toLowerCase();
|
|
122
|
+
if (!sub || sub === 'list') {
|
|
123
|
+
const { listAllMcpSources, mergedMcpServers } = await import('../../agent/mcp-registry.js');
|
|
124
|
+
const view = listAllMcpSources(ctx.cwd);
|
|
125
|
+
console.log(`\n${colors.bold}${colors.cyan}MCP Servers${colors.reset} ${colors.dim}(project-wins precedence: local > project > global)${colors.reset}`);
|
|
126
|
+
console.log(`${colors.dim}${'─'.repeat(60)}${colors.reset}`);
|
|
127
|
+
const renderSource = (label, s) => {
|
|
128
|
+
const names = Object.keys(s.servers);
|
|
129
|
+
if (names.length === 0) {
|
|
130
|
+
console.log(` ${colors.dim}${label}: (empty)${s.configPath ? ` ${colors.dim}${s.configPath}${colors.reset}` : ''}`);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
console.log(` ${colors.bold}${label}${colors.reset}${s.configPath ? ` ${colors.dim}${s.configPath}${colors.reset}` : ''}`);
|
|
134
|
+
for (const n of names) {
|
|
135
|
+
console.log(` ${colors.cyan}•${colors.reset} ${n}`);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
renderSource('global', view.global);
|
|
139
|
+
renderSource('project', view.project);
|
|
140
|
+
renderSource('local', view.local);
|
|
141
|
+
const merged = mergedMcpServers(ctx.cwd);
|
|
142
|
+
const mergedCount = Object.keys(merged).length;
|
|
143
|
+
console.log(`\n${colors.dim}merged total: ${mergedCount} server(s)${colors.reset}`);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (sub === 'add') {
|
|
147
|
+
const name = ctx.args[1];
|
|
148
|
+
if (!name || ctx.args.length < 3) {
|
|
149
|
+
console.log(`\n${colors.yellow}Usage: /mcp add <name> <command> [ctx.args...]${colors.reset}`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const cmd = ctx.args[2];
|
|
153
|
+
const cmdArgs = ctx.args.slice(3);
|
|
154
|
+
const { addLocalMcpServer } = await import('../../agent/mcp-registry.js');
|
|
155
|
+
addLocalMcpServer(ctx.cwd, name, { command: cmd, args: cmdArgs, type: 'stdio' });
|
|
156
|
+
console.log(`\n${colors.green}✓ Added local MCP server:${colors.reset} ${name} ${colors.dim}(command=${cmd} ctx.args=${JSON.stringify(cmdArgs)})${colors.reset}`);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (sub === 'remove' || sub === 'rm') {
|
|
160
|
+
const name = ctx.args[1];
|
|
161
|
+
if (!name) {
|
|
162
|
+
console.log(`\n${colors.yellow}Usage: /mcp remove <name>${colors.reset}`);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const { removeLocalMcpServer } = await import('../../agent/mcp-registry.js');
|
|
166
|
+
const removed = removeLocalMcpServer(ctx.cwd, name);
|
|
167
|
+
if (removed) {
|
|
168
|
+
console.log(`\n${colors.green}✓ Removed local MCP server:${colors.reset} ${name}`);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
console.log(`\n${colors.yellow}No local MCP server named ${name}${colors.reset}`);
|
|
172
|
+
}
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (sub === 'test') {
|
|
176
|
+
const name = ctx.args[1];
|
|
177
|
+
if (!name) {
|
|
178
|
+
console.log(`\n${colors.yellow}Usage: /mcp test <name>${colors.reset}`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const { mergedMcpServers } = await import('../../agent/mcp-registry.js');
|
|
182
|
+
const all = mergedMcpServers(ctx.cwd);
|
|
183
|
+
const cfg = all[name];
|
|
184
|
+
if (!cfg) {
|
|
185
|
+
console.log(`\n${colors.yellow}No MCP server named ${name} (in any source)${colors.reset}`);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const hasCommand = typeof cfg.command === 'string';
|
|
189
|
+
const hasUrl = typeof cfg.url === 'string';
|
|
190
|
+
if (hasCommand || hasUrl) {
|
|
191
|
+
console.log(`\n${colors.green}✓ ${name}${colors.reset} — ctx.config looks valid (${hasCommand ? 'stdio' : 'sse'})`);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
console.log(`\n${colors.red}✗ ${name}${colors.reset} — missing 'command' or 'url'`);
|
|
195
|
+
}
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
console.log(`\n${colors.yellow}Unknown /mcp subcommand: ${sub}. Use: list | add | remove | test${colors.reset}`);
|
|
199
|
+
return;
|
|
200
|
+
};
|
|
201
|
+
export const compactCommand = async (ctx) => {
|
|
202
|
+
const msgCount = ctx.conversation.getMessageCount();
|
|
203
|
+
if (msgCount === 0) {
|
|
204
|
+
console.log(`\n${colors.dim}Nothing to compact — ctx.conversation is empty.${colors.reset}`);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const tokensBefore = ctx.conversation.getTotalTokens();
|
|
208
|
+
const contextLimit = ctx.conversation.getContextLimit();
|
|
209
|
+
console.log(`\n${colors.cyan}[Compact] Summarising ${msgCount} messages to free context tokens...${colors.reset}`);
|
|
210
|
+
console.log(`${colors.dim} Current context: ${(tokensBefore / 1000).toFixed(0)}k / ${(contextLimit / 1000).toFixed(0)}k tokens${colors.reset}`);
|
|
211
|
+
try {
|
|
212
|
+
const compacted = await ctx.conversation.compact(ctx.agent.getClient(), ctx.state.currentModel);
|
|
213
|
+
if (compacted) {
|
|
214
|
+
const info = ctx.conversation.getLastCompactionInfo();
|
|
215
|
+
const tokensAfter = ctx.conversation.getTotalTokens();
|
|
216
|
+
console.log(`${colors.green}✓ Compacted: ${info?.messagesBefore ?? msgCount} messages → summary + ${ctx.conversation.getMessageCount()} recent messages.${colors.reset}`);
|
|
217
|
+
console.log(`${colors.dim} Context: ${(tokensBefore / 1000).toFixed(0)}k → ${(tokensAfter / 1000).toFixed(0)}k tokens (~${((info?.tokensFreed ?? 0) / 1000).toFixed(0)}k freed).${colors.reset}`);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
console.log(`${colors.dim}Not enough messages to compact (need more than 4 messages).${colors.reset}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
console.log(`${colors.red}✗ Compact failed: ${err.message}${colors.reset}`);
|
|
225
|
+
}
|
|
226
|
+
return;
|
|
227
|
+
};
|
|
228
|
+
export const clearCommand = async (ctx) => {
|
|
229
|
+
ctx.conversation.clear();
|
|
230
|
+
ctx.state.pendingAttachments = [];
|
|
231
|
+
console.log(`\n${colors.green}✓ Conversation cleared${colors.reset}`);
|
|
232
|
+
return;
|
|
233
|
+
};
|
|
234
|
+
export const variantCommand = async (ctx) => {
|
|
235
|
+
const { themeMode, setThemeMode } = await import('../colors.js');
|
|
236
|
+
const newMode = themeMode === 'dark' ? 'inverted' : 'dark';
|
|
237
|
+
setThemeMode(newMode);
|
|
238
|
+
console.log(`\n${colors.cyan}✓ Theme set to: ${newMode === 'dark' ? 'Dark Void Minimalist' : 'High-Contrast Inverted'}${colors.reset}`);
|
|
239
|
+
return;
|
|
240
|
+
};
|
|
241
|
+
//# sourceMappingURL=context-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-commands.js","sourceRoot":"","sources":["../../../src/ui/commands/context-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA2C1D,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as sessionCmds from './session-commands.js';
|
|
2
|
+
import * as modelCmds from './model-commands.js';
|
|
3
|
+
import * as workspaceCmds from './workspace-commands.js';
|
|
4
|
+
import * as taskCmds from './task-commands.js';
|
|
5
|
+
import * as infoCmds from './info-commands.js';
|
|
6
|
+
import * as contextCmds from './context-commands.js';
|
|
7
|
+
export const commandRegistry = {
|
|
8
|
+
'/session': sessionCmds.sessionCommand,
|
|
9
|
+
'/rename': sessionCmds.renameCommand,
|
|
10
|
+
'/snapshot': sessionCmds.snapshotCommand,
|
|
11
|
+
'/model': modelCmds.modelCommand,
|
|
12
|
+
'/providers': modelCmds.providersCommand,
|
|
13
|
+
'/model-routing': modelCmds.modelRoutingCommand,
|
|
14
|
+
'/select': workspaceCmds.selectCommand,
|
|
15
|
+
'/unselect': workspaceCmds.unselectCommand,
|
|
16
|
+
'/diff': workspaceCmds.diffCommand,
|
|
17
|
+
'/undo': workspaceCmds.undoCommand,
|
|
18
|
+
'/image': workspaceCmds.imageCommand,
|
|
19
|
+
'/mode': workspaceCmds.modeCommand,
|
|
20
|
+
'/review': taskCmds.reviewCommand,
|
|
21
|
+
'/test': taskCmds.testCommand,
|
|
22
|
+
'/fix-tests': taskCmds.fixTestsCommand,
|
|
23
|
+
'/fix-ci': taskCmds.fixCiCommand,
|
|
24
|
+
'/plan': taskCmds.planCommand,
|
|
25
|
+
'/run-plan': taskCmds.runPlanCommand,
|
|
26
|
+
'/log': infoCmds.logCommand,
|
|
27
|
+
'/stats': infoCmds.statsCommand,
|
|
28
|
+
'/runs': infoCmds.runsCommand,
|
|
29
|
+
'/show-run': infoCmds.showRunCommand,
|
|
30
|
+
'/memory': infoCmds.memoryCommand,
|
|
31
|
+
'/remember': infoCmds.rememberCommand,
|
|
32
|
+
'/forget': infoCmds.forgetCommand,
|
|
33
|
+
'/doctor': infoCmds.doctorCommand,
|
|
34
|
+
'/index': infoCmds.indexCommand,
|
|
35
|
+
'/find': infoCmds.findCommand,
|
|
36
|
+
'/explain': infoCmds.explainCommand,
|
|
37
|
+
'/skills': infoCmds.skillsCommand,
|
|
38
|
+
'/telemetry': infoCmds.telemetryCommand,
|
|
39
|
+
'/todo': contextCmds.todoCommand,
|
|
40
|
+
'/mcp': contextCmds.mcpCommand,
|
|
41
|
+
'/compact': contextCmds.compactCommand,
|
|
42
|
+
'/clear': contextCmds.clearCommand,
|
|
43
|
+
'/variant': contextCmds.variantCommand,
|
|
44
|
+
'/theme': contextCmds.variantCommand,
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC7D,UAAU,EAAE,WAAW,CAAC,cAAc;IACtC,SAAS,EAAE,WAAW,CAAC,aAAa;IACpC,WAAW,EAAE,WAAW,CAAC,eAAe;IAExC,QAAQ,EAAE,SAAS,CAAC,YAAY;IAChC,YAAY,EAAE,SAAS,CAAC,gBAAgB;IACxC,gBAAgB,EAAE,SAAS,CAAC,mBAAmB;IAE/C,SAAS,EAAE,aAAa,CAAC,aAAa;IACtC,WAAW,EAAE,aAAa,CAAC,eAAe;IAC1C,OAAO,EAAE,aAAa,CAAC,WAAW;IAClC,OAAO,EAAE,aAAa,CAAC,WAAW;IAClC,QAAQ,EAAE,aAAa,CAAC,YAAY;IACpC,OAAO,EAAE,aAAa,CAAC,WAAW;IAElC,SAAS,EAAE,QAAQ,CAAC,aAAa;IACjC,OAAO,EAAE,QAAQ,CAAC,WAAW;IAC7B,YAAY,EAAE,QAAQ,CAAC,eAAe;IACtC,SAAS,EAAE,QAAQ,CAAC,YAAY;IAChC,OAAO,EAAE,QAAQ,CAAC,WAAW;IAC7B,WAAW,EAAE,QAAQ,CAAC,cAAc;IAEpC,MAAM,EAAE,QAAQ,CAAC,UAAU;IAC3B,QAAQ,EAAE,QAAQ,CAAC,YAAY;IAC/B,OAAO,EAAE,QAAQ,CAAC,WAAW;IAC7B,WAAW,EAAE,QAAQ,CAAC,cAAc;IACpC,SAAS,EAAE,QAAQ,CAAC,aAAa;IACjC,WAAW,EAAE,QAAQ,CAAC,eAAe;IACrC,SAAS,EAAE,QAAQ,CAAC,aAAa;IACjC,SAAS,EAAE,QAAQ,CAAC,aAAa;IACjC,QAAQ,EAAE,QAAQ,CAAC,YAAY;IAC/B,OAAO,EAAE,QAAQ,CAAC,WAAW;IAC7B,UAAU,EAAE,QAAQ,CAAC,cAAc;IACnC,SAAS,EAAE,QAAQ,CAAC,aAAa;IACjC,YAAY,EAAE,QAAQ,CAAC,gBAAgB;IAEvC,OAAO,EAAE,WAAW,CAAC,WAAW;IAChC,MAAM,EAAE,WAAW,CAAC,UAAU;IAC9B,UAAU,EAAE,WAAW,CAAC,cAAc;IACtC,QAAQ,EAAE,WAAW,CAAC,YAAY;IAClC,UAAU,EAAE,WAAW,CAAC,cAAc;IACtC,QAAQ,EAAE,WAAW,CAAC,cAAc;CACrC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type CommandHandler } from './types.js';
|
|
2
|
+
export declare const logCommand: CommandHandler;
|
|
3
|
+
export declare const statsCommand: CommandHandler;
|
|
4
|
+
export declare const runsCommand: CommandHandler;
|
|
5
|
+
export declare const showRunCommand: CommandHandler;
|
|
6
|
+
export declare const memoryCommand: CommandHandler;
|
|
7
|
+
export declare const rememberCommand: CommandHandler;
|
|
8
|
+
export declare const forgetCommand: CommandHandler;
|
|
9
|
+
export declare const doctorCommand: CommandHandler;
|
|
10
|
+
export declare const indexCommand: CommandHandler;
|
|
11
|
+
export declare const findCommand: CommandHandler;
|
|
12
|
+
export declare const explainCommand: CommandHandler;
|
|
13
|
+
export declare const skillsCommand: CommandHandler;
|
|
14
|
+
export declare const telemetryCommand: CommandHandler;
|
|
15
|
+
//# sourceMappingURL=info-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-commands.d.ts","sourceRoot":"","sources":["../../../src/ui/commands/info-commands.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,UAAU,EAAE,cAIxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAgB1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,cAMzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAI5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAI3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAY3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAI3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAQ1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,cAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAI5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAY3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAc9B,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as p from '@clack/prompts';
|
|
2
|
+
import { saveConfig } from '../../config.js';
|
|
3
|
+
import { listRuns, showRun } from '../../runtime/task-session.js';
|
|
4
|
+
import { appendMemory, doctor, forgetMemory, readMemory } from '../../project-memory.js';
|
|
5
|
+
import { buildIndex, explainIndexedTarget, findInIndex } from '../../indexer.js';
|
|
6
|
+
import { colors } from '../colors.js';
|
|
7
|
+
export const logCommand = async (ctx) => {
|
|
8
|
+
console.log(`\n${ctx.git.getRecentCommits(10)}`);
|
|
9
|
+
return;
|
|
10
|
+
};
|
|
11
|
+
export const statsCommand = async (ctx) => {
|
|
12
|
+
if (ctx.printStats)
|
|
13
|
+
ctx.printStats(ctx.state.stats);
|
|
14
|
+
{
|
|
15
|
+
const ctxTokens = ctx.conversation.getTotalTokens();
|
|
16
|
+
const ctxLimit = ctx.conversation.getContextLimit();
|
|
17
|
+
const ctxPct = Math.round((ctxTokens / ctxLimit) * 100);
|
|
18
|
+
const hasSummary = ctx.conversation.getSummary() ? ' (compacted)' : '';
|
|
19
|
+
console.log(`${colors.cyan}${colors.bold}📊 Context Window${colors.reset}`);
|
|
20
|
+
console.log(`${colors.dim}${'─'.repeat(40)}${colors.reset}`);
|
|
21
|
+
console.log(` History messages: ${colors.bold}${ctx.conversation.getMessageCount()}${colors.reset}${hasSummary}`);
|
|
22
|
+
console.log(` Context usage: ${colors.bold}${(ctxTokens / 1000).toFixed(0)}k / ${(ctxLimit / 1000).toFixed(0)}k${colors.reset} (${ctxPct}%)`);
|
|
23
|
+
console.log(` Turns: ${colors.bold}${ctx.conversation.getTurnCount()}${colors.reset}`);
|
|
24
|
+
console.log('');
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
};
|
|
28
|
+
export const runsCommand = async (ctx) => {
|
|
29
|
+
const runs = listRuns(ctx.cwd, 12);
|
|
30
|
+
console.log(runs.length
|
|
31
|
+
? `\n${runs.map(run => `${run.id} ${run.status} ${run.task.slice(0, 80)}`).join('\n')}`
|
|
32
|
+
: '\n(no FixO runs recorded)');
|
|
33
|
+
return;
|
|
34
|
+
};
|
|
35
|
+
export const showRunCommand = async (ctx) => {
|
|
36
|
+
console.log(`\n${showRun(ctx.cwd, ctx.args[0] ?? '')}`);
|
|
37
|
+
return;
|
|
38
|
+
};
|
|
39
|
+
export const memoryCommand = async (ctx) => {
|
|
40
|
+
console.log(`\n${readMemory(ctx.cwd)}`);
|
|
41
|
+
return;
|
|
42
|
+
};
|
|
43
|
+
export const rememberCommand = async (ctx) => {
|
|
44
|
+
const text = ctx.args.join(' ').trim();
|
|
45
|
+
if (!text) {
|
|
46
|
+
console.log(`\n${colors.yellow}Usage: /remember <project fact>${colors.reset}`);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
ctx.rl.pause();
|
|
50
|
+
const confirmed = await p.confirm({ message: `Add to project memory: ${text}?`, initialValue: false });
|
|
51
|
+
ctx.rl.resume();
|
|
52
|
+
if (!p.isCancel(confirmed) && confirmed) {
|
|
53
|
+
appendMemory(ctx.cwd, text);
|
|
54
|
+
console.log(`\n${colors.green}✓ Memory updated${colors.reset}`);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
};
|
|
58
|
+
export const forgetCommand = async (ctx) => {
|
|
59
|
+
ctx.rl.pause();
|
|
60
|
+
{
|
|
61
|
+
const confirmed = await p.confirm({ message: 'Clear FixO project memory?', initialValue: false });
|
|
62
|
+
ctx.rl.resume();
|
|
63
|
+
if (!p.isCancel(confirmed) && confirmed) {
|
|
64
|
+
forgetMemory(ctx.cwd);
|
|
65
|
+
console.log(`\n${colors.green}✓ Memory cleared${colors.reset}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
};
|
|
70
|
+
export const doctorCommand = async (ctx) => {
|
|
71
|
+
console.log(`\n${doctor(ctx.cwd)}`);
|
|
72
|
+
return;
|
|
73
|
+
};
|
|
74
|
+
export const indexCommand = async (ctx) => {
|
|
75
|
+
const index = await buildIndex(ctx.cwd);
|
|
76
|
+
if (ctx.workspaceFiles) {
|
|
77
|
+
ctx.workspaceFiles.length = 0;
|
|
78
|
+
ctx.workspaceFiles.push(...index.files.map(f => f.path));
|
|
79
|
+
}
|
|
80
|
+
console.log(`\n${colors.green}✓ Indexed ${index.files.length} files${colors.reset}`);
|
|
81
|
+
return;
|
|
82
|
+
};
|
|
83
|
+
export const findCommand = async (ctx) => {
|
|
84
|
+
console.log(`\n${await findInIndex(ctx.cwd, ctx.args.join(' '))}`);
|
|
85
|
+
return;
|
|
86
|
+
};
|
|
87
|
+
export const explainCommand = async (ctx) => {
|
|
88
|
+
console.log(`\n${await explainIndexedTarget(ctx.cwd, ctx.args.join(' '))}`);
|
|
89
|
+
return;
|
|
90
|
+
};
|
|
91
|
+
export const skillsCommand = async (ctx) => {
|
|
92
|
+
const { skillsManager } = await import('../../agent/skills.js');
|
|
93
|
+
const list = skillsManager.getSkills();
|
|
94
|
+
if (list.length === 0) {
|
|
95
|
+
console.log(`\n${colors.dim}No skills registered. Register skill profiles by adding SKILL.md under ~/.fixocli/skills/<name>/ or .fixocli/skills/<name>/${colors.reset}`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.log(`\n${colors.cyan}${colors.bold}Registered Skills:${colors.reset}`);
|
|
99
|
+
for (const skill of list) {
|
|
100
|
+
console.log(` - ${colors.bold}${skill.name}${colors.reset}${skill.description ? `: ${skill.description}` : ''} ${colors.dim}(${skill.location})${colors.reset}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
};
|
|
105
|
+
export const telemetryCommand = async (ctx) => {
|
|
106
|
+
const sub = ctx.args[0]?.toLowerCase();
|
|
107
|
+
if (sub === 'on' || sub === 'enable') {
|
|
108
|
+
ctx.config.preferences.telemetry = true;
|
|
109
|
+
saveConfig(ctx.config);
|
|
110
|
+
console.log(`\n${colors.green}✓ Telemetry enabled${colors.reset}`);
|
|
111
|
+
}
|
|
112
|
+
else if (sub === 'off' || sub === 'disable') {
|
|
113
|
+
ctx.config.preferences.telemetry = false;
|
|
114
|
+
saveConfig(ctx.config);
|
|
115
|
+
console.log(`\n${colors.green}✓ Telemetry disabled${colors.reset}`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.log(`\n${colors.dim}Telemetry is currently ${ctx.config.preferences.telemetry ? `${colors.green}ON${colors.reset}${colors.dim}` : `${colors.red}OFF${colors.reset}${colors.dim}`}. Usage: /telemetry on|off${colors.reset}`);
|
|
119
|
+
}
|
|
120
|
+
return;
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=info-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-commands.js","sourceRoot":"","sources":["../../../src/ui/commands/info-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-commands.d.ts","sourceRoot":"","sources":["../../../src/ui/commands/model-commands.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAgBjD,eAAO,MAAM,YAAY,EAAE,cAqJ1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cA0N9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cA8CjC,CAAC"}
|