@tencent-ai/agent-sdk 0.3.41 → 0.3.43

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 (54) hide show
  1. package/cli/CHANGELOG.md +56 -0
  2. package/cli/dist/codebuddy.js +6 -6
  3. package/cli/package.json +1 -1
  4. package/cli/product.cloudhosted.json +20 -7
  5. package/cli/product.internal.json +20 -7
  6. package/cli/product.ioa.json +28 -6
  7. package/cli/product.json +49 -8
  8. package/cli/product.selfhosted.json +16 -3
  9. package/lib/index.d.ts +1 -11
  10. package/lib/index.d.ts.map +1 -1
  11. package/lib/index.js +1 -18
  12. package/lib/index.js.map +1 -1
  13. package/lib/query.d.ts.map +1 -1
  14. package/lib/query.js +7 -21
  15. package/lib/query.js.map +1 -1
  16. package/lib/session.d.ts +7 -9
  17. package/lib/session.d.ts.map +1 -1
  18. package/lib/session.js +28 -25
  19. package/lib/session.js.map +1 -1
  20. package/lib/transport/process-transport.d.ts.map +1 -1
  21. package/lib/transport/process-transport.js +9 -0
  22. package/lib/transport/process-transport.js.map +1 -1
  23. package/lib/types.d.ts +8 -9
  24. package/lib/types.d.ts.map +1 -1
  25. package/lib/types.js.map +1 -1
  26. package/lib/utils/stream.d.ts +19 -0
  27. package/lib/utils/stream.d.ts.map +1 -1
  28. package/lib/utils/stream.js +31 -0
  29. package/lib/utils/stream.js.map +1 -1
  30. package/package.json +1 -1
  31. package/lib/acp/agent.d.ts +0 -427
  32. package/lib/acp/agent.d.ts.map +0 -1
  33. package/lib/acp/agent.js +0 -835
  34. package/lib/acp/agent.js.map +0 -1
  35. package/lib/acp/converter.d.ts +0 -179
  36. package/lib/acp/converter.d.ts.map +0 -1
  37. package/lib/acp/converter.js +0 -1094
  38. package/lib/acp/converter.js.map +0 -1
  39. package/lib/acp/index.d.ts +0 -11
  40. package/lib/acp/index.d.ts.map +0 -1
  41. package/lib/acp/index.js +0 -20
  42. package/lib/acp/index.js.map +0 -1
  43. package/lib/acp/server.d.ts +0 -70
  44. package/lib/acp/server.d.ts.map +0 -1
  45. package/lib/acp/server.js +0 -364
  46. package/lib/acp/server.js.map +0 -1
  47. package/lib/acp/session-manager.d.ts +0 -33
  48. package/lib/acp/session-manager.d.ts.map +0 -1
  49. package/lib/acp/session-manager.js +0 -106
  50. package/lib/acp/session-manager.js.map +0 -1
  51. package/lib/acp/session.d.ts +0 -67
  52. package/lib/acp/session.d.ts.map +0 -1
  53. package/lib/acp/session.js +0 -263
  54. package/lib/acp/session.js.map +0 -1
@@ -28,5 +28,24 @@ export declare class Stream<T, TReturn = void> implements AsyncGenerator<T, TRet
28
28
  * Returns the current number of items in the queue.
29
29
  */
30
30
  get length(): number;
31
+ /**
32
+ * Reset the stream state to allow re-iteration.
33
+ *
34
+ * This is needed when the stream's iterator is closed (e.g., by early loop exit
35
+ * or cancel operation) but the underlying data source (process, connection) is
36
+ * still active. After reset(), the stream can be iterated again.
37
+ *
38
+ * Note: This clears any queued values to ensure fresh state for new iteration.
39
+ * The previous turn's messages (like result messages from cancel) are discarded.
40
+ */
41
+ reset(): void;
42
+ /**
43
+ * Check if the stream has been started (iterated).
44
+ */
45
+ get isStarted(): boolean;
46
+ /**
47
+ * Check if the stream is done.
48
+ */
49
+ get isFinished(): boolean;
31
50
  }
32
51
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CACrC,YAAW,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAC,CAA+C;IACnE,OAAO,CAAC,UAAU,CAAC,CAAyB;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,CAAC,EAAE,MAAM,IAAI;IAIjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAQ7D,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAsB3C,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAWvB,IAAI,IAAI,IAAI;IAUZ,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUzB,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAQ7C,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAMrD;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACJ"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CACrC,YAAW,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAC,CAA+C;IACnE,OAAO,CAAC,UAAU,CAAC,CAAyB;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,CAAC,EAAE,MAAM,IAAI;IAIjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAQ7D,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAsB3C,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAWvB,IAAI,IAAI,IAAI;IAUZ,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUzB,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAQ7C,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAMrD;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;;;;OASG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;CACJ"}
@@ -92,6 +92,37 @@ class Stream {
92
92
  get length() {
93
93
  return this.queue.length;
94
94
  }
95
+ /**
96
+ * Reset the stream state to allow re-iteration.
97
+ *
98
+ * This is needed when the stream's iterator is closed (e.g., by early loop exit
99
+ * or cancel operation) but the underlying data source (process, connection) is
100
+ * still active. After reset(), the stream can be iterated again.
101
+ *
102
+ * Note: This clears any queued values to ensure fresh state for new iteration.
103
+ * The previous turn's messages (like result messages from cancel) are discarded.
104
+ */
105
+ reset() {
106
+ this.started = false;
107
+ this.isDone = false;
108
+ this.hasError = undefined;
109
+ this.readResolve = undefined;
110
+ this.readReject = undefined;
111
+ // Clear queue to discard stale messages from previous turn (e.g., result from cancel)
112
+ this.queue = [];
113
+ }
114
+ /**
115
+ * Check if the stream has been started (iterated).
116
+ */
117
+ get isStarted() {
118
+ return this.started;
119
+ }
120
+ /**
121
+ * Check if the stream is done.
122
+ */
123
+ get isFinished() {
124
+ return this.isDone;
125
+ }
95
126
  }
96
127
  exports.Stream = Stream;
97
128
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencent-ai/agent-sdk",
3
- "version": "0.3.41",
3
+ "version": "0.3.43",
4
4
  "description": "CodeBuddy Code SDK for JavaScript/TypeScript",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -1,427 +0,0 @@
1
- /**
2
- * AcpAgent - Implementation of the official ACP Agent interface
3
- *
4
- * This class bridges the @agentclientprotocol/sdk Agent interface with
5
- * the Genie Session for handling ACP protocol requests.
6
- *
7
- * Usage: Create via session.asAcpAgent(connection)
8
- *
9
- * Architecture:
10
- * Browser -> HTTP -> AcpHttpTransport -> AgentSideConnection -> AcpAgent -> Session
11
- */
12
- import type { Agent, AgentCapabilities, AgentSideConnection, AuthenticateRequest, AuthenticateResponse, CancelNotification, Implementation, InitializeRequest, InitializeResponse, LoadSessionRequest, LoadSessionResponse, NewSessionRequest, NewSessionResponse, PromptRequest, PromptResponse, SessionUpdate, SetSessionModelRequest, SetSessionModelResponse, SetSessionModeRequest, SetSessionModeResponse } from '@agentclientprotocol/sdk';
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>;
128
- /**
129
- * Handler for creating sessions when session/new is called.
130
- *
131
- * Session auto-generates its own sessionId internally, which can be accessed
132
- * via session.sessionId after creation. The AcpAgent will use this sessionId
133
- * when returning the NewSessionResponse.
134
- */
135
- export type OnNewSession = (params: NewSessionRequest) => Session | Promise<Session>;
136
- export type OnLoadSession = (params: LoadSessionRequest) => Session | Promise<Session>;
137
- /**
138
- * Options for creating an AcpAgent
139
- */
140
- export interface AcpAgentOptions {
141
- /**
142
- * Agent information returned in initialize response
143
- */
144
- agentInfo?: Implementation;
145
- /**
146
- * Protocol version to report (default: 1)
147
- */
148
- protocolVersion?: number;
149
- /**
150
- * Handler for creating new sessions when session/new is called.
151
- * If provided, session will be created via this handler.
152
- * If not provided, the session passed to constructor will be used.
153
- */
154
- onNewSession?: OnNewSession;
155
- /**
156
- * Handler for loading/resuming existing sessions when session/load is called.
157
- * If provided, loadSession() will use this to resume sessions.
158
- * The handler receives the sessionId and should return a resumed session.
159
- */
160
- onLoadSession?: OnLoadSession;
161
- /**
162
- * Custom handler for AskUserQuestion tool.
163
- * If not provided, uses ACP extMethod '_codebuddy.ai/ask_user_question'.
164
- *
165
- * Return null from the handler to deny the question request.
166
- *
167
- * @example
168
- * ```typescript
169
- * const agent = new AcpAgent(connection, null, {
170
- * onAskUserQuestion: async (request) => {
171
- * const answers = await showQuestionDialog(request.questions);
172
- * return { answers };
173
- * },
174
- * });
175
- * ```
176
- */
177
- onAskUserQuestion?: OnAskUserQuestion;
178
- /**
179
- * Agent capabilities to advertise during initialization.
180
- * Uses the official ACP AgentCapabilities type.
181
- * These will be merged with the default capabilities.
182
- * User-provided values will override defaults.
183
- */
184
- capabilities?: Partial<AgentCapabilities>;
185
- /**
186
- * Available permission modes configuration.
187
- * If not provided, defaults to basic 'default' and 'plan' modes.
188
- */
189
- availableModes?: Array<{
190
- id: string;
191
- name: string;
192
- description: string;
193
- }>;
194
- /**
195
- * Maximum number of sessions to keep in memory.
196
- * When exceeded, oldest inactive sessions will be removed.
197
- * Default: no limit (undefined).
198
- */
199
- maxSessions?: number;
200
- /**
201
- * Callback invoked when a session update is about to be sent.
202
- * Use this to intercept and broadcast updates to multiple connections.
203
- * If not provided, updates are sent only to the agent's own connection.
204
- *
205
- * @param sessionId - The session ID
206
- * @param update - The SessionUpdate to send
207
- * @param meta - Optional metadata including mode ('stream' | 'history')
208
- */
209
- onSessionUpdate?: (sessionId: string, update: SessionUpdate, meta?: {
210
- mode?: string;
211
- toolName?: string;
212
- requestId?: string;
213
- }) => void;
214
- }
215
- /**
216
- * AcpAgent - Implements the official ACP Agent interface
217
- *
218
- * Created via session.asAcpAgent(connection). The session must be
219
- * created and connected before creating the AcpAgent.
220
- *
221
- * @example
222
- * ```typescript
223
- * const session = createSession({ cwd: '/workspace' });
224
- * await session.connect();
225
- *
226
- * const connection = new AgentSideConnection(
227
- * (conn) => session.asAcpAgent(conn),
228
- * stream
229
- * );
230
- * ```
231
- */
232
- export declare class AcpAgent implements Agent {
233
- private connection;
234
- private defaultSession;
235
- private sessions;
236
- private options;
237
- private activePromptSessionId;
238
- private promptAbortController;
239
- /** Per-session converters for proper state management */
240
- private sessionConverters;
241
- /** Track session last activity time for LRU eviction */
242
- private sessionLastActivity;
243
- /** Track in-progress session loading to prevent race conditions */
244
- private sessionLoadingPromises;
245
- /** Track commands notification handlers per session for cleanup */
246
- private sessionCommandsHandlers;
247
- /**
248
- * Create an AcpAgent.
249
- *
250
- * @param connection - The AgentSideConnection for communication
251
- * @param session - Optional default session. If provided, it will be returned by newSession().
252
- * If null, onNewSession must be provided in options.
253
- * @param options - Configuration options including optional onNewSession
254
- */
255
- constructor(connection: AgentSideConnection, session: Session | null, options?: AcpAgentOptions);
256
- /**
257
- * Initialize the connection with the client.
258
- * Returns protocol version and agent capabilities.
259
- */
260
- initialize(_params: InitializeRequest): Promise<InitializeResponse>;
261
- /**
262
- * Authenticate the client.
263
- * Currently a no-op as we don't require authentication.
264
- */
265
- authenticate(_params: AuthenticateRequest): Promise<AuthenticateResponse | void>;
266
- /**
267
- * Create or return a session.
268
- *
269
- * Behavior depends on configuration:
270
- * 1. If onNewSession is provided: Creates a new session via factory
271
- * 2. If defaultSession is provided: Returns the first registered session
272
- * 3. Otherwise: Throws an error
273
- */
274
- newSession(params: NewSessionRequest): Promise<NewSessionResponse>;
275
- loadSession(params: LoadSessionRequest): Promise<LoadSessionResponse>;
276
- /**
277
- * Process a prompt request.
278
- * Sends the prompt to the session and streams updates back to the client.
279
- */
280
- prompt(params: PromptRequest): Promise<PromptResponse>;
281
- /**
282
- * Cancel an ongoing prompt.
283
- */
284
- cancel(params: CancelNotification): Promise<void>;
285
- /**
286
- * Set the operational mode for a session.
287
- *
288
- * Maps ACP SessionModeId to SDK PermissionMode and delegates to Session.setPermissionMode().
289
- * Errors are silently ignored - the mode just won't take effect.
290
- */
291
- setSessionMode(params: SetSessionModeRequest): Promise<SetSessionModeResponse>;
292
- /**
293
- * Set the model for a session.
294
- *
295
- * Delegates to Session.setModel().
296
- * Errors are silently ignored - the model just won't take effect.
297
- *
298
- * @experimental This capability is not part of the spec yet.
299
- */
300
- unstable_setSessionModel(params: SetSessionModelRequest): Promise<SetSessionModelResponse>;
301
- extMethod?(_method: string, _params: Record<string, unknown>): Promise<Record<string, unknown>>;
302
- extNotification?(_method: string, _params: Record<string, unknown>): Promise<void>;
303
- /**
304
- * Get a session by ID, or the first session if no ID provided.
305
- */
306
- getSession(sessionId?: string): Session | undefined;
307
- /**
308
- * Alias for getSession() for compatibility.
309
- */
310
- getCurrentSession(): Session | undefined;
311
- /**
312
- * Get all session IDs.
313
- */
314
- getSessionIds(): string[];
315
- /**
316
- * Get the number of active sessions.
317
- */
318
- getSessionCount(): number;
319
- /**
320
- * Remove a session by ID and free associated resources.
321
- * @param sessionId - The session ID to remove
322
- * @param closeSession - Whether to close the session (default: true)
323
- * @returns true if the session was removed, false if not found
324
- */
325
- removeSession(sessionId: string, closeSession?: boolean): boolean;
326
- /**
327
- * Remove all sessions and free resources.
328
- * @param closeSessions - Whether to close sessions (default: true)
329
- */
330
- removeAllSessions(closeSessions?: boolean): void;
331
- /**
332
- * Get memory statistics for debugging.
333
- */
334
- getMemoryStats(): {
335
- sessionCount: number;
336
- converterCount: number;
337
- oldestSessionAge: number | null;
338
- };
339
- /**
340
- * Register a session with memory management.
341
- * Injects canUseTool handler for AskUserQuestion support.
342
- */
343
- private registerSession;
344
- /**
345
- * Update session activity timestamp.
346
- */
347
- private touchSession;
348
- /**
349
- * Evict the oldest inactive session (LRU).
350
- */
351
- private evictOldestSession;
352
- /**
353
- * Get session modes configuration.
354
- * Returns the available modes and current mode from the given session.
355
- * @param session - Optional session to get current mode from. If not provided, uses default.
356
- */
357
- private getSessionModes;
358
- /**
359
- * Get session models configuration.
360
- * Returns the available models and current model from the given session.
361
- * Fetches available models from the session if supported.
362
- * Full raw model configurations are included in _meta['codebuddy.ai'].availableModels.
363
- * @param session - Optional session to get current model and available models from.
364
- */
365
- private getSessionModels;
366
- /**
367
- * Subscribe to commands channel and forward all updates to ACP client.
368
- * Sets up a persistent listener that sends available_commands_update for each notification.
369
- * This ensures no updates are missed when commands change multiple times.
370
- * @param sessionId - The session ID to send the updates for
371
- * @param session - The session to subscribe to commands channel
372
- */
373
- private subscribeToCommands;
374
- /**
375
- * Convert ACP ContentBlock[] to SDK UserMessage.
376
- * Delegates to AcpConverter for the actual content block conversion.
377
- */
378
- private convertAcpPromptToUserMessage;
379
- /**
380
- * Get or create a converter for a session.
381
- */
382
- private getSessionConverter;
383
- /**
384
- * Send session updates to the client via AgentSideConnection.
385
- *
386
- * @param sessionId - Session ID
387
- * @param message - SDK message to convert and send
388
- * @param mode - Conversion mode: 'stream' for prompt(), 'history' for loadSession()
389
- */
390
- private sendUpdates;
391
- /**
392
- * Send system info notification when CLI reports model/permissionMode.
393
- * Uses custom notification '_codebuddy.ai/system_init' with model and permissionMode.
394
- */
395
- private sendSystemInfoNotification;
396
- /**
397
- * Filter history messages: only keep the last topic message.
398
- */
399
- private filterHistoryMessages;
400
- /**
401
- * Create a canUseTool handler that wraps the original handler
402
- * and intercepts AskUserQuestion requests.
403
- *
404
- * @param sessionId - The session ID for this handler
405
- * @param originalHandler - Optional original canUseTool handler to delegate to
406
- * @returns A wrapped canUseTool handler
407
- */
408
- private createCanUseToolHandler;
409
- /**
410
- * Handle AskUserQuestion tool requests.
411
- *
412
- * If onAskUserQuestion is provided, uses that handler.
413
- * Otherwise, sends the request to the client via ACP extMethod (_codebuddy.ai/question).
414
- *
415
- * @param sessionId - The session ID
416
- * @param input - The tool input (AskUserQuestionInput)
417
- * @param options - Permission options including toolUseID
418
- * @returns Permission result with answers or denial
419
- */
420
- private handleAskUserQuestion;
421
- /**
422
- * Clean up when the connection closes.
423
- * Removes all sessions and frees memory.
424
- */
425
- private cleanup;
426
- }
427
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/acp/agent.ts"],"names":[],"mappings":"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"}