@felan-ai/ext-memory 0.7.0 → 0.9.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/README.md +41 -30
- package/dist/data.d.ts +3 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +2 -0
- package/dist/data.js.map +1 -0
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +14 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/extension.d.ts +5 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +37 -0
- package/dist/extension.js.map +1 -0
- package/dist/hydration.d.ts +0 -3
- package/dist/hydration.d.ts.map +1 -1
- package/dist/hydration.js +0 -78
- package/dist/hydration.js.map +1 -1
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -4
- package/dist/index.js.map +1 -1
- package/dist/local/context.d.ts +10 -0
- package/dist/local/context.d.ts.map +1 -0
- package/dist/local/context.js +10 -0
- package/dist/local/context.js.map +1 -0
- package/dist/local/control.d.ts +13 -0
- package/dist/local/control.d.ts.map +1 -0
- package/dist/local/control.js +183 -0
- package/dist/local/control.js.map +1 -0
- package/dist/local/coordinator.d.ts +93 -0
- package/dist/local/coordinator.d.ts.map +1 -0
- package/dist/local/coordinator.js +859 -0
- package/dist/local/coordinator.js.map +1 -0
- package/dist/local/dreamer.d.ts +53 -0
- package/dist/local/dreamer.d.ts.map +1 -0
- package/dist/local/dreamer.js +490 -0
- package/dist/local/dreamer.js.map +1 -0
- package/dist/local/history.d.ts +33 -0
- package/dist/local/history.d.ts.map +1 -0
- package/dist/local/history.js +300 -0
- package/dist/local/history.js.map +1 -0
- package/dist/local/hydration.d.ts +6 -0
- package/dist/local/hydration.d.ts.map +1 -0
- package/dist/local/hydration.js +84 -0
- package/dist/local/hydration.js.map +1 -0
- package/dist/local/lease.d.ts +14 -0
- package/dist/local/lease.d.ts.map +1 -0
- package/dist/local/lease.js +184 -0
- package/dist/local/lease.js.map +1 -0
- package/dist/local/lock.d.ts +28 -0
- package/dist/local/lock.d.ts.map +1 -0
- package/dist/local/lock.js +431 -0
- package/dist/local/lock.js.map +1 -0
- package/dist/local/project.d.ts +8 -0
- package/dist/local/project.d.ts.map +1 -0
- package/dist/local/project.js +33 -0
- package/dist/local/project.js.map +1 -0
- package/dist/local/run-retention.d.ts +13 -0
- package/dist/local/run-retention.d.ts.map +1 -0
- package/dist/local/run-retention.js +272 -0
- package/dist/local/run-retention.js.map +1 -0
- package/dist/local/run.d.ts +84 -0
- package/dist/local/run.d.ts.map +1 -0
- package/dist/local/run.js +361 -0
- package/dist/local/run.js.map +1 -0
- package/dist/local/store.d.ts +117 -0
- package/dist/local/store.d.ts.map +1 -0
- package/dist/local/store.js +735 -0
- package/dist/local/store.js.map +1 -0
- package/dist/local/ui.d.ts +9 -0
- package/dist/local/ui.d.ts.map +1 -0
- package/dist/local/ui.js +166 -0
- package/dist/local/ui.js.map +1 -0
- package/dist/session-history.d.ts +18 -0
- package/dist/session-history.d.ts.map +1 -0
- package/dist/session-history.js +91 -0
- package/dist/session-history.js.map +1 -0
- package/package.json +9 -5
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import { removeIfPresent } from './context.js';
|
|
2
|
+
import { pruneMemoryRuns } from './run-retention.js';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { basename, join } from 'node:path';
|
|
5
|
+
import { SessionManager } from '@felan-ai/agent-core';
|
|
6
|
+
import { sanitizeMemoryDiagnostic } from '../index.js';
|
|
7
|
+
export const MEMORY_RUN_ENTRY = 'felan-memory-run';
|
|
8
|
+
export class LocalMemoryRun {
|
|
9
|
+
environment;
|
|
10
|
+
options;
|
|
11
|
+
directory;
|
|
12
|
+
workspace;
|
|
13
|
+
sessionManager;
|
|
14
|
+
#metadata;
|
|
15
|
+
#appended = 0;
|
|
16
|
+
#journalFailure;
|
|
17
|
+
constructor(environment, options, sessionManager, metadata) {
|
|
18
|
+
this.environment = environment;
|
|
19
|
+
this.options = options;
|
|
20
|
+
this.sessionManager = sessionManager;
|
|
21
|
+
this.#metadata = metadata;
|
|
22
|
+
this.directory = join(options.projectDirectory, 'runs', metadata.sessionId);
|
|
23
|
+
this.workspace = join(this.directory, 'workspace');
|
|
24
|
+
}
|
|
25
|
+
static async reconcile(environment, options, outcome) {
|
|
26
|
+
if (!validRunId(outcome.runId))
|
|
27
|
+
throw new Error('Invalid memory run identity');
|
|
28
|
+
const metadata = await readRetainedMetadata(environment, options, outcome.runId);
|
|
29
|
+
if (!metadata)
|
|
30
|
+
return;
|
|
31
|
+
if (metadata.projectKey !== options.projectKey)
|
|
32
|
+
throw new Error('Retained memory identity does not match the project');
|
|
33
|
+
if (metadata.status !== 'started' && metadata.status !== 'worker_completed')
|
|
34
|
+
return;
|
|
35
|
+
const status = outcome.status === 'success' ? 'completed'
|
|
36
|
+
: outcome.status === 'cancelled' ? 'cancelled' : 'failed';
|
|
37
|
+
await writeRetainedMetadata(environment, options, {
|
|
38
|
+
...metadata, status, finishedAt: outcome.at,
|
|
39
|
+
...(status === 'failed' ? { error: 'The memory attempt failed before diagnostics were finalized' } : {}),
|
|
40
|
+
});
|
|
41
|
+
await removeTerminalWorkspace(environment, options.projectDirectory, outcome.runId);
|
|
42
|
+
await pruneMemoryRuns(environment, options);
|
|
43
|
+
}
|
|
44
|
+
static async reconcileAbandoned(environment, options, activeRunIds, now = Date.now()) {
|
|
45
|
+
const runsDirectory = join(options.projectDirectory, 'runs');
|
|
46
|
+
let entries;
|
|
47
|
+
try {
|
|
48
|
+
const root = await environment.runtime.files.inspect(runsDirectory);
|
|
49
|
+
if (root.kind !== 'directory')
|
|
50
|
+
throw new Error('Invalid retained memory directory');
|
|
51
|
+
entries = await environment.runtime.listFiles(runsDirectory, { includeDirectories: true, includeOther: true });
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (isMissingFile(error))
|
|
55
|
+
return;
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
const active = new Set(activeRunIds);
|
|
59
|
+
for (const runId of entries) {
|
|
60
|
+
if (!validRunId(runId))
|
|
61
|
+
throw new Error('Invalid retained memory run entry');
|
|
62
|
+
const directory = join(runsDirectory, runId);
|
|
63
|
+
const stat = await environment.runtime.files.inspect(directory);
|
|
64
|
+
if (stat.kind !== 'directory')
|
|
65
|
+
throw new Error('Invalid retained memory run directory');
|
|
66
|
+
const metadata = await readRetainedMetadata(environment, options, runId);
|
|
67
|
+
if (!metadata)
|
|
68
|
+
throw new Error('Retained memory metadata is missing');
|
|
69
|
+
if (metadata.projectKey !== options.projectKey || active.has(runId)
|
|
70
|
+
|| (metadata.status !== 'started' && metadata.status !== 'worker_completed'))
|
|
71
|
+
continue;
|
|
72
|
+
await writeRetainedMetadata(environment, options, {
|
|
73
|
+
...metadata,
|
|
74
|
+
status: 'cancelled',
|
|
75
|
+
finishedAt: new Date(now).toISOString(),
|
|
76
|
+
error: 'The previous memory worker ended before completion was confirmed; evidence remains pending',
|
|
77
|
+
});
|
|
78
|
+
await removeTerminalWorkspace(environment, options.projectDirectory, runId);
|
|
79
|
+
}
|
|
80
|
+
await pruneMemoryRuns(environment, options);
|
|
81
|
+
}
|
|
82
|
+
static async create(environment, options) {
|
|
83
|
+
await privateDirectory(environment, options.projectDirectory);
|
|
84
|
+
await privateDirectory(environment, join(options.projectDirectory, 'runs'));
|
|
85
|
+
await privateDirectory(environment, options.sessionDirectory);
|
|
86
|
+
await pruneMemoryRuns(environment, options);
|
|
87
|
+
const created = SessionManager.inMemory(options.projectRoot);
|
|
88
|
+
const header = created.getHeader();
|
|
89
|
+
const sessionFile = join(options.sessionDirectory, `${header.timestamp.replace(/[:.]/gu, '-')}_${header.id}.jsonl`);
|
|
90
|
+
await environment.runtime.writeFile(sessionFile, new TextEncoder().encode(`${JSON.stringify(created.getHeader())}\n`), { noFollow: true, exclusive: true });
|
|
91
|
+
const sessionManager = created;
|
|
92
|
+
sessionManager.getSessionFile = () => sessionFile;
|
|
93
|
+
sessionManager.getSessionDir = () => options.sessionDirectory;
|
|
94
|
+
const metadata = {
|
|
95
|
+
version: 1,
|
|
96
|
+
kind: 'memory',
|
|
97
|
+
sessionId: sessionManager.getSessionId(),
|
|
98
|
+
sessionFile: basename(sessionFile),
|
|
99
|
+
projectKey: options.projectKey,
|
|
100
|
+
projectRoot: options.projectRoot,
|
|
101
|
+
startedAt: new Date().toISOString(),
|
|
102
|
+
status: 'started',
|
|
103
|
+
phase: 'materialize',
|
|
104
|
+
checkpoints: options.checkpoints,
|
|
105
|
+
baseFingerprint: options.baseFingerprint,
|
|
106
|
+
};
|
|
107
|
+
const run = new LocalMemoryRun(environment, options, sessionManager, metadata);
|
|
108
|
+
await privateDirectory(environment, run.directory);
|
|
109
|
+
await privateDirectory(environment, run.workspace);
|
|
110
|
+
sessionManager.appendSessionInfo(`Memory: ${basename(options.projectRoot)}`);
|
|
111
|
+
await run.record({});
|
|
112
|
+
return run;
|
|
113
|
+
}
|
|
114
|
+
async flushJournal() {
|
|
115
|
+
if (this.#journalFailure)
|
|
116
|
+
throw this.#journalFailure;
|
|
117
|
+
const entries = this.sessionManager.getEntries();
|
|
118
|
+
const text = entries.slice(this.#appended).map(entry => JSON.stringify(entry.type === 'message' && entry.message.role === 'assistant' && entry.message.errorMessage
|
|
119
|
+
? { ...entry, message: { ...entry.message, errorMessage: sanitizeMemoryDiagnostic(entry.message.errorMessage) } }
|
|
120
|
+
: entry)).join('\n');
|
|
121
|
+
if (!text)
|
|
122
|
+
return;
|
|
123
|
+
try {
|
|
124
|
+
await this.environment.runtime.files.append(this.sessionManager.getSessionFile(), new TextEncoder().encode(`${text}\n`));
|
|
125
|
+
this.#appended = entries.length;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
this.#journalFailure = error;
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
get metadata() { return this.#metadata; }
|
|
133
|
+
async record(update) {
|
|
134
|
+
const next = { ...this.#metadata, ...update };
|
|
135
|
+
this.sessionManager.appendCustomEntry(MEMORY_RUN_ENTRY, next);
|
|
136
|
+
await this.flushJournal();
|
|
137
|
+
const path = join(this.directory, 'manifest.json');
|
|
138
|
+
const temporary = `${path}.${randomUUID()}.tmp`;
|
|
139
|
+
try {
|
|
140
|
+
await this.environment.runtime.writeFile(temporary, new TextEncoder().encode(`${JSON.stringify(next, null, 2)}\n`), { noFollow: true, exclusive: true });
|
|
141
|
+
await this.environment.runtime.files.move(temporary, path);
|
|
142
|
+
this.#metadata = next;
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
await removeIfPresent(this.environment, temporary);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async model(model, thinking) {
|
|
149
|
+
await this.record({
|
|
150
|
+
phase: 'model',
|
|
151
|
+
...(model.provider && model.id ? {
|
|
152
|
+
model: { provider: model.provider, id: model.id, ...(thinking ? { thinking } : {}) },
|
|
153
|
+
} : {}),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async finish(status, error) {
|
|
157
|
+
await this.record({
|
|
158
|
+
status,
|
|
159
|
+
finishedAt: new Date().toISOString(),
|
|
160
|
+
...(error === undefined ? {} : { error: sanitizeMemoryDiagnostic(error) }),
|
|
161
|
+
});
|
|
162
|
+
await removeIfPresent(this.environment, this.workspace, { recursive: true });
|
|
163
|
+
await this.enforceRetention();
|
|
164
|
+
}
|
|
165
|
+
async enforceRetention() {
|
|
166
|
+
await pruneMemoryRuns(this.environment, {
|
|
167
|
+
...this.options,
|
|
168
|
+
protectedRunIds: [...(this.options.protectedRunIds ?? []), this.metadata.sessionId],
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
const MEMORY_RUN_METADATA_BYTES = 64 * 1_024;
|
|
173
|
+
const MEMORY_RUN_RECONCILE_SESSION_BYTES = 16 * 1_024 * 1_024;
|
|
174
|
+
const MEMORY_RUN_STATUSES = new Set([
|
|
175
|
+
'started', 'worker_completed', 'completed', 'failed', 'cancelled', 'blocked', 'interrupted',
|
|
176
|
+
]);
|
|
177
|
+
const MEMORY_RUN_PHASES = new Set(['materialize', 'model', 'validate', 'publish']);
|
|
178
|
+
async function readRetainedMetadata(environment, options, runId) {
|
|
179
|
+
const path = join(options.projectDirectory, 'runs', runId, 'manifest.json');
|
|
180
|
+
try {
|
|
181
|
+
for (const directory of [join(options.projectDirectory, 'runs'), join(options.projectDirectory, 'runs', runId)]) {
|
|
182
|
+
const info = await environment.runtime.files.inspect(directory);
|
|
183
|
+
if (info.kind !== 'directory')
|
|
184
|
+
throw new Error('Invalid retained memory directory');
|
|
185
|
+
}
|
|
186
|
+
const snapshot = await environment.runtime.files.snapshot(path, MEMORY_RUN_METADATA_BYTES);
|
|
187
|
+
if (snapshot.truncated)
|
|
188
|
+
throw new Error('Invalid retained memory metadata');
|
|
189
|
+
const value = JSON.parse(new TextDecoder().decode(snapshot.content));
|
|
190
|
+
if (!isMemoryRunMetadata(value, runId))
|
|
191
|
+
throw new Error('Invalid retained memory metadata');
|
|
192
|
+
return value;
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
if (isMissingFile(error))
|
|
196
|
+
return undefined;
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async function writeRetainedMetadata(environment, options, metadata) {
|
|
201
|
+
if (!isMemoryRunMetadata(metadata, metadata.sessionId))
|
|
202
|
+
throw new Error('Invalid retained memory metadata');
|
|
203
|
+
const directory = join(options.projectDirectory, 'runs', metadata.sessionId);
|
|
204
|
+
const stat = await environment.runtime.files.inspect(directory);
|
|
205
|
+
if (stat.kind !== 'directory')
|
|
206
|
+
throw new Error('Invalid retained memory run directory');
|
|
207
|
+
const path = join(directory, 'manifest.json');
|
|
208
|
+
await appendReconciledSessionMetadata(environment, options.sessionDirectory, metadata);
|
|
209
|
+
const temporary = `${path}.${randomUUID()}.tmp`;
|
|
210
|
+
try {
|
|
211
|
+
const text = `${JSON.stringify(metadata, null, 2)}\n`;
|
|
212
|
+
if (Buffer.byteLength(text, 'utf8') > MEMORY_RUN_METADATA_BYTES)
|
|
213
|
+
throw new Error('Invalid retained memory metadata');
|
|
214
|
+
await environment.runtime.writeFile(temporary, new TextEncoder().encode(text), { noFollow: true, exclusive: true });
|
|
215
|
+
await environment.runtime.files.move(temporary, path);
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
await removeIfPresent(environment, temporary);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function removeTerminalWorkspace(environment, projectDirectory, runId) {
|
|
222
|
+
const path = join(projectDirectory, 'runs', runId, 'workspace');
|
|
223
|
+
let info;
|
|
224
|
+
try {
|
|
225
|
+
info = await environment.runtime.files.inspect(path);
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
if (isMissingFile(error))
|
|
229
|
+
return;
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
if (info.kind === 'symlink') {
|
|
233
|
+
await removeIfPresent(environment, path);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
if (info.kind !== 'directory')
|
|
237
|
+
throw new Error('Invalid retained memory workspace');
|
|
238
|
+
await removeIfPresent(environment, path, { recursive: true });
|
|
239
|
+
}
|
|
240
|
+
async function appendReconciledSessionMetadata(environment, sessionDirectory, metadata) {
|
|
241
|
+
const directory = await environment.runtime.files.inspect(sessionDirectory);
|
|
242
|
+
if (directory.kind !== 'directory')
|
|
243
|
+
throw new Error('Invalid retained memory session directory');
|
|
244
|
+
const sessionPath = join(sessionDirectory, metadata.sessionFile);
|
|
245
|
+
const inspected = await inspectRetainedSession(environment, sessionPath, metadata);
|
|
246
|
+
const latest = inspected.latest;
|
|
247
|
+
if (latest?.status === metadata.status && latest.finishedAt === metadata.finishedAt)
|
|
248
|
+
return;
|
|
249
|
+
await environment.runtime.files.append(sessionPath, new TextEncoder().encode(`${JSON.stringify({
|
|
250
|
+
type: 'custom', customType: MEMORY_RUN_ENTRY, data: metadata, id: randomUUID(),
|
|
251
|
+
parentId: inspected.lastEntryId, timestamp: new Date().toISOString(),
|
|
252
|
+
})}\n`), inspected.stat);
|
|
253
|
+
}
|
|
254
|
+
async function inspectRetainedSession(environment, sessionPath, metadata) {
|
|
255
|
+
const snapshot = await environment.runtime.files.snapshot(sessionPath, MEMORY_RUN_RECONCILE_SESSION_BYTES);
|
|
256
|
+
if (snapshot.truncated)
|
|
257
|
+
throw new Error('Invalid or oversized retained memory session file');
|
|
258
|
+
const text = new TextDecoder().decode(snapshot.content);
|
|
259
|
+
const opened = snapshot.info;
|
|
260
|
+
if (!text.endsWith('\n'))
|
|
261
|
+
throw new Error('Retained memory session is incomplete');
|
|
262
|
+
const lines = text.slice(0, -1).split('\n');
|
|
263
|
+
const header = parseRecord(lines.shift());
|
|
264
|
+
if (header?.type !== 'session' || header.id !== metadata.sessionId || header.cwd !== metadata.projectRoot) {
|
|
265
|
+
throw new Error('Retained memory session identity does not match its metadata');
|
|
266
|
+
}
|
|
267
|
+
const ids = new Set();
|
|
268
|
+
let ownershipProven = false;
|
|
269
|
+
let latest;
|
|
270
|
+
let lastEntryId = null;
|
|
271
|
+
for (const line of lines) {
|
|
272
|
+
const entry = parseRecord(line);
|
|
273
|
+
if (!entry || typeof entry.type !== 'string' || typeof entry.id !== 'string' || ids.has(entry.id)
|
|
274
|
+
|| (entry.parentId !== null && (typeof entry.parentId !== 'string' || !ids.has(entry.parentId)))) {
|
|
275
|
+
throw new Error('Invalid retained memory session entries');
|
|
276
|
+
}
|
|
277
|
+
ids.add(entry.id);
|
|
278
|
+
lastEntryId = entry.id;
|
|
279
|
+
if (!ownershipProven) {
|
|
280
|
+
if (entry.type === 'custom' && entry.customType === MEMORY_RUN_ENTRY) {
|
|
281
|
+
if (!matchingMemoryMarker(entry.data, metadata))
|
|
282
|
+
throw new Error('Retained memory session ownership is unverified');
|
|
283
|
+
ownershipProven = true;
|
|
284
|
+
}
|
|
285
|
+
else if (!['session_info', 'model_change', 'thinking_level_change'].includes(entry.type)) {
|
|
286
|
+
throw new Error('Retained memory session ownership is unverified');
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (entry.type === 'custom' && entry.customType === MEMORY_RUN_ENTRY
|
|
290
|
+
&& matchingMemoryMarker(entry.data, metadata))
|
|
291
|
+
latest = entry.data;
|
|
292
|
+
}
|
|
293
|
+
if (!ownershipProven)
|
|
294
|
+
throw new Error('Retained memory session ownership is unverified');
|
|
295
|
+
return { stat: opened, lastEntryId, ...(latest ? { latest } : {}) };
|
|
296
|
+
}
|
|
297
|
+
function matchingMemoryMarker(value, metadata) {
|
|
298
|
+
return isMemoryRunMetadata(value, metadata.sessionId)
|
|
299
|
+
&& value.sessionFile === metadata.sessionFile
|
|
300
|
+
&& value.projectKey === metadata.projectKey
|
|
301
|
+
&& value.projectRoot === metadata.projectRoot;
|
|
302
|
+
}
|
|
303
|
+
function parseRecord(value) {
|
|
304
|
+
if (!value)
|
|
305
|
+
return undefined;
|
|
306
|
+
try {
|
|
307
|
+
const parsed = JSON.parse(value);
|
|
308
|
+
return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
309
|
+
? parsed
|
|
310
|
+
: undefined;
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
return undefined;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
function isMemoryRunMetadata(value, runId) {
|
|
317
|
+
if (!value || typeof value !== 'object')
|
|
318
|
+
return false;
|
|
319
|
+
const data = value;
|
|
320
|
+
return data.version === 1 && data.kind === 'memory' && data.sessionId === runId
|
|
321
|
+
&& validRunId(runId) && typeof data.sessionFile === 'string' && basename(data.sessionFile) === data.sessionFile
|
|
322
|
+
&& typeof data.projectKey === 'string' && typeof data.projectRoot === 'string'
|
|
323
|
+
&& typeof data.startedAt === 'string' && Number.isFinite(Date.parse(data.startedAt))
|
|
324
|
+
&& typeof data.status === 'string' && MEMORY_RUN_STATUSES.has(data.status)
|
|
325
|
+
&& typeof data.phase === 'string' && MEMORY_RUN_PHASES.has(data.phase)
|
|
326
|
+
&& typeof data.baseFingerprint === 'string' && Array.isArray(data.checkpoints)
|
|
327
|
+
&& data.checkpoints.every((checkpoint) => checkpoint && typeof checkpoint === 'object'
|
|
328
|
+
&& typeof checkpoint.sessionId === 'string' && typeof checkpoint.sessionFile === 'string'
|
|
329
|
+
&& (checkpoint.leafId === null || typeof checkpoint.leafId === 'string')
|
|
330
|
+
&& typeof checkpoint.transcriptDigest === 'string')
|
|
331
|
+
&& (data.finishedAt === undefined || (typeof data.finishedAt === 'string' && Number.isFinite(Date.parse(data.finishedAt))))
|
|
332
|
+
&& (data.error === undefined || typeof data.error === 'string');
|
|
333
|
+
}
|
|
334
|
+
function validRunId(value) {
|
|
335
|
+
return /^[a-zA-Z0-9_-]{1,128}$/u.test(value);
|
|
336
|
+
}
|
|
337
|
+
function isMissingFile(error) {
|
|
338
|
+
return error !== null && typeof error === 'object' && 'code' in error && error.code === 'ENOENT';
|
|
339
|
+
}
|
|
340
|
+
export function memoryRunUsage(entries) {
|
|
341
|
+
const result = {};
|
|
342
|
+
for (const entry of entries) {
|
|
343
|
+
const usage = entry.type === 'compaction' ? entry.usage
|
|
344
|
+
: entry.type === 'message' && entry.message.role === 'assistant' ? entry.message.usage : undefined;
|
|
345
|
+
if (!usage)
|
|
346
|
+
continue;
|
|
347
|
+
for (const key of ['input', 'output', 'cacheRead', 'cacheWrite', 'totalTokens']) {
|
|
348
|
+
const value = usage[key];
|
|
349
|
+
if (typeof value === 'number' && Number.isFinite(value) && value >= 0)
|
|
350
|
+
result[key] = (result[key] ?? 0) + value;
|
|
351
|
+
}
|
|
352
|
+
const cost = usage.cost?.total;
|
|
353
|
+
if (typeof cost === 'number' && Number.isFinite(cost) && cost >= 0)
|
|
354
|
+
result.costUsd = (result.costUsd ?? 0) + cost;
|
|
355
|
+
}
|
|
356
|
+
return Object.keys(result).length > 0 ? result : undefined;
|
|
357
|
+
}
|
|
358
|
+
async function privateDirectory(environment, path) {
|
|
359
|
+
await environment.runtime.files.ensurePrivateDirectory(path, { recursive: true });
|
|
360
|
+
}
|
|
361
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/local/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAA0B,MAAM,aAAa,CAAC;AAG/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AA+DnD,MAAM,OAAO,cAAc;IAQI;IAAqC;IAPzD,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,cAAc,CAAiB;IACxC,SAAS,CAAoB;IAC7B,SAAS,GAAG,CAAC,CAAC;IACd,eAAe,CAAU;IAEzB,YAA6B,WAA0B,EAAW,OAA+B,EAC/F,cAA8B,EAC9B,QAA2B;QAFA,gBAAW,GAAX,WAAW,CAAe;QAAW,YAAO,GAAP,OAAO,CAAwB;QAI/F,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAA0B,EAAE,OAAiH,EAClK,OAA8G;QAE9G,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACvH,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB;YAAE,OAAO;QACpF,MAAM,MAAM,GAAoB,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW;YACxE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5D,MAAM,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE;YAChD,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;YAC3C,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,6DAA6D,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzG,CAAC,CAAC;QACH,MAAM,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAA0B,EAAE,OAAiH,EAC3K,YAA+B,EAC/B,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAEhB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACpF,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,CAAC,KAAK,CAAC;gBAAE,OAAO;YACjC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACtE,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;mBAC9D,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC;gBAAE,SAAS;YACzF,MAAM,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE;gBAChD,GAAG,QAAQ;gBACX,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gBACvC,KAAK,EAAE,4FAA4F;aACpG,CAAC,CAAC;YACH,MAAM,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAA0B,EAAE,OAA+B;QAC7E,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5E,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAG,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpH,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5J,MAAM,cAAc,GAAG,OAAO,CAAC;QAC/B,cAAc,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;QAClD,cAAc,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC9D,MAAM,QAAQ,GAAsB;YAClC,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE;YACxC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC;YAClC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/E,MAAM,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,cAAc,CAAC,iBAAiB,CAAC,WAAW,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,eAAe;YAAE,MAAM,IAAI,CAAC,eAAe,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CACpE,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY;YAC1F,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE;YACjH,CAAC,CAAC,KAAK,CACV,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAG,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3H,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAwB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,KAAK,CAAC,MAAM,CAAC,MAAyG;QACpH,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzJ,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAyD,EAAE,QAAiB;QACtF,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,KAAK,EAAE,OAAO;YACd,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;aACrF,CAAC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAuB,EAAE,KAAe;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,MAAM;YACN,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3E,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE;YACtC,GAAG,IAAI,CAAC,OAAO;YACf,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;SACpF,CAAC,CAAC;IACL,CAAC;CACF;AAGD,MAAM,yBAAyB,GAAG,EAAE,GAAG,KAAK,CAAC;AAE7C,MAAM,kCAAkC,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAkB;IACnD,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa;CAC5F,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAGnG,KAAK,UAAU,oBAAoB,CAAC,WAA0B,EAAE,OAAyD,EACvH,KAAa;IAEb,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC5E,IAAI,CAAC;QACH,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAChH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAC5F,IAAI,QAAQ,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,qBAAqB,CAAC,WAA0B,EAAE,OAA8E,EAC7I,QAA2B;IAE3B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5G,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC9C,MAAM,+BAA+B,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACtD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,yBAAyB;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACrH,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpH,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,uBAAuB,CAAC,WAA0B,EAAE,gBAAwB,EAAE,KAAa;IACxG,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChE,IAAI,IAAoD,CAAC;IACzD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpF,MAAM,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC;AAGD,KAAK,UAAU,+BAA+B,CAAC,WAA0B,EAAE,gBAAwB,EAAE,QAA2B;IAC9H,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7E,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjG,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QAAE,OAAO;IAC5F,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9F,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;QAC9E,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAGD,KAAK,UAAU,sBAAsB,CAAC,WAA0B,EAAE,WAAmB,EACnF,QAA2B;IAE3B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;IAC5G,IAAI,QAAQ,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1G,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,MAA8C,CAAC;IACnD,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;eAC5F,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;gBACrE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACpH,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,IAAI,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3F,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,gBAAgB;eAC/D,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACzF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAGD,SAAS,oBAAoB,CAAC,KAAc,EAAE,QAA2B;IACvE,OAAO,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC;WAChD,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;WAC1C,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;WACxC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CAAC;AAClD,CAAC;AAGD,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5E,CAAC,CAAC,MAAiC;YACnC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAMD,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAa;IACxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,KAAmC,CAAC;IACjD,OAAO,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;WAC1E,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW;WAC5G,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;WAC3E,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;WACjF,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAyB,CAAC;WAC1F,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAuB,CAAC;WACrF,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;WAC3E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;eACjF,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ;eACtF,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC;eACrE,OAAO,UAAU,CAAC,gBAAgB,KAAK,QAAQ,CAAC;WAClD,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;WACxH,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACpE,CAAC;AAGD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAGD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnG,CAAC;AAGD,MAAM,UAAU,cAAc,CAAC,OAAiD;IAC9E,MAAM,MAAM,GAAkD,EAAE,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YACrD,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAU,EAAE,CAAC;YACzF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAClH,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACpH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAGD,KAAK,UAAU,gBAAgB,CAAC,WAA0B,EAAE,IAAY;IACtE,MAAM,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { MemoryContext } from './context.js';
|
|
2
|
+
import { type MemoryArtifact, type MemorySnapshot, type SessionCheckpoint } from '../index.js';
|
|
3
|
+
import type { LocalMemoryProject } from './project.js';
|
|
4
|
+
import type { LocalMemoryLease } from './lease.js';
|
|
5
|
+
export declare const MEMORY_ATTEMPT_TIMEOUT_MS: number;
|
|
6
|
+
export declare const MEMORY_RETRY_DELAYS_MS: readonly [60000, 300000];
|
|
7
|
+
export interface StoredCheckpoint {
|
|
8
|
+
readonly checkpoint: SessionCheckpoint;
|
|
9
|
+
readonly recordedAt: string;
|
|
10
|
+
readonly acceptedUpdates?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ProcessedCheckpoint extends StoredCheckpoint {
|
|
13
|
+
readonly processedAt: string;
|
|
14
|
+
readonly memoryFingerprint: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const STATE_VERSION: 1;
|
|
17
|
+
export interface LocalMemoryState {
|
|
18
|
+
readonly version: typeof STATE_VERSION;
|
|
19
|
+
readonly memoryFingerprint: string;
|
|
20
|
+
readonly pending: Readonly<Record<string, StoredCheckpoint>>;
|
|
21
|
+
readonly processed: Readonly<Record<string, ProcessedCheckpoint>>;
|
|
22
|
+
readonly updatedAt: string;
|
|
23
|
+
}
|
|
24
|
+
export interface LocalMemoryProcessingSnapshot {
|
|
25
|
+
readonly artifact: MemoryArtifact;
|
|
26
|
+
readonly fingerprint: string;
|
|
27
|
+
readonly checkpoints: readonly StoredCheckpoint[];
|
|
28
|
+
readonly state: LocalMemoryState;
|
|
29
|
+
}
|
|
30
|
+
export interface LocalMemoryAttemptIdentity {
|
|
31
|
+
readonly runId: string;
|
|
32
|
+
readonly generation: number;
|
|
33
|
+
}
|
|
34
|
+
export interface LocalMemoryAttempt extends LocalMemoryAttemptIdentity {
|
|
35
|
+
readonly leaseToken: string;
|
|
36
|
+
readonly startedAt: string;
|
|
37
|
+
readonly deadlineAt: string;
|
|
38
|
+
readonly baseFingerprint: string;
|
|
39
|
+
readonly checkpoints: readonly StoredCheckpoint[];
|
|
40
|
+
readonly published?: {
|
|
41
|
+
readonly fingerprint: string;
|
|
42
|
+
readonly at: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface BeginLocalMemoryAttempt {
|
|
46
|
+
readonly runId: string;
|
|
47
|
+
readonly baseFingerprint: string;
|
|
48
|
+
readonly checkpoints: readonly StoredCheckpoint[];
|
|
49
|
+
readonly deadlineAt?: string;
|
|
50
|
+
readonly bypassRetryAt?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export type LocalMemoryAttemptOutcome = {
|
|
53
|
+
readonly status: 'success';
|
|
54
|
+
} | {
|
|
55
|
+
readonly status: 'failure';
|
|
56
|
+
readonly reason: string;
|
|
57
|
+
} | {
|
|
58
|
+
readonly status: 'cancelled';
|
|
59
|
+
readonly reason?: string;
|
|
60
|
+
};
|
|
61
|
+
export interface LocalMemoryControl {
|
|
62
|
+
readonly version: 1;
|
|
63
|
+
readonly generation: number;
|
|
64
|
+
readonly consecutiveFailures: number;
|
|
65
|
+
readonly nextRetryAt?: string;
|
|
66
|
+
readonly autoDisabled?: {
|
|
67
|
+
readonly reason: string;
|
|
68
|
+
readonly runId: string;
|
|
69
|
+
readonly at: string;
|
|
70
|
+
};
|
|
71
|
+
readonly lastDisabledRunId?: string;
|
|
72
|
+
readonly activeAttempt?: LocalMemoryAttempt;
|
|
73
|
+
readonly lastOutcome?: LocalMemoryAttemptIdentity & {
|
|
74
|
+
readonly status: LocalMemoryAttemptOutcome['status'];
|
|
75
|
+
readonly at: string;
|
|
76
|
+
};
|
|
77
|
+
readonly updatedAt: string;
|
|
78
|
+
}
|
|
79
|
+
export declare class LocalMemoryControlError extends Error {
|
|
80
|
+
constructor(path: string);
|
|
81
|
+
}
|
|
82
|
+
export interface LocalMemoryStoreOptions {
|
|
83
|
+
readonly memoryPath?: string;
|
|
84
|
+
readonly retryDelaysMs?: readonly [number, number];
|
|
85
|
+
}
|
|
86
|
+
export declare class LocalMemoryStore {
|
|
87
|
+
#private;
|
|
88
|
+
readonly environment: MemoryContext;
|
|
89
|
+
readonly agentDir: string;
|
|
90
|
+
readonly project: LocalMemoryProject;
|
|
91
|
+
readonly projectDirectory: string;
|
|
92
|
+
readonly currentDirectory: string;
|
|
93
|
+
readonly stagingDirectory: string;
|
|
94
|
+
readonly statePath: string;
|
|
95
|
+
readonly controlPath: string;
|
|
96
|
+
readonly projectionName = ".memory";
|
|
97
|
+
constructor(environment: MemoryContext, agentDir: string, project: LocalMemoryProject, options?: LocalMemoryStoreOptions);
|
|
98
|
+
initialize(now?: number): Promise<void>;
|
|
99
|
+
readCurrent(): Promise<MemorySnapshot>;
|
|
100
|
+
projectTo(sessionStorageRoot: string, snapshot?: MemorySnapshot): Promise<MemorySnapshot>;
|
|
101
|
+
recordCheckpoint(checkpoint: SessionCheckpoint): Promise<boolean>;
|
|
102
|
+
status(): Promise<LocalMemoryState>;
|
|
103
|
+
pendingAcceptedUpdates(include?: (checkpoint: SessionCheckpoint) => boolean): Promise<number>;
|
|
104
|
+
readControl(): Promise<LocalMemoryControl>;
|
|
105
|
+
beginAttempt(lease: LocalMemoryLease, input: BeginLocalMemoryAttempt, now?: number): Promise<LocalMemoryAttempt | undefined>;
|
|
106
|
+
finishAttempt(lease: LocalMemoryLease | undefined, attempt: LocalMemoryAttemptIdentity, outcome: LocalMemoryAttemptOutcome, now?: number): Promise<LocalMemoryControl>;
|
|
107
|
+
resetProjectControl(now?: number, isLocallyEligible?: () => boolean): Promise<LocalMemoryControl>;
|
|
108
|
+
cancelActiveAttempt(now?: number): Promise<LocalMemoryControl>;
|
|
109
|
+
reconcileAbandonedAttempt(lease: LocalMemoryLease, now?: number): Promise<LocalMemoryControl>;
|
|
110
|
+
processingSnapshot(maxSessions?: number, include?: (checkpoint: SessionCheckpoint) => boolean): Promise<LocalMemoryProcessingSnapshot>;
|
|
111
|
+
createStagingDirectory(): Promise<string>;
|
|
112
|
+
commit(lease: LocalMemoryLease, baseFingerprint: string, artifact: MemoryArtifact, processed: readonly StoredCheckpoint[], attempt?: LocalMemoryAttemptIdentity): Promise<string>;
|
|
113
|
+
clearStaging(): Promise<void>;
|
|
114
|
+
get memoryPath(): string;
|
|
115
|
+
readState(): Promise<LocalMemoryState>;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/local/store.ts"],"names":[],"mappings":"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"}
|