@tencent-ai/agent-sdk 0.3.36 → 0.3.38

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 (42) hide show
  1. package/cli/CHANGELOG.md +34 -0
  2. package/cli/dist/codebuddy.js +3 -3
  3. package/cli/package.json +1 -1
  4. package/cli/product.cloudhosted.json +7 -4
  5. package/cli/product.internal.json +9 -6
  6. package/cli/product.ioa.json +9 -6
  7. package/cli/product.json +5 -2
  8. package/cli/product.selfhosted.json +5 -2
  9. package/lib/acp/agent.d.ts +24 -1
  10. package/lib/acp/agent.d.ts.map +1 -1
  11. package/lib/acp/agent.js +65 -19
  12. package/lib/acp/agent.js.map +1 -1
  13. package/lib/acp/converter.d.ts +12 -0
  14. package/lib/acp/converter.d.ts.map +1 -1
  15. package/lib/acp/converter.js +29 -0
  16. package/lib/acp/converter.js.map +1 -1
  17. package/lib/acp/index.d.ts +7 -1
  18. package/lib/acp/index.d.ts.map +1 -1
  19. package/lib/acp/index.js +12 -1
  20. package/lib/acp/index.js.map +1 -1
  21. package/lib/acp/server.d.ts +54 -0
  22. package/lib/acp/server.d.ts.map +1 -0
  23. package/lib/acp/server.js +321 -0
  24. package/lib/acp/server.js.map +1 -0
  25. package/lib/acp/session-manager.d.ts +33 -0
  26. package/lib/acp/session-manager.d.ts.map +1 -0
  27. package/lib/acp/session-manager.js +106 -0
  28. package/lib/acp/session-manager.js.map +1 -0
  29. package/lib/acp/session.d.ts +67 -0
  30. package/lib/acp/session.d.ts.map +1 -0
  31. package/lib/acp/session.js +263 -0
  32. package/lib/acp/session.js.map +1 -0
  33. package/lib/index.d.ts +8 -2
  34. package/lib/index.d.ts.map +1 -1
  35. package/lib/index.js +10 -1
  36. package/lib/index.js.map +1 -1
  37. package/lib/types.d.ts +10 -1
  38. package/lib/types.d.ts.map +1 -1
  39. package/lib/utils/type-guards.d.ts.map +1 -1
  40. package/lib/utils/type-guards.js +2 -1
  41. package/lib/utils/type-guards.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ /**
3
+ * AcpSessionManager - Multi-Session Management for ACP
4
+ *
5
+ * Manages a collection of AcpSession instances with:
6
+ * - Lifecycle management (create, get, remove)
7
+ * - Session limits and LRU eviction
8
+ * - Idle timeout cleanup
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.AcpSessionManager = void 0;
12
+ const session_1 = require("./session");
13
+ class AcpSessionManager {
14
+ constructor(options = {}) {
15
+ var _a, _b, _c, _d;
16
+ this.sessions = new Map();
17
+ this.options = {
18
+ defaultOptions: (_a = options.defaultOptions) !== null && _a !== void 0 ? _a : {},
19
+ maxSessions: (_b = options.maxSessions) !== null && _b !== void 0 ? _b : 1000,
20
+ sessionIdleTimeout: (_c = options.sessionIdleTimeout) !== null && _c !== void 0 ? _c : 30 * 60 * 1000,
21
+ autoStartSessions: (_d = options.autoStartSessions) !== null && _d !== void 0 ? _d : true,
22
+ };
23
+ this.startCleanupTimer();
24
+ }
25
+ async getOrCreate(sessionId, options) {
26
+ var _a, _b, _c;
27
+ let session = this.sessions.get(sessionId);
28
+ if (!session) {
29
+ if (this.sessions.size >= this.options.maxSessions) {
30
+ this.evictOldest();
31
+ }
32
+ session = new session_1.AcpSession(sessionId, {
33
+ sdkOptions: (_a = options === null || options === void 0 ? void 0 : options.sdkOptions) !== null && _a !== void 0 ? _a : this.options.defaultOptions,
34
+ idleTimeout: (_b = options === null || options === void 0 ? void 0 : options.idleTimeout) !== null && _b !== void 0 ? _b : this.options.sessionIdleTimeout,
35
+ autoStart: (_c = options === null || options === void 0 ? void 0 : options.autoStart) !== null && _c !== void 0 ? _c : this.options.autoStartSessions,
36
+ });
37
+ this.sessions.set(sessionId, session);
38
+ }
39
+ return session;
40
+ }
41
+ get(sessionId) {
42
+ return this.sessions.get(sessionId);
43
+ }
44
+ has(sessionId) {
45
+ return this.sessions.has(sessionId);
46
+ }
47
+ async remove(sessionId) {
48
+ const session = this.sessions.get(sessionId);
49
+ if (session) {
50
+ await session.close();
51
+ this.sessions.delete(sessionId);
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ getSessionIds() {
57
+ return Array.from(this.sessions.keys());
58
+ }
59
+ get sessionCount() {
60
+ return this.sessions.size;
61
+ }
62
+ async shutdown() {
63
+ this.stopCleanupTimer();
64
+ const closePromises = Array.from(this.sessions.values()).map(s => s.close());
65
+ await Promise.allSettled(closePromises);
66
+ this.sessions.clear();
67
+ }
68
+ evictOldest() {
69
+ let oldest = null;
70
+ for (const [id, session] of this.sessions) {
71
+ if (!oldest || session.lastActivity < oldest.time) {
72
+ oldest = { id, time: session.lastActivity };
73
+ }
74
+ }
75
+ if (oldest) {
76
+ const session = this.sessions.get(oldest.id);
77
+ if (session) {
78
+ session.close();
79
+ this.sessions.delete(oldest.id);
80
+ }
81
+ }
82
+ }
83
+ startCleanupTimer() {
84
+ this.cleanupTimer = setInterval(() => {
85
+ this.cleanupIdleSessions();
86
+ }, 60000);
87
+ }
88
+ stopCleanupTimer() {
89
+ if (this.cleanupTimer) {
90
+ clearInterval(this.cleanupTimer);
91
+ this.cleanupTimer = undefined;
92
+ }
93
+ }
94
+ cleanupIdleSessions() {
95
+ const now = Date.now();
96
+ const timeout = this.options.sessionIdleTimeout;
97
+ for (const [id, session] of this.sessions) {
98
+ if (!session.hasObservers() && now - session.lastActivity > timeout) {
99
+ session.close();
100
+ this.sessions.delete(id);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ exports.AcpSessionManager = AcpSessionManager;
106
+ //# sourceMappingURL=session-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/acp/session-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { SessionUpdate } from '@agentclientprotocol/sdk';
2
+ import type { CanUseTool, PermissionMode, Session as SdkSession, SessionOptions } from '../types';
3
+ import { type ConversionMode } from './converter';
4
+ export type AcpSessionState = 'idle' | 'running' | 'processing' | 'error' | 'closed';
5
+ export interface UpdateMeta {
6
+ mode: ConversionMode;
7
+ toolName?: string;
8
+ requestId?: string;
9
+ }
10
+ export interface AcpSessionObserver {
11
+ readonly id: string;
12
+ onUpdate(update: SessionUpdate, meta?: UpdateMeta): void;
13
+ onError(error: Error): void;
14
+ }
15
+ export interface AcpSessionOptions {
16
+ sdkOptions: Partial<SessionOptions>;
17
+ idleTimeout?: number;
18
+ autoStart?: boolean;
19
+ }
20
+ export declare class AcpSession {
21
+ readonly sessionId: string;
22
+ private _state;
23
+ private _sdkSession;
24
+ private readonly _observers;
25
+ private readonly _options;
26
+ private readonly _converter;
27
+ private _isRunning;
28
+ private _lastActivity;
29
+ private _idleTimer?;
30
+ private readonly _history;
31
+ private _sessionFactory;
32
+ constructor(sessionId: string, options: AcpSessionOptions);
33
+ get state(): AcpSessionState;
34
+ get lastActivity(): number;
35
+ get historyLength(): number;
36
+ get isRunning(): boolean;
37
+ get sdkSession(): SdkSession | null;
38
+ setSessionFactory(factory: (sessionId: string, options: SessionOptions) => SdkSession): void;
39
+ addObserver(observer: AcpSessionObserver, replayHistory?: boolean): void;
40
+ removeObserver(observerId: string): void;
41
+ getObserverIds(): string[];
42
+ hasObservers(): boolean;
43
+ storeUpdate(update: SessionUpdate, meta?: {
44
+ mode?: string;
45
+ toolName?: string;
46
+ requestId?: string;
47
+ }): void;
48
+ initialize(resume?: boolean): Promise<void>;
49
+ close(): Promise<void>;
50
+ start(): void;
51
+ stop(): void;
52
+ streamSdkHistory(observer: AcpSessionObserver): Promise<void>;
53
+ setCanUseTool(handler: CanUseTool): void;
54
+ getCanUseTool(): CanUseTool | undefined;
55
+ setPermissionMode(mode: PermissionMode): Promise<void>;
56
+ getPermissionMode(): PermissionMode;
57
+ setModel(model: string): Promise<void>;
58
+ getModel(): string | undefined;
59
+ private setState;
60
+ private replayHistoryToObserver;
61
+ private touch;
62
+ private startIdleTimer;
63
+ private stopIdleTimer;
64
+ private resetIdleTimer;
65
+ private onIdleTimeout;
66
+ }
67
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/acp/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ // AcpSession - Persistent ACP Session with Observer Pattern
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.AcpSession = void 0;
38
+ const converter_1 = require("./converter");
39
+ // ============= AcpSession =============
40
+ class AcpSession {
41
+ constructor(sessionId, options) {
42
+ this.sessionId = sessionId;
43
+ this._state = 'idle';
44
+ this._sdkSession = null;
45
+ this._observers = new Map();
46
+ this._isRunning = false;
47
+ this._lastActivity = Date.now();
48
+ this._history = [];
49
+ this._sessionFactory = null;
50
+ this._options = {
51
+ idleTimeout: 30 * 60 * 1000,
52
+ autoStart: true,
53
+ ...options,
54
+ };
55
+ this._converter = new converter_1.AcpConverter();
56
+ }
57
+ // ========== Getters ==========
58
+ get state() {
59
+ return this._state;
60
+ }
61
+ get lastActivity() {
62
+ return this._lastActivity;
63
+ }
64
+ get historyLength() {
65
+ return this._history.length;
66
+ }
67
+ get isRunning() {
68
+ return this._isRunning;
69
+ }
70
+ get sdkSession() {
71
+ return this._sdkSession;
72
+ }
73
+ // ========== Session Factory ==========
74
+ setSessionFactory(factory) {
75
+ this._sessionFactory = factory;
76
+ }
77
+ // ========== Observer Management ==========
78
+ addObserver(observer, replayHistory = true) {
79
+ this._observers.set(observer.id, observer);
80
+ this.touch();
81
+ if (replayHistory && this._history.length > 0) {
82
+ this.replayHistoryToObserver(observer);
83
+ }
84
+ }
85
+ removeObserver(observerId) {
86
+ this._observers.delete(observerId);
87
+ }
88
+ getObserverIds() {
89
+ return Array.from(this._observers.keys());
90
+ }
91
+ hasObservers() {
92
+ return this._observers.size > 0;
93
+ }
94
+ storeUpdate(update, meta) {
95
+ this._history.push({
96
+ updates: [{
97
+ update,
98
+ _meta: meta ? {
99
+ 'codebuddy.ai': {
100
+ toolName: meta.toolName,
101
+ requestId: meta.requestId,
102
+ },
103
+ } : undefined,
104
+ }],
105
+ timestamp: Date.now(),
106
+ });
107
+ }
108
+ // ========== Lifecycle ==========
109
+ async initialize(resume = false) {
110
+ if (this._sdkSession) {
111
+ return;
112
+ }
113
+ const { unstable_v2_createSession, unstable_v2_resumeSession } = await Promise.resolve().then(() => __importStar(require('../index')));
114
+ const sdkOptions = {
115
+ ...this._options.sdkOptions,
116
+ sessionId: this.sessionId,
117
+ };
118
+ if (this._sessionFactory) {
119
+ this._sdkSession = this._sessionFactory(this.sessionId, sdkOptions);
120
+ }
121
+ else if (resume) {
122
+ this._sdkSession = unstable_v2_resumeSession(this.sessionId, sdkOptions);
123
+ }
124
+ else {
125
+ this._sdkSession = unstable_v2_createSession(sdkOptions);
126
+ }
127
+ await this._sdkSession.connect();
128
+ this.touch();
129
+ this.startIdleTimer();
130
+ if (this._options.autoStart) {
131
+ this.start();
132
+ }
133
+ }
134
+ async close() {
135
+ this.stop();
136
+ this.stopIdleTimer();
137
+ this.setState('closed');
138
+ if (this._sdkSession) {
139
+ this._sdkSession.close();
140
+ this._sdkSession = null;
141
+ }
142
+ this._observers.clear();
143
+ this._history.length = 0;
144
+ this._converter.reset();
145
+ }
146
+ // ========== Detach Mode ==========
147
+ start() {
148
+ if (this._isRunning || this._state === 'closed') {
149
+ return;
150
+ }
151
+ this._isRunning = true;
152
+ this.setState('running');
153
+ }
154
+ stop() {
155
+ this._isRunning = false;
156
+ if (this._state === 'running') {
157
+ this.setState('idle');
158
+ }
159
+ }
160
+ // ========== History Streaming ==========
161
+ async streamSdkHistory(observer) {
162
+ var _a, _b, _c;
163
+ if (!((_a = this._sdkSession) === null || _a === void 0 ? void 0 : _a.hasPendingHistory())) {
164
+ return;
165
+ }
166
+ try {
167
+ for await (const message of this._sdkSession.stream()) {
168
+ const updates = this._converter.convertToUpdates(message, { mode: 'history' });
169
+ for (const { update, _meta } of updates) {
170
+ observer.onUpdate(update, {
171
+ mode: 'history',
172
+ toolName: (_b = _meta === null || _meta === void 0 ? void 0 : _meta['codebuddy.ai']) === null || _b === void 0 ? void 0 : _b.toolName,
173
+ requestId: (_c = _meta === null || _meta === void 0 ? void 0 : _meta['codebuddy.ai']) === null || _c === void 0 ? void 0 : _c.requestId,
174
+ });
175
+ }
176
+ if (message.type === 'result' || message.type === 'error') {
177
+ break;
178
+ }
179
+ }
180
+ }
181
+ catch (error) {
182
+ observer.onError(error instanceof Error ? error : new Error(String(error)));
183
+ }
184
+ }
185
+ // ========== Permission Handler ==========
186
+ setCanUseTool(handler) {
187
+ if (this._sdkSession) {
188
+ this._sdkSession.setCanUseTool(handler);
189
+ }
190
+ }
191
+ getCanUseTool() {
192
+ var _a;
193
+ return (_a = this._sdkSession) === null || _a === void 0 ? void 0 : _a.getCanUseTool();
194
+ }
195
+ // ========== Mode/Model ==========
196
+ async setPermissionMode(mode) {
197
+ if (this._sdkSession) {
198
+ await this._sdkSession.setPermissionMode(mode);
199
+ }
200
+ }
201
+ getPermissionMode() {
202
+ var _a, _b;
203
+ return (_b = (_a = this._sdkSession) === null || _a === void 0 ? void 0 : _a.getPermissionMode()) !== null && _b !== void 0 ? _b : 'default';
204
+ }
205
+ async setModel(model) {
206
+ if (this._sdkSession) {
207
+ await this._sdkSession.setModel(model);
208
+ }
209
+ }
210
+ getModel() {
211
+ var _a;
212
+ return (_a = this._sdkSession) === null || _a === void 0 ? void 0 : _a.getModel();
213
+ }
214
+ // ========== Private: State Management ==========
215
+ setState(state) {
216
+ this._state = state;
217
+ }
218
+ // ========== Private: History Replay ==========
219
+ replayHistoryToObserver(observer) {
220
+ var _a, _b;
221
+ for (const entry of this._history) {
222
+ for (const { update, _meta } of entry.updates) {
223
+ observer.onUpdate(update, {
224
+ mode: 'history',
225
+ toolName: (_a = _meta === null || _meta === void 0 ? void 0 : _meta['codebuddy.ai']) === null || _a === void 0 ? void 0 : _a.toolName,
226
+ requestId: (_b = _meta === null || _meta === void 0 ? void 0 : _meta['codebuddy.ai']) === null || _b === void 0 ? void 0 : _b.requestId,
227
+ });
228
+ }
229
+ }
230
+ }
231
+ // ========== Private: Activity Tracking ==========
232
+ touch() {
233
+ this._lastActivity = Date.now();
234
+ this.resetIdleTimer();
235
+ }
236
+ startIdleTimer() {
237
+ if (this._options.idleTimeout && this._options.idleTimeout > 0) {
238
+ this._idleTimer = setTimeout(() => {
239
+ this.onIdleTimeout();
240
+ }, this._options.idleTimeout);
241
+ }
242
+ }
243
+ stopIdleTimer() {
244
+ if (this._idleTimer) {
245
+ clearTimeout(this._idleTimer);
246
+ this._idleTimer = undefined;
247
+ }
248
+ }
249
+ resetIdleTimer() {
250
+ this.stopIdleTimer();
251
+ this.startIdleTimer();
252
+ }
253
+ onIdleTimeout() {
254
+ if (!this.hasObservers()) {
255
+ this.close();
256
+ }
257
+ else {
258
+ this.startIdleTimer();
259
+ }
260
+ }
261
+ }
262
+ exports.AcpSession = AcpSession;
263
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/acp/session.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -32,7 +32,7 @@ export type { Options, SessionOptions } from './types';
32
32
  export type { PermissionMode, PermissionBehavior, PermissionResult, PermissionUpdate, CanUseTool, CanUseToolOptions, } from './types';
33
33
  export type { HookEvent, HookCallback, HookCallbackMatcher, HookInput, HookJSONOutput, SyncHookJSONOutput, AsyncHookJSONOutput, BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, NotificationHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PermissionRequestHookInput, CheckpointHookInput, } from './types';
34
34
  export type { Checkpoint, CheckpointFileChangeStats, FileVersion, } from './types';
35
- export type { Message, SystemMessage, UserMessage, AssistantMessage, PartialAssistantMessage, ResultMessage, CompactBoundaryMessage, StatusMessage, ToolProgressMessage, ErrorMessage, PermissionDenial, } from './types';
35
+ export type { Message, SystemMessage, UserMessage, AssistantMessage, PartialAssistantMessage, ResultMessage, CompactBoundaryMessage, StatusMessage, ToolProgressMessage, ErrorMessage, TopicMessage, PermissionDenial, } from './types';
36
36
  export type { ContentBlock, TextContentBlock, ToolUseContentBlock, ToolResultContentBlock, ImageContentBlock, ImageMediaType, Base64ImageSource, UrlImageSource, } from './types';
37
37
  export type { SlashCommand, ModelInfo, AccountInfo, McpServerStatus, RawLanguageModel, } from './types';
38
38
  export type { OutputFormat, JsonSchemaOutputFormat } from './types';
@@ -45,5 +45,11 @@ export type { Session } from './types';
45
45
  export { AcpAgent, ACP_EXT_METHOD_QUESTION, } from './acp/agent';
46
46
  export type { AcpAgentOptions, OnNewSession, OnLoadSession, AskUserQuestionRequest, AskUserQuestionResponse, OnAskUserQuestion, ToolInputRequest, ToolInputResponse, QuestionInputSchema, QuestionInputData, QuestionOption, UserQuestion, } from './acp/agent';
47
47
  export { AcpConverter, } from './acp/converter';
48
- export type { ToolResult, } from './acp/converter';
48
+ export type { ToolResult, SessionUpdateWithMeta, ConversionMode, } from './acp/converter';
49
+ export { AcpSession } from './acp/session';
50
+ export type { AcpSessionOptions, AcpSessionObserver, AcpSessionState, UpdateMeta, } from './acp/session';
51
+ export { AcpSessionManager } from './acp/session-manager';
52
+ export type { AcpSessionManagerOptions } from './acp/session-manager';
53
+ export { AcpAgentServer } from './acp/server';
54
+ export type { AcpAgentServerOptions, SessionContext, } from './acp/server';
49
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EACH,aAAa,IAAI,yBAAyB,EAC1C,aAAa,IAAI,yBAAyB,EAC1C,MAAM,IAAI,kBAAkB,GAC/B,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,YAAY,IAAI,wBAAwB,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAChG,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAIlF,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACjD,YAAY,EACR,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,WAAW,GACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAItD,OAAO,EACH,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GAChB,MAAM,UAAU,CAAC;AAElB,YAAY,EACR,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,UAAU,CAAC;AAKlB,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,YAAY,EACR,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,UAAU,EACV,yBAAyB,EACzB,WAAW,GACd,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,OAAO,EACP,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACjB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,YAAY,EACR,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EACR,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GAChB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,EACH,QAAQ,EACR,uBAAuB,GAC1B,MAAM,aAAa,CAAC;AAErB,YAAY,EACR,eAAe,EACf,YAAY,EACZ,aAAa,EAEb,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EAEjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,YAAY,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACH,YAAY,GACf,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACR,UAAU,GACb,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -17,7 +17,7 @@
17
17
  * ```
18
18
  */
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.AcpConverter = exports.ACP_EXT_METHOD_QUESTION = exports.AcpAgent = exports.disablePlugin = exports.enablePlugin = exports.installPlugin = exports.removeMarketplace = exports.installMarketplace = exports.ExecutionError = exports.AbortError = exports.EXIT_REASONS = exports.HOOK_EVENTS = exports.tool = exports.createSdkMcpServer = exports.unstable_v2_logout = exports.unstable_v2_authenticate = exports.unstable_v2_resumeSession = exports.unstable_v2_createSession = exports.clearConnectedTransport = exports.connectCLI = exports.Query = exports.query = void 0;
20
+ exports.AcpAgentServer = exports.AcpSessionManager = exports.AcpSession = exports.AcpConverter = exports.ACP_EXT_METHOD_QUESTION = exports.AcpAgent = exports.disablePlugin = exports.enablePlugin = exports.installPlugin = exports.removeMarketplace = exports.installMarketplace = exports.ExecutionError = exports.AbortError = exports.EXIT_REASONS = exports.HOOK_EVENTS = exports.tool = exports.createSdkMcpServer = exports.unstable_v2_logout = exports.unstable_v2_authenticate = exports.unstable_v2_resumeSession = exports.unstable_v2_createSession = exports.clearConnectedTransport = exports.connectCLI = exports.Query = exports.query = void 0;
21
21
  // ============= Main API =============
22
22
  var query_1 = require("./query");
23
23
  Object.defineProperty(exports, "query", { enumerable: true, get: function () { return query_1.query; } });
@@ -63,4 +63,13 @@ Object.defineProperty(exports, "ACP_EXT_METHOD_QUESTION", { enumerable: true, ge
63
63
  // AcpConverter - stateful session-level message converter
64
64
  var converter_1 = require("./acp/converter");
65
65
  Object.defineProperty(exports, "AcpConverter", { enumerable: true, get: function () { return converter_1.AcpConverter; } });
66
+ // AcpSession - persistent session with observer pattern
67
+ var session_2 = require("./acp/session");
68
+ Object.defineProperty(exports, "AcpSession", { enumerable: true, get: function () { return session_2.AcpSession; } });
69
+ // AcpSessionManager - multi-session management
70
+ var session_manager_1 = require("./acp/session-manager");
71
+ Object.defineProperty(exports, "AcpSessionManager", { enumerable: true, get: function () { return session_manager_1.AcpSessionManager; } });
72
+ // AcpAgentServer - multi-session, multi-connection server
73
+ var server_1 = require("./acp/server");
74
+ Object.defineProperty(exports, "AcpAgentServer", { enumerable: true, get: function () { return server_1.AcpAgentServer; } });
66
75
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,uCAAuC;AAEvC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,iBAAiB;AACjB,qCAAgE;AAAvD,qGAAA,UAAU,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AAG5C,oBAAoB;AACpB,qCAImB;AAHf,oHAAA,aAAa,OAA6B;AAC1C,oHAAA,aAAa,OAA6B;AAC1C,6GAAA,MAAM,OAAsB;AAGhC,gCAAgC;AAChC,+BAAgG;AAAvF,gHAAA,YAAY,OAA4B;AAAE,0GAAA,MAAM,OAAsB;AAG/E,6CAA6C;AAE7C,6BAAiD;AAAxC,yGAAA,kBAAkB,OAAA;AAAE,2FAAA,IAAI,OAAA;AAUjC,wCAAwC;AAExC,iCAAoD;AAA3C,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAElC,qCAAqC;AAErC,mCAAsD;AAA7C,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEnC,yCAAyC;AAEzC,mCAMkB;AALd,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AA8HjB,8CAA8C;AAE9C,mFAAmF;AACnF,qCAGqB;AAFjB,iGAAA,QAAQ,OAAA;AACR,gHAAA,uBAAuB,OAAA;AAoB3B,0DAA0D;AAC1D,6CAEyB;AADrB,yGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,uCAAuC;AAEvC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,iBAAiB;AACjB,qCAAgE;AAAvD,qGAAA,UAAU,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AAG5C,oBAAoB;AACpB,qCAImB;AAHf,oHAAA,aAAa,OAA6B;AAC1C,oHAAA,aAAa,OAA6B;AAC1C,6GAAA,MAAM,OAAsB;AAGhC,gCAAgC;AAChC,+BAAgG;AAAvF,gHAAA,YAAY,OAA4B;AAAE,0GAAA,MAAM,OAAsB;AAG/E,6CAA6C;AAE7C,6BAAiD;AAAxC,yGAAA,kBAAkB,OAAA;AAAE,2FAAA,IAAI,OAAA;AAUjC,wCAAwC;AAExC,iCAAoD;AAA3C,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAElC,qCAAqC;AAErC,mCAAsD;AAA7C,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEnC,yCAAyC;AAEzC,mCAMkB;AALd,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AA+HjB,8CAA8C;AAE9C,mFAAmF;AACnF,qCAGqB;AAFjB,iGAAA,QAAQ,OAAA;AACR,gHAAA,uBAAuB,OAAA;AAoB3B,0DAA0D;AAC1D,6CAEyB;AADrB,yGAAA,YAAY,OAAA;AAShB,wDAAwD;AACxD,yCAA2C;AAAlC,qGAAA,UAAU,OAAA;AASnB,+CAA+C;AAC/C,yDAA0D;AAAjD,oHAAA,iBAAiB,OAAA;AAG1B,0DAA0D;AAC1D,uCAA8C;AAArC,wGAAA,cAAc,OAAA"}
package/lib/types.d.ts CHANGED
@@ -593,10 +593,19 @@ export interface ErrorMessage {
593
593
  error: string;
594
594
  session_id?: string;
595
595
  }
596
+ /**
597
+ * Topic message for session title/topic updates.
598
+ * Used to update the session's human-readable title.
599
+ */
600
+ export interface TopicMessage {
601
+ type: 'topic';
602
+ topic: string;
603
+ session_id: string;
604
+ }
596
605
  /**
597
606
  * @experimental _requestId is an experimental field that may change in future versions.
598
607
  */
599
- export type Message = (SystemMessage | UserMessage | AssistantMessage | PartialAssistantMessage | ResultMessage | CompactBoundaryMessage | StatusMessage | ToolProgressMessage | ErrorMessage) & {
608
+ export type Message = (SystemMessage | UserMessage | AssistantMessage | PartialAssistantMessage | ResultMessage | CompactBoundaryMessage | StatusMessage | ToolProgressMessage | ErrorMessage | TopicMessage) & {
600
609
  /** @experimental */
601
610
  _requestId?: string;
602
611
  };