@tencent-ai/agent-sdk 0.3.229 → 0.3.230-dev.80d16dd.202607272156

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 (72) hide show
  1. package/cli/CHANGELOG.md +10 -0
  2. package/cli/dist/codebuddy-headless.js +309 -291
  3. package/cli/package.json +3 -2
  4. package/cli/product.cloudhosted.json +2 -2
  5. package/cli/product.internal.json +2 -2
  6. package/cli/product.ioa.json +2 -2
  7. package/cli/product.json +2 -2
  8. package/cli/product.selfhosted.json +2 -2
  9. package/lib/_internal/query-controller.d.ts +48 -2
  10. package/lib/_internal/query-controller.d.ts.map +1 -1
  11. package/lib/_internal/query-controller.js +335 -2
  12. package/lib/_internal/query-controller.js.map +1 -1
  13. package/lib/_internal/remote-extensions-options.d.ts +3 -0
  14. package/lib/_internal/remote-extensions-options.d.ts.map +1 -0
  15. package/lib/_internal/remote-extensions-options.js +37 -0
  16. package/lib/_internal/remote-extensions-options.js.map +1 -0
  17. package/lib/_internal/session-mirror.d.ts +53 -0
  18. package/lib/_internal/session-mirror.d.ts.map +1 -0
  19. package/lib/_internal/session-mirror.js +156 -0
  20. package/lib/_internal/session-mirror.js.map +1 -0
  21. package/lib/_internal/session-store-runtime.d.ts +52 -0
  22. package/lib/_internal/session-store-runtime.d.ts.map +1 -0
  23. package/lib/_internal/session-store-runtime.js +283 -0
  24. package/lib/_internal/session-store-runtime.js.map +1 -0
  25. package/lib/in-memory-session-store.d.ts +31 -0
  26. package/lib/in-memory-session-store.d.ts.map +1 -0
  27. package/lib/in-memory-session-store.js +127 -0
  28. package/lib/in-memory-session-store.js.map +1 -0
  29. package/lib/index.d.ts +13 -1
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js +16 -1
  32. package/lib/index.js.map +1 -1
  33. package/lib/mcp/delegated-redaction.d.ts +47 -0
  34. package/lib/mcp/delegated-redaction.d.ts.map +1 -0
  35. package/lib/mcp/delegated-redaction.js +362 -0
  36. package/lib/mcp/delegated-redaction.js.map +1 -0
  37. package/lib/mcp/index.d.ts +4 -0
  38. package/lib/mcp/index.d.ts.map +1 -1
  39. package/lib/mcp/index.js +8 -1
  40. package/lib/mcp/index.js.map +1 -1
  41. package/lib/mcp/managed-remote-mcp-bridge.d.ts +49 -0
  42. package/lib/mcp/managed-remote-mcp-bridge.d.ts.map +1 -0
  43. package/lib/mcp/managed-remote-mcp-bridge.js +303 -0
  44. package/lib/mcp/managed-remote-mcp-bridge.js.map +1 -0
  45. package/lib/query.d.ts +14 -1
  46. package/lib/query.d.ts.map +1 -1
  47. package/lib/query.js +320 -28
  48. package/lib/query.js.map +1 -1
  49. package/lib/remote-error-codes.d.ts +8 -0
  50. package/lib/remote-error-codes.d.ts.map +1 -0
  51. package/lib/remote-error-codes.js +23 -0
  52. package/lib/remote-error-codes.js.map +1 -0
  53. package/lib/session-store-protocol.d.ts +19 -0
  54. package/lib/session-store-protocol.d.ts.map +1 -0
  55. package/lib/session-store-protocol.js +125 -0
  56. package/lib/session-store-protocol.js.map +1 -0
  57. package/lib/session.d.ts +8 -1
  58. package/lib/session.d.ts.map +1 -1
  59. package/lib/session.js +132 -11
  60. package/lib/session.js.map +1 -1
  61. package/lib/transport/index.d.ts +53 -3
  62. package/lib/transport/index.d.ts.map +1 -1
  63. package/lib/transport/index.js.map +1 -1
  64. package/lib/transport/process-transport.d.ts +81 -4
  65. package/lib/transport/process-transport.d.ts.map +1 -1
  66. package/lib/transport/process-transport.js +295 -15
  67. package/lib/transport/process-transport.js.map +1 -1
  68. package/lib/types.d.ts +629 -6
  69. package/lib/types.d.ts.map +1 -1
  70. package/lib/types.js +14 -1
  71. package/lib/types.js.map +1 -1
  72. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-extensions-options.js","sourceRoot":"","sources":["../../src/_internal/remote-extensions-options.ts"],"names":[],"mappings":";;;AAEA,iCACI,OAA4C;IAE5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,OAAO;WACL,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU;WAClC,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU;WAC1C,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAA8B,CAC5E,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,QAAQ;QACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YAChD,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;SACjD,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;YACnE,UAAU,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 会话镜像写入队列(双写模型的 SDK 侧消费端)。
3
+ *
4
+ * CLI 每批历史落盘成功后经 control_notification('session_store') fire-and-forget
5
+ * 下发;本 worker 负责异步消费,保证四件事:
6
+ * 1. 按 key 串行——同一记录的 append 到达存储的顺序与本地写入顺序一致;
7
+ * 2. 仅重试明确的 OUTCOME_UNKNOWN(总计 maxAttempts 次,短退避);本地计时器
8
+ * 超时同样属于结果未知,依靠冻结事件的幂等语义安全重试;
9
+ * 3. 重试耗尽后丢弃该批并回调 onFailure(由调用方合成 mirror_error 帧),
10
+ * 绝不向上抛——本地已持久化,镜像失败不中断查询;
11
+ * 4. flush()——查询收尾时有限等待在途批次,避免进程退出丢尾部数据。
12
+ */
13
+ import type { SessionKey, SessionStore, SessionStoreEvent } from '../types';
14
+ export interface SessionMirrorFailure {
15
+ key: SessionKey;
16
+ error: string;
17
+ droppedEntries: number;
18
+ }
19
+ export interface SessionMirrorWorkerOptions {
20
+ /** 单次 append 尝试的超时上限(毫秒),超时按 OUTCOME_UNKNOWN 处理 */
21
+ attemptTimeoutMs?: number;
22
+ /** 总尝试次数(含首次) */
23
+ maxAttempts?: number;
24
+ /** 重试退避基数(毫秒),第 n 次重试前等待 n * retryBackoffMs */
25
+ retryBackoffMs?: number;
26
+ /** 重试耗尽后的失败回调(批次已被丢弃) */
27
+ onFailure?: (failure: SessionMirrorFailure) => void;
28
+ }
29
+ export declare class SessionMirrorWorker {
30
+ private readonly store;
31
+ private readonly chains;
32
+ private readonly pendingBatches;
33
+ private pending;
34
+ private idleResolvers;
35
+ private readonly attemptTimeoutMs;
36
+ private readonly maxAttempts;
37
+ private readonly retryBackoffMs;
38
+ private readonly onFailure?;
39
+ constructor(store: SessionStore, options?: SessionMirrorWorkerOptions);
40
+ /** 当前在途(含排队)的批次数,测试与诊断用。 */
41
+ get pendingCount(): number;
42
+ enqueue(key: SessionKey, events: SessionStoreEvent[]): void;
43
+ /**
44
+ * 等待所有在途批次完成(含期间新入队的),最多等 timeoutMs。
45
+ * @returns 是否在时限内清空
46
+ */
47
+ flush(timeoutMs?: number): Promise<boolean>;
48
+ /** 永不 reject——失败在内部消化为 onFailure 回调,保证 per-key 链不断裂。 */
49
+ private appendWithRetry;
50
+ private reportFailure;
51
+ private withAttemptTimeout;
52
+ }
53
+ //# sourceMappingURL=session-mirror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-mirror.d.ts","sourceRoot":"","sources":["../../src/_internal/session-mirror.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACjC,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACvC,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACvD;AAqBD,qBAAa,mBAAmB;IAYxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAX1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,aAAa,CAAyB;IAE9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA0C;IAErE,YACqB,KAAK,EAAE,YAAY,EACpC,OAAO,GAAE,0BAA+B,EAM3C;IAED,4BAA4B;IAC5B,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAmC1D;IAED;;;OAGG;IACG,KAAK,CAAC,SAAS,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBhD;IAED,wDAAwD;YAC1C,eAAe;IAuB7B,OAAO,CAAC,aAAa;YAYP,kBAAkB;CAenC"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ /**
3
+ * 会话镜像写入队列(双写模型的 SDK 侧消费端)。
4
+ *
5
+ * CLI 每批历史落盘成功后经 control_notification('session_store') fire-and-forget
6
+ * 下发;本 worker 负责异步消费,保证四件事:
7
+ * 1. 按 key 串行——同一记录的 append 到达存储的顺序与本地写入顺序一致;
8
+ * 2. 仅重试明确的 OUTCOME_UNKNOWN(总计 maxAttempts 次,短退避);本地计时器
9
+ * 超时同样属于结果未知,依靠冻结事件的幂等语义安全重试;
10
+ * 3. 重试耗尽后丢弃该批并回调 onFailure(由调用方合成 mirror_error 帧),
11
+ * 绝不向上抛——本地已持久化,镜像失败不中断查询;
12
+ * 4. flush()——查询收尾时有限等待在途批次,避免进程退出丢尾部数据。
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SessionMirrorWorker = void 0;
16
+ const session_store_protocol_1 = require("../session-store-protocol");
17
+ class AttemptTimeoutError extends Error {
18
+ constructor(timeoutMs) {
19
+ super(`sessionStore.append timed out after ${timeoutMs}ms`);
20
+ this.code = 'OUTCOME_UNKNOWN';
21
+ this.name = 'AttemptTimeoutError';
22
+ }
23
+ }
24
+ const DEFAULT_ATTEMPT_TIMEOUT_MS = 30_000;
25
+ const DEFAULT_MAX_ATTEMPTS = 3;
26
+ const DEFAULT_RETRY_BACKOFF_MS = 200;
27
+ class SessionMirrorWorker {
28
+ constructor(store, options = {}) {
29
+ this.store = store;
30
+ this.chains = new Map();
31
+ this.pendingBatches = new Set();
32
+ this.pending = 0;
33
+ this.idleResolvers = [];
34
+ this.attemptTimeoutMs = options.attemptTimeoutMs ?? DEFAULT_ATTEMPT_TIMEOUT_MS;
35
+ this.maxAttempts = options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
36
+ this.retryBackoffMs = options.retryBackoffMs ?? DEFAULT_RETRY_BACKOFF_MS;
37
+ this.onFailure = options.onFailure;
38
+ }
39
+ /** 当前在途(含排队)的批次数,测试与诊断用。 */
40
+ get pendingCount() {
41
+ return this.pending;
42
+ }
43
+ enqueue(key, events) {
44
+ if (events.length === 0) {
45
+ return;
46
+ }
47
+ let snapshot;
48
+ try {
49
+ snapshot = (0, session_store_protocol_1.normalizeSessionStoreEvents)(events).map(value => value.event);
50
+ }
51
+ catch (error) {
52
+ this.onFailure?.({
53
+ key: structuredClone(key),
54
+ error: error instanceof Error ? error.message : String(error),
55
+ droppedEntries: events.length,
56
+ });
57
+ return;
58
+ }
59
+ const frozenKey = structuredClone(key);
60
+ const chainKey = `${frozenKey.projectKey}\u0000${frozenKey.sessionId}\u0000${frozenKey.subpath ?? ''}`;
61
+ const prev = this.chains.get(chainKey) ?? Promise.resolve();
62
+ const batch = { key: frozenKey, events: snapshot, failureReported: false };
63
+ this.pendingBatches.add(batch);
64
+ this.pending++;
65
+ const next = prev
66
+ .then(() => this.appendWithRetry(batch))
67
+ .finally(() => {
68
+ this.pendingBatches.delete(batch);
69
+ this.pending--;
70
+ if (this.pending === 0) {
71
+ const resolvers = this.idleResolvers;
72
+ this.idleResolvers = [];
73
+ for (const resolve of resolvers) {
74
+ resolve();
75
+ }
76
+ }
77
+ });
78
+ this.chains.set(chainKey, next);
79
+ }
80
+ /**
81
+ * 等待所有在途批次完成(含期间新入队的),最多等 timeoutMs。
82
+ * @returns 是否在时限内清空
83
+ */
84
+ async flush(timeoutMs = 10_000) {
85
+ if (this.pending === 0) {
86
+ return true;
87
+ }
88
+ return new Promise(resolve => {
89
+ const timer = setTimeout(() => {
90
+ for (const batch of this.pendingBatches) {
91
+ this.reportFailure(batch, `session mirror flush timed out after ${timeoutMs}ms`);
92
+ }
93
+ resolve(false);
94
+ }, timeoutMs);
95
+ this.idleResolvers.push(() => {
96
+ clearTimeout(timer);
97
+ resolve(true);
98
+ });
99
+ });
100
+ }
101
+ /** 永不 reject——失败在内部消化为 onFailure 回调,保证 per-key 链不断裂。 */
102
+ async appendWithRetry(batch) {
103
+ const { key, events } = batch;
104
+ let lastError;
105
+ for (let attempt = 1; attempt <= this.maxAttempts; attempt++) {
106
+ try {
107
+ await this.withAttemptTimeout(this.store.append(structuredClone(key), structuredClone(events)));
108
+ return;
109
+ }
110
+ catch (error) {
111
+ lastError = error;
112
+ if (errorCode(error) !== 'OUTCOME_UNKNOWN') {
113
+ break;
114
+ }
115
+ if (attempt < this.maxAttempts) {
116
+ await new Promise(resolve => setTimeout(resolve, attempt * this.retryBackoffMs));
117
+ }
118
+ }
119
+ }
120
+ this.reportFailure(batch, lastError instanceof Error ? lastError.message : String(lastError));
121
+ }
122
+ reportFailure(batch, error) {
123
+ if (batch.failureReported) {
124
+ return;
125
+ }
126
+ batch.failureReported = true;
127
+ this.onFailure?.({
128
+ key: batch.key,
129
+ error,
130
+ droppedEntries: batch.events.length,
131
+ });
132
+ }
133
+ async withAttemptTimeout(promise) {
134
+ let timer;
135
+ try {
136
+ await Promise.race([
137
+ promise,
138
+ new Promise((_, reject) => {
139
+ timer = setTimeout(() => reject(new AttemptTimeoutError(this.attemptTimeoutMs)), this.attemptTimeoutMs);
140
+ }),
141
+ ]);
142
+ }
143
+ finally {
144
+ if (timer !== undefined) {
145
+ clearTimeout(timer);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ exports.SessionMirrorWorker = SessionMirrorWorker;
151
+ function errorCode(error) {
152
+ return error && typeof error === 'object' && 'code' in error && typeof error.code === 'string'
153
+ ? error.code
154
+ : undefined;
155
+ }
156
+ //# sourceMappingURL=session-mirror.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-mirror.js","sourceRoot":"","sources":["../../src/_internal/session-mirror.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { ControlSessionStoreRequest, SessionStore, SessionStoreCapability, SessionStoreInitializeResult, SessionStoreMirrorNotificationData, SessionStoreMode } from '../types';
2
+ import { type SessionMirrorFailure } from './session-mirror';
3
+ export declare const SESSION_STORE_CAPABILITIES: readonly SessionStoreCapability[];
4
+ export interface SessionStoreRuntimeOptions {
5
+ store: SessionStore;
6
+ mode: SessionStoreMode;
7
+ projectKey?: string;
8
+ expectedContextId?: string;
9
+ requireRequestContext?: boolean;
10
+ appendAttempts?: number;
11
+ closeDeadlineMs?: number;
12
+ onMirrorFailure?: (failure: SessionMirrorFailure) => void;
13
+ }
14
+ export type SessionStoreControlResult = SessionStoreInitializeResult | {
15
+ ok: true;
16
+ } | {
17
+ events: Awaited<ReturnType<SessionStore['load']>>;
18
+ } | {
19
+ sessions: Awaited<ReturnType<SessionStore['listSessions']>>;
20
+ } | {
21
+ subkeys: Awaited<ReturnType<SessionStore['listSubkeys']>>;
22
+ };
23
+ export declare class SessionStoreRuntime {
24
+ private readonly options;
25
+ private state;
26
+ private initializePromise;
27
+ private closePromise;
28
+ private readonly inFlight;
29
+ private readonly appendAttempts;
30
+ private readonly closeDeadlineMs;
31
+ private readonly mirrorWorker?;
32
+ constructor(options: SessionStoreRuntimeOptions);
33
+ initialize(request: ControlSessionStoreRequest): Promise<SessionStoreInitializeResult>;
34
+ handle(request: ControlSessionStoreRequest): Promise<SessionStoreControlResult>;
35
+ private handleAccepted;
36
+ handleMirrorNotification(data: SessionStoreMirrorNotificationData): void;
37
+ close(): Promise<void>;
38
+ private performInitialize;
39
+ private dispatch;
40
+ private appendWithRetry;
41
+ private assertProjectScope;
42
+ private assertValidKey;
43
+ private resolveRequestContext;
44
+ private track;
45
+ private performClose;
46
+ }
47
+ export declare function sessionStoreControlError(error: unknown): {
48
+ subtype: 'error';
49
+ error: string;
50
+ code: string;
51
+ };
52
+ //# sourceMappingURL=session-store-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store-runtime.d.ts","sourceRoot":"","sources":["../../src/_internal/session-store-runtime.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,0BAA0B,EAE1B,YAAY,EACZ,sBAAsB,EACtB,4BAA4B,EAC5B,kCAAkC,EAClC,gBAAgB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,kBAAkB,CAAC;AAuBjF,eAAO,MAAM,0BAA0B,EAAE,SAAS,sBAAsB,EAUvE,CAAC;AAIF,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,MAAM,yBAAyB,GAC/B,4BAA4B,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAAE,GACrD;IAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,GAC/D;IAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEpE,qBAAa,mBAAmB;IAShB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAsB;IAEpD,YAA6B,OAAO,EAAE,0BAA0B,EAQ/D;IAED,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA6BrF;IAED,MAAM,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAsB9E;YAEa,cAAc;IAgB5B,wBAAwB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI,CAKvE;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAYrB;YAEa,iBAAiB;YAgCjB,QAAQ;YAmCR,eAAe;IAgB7B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,KAAK;YAMC,YAAY;CAyB7B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS1G"}
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionStoreRuntime = exports.SESSION_STORE_CAPABILITIES = void 0;
4
+ exports.sessionStoreControlError = sessionStoreControlError;
5
+ const remote_error_codes_1 = require("../remote-error-codes");
6
+ const session_store_protocol_1 = require("../session-store-protocol");
7
+ const session_mirror_1 = require("./session-mirror");
8
+ const PROTOCOL_VERSION = 1;
9
+ const DEFAULT_APPEND_ATTEMPTS = 3;
10
+ const DEFAULT_CLOSE_DEADLINE_MS = 30_000;
11
+ const SUBSESSION_PATH_PATTERN = /^subagents\/agent-[a-zA-Z0-9_-]+$/;
12
+ const SESSION_STORE_ERROR_CODES = new Set([
13
+ 'INVALID_EVENT',
14
+ 'INVALID_SESSION_HISTORY',
15
+ 'EVENT_CONFLICT',
16
+ 'ENTRY_TOO_LARGE',
17
+ 'SESSION_TOO_LARGE',
18
+ 'SESSION_DELETED',
19
+ 'SESSION_NOT_FOUND',
20
+ 'SESSION_STORE_SCOPE_MISMATCH',
21
+ 'SESSION_STORE_OPERATION_UNSUPPORTED',
22
+ 'SESSION_STORE_PROTOCOL_MISMATCH',
23
+ 'SESSION_STORE_MODE_MISMATCH',
24
+ 'SESSION_STORE_UNAVAILABLE',
25
+ 'SESSION_STORE_INTERNAL',
26
+ 'OUTCOME_UNKNOWN',
27
+ ]);
28
+ exports.SESSION_STORE_CAPABILITIES = [
29
+ 'immutable_event_identity',
30
+ 'atomic_batch_append',
31
+ 'payload_conflict_detection',
32
+ 'canonical_payload_v1',
33
+ 'subsession_addressing',
34
+ 'list_sessions',
35
+ 'list_subkeys',
36
+ 'delete',
37
+ 'deleted_key_fencing',
38
+ ];
39
+ class SessionStoreRuntime {
40
+ constructor(options) {
41
+ this.options = options;
42
+ this.state = 'new';
43
+ this.inFlight = new Set();
44
+ this.appendAttempts = options.appendAttempts ?? DEFAULT_APPEND_ATTEMPTS;
45
+ this.closeDeadlineMs = options.closeDeadlineMs ?? DEFAULT_CLOSE_DEADLINE_MS;
46
+ if (options.mode === 'mirror') {
47
+ this.mirrorWorker = new session_mirror_1.SessionMirrorWorker(options.store, {
48
+ onFailure: options.onMirrorFailure,
49
+ });
50
+ }
51
+ }
52
+ initialize(request) {
53
+ if (this.state === 'closing' || this.state === 'closed') {
54
+ return Promise.reject((0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_UNAVAILABLE', `SessionStore is ${this.state}`));
55
+ }
56
+ if (this.initializePromise) {
57
+ return this.initializePromise;
58
+ }
59
+ if (this.state !== 'new') {
60
+ return Promise.reject((0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_PROTOCOL_MISMATCH', `SessionStore cannot initialize while ${this.state}`));
61
+ }
62
+ this.state = 'initializing';
63
+ this.initializePromise = this.performInitialize(request).then(result => {
64
+ if (this.state === 'initializing') {
65
+ this.state = 'ready';
66
+ }
67
+ return result;
68
+ }).catch(error => {
69
+ if (this.state === 'initializing') {
70
+ this.state = 'failed';
71
+ }
72
+ throw error;
73
+ });
74
+ return this.initializePromise;
75
+ }
76
+ handle(request) {
77
+ try {
78
+ this.resolveRequestContext(request.contextId);
79
+ if (request.op === 'initialize') {
80
+ return this.initialize(request);
81
+ }
82
+ if (!this.initializePromise) {
83
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_PROTOCOL_MISMATCH', 'SessionStore operation arrived before initialize');
84
+ }
85
+ if (this.state === 'closing' || this.state === 'closed' || this.state === 'failed') {
86
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_UNAVAILABLE', `SessionStore is ${this.state}`);
87
+ }
88
+ return this.track(this.handleAccepted(request));
89
+ }
90
+ catch (error) {
91
+ return Promise.reject(error);
92
+ }
93
+ }
94
+ async handleAccepted(request) {
95
+ await this.initializePromise;
96
+ if (!request.key) {
97
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'SessionStore key is required');
98
+ }
99
+ this.assertValidKey(request, request.key);
100
+ this.assertProjectScope(request.key);
101
+ if (this.options.mode === 'mirror' && request.op !== 'load' && request.op !== 'listSubkeys') {
102
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_OPERATION_UNSUPPORTED', `SessionStore ${request.op} is unavailable in mirror mode`);
103
+ }
104
+ return this.dispatch(request, request.key);
105
+ }
106
+ handleMirrorNotification(data) {
107
+ if (this.state !== 'ready' || this.options.mode !== 'mirror' || !this.mirrorWorker) {
108
+ return;
109
+ }
110
+ this.mirrorWorker.enqueue(data.key, data.events);
111
+ }
112
+ close() {
113
+ if (this.closePromise) {
114
+ return this.closePromise;
115
+ }
116
+ if (this.state === 'closed') {
117
+ return Promise.resolve();
118
+ }
119
+ this.state = 'closing';
120
+ this.closePromise = this.performClose().finally(() => {
121
+ this.state = 'closed';
122
+ });
123
+ return this.closePromise;
124
+ }
125
+ async performInitialize(request) {
126
+ this.resolveRequestContext(request.contextId);
127
+ if (request.mode !== this.options.mode) {
128
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_MODE_MISMATCH', 'SessionStore mode does not match the host');
129
+ }
130
+ if (request.protocolVersion !== PROTOCOL_VERSION) {
131
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_PROTOCOL_MISMATCH', `Unsupported SessionStore protocol version: ${String(request.protocolVersion)}`);
132
+ }
133
+ const required = request.requiredCapabilities ?? [];
134
+ const missing = required.filter(value => !exports.SESSION_STORE_CAPABILITIES.includes(value));
135
+ if (missing.length > 0) {
136
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_PROTOCOL_MISMATCH', `Missing SessionStore capabilities: ${missing.join(', ')}`);
137
+ }
138
+ if (this.options.mode === 'remote' && !this.options.projectKey?.trim()) {
139
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_PROTOCOL_MISMATCH', 'Remote SessionStore requires a stable projectKey');
140
+ }
141
+ return {
142
+ protocolVersion: PROTOCOL_VERSION,
143
+ capabilities: [...exports.SESSION_STORE_CAPABILITIES],
144
+ ...(this.options.mode === 'remote' ? { projectKey: this.options.projectKey } : {}),
145
+ };
146
+ }
147
+ async dispatch(request, key) {
148
+ switch (request.op) {
149
+ case 'append': {
150
+ if (!Array.isArray(request.events) || request.events.length === 0) {
151
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'SessionStore append requires a non-empty event array');
152
+ }
153
+ const events = (0, session_store_protocol_1.normalizeSessionStoreEvents)(request.events).map(value => value.event);
154
+ await this.appendWithRetry(key, events);
155
+ return { ok: true };
156
+ }
157
+ case 'load':
158
+ return { events: await this.options.store.load(key) };
159
+ case 'listSessions':
160
+ return { sessions: await this.options.store.listSessions(key.projectKey) };
161
+ case 'listSubkeys':
162
+ return {
163
+ subkeys: await this.options.store.listSubkeys({
164
+ projectKey: key.projectKey,
165
+ sessionId: key.sessionId,
166
+ }),
167
+ };
168
+ case 'delete':
169
+ await this.options.store.delete(key);
170
+ return { ok: true };
171
+ default:
172
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_OPERATION_UNSUPPORTED', `Unknown SessionStore operation: ${String(request.op)}`);
173
+ }
174
+ }
175
+ async appendWithRetry(key, events) {
176
+ let lastError;
177
+ for (let attempt = 1; attempt <= this.appendAttempts; attempt += 1) {
178
+ try {
179
+ await this.options.store.append(structuredClone(key), structuredClone(events));
180
+ return;
181
+ }
182
+ catch (error) {
183
+ lastError = error;
184
+ if (errorCode(error) !== 'OUTCOME_UNKNOWN' || attempt === this.appendAttempts) {
185
+ throw error;
186
+ }
187
+ }
188
+ }
189
+ throw lastError;
190
+ }
191
+ assertProjectScope(key) {
192
+ if (this.options.mode === 'remote' && key.projectKey !== this.options.projectKey) {
193
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('SESSION_STORE_SCOPE_MISMATCH', 'SessionStore projectKey does not match the host binding');
194
+ }
195
+ }
196
+ assertValidKey(request, key) {
197
+ if (typeof key.projectKey !== 'string' || !key.projectKey.trim()) {
198
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'SessionStore projectKey must be non-empty');
199
+ }
200
+ if (request.op === 'listSessions') {
201
+ if (key.subpath !== undefined) {
202
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'listSessions does not accept a subpath');
203
+ }
204
+ return;
205
+ }
206
+ if (typeof key.sessionId !== 'string' || !key.sessionId.trim()) {
207
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'SessionStore sessionId must be non-empty');
208
+ }
209
+ if (request.op === 'listSubkeys' && key.subpath !== undefined) {
210
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'listSubkeys requires a main Session key');
211
+ }
212
+ if (key.subpath !== undefined && !SUBSESSION_PATH_PATTERN.test(key.subpath)) {
213
+ throw (0, session_store_protocol_1.sessionStoreProtocolError)('INVALID_EVENT', 'SessionStore subpath is invalid');
214
+ }
215
+ }
216
+ resolveRequestContext(requestedContextId) {
217
+ const expected = this.options.expectedContextId;
218
+ if (!expected) {
219
+ return requestedContextId;
220
+ }
221
+ if (!requestedContextId) {
222
+ if (this.options.requireRequestContext) {
223
+ throw new remote_error_codes_1.RemoteProtocolError('REMOTE_CONTEXT_MISSING', 'remote operation is missing contextId');
224
+ }
225
+ return expected;
226
+ }
227
+ if (requestedContextId !== expected) {
228
+ throw new remote_error_codes_1.RemoteProtocolError('REMOTE_CONTEXT_MISMATCH', 'remote operation context does not match this query');
229
+ }
230
+ return expected;
231
+ }
232
+ track(promise) {
233
+ this.inFlight.add(promise);
234
+ promise.finally(() => this.inFlight.delete(promise)).catch(() => { });
235
+ return promise;
236
+ }
237
+ async performClose() {
238
+ const drains = [...this.inFlight];
239
+ if (this.initializePromise) {
240
+ drains.push(this.initializePromise);
241
+ }
242
+ if (this.mirrorWorker) {
243
+ drains.push(this.mirrorWorker.flush(this.closeDeadlineMs));
244
+ }
245
+ if (drains.length === 0) {
246
+ return;
247
+ }
248
+ let timer;
249
+ try {
250
+ await Promise.race([
251
+ Promise.allSettled(drains),
252
+ new Promise(resolve => {
253
+ timer = setTimeout(resolve, this.closeDeadlineMs);
254
+ }),
255
+ ]);
256
+ }
257
+ finally {
258
+ if (timer) {
259
+ clearTimeout(timer);
260
+ }
261
+ }
262
+ }
263
+ }
264
+ exports.SessionStoreRuntime = SessionStoreRuntime;
265
+ function sessionStoreControlError(error) {
266
+ if (error instanceof Error) {
267
+ const rawCode = errorCode(error);
268
+ const code = error instanceof remote_error_codes_1.RemoteProtocolError
269
+ ? rawCode ?? 'SESSION_STORE_INTERNAL'
270
+ : isSessionStoreErrorCode(rawCode) ? rawCode : 'SESSION_STORE_INTERNAL';
271
+ return { subtype: 'error', error: error.message, code };
272
+ }
273
+ return { subtype: 'error', error: String(error), code: 'SESSION_STORE_INTERNAL' };
274
+ }
275
+ function errorCode(error) {
276
+ return error && typeof error === 'object' && 'code' in error && typeof error.code === 'string'
277
+ ? error.code
278
+ : undefined;
279
+ }
280
+ function isSessionStoreErrorCode(value) {
281
+ return value !== undefined && SESSION_STORE_ERROR_CODES.has(value);
282
+ }
283
+ //# sourceMappingURL=session-store-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store-runtime.js","sourceRoot":"","sources":["../../src/_internal/session-store-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { SessionKey, SessionStore, SessionStoreEvent } from './types';
2
+ export declare const DEFAULT_SESSION_STORE_EVENT_BYTES: number;
3
+ export declare const DEFAULT_SESSION_STORE_KEY_BYTES: number;
4
+ export interface InMemorySessionStoreOptions {
5
+ maxEventBytes?: number;
6
+ maxKeyBytes?: number;
7
+ now?: () => number;
8
+ }
9
+ export declare class InMemorySessionStore implements SessionStore {
10
+ private readonly records;
11
+ private readonly mainTombstones;
12
+ private readonly subTombstones;
13
+ private readonly maxEventBytes;
14
+ private readonly maxKeyBytes;
15
+ private readonly now;
16
+ constructor(options?: InMemorySessionStoreOptions);
17
+ append(key: SessionKey, events: SessionStoreEvent[]): Promise<void>;
18
+ load(key: SessionKey): Promise<SessionStoreEvent[] | null>;
19
+ listSessions(projectKey: string): Promise<Array<{
20
+ sessionId: string;
21
+ mtime: number;
22
+ }>>;
23
+ delete(key: SessionKey): Promise<void>;
24
+ listSubkeys(key: {
25
+ projectKey: string;
26
+ sessionId: string;
27
+ }): Promise<string[]>;
28
+ private assertNotDeleted;
29
+ private isDeleted;
30
+ }
31
+ //# sourceMappingURL=in-memory-session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-session-store.d.ts","sourceRoot":"","sources":["../src/in-memory-session-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE3E,eAAO,MAAM,iCAAiC,QAAc,CAAC;AAC7D,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AAShE,MAAM,WAAW,2BAA2B;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAUD,qBAAa,oBAAqB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,YAAY,OAAO,GAAE,2BAAgC,EAIpD;IAEK,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDxE;IAEK,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,CAM/D;IAEK,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAS3F;IAEK,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3C;IAEK,WAAW,CAAC,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAenF;IAED,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,SAAS;CAIpB"}