@tencent-ai/agent-sdk 0.3.10 → 0.3.12

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/lib/acp/agent.js CHANGED
@@ -11,9 +11,16 @@
11
11
  * Browser -> HTTP -> AcpHttpTransport -> AgentSideConnection -> AcpAgent -> Session
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.AcpAgent = void 0;
15
- const tool_converter_1 = require("./tool-converter");
14
+ exports.AcpAgent = exports.ACP_EXT_METHOD_QUESTION = void 0;
15
+ const converter_1 = require("./converter");
16
16
  const crypto_1 = require("crypto");
17
+ // ============= ACP Extension Constants =============
18
+ // These should stay in sync with @genie/agent-client-protocol types.ts
19
+ /**
20
+ * Extension method for tool input requests (e.g., AskUserQuestion).
21
+ * Matches ExtensionMethod.QUESTION from agent-client-protocol.
22
+ */
23
+ exports.ACP_EXT_METHOD_QUESTION = '_codebuddy.ai/question';
17
24
  /**
18
25
  * AcpAgent - Implements the official ACP Agent interface
19
26
  *
@@ -45,6 +52,10 @@ class AcpAgent {
45
52
  this.sessions = new Map();
46
53
  this.activePromptSessionId = null;
47
54
  this.promptAbortController = null;
55
+ /** Per-session converters for proper state management */
56
+ this.sessionConverters = new Map();
57
+ /** Track session last activity time for LRU eviction */
58
+ this.sessionLastActivity = new Map();
48
59
  this.connection = connection;
49
60
  this.defaultSession = session;
50
61
  this.options = {
@@ -58,7 +69,7 @@ class AcpAgent {
58
69
  // If a default session is provided, register it with a generated ID
59
70
  if (session) {
60
71
  const sessionId = (0, crypto_1.randomUUID)();
61
- this.sessions.set(sessionId, session);
72
+ this.registerSession(sessionId, session);
62
73
  }
63
74
  // Clean up when connection closes
64
75
  // Note: connection.signal may not be available during construction
@@ -112,11 +123,11 @@ class AcpAgent {
112
123
  // Pass sessionId so the factory can store it for later loading
113
124
  if (this.options.onNewSession) {
114
125
  const session = await this.options.onNewSession({ ...params, sessionId });
115
- this.sessions.set(sessionId, session);
126
+ this.registerSession(sessionId, session);
116
127
  return {
117
128
  sessionId,
118
129
  modes: this.getSessionModes(session),
119
- models: this.getSessionModels(session),
130
+ models: await this.getSessionModels(session),
120
131
  };
121
132
  }
122
133
  // If we have a default session, return the first registered sessionId
@@ -125,7 +136,7 @@ class AcpAgent {
125
136
  return {
126
137
  sessionId: firstSessionId,
127
138
  modes: this.getSessionModes(this.defaultSession),
128
- models: this.getSessionModels(this.defaultSession),
139
+ models: await this.getSessionModels(this.defaultSession),
129
140
  };
130
141
  }
131
142
  throw new Error('No session available. Provide either a session or onNewSession.');
@@ -143,16 +154,16 @@ class AcpAgent {
143
154
  const session = this.sessions.get(sessionId);
144
155
  return {
145
156
  modes: this.getSessionModes(session),
146
- models: this.getSessionModels(session),
157
+ models: await this.getSessionModels(session),
147
158
  };
148
159
  }
149
160
  // If we have a session loader, use it to resume the session
150
161
  if (this.options.onLoadSession) {
151
162
  const session = await this.options.onLoadSession(params);
152
- this.sessions.set(sessionId, session);
163
+ this.registerSession(sessionId, session);
153
164
  return {
154
165
  modes: this.getSessionModes(session),
155
- models: this.getSessionModels(session),
166
+ models: await this.getSessionModels(session),
156
167
  };
157
168
  }
158
169
  throw new Error('Session loading not supported. Provide onLoadSession in options.');
@@ -168,6 +179,8 @@ class AcpAgent {
168
179
  if (!session) {
169
180
  throw new Error(`Session not found: ${sessionId}`);
170
181
  }
182
+ // Update session activity
183
+ this.touchSession(sessionId);
171
184
  // Track active prompt for cancellation
172
185
  this.activePromptSessionId = sessionId;
173
186
  this.promptAbortController = new AbortController();
@@ -209,6 +222,37 @@ class AcpAgent {
209
222
  this.promptAbortController.abort();
210
223
  }
211
224
  }
225
+ /**
226
+ * Set the operational mode for a session.
227
+ *
228
+ * Maps ACP SessionModeId to SDK PermissionMode and delegates to Session.setPermissionMode().
229
+ */
230
+ async setSessionMode(params) {
231
+ const { sessionId, modeId } = params;
232
+ const session = this.sessions.get(sessionId);
233
+ if (!session) {
234
+ throw new Error(`Session not found: ${sessionId}`);
235
+ }
236
+ // Map ACP modeId to SDK PermissionMode
237
+ await session.setPermissionMode(modeId);
238
+ return {};
239
+ }
240
+ /**
241
+ * Set the model for a session.
242
+ *
243
+ * Delegates to Session.setModel().
244
+ *
245
+ * @experimental This capability is not part of the spec yet.
246
+ */
247
+ async unstable_setSessionModel(params) {
248
+ const { sessionId, modelId } = params;
249
+ const session = this.sessions.get(sessionId);
250
+ if (!session) {
251
+ throw new Error(`Session not found: ${sessionId}`);
252
+ }
253
+ await session.setModel(modelId);
254
+ return {};
255
+ }
212
256
  // ============= Optional Agent Interface Methods =============
213
257
  async extMethod(_method, _params) {
214
258
  return { handled: false };
@@ -239,7 +283,111 @@ class AcpAgent {
239
283
  getSessionIds() {
240
284
  return Array.from(this.sessions.keys());
241
285
  }
286
+ /**
287
+ * Get the number of active sessions.
288
+ */
289
+ getSessionCount() {
290
+ return this.sessions.size;
291
+ }
292
+ /**
293
+ * Remove a session by ID and free associated resources.
294
+ * @param sessionId - The session ID to remove
295
+ * @param closeSession - Whether to close the session (default: true)
296
+ * @returns true if the session was removed, false if not found
297
+ */
298
+ removeSession(sessionId, closeSession = true) {
299
+ const session = this.sessions.get(sessionId);
300
+ if (!session) {
301
+ return false;
302
+ }
303
+ // Close the session if requested
304
+ if (closeSession) {
305
+ try {
306
+ session.close();
307
+ }
308
+ catch (_a) {
309
+ // Ignore close errors
310
+ }
311
+ }
312
+ // Clean up all associated resources
313
+ this.sessions.delete(sessionId);
314
+ this.sessionConverters.delete(sessionId);
315
+ this.sessionLastActivity.delete(sessionId);
316
+ return true;
317
+ }
318
+ /**
319
+ * Remove all sessions and free resources.
320
+ * @param closeSessions - Whether to close sessions (default: true)
321
+ */
322
+ removeAllSessions(closeSessions = true) {
323
+ for (const sessionId of this.sessions.keys()) {
324
+ this.removeSession(sessionId, closeSessions);
325
+ }
326
+ }
327
+ /**
328
+ * Get memory statistics for debugging.
329
+ */
330
+ getMemoryStats() {
331
+ let oldestTime = null;
332
+ for (const time of this.sessionLastActivity.values()) {
333
+ if (oldestTime === null || time < oldestTime) {
334
+ oldestTime = time;
335
+ }
336
+ }
337
+ return {
338
+ sessionCount: this.sessions.size,
339
+ converterCount: this.sessionConverters.size,
340
+ oldestSessionAge: oldestTime ? Date.now() - oldestTime : null,
341
+ };
342
+ }
242
343
  // ============= Private Helper Methods =============
344
+ /**
345
+ * Register a session with memory management.
346
+ * Injects canUseTool handler for AskUserQuestion support.
347
+ */
348
+ registerSession(sessionId, session) {
349
+ // Enforce maxSessions limit if configured
350
+ if (this.options.maxSessions && this.sessions.size >= this.options.maxSessions) {
351
+ this.evictOldestSession();
352
+ }
353
+ // Get the original handler before wrapping (preserves user-configured handlers)
354
+ const originalHandler = session.getCanUseTool();
355
+ // Inject canUseTool handler for AskUserQuestion support
356
+ // This wraps any existing handler and intercepts AskUserQuestion requests
357
+ const wrappedHandler = this.createCanUseToolHandler(sessionId, originalHandler);
358
+ session.setCanUseTool(wrappedHandler);
359
+ this.sessions.set(sessionId, session);
360
+ this.sessionConverters.set(sessionId, new converter_1.AcpConverter());
361
+ this.sessionLastActivity.set(sessionId, Date.now());
362
+ }
363
+ /**
364
+ * Update session activity timestamp.
365
+ */
366
+ touchSession(sessionId) {
367
+ if (this.sessions.has(sessionId)) {
368
+ this.sessionLastActivity.set(sessionId, Date.now());
369
+ }
370
+ }
371
+ /**
372
+ * Evict the oldest inactive session (LRU).
373
+ */
374
+ evictOldestSession() {
375
+ let oldestId = null;
376
+ let oldestTime = Infinity;
377
+ for (const [id, time] of this.sessionLastActivity.entries()) {
378
+ // Don't evict the active prompt session
379
+ if (id === this.activePromptSessionId) {
380
+ continue;
381
+ }
382
+ if (time < oldestTime) {
383
+ oldestTime = time;
384
+ oldestId = id;
385
+ }
386
+ }
387
+ if (oldestId) {
388
+ this.removeSession(oldestId, true);
389
+ }
390
+ }
243
391
  /**
244
392
  * Get session modes configuration.
245
393
  * Returns the available modes and current mode from the given session.
@@ -270,16 +418,26 @@ class AcpAgent {
270
418
  /**
271
419
  * Get session models configuration.
272
420
  * Returns the available models and current model from the given session.
273
- * @param session - Optional session to get current model from.
421
+ * Fetches available models from the session if supported.
422
+ * @param session - Optional session to get current model and available models from.
274
423
  */
275
- getSessionModels(session) {
424
+ async getSessionModels(session) {
276
425
  var _a;
277
- // TODO: availableModels cannot be obtained at the moment
278
- // Future implementation may include:
279
- // - Configuring via AcpAgentOptions
280
- // - Fetching from external API
281
- // - Reading from configuration file
282
- const availableModels = [];
426
+ // Attempt to fetch available models from session
427
+ let availableModels = [];
428
+ try {
429
+ if (session) {
430
+ const models = await session.getAvailableModels();
431
+ availableModels = models.map((m) => ({
432
+ modelId: m.modelId,
433
+ name: m.name,
434
+ description: m.description,
435
+ }));
436
+ }
437
+ }
438
+ catch (_b) {
439
+ // CLI may not support getAvailableModels, silently fall back to empty array
440
+ }
283
441
  // Get current model from the provided session
284
442
  // If no model is set, use undefined (no default fallback)
285
443
  const currentModelId = (_a = session === null || session === void 0 ? void 0 : session.getModel()) !== null && _a !== void 0 ? _a : undefined;
@@ -297,12 +455,24 @@ class AcpAgent {
297
455
  .map((block) => block.text)
298
456
  .join('\n');
299
457
  }
458
+ /**
459
+ * Get or create a converter for a session.
460
+ */
461
+ getSessionConverter(sessionId) {
462
+ let converter = this.sessionConverters.get(sessionId);
463
+ if (!converter) {
464
+ converter = new converter_1.AcpConverter();
465
+ this.sessionConverters.set(sessionId, converter);
466
+ }
467
+ return converter;
468
+ }
300
469
  /**
301
470
  * Send session updates to the client via AgentSideConnection.
302
471
  */
303
472
  async sendSessionUpdates(sessionId, message) {
304
- // AcpTransformer.sdkToAcp returns AcpMessage[] which is compatible with AnyMessage
305
- const acpMessages = tool_converter_1.AcpTransformer.sdkToAcp(message);
473
+ // Use per-session converter for proper state management
474
+ const converter = this.getSessionConverter(sessionId);
475
+ const acpMessages = converter.convert(message);
306
476
  for (const acpMessage of acpMessages) {
307
477
  await this.sendSessionUpdate(sessionId, acpMessage);
308
478
  }
@@ -310,7 +480,7 @@ class AcpAgent {
310
480
  /**
311
481
  * Send a single session update notification.
312
482
  *
313
- * Handles the unified 'session/update' format from AcpTransformer:
483
+ * Handles the unified 'session/update' format from AcpConverter:
314
484
  * - tool_call: New tool call started
315
485
  * - tool_call_update: Tool call status/result update
316
486
  * - agent_message_chunk: Text content from the agent
@@ -357,13 +527,124 @@ class AcpAgent {
357
527
  console.error('[AcpAgent] Error sending session update:', error);
358
528
  }
359
529
  }
530
+ // ============= AskUserQuestion Support =============
531
+ /**
532
+ * Create a canUseTool handler that wraps the original handler
533
+ * and intercepts AskUserQuestion requests.
534
+ *
535
+ * @param sessionId - The session ID for this handler
536
+ * @param originalHandler - Optional original canUseTool handler to delegate to
537
+ * @returns A wrapped canUseTool handler
538
+ */
539
+ createCanUseToolHandler(sessionId, originalHandler) {
540
+ return async (toolName, input, options) => {
541
+ // Intercept AskUserQuestion tool
542
+ if (toolName === 'AskUserQuestion') {
543
+ return this.handleAskUserQuestion(sessionId, input, options);
544
+ }
545
+ // Delegate other tools to original handler
546
+ if (originalHandler) {
547
+ return originalHandler(toolName, input, options);
548
+ }
549
+ // Default: allow if no handler
550
+ return { behavior: 'allow', updatedInput: input };
551
+ };
552
+ }
553
+ /**
554
+ * Handle AskUserQuestion tool requests.
555
+ *
556
+ * If onAskUserQuestion is provided, uses that handler.
557
+ * Otherwise, sends the request to the client via ACP extMethod (_codebuddy.ai/question).
558
+ *
559
+ * @param sessionId - The session ID
560
+ * @param input - The tool input (AskUserQuestionInput)
561
+ * @param options - Permission options including toolUseID
562
+ * @returns Permission result with answers or denial
563
+ */
564
+ async handleAskUserQuestion(sessionId, input, options) {
565
+ var _a;
566
+ const askInput = input;
567
+ // Build high-level request for custom handler
568
+ const askRequest = {
569
+ sessionId,
570
+ toolUseId: options.toolUseID,
571
+ questions: askInput.questions,
572
+ };
573
+ try {
574
+ let answers = null;
575
+ // Use custom handler if provided
576
+ if (this.options.onAskUserQuestion) {
577
+ const response = await this.options.onAskUserQuestion(askRequest);
578
+ answers = (_a = response === null || response === void 0 ? void 0 : response.answers) !== null && _a !== void 0 ? _a : null;
579
+ }
580
+ else {
581
+ // Build ToolInputRequest for ACP protocol
582
+ const toolInputRequest = {
583
+ sessionId,
584
+ toolCallId: options.toolUseID,
585
+ inputType: 'question',
586
+ schema: {
587
+ questions: askInput.questions.map((q, idx) => ({
588
+ id: `q_${idx}`,
589
+ question: q.question,
590
+ header: q.header,
591
+ options: q.options,
592
+ multiSelect: q.multiSelect,
593
+ })),
594
+ },
595
+ };
596
+ // Send to client via ACP extMethod
597
+ const result = await this.connection.extMethod(exports.ACP_EXT_METHOD_QUESTION, toolInputRequest);
598
+ // Parse ToolInputResponse
599
+ const toolInputResponse = result;
600
+ if (toolInputResponse.outcome.outcome === 'submitted') {
601
+ // Convert QuestionInputData answers to simple Record<string, string>
602
+ const data = toolInputResponse.outcome.data;
603
+ answers = {};
604
+ for (const [key, value] of Object.entries(data.answers)) {
605
+ // Handle both string and string[] answers
606
+ answers[key] = Array.isArray(value) ? value.join(', ') : value;
607
+ }
608
+ }
609
+ }
610
+ // Check for valid answers
611
+ if (answers && Object.keys(answers).length > 0) {
612
+ return {
613
+ behavior: 'allow',
614
+ updatedInput: {
615
+ questions: askInput.questions,
616
+ answers,
617
+ },
618
+ };
619
+ }
620
+ else {
621
+ // User declined or no answers provided
622
+ return {
623
+ behavior: 'deny',
624
+ message: 'User declined to answer questions',
625
+ };
626
+ }
627
+ }
628
+ catch (error) {
629
+ // Handle errors (e.g., client doesn't support extMethod)
630
+ return {
631
+ behavior: 'deny',
632
+ message: error instanceof Error
633
+ ? error.message
634
+ : 'Failed to get user answers',
635
+ };
636
+ }
637
+ }
360
638
  /**
361
639
  * Clean up when the connection closes.
640
+ * Removes all sessions and frees memory.
362
641
  */
363
642
  cleanup() {
364
643
  this.activePromptSessionId = null;
365
644
  this.promptAbortController = null;
366
- // Note: We don't close the session here because it's managed externally
645
+ // Clean up all sessions when connection closes
646
+ // closeSession=true to properly release resources
647
+ this.removeAllSessions(true);
367
648
  }
368
649
  }
369
650
  exports.AcpAgent = AcpAgent;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/acp/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/acp/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { ToolUseContentBlock, ToolResultContentBlock, Message } from '../types';
2
+ import type { ToolCallLocation, ToolCallContent, SessionNotification, ToolCallUpdate } from '@agentclientprotocol/sdk';
3
+ export interface ToolResult {
4
+ toolCallId: string;
5
+ status: 'completed' | 'failed';
6
+ content?: ToolCallContent[];
7
+ locations?: ToolCallLocation[];
8
+ rawOutput?: unknown;
9
+ }
10
+ type SessionUpdateNotification = {
11
+ jsonrpc: '2.0';
12
+ method: 'session/update';
13
+ params: SessionNotification;
14
+ };
15
+ type SessionPromptNotification = {
16
+ jsonrpc: '2.0';
17
+ method: 'session/prompt';
18
+ params: {
19
+ sessionId: string;
20
+ prompt: Array<{
21
+ type: 'text';
22
+ text: string;
23
+ }>;
24
+ _meta?: {
25
+ 'codebuddy.ai': {
26
+ messageId?: string;
27
+ };
28
+ };
29
+ };
30
+ };
31
+ type SessionResultNotification = {
32
+ jsonrpc: '2.0';
33
+ method: 'session/result';
34
+ params: {
35
+ sessionId: string;
36
+ result: unknown;
37
+ };
38
+ };
39
+ type SessionErrorNotification = {
40
+ jsonrpc: '2.0';
41
+ method: 'session/error';
42
+ params: {
43
+ sessionId: string;
44
+ error: unknown;
45
+ };
46
+ };
47
+ export type AcpMessage = SessionUpdateNotification | SessionPromptNotification | SessionResultNotification | SessionErrorNotification;
48
+ export declare class AcpConverter {
49
+ private todoWriteToolUseIds;
50
+ reset(): void;
51
+ private isTodoWriteToolUse;
52
+ private shouldSkipToolResult;
53
+ private convertTodoWriteToPlan;
54
+ convert(message: Message, mode?: 'stream' | 'history'): AcpMessage[];
55
+ private convertStreamMessage;
56
+ private convertStreamEvent;
57
+ private convertHistoryMessage;
58
+ private convertHistoryAssistantMessage;
59
+ private convertHistoryUserMessage;
60
+ private convertToolUseBlock;
61
+ private convertUserToolResults;
62
+ static convertToolUseToSessionUpdate(toolUse: ToolUseContentBlock, sessionId: string, messageId?: string): SessionNotification;
63
+ private static extractToolCallContent;
64
+ static convertToolResultToUpdate(toolResult: ToolResultContentBlock): ToolCallUpdate;
65
+ static convertAcpToolResultToSdk(toolCallId: string, acpResult: ToolResult): ToolResultContentBlock;
66
+ static convertSdkToolResultToToolResult(toolResult: ToolResultContentBlock): ToolResult;
67
+ private static generateToolTitle;
68
+ private static getToolKind;
69
+ private static generateToolContent;
70
+ private static extractToolLocations;
71
+ private static formatAcpContentForSdk;
72
+ private static formatDiffHunk;
73
+ private static extractToolUseBlocks;
74
+ private static extractTextContent;
75
+ }
76
+ export {};
77
+ //# sourceMappingURL=converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/acp/converter.ts"],"names":[],"mappings":"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"}