cmdr-agent 2.2.0 → 2.3.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 (57) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/cli/commands.js +1 -1
  3. package/dist/src/cli/commands.js.map +1 -1
  4. package/dist/src/cli/ink/App.d.ts +2 -0
  5. package/dist/src/cli/ink/App.d.ts.map +1 -1
  6. package/dist/src/cli/ink/App.js +56 -7
  7. package/dist/src/cli/ink/App.js.map +1 -1
  8. package/dist/src/cli/repl.d.ts.map +1 -1
  9. package/dist/src/cli/repl.js +35 -1
  10. package/dist/src/cli/repl.js.map +1 -1
  11. package/dist/src/config/mcp-registry.d.ts +45 -0
  12. package/dist/src/config/mcp-registry.d.ts.map +1 -0
  13. package/dist/src/config/mcp-registry.js +156 -0
  14. package/dist/src/config/mcp-registry.js.map +1 -0
  15. package/dist/src/config/schema.d.ts +8 -8
  16. package/dist/src/core/agent-runner.d.ts.map +1 -1
  17. package/dist/src/core/agent-runner.js +22 -0
  18. package/dist/src/core/agent-runner.js.map +1 -1
  19. package/dist/src/core/hooks.d.ts +61 -0
  20. package/dist/src/core/hooks.d.ts.map +1 -0
  21. package/dist/src/core/hooks.js +140 -0
  22. package/dist/src/core/hooks.js.map +1 -0
  23. package/dist/src/core/permissions.d.ts +43 -0
  24. package/dist/src/core/permissions.d.ts.map +1 -1
  25. package/dist/src/core/permissions.js +108 -0
  26. package/dist/src/core/permissions.js.map +1 -1
  27. package/dist/src/core/types.d.ts +5 -0
  28. package/dist/src/core/types.d.ts.map +1 -1
  29. package/dist/src/tools/built-in/cron-tools.d.ts +19 -0
  30. package/dist/src/tools/built-in/cron-tools.d.ts.map +1 -0
  31. package/dist/src/tools/built-in/cron-tools.js +86 -0
  32. package/dist/src/tools/built-in/cron-tools.js.map +1 -0
  33. package/dist/src/tools/built-in/index.d.ts +7 -1
  34. package/dist/src/tools/built-in/index.d.ts.map +1 -1
  35. package/dist/src/tools/built-in/index.js +13 -2
  36. package/dist/src/tools/built-in/index.js.map +1 -1
  37. package/dist/src/tools/built-in/mcp-resource-tools.d.ts +16 -0
  38. package/dist/src/tools/built-in/mcp-resource-tools.d.ts.map +1 -0
  39. package/dist/src/tools/built-in/mcp-resource-tools.js +73 -0
  40. package/dist/src/tools/built-in/mcp-resource-tools.js.map +1 -0
  41. package/dist/src/tools/built-in/plan-tools.d.ts +13 -0
  42. package/dist/src/tools/built-in/plan-tools.d.ts.map +1 -0
  43. package/dist/src/tools/built-in/plan-tools.js +42 -0
  44. package/dist/src/tools/built-in/plan-tools.js.map +1 -0
  45. package/dist/src/tools/built-in/task-tools.d.ts +22 -0
  46. package/dist/src/tools/built-in/task-tools.d.ts.map +1 -0
  47. package/dist/src/tools/built-in/task-tools.js +113 -0
  48. package/dist/src/tools/built-in/task-tools.js.map +1 -0
  49. package/dist/src/tools/built-in/todo-tool.d.ts +21 -0
  50. package/dist/src/tools/built-in/todo-tool.d.ts.map +1 -0
  51. package/dist/src/tools/built-in/todo-tool.js +52 -0
  52. package/dist/src/tools/built-in/todo-tool.js.map +1 -0
  53. package/dist/src/tools/built-in/web-search.d.ts +9 -0
  54. package/dist/src/tools/built-in/web-search.d.ts.map +1 -0
  55. package/dist/src/tools/built-in/web-search.js +89 -0
  56. package/dist/src/tools/built-in/web-search.js.map +1 -0
  57. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * MCP Server Registry — pre-configured MCP server definitions.
3
+ *
4
+ * These are NOT auto-connected. Users opt in via `/mcp add <name>`.
5
+ * Each entry describes how to launch the server and what env vars are needed.
6
+ */
7
+ import type { McpServerConfig } from '../core/types.js';
8
+ export interface McpServerDefinition {
9
+ /** Unique registry name */
10
+ name: string;
11
+ /** Human-readable description */
12
+ description: string;
13
+ /** npm package / command to run */
14
+ command: string;
15
+ /** Default CLI args */
16
+ args: string[];
17
+ /** Transport type */
18
+ transport: 'stdio' | 'http' | 'sse';
19
+ /** Required environment variables (user must set these) */
20
+ requiredEnv: string[];
21
+ /** Optional environment variables */
22
+ optionalEnv: string[];
23
+ /** Category for organization */
24
+ category: 'data' | 'search' | 'dev' | 'communication' | 'ai';
25
+ /** URL for more info */
26
+ homepage: string;
27
+ }
28
+ /**
29
+ * Top 10 MCP server definitions, ready to be activated.
30
+ */
31
+ export declare const MCP_SERVER_REGISTRY: McpServerDefinition[];
32
+ /** Look up a server definition by name. */
33
+ export declare function getServerDefinition(name: string): McpServerDefinition | undefined;
34
+ /** List all available server names. */
35
+ export declare function listAvailableServers(): McpServerDefinition[];
36
+ /**
37
+ * Convert a registry definition into an McpServerConfig for connection.
38
+ * Resolves required env vars from process.env.
39
+ */
40
+ export declare function toMcpConfig(def: McpServerDefinition, overrides?: Partial<McpServerConfig>): McpServerConfig;
41
+ /**
42
+ * Check which required env vars are missing for a server definition.
43
+ */
44
+ export declare function getMissingEnvVars(def: McpServerDefinition): string[];
45
+ //# sourceMappingURL=mcp-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-registry.d.ts","sourceRoot":"","sources":["../../../src/config/mcp-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,qBAAqB;IACrB,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;IACnC,2DAA2D;IAC3D,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI,CAAA;IAC5D,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EA+GpD,CAAA;AAED,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEjF;AAED,uCAAuC;AACvC,wBAAgB,oBAAoB,IAAI,mBAAmB,EAAE,CAE5D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAe3G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAEpE"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * MCP Server Registry — pre-configured MCP server definitions.
3
+ *
4
+ * These are NOT auto-connected. Users opt in via `/mcp add <name>`.
5
+ * Each entry describes how to launch the server and what env vars are needed.
6
+ */
7
+ /**
8
+ * Top 10 MCP server definitions, ready to be activated.
9
+ */
10
+ export const MCP_SERVER_REGISTRY = [
11
+ {
12
+ name: 'filesystem',
13
+ description: 'Read, write, and manage files on the local filesystem',
14
+ command: 'npx',
15
+ args: ['-y', '@modelcontextprotocol/server-filesystem', '.'],
16
+ transport: 'stdio',
17
+ requiredEnv: [],
18
+ optionalEnv: [],
19
+ category: 'dev',
20
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem',
21
+ },
22
+ {
23
+ name: 'github',
24
+ description: 'Interact with GitHub repos, issues, PRs, and code search',
25
+ command: 'npx',
26
+ args: ['-y', '@modelcontextprotocol/server-github'],
27
+ transport: 'stdio',
28
+ requiredEnv: ['GITHUB_PERSONAL_ACCESS_TOKEN'],
29
+ optionalEnv: [],
30
+ category: 'dev',
31
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/github',
32
+ },
33
+ {
34
+ name: 'memory',
35
+ description: 'Persistent knowledge graph memory for long-term context',
36
+ command: 'npx',
37
+ args: ['-y', '@modelcontextprotocol/server-memory'],
38
+ transport: 'stdio',
39
+ requiredEnv: [],
40
+ optionalEnv: [],
41
+ category: 'ai',
42
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/memory',
43
+ },
44
+ {
45
+ name: 'fetch',
46
+ description: 'Fetch and convert web pages to markdown for LLM consumption',
47
+ command: 'npx',
48
+ args: ['-y', '@modelcontextprotocol/server-fetch'],
49
+ transport: 'stdio',
50
+ requiredEnv: [],
51
+ optionalEnv: [],
52
+ category: 'search',
53
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/fetch',
54
+ },
55
+ {
56
+ name: 'sequential-thinking',
57
+ description: 'Dynamic chain-of-thought reasoning with branching and revision',
58
+ command: 'npx',
59
+ args: ['-y', '@modelcontextprotocol/server-sequential-thinking'],
60
+ transport: 'stdio',
61
+ requiredEnv: [],
62
+ optionalEnv: [],
63
+ category: 'ai',
64
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking',
65
+ },
66
+ {
67
+ name: 'brave-search',
68
+ description: 'Web and local search via Brave Search API',
69
+ command: 'npx',
70
+ args: ['-y', '@modelcontextprotocol/server-brave-search'],
71
+ transport: 'stdio',
72
+ requiredEnv: ['BRAVE_API_KEY'],
73
+ optionalEnv: [],
74
+ category: 'search',
75
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search',
76
+ },
77
+ {
78
+ name: 'playwright',
79
+ description: 'Browser automation — navigate, click, screenshot, scrape with Playwright',
80
+ command: 'npx',
81
+ args: ['-y', '@playwright/mcp@latest'],
82
+ transport: 'stdio',
83
+ requiredEnv: [],
84
+ optionalEnv: [],
85
+ category: 'dev',
86
+ homepage: 'https://github.com/microsoft/playwright-mcp',
87
+ },
88
+ {
89
+ name: 'postgres',
90
+ description: 'Query PostgreSQL databases with read-only access',
91
+ command: 'npx',
92
+ args: ['-y', '@modelcontextprotocol/server-postgres'],
93
+ transport: 'stdio',
94
+ requiredEnv: ['POSTGRES_CONNECTION_STRING'],
95
+ optionalEnv: [],
96
+ category: 'data',
97
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/postgres',
98
+ },
99
+ {
100
+ name: 'sqlite',
101
+ description: 'Query and analyze SQLite databases',
102
+ command: 'npx',
103
+ args: ['-y', '@modelcontextprotocol/server-sqlite'],
104
+ transport: 'stdio',
105
+ requiredEnv: [],
106
+ optionalEnv: ['SQLITE_DB_PATH'],
107
+ category: 'data',
108
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/sqlite',
109
+ },
110
+ {
111
+ name: 'slack',
112
+ description: 'Read and search Slack channels, threads, and messages',
113
+ command: 'npx',
114
+ args: ['-y', '@modelcontextprotocol/server-slack'],
115
+ transport: 'stdio',
116
+ requiredEnv: ['SLACK_BOT_TOKEN'],
117
+ optionalEnv: ['SLACK_TEAM_ID'],
118
+ category: 'communication',
119
+ homepage: 'https://github.com/modelcontextprotocol/servers/tree/main/src/slack',
120
+ },
121
+ ];
122
+ /** Look up a server definition by name. */
123
+ export function getServerDefinition(name) {
124
+ return MCP_SERVER_REGISTRY.find(s => s.name === name);
125
+ }
126
+ /** List all available server names. */
127
+ export function listAvailableServers() {
128
+ return [...MCP_SERVER_REGISTRY];
129
+ }
130
+ /**
131
+ * Convert a registry definition into an McpServerConfig for connection.
132
+ * Resolves required env vars from process.env.
133
+ */
134
+ export function toMcpConfig(def, overrides) {
135
+ const env = {};
136
+ for (const key of [...def.requiredEnv, ...def.optionalEnv]) {
137
+ const val = process.env[key];
138
+ if (val)
139
+ env[key] = val;
140
+ }
141
+ return {
142
+ name: def.name,
143
+ command: def.command,
144
+ args: def.args,
145
+ transport: def.transport,
146
+ env,
147
+ ...overrides,
148
+ };
149
+ }
150
+ /**
151
+ * Check which required env vars are missing for a server definition.
152
+ */
153
+ export function getMissingEnvVars(def) {
154
+ return def.requiredEnv.filter(key => !process.env[key]);
155
+ }
156
+ //# sourceMappingURL=mcp-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../../../src/config/mcp-registry.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,12 @@ export declare const McpServerSchema: z.ZodObject<{
7
7
  url: z.ZodString;
8
8
  apiKey: z.ZodOptional<z.ZodString>;
9
9
  }, "strip", z.ZodTypeAny, {
10
- name: string;
11
10
  url: string;
11
+ name: string;
12
12
  apiKey?: string | undefined;
13
13
  }, {
14
- name: string;
15
14
  url: string;
15
+ name: string;
16
16
  apiKey?: string | undefined;
17
17
  }>;
18
18
  export declare const CmdrConfigSchema: z.ZodObject<{
@@ -45,24 +45,24 @@ export declare const CmdrConfigSchema: z.ZodObject<{
45
45
  url: z.ZodString;
46
46
  apiKey: z.ZodOptional<z.ZodString>;
47
47
  }, "strip", z.ZodTypeAny, {
48
- name: string;
49
48
  url: string;
49
+ name: string;
50
50
  apiKey?: string | undefined;
51
51
  }, {
52
- name: string;
53
52
  url: string;
53
+ name: string;
54
54
  apiKey?: string | undefined;
55
55
  }>, "many">>;
56
56
  }, "strip", z.ZodTypeAny, {
57
57
  servers: {
58
- name: string;
59
58
  url: string;
59
+ name: string;
60
60
  apiKey?: string | undefined;
61
61
  }[];
62
62
  }, {
63
63
  servers?: {
64
- name: string;
65
64
  url: string;
65
+ name: string;
66
66
  apiKey?: string | undefined;
67
67
  }[] | undefined;
68
68
  }>>>;
@@ -94,8 +94,8 @@ export declare const CmdrConfigSchema: z.ZodObject<{
94
94
  } | undefined;
95
95
  mcp?: {
96
96
  servers: {
97
- name: string;
98
97
  url: string;
98
+ name: string;
99
99
  apiKey?: string | undefined;
100
100
  }[];
101
101
  } | undefined;
@@ -121,8 +121,8 @@ export declare const CmdrConfigSchema: z.ZodObject<{
121
121
  } | undefined;
122
122
  mcp?: {
123
123
  servers?: {
124
- name: string;
125
124
  url: string;
125
+ name: string;
126
126
  apiKey?: string | undefined;
127
127
  }[] | undefined;
128
128
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/core/agent-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/core/agent-runner.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { classifyIntent, filterToolsByIntent, detectFrustration, FRUSTRATION_NUDGE } from './intent.js';
7
7
  import { ContentReplacer } from './content-replacement.js';
8
+ import { globalEventBus } from './event-bus.js';
8
9
  // ---------------------------------------------------------------------------
9
10
  // Safe parallel tools — read-only tools that can safely run concurrently
10
11
  // ---------------------------------------------------------------------------
@@ -113,6 +114,8 @@ export class AgentRunner {
113
114
  if (turns >= this.maxTurns)
114
115
  break;
115
116
  turns++;
117
+ // Emit turn:start event
118
+ globalEventBus.emit('turn:start', { turn: turns, model: this.options.model });
116
119
  // Dynamic tool injection:
117
120
  // Turn 1 uses intent-filtered tools (may be empty for chat).
118
121
  // Turns 2+ (model is mid-agentic-loop after tool results) get full tools.
@@ -133,6 +136,8 @@ export class AgentRunner {
133
136
  let turnText = '';
134
137
  const pendingToolUse = [];
135
138
  let turnUsage = ZERO_USAGE;
139
+ // Emit llm:request event
140
+ globalEventBus.emit('llm:request', { model: this.options.model, messageCount: conversationMessages.length });
136
141
  for await (const event of this.adapter.stream(conversationMessages, turnChatOptions)) {
137
142
  if (event.type === 'text') {
138
143
  const chunk = event.data;
@@ -150,11 +155,14 @@ export class AgentRunner {
150
155
  turnUsage = response.usage;
151
156
  }
152
157
  else if (event.type === 'error') {
158
+ globalEventBus.emit('llm:error', { model: this.options.model, error: String(event.data.message) });
153
159
  yield event;
154
160
  return;
155
161
  }
156
162
  }
157
163
  totalUsage = addTokenUsage(totalUsage, turnUsage);
164
+ // Emit llm:response event
165
+ globalEventBus.emit('llm:response', { model: this.options.model, usage: turnUsage, stopReason: pendingToolUse.length > 0 ? 'tool_use' : 'end_turn' });
158
166
  // Build assistant content blocks
159
167
  if (turnText) {
160
168
  turnContent.push({ type: 'text', text: turnText });
@@ -172,6 +180,8 @@ export class AgentRunner {
172
180
  // Step 3: No tools? We're done.
173
181
  if (pendingToolUse.length === 0) {
174
182
  finalOutput = turnText;
183
+ // Emit turn:end for the final turn
184
+ globalEventBus.emit('turn:end', { turn: turns, tokenUsage: turnUsage, toolCallCount: 0 });
175
185
  break;
176
186
  }
177
187
  // Step 4: Execute tool calls — parallelize safe read-only tools,
@@ -189,6 +199,8 @@ export class AgentRunner {
189
199
  const allSafe = pendingToolUse.every(tc => SAFE_PARALLEL_TOOLS.has(tc.name));
190
200
  const executeOne = async (block) => {
191
201
  callbacks.onToolCall?.(block.name, block.input);
202
+ // Emit tool:before event
203
+ globalEventBus.emit('tool:before', { name: block.name, input: block.input });
192
204
  // --- HITL gate: check permissions before executing ---
193
205
  if (this.permissionManager && callbacks.onToolApproval) {
194
206
  const decision = await this.permissionManager.gate(block.name, block.input, callbacks.onToolApproval);
@@ -197,6 +209,7 @@ export class AgentRunner {
197
209
  data: `Tool "${block.name}" was denied by the user.`,
198
210
  isError: true,
199
211
  };
212
+ globalEventBus.emit('tool:denied', { name: block.name, reason: 'User denied permission' });
200
213
  callbacks.onToolResult?.(block.name, deniedResult);
201
214
  const resultBlock = {
202
215
  type: 'tool_result',
@@ -222,6 +235,13 @@ export class AgentRunner {
222
235
  result = { data: message, isError: true };
223
236
  }
224
237
  const duration = Date.now() - startTime;
238
+ // Emit tool lifecycle events
239
+ if (result.isError) {
240
+ globalEventBus.emit('tool:error', { name: block.name, error: result.data });
241
+ }
242
+ else {
243
+ globalEventBus.emit('tool:after', { name: block.name, result, durationMs: duration });
244
+ }
225
245
  callbacks.onToolResult?.(block.name, result);
226
246
  // Truncate large outputs to prevent context overflow
227
247
  const truncatedData = result.isError
@@ -265,6 +285,8 @@ export class AgentRunner {
265
285
  };
266
286
  conversationMessages.push(toolResultMessage);
267
287
  callbacks.onMessage?.(toolResultMessage);
288
+ // Emit turn:end event
289
+ globalEventBus.emit('turn:end', { turn: turns, tokenUsage: turnUsage, toolCallCount: pendingToolUse.length });
268
290
  // Loop back — send updated conversation to LLM
269
291
  }
270
292
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../../src/core/agent-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../../src/core/agent-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Hooks — shell-based pre/post hooks for tool and command lifecycle.
3
+ *
4
+ * Hooks are defined in .cmdr.toml under [hooks]:
5
+ * [hooks]
6
+ * "pre:tool:bash" = "echo 'About to run bash tool'"
7
+ * "post:tool:file_write" = "./scripts/lint-changed.sh"
8
+ * "pre:command:commit" = "npm test"
9
+ * "session:end" = "./scripts/cleanup.sh"
10
+ *
11
+ * Hook types:
12
+ * pre:tool:<name> — runs before a tool executes (can block on non-zero exit)
13
+ * post:tool:<name> — runs after a tool completes
14
+ * pre:command:<name> — runs before a slash command
15
+ * post:command:<name> — runs after a slash command
16
+ * session:start — runs when session begins
17
+ * session:end — runs when session ends
18
+ *
19
+ * Hooks receive context via environment variables:
20
+ * CMDR_HOOK_TYPE, CMDR_TOOL_NAME, CMDR_TOOL_INPUT (JSON), CMDR_CWD
21
+ */
22
+ export interface HookConfig {
23
+ [pattern: string]: string;
24
+ }
25
+ export interface HookResult {
26
+ success: boolean;
27
+ output?: string;
28
+ error?: string;
29
+ }
30
+ export declare class HookManager {
31
+ private hooks;
32
+ private cwd;
33
+ constructor(hookConfig?: HookConfig, cwd?: string);
34
+ /** Register hooks from config. */
35
+ loadConfig(config: HookConfig): void;
36
+ /** Find matching hooks for a given event pattern. */
37
+ private findHooks;
38
+ /** Execute a hook command. Returns result with success/failure info. */
39
+ private executeHook;
40
+ /**
41
+ * Run pre-tool hooks. Returns false if a hook blocks execution (non-zero exit).
42
+ */
43
+ runPreTool(toolName: string, input: Record<string, unknown>): Promise<{
44
+ allowed: boolean;
45
+ output?: string;
46
+ }>;
47
+ /** Run post-tool hooks (informational — cannot block). */
48
+ runPostTool(toolName: string, input: Record<string, unknown>, success: boolean): Promise<void>;
49
+ /** Run session lifecycle hooks. */
50
+ runSessionHook(type: 'session:start' | 'session:end'): Promise<void>;
51
+ /** Wire hooks into the EventBus for automatic firing. */
52
+ wireEventBus(): void;
53
+ /** Get the number of registered hooks. */
54
+ get count(): number;
55
+ /** List all registered hook patterns. */
56
+ list(): Array<{
57
+ pattern: string;
58
+ command: string;
59
+ }>;
60
+ }
61
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/core/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,MAAM,WAAW,UAAU;IACzB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,GAAG,CAAQ;gBAEP,UAAU,GAAE,UAAe,EAAE,GAAG,GAAE,MAAsB;IAOpE,kCAAkC;IAClC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAMpC,qDAAqD;IACrD,OAAO,CAAC,SAAS;IAUjB,wEAAwE;IACxE,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBjD,0DAA0D;IACpD,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAiBhB,mCAAmC;IAC7B,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1E,yDAAyD;IACzD,YAAY,IAAI,IAAI;IAepB,0CAA0C;IAC1C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,yCAAyC;IACzC,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGpD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Hooks — shell-based pre/post hooks for tool and command lifecycle.
3
+ *
4
+ * Hooks are defined in .cmdr.toml under [hooks]:
5
+ * [hooks]
6
+ * "pre:tool:bash" = "echo 'About to run bash tool'"
7
+ * "post:tool:file_write" = "./scripts/lint-changed.sh"
8
+ * "pre:command:commit" = "npm test"
9
+ * "session:end" = "./scripts/cleanup.sh"
10
+ *
11
+ * Hook types:
12
+ * pre:tool:<name> — runs before a tool executes (can block on non-zero exit)
13
+ * post:tool:<name> — runs after a tool completes
14
+ * pre:command:<name> — runs before a slash command
15
+ * post:command:<name> — runs after a slash command
16
+ * session:start — runs when session begins
17
+ * session:end — runs when session ends
18
+ *
19
+ * Hooks receive context via environment variables:
20
+ * CMDR_HOOK_TYPE, CMDR_TOOL_NAME, CMDR_TOOL_INPUT (JSON), CMDR_CWD
21
+ */
22
+ import { execSync } from 'node:child_process';
23
+ import { globalEventBus } from './event-bus.js';
24
+ const HOOK_TIMEOUT_MS = 30_000;
25
+ export class HookManager {
26
+ hooks = new Map();
27
+ cwd;
28
+ constructor(hookConfig = {}, cwd = process.cwd()) {
29
+ this.cwd = cwd;
30
+ for (const [pattern, command] of Object.entries(hookConfig)) {
31
+ this.hooks.set(pattern, command);
32
+ }
33
+ }
34
+ /** Register hooks from config. */
35
+ loadConfig(config) {
36
+ for (const [pattern, command] of Object.entries(config)) {
37
+ this.hooks.set(pattern, command);
38
+ }
39
+ }
40
+ /** Find matching hooks for a given event pattern. */
41
+ findHooks(pattern) {
42
+ const matches = [];
43
+ for (const [hookPattern, command] of this.hooks) {
44
+ if (hookPattern === pattern) {
45
+ matches.push({ pattern: hookPattern, command });
46
+ }
47
+ }
48
+ return matches;
49
+ }
50
+ /** Execute a hook command. Returns result with success/failure info. */
51
+ executeHook(command, env) {
52
+ try {
53
+ const output = execSync(command, {
54
+ cwd: this.cwd,
55
+ timeout: HOOK_TIMEOUT_MS,
56
+ stdio: ['pipe', 'pipe', 'pipe'],
57
+ env: { ...process.env, ...env },
58
+ }).toString().trim();
59
+ return { success: true, output };
60
+ }
61
+ catch (err) {
62
+ const message = err instanceof Error ? err.message : String(err);
63
+ return { success: false, error: message };
64
+ }
65
+ }
66
+ /**
67
+ * Run pre-tool hooks. Returns false if a hook blocks execution (non-zero exit).
68
+ */
69
+ async runPreTool(toolName, input) {
70
+ const hooks = this.findHooks(`pre:tool:${toolName}`);
71
+ if (hooks.length === 0)
72
+ return { allowed: true };
73
+ const env = {
74
+ CMDR_HOOK_TYPE: 'pre:tool',
75
+ CMDR_TOOL_NAME: toolName,
76
+ CMDR_TOOL_INPUT: JSON.stringify(input),
77
+ CMDR_CWD: this.cwd,
78
+ };
79
+ for (const hook of hooks) {
80
+ const result = this.executeHook(hook.command, env);
81
+ if (!result.success) {
82
+ return { allowed: false, output: result.error };
83
+ }
84
+ }
85
+ return { allowed: true };
86
+ }
87
+ /** Run post-tool hooks (informational — cannot block). */
88
+ async runPostTool(toolName, input, success) {
89
+ const hooks = this.findHooks(`post:tool:${toolName}`);
90
+ if (hooks.length === 0)
91
+ return;
92
+ const env = {
93
+ CMDR_HOOK_TYPE: 'post:tool',
94
+ CMDR_TOOL_NAME: toolName,
95
+ CMDR_TOOL_INPUT: JSON.stringify(input),
96
+ CMDR_TOOL_SUCCESS: String(success),
97
+ CMDR_CWD: this.cwd,
98
+ };
99
+ for (const hook of hooks) {
100
+ this.executeHook(hook.command, env);
101
+ }
102
+ }
103
+ /** Run session lifecycle hooks. */
104
+ async runSessionHook(type) {
105
+ const hooks = this.findHooks(type);
106
+ if (hooks.length === 0)
107
+ return;
108
+ const env = {
109
+ CMDR_HOOK_TYPE: type,
110
+ CMDR_CWD: this.cwd,
111
+ };
112
+ for (const hook of hooks) {
113
+ this.executeHook(hook.command, env);
114
+ }
115
+ }
116
+ /** Wire hooks into the EventBus for automatic firing. */
117
+ wireEventBus() {
118
+ globalEventBus.on('tool:before', async (data) => {
119
+ await this.runPreTool(data.name, data.input);
120
+ });
121
+ globalEventBus.on('tool:after', async (data) => {
122
+ await this.runPostTool(data.name, {}, !data.result.isError);
123
+ });
124
+ globalEventBus.on('session:start', async () => {
125
+ await this.runSessionHook('session:start');
126
+ });
127
+ globalEventBus.on('session:end', async () => {
128
+ await this.runSessionHook('session:end');
129
+ });
130
+ }
131
+ /** Get the number of registered hooks. */
132
+ get count() {
133
+ return this.hooks.size;
134
+ }
135
+ /** List all registered hook patterns. */
136
+ list() {
137
+ return Array.from(this.hooks.entries()).map(([pattern, command]) => ({ pattern, command }));
138
+ }
139
+ }
140
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/core/hooks.ts"],"names":[],"mappings":"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"}