@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/cli/CHANGELOG.md +23 -0
- package/cli/dist/codebuddy.js +4 -4
- package/cli/package.json +1 -1
- package/cli/product.cloudhosted.json +2 -2
- package/cli/product.internal.json +2 -2
- package/cli/product.ioa.json +2 -2
- package/cli/product.json +2 -2
- package/cli/product.selfhosted.json +2 -2
- package/lib/acp/agent.d.ts +226 -11
- package/lib/acp/agent.d.ts.map +1 -1
- package/lib/acp/agent.js +302 -21
- package/lib/acp/agent.js.map +1 -1
- package/lib/acp/converter.d.ts +77 -0
- package/lib/acp/converter.d.ts.map +1 -0
- package/lib/acp/converter.js +613 -0
- package/lib/acp/converter.js.map +1 -0
- package/lib/acp/index.d.ts +4 -14
- package/lib/acp/index.d.ts.map +1 -1
- package/lib/acp/index.js +4 -15
- package/lib/acp/index.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -4
- package/lib/index.js.map +1 -1
- package/lib/session.d.ts +13 -9
- package/lib/session.d.ts.map +1 -1
- package/lib/session.js +18 -107
- package/lib/session.js.map +1 -1
- package/lib/types.d.ts +15 -7
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +1 -1
- package/lib/acp/tool-converter.d.ts +0 -152
- package/lib/acp/tool-converter.d.ts.map +0 -1
- package/lib/acp/tool-converter.js +0 -806
- package/lib/acp/tool-converter.js.map +0 -1
package/cli/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tencent-ai/codebuddy-code",
|
|
3
|
-
"version": "2.37.
|
|
3
|
+
"version": "2.37.17",
|
|
4
4
|
"description": "Use CodeBuddy, Tencent's AI assistant, right from your terminal. CodeBuddy can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.",
|
|
5
5
|
"main": "lib/node/index.js",
|
|
6
6
|
"typings": "lib/node/index.d.ts",
|
|
@@ -323,6 +323,6 @@
|
|
|
323
323
|
"BillingNotice": false,
|
|
324
324
|
"CustomModelsJSON": true
|
|
325
325
|
},
|
|
326
|
-
"commit": "
|
|
327
|
-
"date": "2026-01-
|
|
326
|
+
"commit": "a6ef58a049d219e1d18920f28da91ad259861e07",
|
|
327
|
+
"date": "2026-01-23T07:57:18.771Z"
|
|
328
328
|
}
|
|
@@ -325,6 +325,6 @@
|
|
|
325
325
|
"BillingNotice": false,
|
|
326
326
|
"CustomModelsJSON": true
|
|
327
327
|
},
|
|
328
|
-
"commit": "
|
|
329
|
-
"date": "2026-01-
|
|
328
|
+
"commit": "a6ef58a049d219e1d18920f28da91ad259861e07",
|
|
329
|
+
"date": "2026-01-23T07:57:16.100Z"
|
|
330
330
|
}
|
package/cli/product.ioa.json
CHANGED
|
@@ -535,6 +535,6 @@
|
|
|
535
535
|
"BillingNotice": false,
|
|
536
536
|
"CustomModelsJSON": true
|
|
537
537
|
},
|
|
538
|
-
"commit": "
|
|
539
|
-
"date": "2026-01-
|
|
538
|
+
"commit": "a6ef58a049d219e1d18920f28da91ad259861e07",
|
|
539
|
+
"date": "2026-01-23T07:57:17.438Z"
|
|
540
540
|
}
|
package/cli/product.json
CHANGED
|
@@ -1044,6 +1044,6 @@
|
|
|
1044
1044
|
"description": "tool-structuredoutput-description"
|
|
1045
1045
|
}
|
|
1046
1046
|
],
|
|
1047
|
-
"commit": "
|
|
1048
|
-
"date": "2026-01-
|
|
1047
|
+
"commit": "a6ef58a049d219e1d18920f28da91ad259861e07",
|
|
1048
|
+
"date": "2026-01-23T07:57:14.774Z"
|
|
1049
1049
|
}
|
|
@@ -205,6 +205,6 @@
|
|
|
205
205
|
"BillingNotice": false,
|
|
206
206
|
"CustomModelsJSON": true
|
|
207
207
|
},
|
|
208
|
-
"commit": "
|
|
209
|
-
"date": "2026-01-
|
|
208
|
+
"commit": "a6ef58a049d219e1d18920f28da91ad259861e07",
|
|
209
|
+
"date": "2026-01-23T07:57:20.100Z"
|
|
210
210
|
}
|
package/lib/acp/agent.d.ts
CHANGED
|
@@ -9,8 +9,122 @@
|
|
|
9
9
|
* Architecture:
|
|
10
10
|
* Browser -> HTTP -> AcpHttpTransport -> AgentSideConnection -> AcpAgent -> Session
|
|
11
11
|
*/
|
|
12
|
-
import type { Agent, AgentSideConnection, InitializeRequest, InitializeResponse, AuthenticateRequest, AuthenticateResponse, NewSessionRequest, NewSessionResponse, LoadSessionRequest, LoadSessionResponse, PromptRequest, PromptResponse, CancelNotification, Implementation } from '@agentclientprotocol/sdk';
|
|
12
|
+
import type { Agent, AgentSideConnection, InitializeRequest, InitializeResponse, AuthenticateRequest, AuthenticateResponse, NewSessionRequest, NewSessionResponse, LoadSessionRequest, LoadSessionResponse, PromptRequest, PromptResponse, CancelNotification, Implementation, SetSessionModeRequest, SetSessionModeResponse, SetSessionModelRequest, SetSessionModelResponse, AgentCapabilities } from '@agentclientprotocol/sdk';
|
|
13
13
|
import type { Session } from '../types';
|
|
14
|
+
/**
|
|
15
|
+
* Extension method for tool input requests (e.g., AskUserQuestion).
|
|
16
|
+
* Matches ExtensionMethod.QUESTION from agent-client-protocol.
|
|
17
|
+
*/
|
|
18
|
+
export declare const ACP_EXT_METHOD_QUESTION = "_codebuddy.ai/question";
|
|
19
|
+
/**
|
|
20
|
+
* Question option structure.
|
|
21
|
+
* Matches QuestionOption from agent-client-protocol.
|
|
22
|
+
*/
|
|
23
|
+
export interface QuestionOption {
|
|
24
|
+
/** Display text (1-5 words) */
|
|
25
|
+
label: string;
|
|
26
|
+
/** Option description */
|
|
27
|
+
description: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Single question structure.
|
|
31
|
+
* Matches UserQuestion from agent-client-protocol.
|
|
32
|
+
*/
|
|
33
|
+
export interface UserQuestion {
|
|
34
|
+
/** Question ID */
|
|
35
|
+
id: string;
|
|
36
|
+
/** Question text */
|
|
37
|
+
question: string;
|
|
38
|
+
/** Short label (max 12 chars) */
|
|
39
|
+
header?: string;
|
|
40
|
+
/** Available options (2-4) */
|
|
41
|
+
options: QuestionOption[];
|
|
42
|
+
/** Allow multiple selections */
|
|
43
|
+
multiSelect?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Schema for 'question' inputType.
|
|
47
|
+
* Matches QuestionInputSchema from agent-client-protocol.
|
|
48
|
+
*/
|
|
49
|
+
export interface QuestionInputSchema {
|
|
50
|
+
/** Questions to ask (1-4) */
|
|
51
|
+
questions: UserQuestion[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Tool input request sent to client via extMethod.
|
|
55
|
+
* Matches ToolInputRequest from agent-client-protocol.
|
|
56
|
+
*/
|
|
57
|
+
export interface ToolInputRequest {
|
|
58
|
+
/** Session ID */
|
|
59
|
+
sessionId: string;
|
|
60
|
+
/** Associated tool call ID (links extMethod to tool_call for UI) */
|
|
61
|
+
toolCallId: string;
|
|
62
|
+
/** Type of input being requested */
|
|
63
|
+
inputType: 'question';
|
|
64
|
+
/** Input schema */
|
|
65
|
+
schema: QuestionInputSchema;
|
|
66
|
+
/** Request timeout in ms */
|
|
67
|
+
timeout?: number;
|
|
68
|
+
/** Additional metadata */
|
|
69
|
+
_meta?: Record<string, unknown>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Tool input response from client.
|
|
73
|
+
* Matches ToolInputResponse from agent-client-protocol.
|
|
74
|
+
*/
|
|
75
|
+
export interface ToolInputResponse {
|
|
76
|
+
/** Response outcome */
|
|
77
|
+
outcome: {
|
|
78
|
+
outcome: 'submitted';
|
|
79
|
+
data: QuestionInputData;
|
|
80
|
+
} | {
|
|
81
|
+
outcome: 'cancelled';
|
|
82
|
+
reason?: string;
|
|
83
|
+
};
|
|
84
|
+
/** Additional metadata */
|
|
85
|
+
_meta?: Record<string, unknown>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Response data for 'question' inputType.
|
|
89
|
+
* Matches QuestionInputData from agent-client-protocol.
|
|
90
|
+
*/
|
|
91
|
+
export interface QuestionInputData {
|
|
92
|
+
/** User's answers keyed by question ID */
|
|
93
|
+
answers: Record<string, string | string[]>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* AskUserQuestion request parameters.
|
|
97
|
+
* This is a higher-level wrapper around ToolInputRequest for convenience.
|
|
98
|
+
*/
|
|
99
|
+
export interface AskUserQuestionRequest {
|
|
100
|
+
/** Session ID */
|
|
101
|
+
sessionId: string;
|
|
102
|
+
/** Tool use ID for tracking */
|
|
103
|
+
toolUseId: string;
|
|
104
|
+
/** Questions to ask the user */
|
|
105
|
+
questions: Array<{
|
|
106
|
+
question: string;
|
|
107
|
+
header: string;
|
|
108
|
+
options: Array<{
|
|
109
|
+
label: string;
|
|
110
|
+
description: string;
|
|
111
|
+
}>;
|
|
112
|
+
multiSelect: boolean;
|
|
113
|
+
}>;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* AskUserQuestion response.
|
|
117
|
+
* This is a higher-level wrapper around ToolInputResponse for convenience.
|
|
118
|
+
*/
|
|
119
|
+
export interface AskUserQuestionResponse {
|
|
120
|
+
/** User answers keyed by question text */
|
|
121
|
+
answers: Record<string, string>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Handler type for custom AskUserQuestion processing.
|
|
125
|
+
* Return null to deny the question request.
|
|
126
|
+
*/
|
|
127
|
+
export type OnAskUserQuestion = (request: AskUserQuestionRequest) => Promise<AskUserQuestionResponse | null>;
|
|
14
128
|
/**
|
|
15
129
|
* Handler for creating sessions when session/new is called.
|
|
16
130
|
* The sessionId is provided so the session can be stored for later loading.
|
|
@@ -47,16 +161,29 @@ export interface AcpAgentOptions {
|
|
|
47
161
|
*/
|
|
48
162
|
onLoadSession?: OnLoadSession;
|
|
49
163
|
/**
|
|
50
|
-
* Custom
|
|
51
|
-
*
|
|
164
|
+
* Custom handler for AskUserQuestion tool.
|
|
165
|
+
* If not provided, uses ACP extMethod '_codebuddy.ai/ask_user_question'.
|
|
166
|
+
*
|
|
167
|
+
* Return null from the handler to deny the question request.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const agent = new AcpAgent(connection, null, {
|
|
172
|
+
* onAskUserQuestion: async (request) => {
|
|
173
|
+
* const answers = await showQuestionDialog(request.questions);
|
|
174
|
+
* return { answers };
|
|
175
|
+
* },
|
|
176
|
+
* });
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
onAskUserQuestion?: OnAskUserQuestion;
|
|
180
|
+
/**
|
|
181
|
+
* Agent capabilities to advertise during initialization.
|
|
182
|
+
* Uses the official ACP AgentCapabilities type.
|
|
183
|
+
* These will be merged with the default capabilities.
|
|
52
184
|
* User-provided values will override defaults.
|
|
53
185
|
*/
|
|
54
|
-
capabilities?:
|
|
55
|
-
agent?: boolean;
|
|
56
|
-
streaming?: boolean;
|
|
57
|
-
loadSession?: boolean;
|
|
58
|
-
[key: string]: unknown;
|
|
59
|
-
};
|
|
186
|
+
capabilities?: Partial<AgentCapabilities>;
|
|
60
187
|
/**
|
|
61
188
|
* Available permission modes configuration.
|
|
62
189
|
* If not provided, defaults to basic 'default' and 'plan' modes.
|
|
@@ -66,6 +193,12 @@ export interface AcpAgentOptions {
|
|
|
66
193
|
name: string;
|
|
67
194
|
description: string;
|
|
68
195
|
}>;
|
|
196
|
+
/**
|
|
197
|
+
* Maximum number of sessions to keep in memory.
|
|
198
|
+
* When exceeded, oldest inactive sessions will be removed.
|
|
199
|
+
* Default: no limit (undefined).
|
|
200
|
+
*/
|
|
201
|
+
maxSessions?: number;
|
|
69
202
|
}
|
|
70
203
|
/**
|
|
71
204
|
* AcpAgent - Implements the official ACP Agent interface
|
|
@@ -91,6 +224,10 @@ export declare class AcpAgent implements Agent {
|
|
|
91
224
|
private options;
|
|
92
225
|
private activePromptSessionId;
|
|
93
226
|
private promptAbortController;
|
|
227
|
+
/** Per-session converters for proper state management */
|
|
228
|
+
private sessionConverters;
|
|
229
|
+
/** Track session last activity time for LRU eviction */
|
|
230
|
+
private sessionLastActivity;
|
|
94
231
|
/**
|
|
95
232
|
* Create an AcpAgent.
|
|
96
233
|
*
|
|
@@ -135,6 +272,20 @@ export declare class AcpAgent implements Agent {
|
|
|
135
272
|
* Cancel an ongoing prompt.
|
|
136
273
|
*/
|
|
137
274
|
cancel(params: CancelNotification): Promise<void>;
|
|
275
|
+
/**
|
|
276
|
+
* Set the operational mode for a session.
|
|
277
|
+
*
|
|
278
|
+
* Maps ACP SessionModeId to SDK PermissionMode and delegates to Session.setPermissionMode().
|
|
279
|
+
*/
|
|
280
|
+
setSessionMode(params: SetSessionModeRequest): Promise<SetSessionModeResponse>;
|
|
281
|
+
/**
|
|
282
|
+
* Set the model for a session.
|
|
283
|
+
*
|
|
284
|
+
* Delegates to Session.setModel().
|
|
285
|
+
*
|
|
286
|
+
* @experimental This capability is not part of the spec yet.
|
|
287
|
+
*/
|
|
288
|
+
unstable_setSessionModel(params: SetSessionModelRequest): Promise<SetSessionModelResponse>;
|
|
138
289
|
extMethod?(_method: string, _params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
139
290
|
extNotification?(_method: string, _params: Record<string, unknown>): Promise<void>;
|
|
140
291
|
/**
|
|
@@ -149,6 +300,43 @@ export declare class AcpAgent implements Agent {
|
|
|
149
300
|
* Get all session IDs.
|
|
150
301
|
*/
|
|
151
302
|
getSessionIds(): string[];
|
|
303
|
+
/**
|
|
304
|
+
* Get the number of active sessions.
|
|
305
|
+
*/
|
|
306
|
+
getSessionCount(): number;
|
|
307
|
+
/**
|
|
308
|
+
* Remove a session by ID and free associated resources.
|
|
309
|
+
* @param sessionId - The session ID to remove
|
|
310
|
+
* @param closeSession - Whether to close the session (default: true)
|
|
311
|
+
* @returns true if the session was removed, false if not found
|
|
312
|
+
*/
|
|
313
|
+
removeSession(sessionId: string, closeSession?: boolean): boolean;
|
|
314
|
+
/**
|
|
315
|
+
* Remove all sessions and free resources.
|
|
316
|
+
* @param closeSessions - Whether to close sessions (default: true)
|
|
317
|
+
*/
|
|
318
|
+
removeAllSessions(closeSessions?: boolean): void;
|
|
319
|
+
/**
|
|
320
|
+
* Get memory statistics for debugging.
|
|
321
|
+
*/
|
|
322
|
+
getMemoryStats(): {
|
|
323
|
+
sessionCount: number;
|
|
324
|
+
converterCount: number;
|
|
325
|
+
oldestSessionAge: number | null;
|
|
326
|
+
};
|
|
327
|
+
/**
|
|
328
|
+
* Register a session with memory management.
|
|
329
|
+
* Injects canUseTool handler for AskUserQuestion support.
|
|
330
|
+
*/
|
|
331
|
+
private registerSession;
|
|
332
|
+
/**
|
|
333
|
+
* Update session activity timestamp.
|
|
334
|
+
*/
|
|
335
|
+
private touchSession;
|
|
336
|
+
/**
|
|
337
|
+
* Evict the oldest inactive session (LRU).
|
|
338
|
+
*/
|
|
339
|
+
private evictOldestSession;
|
|
152
340
|
/**
|
|
153
341
|
* Get session modes configuration.
|
|
154
342
|
* Returns the available modes and current mode from the given session.
|
|
@@ -158,13 +346,18 @@ export declare class AcpAgent implements Agent {
|
|
|
158
346
|
/**
|
|
159
347
|
* Get session models configuration.
|
|
160
348
|
* Returns the available models and current model from the given session.
|
|
161
|
-
*
|
|
349
|
+
* Fetches available models from the session if supported.
|
|
350
|
+
* @param session - Optional session to get current model and available models from.
|
|
162
351
|
*/
|
|
163
352
|
private getSessionModels;
|
|
164
353
|
/**
|
|
165
354
|
* Extract prompt text from ACP content blocks.
|
|
166
355
|
*/
|
|
167
356
|
private extractPromptText;
|
|
357
|
+
/**
|
|
358
|
+
* Get or create a converter for a session.
|
|
359
|
+
*/
|
|
360
|
+
private getSessionConverter;
|
|
168
361
|
/**
|
|
169
362
|
* Send session updates to the client via AgentSideConnection.
|
|
170
363
|
*/
|
|
@@ -172,7 +365,7 @@ export declare class AcpAgent implements Agent {
|
|
|
172
365
|
/**
|
|
173
366
|
* Send a single session update notification.
|
|
174
367
|
*
|
|
175
|
-
* Handles the unified 'session/update' format from
|
|
368
|
+
* Handles the unified 'session/update' format from AcpConverter:
|
|
176
369
|
* - tool_call: New tool call started
|
|
177
370
|
* - tool_call_update: Tool call status/result update
|
|
178
371
|
* - agent_message_chunk: Text content from the agent
|
|
@@ -180,8 +373,30 @@ export declare class AcpAgent implements Agent {
|
|
|
180
373
|
* Preserves all params fields including _meta and other metadata.
|
|
181
374
|
*/
|
|
182
375
|
private sendSessionUpdate;
|
|
376
|
+
/**
|
|
377
|
+
* Create a canUseTool handler that wraps the original handler
|
|
378
|
+
* and intercepts AskUserQuestion requests.
|
|
379
|
+
*
|
|
380
|
+
* @param sessionId - The session ID for this handler
|
|
381
|
+
* @param originalHandler - Optional original canUseTool handler to delegate to
|
|
382
|
+
* @returns A wrapped canUseTool handler
|
|
383
|
+
*/
|
|
384
|
+
private createCanUseToolHandler;
|
|
385
|
+
/**
|
|
386
|
+
* Handle AskUserQuestion tool requests.
|
|
387
|
+
*
|
|
388
|
+
* If onAskUserQuestion is provided, uses that handler.
|
|
389
|
+
* Otherwise, sends the request to the client via ACP extMethod (_codebuddy.ai/question).
|
|
390
|
+
*
|
|
391
|
+
* @param sessionId - The session ID
|
|
392
|
+
* @param input - The tool input (AskUserQuestionInput)
|
|
393
|
+
* @param options - Permission options including toolUseID
|
|
394
|
+
* @returns Permission result with answers or denial
|
|
395
|
+
*/
|
|
396
|
+
private handleAskUserQuestion;
|
|
183
397
|
/**
|
|
184
398
|
* Clean up when the connection closes.
|
|
399
|
+
* Removes all sessions and frees memory.
|
|
185
400
|
*/
|
|
186
401
|
private cleanup;
|
|
187
402
|
}
|
package/lib/acp/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/acp/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACR,KAAK,EACL,mBAAmB,EAEnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/acp/agent.ts"],"names":[],"mappings":"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"}
|