pi-maestro-teammate 2.3.0 → 2.4.0

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/package.json CHANGED
@@ -1,221 +1,221 @@
1
- {
2
- "name": "pi-maestro-teammate",
3
- "version": "2.3.0",
4
- "description": "Pi extension — teammate agent dispatch with DAG task graphs, RPC messaging, and compact TUI",
5
- "type": "module",
6
- "engines": {
7
- "node": ">=22.19.0"
8
- },
9
- "bin": {
10
- "pi-teammate-broker": "./bin/pi-teammate-broker.mjs",
11
- "pi-teammate-models": "./bin/pi-teammate-models.mjs",
12
- "pi-teammate-outbox": "./bin/pi-teammate-outbox.mjs",
13
- "pi-teammate-remote": "./bin/pi-teammate-remote.mjs"
14
- },
15
- "keywords": [
16
- "pi-package",
17
- "pi-extension",
18
- "pi",
19
- "teammate",
20
- "agents"
21
- ],
22
- "scripts": {
23
- "test": "node --experimental-transform-types --import ./test/setup.ts --test --test-concurrency=2 \"test/*.test.ts\"",
24
- "typecheck": "tsc -p tsconfig.build.json",
25
- "build:declarations": "tsc -p tsconfig.declarations.json",
26
- "check:declarations": "node scripts/check-declarations.mjs",
27
- "prepack": "npm run build:declarations && node ../../scripts/bundle-settings-core.mjs",
28
- "postpack": "node ../../scripts/bundle-settings-core.mjs --clean",
29
- "test:e2e": "node --experimental-transform-types --import ./test/setup.ts --test --test-timeout=300000 test/backend-registry-dsh.e2e.test.ts",
30
- "refresh:acp-registry": "node scripts/refresh-acp-registry.mjs",
31
- "check:acp-registry": "node scripts/refresh-acp-registry.mjs --check"
32
- },
33
- "main": "./src/index.ts",
34
- "types": "./types/index.d.ts",
35
- "exports": {
36
- ".": {
37
- "types": "./types/index.d.ts",
38
- "default": "./src/index.ts"
39
- },
40
- "./v1": {
41
- "types": "./types/public/v1/index.d.ts",
42
- "default": "./src/public/v1/index.ts"
43
- },
44
- "./v1/acp-cli": {
45
- "types": "./types/backends/acp-cli.d.ts",
46
- "default": "./src/backends/acp-cli.ts"
47
- },
48
- "./v1/agents": {
49
- "types": "./types/public/v1/agents.d.ts",
50
- "default": "./src/public/v1/agents.ts"
51
- },
52
- "./v1/backends": {
53
- "types": "./types/public/v1/backends.d.ts",
54
- "default": "./src/public/v1/backends.ts"
55
- },
56
- "./v1/child-extensions": {
57
- "types": "./types/public/v1/child-extensions.d.ts",
58
- "default": "./src/public/v1/child-extensions.ts"
59
- },
60
- "./v1/events": {
61
- "types": "./types/public/v1/events.d.ts",
62
- "default": "./src/public/v1/events.ts"
63
- },
64
- "./v1/execution": {
65
- "types": "./types/public/v1/execution.d.ts",
66
- "default": "./src/public/v1/execution.ts"
67
- },
68
- "./v1/extension": {
69
- "types": "./types/public/v1/extension.d.ts",
70
- "default": "./src/public/v1/extension.ts"
71
- },
72
- "./v1/model-routing": {
73
- "types": "./types/public/v1/model-routing.d.ts",
74
- "default": "./src/public/v1/model-routing.ts"
75
- },
76
- "./v1/monitor-window-state": {
77
- "types": "./types/public/v1/monitor-window-state.d.ts",
78
- "default": "./src/public/v1/monitor-window-state.ts"
79
- },
80
- "./v1/cli-tools": {
81
- "types": "./types/public/v1/cli-tools.d.ts",
82
- "default": "./src/public/v1/cli-tools.ts"
83
- },
84
- "./v1/completion-durability": {
85
- "types": "./types/public/v1/completion-durability.d.ts",
86
- "default": "./src/public/v1/completion-durability.ts"
87
- },
88
- "./v1/mailbox": {
89
- "types": "./types/public/v1/mailbox.d.ts",
90
- "default": "./src/public/v1/mailbox.ts"
91
- },
92
- "./v1/observation": {
93
- "types": "./types/public/v1/observation.d.ts",
94
- "default": "./src/public/v1/observation.ts"
95
- },
96
- "./v1/progress-tree": {
97
- "types": "./types/public/v1/progress-tree.d.ts",
98
- "default": "./src/public/v1/progress-tree.ts"
99
- },
100
- "./v1/remote": {
101
- "types": "./types/public/v1/remote.d.ts",
102
- "default": "./src/public/v1/remote.ts"
103
- },
104
- "./v1/retry": {
105
- "types": "./types/public/v1/retry.d.ts",
106
- "default": "./src/public/v1/retry.ts"
107
- },
108
- "./v1/session-history": {
109
- "types": "./types/public/v1/session-history.d.ts",
110
- "default": "./src/public/v1/session-history.ts"
111
- },
112
- "./v1/scheduler": {
113
- "types": "./types/public/v1/scheduler.d.ts",
114
- "default": "./src/public/v1/scheduler.ts"
115
- },
116
- "./v1/sessions": {
117
- "types": "./types/public/v1/sessions.d.ts",
118
- "default": "./src/public/v1/sessions.ts"
119
- },
120
- "./v1/supervision": {
121
- "types": "./types/public/v1/supervision.d.ts",
122
- "default": "./src/public/v1/supervision.ts"
123
- },
124
- "./v1/ssh-hosts": {
125
- "types": "./types/public/v1/ssh-hosts.d.ts",
126
- "default": "./src/public/v1/ssh-hosts.ts"
127
- },
128
- "./v1/workspace-projections": {
129
- "types": "./types/public/v1/workspace-projections.d.ts",
130
- "default": "./src/public/v1/workspace-projections.ts"
131
- },
132
- "./v1/workspace-completion": {
133
- "types": "./types/public/v1/workspace-completion.d.ts",
134
- "default": "./src/public/v1/workspace-completion.ts"
135
- },
136
- "./v1/todo-context": {
137
- "types": "./types/public/v1/todo-context.d.ts",
138
- "default": "./src/public/v1/todo-context.ts"
139
- },
140
- "./v1/types": {
141
- "types": "./types/public/v1/types.d.ts",
142
- "default": "./src/public/v1/types.ts"
143
- },
144
- "./v2/runtime": {
145
- "types": "./types/public/v2/runtime.d.ts",
146
- "default": "./src/public/v2/runtime.ts"
147
- },
148
- "./v2/runtime-broker": {
149
- "types": "./types/public/v2/runtime-broker.d.ts",
150
- "default": "./src/public/v2/runtime-broker.ts"
151
- },
152
- "./src/*": "./src/*"
153
- },
154
- "deprecatedSubpaths": {
155
- "./src/*": "Compatibility only; use the versioned ./v1/* public API."
156
- },
157
- "files": [
158
- "bin/*.mjs",
159
- "src/**/*.{ts,json}",
160
- "types/**/*.d.ts",
161
- "agents/",
162
- "README.md"
163
- ],
164
- "pi": {
165
- "extensions": [
166
- "./src/extension/index.ts"
167
- ]
168
- },
169
- "peerDependencies": {
170
- "@earendil-works/pi-agent-core": "*",
171
- "@earendil-works/pi-ai": "*",
172
- "@earendil-works/pi-coding-agent": "*",
173
- "@earendil-works/pi-tui": "*",
174
- "typebox": "*"
175
- },
176
- "peerDependenciesMeta": {
177
- "@earendil-works/pi-agent-core": {
178
- "optional": true
179
- },
180
- "@earendil-works/pi-ai": {
181
- "optional": true
182
- },
183
- "@earendil-works/pi-coding-agent": {
184
- "optional": true
185
- },
186
- "@earendil-works/pi-tui": {
187
- "optional": true
188
- },
189
- "typebox": {
190
- "optional": true
191
- }
192
- },
193
- "dependencies": {
194
- "@agentclientprotocol/sdk": "1.3.0",
195
- "cross-spawn": "7.0.6",
196
- "jiti": "2.7.0",
197
- "pi-maestro-settings-core": "0.2.1",
198
- "pi-maestro-backend-core": "*",
199
- "pi-maestro-backends": "*",
200
- "proper-lockfile": "4.1.2",
201
- "ssh2": "1.17.0",
202
- "zod": "4.4.3"
203
- },
204
- "bundledDependencies": [
205
- "pi-maestro-settings-core"
206
- ],
207
- "devDependencies": {
208
- "@earendil-works/pi-agent-core": "0.84.4",
209
- "@types/cross-spawn": "6.0.6",
210
- "@earendil-works/pi-ai": "0.84.4",
211
- "@earendil-works/pi-coding-agent": "0.84.4",
212
- "@earendil-works/pi-tui": "0.84.4",
213
- "@types/ssh2": "1.15.5",
214
- "typebox": "1.3.7"
215
- },
216
- "directories": {
217
- "test": "test"
218
- },
219
- "author": "",
220
- "license": "ISC"
221
- }
1
+ {
2
+ "name": "pi-maestro-teammate",
3
+ "version": "2.4.0",
4
+ "description": "Pi extension — teammate agent dispatch with DAG task graphs, RPC messaging, and compact TUI",
5
+ "type": "module",
6
+ "engines": {
7
+ "node": ">=22.19.0"
8
+ },
9
+ "bin": {
10
+ "pi-teammate-broker": "./bin/pi-teammate-broker.mjs",
11
+ "pi-teammate-models": "./bin/pi-teammate-models.mjs",
12
+ "pi-teammate-outbox": "./bin/pi-teammate-outbox.mjs",
13
+ "pi-teammate-remote": "./bin/pi-teammate-remote.mjs"
14
+ },
15
+ "keywords": [
16
+ "pi-package",
17
+ "pi-extension",
18
+ "pi",
19
+ "teammate",
20
+ "agents"
21
+ ],
22
+ "scripts": {
23
+ "test": "node --experimental-transform-types --import ./test/setup.ts --test --test-concurrency=2 \"test/*.test.ts\"",
24
+ "typecheck": "tsc -p tsconfig.build.json",
25
+ "build:declarations": "tsc -p tsconfig.declarations.json",
26
+ "check:declarations": "node scripts/check-declarations.mjs",
27
+ "prepack": "npm run build:declarations && node ../../scripts/bundle-settings-core.mjs",
28
+ "postpack": "node ../../scripts/bundle-settings-core.mjs --clean",
29
+ "test:e2e": "node --experimental-transform-types --import ./test/setup.ts --test --test-timeout=300000 test/backend-registry-dsh.e2e.test.ts",
30
+ "refresh:acp-registry": "node scripts/refresh-acp-registry.mjs",
31
+ "check:acp-registry": "node scripts/refresh-acp-registry.mjs --check"
32
+ },
33
+ "main": "./src/index.ts",
34
+ "types": "./types/index.d.ts",
35
+ "exports": {
36
+ ".": {
37
+ "types": "./types/index.d.ts",
38
+ "default": "./src/index.ts"
39
+ },
40
+ "./v1": {
41
+ "types": "./types/public/v1/index.d.ts",
42
+ "default": "./src/public/v1/index.ts"
43
+ },
44
+ "./v1/acp-cli": {
45
+ "types": "./types/backends/acp-cli.d.ts",
46
+ "default": "./src/backends/acp-cli.ts"
47
+ },
48
+ "./v1/agents": {
49
+ "types": "./types/public/v1/agents.d.ts",
50
+ "default": "./src/public/v1/agents.ts"
51
+ },
52
+ "./v1/backends": {
53
+ "types": "./types/public/v1/backends.d.ts",
54
+ "default": "./src/public/v1/backends.ts"
55
+ },
56
+ "./v1/child-extensions": {
57
+ "types": "./types/public/v1/child-extensions.d.ts",
58
+ "default": "./src/public/v1/child-extensions.ts"
59
+ },
60
+ "./v1/events": {
61
+ "types": "./types/public/v1/events.d.ts",
62
+ "default": "./src/public/v1/events.ts"
63
+ },
64
+ "./v1/execution": {
65
+ "types": "./types/public/v1/execution.d.ts",
66
+ "default": "./src/public/v1/execution.ts"
67
+ },
68
+ "./v1/extension": {
69
+ "types": "./types/public/v1/extension.d.ts",
70
+ "default": "./src/public/v1/extension.ts"
71
+ },
72
+ "./v1/model-routing": {
73
+ "types": "./types/public/v1/model-routing.d.ts",
74
+ "default": "./src/public/v1/model-routing.ts"
75
+ },
76
+ "./v1/monitor-window-state": {
77
+ "types": "./types/public/v1/monitor-window-state.d.ts",
78
+ "default": "./src/public/v1/monitor-window-state.ts"
79
+ },
80
+ "./v1/cli-tools": {
81
+ "types": "./types/public/v1/cli-tools.d.ts",
82
+ "default": "./src/public/v1/cli-tools.ts"
83
+ },
84
+ "./v1/completion-durability": {
85
+ "types": "./types/public/v1/completion-durability.d.ts",
86
+ "default": "./src/public/v1/completion-durability.ts"
87
+ },
88
+ "./v1/mailbox": {
89
+ "types": "./types/public/v1/mailbox.d.ts",
90
+ "default": "./src/public/v1/mailbox.ts"
91
+ },
92
+ "./v1/observation": {
93
+ "types": "./types/public/v1/observation.d.ts",
94
+ "default": "./src/public/v1/observation.ts"
95
+ },
96
+ "./v1/progress-tree": {
97
+ "types": "./types/public/v1/progress-tree.d.ts",
98
+ "default": "./src/public/v1/progress-tree.ts"
99
+ },
100
+ "./v1/remote": {
101
+ "types": "./types/public/v1/remote.d.ts",
102
+ "default": "./src/public/v1/remote.ts"
103
+ },
104
+ "./v1/retry": {
105
+ "types": "./types/public/v1/retry.d.ts",
106
+ "default": "./src/public/v1/retry.ts"
107
+ },
108
+ "./v1/session-history": {
109
+ "types": "./types/public/v1/session-history.d.ts",
110
+ "default": "./src/public/v1/session-history.ts"
111
+ },
112
+ "./v1/scheduler": {
113
+ "types": "./types/public/v1/scheduler.d.ts",
114
+ "default": "./src/public/v1/scheduler.ts"
115
+ },
116
+ "./v1/sessions": {
117
+ "types": "./types/public/v1/sessions.d.ts",
118
+ "default": "./src/public/v1/sessions.ts"
119
+ },
120
+ "./v1/supervision": {
121
+ "types": "./types/public/v1/supervision.d.ts",
122
+ "default": "./src/public/v1/supervision.ts"
123
+ },
124
+ "./v1/ssh-hosts": {
125
+ "types": "./types/public/v1/ssh-hosts.d.ts",
126
+ "default": "./src/public/v1/ssh-hosts.ts"
127
+ },
128
+ "./v1/workspace-projections": {
129
+ "types": "./types/public/v1/workspace-projections.d.ts",
130
+ "default": "./src/public/v1/workspace-projections.ts"
131
+ },
132
+ "./v1/workspace-completion": {
133
+ "types": "./types/public/v1/workspace-completion.d.ts",
134
+ "default": "./src/public/v1/workspace-completion.ts"
135
+ },
136
+ "./v1/todo-context": {
137
+ "types": "./types/public/v1/todo-context.d.ts",
138
+ "default": "./src/public/v1/todo-context.ts"
139
+ },
140
+ "./v1/types": {
141
+ "types": "./types/public/v1/types.d.ts",
142
+ "default": "./src/public/v1/types.ts"
143
+ },
144
+ "./v2/runtime": {
145
+ "types": "./types/public/v2/runtime.d.ts",
146
+ "default": "./src/public/v2/runtime.ts"
147
+ },
148
+ "./v2/runtime-broker": {
149
+ "types": "./types/public/v2/runtime-broker.d.ts",
150
+ "default": "./src/public/v2/runtime-broker.ts"
151
+ },
152
+ "./src/*": "./src/*"
153
+ },
154
+ "deprecatedSubpaths": {
155
+ "./src/*": "Compatibility only; use the versioned ./v1/* public API."
156
+ },
157
+ "files": [
158
+ "bin/*.mjs",
159
+ "src/**/*.{ts,json}",
160
+ "types/**/*.d.ts",
161
+ "agents/",
162
+ "README.md"
163
+ ],
164
+ "pi": {
165
+ "extensions": [
166
+ "./src/extension/index.ts"
167
+ ]
168
+ },
169
+ "peerDependencies": {
170
+ "@earendil-works/pi-agent-core": "*",
171
+ "@earendil-works/pi-ai": "*",
172
+ "@earendil-works/pi-coding-agent": "*",
173
+ "@earendil-works/pi-tui": "*",
174
+ "typebox": "*"
175
+ },
176
+ "peerDependenciesMeta": {
177
+ "@earendil-works/pi-agent-core": {
178
+ "optional": true
179
+ },
180
+ "@earendil-works/pi-ai": {
181
+ "optional": true
182
+ },
183
+ "@earendil-works/pi-coding-agent": {
184
+ "optional": true
185
+ },
186
+ "@earendil-works/pi-tui": {
187
+ "optional": true
188
+ },
189
+ "typebox": {
190
+ "optional": true
191
+ }
192
+ },
193
+ "dependencies": {
194
+ "@agentclientprotocol/sdk": "1.3.0",
195
+ "cross-spawn": "7.0.6",
196
+ "jiti": "2.7.0",
197
+ "pi-maestro-settings-core": "0.2.1",
198
+ "pi-maestro-backend-core": "*",
199
+ "pi-maestro-backends": "*",
200
+ "proper-lockfile": "4.1.2",
201
+ "ssh2": "1.17.0",
202
+ "zod": "4.4.3"
203
+ },
204
+ "bundledDependencies": [
205
+ "pi-maestro-settings-core"
206
+ ],
207
+ "devDependencies": {
208
+ "@earendil-works/pi-agent-core": "0.84.4",
209
+ "@types/cross-spawn": "6.0.6",
210
+ "@earendil-works/pi-ai": "0.84.4",
211
+ "@earendil-works/pi-coding-agent": "0.84.4",
212
+ "@earendil-works/pi-tui": "0.84.4",
213
+ "@types/ssh2": "1.15.5",
214
+ "typebox": "1.3.7"
215
+ },
216
+ "directories": {
217
+ "test": "test"
218
+ },
219
+ "author": "",
220
+ "license": "ISC"
221
+ }
@@ -1813,11 +1813,15 @@ async function withWorkspaceOwnerClaimMutex<T>(
1813
1813
 
1814
1814
  const current = await inspectBoundedJson(lockPath, OWNER_CLAIM_LOCK_FILE_MAX_BYTES);
1815
1815
  const record = validateWorkspaceOwnerClaimLockRecord(current?.value);
1816
+ // PIDs are recyclable, so acquiredAt is also a hard lease bound for valid locks.
1817
+ const recordStale = record !== undefined
1818
+ && (Math.abs(acquiredAt - record.acquiredAt) > OWNER_CLAIM_LOCK_STALE_MS
1819
+ || !processIsAlive(record.pid));
1816
1820
  const changedAt = current ? Math.max(current.mtimeMs, current.ctimeMs) : acquiredAt;
1817
1821
  const malformedStale = current !== undefined
1818
1822
  && record === undefined
1819
1823
  && Math.abs(acquiredAt - changedAt) > OWNER_CLAIM_LOCK_STALE_MS;
1820
- if (current && (record && !processIsAlive(record.pid) || malformedStale)) {
1824
+ if (current && (recordStale || malformedStale)) {
1821
1825
  await quarantinePrivateFileIfUnchanged(lockPath, current, OWNER_CLAIM_LOCK_FILE_MAX_BYTES).catch(() => false);
1822
1826
  continue;
1823
1827
  }
@@ -99,6 +99,7 @@ export interface SessionHistoryOptions {
99
99
  export type SessionHistoryListOptions = SessionHistoryOptions;
100
100
  export type SessionHistorySearchOptions = SessionHistoryOptions;
101
101
  export type SessionHistoryReadOptions = SessionHistoryOptions;
102
+ export type SessionHistoryCompactionOptions = Omit<SessionHistoryOptions, "include">;
102
103
 
103
104
  export interface SessionHistorySession {
104
105
  sessionId: string;
@@ -161,6 +162,12 @@ export interface SessionHistorySearchResult extends ScanMetrics {
161
162
  matches: readonly SessionHistorySearchMatch[];
162
163
  matchCount: number;
163
164
  }
165
+ export interface SessionHistoryCompactionResult extends ScanMetrics {
166
+ version: typeof SESSION_HISTORY_VERSION;
167
+ generation?: number;
168
+ checkpoints: readonly SessionHistoryEntry[];
169
+ checkpointCount: number;
170
+ }
164
171
  export interface SessionHistoryEntryRead {
165
172
  sessionId: string;
166
173
  entryId: string;
@@ -296,6 +303,26 @@ export class SessionHistoryService {
296
303
  return this.search(query, options);
297
304
  }
298
305
 
306
+ async compactions(options: SessionHistoryCompactionOptions = {}): Promise<SessionHistoryCompactionResult> {
307
+ const limit = boundedLimit(options.limit);
308
+ const scan = await this.#scan(new Set<SessionHistoryInclude>(["compaction"]), options.signal);
309
+ const all = scan.sessions
310
+ .flatMap((session) => session.entries)
311
+ .filter((entry) => entry.kind === "compaction")
312
+ .sort((left, right) => right.timestamp - left.timestamp || right.entryId.localeCompare(left.entryId));
313
+ const checkpoints = all.slice(0, limit);
314
+ return resultWithMetrics(scan, {
315
+ version: SESSION_HISTORY_VERSION,
316
+ ...(scan.generation === undefined ? {} : { generation: scan.generation }),
317
+ checkpoints: Object.freeze(checkpoints),
318
+ checkpointCount: all.length,
319
+ }, all.length - checkpoints.length);
320
+ }
321
+
322
+ async listCompactions(options: SessionHistoryCompactionOptions = {}): Promise<SessionHistoryCompactionResult> {
323
+ return this.compactions(options);
324
+ }
325
+
299
326
  async read(sessionId: string, options?: SessionHistoryReadOptions): Promise<SessionHistoryReadResult>;
300
327
  async read(request: SessionHistoryReadRequest): Promise<SessionHistoryReadResult>;
301
328
  async read(
@@ -418,6 +445,9 @@ export function listSessionHistory(source: SessionHistoryInventorySource | Sessi
418
445
  export function searchSessionHistory(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, query: string, options: SessionHistorySearchOptions = {}): Promise<SessionHistorySearchResult> {
419
446
  return createSessionHistoryService(source).search(query, options);
420
447
  }
448
+ export function listSessionCompactions(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, options: SessionHistoryCompactionOptions = {}): Promise<SessionHistoryCompactionResult> {
449
+ return createSessionHistoryService(source).compactions(options);
450
+ }
421
451
  export function readSessionHistory(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, request: SessionHistoryReadRequest): Promise<SessionHistoryReadResult> {
422
452
  return createSessionHistoryService(source).read(request);
423
453
  }
@@ -60,6 +60,7 @@ export interface SessionHistoryOptions {
60
60
  export type SessionHistoryListOptions = SessionHistoryOptions;
61
61
  export type SessionHistorySearchOptions = SessionHistoryOptions;
62
62
  export type SessionHistoryReadOptions = SessionHistoryOptions;
63
+ export type SessionHistoryCompactionOptions = Omit<SessionHistoryOptions, "include">;
63
64
  export interface SessionHistorySession {
64
65
  sessionId: string;
65
66
  resourceUri: string;
@@ -117,6 +118,12 @@ export interface SessionHistorySearchResult extends ScanMetrics {
117
118
  matches: readonly SessionHistorySearchMatch[];
118
119
  matchCount: number;
119
120
  }
121
+ export interface SessionHistoryCompactionResult extends ScanMetrics {
122
+ version: typeof SESSION_HISTORY_VERSION;
123
+ generation?: number;
124
+ checkpoints: readonly SessionHistoryEntry[];
125
+ checkpointCount: number;
126
+ }
120
127
  export interface SessionHistoryEntryRead {
121
128
  sessionId: string;
122
129
  entryId: string;
@@ -154,6 +161,8 @@ export declare class SessionHistoryService {
154
161
  listSessions(options?: SessionHistoryListOptions): Promise<SessionHistoryListResult>;
155
162
  search(query: string, options?: SessionHistorySearchOptions): Promise<SessionHistorySearchResult>;
156
163
  searchSessions(query: string, options?: SessionHistorySearchOptions): Promise<SessionHistorySearchResult>;
164
+ compactions(options?: SessionHistoryCompactionOptions): Promise<SessionHistoryCompactionResult>;
165
+ listCompactions(options?: SessionHistoryCompactionOptions): Promise<SessionHistoryCompactionResult>;
157
166
  read(sessionId: string, options?: SessionHistoryReadOptions): Promise<SessionHistoryReadResult>;
158
167
  read(request: SessionHistoryReadRequest): Promise<SessionHistoryReadResult>;
159
168
  readSession(sessionId: string, options?: SessionHistoryReadOptions): Promise<SessionHistoryReadResult>;
@@ -164,6 +173,7 @@ export declare class SessionHistoryService {
164
173
  export declare function createSessionHistoryService(source: SessionHistoryInventorySource | SessionHistoryServiceOptions): SessionHistoryService;
165
174
  export declare function listSessionHistory(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, options?: SessionHistoryListOptions): Promise<SessionHistoryListResult>;
166
175
  export declare function searchSessionHistory(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, query: string, options?: SessionHistorySearchOptions): Promise<SessionHistorySearchResult>;
176
+ export declare function listSessionCompactions(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, options?: SessionHistoryCompactionOptions): Promise<SessionHistoryCompactionResult>;
167
177
  export declare function readSessionHistory(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, request: SessionHistoryReadRequest): Promise<SessionHistoryReadResult>;
168
178
  export declare function readSessionHistoryEntry(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, sessionId: string, entryId: string, options?: SessionHistoryReadOptions): Promise<SessionHistoryEntryRead | undefined>;
169
179
  export declare function readSessionHistoryTurn(source: SessionHistoryInventorySource | SessionHistoryServiceOptions, sessionId: string, turn: number, options?: SessionHistoryReadOptions): Promise<SessionHistoryTurn | undefined>;