agenticreplay 0.1.3 → 0.1.5
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 +36 -912
- package/node_modules/@agenticreplay/adapters/dist/claude-code.d.ts.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/claude-code.js +7 -9
- package/node_modules/@agenticreplay/adapters/dist/claude-code.js.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/codex.d.ts.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/codex.js +0 -18
- package/node_modules/@agenticreplay/adapters/dist/codex.js.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/contract.d.ts +1 -1
- package/node_modules/@agenticreplay/adapters/dist/contract.d.ts.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/contract.js +0 -46
- package/node_modules/@agenticreplay/adapters/dist/contract.js.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/indexrag.d.ts.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/indexrag.js +0 -6
- package/node_modules/@agenticreplay/adapters/dist/indexrag.js.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/session.d.ts +2 -0
- package/node_modules/@agenticreplay/adapters/dist/session.d.ts.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/session.js +7 -1
- package/node_modules/@agenticreplay/adapters/dist/session.js.map +1 -1
- package/node_modules/@agenticreplay/adapters/package.json +6 -6
- package/node_modules/@agenticreplay/core/dist/graph.d.ts +0 -24
- package/node_modules/@agenticreplay/core/dist/graph.d.ts.map +1 -1
- package/node_modules/@agenticreplay/core/dist/graph.js +0 -68
- package/node_modules/@agenticreplay/core/dist/graph.js.map +1 -1
- package/node_modules/@agenticreplay/core/dist/index.d.ts +1 -0
- package/node_modules/@agenticreplay/core/dist/index.d.ts.map +1 -1
- package/node_modules/@agenticreplay/core/dist/index.js +1 -0
- package/node_modules/@agenticreplay/core/dist/index.js.map +1 -1
- package/node_modules/@agenticreplay/core/dist/paths.d.ts +1 -12
- package/node_modules/@agenticreplay/core/dist/paths.d.ts.map +1 -1
- package/node_modules/@agenticreplay/core/dist/paths.js +9 -26
- package/node_modules/@agenticreplay/core/dist/paths.js.map +1 -1
- package/node_modules/@agenticreplay/core/dist/run-names.d.ts +7 -0
- package/node_modules/@agenticreplay/core/dist/run-names.d.ts.map +1 -0
- package/node_modules/@agenticreplay/core/dist/run-names.js +79 -0
- package/node_modules/@agenticreplay/core/dist/run-names.js.map +1 -0
- package/node_modules/@agenticreplay/core/dist/writer.d.ts +5 -9
- package/node_modules/@agenticreplay/core/dist/writer.d.ts.map +1 -1
- package/node_modules/@agenticreplay/core/dist/writer.js +38 -11
- package/node_modules/@agenticreplay/core/dist/writer.js.map +1 -1
- package/node_modules/@agenticreplay/core/package.json +4 -3
- package/node_modules/@agenticreplay/fs-capture/dist/capture.d.ts +4 -15
- package/node_modules/@agenticreplay/fs-capture/dist/capture.d.ts.map +1 -1
- package/node_modules/@agenticreplay/fs-capture/dist/capture.js +22 -33
- package/node_modules/@agenticreplay/fs-capture/dist/capture.js.map +1 -1
- package/node_modules/@agenticreplay/fs-capture/dist/shadow.d.ts +0 -39
- package/node_modules/@agenticreplay/fs-capture/dist/shadow.d.ts.map +1 -1
- package/node_modules/@agenticreplay/fs-capture/dist/shadow.js +0 -63
- package/node_modules/@agenticreplay/fs-capture/dist/shadow.js.map +1 -1
- package/node_modules/@agenticreplay/fs-capture/package.json +2 -2
- package/node_modules/@agenticreplay/mcp-shim/dist/cli.d.ts +0 -2
- package/node_modules/@agenticreplay/mcp-shim/dist/cli.d.ts.map +1 -1
- package/node_modules/@agenticreplay/mcp-shim/dist/cli.js +2 -92
- package/node_modules/@agenticreplay/mcp-shim/dist/cli.js.map +1 -1
- package/node_modules/@agenticreplay/mcp-shim/dist/index.d.ts +0 -1
- package/node_modules/@agenticreplay/mcp-shim/dist/index.d.ts.map +1 -1
- package/node_modules/@agenticreplay/mcp-shim/dist/index.js +0 -1
- package/node_modules/@agenticreplay/mcp-shim/dist/index.js.map +1 -1
- package/node_modules/@agenticreplay/mcp-shim/package.json +1 -1
- package/node_modules/@agenticreplay/node-instrument/package.json +1 -1
- package/node_modules/@agenticreplay/plugin-api/dist/plugins.d.ts +10 -212
- package/node_modules/@agenticreplay/plugin-api/dist/plugins.d.ts.map +1 -1
- package/node_modules/@agenticreplay/plugin-api/package.json +1 -1
- package/node_modules/@agenticreplay/providers/package.json +3 -3
- package/node_modules/@agenticreplay/proxy/dist/dialects.d.ts +3 -29
- package/node_modules/@agenticreplay/proxy/dist/dialects.d.ts.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/dialects.js +3 -69
- package/node_modules/@agenticreplay/proxy/dist/dialects.js.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/index.d.ts +0 -2
- package/node_modules/@agenticreplay/proxy/dist/index.d.ts.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/index.js +0 -2
- package/node_modules/@agenticreplay/proxy/dist/index.js.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/intercept.d.ts +0 -48
- package/node_modules/@agenticreplay/proxy/dist/intercept.d.ts.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/intercept.js +32 -157
- package/node_modules/@agenticreplay/proxy/dist/intercept.js.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/server.d.ts +2 -148
- package/node_modules/@agenticreplay/proxy/dist/server.d.ts.map +1 -1
- package/node_modules/@agenticreplay/proxy/dist/server.js +25 -874
- package/node_modules/@agenticreplay/proxy/dist/server.js.map +1 -1
- package/node_modules/@agenticreplay/proxy/package.json +5 -5
- package/node_modules/@agenticreplay/schema/package.json +1 -1
- package/node_modules/@agenticreplay/shell-shim/dist/install.d.ts.map +1 -1
- package/node_modules/@agenticreplay/shell-shim/dist/install.js +5 -2
- package/node_modules/@agenticreplay/shell-shim/dist/install.js.map +1 -1
- package/node_modules/@agenticreplay/shell-shim/package.json +3 -3
- package/node_modules/@agenticreplay/viewer/package.json +2 -2
- package/node_modules/any-ascii/LICENSE +15 -0
- package/node_modules/any-ascii/README.md +20 -0
- package/node_modules/any-ascii/any-ascii.d.ts +4 -0
- package/node_modules/any-ascii/any-ascii.js +30 -0
- package/node_modules/any-ascii/block.js +645 -0
- package/node_modules/any-ascii/package.json +32 -0
- package/node_modules/any-ascii/test.js +83 -0
- package/package.json +13 -14
- package/packages/cli/dist/api.d.ts +1 -27
- package/packages/cli/dist/api.d.ts.map +1 -1
- package/packages/cli/dist/api.js +2 -31
- package/packages/cli/dist/api.js.map +1 -1
- package/packages/cli/dist/args.d.ts.map +1 -1
- package/packages/cli/dist/args.js +0 -7
- package/packages/cli/dist/args.js.map +1 -1
- package/packages/cli/dist/commands/attach.d.ts +1 -4
- package/packages/cli/dist/commands/attach.d.ts.map +1 -1
- package/packages/cli/dist/commands/attach.js +24 -109
- package/packages/cli/dist/commands/attach.js.map +1 -1
- package/packages/cli/dist/commands/cost.d.ts +3 -0
- package/packages/cli/dist/commands/cost.d.ts.map +1 -0
- package/packages/cli/dist/commands/cost.js +13 -0
- package/packages/cli/dist/commands/cost.js.map +1 -0
- package/packages/cli/dist/commands/gc.d.ts +0 -2
- package/packages/cli/dist/commands/gc.d.ts.map +1 -1
- package/packages/cli/dist/commands/gc.js +3 -47
- package/packages/cli/dist/commands/gc.js.map +1 -1
- package/packages/cli/dist/commands/inspect.d.ts +0 -2
- package/packages/cli/dist/commands/inspect.d.ts.map +1 -1
- package/packages/cli/dist/commands/inspect.js +4 -30
- package/packages/cli/dist/commands/inspect.js.map +1 -1
- package/packages/cli/dist/commands/quickstart.d.ts +2 -34
- package/packages/cli/dist/commands/quickstart.d.ts.map +1 -1
- package/packages/cli/dist/commands/quickstart.js +32 -340
- package/packages/cli/dist/commands/quickstart.js.map +1 -1
- package/packages/cli/dist/commands/record.d.ts.map +1 -1
- package/packages/cli/dist/commands/record.js +27 -101
- package/packages/cli/dist/commands/record.js.map +1 -1
- package/packages/cli/dist/commands/setup.d.ts.map +1 -1
- package/packages/cli/dist/commands/setup.js +1 -30
- package/packages/cli/dist/commands/setup.js.map +1 -1
- package/packages/cli/dist/commands/sync.d.ts.map +1 -1
- package/packages/cli/dist/commands/sync.js +18 -4
- package/packages/cli/dist/commands/sync.js.map +1 -1
- package/packages/cli/dist/config.d.ts +1 -4
- package/packages/cli/dist/config.d.ts.map +1 -1
- package/packages/cli/dist/config.js.map +1 -1
- package/packages/cli/dist/flags.d.ts.map +1 -1
- package/packages/cli/dist/flags.js +4 -45
- package/packages/cli/dist/flags.js.map +1 -1
- package/packages/cli/dist/fs-events.d.ts +2 -13
- package/packages/cli/dist/fs-events.d.ts.map +1 -1
- package/packages/cli/dist/fs-events.js +5 -64
- package/packages/cli/dist/fs-events.js.map +1 -1
- package/packages/cli/dist/index.d.ts +0 -2
- package/packages/cli/dist/index.d.ts.map +1 -1
- package/packages/cli/dist/index.js +0 -2
- package/packages/cli/dist/index.js.map +1 -1
- package/packages/cli/dist/main.d.ts.map +1 -1
- package/packages/cli/dist/main.js +12 -67
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/cli/dist/mcp-server.d.ts.map +1 -1
- package/packages/cli/dist/mcp-server.js +3 -86
- package/packages/cli/dist/mcp-server.js.map +1 -1
- package/packages/cli/dist/mcp.d.ts +1 -73
- package/packages/cli/dist/mcp.d.ts.map +1 -1
- package/packages/cli/dist/mcp.js +3 -113
- package/packages/cli/dist/mcp.js.map +1 -1
- package/packages/cli/dist/share-card.d.ts +0 -20
- package/packages/cli/dist/share-card.d.ts.map +1 -1
- package/packages/cli/dist/share-card.js +0 -63
- package/packages/cli/dist/share-card.js.map +1 -1
- package/packages/cli/dist/snapshot.d.ts +2 -5
- package/packages/cli/dist/snapshot.d.ts.map +1 -1
- package/packages/cli/dist/snapshot.js +2 -3
- package/packages/cli/dist/snapshot.js.map +1 -1
- package/packages/cli/dist/tls-capture.d.ts +1 -17
- package/packages/cli/dist/tls-capture.d.ts.map +1 -1
- package/packages/cli/dist/tls-capture.js +7 -77
- package/packages/cli/dist/tls-capture.js.map +1 -1
- package/packages/cli/package.json +11 -11
|
@@ -3,9 +3,8 @@ export interface RunRef {
|
|
|
3
3
|
/** RFC3339, from the manifest when it is readable, else the directory's mtime. */
|
|
4
4
|
createdAt: string;
|
|
5
5
|
dir: string;
|
|
6
|
-
/**
|
|
6
|
+
/** Historical parent link, retained when reading older run manifests. */
|
|
7
7
|
parentRun?: string;
|
|
8
|
-
forkPoint?: number;
|
|
9
8
|
}
|
|
10
9
|
export declare function agenticreplayDir(cwd: string): string;
|
|
11
10
|
export declare function runsDir(cwd: string): string;
|
|
@@ -30,16 +29,6 @@ export declare function runDirFor(cwd: string, runId: string): string;
|
|
|
30
29
|
export declare function listRuns(cwd: string): Promise<RunRef[]>;
|
|
31
30
|
/**
|
|
32
31
|
* Resolves the CLI's run argument: `last` for the newest run, anything else as a run id.
|
|
33
|
-
*
|
|
34
|
-
* `last` skips replay traces. Since exact replay started writing one, the newest run in a
|
|
35
|
-
* directory is usually a report about the run before it, and every command defaults to `last` — so
|
|
36
|
-
* that quietly redirected all of them. The sharpest case is the line in the README:
|
|
37
|
-
* `agenticreplay scrub last --match my-hostname` scrubbed the empty trace, found nothing, and said "nothing
|
|
38
|
-
* matched — the trace is unchanged", while the secret sat in the recording beside it. A security
|
|
39
|
-
* tool reporting clean because it searched the wrong thing is worse than one that fails.
|
|
40
|
-
*
|
|
41
|
-
* Naming a replay trace explicitly still resolves it, and when a directory holds nothing else it
|
|
42
|
-
* is still returned — a selector that refuses to resolve is not an improvement.
|
|
43
32
|
*/
|
|
44
33
|
export declare function resolveRunSelector(cwd: string, selector: string): Promise<RunRef>;
|
|
45
34
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ChE;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5D;AA2BD,yDAAyD;AACzD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe7D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBvF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir, readFile, readdir, stat, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { RUN_ID_PATTERN } from '@agenticreplay/schema';
|
|
4
|
+
import { runIdFromDirectory } from './run-names.js';
|
|
4
5
|
import { assertPrivatePathIdentity, privatePathIdentity, restrictToOwner, } from './private-files.js';
|
|
5
6
|
export function agenticreplayDir(cwd) {
|
|
6
7
|
return join(cwd, '.agenticreplay');
|
|
@@ -84,7 +85,6 @@ async function factsOf(dir) {
|
|
|
84
85
|
return {
|
|
85
86
|
createdAt: at,
|
|
86
87
|
...(typeof raw.parent_run === 'string' ? { parentRun: raw.parent_run } : {}),
|
|
87
|
-
...(typeof raw.fork_point === 'number' ? { forkPoint: raw.fork_point } : {}),
|
|
88
88
|
};
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -99,49 +99,32 @@ export async function listRuns(cwd) {
|
|
|
99
99
|
const entries = await readdir(root, { withFileTypes: true }).catch(() => []);
|
|
100
100
|
const runs = [];
|
|
101
101
|
for (const e of entries) {
|
|
102
|
-
|
|
102
|
+
const runId = runIdFromDirectory(e.name);
|
|
103
|
+
if (!e.isDirectory() || runId === undefined)
|
|
103
104
|
continue;
|
|
104
105
|
const dir = join(root, e.name);
|
|
105
|
-
runs.push({ runId
|
|
106
|
+
runs.push({ runId, dir, ...(await factsOf(dir)) });
|
|
106
107
|
}
|
|
107
108
|
return runs.sort((a, b) => a.createdAt === b.createdAt
|
|
108
109
|
? b.runId.localeCompare(a.runId)
|
|
109
110
|
: b.createdAt.localeCompare(a.createdAt));
|
|
110
111
|
}
|
|
111
|
-
/**
|
|
112
|
-
* A run that describes another run rather than being one: an exact replay's own trace.
|
|
113
|
-
*
|
|
114
|
-
* It holds divergences and nothing else — no exchanges, no blobs, no filesystem store. A fork is
|
|
115
|
-
* not one of these: it has a `fork_point`, real exchanges and a worktree, and is a thing you act
|
|
116
|
-
* on.
|
|
117
|
-
*/
|
|
118
|
-
function isReplayTrace(run) {
|
|
119
|
-
return run.parentRun !== undefined && run.forkPoint === undefined;
|
|
120
|
-
}
|
|
121
112
|
/**
|
|
122
113
|
* Resolves the CLI's run argument: `last` for the newest run, anything else as a run id.
|
|
123
|
-
*
|
|
124
|
-
* `last` skips replay traces. Since exact replay started writing one, the newest run in a
|
|
125
|
-
* directory is usually a report about the run before it, and every command defaults to `last` — so
|
|
126
|
-
* that quietly redirected all of them. The sharpest case is the line in the README:
|
|
127
|
-
* `agenticreplay scrub last --match my-hostname` scrubbed the empty trace, found nothing, and said "nothing
|
|
128
|
-
* matched — the trace is unchanged", while the secret sat in the recording beside it. A security
|
|
129
|
-
* tool reporting clean because it searched the wrong thing is worse than one that fails.
|
|
130
|
-
*
|
|
131
|
-
* Naming a replay trace explicitly still resolves it, and when a directory holds nothing else it
|
|
132
|
-
* is still returned — a selector that refuses to resolve is not an improvement.
|
|
133
114
|
*/
|
|
134
115
|
export async function resolveRunSelector(cwd, selector) {
|
|
135
116
|
if (selector === 'last') {
|
|
136
117
|
const runs = await listRuns(cwd);
|
|
137
|
-
const newest = runs
|
|
118
|
+
const newest = runs[0];
|
|
138
119
|
if (!newest) {
|
|
139
120
|
throw new Error(`no runs recorded in ${runsDir(cwd)} — record one first: agenticreplay record -- <your agent>`);
|
|
140
121
|
}
|
|
141
122
|
return newest;
|
|
142
123
|
}
|
|
143
|
-
|
|
144
|
-
|
|
124
|
+
if (runIdFromDirectory(selector) === undefined)
|
|
125
|
+
throw new Error(`not a valid run id: ${JSON.stringify(selector)}`);
|
|
126
|
+
const found = (await listRuns(cwd)).find((r) => r.runId === selector ||
|
|
127
|
+
r.dir.normalize('NFC') === join(runsDir(cwd), selector).normalize('NFC'));
|
|
145
128
|
if (!found)
|
|
146
129
|
throw new Error(`no run ${selector} in ${runsDir(cwd)} — list runs with: agenticreplay list`);
|
|
147
130
|
return found;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Start time is UTC, as in the manifest. The suffix preserves the stable public run ID. */
|
|
2
|
+
export declare function captureDirectoryName(startedAt: string, adapter: string, title: string, runId: string): string;
|
|
3
|
+
/** Recognize only live run names; staging, replacement and lock siblings remain invisible. */
|
|
4
|
+
export declare function runIdFromDirectory(name: string): string | undefined;
|
|
5
|
+
/** First human stimulus only: system messages, tools and later turns cannot rename a session. */
|
|
6
|
+
export declare function firstUserPrompt(payload: unknown): string | undefined;
|
|
7
|
+
//# sourceMappingURL=run-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-names.d.ts","sourceRoot":"","sources":["../src/run-names.ts"],"names":[],"mappings":"AAeA,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnE;AAsBD,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAwBpE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { RUN_ID_PATTERN } from '@agenticreplay/schema';
|
|
2
|
+
import anyAscii from 'any-ascii';
|
|
3
|
+
const MAX_DIRECTORY_LENGTH = 255;
|
|
4
|
+
/** Terminal-friendly ASCII only; transliterate rather than discarding non-Latin titles. */
|
|
5
|
+
function slug(value, limit, fallback) {
|
|
6
|
+
const clean = anyAscii(value.normalize('NFKC'))
|
|
7
|
+
.toLowerCase()
|
|
8
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
9
|
+
.replace(/^-+|-+$/g, '');
|
|
10
|
+
const result = clean.slice(0, limit);
|
|
11
|
+
return result.replace(/-+$/g, '') || fallback;
|
|
12
|
+
}
|
|
13
|
+
/** Start time is UTC, as in the manifest. The suffix preserves the stable public run ID. */
|
|
14
|
+
export function captureDirectoryName(startedAt, adapter, title, runId) {
|
|
15
|
+
const timestamp = new Date(startedAt).toISOString().slice(0, 19).replace(/\D/g, '');
|
|
16
|
+
const prefix = `${timestamp}-${slug(adapter, 32, 'agent')}`;
|
|
17
|
+
const suffix = runId.slice('run_'.length);
|
|
18
|
+
const titleLimit = Math.min(80, MAX_DIRECTORY_LENGTH - prefix.length - suffix.length - 2);
|
|
19
|
+
return `${prefix}-${slug(title, titleLimit, 'session')}-${suffix}`;
|
|
20
|
+
}
|
|
21
|
+
/** Recognize only live run names; staging, replacement and lock siblings remain invisible. */
|
|
22
|
+
export function runIdFromDirectory(name) {
|
|
23
|
+
if (RUN_ID_PATTERN.test(name))
|
|
24
|
+
return name;
|
|
25
|
+
if (name.length > MAX_DIRECTORY_LENGTH)
|
|
26
|
+
return undefined;
|
|
27
|
+
const suffix = /^\d{14}-[a-z0-9-]+-([0-9a-f]{6,32})$/.exec(name)?.[1];
|
|
28
|
+
return suffix === undefined ? undefined : `run_${suffix}`;
|
|
29
|
+
}
|
|
30
|
+
function object(value) {
|
|
31
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
32
|
+
? value
|
|
33
|
+
: undefined;
|
|
34
|
+
}
|
|
35
|
+
function contentText(value) {
|
|
36
|
+
if (typeof value === 'string')
|
|
37
|
+
return value.trim() || undefined;
|
|
38
|
+
if (!Array.isArray(value))
|
|
39
|
+
return undefined;
|
|
40
|
+
return (value
|
|
41
|
+
.map((block) => {
|
|
42
|
+
const item = object(block);
|
|
43
|
+
return typeof item?.text === 'string' ? item.text : '';
|
|
44
|
+
})
|
|
45
|
+
.join(' ')
|
|
46
|
+
.trim() || undefined);
|
|
47
|
+
}
|
|
48
|
+
/** First human stimulus only: system messages, tools and later turns cannot rename a session. */
|
|
49
|
+
export function firstUserPrompt(payload) {
|
|
50
|
+
if (typeof payload === 'string') {
|
|
51
|
+
try {
|
|
52
|
+
payload = JSON.parse(payload);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const body = object(payload);
|
|
59
|
+
if (!body)
|
|
60
|
+
return undefined;
|
|
61
|
+
if (Array.isArray(body.prompts))
|
|
62
|
+
return contentText(body.prompts.find((p) => typeof p === 'string' && p.trim()));
|
|
63
|
+
const request = object(body.request) ?? body;
|
|
64
|
+
const messages = request.messages ?? request.input;
|
|
65
|
+
if (typeof messages === 'string')
|
|
66
|
+
return contentText(messages);
|
|
67
|
+
if (Array.isArray(messages)) {
|
|
68
|
+
for (const message of messages) {
|
|
69
|
+
const item = object(message);
|
|
70
|
+
if (item?.role !== 'user')
|
|
71
|
+
continue;
|
|
72
|
+
const text = contentText(item.content);
|
|
73
|
+
if (text && !text.startsWith('<'))
|
|
74
|
+
return text;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return contentText(request.prompt);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=run-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-names.js","sourceRoot":"","sources":["../src/run-names.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,20 +5,15 @@ export declare function redactManifest(redactor: Redactor, manifest: Manifest):
|
|
|
5
5
|
export interface TraceWriterInit {
|
|
6
6
|
/** Defaults to a fresh `run_<12 hex>`. */
|
|
7
7
|
runId?: string;
|
|
8
|
+
/** A host-generated session title, when available. Never used as a raw filesystem path. */
|
|
9
|
+
sessionTitle?: string;
|
|
10
|
+
/** Session start time; defaults to the moment capture starts. */
|
|
11
|
+
sessionStartedAt?: Date;
|
|
8
12
|
adapter: AdapterInfo;
|
|
9
13
|
argv: string[];
|
|
10
14
|
cwd: string;
|
|
11
15
|
agenticreplayVersion: string;
|
|
12
16
|
envAllowlist?: string[];
|
|
13
|
-
/**
|
|
14
|
-
* Fork provenance (spec §1). Set on a run produced by forking another. The manifest is what
|
|
15
|
-
* every out-of-process reader sees first — `agenticreplay gc` deciding whether a run may be deleted, a
|
|
16
|
-
* third-party tool, the Python SDK — so recording this only as an event leaves those readers
|
|
17
|
-
* looking at an orphan.
|
|
18
|
-
*/
|
|
19
|
-
parentRun?: string;
|
|
20
|
-
forkPoint?: number;
|
|
21
|
-
forkModel?: string;
|
|
22
17
|
}
|
|
23
18
|
/** The parts of an event a caller supplies; the writer stamps the rest. */
|
|
24
19
|
export interface EventInit {
|
|
@@ -62,6 +57,7 @@ export declare class TraceWriter {
|
|
|
62
57
|
* lands in the manifest at close alongside the counts.
|
|
63
58
|
*/
|
|
64
59
|
setGit(info: Manifest['git']): void;
|
|
60
|
+
/** Active capture paths stay fixed. After close, this returns the final titled directory. */
|
|
65
61
|
get runDir(): string;
|
|
66
62
|
get runId(): string;
|
|
67
63
|
/** The seq the next event will be given, which is also the number written so far. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAA4B,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAA4B,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiCpE,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAqB/E;AAED,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0GAA0G;IAC1G,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;;IAuBtB,OAAO;WAgBM,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IA4CjF;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI;IAInC,6FAA6F;IAC7F,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,qFAAqF;IACrF,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,6FAA6F;IAC7F,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAKhD,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAwD5C,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAgNlD"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { createHash, randomBytes } from 'node:crypto';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import { mkdir, open, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { mkdir, open, rename, writeFile } from 'node:fs/promises';
|
|
4
4
|
import { arch, platform } from 'node:os';
|
|
5
|
-
import { isAbsolute, join } from 'node:path';
|
|
5
|
+
import { dirname, isAbsolute, join } from 'node:path';
|
|
6
6
|
import { INLINE_PAYLOAD_LIMIT, RUN_ID_PATTERN, SCHEMA_VERSION, assertEvent, assertManifest, } from '@agenticreplay/schema';
|
|
7
7
|
import { BlobStore, sha256File } from './blobs.js';
|
|
8
8
|
import { REDACTION_POLICY_VERSION, Redactor } from './redaction.js';
|
|
9
|
+
import { captureDirectoryName, firstUserPrompt } from './run-names.js';
|
|
9
10
|
const FILE_MODE = 0o600;
|
|
10
11
|
const DIR_MODE = 0o700;
|
|
11
12
|
/** Remove credential URL components while preserving the other serialized query bytes. */
|
|
@@ -57,6 +58,8 @@ export function redactManifest(redactor, manifest) {
|
|
|
57
58
|
*/
|
|
58
59
|
export class TraceWriter {
|
|
59
60
|
#runDir;
|
|
61
|
+
#sessionTitle = '';
|
|
62
|
+
#titlePriority = 0;
|
|
60
63
|
#runId;
|
|
61
64
|
#eventsPath;
|
|
62
65
|
#blobs;
|
|
@@ -88,35 +91,35 @@ export class TraceWriter {
|
|
|
88
91
|
const runId = init.runId ?? `run_${randomBytes(6).toString('hex')}`;
|
|
89
92
|
if (!RUN_ID_PATTERN.test(runId))
|
|
90
93
|
throw new Error(`not a valid run id: ${JSON.stringify(runId)}`);
|
|
91
|
-
const runDir = join(runsDir, runId);
|
|
92
|
-
await mkdir(runDir, { recursive: true, mode: DIR_MODE });
|
|
93
94
|
// One redactor for the whole run: the salt stays constant, so a secret seen in the environment
|
|
94
95
|
// and again in a payload gets the same placeholder, and every removal lands in redactions.json.
|
|
95
96
|
const redactor = new Redactor(init.envAllowlist === undefined ? {} : { envAllowlist: init.envAllowlist });
|
|
96
97
|
const unredactedBase = {
|
|
97
98
|
schema_version: SCHEMA_VERSION,
|
|
98
99
|
run_id: runId,
|
|
99
|
-
created_at: new Date().toISOString(),
|
|
100
|
+
created_at: (init.sessionStartedAt ?? new Date()).toISOString(),
|
|
100
101
|
agenticreplay_version: init.agenticreplayVersion,
|
|
101
102
|
adapter: init.adapter,
|
|
102
103
|
argv: init.argv,
|
|
103
104
|
cwd: init.cwd,
|
|
104
105
|
env_allowlisted: redactor.redactEnv(process.env),
|
|
105
106
|
platform: { os: platform(), arch: arch(), node: process.version },
|
|
106
|
-
// Spread conditionally: the schema forbids unknown keys and a plain recording must carry no
|
|
107
|
-
// provenance at all, rather than three nulls that readers would have to special-case.
|
|
108
|
-
...(init.parentRun === undefined ? {} : { parent_run: init.parentRun }),
|
|
109
|
-
...(init.forkPoint === undefined ? {} : { fork_point: init.forkPoint }),
|
|
110
|
-
...(init.forkModel === undefined ? {} : { fork_model: init.forkModel }),
|
|
111
107
|
capture: { status: 'unverified', issues: [] },
|
|
112
108
|
};
|
|
113
109
|
const base = redactManifest(redactor, unredactedBase);
|
|
114
110
|
assertManifest(base);
|
|
111
|
+
const title = redactor.redactString((init.sessionTitle ?? '').normalize('NFKC'), 'session.title').value;
|
|
112
|
+
const runDir = join(runsDir, captureDirectoryName(base.created_at, base.adapter.id, title, runId));
|
|
113
|
+
await mkdir(runsDir, { recursive: true, mode: DIR_MODE });
|
|
114
|
+
await mkdir(runDir, { mode: DIR_MODE });
|
|
115
115
|
await writeFile(join(runDir, 'manifest.json'), `${JSON.stringify(base, null, 2)}\n`, {
|
|
116
116
|
mode: FILE_MODE,
|
|
117
117
|
});
|
|
118
118
|
const handle = await open(join(runDir, 'events.jsonl'), 'a', FILE_MODE);
|
|
119
|
-
|
|
119
|
+
const writer = new TraceWriter(runId, runDir, base, redactor, handle);
|
|
120
|
+
writer.#sessionTitle = title;
|
|
121
|
+
writer.#titlePriority = title.trim() ? 3 : 0;
|
|
122
|
+
return writer;
|
|
120
123
|
}
|
|
121
124
|
/**
|
|
122
125
|
* Record the repository state the run started from (spec §1).
|
|
@@ -129,6 +132,7 @@ export class TraceWriter {
|
|
|
129
132
|
setGit(info) {
|
|
130
133
|
this.#git = info;
|
|
131
134
|
}
|
|
135
|
+
/** Active capture paths stay fixed. After close, this returns the final titled directory. */
|
|
132
136
|
get runDir() {
|
|
133
137
|
return this.#runDir;
|
|
134
138
|
}
|
|
@@ -245,6 +249,11 @@ export class TraceWriter {
|
|
|
245
249
|
mode: FILE_MODE,
|
|
246
250
|
});
|
|
247
251
|
this.#sealed = manifest;
|
|
252
|
+
const titledDir = join(dirname(this.#runDir), captureDirectoryName(this.#base.created_at, this.#base.adapter.id, this.#sessionTitle, this.#runId));
|
|
253
|
+
if (titledDir !== this.#runDir) {
|
|
254
|
+
await rename(this.#runDir, titledDir);
|
|
255
|
+
this.#runDir = titledDir;
|
|
256
|
+
}
|
|
248
257
|
return manifest;
|
|
249
258
|
}
|
|
250
259
|
async #write(ts, mono_us, turn, init) {
|
|
@@ -290,6 +299,9 @@ export class TraceWriter {
|
|
|
290
299
|
event.causes = init.causes;
|
|
291
300
|
if (init.attrs !== undefined)
|
|
292
301
|
event.attrs = { ...init.attrs };
|
|
302
|
+
if (init.type === 'run.start' && this.#titlePriority === 3) {
|
|
303
|
+
event.attrs = { ...event.attrs, session_title: this.#sessionTitle };
|
|
304
|
+
}
|
|
293
305
|
if (event.type === 'net.request' || event.type === 'net.response') {
|
|
294
306
|
for (const key of ['url', 'path', 'upstream', 'destination']) {
|
|
295
307
|
const value = event.attrs?.[key];
|
|
@@ -356,6 +368,21 @@ export class TraceWriter {
|
|
|
356
368
|
}
|
|
357
369
|
assertEvent(out);
|
|
358
370
|
await this.#handle.write(`${JSON.stringify(out)}\n`);
|
|
371
|
+
if (init.type === 'run.start' || init.type === 'session.snapshot') {
|
|
372
|
+
const title = init.attrs?.session_title ?? init.attrs?.title;
|
|
373
|
+
if (typeof title === 'string' && title.trim() && this.#titlePriority < 2) {
|
|
374
|
+
this.#sessionTitle = this.#redactor.redactString(title.normalize('NFKC'), 'session.title').value;
|
|
375
|
+
this.#titlePriority = 2;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
if (this.#titlePriority === 0 &&
|
|
379
|
+
['model.request', 'net.request', 'session.snapshot'].includes(init.type)) {
|
|
380
|
+
const prompt = firstUserPrompt(init.payload);
|
|
381
|
+
if (prompt) {
|
|
382
|
+
this.#sessionTitle = this.#redactor.redactString(prompt.normalize('NFKC'), 'session.title').value;
|
|
383
|
+
this.#titlePriority = 1;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
359
386
|
// Set after the write, not before it: a bracket that failed to reach disk is not one.
|
|
360
387
|
if (out.type === 'run.start')
|
|
361
388
|
this.#opened = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAW7C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,QAAQ,GAAG,KAAK,CAAC;AAEvB,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,KAAK;SACf,OAAO,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAc,EAAE,EAAE;QAC7D,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,OAAO,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAiB,EAAE,GAAW,EAAE,EAAE;QAC9E,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IACE,CAAC,uFAAuF,CAAC,IAAI,CAC3F,OAAO,CACR;YAED,OAAO,KAAK,CAAC;QACf,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,GAAG,SAAS,GAAG,GAAG,iBAAiB,CAAC;IAC7C,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,QAAkB;IACnE,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CACtD,CAAC;IACd,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;IACpF,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CACtB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,iBAAiB,KAAK,EAAE,EAAE;QACnD,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;KAC/C,CAAC,CAAC,KAAK,CACX,CAAC;IACF,IAAI,eAAe;QACjB,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CACnC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC,KAAK,CACnD,CAAC;IAC9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AA2CD;;;;;;;GAOG;AACH,MAAM,OAAO,WAAW;IACb,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,WAAW,CAAS;IACpB,MAAM,CAAY;IAClB,SAAS,CAAW;IACpB,OAAO,CAAa;IACpB,KAAK,CAAW;IAChB,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACnC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,IAAI,GAAG,CAAC,CAAC;IACT,4FAA4F;IAC5F,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAG,KAAK,CAAC;IACrB,KAAK,GAAG,CAAC,CAAC;IACV,IAAI,CAAkB;IACtB,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,CAAuB;IAC9B,QAAQ,CAA6B;IAC5B,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C,YACE,KAAa,EACb,MAAc,EACd,IAAc,EACd,QAAkB,EAClB,MAAkB;QAElB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,IAAqB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEzD,+FAA+F;QAC/F,gGAAgG;QAChG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAC3E,CAAC;QACF,MAAM,cAAc,GAAa;YAC/B,cAAc,EAAE,cAAc;YAC9B,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;YAChD,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;YACjE,4FAA4F;YAC5F,sFAAsF;YACtF,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACvE,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE;SAC9C,CAAC;QACF,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACnF,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxE,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAqB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,qFAAqF;IACrF,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,6FAA6F;IAC7F,iBAAiB,CAAC,OAAuB;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,qBAAqB,CAAC,MAAc;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAe;QAC1B,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;QAClE,6EAA6E;QAC7E,EAAE;QACF,wFAAwF;QACxF,6FAA6F;QAC7F,8GAA8G;QAC9G,yCAAyC;QACzC,EAAE;QACF,qDAAqD;QACrD,0EAA0E;QAC1E,EAAE;QACF,sGAAsG;QACtG,2FAA2F;QAC3F,4FAA4F;QAC5F,wFAAwF;QACxF,4FAA4F;QAC5F,4FAA4F;QAC5F,8FAA8F;QAC9F,oEAAoE;QACpE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,MAAM,4BAA4B;gBACpF,GAAG,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,gCAAgC,IAAI;gBACjH,+CAA+C,CAClD,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,OAAO,IAAI,CAAC,MAAM,uEAAuE;gBACvF,mFAAmF;gBACnF,6CAA6C,CAChD,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,qDAAqD,CAAC,CAAC;QAC3F,CAAC;QACD,uFAAuF;QACvF,mFAAmF;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,+FAA+F;QAC/F,gGAAgG;QAChG,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU;YAC7B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAiB;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,WAAW,GAAa;YAC5B,GAAG,IAAI,CAAC,KAAK;YACb,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YACpC,SAAS,EAAE;gBACT,cAAc,EAAE,wBAAwB;gBACxC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;aACzC;YACD,SAAS,EAAE,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;YACnF,4FAA4F;YAC5F,qFAAqF;YACrF,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7F,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC7B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,GAAG,IAAI,CAAC,QAAQ;wBAChB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1E,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;qBACjC;iBACF,CAAC;SACP,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS;YAAE,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC7D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEzB,MAAM,UAAU,GAAG;YACjB,cAAc,EAAE,wBAAwB;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;SAClC,CAAC;QACF,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EACrC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1C;YACE,IAAI,EAAE,SAAS;SAChB,CACF,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC7F,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAe,EAAE,IAAY,EAAE,IAAe;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,eAAe,GAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,YAAqE,CAAC;QAC1E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACxD,eAAe,CAAC,IAAI,CAClB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,WAAoB;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,yBAAyB;aAClC,CAAC,CAAC,CACJ,CAAC;YACF,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;gBAC7D,OAAO,OAAO,KAAK,QAAQ,EAC3B,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAW,CAAC;gBAClD,YAAY,GAAG;oBACb,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;oBACnC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC7D,CAAC;gBACF,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,CAAC;oBACR,MAAM,EACJ,oFAAoF;iBACvF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,oBAAoB,EAAE,CAAC;gBAC7D,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACtE,CAAC;;gBAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAY,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAe,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACzF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClE,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,SAAS;gBACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC;oBAAE,SAAS;gBACnC,KAAK,CAAC,KAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACnC,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,SAAS,GAAG,EAAE;oBACxB,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,kDAAkD;iBAC3D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,EAAE,EAAE;gBAC3E,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACnC,OAAO,KAAK,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACpD,eAAe,CAAC,IAAI,CAClB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,WAAoB;gBAC1B,QAAQ,EAAE,SAAS,GAAG,EAAE;gBACxB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,+CAA+C;aACxD,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;QAED,8FAA8F;QAC9F,qFAAqF;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACxD,eAAe,CAAC,IAAI,CAClB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,WAAoB;YAC1B,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,yBAAyB;SAClC,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAe,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM;YAAE,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAC5F,4FAA4F;QAC5F,8EAA8E;QAC9E,IAAI,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACjD,IAAI,YAAY;YAAE,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,iFAAiF;YACjF,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;iBACzF,KAAK,CACkB,CAAC;QAC/B,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrD,sFAAsF;QACtF,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAClD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticreplay/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
"dist"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@agenticreplay/plugin-api": "0.1.
|
|
21
|
-
"@agenticreplay/schema": "0.1.
|
|
20
|
+
"@agenticreplay/plugin-api": "0.1.5",
|
|
21
|
+
"@agenticreplay/schema": "0.1.5",
|
|
22
|
+
"any-ascii": "0.3.3"
|
|
22
23
|
},
|
|
23
24
|
"engines": {
|
|
24
25
|
"node": ">=24.0.0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GitInfo } from '@agenticreplay/schema';
|
|
2
|
-
import type { FileChange, ForcedInsideNested
|
|
2
|
+
import type { FileChange, ForcedInsideNested } from './shadow.js';
|
|
3
3
|
export interface FsCaptureOptions {
|
|
4
4
|
runDir: string;
|
|
5
5
|
cwd: string;
|
|
@@ -10,10 +10,7 @@ export interface FsCaptureOptions {
|
|
|
10
10
|
forced?: readonly string[];
|
|
11
11
|
}
|
|
12
12
|
export interface TurnSnapshot {
|
|
13
|
-
tree: string;
|
|
14
13
|
changes: FileChange[];
|
|
15
|
-
/** True when there was no previous tree to diff against, so `changes` is empty by definition. */
|
|
16
|
-
firstSnapshot: boolean;
|
|
17
14
|
/**
|
|
18
15
|
* Nested repositories inside a declared artifact path that this snapshot could not hold, named
|
|
19
16
|
* the first time each is seen. Absent from every ordinary snapshot; see
|
|
@@ -44,27 +41,19 @@ export declare class FsCapture {
|
|
|
44
41
|
readonly runDir: string;
|
|
45
42
|
readonly cwd: string;
|
|
46
43
|
private readonly shadow;
|
|
44
|
+
private readonly scratchDir;
|
|
47
45
|
private previousTree;
|
|
48
46
|
private lastTurn;
|
|
49
47
|
private constructor();
|
|
50
|
-
/**
|
|
48
|
+
/** Keep the diff index outside the run; only file operation events belong in the recording. */
|
|
51
49
|
static start(opts: FsCaptureOptions): Promise<FsCapture>;
|
|
50
|
+
dispose(): Promise<void>;
|
|
52
51
|
static isAvailable(): Promise<boolean>;
|
|
53
52
|
snapshotTurn(turn: number): Promise<TurnSnapshot>;
|
|
54
|
-
currentTree(): string | undefined;
|
|
55
|
-
restore(tree: string, destDir: string, opts?: MaterializeOptions): Promise<void>;
|
|
56
|
-
/** See {@link ShadowIndex.gitlinks}: what a restore of this tree would refuse, asked up front. */
|
|
57
|
-
gitlinks(tree: string): Promise<string[]>;
|
|
58
53
|
/** See {@link ShadowIndex.uncommittedNested}: what no snapshot of this work tree can hold. */
|
|
59
54
|
get uncommittedNested(): readonly string[];
|
|
60
55
|
/** See {@link ShadowIndex.forcedInsideNested}: declared paths no snapshot here can hold. */
|
|
61
56
|
get forcedInsideNested(): readonly ForcedInsideNested[];
|
|
62
|
-
/** See {@link ShadowIndex.has}: whether a restore of this tree has anything to restore from. */
|
|
63
|
-
hasTree(tree: string): Promise<boolean>;
|
|
64
|
-
/** See {@link ShadowIndex.files}: the files a restore of this tree would write. */
|
|
65
|
-
files(tree: string): Promise<TreeFile[]>;
|
|
66
|
-
/** See {@link ShadowIndex.uncaptured}: what the last snapshot left behind under these paths. */
|
|
67
|
-
uncaptured(paths: readonly string[]): Promise<string[]>;
|
|
68
57
|
/**
|
|
69
58
|
* Provenance for the manifest, read from the *user's* repository rather than the shadow store.
|
|
70
59
|
* Returns `{}` for anything that is not a readable git repo; a missing head is not an error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGlE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED;;;;;;GAMG;AACH,qBAAa,SAAS;IAKlB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAM;IAEtB,OAAO;IAOP,+FAA+F;WAClF,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAexD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;WAIjB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAItC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBvD,8FAA8F;IAC9F,IAAI,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAEzC;IAED,4FAA4F;IAC5F,IAAI,kBAAkB,IAAI,SAAS,kBAAkB,EAAE,CAEtD;IAED;;;OAGG;IACG,OAAO,CAAC,GAAG,GAAE,MAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBvD;;;;;;;;OAQG;YACW,cAAc;CAiB7B"}
|