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
package/README.md CHANGED
@@ -72,6 +72,7 @@ cmdr --cwd /path/to/project # Override working directory
72
72
  | `--cwd <path>` | Set working directory |
73
73
  | `--verbose` | Print full tool output |
74
74
  | `--dangerously-skip-permissions` | Auto-approve all tool calls |
75
+ | `--max-turns <n>` | Limit agent tool-call turns |
75
76
  | `-h, --help` | Show help |
76
77
  | `-v, --version` | Show version |
77
78
 
@@ -203,6 +204,24 @@ enabled = false # opt-in local-only usage stats
203
204
  | `CMDR_MODEL` | `qwen2.5-coder:14b` | Default model |
204
205
  | `CMDR_OLLAMA_URL` | `http://localhost:11434` | Ollama server URL |
205
206
 
207
+ ## Benchmark Results
208
+
209
+ ### Custom Eval Suite (50 tasks, 4 tiers)
210
+
211
+ | Model | Pass Rate | Score | Grade |
212
+ |---|---|---|---|
213
+ | qwen3-coder:latest (14B) | 42/50 (84%) | ~160/197 | **S** |
214
+
215
+ Grade A at 38/50 (71.6%) after the v1.3.0 system prompt rewrite alone (+8 tasks, +19pp from v1.2). Verify script hardening pushed it to 42/50.
216
+
217
+ ### HumanEval (164 tasks, pass@1)
218
+
219
+ | Model | pass@1 | Passed |
220
+ |---|---|---|
221
+ | minimax-m2.5:cloud | **95.7%** | 157/164 |
222
+
223
+ All benchmarks run through cmdr's eval harness on local hardware (Ollama). No cloud inference for the custom eval suite.
224
+
206
225
  ## Architecture
207
226
 
208
227
  ```
package/dist/bin/cmdr.js CHANGED
@@ -11,7 +11,7 @@ import { GREEN, PURPLE, DIM, renderError, WHITE, CYAN } from '../src/cli/theme.j
11
11
  import { OllamaAdapter } from '../src/llm/ollama.js';
12
12
  import { checkForUpdate } from '../src/cli/update-checker.js';
13
13
  import * as readline from 'readline';
14
- const VERSION = '1.2.2';
14
+ const VERSION = '2.0.0';
15
15
  /** Prompt user to pick a model from the list. */
16
16
  function promptModelSelection(models) {
17
17
  return new Promise((resolve) => {
@@ -93,6 +93,8 @@ async function main() {
93
93
  continue: args.continue,
94
94
  verbose: args.verbose,
95
95
  team: args.team,
96
+ maxTurns: args.maxTurns,
97
+ outputFormat: args.outputFormat,
96
98
  });
97
99
  }
98
100
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"cmdr.js","sourceRoot":"","sources":["../../bin/cmdr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmdr.js","sourceRoot":"","sources":["../../bin/cmdr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Agent Executor — runs a subagent to completion in an isolated context.
3
+ *
4
+ * Each subagent gets its own AgentRunner with:
5
+ * - Restricted tool set (only tools listed in the agent definition)
6
+ * - Its own conversation history (does NOT pollute parent context)
7
+ * - Its own system prompt
8
+ */
9
+ import type { LLMAdapter } from '../core/types.js';
10
+ import { ToolRegistry } from '../tools/registry.js';
11
+ import type { AgentDefinition } from './registry.js';
12
+ export interface SubagentResult {
13
+ output: string;
14
+ tokensUsed: {
15
+ input: number;
16
+ output: number;
17
+ };
18
+ turns: number;
19
+ }
20
+ export declare class AgentExecutor {
21
+ /**
22
+ * Run a subagent to completion with its own isolated context.
23
+ *
24
+ * @param definition — The agent definition (from registry)
25
+ * @param task — The task/question to delegate
26
+ * @param parentModel — The parent agent's model (used if definition.model is null)
27
+ * @param adapter — The LLM adapter to use
28
+ * @param parentToolRegistry — The parent's full tool registry (we pick allowed tools)
29
+ */
30
+ execute(definition: AgentDefinition, task: string, parentModel: string, adapter: LLMAdapter, parentToolRegistry: ToolRegistry): Promise<SubagentResult>;
31
+ }
32
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/agents/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,aAAa;IACxB;;;;;;;;OAQG;IACG,OAAO,CACX,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,EACnB,kBAAkB,EAAE,YAAY,GAC/B,OAAO,CAAC,cAAc,CAAC;CAkC3B"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Agent Executor — runs a subagent to completion in an isolated context.
3
+ *
4
+ * Each subagent gets its own AgentRunner with:
5
+ * - Restricted tool set (only tools listed in the agent definition)
6
+ * - Its own conversation history (does NOT pollute parent context)
7
+ * - Its own system prompt
8
+ */
9
+ import { Agent } from '../core/agent.js';
10
+ import { ToolRegistry } from '../tools/registry.js';
11
+ export class AgentExecutor {
12
+ /**
13
+ * Run a subagent to completion with its own isolated context.
14
+ *
15
+ * @param definition — The agent definition (from registry)
16
+ * @param task — The task/question to delegate
17
+ * @param parentModel — The parent agent's model (used if definition.model is null)
18
+ * @param adapter — The LLM adapter to use
19
+ * @param parentToolRegistry — The parent's full tool registry (we pick allowed tools)
20
+ */
21
+ async execute(definition, task, parentModel, adapter, parentToolRegistry) {
22
+ // 1. Create a restricted ToolRegistry with only the agent's allowed tools
23
+ const agentTools = new ToolRegistry();
24
+ for (const toolName of definition.tools) {
25
+ const tool = parentToolRegistry.get(toolName);
26
+ if (tool)
27
+ agentTools.register(tool);
28
+ }
29
+ // 2. Create Agent with the subagent's config (isolated context)
30
+ const agent = new Agent({
31
+ name: definition.name,
32
+ model: definition.model ?? parentModel,
33
+ systemPrompt: definition.systemPrompt,
34
+ tools: definition.tools,
35
+ maxTurns: definition.maxTurns,
36
+ temperature: definition.temperature,
37
+ }, adapter, agentTools);
38
+ // 3. Run to completion, collecting all text output
39
+ const result = await agent.run(task);
40
+ return {
41
+ output: result.output,
42
+ tokensUsed: {
43
+ input: result.tokenUsage.input_tokens,
44
+ output: result.tokenUsage.output_tokens,
45
+ },
46
+ turns: result.toolCalls.length,
47
+ };
48
+ }
49
+ }
50
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/agents/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AASnD,MAAM,OAAO,aAAa;IACxB;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CACX,UAA2B,EAC3B,IAAY,EACZ,WAAmB,EACnB,OAAmB,EACnB,kBAAgC;QAEhC,0EAA0E;QAC1E,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE,CAAA;QACrC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC7C,IAAI,IAAI;gBAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAED,gEAAgE;QAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB;YACE,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,WAAW;YACtC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,EACD,OAAO,EACP,UAAU,CACX,CAAA;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpC,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE;gBACV,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY;gBACrC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;aACxC;YACD,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;SAC/B,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Agent system — subagents as tools.
3
+ */
4
+ export { AgentRegistry, type AgentDefinition } from './registry.js';
5
+ export { AgentExecutor, type SubagentResult } from './executor.js';
6
+ export { createSubagentTool } from './subagent-tool.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Agent system — subagents as tools.
3
+ */
4
+ export { AgentRegistry } from './registry.js';
5
+ export { AgentExecutor } from './executor.js';
6
+ export { createSubagentTool } from './subagent-tool.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,aAAa,EAAuB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Agent Registry — discovers and manages subagent definitions from markdown files.
3
+ *
4
+ * Loading priority (project overrides user overrides bundled):
5
+ * .cmdr/agents/*.md — project-level (shared with team)
6
+ * ~/.cmdr/agents/*.md — user-level (personal agents)
7
+ * src/agents/bundled/*.md — bundled with cmdr (shipped defaults)
8
+ */
9
+ export interface AgentDefinition {
10
+ name: string;
11
+ description: string;
12
+ kind: 'local' | 'remote';
13
+ tools: string[];
14
+ model: string | null;
15
+ temperature: number;
16
+ maxTurns: number;
17
+ systemPrompt: string;
18
+ source: 'bundled' | 'user' | 'project';
19
+ filePath: string;
20
+ }
21
+ export declare class AgentRegistry {
22
+ private agents;
23
+ /** Load all agent definitions from all three source directories. */
24
+ loadAll(projectRoot: string): Promise<void>;
25
+ /** Get a specific agent by name. */
26
+ get(name: string): AgentDefinition | undefined;
27
+ /** List all registered agents. */
28
+ list(): AgentDefinition[];
29
+ /** Check if an agent exists. */
30
+ has(name: string): boolean;
31
+ /** Register a runtime-defined agent (for programmatic use). */
32
+ register(def: AgentDefinition): void;
33
+ /** Unregister an agent. */
34
+ unregister(name: string): void;
35
+ }
36
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;IACxB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAmJD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAqC;IAEnD,oEAAoE;IAC9D,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjD,oCAAoC;IACpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI9C,kCAAkC;IAClC,IAAI,IAAI,eAAe,EAAE;IAIzB,gCAAgC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAIpC,2BAA2B;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG/B"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Agent Registry — discovers and manages subagent definitions from markdown files.
3
+ *
4
+ * Loading priority (project overrides user overrides bundled):
5
+ * .cmdr/agents/*.md — project-level (shared with team)
6
+ * ~/.cmdr/agents/*.md — user-level (personal agents)
7
+ * src/agents/bundled/*.md — bundled with cmdr (shipped defaults)
8
+ */
9
+ import { readdir, readFile } from 'fs/promises';
10
+ import { join, dirname } from 'path';
11
+ import { fileURLToPath } from 'url';
12
+ import { existsSync } from 'fs';
13
+ import { homedir } from 'os';
14
+ function parseFrontmatter(content) {
15
+ const match = content.match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/);
16
+ if (!match) {
17
+ return { frontmatter: {}, body: content };
18
+ }
19
+ const yamlBlock = match[1];
20
+ const body = match[2].trim();
21
+ const frontmatter = {};
22
+ let currentKey = '';
23
+ let inArray = false;
24
+ let arrayItems = [];
25
+ for (const line of yamlBlock.split('\n')) {
26
+ const trimmed = line.trim();
27
+ if (!trimmed || trimmed.startsWith('#'))
28
+ continue;
29
+ // Array item
30
+ if (inArray && trimmed.startsWith('- ')) {
31
+ arrayItems.push(trimmed.slice(2).trim());
32
+ continue;
33
+ }
34
+ // End previous array
35
+ if (inArray) {
36
+ frontmatter[currentKey] = arrayItems;
37
+ inArray = false;
38
+ arrayItems = [];
39
+ }
40
+ const colonIdx = trimmed.indexOf(':');
41
+ if (colonIdx === -1)
42
+ continue;
43
+ const key = trimmed.slice(0, colonIdx).trim();
44
+ const rawValue = trimmed.slice(colonIdx + 1).trim();
45
+ if (rawValue === '' || rawValue === '[]') {
46
+ // Could be start of an array or empty value
47
+ currentKey = key;
48
+ if (rawValue === '[]') {
49
+ frontmatter[key] = [];
50
+ }
51
+ else {
52
+ inArray = true;
53
+ arrayItems = [];
54
+ }
55
+ continue;
56
+ }
57
+ // Parse value
58
+ if (rawValue === 'null' || rawValue === '~') {
59
+ frontmatter[key] = null;
60
+ }
61
+ else if (rawValue === 'true') {
62
+ frontmatter[key] = true;
63
+ }
64
+ else if (rawValue === 'false') {
65
+ frontmatter[key] = false;
66
+ }
67
+ else if (/^-?\d+(\.\d+)?$/.test(rawValue)) {
68
+ frontmatter[key] = Number(rawValue);
69
+ }
70
+ else {
71
+ // Strip quotes
72
+ frontmatter[key] = rawValue.replace(/^["']|["']$/g, '');
73
+ }
74
+ }
75
+ // Flush last array
76
+ if (inArray) {
77
+ frontmatter[currentKey] = arrayItems;
78
+ }
79
+ return { frontmatter: frontmatter, body };
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // Agent file parser
83
+ // ---------------------------------------------------------------------------
84
+ function parseAgentFile(content, filePath, source) {
85
+ const { frontmatter, body } = parseFrontmatter(content);
86
+ if (!frontmatter.name || !frontmatter.description) {
87
+ return null;
88
+ }
89
+ return {
90
+ name: frontmatter.name,
91
+ description: frontmatter.description,
92
+ kind: frontmatter.kind ?? 'local',
93
+ tools: Array.isArray(frontmatter.tools) ? frontmatter.tools : [],
94
+ model: frontmatter.model === undefined ? null : frontmatter.model,
95
+ temperature: frontmatter.temperature ?? 0.3,
96
+ maxTurns: frontmatter.max_turns ?? 15,
97
+ systemPrompt: body,
98
+ source,
99
+ filePath,
100
+ };
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // Directory loader
104
+ // ---------------------------------------------------------------------------
105
+ async function loadAgentsFromDir(dir, source) {
106
+ if (!existsSync(dir))
107
+ return [];
108
+ const agents = [];
109
+ try {
110
+ const entries = await readdir(dir);
111
+ for (const entry of entries) {
112
+ if (!entry.endsWith('.md'))
113
+ continue;
114
+ const filePath = join(dir, entry);
115
+ const content = await readFile(filePath, 'utf-8');
116
+ const def = parseAgentFile(content, filePath, source);
117
+ if (def)
118
+ agents.push(def);
119
+ }
120
+ }
121
+ catch {
122
+ // Directory not readable — skip silently
123
+ }
124
+ return agents;
125
+ }
126
+ // ---------------------------------------------------------------------------
127
+ // AgentRegistry
128
+ // ---------------------------------------------------------------------------
129
+ export class AgentRegistry {
130
+ agents = new Map();
131
+ /** Load all agent definitions from all three source directories. */
132
+ async loadAll(projectRoot) {
133
+ const __dirname = dirname(fileURLToPath(import.meta.url));
134
+ // Load in priority order: bundled first, then user, then project
135
+ // Later sources override earlier ones (project > user > bundled)
136
+ const bundledDir = join(__dirname, 'bundled');
137
+ const userDir = join(homedir(), '.cmdr', 'agents');
138
+ const projectDir = join(projectRoot, '.cmdr', 'agents');
139
+ const bundled = await loadAgentsFromDir(bundledDir, 'bundled');
140
+ const user = await loadAgentsFromDir(userDir, 'user');
141
+ const project = await loadAgentsFromDir(projectDir, 'project');
142
+ // Register in priority order — later registrations override
143
+ for (const def of [...bundled, ...user, ...project]) {
144
+ this.agents.set(def.name, def);
145
+ }
146
+ }
147
+ /** Get a specific agent by name. */
148
+ get(name) {
149
+ return this.agents.get(name);
150
+ }
151
+ /** List all registered agents. */
152
+ list() {
153
+ return Array.from(this.agents.values());
154
+ }
155
+ /** Check if an agent exists. */
156
+ has(name) {
157
+ return this.agents.has(name);
158
+ }
159
+ /** Register a runtime-defined agent (for programmatic use). */
160
+ register(def) {
161
+ this.agents.set(def.name, def);
162
+ }
163
+ /** Unregister an agent. */
164
+ unregister(name) {
165
+ this.agents.delete(name);
166
+ }
167
+ }
168
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/agents/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Subagent Tool — wraps a subagent definition as a standard cmdr tool.
3
+ *
4
+ * When the main agent calls this tool, it:
5
+ * 1. Spins up an isolated subagent with restricted tools
6
+ * 2. Runs the task to completion
7
+ * 3. Returns the subagent's output as the tool result
8
+ *
9
+ * Subagent tools have 'read' permission — they're always safe from HITL
10
+ * perspective because the subagent itself has restricted tools.
11
+ */
12
+ import type { AgentDefinition } from './registry.js';
13
+ import { AgentExecutor } from './executor.js';
14
+ import type { LLMAdapter } from '../core/types.js';
15
+ import type { ToolRegistry } from '../tools/registry.js';
16
+ /**
17
+ * Create a tool definition that wraps a subagent.
18
+ *
19
+ * @param definition — The agent definition from the registry
20
+ * @param executor — The shared AgentExecutor instance
21
+ * @param adapter — The LLM adapter for the subagent to use
22
+ * @param parentToolRegistry — The parent's tool registry (subagent picks from this)
23
+ */
24
+ export declare function createSubagentTool(definition: AgentDefinition, executor: AgentExecutor, adapter: LLMAdapter, parentToolRegistry: ToolRegistry): import("../core/types.js").ToolDefinition<{
25
+ task: string;
26
+ }>;
27
+ //# sourceMappingURL=subagent-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-tool.d.ts","sourceRoot":"","sources":["../../../src/agents/subagent-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,UAAU,EACnB,kBAAkB,EAAE,YAAY;;GAoBjC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Subagent Tool — wraps a subagent definition as a standard cmdr tool.
3
+ *
4
+ * When the main agent calls this tool, it:
5
+ * 1. Spins up an isolated subagent with restricted tools
6
+ * 2. Runs the task to completion
7
+ * 3. Returns the subagent's output as the tool result
8
+ *
9
+ * Subagent tools have 'read' permission — they're always safe from HITL
10
+ * perspective because the subagent itself has restricted tools.
11
+ */
12
+ import { z } from 'zod';
13
+ import { defineTool } from '../tools/registry.js';
14
+ /**
15
+ * Create a tool definition that wraps a subagent.
16
+ *
17
+ * @param definition — The agent definition from the registry
18
+ * @param executor — The shared AgentExecutor instance
19
+ * @param adapter — The LLM adapter for the subagent to use
20
+ * @param parentToolRegistry — The parent's tool registry (subagent picks from this)
21
+ */
22
+ export function createSubagentTool(definition, executor, adapter, parentToolRegistry) {
23
+ return defineTool({
24
+ name: definition.name,
25
+ description: definition.description,
26
+ inputSchema: z.object({
27
+ task: z.string().describe('The specific task or question to delegate to this agent'),
28
+ }),
29
+ execute: async (input, context) => {
30
+ const parentModel = context.agent.model;
31
+ const result = await executor.execute(definition, input.task, parentModel, adapter, parentToolRegistry);
32
+ return { data: result.output, isError: false };
33
+ },
34
+ });
35
+ }
36
+ //# sourceMappingURL=subagent-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-tool.js","sourceRoot":"","sources":["../../../src/agents/subagent-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMjD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAA2B,EAC3B,QAAuB,EACvB,OAAmB,EACnB,kBAAgC;IAEhC,OAAO,UAAU,CAAC;QAChB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;SACrF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;YACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CACnC,UAAU,EACV,KAAK,CAAC,IAAI,EACV,WAAW,EACX,OAAO,EACP,kBAAkB,CACnB,CAAA;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAChD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -13,6 +13,8 @@ export interface CliArgs {
13
13
  verbose?: boolean;
14
14
  cwd?: string;
15
15
  team?: string;
16
+ maxTurns?: number;
17
+ outputFormat?: 'text' | 'json' | 'stream-json';
16
18
  }
17
19
  export declare function parseArgs(argv: string[]): CliArgs;
18
20
  export declare function printHelp(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CA8DjD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAyBhC"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAA;CAC/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAoEjD;AAED,wBAAgB,SAAS,IAAI,IAAI,CA2BhC"}
@@ -44,10 +44,16 @@ export function parseArgs(argv) {
44
44
  case '--verbose':
45
45
  args.verbose = true;
46
46
  break;
47
+ case '--max-turns':
48
+ args.maxTurns = parseInt(argv[++i], 10);
49
+ break;
47
50
  case '--team':
48
51
  case '-t':
49
52
  args.team = argv[++i];
50
53
  break;
54
+ case '--output-format':
55
+ args.outputFormat = argv[++i];
56
+ break;
51
57
  default:
52
58
  // If no flag prefix, treat as inline prompt
53
59
  if (!arg.startsWith('-') && !args.prompt) {
@@ -76,6 +82,8 @@ export function printHelp() {
76
82
  -t, --team <preset> Run in team mode (review, fullstack, security)
77
83
  --cwd <path> Set working directory
78
84
  --verbose Print full tool output (default: collapsed)
85
+ --max-turns <n> Maximum agent turns before stopping
86
+ --output-format <fmt> Output format: text (default), json, stream-json
79
87
  -h, --help Show this help
80
88
  -v, --version Show version
81
89
  --dangerously-skip-permissions Auto-approve all tool calls (yolo mode)
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAAY,EAAE,CAAA;IACxB,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAEnB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,IAAI;gBACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACtB,MAAK;YACP,KAAK,cAAc,CAAC;YACpB,KAAK,IAAI;gBACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC1B,MAAK;YACP,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAChB,MAAK;YACP,KAAK,WAAW,CAAC;YACjB,KAAK,IAAI;gBACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,MAAK;YACP,KAAK,UAAU,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACvB,MAAK;YACP,KAAK,gCAAgC;gBACnC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAA;gBACtC,MAAK;YACP,KAAK,UAAU,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACvB,MAAK;YACP,KAAK,YAAY,CAAC;YAClB,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACpB,MAAK;YACP,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACpB,MAAK;YACP,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,MAAK;YACP,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrB,MAAK;YACP;gBACE,4CAA4C;gBAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACrC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;gBACjB,CAAC;gBACD,MAAK;QACT,CAAC;QAED,CAAC,EAAE,CAAA;IACL,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBb,CAAC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAAY,EAAE,CAAA;IACxB,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAEnB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,IAAI;gBACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACtB,MAAK;YACP,KAAK,cAAc,CAAC;YACpB,KAAK,IAAI;gBACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC1B,MAAK;YACP,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAChB,MAAK;YACP,KAAK,WAAW,CAAC;YACjB,KAAK,IAAI;gBACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,MAAK;YACP,KAAK,UAAU,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACvB,MAAK;YACP,KAAK,gCAAgC;gBACnC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAA;gBACtC,MAAK;YACP,KAAK,UAAU,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACvB,MAAK;YACP,KAAK,YAAY,CAAC;YAClB,KAAK,IAAI;gBACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACpB,MAAK;YACP,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACpB,MAAK;YACP,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,MAAK;YACP,KAAK,aAAa;gBAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrB,MAAK;YACP,KAAK,iBAAiB;gBACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAoC,CAAA;gBAChE,MAAK;YACP;gBACE,4CAA4C;gBAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACrC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;gBACjB,CAAC;gBACD,MAAK;QACT,CAAC;QAED,CAAC,EAAE,CAAA;IACL,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBb,CAAC,CAAA;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA8C,MAAM,kBAAkB,CAAA;AAkBhG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjE;AAED,wBAAgB,cAAc,IAAI,YAAY,EAAE,CAE/C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU/E"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA8C,MAAM,kBAAkB,CAAA;AAoBhG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjE;AAED,wBAAgB,cAAc,IAAI,YAAY,EAAE,CAE/C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU/E"}