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.
- package/dist/package.json +1 -1
- package/dist/src/cli/commands.js +1 -1
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/ink/App.d.ts +2 -0
- package/dist/src/cli/ink/App.d.ts.map +1 -1
- package/dist/src/cli/ink/App.js +56 -7
- package/dist/src/cli/ink/App.js.map +1 -1
- package/dist/src/cli/repl.d.ts.map +1 -1
- package/dist/src/cli/repl.js +35 -1
- package/dist/src/cli/repl.js.map +1 -1
- package/dist/src/config/mcp-registry.d.ts +45 -0
- package/dist/src/config/mcp-registry.d.ts.map +1 -0
- package/dist/src/config/mcp-registry.js +156 -0
- package/dist/src/config/mcp-registry.js.map +1 -0
- package/dist/src/config/schema.d.ts +8 -8
- package/dist/src/core/agent-runner.d.ts.map +1 -1
- package/dist/src/core/agent-runner.js +22 -0
- package/dist/src/core/agent-runner.js.map +1 -1
- package/dist/src/core/hooks.d.ts +61 -0
- package/dist/src/core/hooks.d.ts.map +1 -0
- package/dist/src/core/hooks.js +140 -0
- package/dist/src/core/hooks.js.map +1 -0
- package/dist/src/core/permissions.d.ts +43 -0
- package/dist/src/core/permissions.d.ts.map +1 -1
- package/dist/src/core/permissions.js +108 -0
- package/dist/src/core/permissions.js.map +1 -1
- package/dist/src/core/types.d.ts +5 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/tools/built-in/cron-tools.d.ts +19 -0
- package/dist/src/tools/built-in/cron-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/cron-tools.js +86 -0
- package/dist/src/tools/built-in/cron-tools.js.map +1 -0
- package/dist/src/tools/built-in/index.d.ts +7 -1
- package/dist/src/tools/built-in/index.d.ts.map +1 -1
- package/dist/src/tools/built-in/index.js +13 -2
- package/dist/src/tools/built-in/index.js.map +1 -1
- package/dist/src/tools/built-in/mcp-resource-tools.d.ts +16 -0
- package/dist/src/tools/built-in/mcp-resource-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/mcp-resource-tools.js +73 -0
- package/dist/src/tools/built-in/mcp-resource-tools.js.map +1 -0
- package/dist/src/tools/built-in/plan-tools.d.ts +13 -0
- package/dist/src/tools/built-in/plan-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/plan-tools.js +42 -0
- package/dist/src/tools/built-in/plan-tools.js.map +1 -0
- package/dist/src/tools/built-in/task-tools.d.ts +22 -0
- package/dist/src/tools/built-in/task-tools.d.ts.map +1 -0
- package/dist/src/tools/built-in/task-tools.js +113 -0
- package/dist/src/tools/built-in/task-tools.js.map +1 -0
- package/dist/src/tools/built-in/todo-tool.d.ts +21 -0
- package/dist/src/tools/built-in/todo-tool.d.ts.map +1 -0
- package/dist/src/tools/built-in/todo-tool.js +52 -0
- package/dist/src/tools/built-in/todo-tool.js.map +1 -0
- package/dist/src/tools/built-in/web-search.d.ts +9 -0
- package/dist/src/tools/built-in/web-search.d.ts.map +1 -0
- package/dist/src/tools/built-in/web-search.js +89 -0
- package/dist/src/tools/built-in/web-search.js.map +1 -0
- 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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EACnD,UAAU,EAA+B,gBAAgB,EAC1D,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
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":"AAAA;;;;GAIG;AAUH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,WAAW;IACX,MAAM;IACN,aAAa;IACb,MAAM;IACN,UAAU;IACV,SAAS;IACT,OAAO;IACP,aAAa;CACd,CAAC,CAAA;AAwCF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,aAAa,CAAC,CAAa,EAAE,CAAa;IACjD,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;QAC7C,aAAa,EAAE,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa;KACjD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAe,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAA;AAEpE,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,OAAO,WAAW;IAKH;IACA;IACA;IACA;IACA;IARF,QAAQ,CAAQ;IAChB,eAAe,CAAiB;IAEjD,YACmB,OAAmB,EACnB,YAA0B,EAC1B,YAA0B,EAC1B,OAAsB,EACtB,iBAAqC;QAJrC,YAAO,GAAP,OAAO,CAAY;QACnB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAe;QACtB,sBAAiB,GAAjB,iBAAiB,CAAoB;QAEtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC9C,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,GAAG,CAAC,QAAsB,EAAE,YAA0B,EAAE;QAC5D,IAAI,MAAM,GAAc;YACtB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,CAAC;SACT,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,GAAG,KAAK,CAAC,IAAiB,CAAA;YAClC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED;2EACuE;IACvE,KAAK,CAAC,CAAC,MAAM,CACX,eAA6B,EAC7B,YAA0B,EAAE;QAE5B,MAAM,oBAAoB,GAAiB,CAAC,GAAG,eAAe,CAAC,CAAA;QAE/D,IAAI,UAAU,GAAe,UAAU,CAAA;QACvC,MAAM,YAAY,GAAqB,EAAE,CAAA;QACzC,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,+DAA+D;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;YAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC,CAAC,OAAO,CAAA;QAEX,qDAAqD;QACrD,MAAM,WAAW,GAAG,CAAC,GAAG,oBAAoB,CAAC;aAC1C,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QAC/B,MAAM,YAAY,GAAG,WAAW;YAC9B,CAAC,CAAC,WAAW,CAAC,OAAO;iBAChB,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAChB,IAAI,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,EAAE,CAAA;QACN,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;QAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAElD,yEAAyE;QACzE,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YAC9B,oBAAoB,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;gBACpD,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO;oBAAE,MAAK;gBAC5C,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAK;gBAEjC,KAAK,EAAE,CAAA;gBAEP,wBAAwB;gBACxB,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;gBAE7E,0BAA0B;gBAC1B,6DAA6D;gBAC7D,0EAA0E;gBAC1E,MAAM,SAAS,GAAiB,KAAK,KAAK,CAAC;oBACzC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC;oBAC3C,CAAC,CAAC,YAAY,CAAA;gBAEhB,MAAM,eAAe,GAAmB;oBACtC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;oBACzB,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBACnD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;oBACjC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;oBACvC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;iBAC9C,CAAA;gBAED,2DAA2D;gBAC3D,MAAM,WAAW,GAAmB,EAAE,CAAA;gBACtC,IAAI,QAAQ,GAAG,EAAE,CAAA;gBACjB,MAAM,cAAc,GAAmB,EAAE,CAAA;gBACzC,IAAI,SAAS,GAAe,UAAU,CAAA;gBAEtC,yBAAyB;gBACzB,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAA;gBAE5G,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,EAAE,CAAC;oBACrF,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAc,CAAA;wBAClC,QAAQ,IAAI,KAAK,CAAA;wBACjB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;wBACnC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;oBAC3B,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAoB,CAAA;wBACxC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBAC1B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;oBACzC,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAmB,CAAA;wBAC1C,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAA;oBAC5B,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAClC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAE,KAAK,CAAC,IAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;wBAC7G,MAAM,KAAK,CAAA;wBACX,OAAM;oBACR,CAAC;gBACH,CAAC;gBAED,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;gBAEjD,0BAA0B;gBAC1B,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;gBAErJ,iCAAiC;gBACjC,IAAI,QAAQ,EAAE,CAAC;oBACb,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAe,CAAC,CAAA;gBACjE,CAAC;gBACD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;oBACnC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzB,CAAC;gBAED,kCAAkC;gBAClC,MAAM,gBAAgB,GAAe;oBACnC,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,WAAW;iBACrB,CAAA;gBACD,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC3C,SAAS,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAA;gBAEvC,gCAAgC;gBAChC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,WAAW,GAAG,QAAQ,CAAA;oBACtB,mCAAmC;oBACnC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAA;oBACzF,MAAK;gBACP,CAAC;gBAED,iEAAiE;gBACjE,8CAA8C;gBAC9C,MAAM,WAAW,GAAmB;oBAClC,KAAK,EAAE;wBACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM;wBACtC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,WAAW;wBAC3C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;qBAC1B;oBACD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;oBACrB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;iBAChC,CAAA;gBAED,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;gBAE5E,MAAM,UAAU,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE;oBAC/C,SAAS,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;oBAE/C,yBAAyB;oBACzB,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;oBAE5E,wDAAwD;oBACxD,IAAI,IAAI,CAAC,iBAAiB,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;wBACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAChD,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,EACX,SAAS,CAAC,cAAc,CACzB,CAAA;wBACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;4BACxB,MAAM,YAAY,GAAe;gCAC/B,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,2BAA2B;gCACpD,OAAO,EAAE,IAAI;6BACd,CAAA;4BACD,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;4BAC1F,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;4BAClD,MAAM,WAAW,GAAoB;gCACnC,IAAI,EAAE,aAAa;gCACnB,WAAW,EAAE,KAAK,CAAC,EAAE;gCACrB,OAAO,EAAE,YAAY,CAAC,IAAI;gCAC1B,QAAQ,EAAE,IAAI;6BACf,CAAA;4BACD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;oCAC5B,QAAQ,EAAE,KAAK,CAAC,IAAI;oCACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oCAClB,MAAM,EAAE,YAAY,CAAC,IAAI;oCACzB,QAAQ,EAAE,CAAC;iCACM,EAAE,CAAA;wBACvB,CAAC;oBACH,CAAC;oBAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC5B,IAAI,MAAkB,CAAA;oBAEtB,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;oBAChF,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBAChE,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;oBAC3C,CAAC;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBAEvC,6BAA6B;oBAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC7E,CAAC;yBAAM,CAAC;wBACN,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;oBACvF,CAAC;oBAED,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;oBAE5C,qDAAqD;oBACrD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO;wBAClC,CAAC,CAAC,MAAM,CAAC,IAAI;wBACb,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;oBAE5E,MAAM,MAAM,GAAmB;wBAC7B,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,aAAa;wBACrB,QAAQ;qBACT,CAAA;oBAED,MAAM,WAAW,GAAoB;wBACnC,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,KAAK,CAAC,EAAE;wBACrB,OAAO,EAAE,aAAa;wBACtB,QAAQ,EAAE,MAAM,CAAC,OAAO;qBACzB,CAAA;oBAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;gBAChC,CAAC,CAAA;gBAED,IAAI,UAAsE,CAAA;gBAE1E,IAAI,OAAO,EAAE,CAAC;oBACZ,gDAAgD;oBAChD,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;gBAChE,CAAC;qBAAM,CAAC;oBACN,yDAAyD;oBACzD,UAAU,GAAG,EAAE,CAAA;oBACf,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;wBACnC,UAAU,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;oBAC1C,CAAC;gBACH,CAAC;gBAED,6BAA6B;gBAC7B,MAAM,gBAAgB,GAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;gBAE3E,KAAK,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,UAAU,EAAE,CAAC;oBACjD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACzB,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAClD,CAAC;gBAED,MAAM,iBAAiB,GAAe;oBACpC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,gBAAgB;iBAC1B,CAAA;gBAED,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAC5C,SAAS,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAA;gBAExC,sBAAsB;gBACtB,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAA;gBAE7G,+CAA+C;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACjE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;YACpC,OAAM;QACR,CAAC;QAED,gDAAgD;QAChD,IAAI,WAAW,KAAK,EAAE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,CAAC,GAAG,oBAAoB,CAAC;iBAC5C,OAAO,EAAE;iBACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;YACpC,IAAI,aAAa,EAAE,CAAC;gBAClB,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAc;YAC3B,QAAQ,EAAE,oBAAoB,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;YAC5D,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,UAAU;YACtB,KAAK;SACN,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACzC,CAAC;CACF"}
|
|
@@ -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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"}
|