sub-agents-mcp 0.1.4 → 0.2.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 (36) hide show
  1. package/README.md +253 -140
  2. package/dist/config/ServerConfig.d.ts +9 -0
  3. package/dist/config/ServerConfig.d.ts.map +1 -1
  4. package/dist/config/ServerConfig.js +17 -0
  5. package/dist/config/ServerConfig.js.map +1 -1
  6. package/dist/server/McpServer.d.ts +1 -0
  7. package/dist/server/McpServer.d.ts.map +1 -1
  8. package/dist/server/McpServer.js +18 -2
  9. package/dist/server/McpServer.js.map +1 -1
  10. package/dist/session/SessionHistoryFormatter.d.ts +32 -0
  11. package/dist/session/SessionHistoryFormatter.d.ts.map +1 -0
  12. package/dist/session/SessionHistoryFormatter.js +62 -0
  13. package/dist/session/SessionHistoryFormatter.js.map +1 -0
  14. package/dist/session/SessionManager.d.ts +158 -0
  15. package/dist/session/SessionManager.d.ts.map +1 -0
  16. package/dist/session/SessionManager.js +410 -0
  17. package/dist/session/SessionManager.js.map +1 -0
  18. package/dist/session/ToonConverter.d.ts +172 -0
  19. package/dist/session/ToonConverter.d.ts.map +1 -0
  20. package/dist/session/ToonConverter.js +593 -0
  21. package/dist/session/ToonConverter.js.map +1 -0
  22. package/dist/session/ToonUtils.d.ts +23 -0
  23. package/dist/session/ToonUtils.d.ts.map +1 -0
  24. package/dist/session/ToonUtils.js +75 -0
  25. package/dist/session/ToonUtils.js.map +1 -0
  26. package/dist/tools/RunAgentTool.d.ts +62 -4
  27. package/dist/tools/RunAgentTool.d.ts.map +1 -1
  28. package/dist/tools/RunAgentTool.js +223 -46
  29. package/dist/tools/RunAgentTool.js.map +1 -1
  30. package/dist/types/SessionData.d.ts +63 -0
  31. package/dist/types/SessionData.d.ts.map +1 -0
  32. package/dist/types/SessionData.js +3 -0
  33. package/dist/types/SessionData.js.map +1 -0
  34. package/dist/utils/Logger.js +2 -2
  35. package/dist/utils/Logger.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * TOON format utilities for SessionData
4
+ *
5
+ * Provides type-safe encode/decode functions for SessionData with Date handling.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.encodeSessionData = encodeSessionData;
9
+ exports.decodeSessionData = decodeSessionData;
10
+ const toon_1 = require("@toon-format/toon");
11
+ /**
12
+ * Encodes SessionData to TOON format.
13
+ *
14
+ * @param sessionData - Session data to encode
15
+ * @returns TOON-formatted string
16
+ */
17
+ function encodeSessionData(sessionData) {
18
+ return (0, toon_1.encode)(sessionData);
19
+ }
20
+ /**
21
+ * Decodes TOON format string to SessionData.
22
+ *
23
+ * Handles Date conversion from ISO strings to Date objects.
24
+ *
25
+ * @param toonString - TOON-formatted string
26
+ * @returns Decoded SessionData with proper Date types
27
+ */
28
+ function decodeSessionData(toonString) {
29
+ const decoded = (0, toon_1.decode)(toonString);
30
+ // Type guard: Validate decoded data structure
31
+ if (!isValidSessionDataShape(decoded)) {
32
+ throw new Error('Invalid TOON format: decoded data does not match SessionData structure');
33
+ }
34
+ // Convert ISO string dates to Date objects
35
+ return convertDatesToObjects(decoded);
36
+ }
37
+ /**
38
+ * Type guard to validate decoded data shape.
39
+ *
40
+ * @param value - Value to validate
41
+ * @returns True if value matches SessionData structure
42
+ * @private
43
+ */
44
+ function isValidSessionDataShape(value) {
45
+ if (typeof value !== 'object' || value === null) {
46
+ return false;
47
+ }
48
+ const obj = value;
49
+ return (typeof obj['sessionId'] === 'string' &&
50
+ typeof obj['agentType'] === 'string' &&
51
+ Array.isArray(obj['history']) &&
52
+ (typeof obj['createdAt'] === 'string' || obj['createdAt'] instanceof Date) &&
53
+ (typeof obj['lastUpdatedAt'] === 'string' || obj['lastUpdatedAt'] instanceof Date));
54
+ }
55
+ /**
56
+ * Converts ISO string dates to Date objects.
57
+ *
58
+ * @param data - Decoded data with ISO string dates
59
+ * @returns SessionData with Date objects
60
+ * @private
61
+ */
62
+ function convertDatesToObjects(data) {
63
+ return {
64
+ sessionId: data.sessionId,
65
+ agentType: data.agentType,
66
+ history: data.history.map((entry) => ({
67
+ timestamp: typeof entry.timestamp === 'string' ? new Date(entry.timestamp) : entry.timestamp,
68
+ request: entry.request,
69
+ response: entry.response,
70
+ })),
71
+ createdAt: typeof data.createdAt === 'string' ? new Date(data.createdAt) : data.createdAt,
72
+ lastUpdatedAt: typeof data.lastUpdatedAt === 'string' ? new Date(data.lastUpdatedAt) : data.lastUpdatedAt,
73
+ };
74
+ }
75
+ //# sourceMappingURL=ToonUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToonUtils.js","sourceRoot":"","sources":["../../src/session/ToonUtils.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAWH,8CAEC;AAUD,8CAUC;AA/BD,4CAAkD;AAGlD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,WAAwB;IACxD,OAAO,IAAA,aAAM,EAAC,WAAW,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,MAAM,OAAO,GAAG,IAAA,aAAM,EAAC,UAAU,CAAY,CAAA;IAE7C,8CAA8C;IAC9C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;IAC3F,CAAC;IAED,2CAA2C;IAC3C,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAA;IAE5C,OAAO,CACL,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ;QACpC,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ;QACpC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC;QAC1E,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,CACnF,CAAA;AACH,CAAC;AA2BD;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,IAAwB;IACrD,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpC,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;YAC5F,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;QACzF,aAAa,EACX,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;KAC7F,CAAA;AACH,CAAC"}
@@ -7,10 +7,12 @@
7
7
  */
8
8
  import type { AgentManager } from '../agents/AgentManager';
9
9
  import type { AgentExecutor } from '../execution/AgentExecutor';
10
+ import type { SessionManager } from '../session/SessionManager';
10
11
  /**
11
12
  * MCP tool content type for text responses
12
13
  */
13
14
  interface McpTextContent {
15
+ [x: string]: unknown;
14
16
  type: 'text';
15
17
  text: string;
16
18
  }
@@ -18,9 +20,13 @@ interface McpTextContent {
18
20
  * MCP tool response format
19
21
  */
20
22
  interface McpToolResponse {
23
+ [x: string]: unknown;
21
24
  content: McpTextContent[];
22
25
  isError?: boolean;
23
26
  structuredContent?: unknown;
27
+ _meta?: {
28
+ session_id: string;
29
+ };
24
30
  }
25
31
  /**
26
32
  * Input schema for run_agent tool parameters
@@ -49,6 +55,10 @@ interface RunAgentInputSchema {
49
55
  };
50
56
  description: string;
51
57
  };
58
+ session_id: {
59
+ type: 'string';
60
+ description: string;
61
+ };
52
62
  };
53
63
  required: string[];
54
64
  }
@@ -61,12 +71,13 @@ interface RunAgentInputSchema {
61
71
  export declare class RunAgentTool {
62
72
  private agentExecutor?;
63
73
  private agentManager?;
74
+ private sessionManager?;
64
75
  readonly name = "run_agent";
65
- readonly description = "Delegate complex, multi-step, or specialized tasks to an autonomous agent for independent execution with dedicated context (e.g., refactoring across multiple files, fixing all test failures, systematic codebase analysis, batch operations)";
76
+ readonly description = "Delegate complex, multi-step, or specialized tasks to an autonomous agent for independent execution with dedicated context (e.g., refactoring across multiple files, fixing all test failures, systematic codebase analysis, batch operations). Returns session_id in response metadata - reuse it in subsequent calls to maintain conversation context continuity across multiple agent executions.";
66
77
  private logger;
67
78
  private executionStats;
68
79
  readonly inputSchema: RunAgentInputSchema;
69
- constructor(agentExecutor?: AgentExecutor | undefined, agentManager?: AgentManager | undefined);
80
+ constructor(agentExecutor?: AgentExecutor | undefined, agentManager?: AgentManager | undefined, sessionManager?: SessionManager | undefined);
70
81
  /**
71
82
  * Execute the run_agent tool with the provided parameters
72
83
  *
@@ -85,17 +96,64 @@ export declare class RunAgentTool {
85
96
  */
86
97
  private validateParams;
87
98
  /**
88
- * Format agent execution response
99
+ * Type guard to check if a value is a Record (plain object)
100
+ *
101
+ * @private
102
+ * @param value - Value to check
103
+ * @returns True if value is a Record
104
+ */
105
+ private isRecord;
106
+ /**
107
+ * Type guard to check if a value is a string
108
+ *
109
+ * @private
110
+ * @param value - Value to check
111
+ * @returns True if value is a string
112
+ */
113
+ private isStringField;
114
+ /**
115
+ * Extract content from agent response JSON
116
+ *
117
+ * Implements information extraction layer to hide agent implementation details.
118
+ * Supports both cursor-agent and claude code response formats.
119
+ *
120
+ * @private
121
+ * @param resultJson - Parsed agent response JSON (unknown type for safety)
122
+ * @param isError - Whether this is an error response
123
+ * @param stdout - Raw stdout as fallback
124
+ * @param stderr - Raw stderr as fallback
125
+ * @returns Extracted content string
126
+ */
127
+ private extractAgentContent;
128
+ /**
129
+ * Determine if agent response indicates an error
130
+ *
131
+ * Checks is_error flag first (agent-level error), then exitCode (process-level error).
132
+ *
133
+ * @private
134
+ * @param resultJson - Parsed agent response JSON
135
+ * @param exitCode - Process exit code
136
+ * @returns True if response indicates an error
137
+ */
138
+ private isAgentError;
139
+ /**
140
+ * Format agent execution response (ADR-0003)
141
+ *
142
+ * Returns MCP 2025-06-18 compliant response with:
143
+ * - content[0].text: JSON string (readable by current clients)
144
+ * - structuredContent: structured data (MCP 2025-06-18 standard)
145
+ * - _meta.session_id: session tracking (ADR-0002)
89
146
  *
90
147
  * @private
91
148
  * @param result - Agent execution result
92
149
  * @param agentName - Name of the executed agent
93
150
  * @param requestId - Request tracking ID
151
+ * @param sessionId - Session ID if session management is used
94
152
  * @returns Formatted MCP response
95
153
  */
96
154
  private formatExecutionResponse;
97
155
  /**
98
- * Create error response with optional available agents list
156
+ * Create error response with optional available agents list (ADR-0003)
99
157
  *
100
158
  * @private
101
159
  * @param errorMessage - Error message to display
@@ -1 +1 @@
1
- {"version":3,"file":"RunAgentTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunAgentTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAItF;;GAEG;AACH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE;QACV,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;QACpB,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ,CAAA;YACd,WAAW,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAA;YACd,WAAW,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ,CAAA;YACd,WAAW,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO,CAAA;YACb,KAAK,EAAE;gBAAE,IAAI,EAAE,QAAQ,CAAA;aAAE,CAAA;YACzB,WAAW,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAYD;;;;;GAKG;AACH,qBAAa,YAAY;IAkCrB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,YAAY,CAAC;IAlCvB,SAAgB,IAAI,eAAc;IAClC,SAAgB,WAAW,oPACuN;IAClP,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,cAAc,CACX;IAEX,SAAgB,WAAW,EAAE,mBAAmB,CAuB/C;gBAGS,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,YAAY,CAAC,EAAE,YAAY,YAAA;IAOrC;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAmHxD;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAuFtB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAwD/B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;OAIG;IACH,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC;IAItF;;;;;OAKG;YACW,sBAAsB;CAerC"}
1
+ {"version":3,"file":"RunAgentTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunAgentTool.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.RunAgentTool = void 0;
11
+ const node_crypto_1 = require("node:crypto");
12
+ const SessionHistoryFormatter_1 = require("../session/SessionHistoryFormatter");
11
13
  const Logger_1 = require("../utils/Logger");
12
14
  /**
13
15
  * RunAgentTool class implementing the run_agent MCP tool
@@ -16,11 +18,12 @@ const Logger_1 = require("../utils/Logger");
16
18
  * error handling, and proper MCP response formatting.
17
19
  */
18
20
  class RunAgentTool {
19
- constructor(agentExecutor, agentManager) {
21
+ constructor(agentExecutor, agentManager, sessionManager) {
20
22
  this.agentExecutor = agentExecutor;
21
23
  this.agentManager = agentManager;
24
+ this.sessionManager = sessionManager;
22
25
  this.name = 'run_agent';
23
- this.description = 'Delegate complex, multi-step, or specialized tasks to an autonomous agent for independent execution with dedicated context (e.g., refactoring across multiple files, fixing all test failures, systematic codebase analysis, batch operations)';
26
+ this.description = 'Delegate complex, multi-step, or specialized tasks to an autonomous agent for independent execution with dedicated context (e.g., refactoring across multiple files, fixing all test failures, systematic codebase analysis, batch operations). Returns session_id in response metadata - reuse it in subsequent calls to maintain conversation context continuity across multiple agent executions.';
24
27
  this.executionStats = new Map();
25
28
  this.inputSchema = {
26
29
  type: 'object',
@@ -42,6 +45,10 @@ class RunAgentTool {
42
45
  items: { type: 'string' },
43
46
  description: 'Additional configuration parameters for agent execution (optional)',
44
47
  },
48
+ session_id: {
49
+ type: 'string',
50
+ 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.',
51
+ },
45
52
  },
46
53
  required: ['agent', 'prompt'],
47
54
  };
@@ -63,15 +70,31 @@ class RunAgentTool {
63
70
  requestId,
64
71
  timestamp: new Date().toISOString(),
65
72
  });
73
+ // Best-effort cleanup: old session files (ADR-0002)
74
+ // Non-blocking execution - does not affect main processing flow
75
+ if (this.sessionManager) {
76
+ Promise.resolve()
77
+ .then(() => this.sessionManager.cleanupOldSessions())
78
+ .catch((error) => {
79
+ this.logger.warn('Session cleanup failed (best-effort)', {
80
+ requestId,
81
+ error: error instanceof Error ? error.message : String(error),
82
+ });
83
+ });
84
+ }
66
85
  try {
67
86
  // Validate parameters with enhanced validation
68
87
  const validatedParams = this.validateParams(params);
88
+ // Auto-generate session_id if not provided and SessionManager is available
89
+ const sessionId = validatedParams.session_id || (this.sessionManager ? (0, node_crypto_1.randomUUID)() : undefined);
69
90
  this.logger.debug('Parameters validated successfully', {
70
91
  requestId,
71
92
  agent: validatedParams.agent,
72
93
  promptLength: validatedParams.prompt.length,
73
94
  cwd: validatedParams.cwd,
74
95
  extraArgsCount: validatedParams.extra_args?.length || 0,
96
+ sessionId: sessionId,
97
+ sessionIdGenerated: !validatedParams.session_id && !!sessionId,
75
98
  });
76
99
  // Check if agent exists
77
100
  if (this.agentManager) {
@@ -101,9 +124,41 @@ class RunAgentTool {
101
124
  agentContext = agent.content;
102
125
  }
103
126
  }
127
+ // Load session history if session_id is provided and SessionManager is available
128
+ let promptWithHistory = validatedParams.prompt;
129
+ if (sessionId && this.sessionManager) {
130
+ try {
131
+ // CRITICAL: Pass agent_type to enforce sub-agent isolation
132
+ const sessionData = await this.sessionManager.loadSession(sessionId, validatedParams.agent);
133
+ if (sessionData && sessionData.history.length > 0) {
134
+ // Convert session history to Markdown format for token efficiency and LLM comprehension
135
+ const historyMarkdown = (0, SessionHistoryFormatter_1.formatSessionHistory)(sessionData);
136
+ promptWithHistory = `Previous conversation history:\n\n${historyMarkdown}\n\n---\n\nCurrent request:\n${validatedParams.prompt}`;
137
+ this.logger.info('Session history loaded and merged', {
138
+ requestId,
139
+ sessionId: sessionId,
140
+ historyEntries: sessionData.history.length,
141
+ });
142
+ }
143
+ else {
144
+ this.logger.debug('No session history found', {
145
+ requestId,
146
+ sessionId: sessionId,
147
+ });
148
+ }
149
+ }
150
+ catch (error) {
151
+ // Log error but continue - session loading failure should not break main flow
152
+ this.logger.warn('Failed to load session history', {
153
+ requestId,
154
+ sessionId: sessionId,
155
+ error: error instanceof Error ? error.message : String(error),
156
+ });
157
+ }
158
+ }
104
159
  const executionParams = {
105
160
  agent: agentContext,
106
- prompt: validatedParams.prompt,
161
+ prompt: promptWithHistory,
107
162
  ...(validatedParams.cwd !== undefined && { cwd: validatedParams.cwd }),
108
163
  ...(validatedParams.extra_args !== undefined && {
109
164
  extra_args: validatedParams.extra_args,
@@ -122,8 +177,42 @@ class RunAgentTool {
122
177
  executionTime: result.executionTime,
123
178
  totalTime: Date.now() - startTime,
124
179
  });
180
+ // Save session if session_id is available and SessionManager is available
181
+ if (sessionId && this.sessionManager) {
182
+ try {
183
+ // Build request object with only defined properties
184
+ const sessionRequest = {
185
+ agent: validatedParams.agent,
186
+ prompt: validatedParams.prompt,
187
+ };
188
+ if (validatedParams.cwd !== undefined) {
189
+ sessionRequest.cwd = validatedParams.cwd;
190
+ }
191
+ if (validatedParams.extra_args !== undefined) {
192
+ sessionRequest.extra_args = validatedParams.extra_args;
193
+ }
194
+ await this.sessionManager.saveSession(sessionId, sessionRequest, {
195
+ stdout: result.stdout,
196
+ stderr: result.stderr,
197
+ exitCode: result.exitCode,
198
+ executionTime: result.executionTime,
199
+ });
200
+ this.logger.info('Session saved successfully', {
201
+ requestId,
202
+ sessionId: sessionId,
203
+ });
204
+ }
205
+ catch (error) {
206
+ // Log error but continue - session save failure should not break main flow
207
+ this.logger.warn('Failed to save session', {
208
+ requestId,
209
+ sessionId: sessionId,
210
+ error: error instanceof Error ? error.message : String(error),
211
+ });
212
+ }
213
+ }
125
214
  // Mark MCP request as completed
126
- return this.formatExecutionResponse(result, validatedParams.agent, requestId);
215
+ return this.formatExecutionResponse(result, validatedParams.agent, requestId, sessionId);
127
216
  }
128
217
  // Fallback response if executor is not available
129
218
  this.logger.warn('Agent executor not available', { requestId });
@@ -215,68 +304,159 @@ class RunAgentTool {
215
304
  }
216
305
  }
217
306
  }
307
+ // Validate optional session_id parameter
308
+ if (p['session_id'] !== undefined) {
309
+ if (typeof p['session_id'] !== 'string') {
310
+ throw new Error('Session ID parameter must be a string if provided');
311
+ }
312
+ const sessionId = p['session_id'].trim();
313
+ if (sessionId === '') {
314
+ throw new Error('Invalid session ID parameter: cannot be empty');
315
+ }
316
+ if (sessionId.length > 100) {
317
+ throw new Error('Session ID too long (max 100 characters)');
318
+ }
319
+ // Validate session ID format (alphanumeric, hyphens, underscores only)
320
+ if (!/^[a-zA-Z0-9_-]+$/.test(sessionId)) {
321
+ throw new Error('Session ID contains invalid characters (only alphanumeric, underscore, and dash allowed)');
322
+ }
323
+ }
218
324
  return {
219
325
  agent: agentName,
220
326
  prompt: prompt,
221
327
  cwd: p['cwd'],
222
328
  extra_args: p['extra_args'],
329
+ session_id: p['session_id'],
223
330
  };
224
331
  }
225
332
  /**
226
- * Format agent execution response
333
+ * Type guard to check if a value is a Record (plain object)
334
+ *
335
+ * @private
336
+ * @param value - Value to check
337
+ * @returns True if value is a Record
338
+ */
339
+ isRecord(value) {
340
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
341
+ }
342
+ /**
343
+ * Type guard to check if a value is a string
344
+ *
345
+ * @private
346
+ * @param value - Value to check
347
+ * @returns True if value is a string
348
+ */
349
+ isStringField(value) {
350
+ return typeof value === 'string';
351
+ }
352
+ /**
353
+ * Extract content from agent response JSON
354
+ *
355
+ * Implements information extraction layer to hide agent implementation details.
356
+ * Supports both cursor-agent and claude code response formats.
357
+ *
358
+ * @private
359
+ * @param resultJson - Parsed agent response JSON (unknown type for safety)
360
+ * @param isError - Whether this is an error response
361
+ * @param stdout - Raw stdout as fallback
362
+ * @param stderr - Raw stderr as fallback
363
+ * @returns Extracted content string
364
+ */
365
+ extractAgentContent(resultJson, isError, stdout, stderr) {
366
+ // Type guard: Check if resultJson is a valid record
367
+ if (!this.isRecord(resultJson)) {
368
+ return stdout || stderr || 'No output';
369
+ }
370
+ // Priority field differs between success and error cases
371
+ const primaryField = isError ? 'error' : 'result';
372
+ // Extract primary field (result or error)
373
+ if (this.isStringField(resultJson[primaryField])) {
374
+ return resultJson[primaryField];
375
+ }
376
+ // Fallback to content field (claude code may use this)
377
+ if (this.isStringField(resultJson['content'])) {
378
+ return resultJson['content'];
379
+ }
380
+ // Final fallback to raw stdout/stderr
381
+ return stdout || stderr || 'No output';
382
+ }
383
+ /**
384
+ * Determine if agent response indicates an error
385
+ *
386
+ * Checks is_error flag first (agent-level error), then exitCode (process-level error).
387
+ *
388
+ * @private
389
+ * @param resultJson - Parsed agent response JSON
390
+ * @param exitCode - Process exit code
391
+ * @returns True if response indicates an error
392
+ */
393
+ isAgentError(resultJson, exitCode) {
394
+ // Priority 1: Check agent's is_error flag
395
+ if (this.isRecord(resultJson) && resultJson['is_error'] === true) {
396
+ return true;
397
+ }
398
+ // Priority 2: Check process exit code (excluding special cases)
399
+ // 143: SIGTERM (normal termination)
400
+ // 124: Timeout (may have partial result)
401
+ return exitCode !== 0 && exitCode !== 143 && exitCode !== 124;
402
+ }
403
+ /**
404
+ * Format agent execution response (ADR-0003)
405
+ *
406
+ * Returns MCP 2025-06-18 compliant response with:
407
+ * - content[0].text: JSON string (readable by current clients)
408
+ * - structuredContent: structured data (MCP 2025-06-18 standard)
409
+ * - _meta.session_id: session tracking (ADR-0002)
227
410
  *
228
411
  * @private
229
412
  * @param result - Agent execution result
230
413
  * @param agentName - Name of the executed agent
231
414
  * @param requestId - Request tracking ID
415
+ * @param sessionId - Session ID if session management is used
232
416
  * @returns Formatted MCP response
233
417
  */
234
- formatExecutionResponse(result, agentName, requestId) {
235
- // Determine execution status
418
+ formatExecutionResponse(result, agentName, requestId, sessionId) {
419
+ // Determine if response indicates an error (agent-level or process-level)
420
+ const isError = this.isAgentError(result.resultJson, result.exitCode);
421
+ // Extract actual content from agent response
422
+ const contentText = this.extractAgentContent(result.resultJson, isError, result.stdout, result.stderr);
423
+ // Determine detailed status
236
424
  const isSuccess = result.exitCode === 0 || // Normal completion
237
425
  (result.exitCode === 143 && result.hasResult === true); // SIGTERM with result
238
426
  const isPartialSuccess = result.exitCode === 124 && result.hasResult === true; // Timeout with partial result
239
- const isError = !isSuccess && !isPartialSuccess;
240
- // Content is just the agent's actual output
241
- const contentText = result.stdout || result.stderr || 'No output';
242
- // All metadata goes to structuredContent
243
- const structuredContent = {
427
+ // Build response data structure (ADR-0003)
428
+ // This object is used in both content[0].text and structuredContent
429
+ const responseData = {
430
+ result: contentText,
244
431
  agent: agentName,
245
- exitCode: result.exitCode,
246
- executionTime: result.executionTime,
247
- hasResult: result.hasResult || false,
432
+ exit_code: result.exitCode,
433
+ execution_time: result.executionTime,
248
434
  status: isSuccess ? 'success' : isPartialSuccess ? 'partial' : 'error',
435
+ ...(sessionId && { session_id: sessionId }),
436
+ ...(requestId && { request_id: requestId }),
249
437
  };
250
- if (result.resultJson) {
251
- structuredContent['result'] = result.resultJson;
252
- }
253
- if (result.stderr && result.stdout) {
254
- // Only include stderr in structured content if we also have stdout
255
- // Otherwise stderr is already in content
256
- structuredContent['stderr'] = result.stderr;
257
- }
258
- if (requestId) {
259
- structuredContent['requestId'] = requestId;
260
- }
261
- // Update statistics
262
- const stats = this.executionStats.get(agentName);
263
- if (stats) {
264
- structuredContent['usageCount'] = stats.count;
265
- structuredContent['averageTime'] = Math.round(stats.totalTime / stats.count);
266
- }
267
- return {
438
+ const response = {
268
439
  content: [
269
440
  {
270
441
  type: 'text',
271
- text: contentText,
442
+ // JSON string format for current MCP clients (Cursor, Claude Code, etc.)
443
+ text: JSON.stringify(responseData, null, 2),
272
444
  },
273
445
  ],
274
446
  isError: isError,
275
- structuredContent,
447
+ // Structured data format (MCP 2025-06-18 standard)
448
+ structuredContent: responseData,
276
449
  };
450
+ // Add session_id to response metadata (ADR-0002)
451
+ if (sessionId) {
452
+ response._meta = {
453
+ session_id: sessionId,
454
+ };
455
+ }
456
+ return response;
277
457
  }
278
458
  /**
279
- * Create error response with optional available agents list
459
+ * Create error response with optional available agents list (ADR-0003)
280
460
  *
281
461
  * @private
282
462
  * @param errorMessage - Error message to display
@@ -284,26 +464,23 @@ class RunAgentTool {
284
464
  * @returns Error response in MCP format
285
465
  */
286
466
  createErrorResponse(errorMessage, availableAgents) {
287
- let responseText = `Error: ${errorMessage}`;
288
- if (availableAgents && availableAgents.length > 0) {
289
- responseText += `\n\nAvailable agents:\n${availableAgents.map((name) => `- ${name}`).join('\n')}`;
290
- }
291
- const errorStructuredContent = {
467
+ // Build error response data
468
+ const errorData = {
292
469
  status: 'error',
293
470
  error: errorMessage,
471
+ ...(availableAgents && { available_agents: availableAgents }),
294
472
  };
295
- if (availableAgents) {
296
- errorStructuredContent['availableAgents'] = availableAgents;
297
- }
298
473
  return {
299
474
  content: [
300
475
  {
301
476
  type: 'text',
302
- text: responseText,
477
+ // JSON string format for current MCP clients
478
+ text: JSON.stringify(errorData, null, 2),
303
479
  },
304
480
  ],
305
481
  isError: true,
306
- structuredContent: errorStructuredContent,
482
+ // Structured data format (MCP 2025-06-18 standard)
483
+ structuredContent: errorData,
307
484
  };
308
485
  }
309
486
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RunAgentTool.js","sourceRoot":"","sources":["../../src/tools/RunAgentTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunAgentTool.js","sourceRoot":"","sources":["../../src/tools/RunAgentTool.ts"],"names":[],"mappings":"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"}