sub-agents-mcp 0.14.1 → 0.14.2
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/agents/AgentManager.d.ts +16 -0
- package/dist/agents/AgentManager.d.ts.map +1 -1
- package/dist/agents/AgentManager.js +68 -43
- package/dist/agents/AgentManager.js.map +1 -1
- package/dist/agents/AgentName.d.ts +15 -0
- package/dist/agents/AgentName.d.ts.map +1 -0
- package/dist/agents/AgentName.js +40 -0
- package/dist/agents/AgentName.js.map +1 -0
- package/dist/config/ServerConfig.d.ts.map +1 -1
- package/dist/config/ServerConfig.js +101 -70
- package/dist/config/ServerConfig.js.map +1 -1
- package/dist/execution/AgentExecutor.d.ts +27 -3
- package/dist/execution/AgentExecutor.d.ts.map +1 -1
- package/dist/execution/AgentExecutor.js +328 -196
- package/dist/execution/AgentExecutor.js.map +1 -1
- package/dist/execution/StreamProcessor.d.ts.map +1 -1
- package/dist/execution/StreamProcessor.js +17 -16
- package/dist/execution/StreamProcessor.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/AgentResources.d.ts.map +1 -1
- package/dist/resources/AgentResources.js +2 -8
- package/dist/resources/AgentResources.js.map +1 -1
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +40 -21
- package/dist/server/McpServer.js.map +1 -1
- package/dist/session/SessionManager.d.ts +11 -1
- package/dist/session/SessionManager.d.ts.map +1 -1
- package/dist/session/SessionManager.js +118 -28
- package/dist/session/SessionManager.js.map +1 -1
- package/dist/tools/RunAgentTool.d.ts +32 -9
- package/dist/tools/RunAgentTool.d.ts.map +1 -1
- package/dist/tools/RunAgentTool.js +281 -190
- package/dist/tools/RunAgentTool.js.map +1 -1
- package/dist/types/ExecutionParams.d.ts +0 -1
- package/dist/types/ExecutionParams.d.ts.map +1 -1
- package/dist/types/SessionData.d.ts +6 -1
- package/dist/types/SessionData.d.ts.map +1 -1
- package/dist/utils/ErrorHandler.d.ts +14 -2
- package/dist/utils/ErrorHandler.d.ts.map +1 -1
- package/dist/utils/ErrorHandler.js +40 -9
- package/dist/utils/ErrorHandler.js.map +1 -1
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +3 -2
- package/dist/utils/Logger.js.map +1 -1
- package/package.json +10 -14
|
@@ -1,10 +1,77 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { AGENT_NAME_PATTERN, agentNameProblem } from '../agents/AgentName.js';
|
|
2
3
|
import { formatSessionHistory } from '../session/SessionHistoryFormatter.js';
|
|
3
|
-
import {
|
|
4
|
+
import { toErrorMessage } from '../utils/ErrorHandler.js';
|
|
5
|
+
import { isLogLevel, Logger } from '../utils/Logger.js';
|
|
4
6
|
const COMMAND_CODE_MAX_TURNS_EXIT_CODE = 8;
|
|
5
7
|
const TIMEOUT_EXIT_CODE = 124;
|
|
6
8
|
const SIGKILL_EXIT_CODE = 137;
|
|
7
9
|
const SIGTERM_EXIT_CODE = 143;
|
|
10
|
+
const MAX_PROMPT_LENGTH = 50000;
|
|
11
|
+
const MAX_CWD_LENGTH = 1000;
|
|
12
|
+
const MAX_SESSION_ID_LENGTH = 100;
|
|
13
|
+
function validateAgentName(value) {
|
|
14
|
+
if (!value || typeof value !== 'string') {
|
|
15
|
+
throw new Error('Agent parameter is required and must be a string');
|
|
16
|
+
}
|
|
17
|
+
const agentName = value.trim();
|
|
18
|
+
const problem = agentNameProblem(agentName);
|
|
19
|
+
if (problem) {
|
|
20
|
+
throw new Error(`Invalid agent parameter: ${problem}`);
|
|
21
|
+
}
|
|
22
|
+
return agentName;
|
|
23
|
+
}
|
|
24
|
+
function validatePrompt(value) {
|
|
25
|
+
if (!value || typeof value !== 'string') {
|
|
26
|
+
throw new Error('Prompt parameter is required and must be a string');
|
|
27
|
+
}
|
|
28
|
+
const prompt = value.trim();
|
|
29
|
+
if (prompt === '') {
|
|
30
|
+
throw new Error('Invalid prompt parameter: cannot be empty');
|
|
31
|
+
}
|
|
32
|
+
if (prompt.length > MAX_PROMPT_LENGTH) {
|
|
33
|
+
throw new Error('Prompt too long (max 50,000 characters)');
|
|
34
|
+
}
|
|
35
|
+
return prompt;
|
|
36
|
+
}
|
|
37
|
+
function validateCwd(value) {
|
|
38
|
+
if (value === undefined || value === null) {
|
|
39
|
+
throw new Error('CWD parameter is required');
|
|
40
|
+
}
|
|
41
|
+
if (typeof value !== 'string') {
|
|
42
|
+
throw new Error('CWD parameter must be a string');
|
|
43
|
+
}
|
|
44
|
+
const cwd = value.trim();
|
|
45
|
+
if (cwd === '') {
|
|
46
|
+
throw new Error('CWD parameter cannot be empty');
|
|
47
|
+
}
|
|
48
|
+
if (cwd.length > MAX_CWD_LENGTH) {
|
|
49
|
+
throw new Error('Working directory path too long (max 1000 characters)');
|
|
50
|
+
}
|
|
51
|
+
if (cwd.includes('..') || cwd.includes('\0')) {
|
|
52
|
+
throw new Error('Invalid working directory path');
|
|
53
|
+
}
|
|
54
|
+
return cwd;
|
|
55
|
+
}
|
|
56
|
+
function validateSessionId(value) {
|
|
57
|
+
if (value === undefined) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
if (typeof value !== 'string') {
|
|
61
|
+
throw new Error('Session ID parameter must be a string if provided');
|
|
62
|
+
}
|
|
63
|
+
const sessionId = value.trim();
|
|
64
|
+
if (sessionId === '') {
|
|
65
|
+
throw new Error('Invalid session ID parameter: cannot be empty');
|
|
66
|
+
}
|
|
67
|
+
if (sessionId.length > MAX_SESSION_ID_LENGTH) {
|
|
68
|
+
throw new Error('Session ID too long (max 100 characters)');
|
|
69
|
+
}
|
|
70
|
+
if (!AGENT_NAME_PATTERN.test(sessionId)) {
|
|
71
|
+
throw new Error('Session ID contains invalid characters (only alphanumeric, underscore, and dash allowed)');
|
|
72
|
+
}
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
8
75
|
export class RunAgentTool {
|
|
9
76
|
agentExecutor;
|
|
10
77
|
agentManager;
|
|
@@ -28,11 +95,6 @@ export class RunAgentTool {
|
|
|
28
95
|
type: 'string',
|
|
29
96
|
description: 'Working directory path for agent execution context. Must be an absolute path to a valid directory.',
|
|
30
97
|
},
|
|
31
|
-
extra_args: {
|
|
32
|
-
type: 'array',
|
|
33
|
-
items: { type: 'string' },
|
|
34
|
-
description: 'Additional configuration parameters for agent execution (optional)',
|
|
35
|
-
},
|
|
36
98
|
session_id: {
|
|
37
99
|
type: 'string',
|
|
38
100
|
description: 'Session ID for continuing previous conversation context (optional). If omitted, a new session will be auto-generated and returned in response metadata. Reuse the returned session_id in subsequent calls to maintain context continuity.',
|
|
@@ -44,35 +106,159 @@ export class RunAgentTool {
|
|
|
44
106
|
this.agentExecutor = agentExecutor;
|
|
45
107
|
this.agentManager = agentManager;
|
|
46
108
|
this.sessionManager = sessionManager;
|
|
47
|
-
const
|
|
109
|
+
const envLogLevel = process.env['LOG_LEVEL'];
|
|
110
|
+
const logLevel = isLogLevel(envLogLevel) ? envLogLevel : 'info';
|
|
48
111
|
this.logger = new Logger(logLevel);
|
|
49
112
|
}
|
|
50
|
-
|
|
113
|
+
/** Prunes expired session files without blocking the current request. */
|
|
114
|
+
startBackgroundSessionCleanup(requestId) {
|
|
115
|
+
const sessionManager = this.sessionManager;
|
|
116
|
+
if (!sessionManager) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
Promise.resolve()
|
|
120
|
+
.then(() => sessionManager.cleanupOldSessions())
|
|
121
|
+
.catch((error) => {
|
|
122
|
+
this.logger.warn('Session cleanup failed (best-effort)', {
|
|
123
|
+
requestId,
|
|
124
|
+
error: toErrorMessage(error),
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Prefixes the request with the stored conversation history when a session is
|
|
130
|
+
* active. History retrieval is best-effort: failures fall back to the raw prompt.
|
|
131
|
+
*/
|
|
132
|
+
async buildPromptWithHistory(validatedParams, sessionId, requestId) {
|
|
133
|
+
if (!sessionId || !this.sessionManager) {
|
|
134
|
+
return validatedParams.prompt;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
// Session history is partitioned by agent name.
|
|
138
|
+
const sessionData = await this.sessionManager.loadSession(sessionId, validatedParams.agent);
|
|
139
|
+
if (!sessionData || sessionData.history.length === 0) {
|
|
140
|
+
this.logger.debug('No session history found', { requestId, sessionId });
|
|
141
|
+
return validatedParams.prompt;
|
|
142
|
+
}
|
|
143
|
+
const historyMarkdown = formatSessionHistory(sessionData);
|
|
144
|
+
this.logger.info('Session history loaded and merged', {
|
|
145
|
+
requestId,
|
|
146
|
+
sessionId,
|
|
147
|
+
historyEntries: sessionData.history.length,
|
|
148
|
+
});
|
|
149
|
+
return `Previous conversation history:\n\n${historyMarkdown}\n\n---\n\nCurrent request:\n${validatedParams.prompt}`;
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
this.logger.warn('Failed to load session history', {
|
|
153
|
+
requestId,
|
|
154
|
+
sessionId,
|
|
155
|
+
error: toErrorMessage(error),
|
|
156
|
+
});
|
|
157
|
+
return validatedParams.prompt;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Appends the exchange to the session store. Never throws; returns whether the
|
|
162
|
+
* history was actually persisted so the caller can say so in its response.
|
|
163
|
+
*/
|
|
164
|
+
async persistSession(validatedParams, sessionId, requestId, result) {
|
|
165
|
+
if (!sessionId || !this.sessionManager) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
const sessionRequest = {
|
|
170
|
+
agent: validatedParams.agent,
|
|
171
|
+
prompt: validatedParams.prompt,
|
|
172
|
+
cwd: validatedParams.cwd,
|
|
173
|
+
};
|
|
174
|
+
const saveResult = await this.sessionManager.saveSession(sessionId, sessionRequest, {
|
|
175
|
+
stdout: result.stdout,
|
|
176
|
+
stderr: result.stderr,
|
|
177
|
+
exitCode: result.exitCode,
|
|
178
|
+
executionTime: result.executionTime,
|
|
179
|
+
});
|
|
180
|
+
if (!saveResult.saved) {
|
|
181
|
+
this.logger.warn('Failed to save session', {
|
|
182
|
+
requestId,
|
|
183
|
+
sessionId,
|
|
184
|
+
error: saveResult.reason,
|
|
185
|
+
});
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
this.logger.info('Session saved successfully', { requestId, sessionId });
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
this.logger.warn('Failed to save session', {
|
|
193
|
+
requestId,
|
|
194
|
+
sessionId,
|
|
195
|
+
error: toErrorMessage(error),
|
|
196
|
+
});
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/** Runs the agent and records the exchange, returning the formatted MCP response. */
|
|
201
|
+
async runAgent(agentExecutor, context) {
|
|
202
|
+
const { validatedParams, agentDefinition, sessionId, requestId, startTime, signal } = context;
|
|
203
|
+
const executionParams = {
|
|
204
|
+
agent: agentDefinition?.content ?? validatedParams.agent,
|
|
205
|
+
prompt: await this.buildPromptWithHistory(validatedParams, sessionId, requestId),
|
|
206
|
+
cwd: validatedParams.cwd,
|
|
207
|
+
...(agentDefinition?.filePath !== undefined && {
|
|
208
|
+
agentFilePath: agentDefinition.filePath,
|
|
209
|
+
}),
|
|
210
|
+
};
|
|
211
|
+
const result = await agentExecutor.executeAgent(executionParams, signal);
|
|
212
|
+
this.updateExecutionStats(validatedParams.agent, result.executionTime);
|
|
213
|
+
this.logger.info('Agent execution completed successfully', {
|
|
214
|
+
requestId,
|
|
215
|
+
agent: validatedParams.agent,
|
|
216
|
+
exitCode: result.exitCode,
|
|
217
|
+
executionTime: result.executionTime,
|
|
218
|
+
totalTime: Date.now() - startTime,
|
|
219
|
+
});
|
|
220
|
+
const sessionSaved = await this.persistSession(validatedParams, sessionId, requestId, result);
|
|
221
|
+
return this.formatExecutionResponse(result, {
|
|
222
|
+
agentName: validatedParams.agent,
|
|
223
|
+
requestId,
|
|
224
|
+
sessionId,
|
|
225
|
+
sessionSaved,
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Without a session store nothing is persisted, so no session_id is issued —
|
|
230
|
+
* echoing one back would invite the caller to reuse an id that continues nothing.
|
|
231
|
+
*/
|
|
232
|
+
resolveSessionId(validatedParams, requestId) {
|
|
233
|
+
if (!this.sessionManager) {
|
|
234
|
+
if (validatedParams.session_id !== undefined) {
|
|
235
|
+
this.logger.warn('session_id was provided but session management is disabled', {
|
|
236
|
+
requestId,
|
|
237
|
+
requestedSessionId: validatedParams.session_id,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
return validatedParams.session_id || randomUUID();
|
|
243
|
+
}
|
|
244
|
+
async execute(params, signal) {
|
|
51
245
|
const startTime = Date.now();
|
|
52
246
|
const requestId = this.generateRequestId();
|
|
53
247
|
this.logger.info('Run agent tool execution started', {
|
|
54
248
|
requestId,
|
|
55
249
|
timestamp: new Date().toISOString(),
|
|
56
250
|
});
|
|
57
|
-
|
|
58
|
-
Promise.resolve()
|
|
59
|
-
.then(() => this.sessionManager.cleanupOldSessions())
|
|
60
|
-
.catch((error) => {
|
|
61
|
-
this.logger.warn('Session cleanup failed (best-effort)', {
|
|
62
|
-
requestId,
|
|
63
|
-
error: error instanceof Error ? error.message : String(error),
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
251
|
+
this.startBackgroundSessionCleanup(requestId);
|
|
67
252
|
try {
|
|
68
253
|
const validatedParams = this.validateParams(params);
|
|
69
|
-
|
|
254
|
+
// Without a session store nothing is persisted, so echoing a session_id back
|
|
255
|
+
// would invite the caller to reuse an id that continues nothing.
|
|
256
|
+
const sessionId = this.resolveSessionId(validatedParams, requestId);
|
|
70
257
|
this.logger.debug('Parameters validated successfully', {
|
|
71
258
|
requestId,
|
|
72
259
|
agent: validatedParams.agent,
|
|
73
260
|
promptLength: validatedParams.prompt.length,
|
|
74
261
|
cwd: validatedParams.cwd,
|
|
75
|
-
extraArgsCount: validatedParams.extra_args?.length || 0,
|
|
76
262
|
sessionId: sessionId,
|
|
77
263
|
sessionIdGenerated: !validatedParams.session_id && !!sessionId,
|
|
78
264
|
});
|
|
@@ -84,7 +270,7 @@ export class RunAgentTool {
|
|
|
84
270
|
requestId,
|
|
85
271
|
requestedAgent: validatedParams.agent,
|
|
86
272
|
});
|
|
87
|
-
return this.createErrorResponse(`Agent '${validatedParams.agent}' not found`, await this.getAvailableAgentsList());
|
|
273
|
+
return this.createErrorResponse(`Agent '${validatedParams.agent}' not found`, await this.getAvailableAgentsList(), this.agentManager.getSkippedDefinitions());
|
|
88
274
|
}
|
|
89
275
|
this.logger.debug('Agent found and validated', {
|
|
90
276
|
requestId,
|
|
@@ -92,89 +278,16 @@ export class RunAgentTool {
|
|
|
92
278
|
agentDescription: agentDefinition.description,
|
|
93
279
|
});
|
|
94
280
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const sessionData = await this.sessionManager.loadSession(sessionId, validatedParams.agent);
|
|
102
|
-
if (sessionData && sessionData.history.length > 0) {
|
|
103
|
-
const historyMarkdown = formatSessionHistory(sessionData);
|
|
104
|
-
promptWithHistory = `Previous conversation history:\n\n${historyMarkdown}\n\n---\n\nCurrent request:\n${validatedParams.prompt}`;
|
|
105
|
-
this.logger.info('Session history loaded and merged', {
|
|
106
|
-
requestId,
|
|
107
|
-
sessionId: sessionId,
|
|
108
|
-
historyEntries: sessionData.history.length,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
this.logger.debug('No session history found', {
|
|
113
|
-
requestId,
|
|
114
|
-
sessionId: sessionId,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
this.logger.warn('Failed to load session history', {
|
|
120
|
-
requestId,
|
|
121
|
-
sessionId: sessionId,
|
|
122
|
-
error: error instanceof Error ? error.message : String(error),
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
const executionParams = {
|
|
127
|
-
agent: agentContext,
|
|
128
|
-
prompt: promptWithHistory,
|
|
129
|
-
...(validatedParams.cwd !== undefined && { cwd: validatedParams.cwd }),
|
|
130
|
-
...(validatedParams.extra_args !== undefined && {
|
|
131
|
-
extra_args: validatedParams.extra_args,
|
|
132
|
-
}),
|
|
133
|
-
...(agentDefinition?.filePath !== undefined && {
|
|
134
|
-
agentFilePath: agentDefinition.filePath,
|
|
135
|
-
}),
|
|
136
|
-
};
|
|
137
|
-
const result = await this.agentExecutor.executeAgent(executionParams);
|
|
138
|
-
this.updateExecutionStats(validatedParams.agent, result.executionTime);
|
|
139
|
-
this.logger.info('Agent execution completed successfully', {
|
|
281
|
+
const agentExecutor = this.agentExecutor;
|
|
282
|
+
if (agentExecutor) {
|
|
283
|
+
return await this.runAgent(agentExecutor, {
|
|
284
|
+
validatedParams,
|
|
285
|
+
agentDefinition,
|
|
286
|
+
sessionId,
|
|
140
287
|
requestId,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
executionTime: result.executionTime,
|
|
144
|
-
totalTime: Date.now() - startTime,
|
|
288
|
+
startTime,
|
|
289
|
+
signal,
|
|
145
290
|
});
|
|
146
|
-
if (sessionId && this.sessionManager) {
|
|
147
|
-
try {
|
|
148
|
-
const sessionRequest = {
|
|
149
|
-
agent: validatedParams.agent,
|
|
150
|
-
prompt: validatedParams.prompt,
|
|
151
|
-
};
|
|
152
|
-
if (validatedParams.cwd !== undefined) {
|
|
153
|
-
sessionRequest.cwd = validatedParams.cwd;
|
|
154
|
-
}
|
|
155
|
-
if (validatedParams.extra_args !== undefined) {
|
|
156
|
-
sessionRequest.extra_args = validatedParams.extra_args;
|
|
157
|
-
}
|
|
158
|
-
await this.sessionManager.saveSession(sessionId, sessionRequest, {
|
|
159
|
-
stdout: result.stdout,
|
|
160
|
-
stderr: result.stderr,
|
|
161
|
-
exitCode: result.exitCode,
|
|
162
|
-
executionTime: result.executionTime,
|
|
163
|
-
});
|
|
164
|
-
this.logger.info('Session saved successfully', {
|
|
165
|
-
requestId,
|
|
166
|
-
sessionId: sessionId,
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
catch (error) {
|
|
170
|
-
this.logger.warn('Failed to save session', {
|
|
171
|
-
requestId,
|
|
172
|
-
sessionId: sessionId,
|
|
173
|
-
error: error instanceof Error ? error.message : String(error),
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return this.formatExecutionResponse(result, validatedParams.agent, requestId, sessionId);
|
|
178
291
|
}
|
|
179
292
|
this.logger.warn('Agent executor not available', { requestId });
|
|
180
293
|
return {
|
|
@@ -200,83 +313,12 @@ export class RunAgentTool {
|
|
|
200
313
|
if (!params || typeof params !== 'object') {
|
|
201
314
|
throw new Error('Invalid parameters: expected object');
|
|
202
315
|
}
|
|
203
|
-
const p = params;
|
|
204
|
-
if (!p['agent'] || typeof p['agent'] !== 'string') {
|
|
205
|
-
throw new Error('Agent parameter is required and must be a string');
|
|
206
|
-
}
|
|
207
|
-
const agentName = p['agent'].trim();
|
|
208
|
-
if (agentName === '') {
|
|
209
|
-
throw new Error('Invalid agent parameter: cannot be empty');
|
|
210
|
-
}
|
|
211
|
-
if (agentName.length > 100) {
|
|
212
|
-
throw new Error('Agent name too long (max 100 characters)');
|
|
213
|
-
}
|
|
214
|
-
if (!/^[a-zA-Z0-9_-]+$/.test(agentName)) {
|
|
215
|
-
throw new Error('Agent name contains invalid characters (only alphanumeric, underscore, and dash allowed)');
|
|
216
|
-
}
|
|
217
|
-
if (!p['prompt'] || typeof p['prompt'] !== 'string') {
|
|
218
|
-
throw new Error('Prompt parameter is required and must be a string');
|
|
219
|
-
}
|
|
220
|
-
const prompt = p['prompt'].trim();
|
|
221
|
-
if (prompt === '') {
|
|
222
|
-
throw new Error('Invalid prompt parameter: cannot be empty');
|
|
223
|
-
}
|
|
224
|
-
if (prompt.length > 50000) {
|
|
225
|
-
throw new Error('Prompt too long (max 50,000 characters)');
|
|
226
|
-
}
|
|
227
|
-
if (p['cwd'] === undefined || p['cwd'] === null) {
|
|
228
|
-
throw new Error('CWD parameter is required');
|
|
229
|
-
}
|
|
230
|
-
if (typeof p['cwd'] !== 'string') {
|
|
231
|
-
throw new Error('CWD parameter must be a string');
|
|
232
|
-
}
|
|
233
|
-
const cwd = p['cwd'].trim();
|
|
234
|
-
if (cwd === '') {
|
|
235
|
-
throw new Error('CWD parameter cannot be empty');
|
|
236
|
-
}
|
|
237
|
-
if (cwd.length > 1000) {
|
|
238
|
-
throw new Error('Working directory path too long (max 1000 characters)');
|
|
239
|
-
}
|
|
240
|
-
if (cwd.includes('..') || cwd.includes('\0')) {
|
|
241
|
-
throw new Error('Invalid working directory path');
|
|
242
|
-
}
|
|
243
|
-
if (p['extra_args'] !== undefined) {
|
|
244
|
-
if (!Array.isArray(p['extra_args'])) {
|
|
245
|
-
throw new Error('Extra args parameter must be an array if provided');
|
|
246
|
-
}
|
|
247
|
-
if (p['extra_args'].length > 20) {
|
|
248
|
-
throw new Error('Too many extra arguments (max 20 allowed)');
|
|
249
|
-
}
|
|
250
|
-
for (const [index, arg] of p['extra_args'].entries()) {
|
|
251
|
-
if (typeof arg !== 'string') {
|
|
252
|
-
throw new Error(`Extra argument at index ${index} must be a string`);
|
|
253
|
-
}
|
|
254
|
-
if (arg.length > 1000) {
|
|
255
|
-
throw new Error(`Extra argument at index ${index} too long (max 1000 characters)`);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
if (p['session_id'] !== undefined) {
|
|
260
|
-
if (typeof p['session_id'] !== 'string') {
|
|
261
|
-
throw new Error('Session ID parameter must be a string if provided');
|
|
262
|
-
}
|
|
263
|
-
const sessionId = p['session_id'].trim();
|
|
264
|
-
if (sessionId === '') {
|
|
265
|
-
throw new Error('Invalid session ID parameter: cannot be empty');
|
|
266
|
-
}
|
|
267
|
-
if (sessionId.length > 100) {
|
|
268
|
-
throw new Error('Session ID too long (max 100 characters)');
|
|
269
|
-
}
|
|
270
|
-
if (!/^[a-zA-Z0-9_-]+$/.test(sessionId)) {
|
|
271
|
-
throw new Error('Session ID contains invalid characters (only alphanumeric, underscore, and dash allowed)');
|
|
272
|
-
}
|
|
273
|
-
}
|
|
316
|
+
const p = { ...params };
|
|
274
317
|
return {
|
|
275
|
-
agent:
|
|
276
|
-
prompt: prompt,
|
|
277
|
-
cwd: cwd,
|
|
278
|
-
|
|
279
|
-
session_id: p['session_id'],
|
|
318
|
+
agent: validateAgentName(p['agent']),
|
|
319
|
+
prompt: validatePrompt(p['prompt']),
|
|
320
|
+
cwd: validateCwd(p['cwd']),
|
|
321
|
+
session_id: validateSessionId(p['session_id']),
|
|
280
322
|
};
|
|
281
323
|
}
|
|
282
324
|
isRecord(value) {
|
|
@@ -285,6 +327,51 @@ export class RunAgentTool {
|
|
|
285
327
|
isStringField(value) {
|
|
286
328
|
return typeof value === 'string';
|
|
287
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* Derives the single execution outcome that both `status` and `isError` are
|
|
332
|
+
* built from. Keeping one derivation prevents the two fields from disagreeing.
|
|
333
|
+
*/
|
|
334
|
+
resolveOutcome(result) {
|
|
335
|
+
if (this.isAgentError(result.resultJson, result.exitCode)) {
|
|
336
|
+
return 'error';
|
|
337
|
+
}
|
|
338
|
+
const isPartial = this.isPartialResult(result.resultJson) ||
|
|
339
|
+
(result.exitCode === TIMEOUT_EXIT_CODE && result.hasResult === true);
|
|
340
|
+
if (!isPartial) {
|
|
341
|
+
if (result.exitCode === 0) {
|
|
342
|
+
return 'success';
|
|
343
|
+
}
|
|
344
|
+
// Terminated by a signal, but only after a structured result arrived.
|
|
345
|
+
if ((result.exitCode === SIGTERM_EXIT_CODE || result.exitCode === SIGKILL_EXIT_CODE) &&
|
|
346
|
+
result.hasResult === true) {
|
|
347
|
+
return 'success';
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return isPartial ? 'partial' : 'error';
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Builds the text shown to the caller. On a non-success outcome the failure
|
|
354
|
+
* reason on stderr must survive even when the agent also produced stdout,
|
|
355
|
+
* otherwise the caller sees partial output and no explanation.
|
|
356
|
+
*/
|
|
357
|
+
buildResultText(outcome, result, sessionId) {
|
|
358
|
+
const content = this.extractAgentContent(result.resultJson, outcome === 'error', result.stdout, result.stderr);
|
|
359
|
+
// A partial outcome carries a coherent agent result, and `status`/`exit_code`
|
|
360
|
+
// already say it was cut short. Only a failure needs its reason spelled out.
|
|
361
|
+
if (outcome !== 'error') {
|
|
362
|
+
return content;
|
|
363
|
+
}
|
|
364
|
+
const notes = [];
|
|
365
|
+
if (result.stderr && !content.includes(result.stderr)) {
|
|
366
|
+
notes.push(result.stderr);
|
|
367
|
+
}
|
|
368
|
+
if (result.failureReason === 'argv_too_long' && sessionId) {
|
|
369
|
+
notes.push(`The conversation history stored for session "${sessionId}" is replayed with every ` +
|
|
370
|
+
'call, and it has grown past what the CLI accepts. Start a new session by calling ' +
|
|
371
|
+
'run_agent without session_id.');
|
|
372
|
+
}
|
|
373
|
+
return notes.length > 0 ? [content, ...notes].join('\n\n') : content;
|
|
374
|
+
}
|
|
288
375
|
extractAgentContent(resultJson, isError, stdout, stderr) {
|
|
289
376
|
if (!this.isRecord(resultJson)) {
|
|
290
377
|
return stdout || stderr || 'No output';
|
|
@@ -317,22 +404,24 @@ export class RunAgentTool {
|
|
|
317
404
|
isPartialResult(resultJson) {
|
|
318
405
|
return this.isRecord(resultJson) && resultJson['status'] === 'partial';
|
|
319
406
|
}
|
|
320
|
-
formatExecutionResponse(result,
|
|
321
|
-
const
|
|
322
|
-
const
|
|
323
|
-
const
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
407
|
+
formatExecutionResponse(result, context) {
|
|
408
|
+
const { agentName, requestId, sessionId, sessionSaved } = context;
|
|
409
|
+
const outcome = this.resolveOutcome(result);
|
|
410
|
+
const isError = outcome === 'error';
|
|
411
|
+
let contentText = this.buildResultText(outcome, result, sessionId);
|
|
412
|
+
// The agent's own result still stands, but a caller told to reuse session_id
|
|
413
|
+
// has to know the history behind it was not written.
|
|
414
|
+
const historyLost = sessionId !== undefined && sessionSaved === false;
|
|
415
|
+
if (historyLost) {
|
|
416
|
+
contentText = `${contentText}\n\nThis exchange was not saved to session "${sessionId}", so it will not be part of the history on the next call.`;
|
|
417
|
+
}
|
|
330
418
|
const responseData = {
|
|
331
419
|
result: contentText,
|
|
420
|
+
...(historyLost && { session_saved: false }),
|
|
332
421
|
agent: agentName,
|
|
333
422
|
exit_code: result.exitCode,
|
|
334
423
|
execution_time: result.executionTime,
|
|
335
|
-
status:
|
|
424
|
+
status: outcome,
|
|
336
425
|
...(sessionId && { session_id: sessionId }),
|
|
337
426
|
...(requestId && { request_id: requestId }),
|
|
338
427
|
};
|
|
@@ -353,11 +442,13 @@ export class RunAgentTool {
|
|
|
353
442
|
}
|
|
354
443
|
return response;
|
|
355
444
|
}
|
|
356
|
-
createErrorResponse(errorMessage, availableAgents) {
|
|
445
|
+
createErrorResponse(errorMessage, availableAgents, skippedDefinitions = []) {
|
|
357
446
|
const errorData = {
|
|
358
447
|
status: 'error',
|
|
359
448
|
error: errorMessage,
|
|
360
449
|
...(availableAgents && { available_agents: availableAgents }),
|
|
450
|
+
// Explains "the file exists but the agent is missing" without a log dive.
|
|
451
|
+
...(skippedDefinitions.length > 0 && { skipped_definitions: skippedDefinitions }),
|
|
361
452
|
};
|
|
362
453
|
return {
|
|
363
454
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunAgentTool.js","sourceRoot":"","sources":["../../src/tools/RunAgentTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAI5E,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAE1D,MAAM,gCAAgC,GAAG,CAAC,CAAA;AAC1C,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAC7B,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAC7B,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAkE7B,MAAM,OAAO,YAAY;IAwCb;IACA;IACA;IAzCM,IAAI,GAAG,WAAW,CAAA;IAClB,WAAW,GACzB,sYAAsY,CAAA;IAChY,MAAM,CAAQ;IACd,cAAc,GACpB,IAAI,GAAG,EAAE,CAAA;IAEK,WAAW,GAAwB;QACjD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,0FAA0F;aAC7F;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,oGAAoG;aACvG;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,oEAAoE;aAClF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,2OAA2O;aAC9O;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;KACrC,CAAA;IAED,YACU,aAA6B,EAC7B,YAA2B,EAC3B,cAA+B;QAF/B,kBAAa,GAAb,aAAa,CAAgB;QAC7B,iBAAY,GAAZ,YAAY,CAAe;QAC3B,mBAAc,GAAd,cAAc,CAAiB;QAEvC,MAAM,QAAQ,GAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAc,IAAI,MAAM,CAAA;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACnD,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,EAAE;iBACd,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAe,CAAC,kBAAkB,EAAE,CAAC;iBACrD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;oBACvD,SAAS;oBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACN,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACnD,MAAM,SAAS,GACb,eAAe,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YAEhF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBACrD,SAAS;gBACT,KAAK,EAAE,eAAe,CAAC,KAAK;gBAC5B,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM;gBAC3C,GAAG,EAAE,eAAe,CAAC,GAAG;gBACxB,cAAc,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;gBACvD,SAAS,EAAE,SAAS;gBACpB,kBAAkB,EAAE,CAAC,eAAe,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS;aAC/D,CAAC,CAAA;YAEF,IAAI,eAA4C,CAAA;YAChD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;gBACzE,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBAClC,SAAS;wBACT,cAAc,EAAE,eAAe,CAAC,KAAK;qBACtC,CAAC,CAAA;oBAEF,OAAO,IAAI,CAAC,mBAAmB,CAC7B,UAAU,eAAe,CAAC,KAAK,aAAa,EAC5C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CACpC,CAAA;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBAC7C,SAAS;oBACT,SAAS,EAAE,eAAe,CAAC,IAAI;oBAC/B,gBAAgB,EAAE,eAAe,CAAC,WAAW;iBAC9C,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,eAAe,EAAE,OAAO,IAAI,eAAe,CAAC,KAAK,CAAA;gBACtE,IAAI,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAA;gBAC9C,IAAI,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,gDAAgD;wBAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACvD,SAAS,EACT,eAAe,CAAC,KAAK,CACtB,CAAA;wBACD,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAClD,MAAM,eAAe,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAA;4BACzD,iBAAiB,GAAG,qCAAqC,eAAe,gCAAgC,eAAe,CAAC,MAAM,EAAE,CAAA;4BAEhI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gCACpD,SAAS;gCACT,SAAS,EAAE,SAAS;gCACpB,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;6BAC3C,CAAC,CAAA;wBACJ,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gCAC5C,SAAS;gCACT,SAAS,EAAE,SAAS;6BACrB,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;4BACjD,SAAS;4BACT,SAAS,EAAE,SAAS;4BACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC9D,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,eAAe,GAAoB;oBACvC,KAAK,EAAE,YAAY;oBACnB,MAAM,EAAE,iBAAiB;oBACzB,GAAG,CAAC,eAAe,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC;oBACtE,GAAG,CAAC,eAAe,CAAC,UAAU,KAAK,SAAS,IAAI;wBAC9C,UAAU,EAAE,eAAe,CAAC,UAAU;qBACvC,CAAC;oBACF,GAAG,CAAC,eAAe,EAAE,QAAQ,KAAK,SAAS,IAAI;wBAC7C,aAAa,EAAE,eAAe,CAAC,QAAQ;qBACxC,CAAC;iBACH,CAAA;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;gBACrE,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;gBAEtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;oBACzD,SAAS;oBACT,KAAK,EAAE,eAAe,CAAC,KAAK;oBAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBAClC,CAAC,CAAA;gBAEF,IAAI,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,MAAM,cAAc,GAKhB;4BACF,KAAK,EAAE,eAAe,CAAC,KAAK;4BAC5B,MAAM,EAAE,eAAe,CAAC,MAAM;yBAC/B,CAAA;wBAED,IAAI,eAAe,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;4BACtC,cAAc,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,CAAA;wBAC1C,CAAC;wBACD,IAAI,eAAe,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;4BAC7C,cAAc,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;wBACxD,CAAC;wBAED,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE;4BAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,aAAa,EAAE,MAAM,CAAC,aAAa;yBACpC,CAAC,CAAA;wBAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;4BAC7C,SAAS;4BACT,SAAS,EAAE,SAAS;yBACrB,CAAC,CAAA;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;4BACzC,SAAS;4BACT,SAAS,EAAE,SAAS;4BACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC9D,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAC1F,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YAC/D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yCAAyC,eAAe,CAAC,KAAK,mBAAmB,eAAe,CAAC,MAAM,4CAA4C;qBAC1J;iBACF;aACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YAExC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;gBACtF,SAAS;gBACT,SAAS;gBACT,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aACvE,CAAC,CAAA;YAEF,OAAO,IAAI,CAAC,mBAAmB,CAC7B,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACrF,IAAI,CACL,CAAA;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAe;QACpC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,CAAC,GAAG,MAAiC,CAAA;QAE3C,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAA;QACH,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAC1E,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;YACtE,CAAC;YAED,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC9D,CAAC;YAED,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,mBAAmB,CAAC,CAAA;gBACtE,CAAC;gBAED,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,iCAAiC,CAAC,CAAA;gBACpF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;YACtE,CAAC;YAED,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;YACxC,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAClE,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG;YACR,UAAU,EAAE,CAAC,CAAC,YAAY,CAAyB;YACnD,UAAU,EAAE,CAAC,CAAC,YAAY,CAAuB;SAClD,CAAA;IACH,CAAC;IAEO,QAAQ,CAAC,KAAc;QAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7E,CAAC;IAEO,aAAa,CAAC,KAAc;QAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;IAClC,CAAC;IAEO,mBAAmB,CACzB,UAAmB,EACnB,OAAgB,EAChB,MAAc,EACd,MAAc;QAEd,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,MAAM,IAAI,WAAW,CAAA;QACxC,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;QACjD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,UAAU,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,UAAU,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,MAAM,IAAI,MAAM,IAAI,WAAW,CAAA;IACxC,CAAC;IAEO,YAAY,CAAC,UAAmB,EAAE,QAAgB;QACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;YACjE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IACE,QAAQ,KAAK,gCAAgC;YAC7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS;YAClC,UAAU,CAAC,aAAa,CAAC,KAAK,WAAW,EACzC,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,mBAAmB,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAA;QAC3E,OAAO,CACL,QAAQ,KAAK,CAAC;YACd,QAAQ,KAAK,iBAAiB;YAC9B,QAAQ,KAAK,iBAAiB;YAC9B,CAAC,CAAC,QAAQ,KAAK,iBAAiB,IAAI,mBAAmB,CAAC,CACzD,CAAA;IACH,CAAC;IAEO,eAAe,CAAC,UAAmB;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAA;IACxE,CAAC;IAEO,uBAAuB,CAC7B,MAA4B,EAC5B,SAAiB,EACjB,SAAkB,EAClB,SAAkB;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAC1C,MAAM,CAAC,UAAU,EACjB,OAAO,EACP,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,CACd,CAAA;QAED,MAAM,gBAAgB,GACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;YACvC,CAAC,MAAM,CAAC,QAAQ,KAAK,iBAAiB,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,CAAA;QAEtE,MAAM,SAAS,GACb,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,oBAAoB;YAChF,CAAC,CAAC,OAAO;gBACP,CAAC,gBAAgB;gBACjB,CAAC,MAAM,CAAC,QAAQ,KAAK,iBAAiB,IAAI,MAAM,CAAC,QAAQ,KAAK,iBAAiB,CAAC;gBAChF,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,CAAA,CAAC,sCAAsC;QAErE,MAAM,YAAY,GAAoB;YACpC,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,cAAc,EAAE,MAAM,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YAC1F,GAAG,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;SAC5C,CAAA;QAED,MAAM,QAAQ,GAAoB;YAChC,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC5C;aACF;YACD,OAAO,EAAE,OAAO;YAChB,iBAAiB,EAAE,YAAY;SAChC,CAAA;QAED,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,GAAG;gBACf,UAAU,EAAE,SAAS;aACtB,CAAA;QACH,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,mBAAmB,CACzB,YAAoB,EACpB,eAAgC;QAEhC,MAAM,SAAS,GAA4B;YACzC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,YAAY;YACnB,GAAG,CAAC,eAAe,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;SAC9D,CAAA;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;iBACzC;aACF;YACD,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,SAAS;SAC7B,CAAA;IACH,CAAC;IAEO,iBAAiB;QACvB,OAAO,aAAa,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;IAC7E,CAAC;IAEO,oBAAoB,CAAC,SAAiB,EAAE,aAAqB;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEnD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAA;YACnB,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAA;YACnC,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,aAAa;gBACxB,QAAQ,EAAE,IAAI,IAAI,EAAE;aACrB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;YACnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;gBACtD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"RunAgentTool.js","sourceRoot":"","sources":["../../src/tools/RunAgentTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionParams.d.ts","sourceRoot":"","sources":["../../src/types/ExecutionParams.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IAEb,MAAM,EAAE,MAAM,CAAA;IAEd,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,
|
|
1
|
+
{"version":3,"file":"ExecutionParams.d.ts","sourceRoot":"","sources":["../../src/types/ExecutionParams.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IAEb,MAAM,EAAE,MAAM,CAAA;IAEd,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB"}
|
|
@@ -7,13 +7,18 @@ export interface SessionData {
|
|
|
7
7
|
}
|
|
8
8
|
export interface SessionEntry {
|
|
9
9
|
timestamp: Date;
|
|
10
|
+
/**
|
|
11
|
+
* Extra keys beyond the documented ones are preserved verbatim so a saved
|
|
12
|
+
* session stays fully inspectable when debugging.
|
|
13
|
+
*/
|
|
10
14
|
request: {
|
|
15
|
+
[key: string]: unknown;
|
|
11
16
|
agent: string;
|
|
12
17
|
prompt: string;
|
|
13
18
|
cwd?: string;
|
|
14
|
-
extra_args?: string[];
|
|
15
19
|
};
|
|
16
20
|
response: {
|
|
21
|
+
[key: string]: unknown;
|
|
17
22
|
stdout: string;
|
|
18
23
|
stderr: string;
|
|
19
24
|
exitCode: number;
|