@oharness/engine 0.5.1 → 0.7.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/dist/agent/agent.d.ts +12 -0
- package/dist/agent/agent.js +3 -0
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/memory-backup.d.ts +2 -0
- package/dist/agent/memory-backup.js +9 -1
- package/dist/agent/memory-backup.js.map +1 -1
- package/dist/agent/memory-limits.js +8 -1
- package/dist/agent/memory-limits.js.map +1 -1
- package/dist/agent/memory-usage.d.ts +1 -1
- package/dist/agent/memory-usage.js +2 -3
- package/dist/agent/memory-usage.js.map +1 -1
- package/dist/agent/memory.d.ts +3 -0
- package/dist/agent/memory.js +6 -18
- package/dist/agent/memory.js.map +1 -1
- package/dist/agent/session.d.ts +9 -0
- package/dist/agent/session.js +14 -2
- package/dist/agent/session.js.map +1 -1
- package/dist/agent/settings.js +3 -2
- package/dist/agent/settings.js.map +1 -1
- package/dist/agent/store.d.ts +45 -4
- package/dist/agent/store.js +198 -25
- package/dist/agent/store.js.map +1 -1
- package/dist/artifacts/files.d.ts +52 -0
- package/dist/artifacts/files.js +169 -0
- package/dist/artifacts/files.js.map +1 -0
- package/dist/auth/store.js +3 -2
- package/dist/auth/store.js.map +1 -1
- package/dist/config-files.js +3 -2
- package/dist/config-files.js.map +1 -1
- package/dist/config.d.ts +6 -1
- package/dist/config.js +10 -2
- package/dist/config.js.map +1 -1
- package/dist/harness.d.ts +62 -1
- package/dist/harness.js +174 -12
- package/dist/harness.js.map +1 -1
- package/dist/paths.d.ts +5 -0
- package/dist/paths.js +21 -3
- package/dist/paths.js.map +1 -1
- package/dist/providers/builtin.d.ts +2 -0
- package/dist/providers/builtin.js +38 -24
- package/dist/providers/builtin.js.map +1 -1
- package/dist/providers/catalog.d.ts +5 -0
- package/dist/providers/catalog.js +32 -1
- package/dist/providers/catalog.js.map +1 -1
- package/dist/providers/catalog.json +241 -123
- package/dist/providers/discovery.js +17 -0
- package/dist/providers/discovery.js.map +1 -1
- package/dist/providers/models-dev.d.ts +89 -0
- package/dist/providers/models-dev.js +160 -0
- package/dist/providers/models-dev.js.map +1 -0
- package/dist/providers/models-dev.json +821 -0
- package/dist/providers/registry.d.ts +12 -0
- package/dist/providers/registry.js +33 -1
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/types.d.ts +21 -0
- package/dist/providers/types.js +16 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/runtime-plugins/builtin/memory-migrate.d.ts +5 -21
- package/dist/runtime-plugins/builtin/memory-migrate.js +5 -125
- package/dist/runtime-plugins/builtin/memory-migrate.js.map +1 -1
- package/dist/runtime-plugins/builtin/memory.d.ts +3 -0
- package/dist/runtime-plugins/builtin/memory.js +12 -10
- package/dist/runtime-plugins/builtin/memory.js.map +1 -1
- package/dist/schedule/clock.d.ts +76 -0
- package/dist/schedule/clock.js +147 -0
- package/dist/schedule/clock.js.map +1 -0
- package/dist/schedule/cron.d.ts +9 -0
- package/dist/schedule/cron.js +18 -0
- package/dist/schedule/cron.js.map +1 -1
- package/dist/schedule/lock.d.ts +38 -0
- package/dist/schedule/lock.js +100 -0
- package/dist/schedule/lock.js.map +1 -0
- package/dist/schedule/runner.d.ts +67 -0
- package/dist/schedule/runner.js +100 -0
- package/dist/schedule/runner.js.map +1 -0
- package/dist/schedule/scheduler.d.ts +56 -15
- package/dist/schedule/scheduler.js +80 -107
- package/dist/schedule/scheduler.js.map +1 -1
- package/dist/storage/kv.js +3 -2
- package/dist/storage/kv.js.map +1 -1
- package/dist/storage/project.d.ts +26 -0
- package/dist/storage/project.js +74 -15
- package/dist/storage/project.js.map +1 -1
- package/dist/tools/builtin/routine.d.ts +31 -0
- package/dist/tools/builtin/routine.js +70 -0
- package/dist/tools/builtin/routine.js.map +1 -0
- package/dist/util/fs.d.ts +6 -0
- package/dist/util/fs.js +22 -0
- package/dist/util/fs.js.map +1 -0
- package/package.json +3 -3
package/dist/agent/session.js
CHANGED
|
@@ -33,6 +33,13 @@ export class Session {
|
|
|
33
33
|
costUsd = 0;
|
|
34
34
|
/** Session this one was branched from, surfaced in meta and `/sessions`. */
|
|
35
35
|
forkedFrom;
|
|
36
|
+
/**
|
|
37
|
+
* The routine that started this session, if one did. Set at creation and
|
|
38
|
+
* never changed: a session is a routine's run for good, which is what lets
|
|
39
|
+
* the sidebar keep those runs together instead of mixed into the project's
|
|
40
|
+
* own work.
|
|
41
|
+
*/
|
|
42
|
+
routine;
|
|
36
43
|
turns = 0;
|
|
37
44
|
/**
|
|
38
45
|
* Messages discarded as an incomplete tail when this session was loaded.
|
|
@@ -75,6 +82,8 @@ export class Session {
|
|
|
75
82
|
seedArtifactLog = rehydrateArtifacts(getArtifactStore(this.state), this.messages) > 0;
|
|
76
83
|
}
|
|
77
84
|
this.title = opts.title;
|
|
85
|
+
if (opts.routine)
|
|
86
|
+
this.routine = opts.routine;
|
|
78
87
|
this.effort = opts.effort;
|
|
79
88
|
this.permissions = new PermissionEngine(opts.permissionMode ?? "default", opts.permissionRules ?? {});
|
|
80
89
|
this.store = opts.store === false ? undefined : (opts.store ?? new SessionStore());
|
|
@@ -87,16 +96,17 @@ export class Session {
|
|
|
87
96
|
if (this.store) {
|
|
88
97
|
const store = this.store;
|
|
89
98
|
const id = this.id;
|
|
99
|
+
const cwd = this.cwd;
|
|
90
100
|
const artifacts = getArtifactStore(this.state);
|
|
91
101
|
artifacts.onRevision = (revision) => {
|
|
92
|
-
void store.appendArtifactRevision(id, revision).catch(() => { });
|
|
102
|
+
void store.appendArtifactRevision(id, revision, { cwd }).catch(() => { });
|
|
93
103
|
};
|
|
94
104
|
// One-time migration for a session whose artifacts came from the
|
|
95
105
|
// transcript. Ordinary appends, so a crash mid-way leaves a shorter log
|
|
96
106
|
// rather than a corrupt one, and the next resume replays and seeds again.
|
|
97
107
|
if (seedArtifactLog) {
|
|
98
108
|
for (const revision of artifacts.export()) {
|
|
99
|
-
void store.appendArtifactRevision(id, revision).catch(() => { });
|
|
109
|
+
void store.appendArtifactRevision(id, revision, { cwd }).catch(() => { });
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
}
|
|
@@ -118,6 +128,7 @@ export class Session {
|
|
|
118
128
|
messages: record.messages,
|
|
119
129
|
title: record.meta.title,
|
|
120
130
|
effort: opts.effort ?? record.meta.effort,
|
|
131
|
+
...(record.meta.routine ? { routine: record.meta.routine } : {}),
|
|
121
132
|
store,
|
|
122
133
|
});
|
|
123
134
|
session.usage = record.meta.usage;
|
|
@@ -227,6 +238,7 @@ export class Session {
|
|
|
227
238
|
// Lineage has to survive a persist/reload round trip, or a forked
|
|
228
239
|
// session forgets its parent the moment it is resumed.
|
|
229
240
|
...(this.forkedFrom ? { forkedFrom: this.forkedFrom } : {}),
|
|
241
|
+
...(this.routine ? { routine: this.routine } : {}),
|
|
230
242
|
};
|
|
231
243
|
}
|
|
232
244
|
async persist() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/agent/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG/F,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/agent/session.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/settings.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { mkdir, readFile,
|
|
1
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { userPath } from "../paths.js";
|
|
4
4
|
import { parseJson } from "../util/json.js";
|
|
5
|
+
import { renameWithRetry } from "../util/fs.js";
|
|
5
6
|
export function settingsPaths(cwd, home) {
|
|
6
7
|
// The user scope goes through the shared resolver, so `OHARNESS_HOME`
|
|
7
8
|
// redirects settings along with everything else rather than settings being
|
|
@@ -92,7 +93,7 @@ export class SettingsStore {
|
|
|
92
93
|
// settings file that silently drops every rule in it.
|
|
93
94
|
const temp = tempName(file);
|
|
94
95
|
await writeFile(temp, `${JSON.stringify(settings, null, 2)}\n`, "utf8");
|
|
95
|
-
await
|
|
96
|
+
await renameWithRetry(temp, file);
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
function dedupe(values) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/agent/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/agent/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/store.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface SessionMeta {
|
|
|
19
19
|
forkedFrom?: string;
|
|
20
20
|
/** How many messages the parent had at the branch point. */
|
|
21
21
|
forkedAt?: number;
|
|
22
|
+
/** The routine whose run this session is, when it is one. */
|
|
23
|
+
routine?: string;
|
|
22
24
|
/**
|
|
23
25
|
* The project the session belongs to — a repository, not a path. Sessions
|
|
24
26
|
* recorded before this existed are assigned one when they are read.
|
|
@@ -64,7 +66,7 @@ export interface ArchivedMessage {
|
|
|
64
66
|
*
|
|
65
67
|
* storage/migration how many layout changes have run
|
|
66
68
|
* storage/device.json this machine's id, for merges
|
|
67
|
-
* storage/project/<projectId>.json a
|
|
69
|
+
* storage/project/<projectId>.json a project, by its stable manifest id
|
|
68
70
|
* storage/session/<projectId>/<id>.json session metadata
|
|
69
71
|
* storage/message/<id>.jsonl the transcript, one record a line
|
|
70
72
|
* storage/archive/<id>.jsonl what compaction dropped
|
|
@@ -90,6 +92,12 @@ export interface StoreChange {
|
|
|
90
92
|
}
|
|
91
93
|
export declare class SessionStore {
|
|
92
94
|
private readonly kv;
|
|
95
|
+
/**
|
|
96
|
+
* One artifact write at a time per session. Revisions are appended
|
|
97
|
+
* fire-and-forget, and two in flight for the same artifact would each move
|
|
98
|
+
* "the newest file" into history — one of them the other's.
|
|
99
|
+
*/
|
|
100
|
+
private readonly artifactQueues;
|
|
93
101
|
private readonly legacyRoot;
|
|
94
102
|
private ready;
|
|
95
103
|
private deviceId;
|
|
@@ -179,14 +187,17 @@ export declare class SessionStore {
|
|
|
179
187
|
* nowhere: a restart brought the model's version back as the newest one and
|
|
180
188
|
* said nothing about what it had replaced.
|
|
181
189
|
*/
|
|
182
|
-
appendArtifactRevision(id: string, revision: StoredArtifactRevision
|
|
190
|
+
appendArtifactRevision(id: string, revision: StoredArtifactRevision, opts?: {
|
|
191
|
+
cwd?: string;
|
|
192
|
+
}): Promise<void>;
|
|
183
193
|
/**
|
|
184
194
|
* Take artifact revisions written on another device.
|
|
185
195
|
*
|
|
186
196
|
* The counterpart to `mergeRecords`, and deliberately its shape: dedupe on
|
|
187
197
|
* the record id, append what is new, and let the reader fold the file
|
|
188
198
|
* together. A revision already held costs a line and changes nothing, which
|
|
189
|
-
* is what makes a retried pull safe.
|
|
199
|
+
* is what makes a retried pull safe. Content arrives inline and is put in
|
|
200
|
+
* this machine's copy of the project, the same as a local revision.
|
|
190
201
|
*/
|
|
191
202
|
mergeArtifactRevisions(id: string, incoming: StoredArtifactRevision[]): Promise<number>;
|
|
192
203
|
/**
|
|
@@ -201,14 +212,35 @@ export declare class SessionStore {
|
|
|
201
212
|
*/
|
|
202
213
|
artifactSessions(): Promise<string[]>;
|
|
203
214
|
/**
|
|
204
|
-
* Every artifact revision recorded for a session, oldest first
|
|
215
|
+
* Every artifact revision recorded for a session, oldest first, with its
|
|
216
|
+
* content — read from the project's ARTIFACTS folder where it lives there.
|
|
205
217
|
*
|
|
206
218
|
* `maxBytes` reads the tail, for a caller that is building a listing rather
|
|
207
219
|
* than restoring a session: the newest lines are the ones a listing shows,
|
|
208
220
|
* and a log with a megabyte of superseded revisions in it should not cost a
|
|
209
221
|
* megabyte to summarise.
|
|
222
|
+
*
|
|
223
|
+
* A full read also moves content still held inline into the project, once,
|
|
224
|
+
* for a session whose revisions were recorded before content moved there.
|
|
210
225
|
*/
|
|
211
226
|
artifactRevisions(id: string, maxBytes?: number): Promise<StoredArtifactRevision[]>;
|
|
227
|
+
/** The index lines as written, content inline or not. */
|
|
228
|
+
private artifactIndex;
|
|
229
|
+
/**
|
|
230
|
+
* The index line for a revision: its content moved into the project when
|
|
231
|
+
* the session has one and the content is a kind that makes a file, inline
|
|
232
|
+
* otherwise.
|
|
233
|
+
*/
|
|
234
|
+
private indexArtifactRevision;
|
|
235
|
+
/**
|
|
236
|
+
* Move a session's inline artifact content into its project's ARTIFACTS
|
|
237
|
+
* folder, then rewrite the index to point at the files.
|
|
238
|
+
*
|
|
239
|
+
* Files first and the index last, so an interruption leaves the inline
|
|
240
|
+
* copy still in place and the next read tries again.
|
|
241
|
+
*/
|
|
242
|
+
private moveArtifactsToProject;
|
|
243
|
+
private serialArtifacts;
|
|
212
244
|
/**
|
|
213
245
|
* Record one permission decision, with the session it happened in.
|
|
214
246
|
*
|
|
@@ -285,6 +317,15 @@ export declare class SessionStore {
|
|
|
285
317
|
* them are now pointing at nothing.
|
|
286
318
|
*/
|
|
287
319
|
deleteIn(cwd: string): Promise<string[]>;
|
|
320
|
+
/**
|
|
321
|
+
* Update machine-local path hints after a project directory is renamed.
|
|
322
|
+
*
|
|
323
|
+
* Token/cost timestamps are deliberately preserved: moving a folder did
|
|
324
|
+
* not spend anything and must not make old usage appear in today's window.
|
|
325
|
+
* The transcript and every append-only side log stay where they are because
|
|
326
|
+
* they are keyed by the stable project/session ids, not by cwd.
|
|
327
|
+
*/
|
|
328
|
+
relocateProject(project: string, oldCwd: string, newCwd: string): Promise<number>;
|
|
288
329
|
rename(id: string, title: string): Promise<boolean>;
|
|
289
330
|
/** Sessions branched from a given one. */
|
|
290
331
|
children(id: string): Promise<SessionMeta[]>;
|
package/dist/agent/store.js
CHANGED
|
@@ -10,6 +10,7 @@ import { projectId } from "../storage/project.js";
|
|
|
10
10
|
import { asRecord, messageId, orderRecords } from "../storage/records.js";
|
|
11
11
|
import { asAuditEntry } from "./permissions.js";
|
|
12
12
|
import { asArtifactRevision } from "../artifacts/store.js";
|
|
13
|
+
import { allocateArtifactFile, artifactExtension, artifactRoot, placeArtifactRevision, readArtifactRevision, } from "../artifacts/files.js";
|
|
13
14
|
/**
|
|
14
15
|
* Cap on how much of an archive a single `recall` loads. Generous enough that
|
|
15
16
|
* ordinary sessions read in full, small enough that a runaway one cannot
|
|
@@ -22,8 +23,29 @@ export const MAX_ARCHIVE_READ_BYTES = 8 * 1024 * 1024;
|
|
|
22
23
|
* recent end of it, not a session's entire history of tool calls.
|
|
23
24
|
*/
|
|
24
25
|
export const MAX_DECISION_READ_BYTES = 1024 * 1024;
|
|
26
|
+
function asIndexedRevision(value) {
|
|
27
|
+
if (!value || typeof value !== "object")
|
|
28
|
+
return undefined;
|
|
29
|
+
const line = value;
|
|
30
|
+
if (typeof line.file === "string" && typeof line.content !== "string") {
|
|
31
|
+
// Validated through the one reader that knows the shape, with a stand-in
|
|
32
|
+
// for the content it does not have.
|
|
33
|
+
const shaped = asArtifactRevision({ ...line, content: "" });
|
|
34
|
+
if (!shaped)
|
|
35
|
+
return undefined;
|
|
36
|
+
const { content: _content, ...rest } = shaped;
|
|
37
|
+
return { ...rest, file: line.file };
|
|
38
|
+
}
|
|
39
|
+
return asArtifactRevision(value);
|
|
40
|
+
}
|
|
25
41
|
export class SessionStore {
|
|
26
42
|
kv;
|
|
43
|
+
/**
|
|
44
|
+
* One artifact write at a time per session. Revisions are appended
|
|
45
|
+
* fire-and-forget, and two in flight for the same artifact would each move
|
|
46
|
+
* "the newest file" into history — one of them the other's.
|
|
47
|
+
*/
|
|
48
|
+
artifactQueues = new Map();
|
|
27
49
|
legacyRoot;
|
|
28
50
|
ready;
|
|
29
51
|
deviceId;
|
|
@@ -198,7 +220,7 @@ export class SessionStore {
|
|
|
198
220
|
return;
|
|
199
221
|
await this.kv.write(["project", id], {
|
|
200
222
|
id,
|
|
201
|
-
vcs: id.startsWith("dir-") ? "none" : "git",
|
|
223
|
+
vcs: id.startsWith("dir-") || id.startsWith("project_") ? "none" : "git",
|
|
202
224
|
worktree: cwd,
|
|
203
225
|
createdAt: existing?.createdAt ?? now,
|
|
204
226
|
updatedAt: now,
|
|
@@ -238,22 +260,27 @@ export class SessionStore {
|
|
|
238
260
|
* nowhere: a restart brought the model's version back as the newest one and
|
|
239
261
|
* said nothing about what it had replaced.
|
|
240
262
|
*/
|
|
241
|
-
async appendArtifactRevision(id, revision) {
|
|
263
|
+
async appendArtifactRevision(id, revision, opts = {}) {
|
|
242
264
|
await this.prepare();
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
265
|
+
await this.serialArtifacts(id, async () => {
|
|
266
|
+
// The same three fields `appendMessage` mints, and the same counter: the
|
|
267
|
+
// mirror tracks one watermark per session, so a revision that numbered
|
|
268
|
+
// itself in a private sequence would either be pushed forever or never.
|
|
269
|
+
const meta = await this.findMeta(id);
|
|
270
|
+
const seq = (meta?.seq ?? (await this.records(id)).length) + 1;
|
|
271
|
+
const stored = {
|
|
272
|
+
id: `art_${shortId(8)}`,
|
|
273
|
+
seq,
|
|
274
|
+
device: await this.device(),
|
|
275
|
+
...revision,
|
|
276
|
+
};
|
|
277
|
+
// The session's cwd from the caller when it has one: the first revision
|
|
278
|
+
// of a new session can land before its metadata does.
|
|
279
|
+
const line = await this.indexArtifactRevision(id, stored, opts.cwd ?? meta?.cwd);
|
|
280
|
+
await this.kv.append(["artifact", id], [line]);
|
|
281
|
+
if (meta)
|
|
282
|
+
await this.writeMeta({ ...meta, seq });
|
|
283
|
+
});
|
|
257
284
|
}
|
|
258
285
|
/**
|
|
259
286
|
* Take artifact revisions written on another device.
|
|
@@ -261,18 +288,24 @@ export class SessionStore {
|
|
|
261
288
|
* The counterpart to `mergeRecords`, and deliberately its shape: dedupe on
|
|
262
289
|
* the record id, append what is new, and let the reader fold the file
|
|
263
290
|
* together. A revision already held costs a line and changes nothing, which
|
|
264
|
-
* is what makes a retried pull safe.
|
|
291
|
+
* is what makes a retried pull safe. Content arrives inline and is put in
|
|
292
|
+
* this machine's copy of the project, the same as a local revision.
|
|
265
293
|
*/
|
|
266
294
|
async mergeArtifactRevisions(id, incoming) {
|
|
267
295
|
if (incoming.length === 0)
|
|
268
296
|
return 0;
|
|
269
297
|
await this.prepare();
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
298
|
+
return this.serialArtifacts(id, async () => {
|
|
299
|
+
const held = new Set((await this.artifactIndex(id)).map((revision) => revision.id).filter(Boolean));
|
|
300
|
+
const fresh = incoming.filter((revision) => !revision.id || !held.has(revision.id));
|
|
301
|
+
if (fresh.length === 0)
|
|
302
|
+
return 0;
|
|
303
|
+
const cwd = (await this.findMeta(id))?.cwd;
|
|
304
|
+
for (const revision of fresh) {
|
|
305
|
+
await this.kv.append(["artifact", id], [await this.indexArtifactRevision(id, revision, cwd)]);
|
|
306
|
+
}
|
|
307
|
+
return fresh.length;
|
|
308
|
+
});
|
|
276
309
|
}
|
|
277
310
|
/**
|
|
278
311
|
* Sessions that have written an artifact, whether or not they are loaded.
|
|
@@ -289,19 +322,57 @@ export class SessionStore {
|
|
|
289
322
|
return (await this.kv.listLogs(["artifact"])).map((key) => key[key.length - 1]);
|
|
290
323
|
}
|
|
291
324
|
/**
|
|
292
|
-
* Every artifact revision recorded for a session, oldest first
|
|
325
|
+
* Every artifact revision recorded for a session, oldest first, with its
|
|
326
|
+
* content — read from the project's ARTIFACTS folder where it lives there.
|
|
293
327
|
*
|
|
294
328
|
* `maxBytes` reads the tail, for a caller that is building a listing rather
|
|
295
329
|
* than restoring a session: the newest lines are the ones a listing shows,
|
|
296
330
|
* and a log with a megabyte of superseded revisions in it should not cost a
|
|
297
331
|
* megabyte to summarise.
|
|
332
|
+
*
|
|
333
|
+
* A full read also moves content still held inline into the project, once,
|
|
334
|
+
* for a session whose revisions were recorded before content moved there.
|
|
298
335
|
*/
|
|
299
336
|
async artifactRevisions(id, maxBytes) {
|
|
300
337
|
await this.prepare();
|
|
338
|
+
if (maxBytes === undefined)
|
|
339
|
+
await this.moveArtifactsToProject(id);
|
|
340
|
+
const lines = await this.artifactIndex(id, maxBytes);
|
|
341
|
+
if (!lines.some((line) => line.file)) {
|
|
342
|
+
return lines.filter((line) => typeof line.content === "string");
|
|
343
|
+
}
|
|
344
|
+
// Read from wherever the session ran, registered or not now: the files
|
|
345
|
+
// were written there, and a project unregistered since still has them.
|
|
346
|
+
const root = (await this.findMeta(id))?.cwd;
|
|
347
|
+
const latest = new Map();
|
|
348
|
+
for (const line of lines) {
|
|
349
|
+
if (line.file)
|
|
350
|
+
latest.set(line.file, Math.max(latest.get(line.file) ?? 0, line.version));
|
|
351
|
+
}
|
|
352
|
+
const out = [];
|
|
353
|
+
for (const line of lines) {
|
|
354
|
+
if (typeof line.content === "string") {
|
|
355
|
+
out.push(line);
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
if (!line.file || !root)
|
|
359
|
+
continue;
|
|
360
|
+
const content = await readArtifactRevision(root, line.file, line.version, latest.get(line.file));
|
|
361
|
+
// A file someone deleted is a revision that is gone, not an error: the
|
|
362
|
+
// rest of the artifact, and the session, still load.
|
|
363
|
+
if (content === undefined)
|
|
364
|
+
continue;
|
|
365
|
+
const { file: _file, ...rest } = line;
|
|
366
|
+
out.push({ ...rest, content });
|
|
367
|
+
}
|
|
368
|
+
return out;
|
|
369
|
+
}
|
|
370
|
+
/** The index lines as written, content inline or not. */
|
|
371
|
+
async artifactIndex(id, maxBytes) {
|
|
301
372
|
const lines = await this.kv.readLog(["artifact", id], maxBytes);
|
|
302
373
|
const out = [];
|
|
303
374
|
for (const line of lines) {
|
|
304
|
-
const revision =
|
|
375
|
+
const revision = asIndexedRevision(line);
|
|
305
376
|
// A line this build cannot read is skipped rather than fatal: the file
|
|
306
377
|
// is append-only and shared with future versions, and refusing to load
|
|
307
378
|
// any of it because of one line would lose the rest.
|
|
@@ -310,6 +381,74 @@ export class SessionStore {
|
|
|
310
381
|
}
|
|
311
382
|
return out;
|
|
312
383
|
}
|
|
384
|
+
/**
|
|
385
|
+
* The index line for a revision: its content moved into the project when
|
|
386
|
+
* the session has one and the content is a kind that makes a file, inline
|
|
387
|
+
* otherwise.
|
|
388
|
+
*/
|
|
389
|
+
async indexArtifactRevision(id, revision, cwd) {
|
|
390
|
+
const root = await artifactRoot(cwd);
|
|
391
|
+
const extension = artifactExtension(revision.mime, revision.language);
|
|
392
|
+
if (!root || !extension)
|
|
393
|
+
return revision;
|
|
394
|
+
const same = (await this.artifactIndex(id)).filter((line) => line.artifact === revision.artifact && line.file);
|
|
395
|
+
const file = same.at(-1)?.file ?? allocateArtifactFile(root, revision.artifact, extension);
|
|
396
|
+
const latest = same.length ? Math.max(...same.map((line) => line.version)) : undefined;
|
|
397
|
+
await placeArtifactRevision(root, file, revision.version, revision.content, latest);
|
|
398
|
+
const { content: _content, ...rest } = revision;
|
|
399
|
+
return { ...rest, file };
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Move a session's inline artifact content into its project's ARTIFACTS
|
|
403
|
+
* folder, then rewrite the index to point at the files.
|
|
404
|
+
*
|
|
405
|
+
* Files first and the index last, so an interruption leaves the inline
|
|
406
|
+
* copy still in place and the next read tries again.
|
|
407
|
+
*/
|
|
408
|
+
async moveArtifactsToProject(id) {
|
|
409
|
+
await this.serialArtifacts(id, async () => {
|
|
410
|
+
const lines = await this.artifactIndex(id);
|
|
411
|
+
if (!lines.some((line) => typeof line.content === "string"))
|
|
412
|
+
return;
|
|
413
|
+
const root = await artifactRoot((await this.findMeta(id))?.cwd);
|
|
414
|
+
if (!root)
|
|
415
|
+
return;
|
|
416
|
+
const files = new Map();
|
|
417
|
+
const latest = new Map();
|
|
418
|
+
const rewritten = [];
|
|
419
|
+
for (const line of lines) {
|
|
420
|
+
if (line.file) {
|
|
421
|
+
files.set(line.artifact, line.file);
|
|
422
|
+
latest.set(line.file, Math.max(latest.get(line.file) ?? 0, line.version));
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
for (const line of lines) {
|
|
426
|
+
const extension = artifactExtension(line.mime, line.language);
|
|
427
|
+
if (typeof line.content !== "string" || !extension) {
|
|
428
|
+
rewritten.push(line);
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
431
|
+
const file = files.get(line.artifact) ?? allocateArtifactFile(root, line.artifact, extension);
|
|
432
|
+
files.set(line.artifact, file);
|
|
433
|
+
await placeArtifactRevision(root, file, line.version, line.content, latest.get(file));
|
|
434
|
+
latest.set(file, Math.max(latest.get(file) ?? 0, line.version));
|
|
435
|
+
const { content: _content, ...rest } = line;
|
|
436
|
+
rewritten.push({ ...rest, file });
|
|
437
|
+
}
|
|
438
|
+
await this.kv.replaceLog(["artifact", id], rewritten);
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
serialArtifacts(id, run) {
|
|
442
|
+
const previous = this.artifactQueues.get(id) ?? Promise.resolve();
|
|
443
|
+
const next = previous.then(run, run);
|
|
444
|
+
const settled = next.catch(() => { });
|
|
445
|
+
this.artifactQueues.set(id, settled);
|
|
446
|
+
void settled.then(() => {
|
|
447
|
+
if (this.artifactQueues.get(id) === settled)
|
|
448
|
+
this.artifactQueues.delete(id);
|
|
449
|
+
});
|
|
450
|
+
return next;
|
|
451
|
+
}
|
|
313
452
|
/**
|
|
314
453
|
* Record one permission decision, with the session it happened in.
|
|
315
454
|
*
|
|
@@ -478,6 +617,40 @@ export class SessionStore {
|
|
|
478
617
|
}
|
|
479
618
|
return gone;
|
|
480
619
|
}
|
|
620
|
+
/**
|
|
621
|
+
* Update machine-local path hints after a project directory is renamed.
|
|
622
|
+
*
|
|
623
|
+
* Token/cost timestamps are deliberately preserved: moving a folder did
|
|
624
|
+
* not spend anything and must not make old usage appear in today's window.
|
|
625
|
+
* The transcript and every append-only side log stay where they are because
|
|
626
|
+
* they are keyed by the stable project/session ids, not by cwd.
|
|
627
|
+
*/
|
|
628
|
+
async relocateProject(project, oldCwd, newCwd) {
|
|
629
|
+
await this.prepare();
|
|
630
|
+
let changed = 0;
|
|
631
|
+
for (const key of await this.kv.list(["session", project])) {
|
|
632
|
+
const meta = await this.kv.read(key);
|
|
633
|
+
if (!meta)
|
|
634
|
+
continue;
|
|
635
|
+
const nested = meta.cwd === oldCwd || meta.cwd.startsWith(oldCwd + path.sep);
|
|
636
|
+
if (!nested)
|
|
637
|
+
continue;
|
|
638
|
+
const cwd = newCwd + meta.cwd.slice(oldCwd.length);
|
|
639
|
+
await this.kv.write(key, { ...meta, cwd, projectId: project });
|
|
640
|
+
this.located.set(meta.id, project);
|
|
641
|
+
changed += 1;
|
|
642
|
+
}
|
|
643
|
+
const held = await this.kv.read(["project", project]);
|
|
644
|
+
const now = Date.now();
|
|
645
|
+
await this.kv.write(["project", project], {
|
|
646
|
+
id: project,
|
|
647
|
+
vcs: held?.vcs ?? (project.startsWith("project_") || project.startsWith("dir-") ? "none" : "git"),
|
|
648
|
+
worktree: newCwd,
|
|
649
|
+
createdAt: held?.createdAt ?? now,
|
|
650
|
+
updatedAt: now,
|
|
651
|
+
});
|
|
652
|
+
return changed;
|
|
653
|
+
}
|
|
481
654
|
async rename(id, title) {
|
|
482
655
|
const meta = await this.findMeta(id);
|
|
483
656
|
if (!meta)
|
package/dist/agent/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/agent/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAmC3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,IAAI,CAAC;AAgDnD,MAAM,OAAO,YAAY;IACN,EAAE,CAAY;IACd,UAAU,CAAqB;IACxC,KAAK,CAA4B;IACjC,QAAQ,CAA8B;IAC9C,iFAAiF;IAChE,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;IAErE,YAAY,IAAa;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,yEAAyE;QACzE,0EAA0E;QAC1E,mBAAmB;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAuC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEO,QAAQ,CAAC,MAAmB;QAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,QAAyB;QACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEjC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,QAAqB;QACnC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACtC,IAAI,WAAW,GAAG,OAAO;gBAAE,OAAO,KAAK,CAAC;YACxC,IAAI,WAAW,KAAK,OAAO,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;QACpF,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IAC5D,OAAO;QACb,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACK,MAAM;QACZ,IAAI,CAAC,QAAQ,KAAK,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,IAAI,QAAQ,EAAE,EAAE;gBAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/D,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAiB;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2EAA2E;IACnE,KAAK,CAAC,QAAQ,CAAC,EAAU;QAC/B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;gBAAE,SAAS;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAc,GAAG,CAAC,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiB;QAC5B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAiB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,OAAO,CAAC,IAAiB;QACrC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,GAAW;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG;YAAE,OAAO;QAClD,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;YACnC,EAAE;YACF,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC3C,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;YACrC,SAAS,EAAE,GAAG;SACS,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,OAAgB;QAC9C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,SAAS,EAAE;YACf,GAAG;YACH,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;YAC3B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,OAAO;SACR,CAAC;QACF,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,sBAAsB,CAAC,EAAU,EAAE,QAAgC;QACvE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,yEAAyE;QACzE,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,MAAM,GAA2B;YACrC,EAAE,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE;YACvB,GAAG;YACH,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;YAC3B,GAAG,QAAQ;SACZ,CAAC;QACF,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAC1B,EAAU,EACV,QAAkC;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAClF,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,QAAiB;QACnD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAU,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzE,MAAM,GAAG,GAA6B,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1C,uEAAuE;YACvE,uEAAuE;YACvE,qDAAqD;YACrD,IAAI,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,KAAiB;QAChD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,QAAQ,GAAG,uBAAuB;QAC5D,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAU,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzE,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,OAAiD;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAClB,CAAC,SAAS,EAAE,EAAE,CAAC,EACf,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CACjF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,QAAQ,GAAG,sBAAsB;QAC7D,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CACR,QAAgB,EAChB,OAAkE,EAAE;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,QAAQ,GACZ,IAAI,CAAC,YAAY,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,CAAC,QAAQ;YACjB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAgB;YACxB,GAAG,MAAM,CAAC,IAAI;YACd,EAAE;YACF,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,mEAAmE;YACnE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YAC1C,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,QAAQ,CAAC,MAAM;SACrB,CAAC;QAEF,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEzC,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE3E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,wEAAwE;QACxE,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,2EAA2E;QAC3E,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;SACnE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;gBAAE,SAAS;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YACpE,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAa;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,OAA+C,EAAE;QAC3D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAClC,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,iEAAiE;QACjE,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;QAEnF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM;gBAAE,OAAO,IAAI,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,gEAAgE;YAChE,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,QAAmB;QACnD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,OAAO,GAAoB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjE,EAAE,EAAE,SAAS,EAAE;YACf,GAAG,EAAE,KAAK,GAAG,CAAC;YACd,MAAM;YACN,EAAE;YACF,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrC,yEAAyE;QACzE,4DAA4D;QAC5D,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,EAAU;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAA+B,EAAE;QACtD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAc,GAAG,CAAC,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE/E,mEAAmE;QACnE,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAiB;QAC3C,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,KAAK,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,mEAAmE;YACnE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/agent/store.ts"],"names":[],"mappings":"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"}
|