cmdr-agent 1.2.2 → 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.
Files changed (121) hide show
  1. package/README.md +19 -0
  2. package/dist/bin/cmdr.js +3 -1
  3. package/dist/bin/cmdr.js.map +1 -1
  4. package/dist/src/agents/executor.d.ts +32 -0
  5. package/dist/src/agents/executor.d.ts.map +1 -0
  6. package/dist/src/agents/executor.js +50 -0
  7. package/dist/src/agents/executor.js.map +1 -0
  8. package/dist/src/agents/index.d.ts +7 -0
  9. package/dist/src/agents/index.d.ts.map +1 -0
  10. package/dist/src/agents/index.js +7 -0
  11. package/dist/src/agents/index.js.map +1 -0
  12. package/dist/src/agents/registry.d.ts +36 -0
  13. package/dist/src/agents/registry.d.ts.map +1 -0
  14. package/dist/src/agents/registry.js +168 -0
  15. package/dist/src/agents/registry.js.map +1 -0
  16. package/dist/src/agents/subagent-tool.d.ts +27 -0
  17. package/dist/src/agents/subagent-tool.d.ts.map +1 -0
  18. package/dist/src/agents/subagent-tool.js +36 -0
  19. package/dist/src/agents/subagent-tool.js.map +1 -0
  20. package/dist/src/cli/args.d.ts +2 -0
  21. package/dist/src/cli/args.d.ts.map +1 -1
  22. package/dist/src/cli/args.js +8 -0
  23. package/dist/src/cli/args.js.map +1 -1
  24. package/dist/src/cli/commands.d.ts.map +1 -1
  25. package/dist/src/cli/commands.js +92 -4
  26. package/dist/src/cli/commands.js.map +1 -1
  27. package/dist/src/cli/ink/App.d.ts +4 -0
  28. package/dist/src/cli/ink/App.d.ts.map +1 -1
  29. package/dist/src/cli/ink/App.js +164 -20
  30. package/dist/src/cli/ink/App.js.map +1 -1
  31. package/dist/src/cli/ink/StatusBar.d.ts +17 -0
  32. package/dist/src/cli/ink/StatusBar.d.ts.map +1 -0
  33. package/dist/src/cli/ink/StatusBar.js +32 -0
  34. package/dist/src/cli/ink/StatusBar.js.map +1 -0
  35. package/dist/src/cli/repl.d.ts +2 -0
  36. package/dist/src/cli/repl.d.ts.map +1 -1
  37. package/dist/src/cli/repl.js +117 -4
  38. package/dist/src/cli/repl.js.map +1 -1
  39. package/dist/src/cli/theme.d.ts +42 -22
  40. package/dist/src/cli/theme.d.ts.map +1 -1
  41. package/dist/src/cli/theme.js +25 -1
  42. package/dist/src/cli/theme.js.map +1 -1
  43. package/dist/src/cli/themes.d.ts +57 -0
  44. package/dist/src/cli/themes.d.ts.map +1 -0
  45. package/dist/src/cli/themes.js +98 -0
  46. package/dist/src/cli/themes.js.map +1 -0
  47. package/dist/src/commands/index.d.ts +3 -0
  48. package/dist/src/commands/index.d.ts.map +1 -0
  49. package/dist/src/commands/index.js +2 -0
  50. package/dist/src/commands/index.js.map +1 -0
  51. package/dist/src/commands/loader.d.ts +35 -0
  52. package/dist/src/commands/loader.d.ts.map +1 -0
  53. package/dist/src/commands/loader.js +134 -0
  54. package/dist/src/commands/loader.js.map +1 -0
  55. package/dist/src/config/config-loader.d.ts.map +1 -1
  56. package/dist/src/config/config-loader.js +2 -0
  57. package/dist/src/config/config-loader.js.map +1 -1
  58. package/dist/src/config/defaults.d.ts.map +1 -1
  59. package/dist/src/config/defaults.js +1 -0
  60. package/dist/src/config/defaults.js.map +1 -1
  61. package/dist/src/config/schema.d.ts +3 -0
  62. package/dist/src/config/schema.d.ts.map +1 -1
  63. package/dist/src/config/schema.js +1 -0
  64. package/dist/src/config/schema.js.map +1 -1
  65. package/dist/src/core/agent-runner.d.ts.map +1 -1
  66. package/dist/src/core/agent-runner.js +39 -5
  67. package/dist/src/core/agent-runner.js.map +1 -1
  68. package/dist/src/core/agent.d.ts +1 -1
  69. package/dist/src/core/agent.d.ts.map +1 -1
  70. package/dist/src/core/agent.js +4 -3
  71. package/dist/src/core/agent.js.map +1 -1
  72. package/dist/src/core/intent.d.ts +2 -0
  73. package/dist/src/core/intent.d.ts.map +1 -1
  74. package/dist/src/core/intent.js +12 -0
  75. package/dist/src/core/intent.js.map +1 -1
  76. package/dist/src/core/presets.d.ts.map +1 -1
  77. package/dist/src/core/presets.js +49 -15
  78. package/dist/src/core/presets.js.map +1 -1
  79. package/dist/src/core/types.d.ts +5 -0
  80. package/dist/src/core/types.d.ts.map +1 -1
  81. package/dist/src/index.d.ts +3 -2
  82. package/dist/src/index.d.ts.map +1 -1
  83. package/dist/src/index.js +2 -2
  84. package/dist/src/index.js.map +1 -1
  85. package/dist/src/llm/model-registry.d.ts +25 -0
  86. package/dist/src/llm/model-registry.d.ts.map +1 -1
  87. package/dist/src/llm/model-registry.js +223 -22
  88. package/dist/src/llm/model-registry.js.map +1 -1
  89. package/dist/src/llm/model-watcher.d.ts +26 -0
  90. package/dist/src/llm/model-watcher.d.ts.map +1 -0
  91. package/dist/src/llm/model-watcher.js +130 -0
  92. package/dist/src/llm/model-watcher.js.map +1 -0
  93. package/dist/src/llm/ollama.d.ts +13 -1
  94. package/dist/src/llm/ollama.d.ts.map +1 -1
  95. package/dist/src/llm/ollama.js +309 -93
  96. package/dist/src/llm/ollama.js.map +1 -1
  97. package/dist/src/session/compaction.js +4 -0
  98. package/dist/src/session/compaction.js.map +1 -1
  99. package/dist/src/session/project-context.d.ts.map +1 -1
  100. package/dist/src/session/project-context.js +54 -4
  101. package/dist/src/session/project-context.js.map +1 -1
  102. package/dist/src/session/prompt-builder.d.ts +28 -1
  103. package/dist/src/session/prompt-builder.d.ts.map +1 -1
  104. package/dist/src/session/prompt-builder.js +97 -23
  105. package/dist/src/session/prompt-builder.js.map +1 -1
  106. package/dist/src/session/session-manager.d.ts +10 -3
  107. package/dist/src/session/session-manager.d.ts.map +1 -1
  108. package/dist/src/session/session-manager.js +53 -16
  109. package/dist/src/session/session-manager.js.map +1 -1
  110. package/dist/src/session/session-persistence.d.ts +12 -0
  111. package/dist/src/session/session-persistence.d.ts.map +1 -1
  112. package/dist/src/session/session-persistence.js +94 -4
  113. package/dist/src/session/session-persistence.js.map +1 -1
  114. package/dist/src/tools/built-in/bash-security.d.ts +13 -0
  115. package/dist/src/tools/built-in/bash-security.d.ts.map +1 -0
  116. package/dist/src/tools/built-in/bash-security.js +53 -0
  117. package/dist/src/tools/built-in/bash-security.js.map +1 -0
  118. package/dist/src/tools/built-in/bash.d.ts.map +1 -1
  119. package/dist/src/tools/built-in/bash.js +7 -1
  120. package/dist/src/tools/built-in/bash.js.map +1 -1
  121. package/package.json +2 -1
@@ -2,7 +2,8 @@
2
2
  * Slash command registry and handlers.
3
3
  */
4
4
  import { PURPLE, GREEN, DIM, WHITE, commandText, dimText, YELLOW, RED, renderSessionStatus, renderContextWindow, SEPARATOR, renderInfo, } from './theme.js';
5
- import { getDefaultContextLength } from '../llm/model-registry.js';
5
+ import { listThemeNames, getActiveTheme, setActiveTheme } from './themes.js';
6
+ import { getDefaultContextLength, getModelInfo } from '../llm/model-registry.js';
6
7
  import { countTokens } from '../llm/token-counter.js';
7
8
  import { listSessions } from '../session/session-persistence.js';
8
9
  import { listTeamPresets } from '../core/presets.js';
@@ -104,7 +105,11 @@ registerCommand({
104
105
  '',
105
106
  ...models.map((m, i) => {
106
107
  const current = m === context.model ? ` ${DIM('← current')}` : '';
107
- return ` ${GREEN(`${i + 1}.`)} ${WHITE(m)}${current}`;
108
+ const info = getModelInfo(m);
109
+ const meta = info
110
+ ? DIM(` [${info.parameterSize}, ${(info.contextLength / 1024).toFixed(0)}k ctx${info.supportsTools ? ', tools' : ''}]`)
111
+ : '';
112
+ return ` ${GREEN(`${i + 1}.`)} ${WHITE(m)}${meta}${current}`;
108
113
  }),
109
114
  '',
110
115
  ` ${DIM('Switch with:')} ${GREEN('/model <name>')} ${DIM('or')} ${GREEN('/model <number>')}`,
@@ -337,8 +342,11 @@ registerCommand({
337
342
  });
338
343
  registerCommand({
339
344
  name: 'agents',
340
- description: 'Show active agents and their status',
341
- execute: async () => {
345
+ description: 'List registered subagents: /agents, /agents info <name>',
346
+ execute: async (args) => {
347
+ if (args.startsWith('info ')) {
348
+ return `__AGENT_INFO__:${args.slice(5).trim()}`;
349
+ }
342
350
  return '__AGENTS_STATUS__';
343
351
  },
344
352
  });
@@ -427,6 +435,86 @@ registerCommand({
427
435
  return renderInfo('Usage: /skill info <name> | /skill install <path> | /skill create <name>');
428
436
  },
429
437
  });
438
+ registerCommand({
439
+ name: 'theme',
440
+ description: 'Switch theme: /theme [name], /theme list',
441
+ execute: async (args) => {
442
+ if (!args || args === 'list') {
443
+ const names = listThemeNames();
444
+ const current = getActiveTheme().name;
445
+ const lines = [
446
+ '',
447
+ ` ${PURPLE.bold('Themes')} ${DIM(`(${names.length})`)}`,
448
+ '',
449
+ ...names.map(n => {
450
+ const marker = n === current ? ` ${GREEN('← active')}` : '';
451
+ return ` ${GREEN('•')} ${WHITE(n)}${marker}`;
452
+ }),
453
+ '',
454
+ ` ${DIM('Switch with:')} ${GREEN('/theme <name>')}`,
455
+ '',
456
+ ];
457
+ return lines.join('\n');
458
+ }
459
+ const name = args.trim().toLowerCase();
460
+ if (setActiveTheme(name)) {
461
+ return renderInfo(`Theme set to ${GREEN(name)}`);
462
+ }
463
+ return renderInfo(`Unknown theme: ${RED(name)}. Use /theme list to see options.`);
464
+ },
465
+ });
466
+ registerCommand({
467
+ name: 'commands',
468
+ description: 'List custom commands',
469
+ execute: async () => {
470
+ return '__CUSTOM_COMMANDS_LIST__';
471
+ },
472
+ });
473
+ registerCommand({
474
+ name: 'command',
475
+ description: 'Custom command management: create <name>',
476
+ execute: async (args) => {
477
+ const parts = args.trim().split(/\s+/);
478
+ const sub = parts[0]?.toLowerCase();
479
+ const rest = parts.slice(1).join(' ');
480
+ if (sub === 'create' && rest)
481
+ return `__CUSTOM_COMMAND_CREATE__:${rest}`;
482
+ return renderInfo('Usage: /command create <name>');
483
+ },
484
+ });
485
+ registerCommand({
486
+ name: 'plan',
487
+ description: 'Toggle plan mode (read-only analysis)',
488
+ execute: async () => {
489
+ return '__PLAN_TOGGLE__';
490
+ },
491
+ });
492
+ registerCommand({
493
+ name: 'memory',
494
+ description: 'Context memory: /memory show, /memory refresh',
495
+ execute: async (args, context) => {
496
+ const sub = args.trim().toLowerCase();
497
+ if (!sub || sub === 'show') {
498
+ const instructions = context.session.projectContext.cmdrInstructions;
499
+ if (!instructions) {
500
+ return renderInfo('No CMDR.md context loaded.');
501
+ }
502
+ const lineCount = instructions.split('\n').length;
503
+ const lines = [
504
+ '',
505
+ ` ${PURPLE.bold('Loaded context')} ${DIM(`(${lineCount} lines)`)}`,
506
+ '',
507
+ ...instructions.split('\n').slice(0, 30).map(l => ` ${DIM('│')} ${WHITE(l)}`),
508
+ instructions.split('\n').length > 30 ? ` ${DIM(` ... (${lineCount - 30} more lines)`)}` : '',
509
+ '',
510
+ ];
511
+ return lines.filter(Boolean).join('\n');
512
+ }
513
+ if (sub === 'refresh')
514
+ return '__MEMORY_REFRESH__';
515
+ return renderInfo('Usage: /memory [show|refresh]');
516
+ },
517
+ });
430
518
  registerCommand({
431
519
  name: 'quit',
432
520
  description: 'Exit cmdr',
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ import type { UndoManager } from '../../session/undo-manager.js';
18
18
  import type { PluginManager } from '../../plugins/plugin-manager.js';
19
19
  import type { McpClient } from '../../plugins/mcp-client.js';
20
20
  import type { ToolRegistry } from '../../tools/registry.js';
21
+ import type { AgentRegistry } from '../../agents/registry.js';
22
+ import type { CommandLoader } from '../../commands/loader.js';
21
23
  export interface InkAppProps {
22
24
  agent: Agent;
23
25
  session: SessionManager;
@@ -31,6 +33,8 @@ export interface InkAppProps {
31
33
  pluginManager: PluginManager;
32
34
  mcpClient: McpClient;
33
35
  toolRegistry: ToolRegistry;
36
+ agentRegistry: AgentRegistry;
37
+ commandLoader: CommandLoader;
34
38
  ollamaUrl: string;
35
39
  verbose: boolean;
36
40
  doSave: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAkE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACjI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAI9D,OAAO,EACsD,cAAc,EAC1E,MAAM,sCAAsC,CAAA;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAkE3D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,EAAE,UAAU,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,SAAS,EAAE,cAAc,CAAA;CAC1B;AAoED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAwsBlE"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/cli/ink/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAkE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACjI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAI9D,OAAO,EACsD,cAAc,EAC1E,MAAM,sCAAsC,CAAA;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAmE7D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,EAAE,UAAU,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,aAAa,CAAA;IAC5B,aAAa,EAAE,aAAa,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,SAAS,EAAE,cAAc,CAAA;CAC1B;AAoED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CA+1BlE"}
@@ -14,6 +14,7 @@ import { getDefaultContextLength } from '../../llm/model-registry.js';
14
14
  import { isSlashCommand, parseSlashCommand, getCommand } from '../commands.js';
15
15
  import { saveSession, loadSession, } from '../../session/session-persistence.js';
16
16
  import { getTeamPreset } from '../../core/presets.js';
17
+ import StatusBar from './StatusBar.js';
17
18
  // We use chalk directly for coloring since Ink <Text> color props are limited
18
19
  import chalk from 'chalk';
19
20
  const GREEN = chalk.hex('#00FF41');
@@ -111,7 +112,7 @@ function nextId() {
111
112
  return `line-${++lineCounter}`;
112
113
  }
113
114
  export default function App(props) {
114
- const { agent, session, permissionManager, adapter, orchestrator, costTracker, undoManager, pluginManager, mcpClient, toolRegistry, ollamaUrl, verbose, doSave, autoSaver, } = props;
115
+ const { agent, session, permissionManager, adapter, orchestrator, costTracker, undoManager, pluginManager, mcpClient, toolRegistry, agentRegistry, commandLoader, ollamaUrl, verbose, doSave, autoSaver, } = props;
115
116
  const { exit } = useApp();
116
117
  const [state, setState] = useState('idle');
117
118
  const [inputValue, setInputValue] = useState('');
@@ -119,6 +120,12 @@ export default function App(props) {
119
120
  const [spinnerText, setSpinnerText] = useState('');
120
121
  const [approval, setApproval] = useState(null);
121
122
  const [approvalInput, setApprovalInput] = useState('');
123
+ const approvalQueueRef = useRef([]);
124
+ const abortRef = useRef(null);
125
+ const [tokensIn, setTokensIn] = useState(0);
126
+ const [tokensOut, setTokensOut] = useState(0);
127
+ const [turnCount, setTurnCount] = useState(0);
128
+ const planModeRef = useRef(false);
122
129
  const currentModelRef = useRef(props.model);
123
130
  const activeTeamRef = useRef(props.activeTeamConfig);
124
131
  const stateRef = useRef(state);
@@ -227,17 +234,26 @@ export default function App(props) {
227
234
  let currentTool = '';
228
235
  let currentToolInput = {};
229
236
  let toolCallCount = 0;
237
+ const abortController = new AbortController();
238
+ abortRef.current = abortController;
230
239
  const callbacks = {
231
240
  onToolApproval: (toolName, input, riskLevel) => {
232
241
  return new Promise((resolve) => {
233
242
  stopSpinnerFn();
234
- setApproval({ toolName, input, riskLevel, resolve });
235
- setState('waiting_approval');
243
+ const request = { toolName, input, riskLevel, resolve };
244
+ // If we're already showing an approval prompt, queue this one
245
+ if (stateRef.current === 'waiting_approval') {
246
+ approvalQueueRef.current.push(request);
247
+ }
248
+ else {
249
+ setApproval(request);
250
+ setState('waiting_approval');
251
+ }
236
252
  });
237
253
  },
238
254
  };
239
255
  try {
240
- for await (const event of agent.stream(message, callbacks)) {
256
+ for await (const event of agent.stream(message, callbacks, abortController.signal)) {
241
257
  switch (event.type) {
242
258
  case 'text': {
243
259
  if (firstText) {
@@ -278,7 +294,7 @@ export default function App(props) {
278
294
  return `${DIM(k + ':')} ${WHITE(val)}`;
279
295
  })
280
296
  .join(' ');
281
- appendOutput(` ${TOOL_SYM} ${CYAN.bold(block.name)} ${toolSummary}`);
297
+ appendOutput(` ${YELLOW('⟳')} ${CYAN.bold(block.name)} ${toolSummary}`);
282
298
  startSpinner('tool', block.name);
283
299
  break;
284
300
  }
@@ -341,6 +357,9 @@ export default function App(props) {
341
357
  : '';
342
358
  appendOutput(` ${DIM(summary)}${tokenInfo}`);
343
359
  costTracker.record(currentModelRef.current, tokens.input_tokens, tokens.output_tokens, toolCallCount);
360
+ setTokensIn(prev => prev + tokens.input_tokens);
361
+ setTokensOut(prev => prev + tokens.output_tokens);
362
+ setTurnCount(prev => prev + 1);
344
363
  session.syncFromAgent(agent.getHistory());
345
364
  // Auto-compact if needed
346
365
  if (session.shouldCompact()) {
@@ -491,22 +510,53 @@ export default function App(props) {
491
510
  return false;
492
511
  }
493
512
  if (result === '__AGENTS_STATUS__') {
494
- if (!activeTeamRef.current) {
495
- appendOutput(` ${DIM('ℹ')} ${WHITE(`Solo mode (agent: ${GREEN('cmdr')}). Use /team <preset> for multi-agent.`)}`);
513
+ const agents = agentRegistry.list();
514
+ if (agents.length === 0) {
515
+ appendOutput(` ${DIM('No subagents loaded. Place .md files in .cmdr/agents/ or ~/.cmdr/agents/')}`);
496
516
  }
497
517
  else {
498
- const status = orchestrator.getStatus();
499
- const lines = ['', ` ${PURPLE.bold(`Team: ${activeTeamRef.current.name}`)}`, ''];
500
- for (const agentCfg of activeTeamRef.current.agents) {
501
- const agentStatus = status?.agents.find(a => a.name === agentCfg.name);
502
- const statusLabel = agentStatus ? DIM(agentStatus.status) : DIM('idle');
503
- lines.push(` ${GREEN('•')} ${WHITE(agentCfg.name.padEnd(12))} ${statusLabel}`);
518
+ const lines = ['', ` ${PURPLE.bold('Subagents')} ${DIM(`(${agents.length})`)}`, ''];
519
+ for (const ag of agents) {
520
+ const sourceLabel = ag.source === 'bundled' ? DIM('[bundled]') : ag.source === 'user' ? DIM('[user]') : DIM('[project]');
521
+ const toolCount = ag.tools.length;
522
+ lines.push(` ${GREEN('•')} ${CYAN(ag.name.padEnd(16))} ${WHITE(ag.description.slice(0, 60))}`);
523
+ lines.push(` ${DIM(`${toolCount} tools · ${ag.maxTurns} turns · temp ${ag.temperature}`)} ${sourceLabel}`);
504
524
  }
505
525
  lines.push('');
526
+ lines.push(` ${DIM('Use @<name> <task> to delegate, or /agents info <name> for details.')}`);
527
+ lines.push('');
506
528
  appendLines(lines);
507
529
  }
508
530
  return false;
509
531
  }
532
+ if (typeof result === 'string' && result.startsWith('__AGENT_INFO__:')) {
533
+ const agentName = result.slice('__AGENT_INFO__:'.length);
534
+ const ag = agentRegistry.get(agentName);
535
+ if (!ag) {
536
+ appendOutput(` ${ERROR_SYM} ${RED(`Unknown agent: ${agentName}`)}`);
537
+ }
538
+ else {
539
+ const lines = [
540
+ '',
541
+ ` ${PURPLE.bold(ag.name)} ${DIM(`[${ag.source}]`)}`,
542
+ ` ${WHITE(ag.description)}`,
543
+ '',
544
+ ` ${DIM('Kind:')} ${ag.kind}`,
545
+ ` ${DIM('Model:')} ${ag.model ?? 'inherit from parent'}`,
546
+ ` ${DIM('Temperature:')} ${ag.temperature}`,
547
+ ` ${DIM('Max turns:')} ${ag.maxTurns}`,
548
+ ` ${DIM('Tools:')} ${ag.tools.join(', ') || 'none'}`,
549
+ ` ${DIM('Source:')} ${ag.filePath}`,
550
+ '',
551
+ ` ${DIM('System prompt:')}`,
552
+ ...ag.systemPrompt.split('\n').slice(0, 10).map(l => ` ${DIM('│')} ${WHITE(l)}`),
553
+ ag.systemPrompt.split('\n').length > 10 ? ` ${DIM(` ... (${ag.systemPrompt.split('\n').length - 10} more lines)`)}` : '',
554
+ '',
555
+ ];
556
+ appendLines(lines.filter(Boolean));
557
+ }
558
+ return false;
559
+ }
510
560
  if (result === '__TASKS_STATUS__') {
511
561
  const status = orchestrator.getStatus();
512
562
  if (!status) {
@@ -618,11 +668,45 @@ export default function App(props) {
618
668
  }
619
669
  return false;
620
670
  }
671
+ if (result === '__CUSTOM_COMMANDS_LIST__') {
672
+ const cmds = commandLoader.list();
673
+ if (cmds.length === 0) {
674
+ appendOutput(` ${DIM('No custom commands. Create with /command create <name>')}`);
675
+ }
676
+ else {
677
+ const lines = ['', ` ${PURPLE.bold('Custom commands')} ${DIM(`(${cmds.length})`)}`, ''];
678
+ for (const cmd of cmds) {
679
+ lines.push(` ${GREEN('•')} ${CYAN('/' + cmd.name.padEnd(16))} ${WHITE(cmd.description)} ${DIM(`[${cmd.source}]`)}`);
680
+ }
681
+ lines.push('');
682
+ lines.push(` ${DIM('Run with: /<name> <arguments>')}`);
683
+ lines.push('');
684
+ appendLines(lines);
685
+ }
686
+ return false;
687
+ }
688
+ if (typeof result === 'string' && result.startsWith('__CUSTOM_COMMAND_CREATE__:')) {
689
+ const cmdName = result.slice('__CUSTOM_COMMAND_CREATE__:'.length);
690
+ const filePath = commandLoader.scaffold(cmdName, process.cwd());
691
+ appendOutput(` ${DIM('ℹ')} ${WHITE(`Created command scaffold: ${GREEN(filePath)}`)}`);
692
+ commandLoader.loadAll(process.cwd());
693
+ return false;
694
+ }
695
+ if (result === '__PLAN_TOGGLE__') {
696
+ planModeRef.current = !planModeRef.current;
697
+ if (planModeRef.current) {
698
+ appendOutput(` ${PURPLE('◈')} ${WHITE('Plan mode')} ${GREEN('ON')} ${DIM('— agent will only analyze and plan, no changes')}`);
699
+ }
700
+ else {
701
+ appendOutput(` ${PURPLE('◈')} ${WHITE('Plan mode')} ${RED('OFF')} ${DIM('— full tool access restored')}`);
702
+ }
703
+ return false;
704
+ }
621
705
  if (result)
622
706
  appendOutput(String(result));
623
707
  return false;
624
708
  }, [agent, session, permissionManager, adapter, ollamaUrl, toolRegistry,
625
- orchestrator, costTracker, undoManager, pluginManager, mcpClient,
709
+ orchestrator, costTracker, undoManager, pluginManager, mcpClient, commandLoader,
626
710
  cleanupAndExit, appendOutput, appendLines]);
627
711
  // ---------------------------------------------------------------------------
628
712
  // Submit handler
@@ -639,13 +723,51 @@ export default function App(props) {
639
723
  setState('processing');
640
724
  try {
641
725
  if (isSlashCommand(input)) {
642
- const shouldExit = await processCommand(input);
643
- if (shouldExit)
644
- return;
726
+ // Check if it's a custom command first
727
+ const { name: cmdName, args: cmdArgs } = parseSlashCommand(input);
728
+ const customCmd = commandLoader.get(cmdName);
729
+ if (customCmd && !getCommand(cmdName)) {
730
+ // Resolve template and send as user message
731
+ const resolved = commandLoader.resolve(customCmd, cmdArgs, process.cwd());
732
+ if (planModeRef.current) {
733
+ const planMsg = `[System: PLAN MODE is active. Analyze only — do NOT make changes. Produce a numbered step-by-step plan.]\n\n${resolved}`;
734
+ await handleUserMessage(planMsg);
735
+ }
736
+ else {
737
+ await handleUserMessage(resolved);
738
+ }
739
+ }
740
+ else {
741
+ const shouldExit = await processCommand(input);
742
+ if (shouldExit)
743
+ return;
744
+ }
745
+ }
746
+ else if (input.startsWith('@')) {
747
+ // @agent syntax: @investigator explain the auth flow
748
+ const spaceIdx = input.indexOf(' ');
749
+ const agentName = spaceIdx === -1 ? input.slice(1) : input.slice(1, spaceIdx);
750
+ const agentTask = spaceIdx === -1 ? '' : input.slice(spaceIdx + 1).trim();
751
+ if (agentRegistry.has(agentName)) {
752
+ if (!agentTask) {
753
+ appendOutput(` ${ERROR_SYM} ${RED('Usage:')} @${agentName} <task description>`);
754
+ }
755
+ else {
756
+ const delegateMsg = `[System: The user has requested the "${agentName}" subagent. Please immediately call the "${agentName}" tool with the following task: ${agentTask}]`;
757
+ await handleUserMessage(delegateMsg);
758
+ }
759
+ }
760
+ else {
761
+ appendOutput(` ${ERROR_SYM} ${RED(`Unknown agent: ${agentName}`)}. Use /agents to list available agents.`);
762
+ }
645
763
  }
646
764
  else if (activeTeamRef.current) {
647
765
  await handleTeamMessage(input, activeTeamRef.current);
648
766
  }
767
+ else if (planModeRef.current) {
768
+ const planMsg = `[System: PLAN MODE is active. Analyze the request and produce a numbered step-by-step plan. Do NOT make any changes.]\n\n${input}`;
769
+ await handleUserMessage(planMsg);
770
+ }
649
771
  else {
650
772
  await handleUserMessage(input);
651
773
  }
@@ -673,7 +795,21 @@ export default function App(props) {
673
795
  return;
674
796
  }
675
797
  lastSigintRef.current = now;
676
- if (stateRef.current === 'processing') {
798
+ if (stateRef.current === 'processing' || stateRef.current === 'waiting_approval') {
799
+ // Abort the current agent turn
800
+ if (abortRef.current) {
801
+ abortRef.current.abort();
802
+ abortRef.current = null;
803
+ }
804
+ // Drain any pending approval queue
805
+ for (const pending of approvalQueueRef.current) {
806
+ pending.resolve('deny');
807
+ }
808
+ approvalQueueRef.current = [];
809
+ if (approval) {
810
+ approval.resolve('deny');
811
+ setApproval(null);
812
+ }
677
813
  appendOutput(`\n ${DIM('Interrupt — press Ctrl+C again to exit.')}`);
678
814
  }
679
815
  else if (stateRef.current === 'idle') {
@@ -706,7 +842,15 @@ export default function App(props) {
706
842
  }
707
843
  const resolve = approval.resolve;
708
844
  setApproval(null);
709
- setState('processing');
845
+ // Show next queued approval, or return to processing
846
+ const next = approvalQueueRef.current.shift();
847
+ if (next) {
848
+ setApproval(next);
849
+ // Stay in waiting_approval state
850
+ }
851
+ else {
852
+ setState('processing');
853
+ }
710
854
  resolve(decision);
711
855
  }, [approval]);
712
856
  // ---------------------------------------------------------------------------
@@ -717,6 +861,6 @@ export default function App(props) {
717
861
  ? val.length > 120 ? val.slice(0, 120) + DIM('...') : val
718
862
  : JSON.stringify(val).slice(0, 120);
719
863
  return _jsx(Text, { children: ` ${DIM(key + ':')} ${WHITE(display)}` }, key);
720
- }), _jsx(Text, { children: '' }), _jsx(Text, { children: ` ${GREEN('y')}${DIM('es')} ${DIM('/')} ${RED('n')}${DIM('o')} ${DIM('/')} ${PURPLE('a')}${DIM('lways allow this tool')}` }), _jsxs(Box, { children: [_jsx(Text, { children: ` ${YELLOW('?')} ` }), _jsx(TextInput, { value: approvalInput, onChange: setApprovalInput, onSubmit: handleApprovalSubmit })] })] })), state === 'idle' && (_jsxs(Box, { children: [_jsxs(Text, { children: [GREEN.bold('❯'), " "] }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit })] }))] }));
864
+ }), _jsx(Text, { children: '' }), _jsx(Text, { children: ` ${GREEN('y')}${DIM('es')} ${DIM('/')} ${RED('n')}${DIM('o')} ${DIM('/')} ${PURPLE('a')}${DIM('lways allow this tool')}` }), _jsxs(Box, { children: [_jsx(Text, { children: ` ${YELLOW('?')} ` }), _jsx(TextInput, { value: approvalInput, onChange: setApprovalInput, onSubmit: handleApprovalSubmit })] })] })), state === 'idle' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(StatusBar, { model: currentModelRef.current, tokensIn: tokensIn, tokensOut: tokensOut, turns: turnCount, agentCount: agentRegistry.list().length, permissionMode: permissionManager.getMode(), cwd: process.cwd() }), _jsxs(Box, { children: [_jsxs(Text, { children: [GREEN.bold('❯'), " "] }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit })] })] }))] }));
721
865
  }
722
866
  //# sourceMappingURL=App.js.map