agenticreplay 0.1.4 → 0.1.6
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 +3 -3
- package/node_modules/@agenticreplay/adapters/dist/claude-code.d.ts.map +1 -1
- package/node_modules/@agenticreplay/adapters/dist/claude-code.js +0 -8
- 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/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/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 +1 -22
- package/node_modules/@agenticreplay/core/dist/paths.js.map +1 -1
- package/node_modules/@agenticreplay/core/dist/writer.d.ts +0 -9
- package/node_modules/@agenticreplay/core/dist/writer.d.ts.map +1 -1
- package/node_modules/@agenticreplay/core/dist/writer.js +0 -5
- package/node_modules/@agenticreplay/core/dist/writer.js.map +1 -1
- package/node_modules/@agenticreplay/core/package.json +3 -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 +9 -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/package.json +3 -3
- package/node_modules/@agenticreplay/viewer/package.json +2 -2
- 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 +34 -103
- 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.js +1 -1
- 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
|
@@ -11,7 +11,7 @@ import type { Output } from '../out.js';
|
|
|
11
11
|
*
|
|
12
12
|
* So this inverts it. AgenticReplay holds the proxy open, prints exactly what to export on the far side,
|
|
13
13
|
* and records whatever arrives until it is stopped. The recording that comes out is not a lesser
|
|
14
|
-
* one: same
|
|
14
|
+
* one: the same request and action events as a locally launched recording.
|
|
15
15
|
*
|
|
16
16
|
* The adapters are still what produce the variables — `--for claude` prints what the Claude Code
|
|
17
17
|
* adapter would have set, pointed at the advertised address instead of a loopback one. That keeps
|
|
@@ -24,9 +24,6 @@ export interface AttachResult {
|
|
|
24
24
|
modelExchanges: number;
|
|
25
25
|
events: number;
|
|
26
26
|
proxyUrl: string;
|
|
27
|
-
/** Replay sessions only: recorded exchanges served back, and requests nothing matched. */
|
|
28
|
-
reused: number;
|
|
29
|
-
unmatched: number;
|
|
30
27
|
/**
|
|
31
28
|
* Non-zero when replay cannot answer a request or recording coverage is incomplete.
|
|
32
29
|
* An operator stopping the session is normal; missing transport evidence still returns exit 2.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../src/commands/attach.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../src/commands/attach.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAaxC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/D;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,SAAgB,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAQvB"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { once } from 'node:events';
|
|
2
|
-
import {
|
|
2
|
+
import { TraceWriter, ensureRunsDir } from '@agenticreplay/core';
|
|
3
3
|
import { createProxy, } from '@agenticreplay/proxy';
|
|
4
4
|
import { defaultAdapters } from '@agenticreplay/adapters';
|
|
5
5
|
import { advertisedUrl, attachExports, attachInstructions } from '../attach.js';
|
|
6
6
|
import { ExchangeEventDeriver, appendDerivedEvents } from '../exchange-events.js';
|
|
7
7
|
import { SerialQueue } from '../serial.js';
|
|
8
|
-
import { planTlsCapture,
|
|
9
|
-
import { loadExchanges } from './replay.js';
|
|
8
|
+
import { planTlsCapture, setupTlsCapture, persistNetRequestStart, persistNetExchange, } from '../tls-capture.js';
|
|
10
9
|
import { upstreamPlan } from '../upstream.js';
|
|
11
10
|
import { AGENTICREPLAY_VERSION } from '../version.js';
|
|
12
11
|
export async function attachCommand(args, out, cwd = process.cwd(), options = {}) {
|
|
@@ -33,48 +32,15 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
33
32
|
port: requestedPort === 0 ? 1 : requestedPort,
|
|
34
33
|
...(advertise === undefined ? {} : { advertise }),
|
|
35
34
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
* `agenticreplay replay` launches the agent, which is right for a run agenticreplay recorded by launching it and
|
|
40
|
-
* impossible for one that came from a sandbox — the agent may not exist on this machine at all.
|
|
41
|
-
* So replay attaches too: same proxy, same matcher, same blocked egress, and the operator points
|
|
42
|
-
* the same remote agent at it.
|
|
43
|
-
*/
|
|
44
|
-
// The parser turns a flag with no value into `true`, so a bare `--replay` — or `--replay
|
|
45
|
-
// --tls-intercept`, where the next token is itself a flag — would read as absent and start a
|
|
46
|
-
// *recording* session against the live provider. That is the worst direction to fail in.
|
|
47
|
-
if (args.has('replay') && args.str('replay') === undefined) {
|
|
48
|
-
throw new Error('--replay needs the run to serve: agenticreplay attach --replay <run>, or --replay last');
|
|
49
|
-
}
|
|
50
|
-
const replaySelector = args.str('replay');
|
|
51
|
-
const replaying = replaySelector
|
|
52
|
-
? await (async () => {
|
|
53
|
-
const runDir = (await resolveRunSelector(cwd, replaySelector)).dir;
|
|
54
|
-
const reader = await TraceReader.open(runDir);
|
|
55
|
-
return {
|
|
56
|
-
exchanges: await loadExchanges(reader),
|
|
57
|
-
hosts: recordedTlsHosts(await reader.events()),
|
|
58
|
-
// Which harness made the recording. It will be the one connecting again, so it is the
|
|
59
|
-
// right default for the block the operator pastes.
|
|
60
|
-
adapter: reader.manifest().adapter?.id,
|
|
61
|
-
};
|
|
62
|
-
})()
|
|
63
|
-
: undefined;
|
|
64
|
-
/**
|
|
65
|
-
* `exec` is the honest default for a fresh session: agenticreplay does not know what will connect, and
|
|
66
|
-
* detecting an agent from this directory would be a guess about a machine it cannot see. For a
|
|
67
|
-
* replay it is the wrong default and a useless one — `exec` sets no variables, so the block the
|
|
68
|
-
* operator is meant to paste comes out empty. The recording names the harness, so use it.
|
|
69
|
-
*/
|
|
70
|
-
const adapterName = args.str('for') ?? replaying?.adapter ?? 'exec';
|
|
35
|
+
// The remote process is not visible locally, so the operator names its harness or uses exec.
|
|
36
|
+
const adapterName = args.str('for') ?? 'exec';
|
|
71
37
|
const adapter = registry.get(adapterName);
|
|
72
38
|
// The last thing that can refuse the run, and it runs before the trace exists: a writer created
|
|
73
39
|
// first and abandoned by a throw leaves an unsealed run directory behind, which then wins `last`
|
|
74
40
|
// — so the next command someone types operates on the session that never happened. Awaited
|
|
75
41
|
// since it grew the one refusal that needs the disk, an `AGENTICREPLAY_TLS_UPSTREAM_CA` that cannot be
|
|
76
42
|
// read; the guarantee here is unchanged, it just covers one more way to fail.
|
|
77
|
-
await planTlsCapture(args
|
|
43
|
+
await planTlsCapture(args);
|
|
78
44
|
// Before the run directory exists, because this refuses an upstream that is not an origin: resolved after it, a
|
|
79
45
|
// typo in `--upstream-*` left an empty run behind for `agenticreplay list` to show. It depends on nothing
|
|
80
46
|
// but the arguments and the environment, so there is no reason for it to run any later.
|
|
@@ -92,7 +58,6 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
92
58
|
});
|
|
93
59
|
let modelExchanges = 0;
|
|
94
60
|
let turn = 0;
|
|
95
|
-
let unmatched = 0;
|
|
96
61
|
const writes = new SerialQueue();
|
|
97
62
|
const attempts = new Map();
|
|
98
63
|
let terminalAttempts = 0;
|
|
@@ -110,7 +75,6 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
110
75
|
const tls = await setupTlsCapture({
|
|
111
76
|
args,
|
|
112
77
|
out,
|
|
113
|
-
...(replaying ? { recordedHosts: replaying.hosts } : {}),
|
|
114
78
|
writer,
|
|
115
79
|
writes,
|
|
116
80
|
// Out-of-band traffic belongs to whichever turn was in progress when it happened, exactly as in
|
|
@@ -121,13 +85,6 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
121
85
|
});
|
|
122
86
|
if (tls.ca)
|
|
123
87
|
minted.push(tls.ca);
|
|
124
|
-
// Read before the proxy closes: `stats()` is a snapshot of a live object, and the teardown in
|
|
125
|
-
// `finally` is the last moment it is still meaningful.
|
|
126
|
-
let stats = {
|
|
127
|
-
matchedExact: 0,
|
|
128
|
-
matchedInexact: 0,
|
|
129
|
-
unmatched: 0,
|
|
130
|
-
};
|
|
131
88
|
const deriver = new ExchangeEventDeriver();
|
|
132
89
|
// BEFORE THE PROXY, NOT AFTER: `createProxy` is listening by the time it returns, and the first
|
|
133
90
|
// thing a remote agent sends becomes an event. `attach` wrote no run.start at all, so every
|
|
@@ -141,10 +98,6 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
141
98
|
attrs: { adapter: adapter.id, cwd, attached: true },
|
|
142
99
|
});
|
|
143
100
|
const proxy = await createProxy({
|
|
144
|
-
// A replay session serves the recording and blocks egress, exactly as `agenticreplay replay` does. The
|
|
145
|
-
// only difference is which side starts the agent, and that is not a difference the proxy has.
|
|
146
|
-
mode: replaying ? 'replay' : 'record',
|
|
147
|
-
...(replaying ? { exchanges: replaying.exchanges, loose: args.bool('loose') } : {}),
|
|
148
101
|
host: bind,
|
|
149
102
|
port: requestedPort,
|
|
150
103
|
upstream: plan.upstream,
|
|
@@ -153,9 +106,6 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
153
106
|
...tls.proxyOptions,
|
|
154
107
|
onRequestStart: start,
|
|
155
108
|
onNetExchange: finish,
|
|
156
|
-
onUnmatched: () => {
|
|
157
|
-
unmatched += 1;
|
|
158
|
-
},
|
|
159
109
|
onExchange: (exchange) => {
|
|
160
110
|
modelExchanges += 1;
|
|
161
111
|
const at = exchange.requestId ? (attempts.get(exchange.requestId) ?? 0) : 0;
|
|
@@ -196,15 +146,6 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
196
146
|
run: writer.runId,
|
|
197
147
|
proxy: proxyUrl,
|
|
198
148
|
for: adapter.id,
|
|
199
|
-
...(replaying
|
|
200
|
-
? {
|
|
201
|
-
serving: replaySelector,
|
|
202
|
-
exchanges: replaying.exchanges.length,
|
|
203
|
-
// Same flag, same reason as `agenticreplay replay`: attach takes `--loose` too and passes it
|
|
204
|
-
// to the same proxy, so the label has to come from it rather than be assumed.
|
|
205
|
-
egress: args.bool('loose') ? 'live-on-unmatched' : 'blocked',
|
|
206
|
-
}
|
|
207
|
-
: {}),
|
|
208
149
|
});
|
|
209
150
|
if (proxy.tls) {
|
|
210
151
|
out.warn('tls.intercepting', {
|
|
@@ -261,14 +202,11 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
261
202
|
for (const line of instructions)
|
|
262
203
|
out.plain(` ${line}`);
|
|
263
204
|
out.plain('');
|
|
264
|
-
out.plain(
|
|
265
|
-
? ' Serving the recording. Press ctrl-C when the agent is done.'
|
|
266
|
-
: ' Recording. Press ctrl-C when the agent is done.');
|
|
205
|
+
out.plain(' Recording. Press ctrl-C when the agent is done.');
|
|
267
206
|
options.onReady?.({ proxyUrl, runId: writer.runId });
|
|
268
207
|
await (options.until ?? firstInterrupt());
|
|
269
208
|
}
|
|
270
209
|
finally {
|
|
271
|
-
stats = proxy.stats();
|
|
272
210
|
await proxy.close();
|
|
273
211
|
await writes.drain().catch(() => writer.markCaptureIncomplete('storage_failure'));
|
|
274
212
|
await tls.ca?.dispose();
|
|
@@ -278,24 +216,23 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
278
216
|
* given the block — or was given it in a shell that had already started the agent — produces a
|
|
279
217
|
* session that ends cleanly and records nothing, and there is no exit code to hint at it.
|
|
280
218
|
*/
|
|
281
|
-
if (modelExchanges === 0
|
|
219
|
+
if (modelExchanges === 0) {
|
|
282
220
|
out.warn('capture.empty', {
|
|
283
221
|
exchanges: 0,
|
|
284
222
|
cause: 'nothing connected to the proxy while the session was open',
|
|
285
223
|
next: 'check the sandbox can reach the advertised address, and that the exports were set',
|
|
286
224
|
});
|
|
287
225
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
});
|
|
226
|
+
writer.setCaptureSummary({
|
|
227
|
+
status: terminalAttempts > 0 && terminalAttempts === attempts.size ? 'complete' : 'incomplete',
|
|
228
|
+
issues: terminalAttempts === 0
|
|
229
|
+
? ['no_requests_observed']
|
|
230
|
+
: terminalAttempts !== attempts.size
|
|
231
|
+
? ['unfinalized_request']
|
|
232
|
+
: [],
|
|
233
|
+
requests: attempts.size,
|
|
234
|
+
responses: terminalAttempts,
|
|
235
|
+
});
|
|
299
236
|
// The other half of the bracket. `close` seals the manifest; it does not write the event.
|
|
300
237
|
await writer.append({
|
|
301
238
|
type: 'run.end',
|
|
@@ -304,24 +241,12 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
304
241
|
attrs: { exchanges: modelExchanges },
|
|
305
242
|
});
|
|
306
243
|
const manifest = await writer.close(0);
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
reused: `${stats.matchedExact + stats.matchedInexact}/${replaying.exchanges.length}`,
|
|
314
|
-
unmatched: stats.unmatched,
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
out.info('recorded', {
|
|
319
|
-
run: writer.runId,
|
|
320
|
-
events: manifest.counts?.events ?? 0,
|
|
321
|
-
exchanges: modelExchanges,
|
|
322
|
-
dir: writer.runDir,
|
|
323
|
-
});
|
|
324
|
-
}
|
|
244
|
+
out.info('recorded', {
|
|
245
|
+
run: writer.runId,
|
|
246
|
+
events: manifest.counts?.events ?? 0,
|
|
247
|
+
exchanges: modelExchanges,
|
|
248
|
+
dir: writer.runDir,
|
|
249
|
+
});
|
|
325
250
|
return {
|
|
326
251
|
runId: writer.runId,
|
|
327
252
|
runDir: writer.runDir,
|
|
@@ -330,17 +255,7 @@ async function runAttached(args, out, cwd, options, minted) {
|
|
|
330
255
|
// The address the agent should use, not the one agenticreplay bound — a caller reading this from
|
|
331
256
|
// `--json` needs something it can connect to, which a wildcard bind is not.
|
|
332
257
|
proxyUrl: advertised,
|
|
333
|
-
|
|
334
|
-
// The distinction between them is a divergence, and divergences are reported on their own.
|
|
335
|
-
reused: replaying ? stats.matchedExact + stats.matchedInexact : 0,
|
|
336
|
-
unmatched: replaying ? stats.unmatched : unmatched,
|
|
337
|
-
exitCode: replaying
|
|
338
|
-
? stats.unmatched > 0
|
|
339
|
-
? 1
|
|
340
|
-
: 0
|
|
341
|
-
: manifest.capture?.status === 'incomplete'
|
|
342
|
-
? 2
|
|
343
|
-
: 0,
|
|
258
|
+
exitCode: manifest.capture?.status === 'incomplete' ? 2 : 0,
|
|
344
259
|
};
|
|
345
260
|
}
|
|
346
261
|
/** Ctrl-C, which is the only way an operator ends a session with no child process to wait on. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/commands/attach.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/commands/attach.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMxD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Render an estimated dollar amount without making a small non-zero charge look free. */
|
|
2
|
+
export function formatCost(amount) {
|
|
3
|
+
if (amount === null)
|
|
4
|
+
return '—';
|
|
5
|
+
if (amount === 0)
|
|
6
|
+
return '$0';
|
|
7
|
+
if (amount < 0.0001)
|
|
8
|
+
return `$${amount.toExponential(2)}`;
|
|
9
|
+
if (amount < 0.01)
|
|
10
|
+
return `$${amount.toFixed(6)}`;
|
|
11
|
+
return `$${amount.toFixed(4)}`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,MAAqB;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAChC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,MAAM,GAAG,MAAM;QAAE,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,IAAI,MAAM,GAAG,IAAI;QAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -2,8 +2,6 @@ import type { ParsedArgs } from '../args.js';
|
|
|
2
2
|
import type { Output } from '../out.js';
|
|
3
3
|
export interface GcResult {
|
|
4
4
|
runsRemoved: number;
|
|
5
|
-
/** Scratch fork worktrees reclaimed alongside their runs. */
|
|
6
|
-
worktreesRemoved: number;
|
|
7
5
|
blobsRemoved: number;
|
|
8
6
|
bytesReclaimed: number;
|
|
9
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/commands/gc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/commands/gc.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAcD,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAqBD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,SAAgB,GAClB,OAAO,CAAC,QAAQ,CAAC,CA8GnB;AAsHD,4FAA4F;AAC5F,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY9D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUjD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createReadStream } from 'node:fs';
|
|
2
2
|
import { readFile, readdir, rm, rmdir, stat, unlink } from 'node:fs/promises';
|
|
3
|
-
import {
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
5
4
|
import { createInterface } from 'node:readline';
|
|
6
5
|
import { listRuns, runsDir } from '@agenticreplay/core';
|
|
7
6
|
const UNITS = {
|
|
@@ -39,7 +38,7 @@ export async function gcCommand(args, out, cwd = process.cwd()) {
|
|
|
39
38
|
const runs = await listRuns(cwd);
|
|
40
39
|
if (runs.length === 0) {
|
|
41
40
|
out.plain(`no runs in ${runsDir(cwd)} — nothing to reclaim`);
|
|
42
|
-
return { runsRemoved: 0,
|
|
41
|
+
return { runsRemoved: 0, blobsRemoved: 0, bytesReclaimed: 0 };
|
|
43
42
|
}
|
|
44
43
|
const facts = [];
|
|
45
44
|
for (const run of runs)
|
|
@@ -88,7 +87,6 @@ export async function gcCommand(args, out, cwd = process.cwd()) {
|
|
|
88
87
|
out.warn('gc.parent_kept', { run: parent, child, why: 'a surviving run forked from it' });
|
|
89
88
|
}
|
|
90
89
|
let runsRemoved = 0;
|
|
91
|
-
let worktreesRemoved = 0;
|
|
92
90
|
let blobsRemoved = 0;
|
|
93
91
|
let bytesReclaimed = 0;
|
|
94
92
|
for (const run of facts) {
|
|
@@ -98,16 +96,6 @@ export async function gcCommand(args, out, cwd = process.cwd()) {
|
|
|
98
96
|
bytesReclaimed += run.bytes;
|
|
99
97
|
if (!dryRun)
|
|
100
98
|
await rm(run.dir, { recursive: true, force: true });
|
|
101
|
-
// The fork's scratch worktree goes with its run. It is deliberately *not* removed when the
|
|
102
|
-
// fork finishes — it holds what the model actually did, so deleting it then would destroy the
|
|
103
|
-
// thing you forked in order to look at — but nothing reclaimed it either, so a single
|
|
104
|
-
// `agenticreplay compare --models a,b,c,d` left four full copies of the workspace behind forever.
|
|
105
|
-
if (run.worktree !== undefined) {
|
|
106
|
-
worktreesRemoved += 1;
|
|
107
|
-
bytesReclaimed += await runDirBytes(run.worktree);
|
|
108
|
-
if (!dryRun)
|
|
109
|
-
await rm(run.worktree, { recursive: true, force: true });
|
|
110
|
-
}
|
|
111
99
|
}
|
|
112
100
|
for (const run of facts) {
|
|
113
101
|
if (doomed.has(run.runId))
|
|
@@ -145,29 +133,11 @@ export async function gcCommand(args, out, cwd = process.cwd()) {
|
|
|
145
133
|
}
|
|
146
134
|
out.phase('gc', {
|
|
147
135
|
runs: runsRemoved,
|
|
148
|
-
worktrees: worktreesRemoved || undefined,
|
|
149
136
|
blobs: blobsRemoved,
|
|
150
137
|
bytes: bytesReclaimed,
|
|
151
138
|
dry_run: dryRun || undefined,
|
|
152
139
|
});
|
|
153
|
-
return { runsRemoved,
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Does this path look like a directory agenticreplay made for a fork to run in?
|
|
157
|
-
*
|
|
158
|
-
* Deliberately narrow, and deliberately only half the test — the caller also requires the run to
|
|
159
|
-
* carry a `fork_point`. Directly inside the OS temp directory, with the prefix `replayFork` uses.
|
|
160
|
-
* Anything else is left alone, including a fork whose worktree someone moved somewhere they care
|
|
161
|
-
* about: an unreclaimed directory costs disk, and the alternative costs somebody's work.
|
|
162
|
-
*
|
|
163
|
-
* So `agenticreplay replay --worktree` is out of reach here, because an exact replay's trace has no fork
|
|
164
|
-
* point. That is the right way round: you asked for a scratch copy to look at, agenticreplay printed where
|
|
165
|
-
* it put it, and a garbage collector that deletes the thing you asked to keep is worse than one
|
|
166
|
-
* that leaves a directory behind. The pre-replay safety snapshot is not gc's problem either —
|
|
167
|
-
* replay owns that one and removes it once your files are back.
|
|
168
|
-
*/
|
|
169
|
-
function isScratchWorktree(dir) {
|
|
170
|
-
return resolve(dirname(dir)) === resolve(tmpdir()) && basename(dir).startsWith('agenticreplay-');
|
|
140
|
+
return { runsRemoved, blobsRemoved, bytesReclaimed };
|
|
171
141
|
}
|
|
172
142
|
function readOlderThan(args) {
|
|
173
143
|
if (!args.has('older-than'))
|
|
@@ -206,20 +176,6 @@ async function inspectRun(runId, dir, createdAt) {
|
|
|
206
176
|
const manifest = JSON.parse(await readFile(join(dir, 'manifest.json'), 'utf8'));
|
|
207
177
|
if (typeof manifest.parent_run === 'string')
|
|
208
178
|
facts.parentRun = manifest.parent_run;
|
|
209
|
-
// Only a fork's cwd is ever ours to delete. A plain recording runs in the user's project, and
|
|
210
|
-
// `gc` removing that would be the worst bug this tool could have — so the fork check is the
|
|
211
|
-
// load-bearing half of the guard, and the path check is the belt.
|
|
212
|
-
//
|
|
213
|
-
// The fork check is `fork_point`, not `parent_run`. It used to be the latter, back when the
|
|
214
|
-
// only run with a parent was a fork; an exact replay now writes a trace of its own findings
|
|
215
|
-
// that also names a parent, and it ran in the user's *own* directory. A project that happens
|
|
216
|
-
// to live at $TMPDIR/agenticreplay-something would have satisfied the belt on its own, and the run
|
|
217
|
-
// holding the evidence of what happened there is the one gc would have used to delete it.
|
|
218
|
-
if (typeof manifest.fork_point === 'number' &&
|
|
219
|
-
typeof manifest.cwd === 'string' &&
|
|
220
|
-
isScratchWorktree(manifest.cwd)) {
|
|
221
|
-
facts.worktree = manifest.cwd;
|
|
222
|
-
}
|
|
223
179
|
sealed = typeof manifest.ended_at === 'string';
|
|
224
180
|
}
|
|
225
181
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.js","sourceRoot":"","sources":["../../src/commands/gc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gc.js","sourceRoot":"","sources":["../../src/commands/gc.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,6 @@ export declare function listCommand(args: ParsedArgs, out: Output, cwd?: string,
|
|
|
15
15
|
export declare function gatewayRunsFor(args: ParsedArgs, out: Output, env?: NodeJS.ProcessEnv): Promise<GatewayRun[]>;
|
|
16
16
|
/** `agenticreplay show` — the timeline, in the terminal. */
|
|
17
17
|
export declare function showCommand(args: ParsedArgs, out: Output, cwd?: string): Promise<void>;
|
|
18
|
-
/** `agenticreplay checkpoints` — where can I fork from? */
|
|
19
|
-
export declare function checkpointsCommand(args: ParsedArgs, out: Output, cwd?: string): Promise<void>;
|
|
20
18
|
/**
|
|
21
19
|
* `agenticreplay graph` — what caused what.
|
|
22
20
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAUA,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,+DAA+D;AAC/D,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,SAAgB,EACnB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB;AAyDD,4DAA4D;AAC5D,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,SAAgB,GAClB,OAAO,CAAC,IAAI,CAAC,CAgFf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,SAAgB,GAClB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,6DAA6D;AAC7D,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAExE;AAyBD,4FAA4F;AAC5F,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,SAAgB,GAClB,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAED,4DAA4D;AAC5D,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjG;AA+BD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CAuBjG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { writeFile } from 'node:fs/promises';
|
|
3
|
-
import { TraceReader, chainTo,
|
|
3
|
+
import { TraceReader, chainTo, listRuns, pickChainTarget, resolveRunSelector, runGraph, } from '@agenticreplay/core';
|
|
4
4
|
import { listGatewayRuns, readSource } from './sync.js';
|
|
5
5
|
import { buildTimeline, detectLoops, exportTraceHtml, serveViewer, summarize, } from '@agenticreplay/viewer';
|
|
6
6
|
import { priceFor } from '@agenticreplay/providers';
|
|
7
|
-
import { formatCost } from './
|
|
7
|
+
import { formatCost } from './cost.js';
|
|
8
8
|
import { renderChainCard, renderGraphCard, scopeForCard } from '../share-card.js';
|
|
9
9
|
import { cardTarget, gifFrames, svgToPng, svgsToGif } from '../rasterize.js';
|
|
10
10
|
import { recordableOrigin, unusableOrigin } from '@agenticreplay/proxy';
|
|
@@ -21,20 +21,8 @@ export async function listCommand(args, out, cwd = process.cwd(), env = process.
|
|
|
21
21
|
out.plain(' agenticreplay record claude # record one');
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
out.table(['RUN', 'CREATED', 'FROM', 'DIR'], runs.map((r) => [
|
|
27
|
-
r.runId,
|
|
28
|
-
r.createdAt,
|
|
29
|
-
// `@<seq>` only where there is a fork point. A replay trace has a parent and no checkpoint,
|
|
30
|
-
// and `run_x@?` reads as missing data rather than as the different thing it is.
|
|
31
|
-
r.parentRun === undefined
|
|
32
|
-
? ''
|
|
33
|
-
: r.forkPoint === undefined
|
|
34
|
-
? r.parentRun
|
|
35
|
-
: `${r.parentRun}@${r.forkPoint}`,
|
|
36
|
-
r.dir,
|
|
37
|
-
]));
|
|
24
|
+
// Keep a parent relation visible when reading an older run with replay provenance.
|
|
25
|
+
out.table(['RUN', 'CREATED', 'FROM', 'DIR'], runs.map((r) => [r.runId, r.createdAt, r.parentRun ?? '', r.dir]));
|
|
38
26
|
}
|
|
39
27
|
/**
|
|
40
28
|
* The gateway's runs, with the notice both callers owe the reader.
|
|
@@ -171,20 +159,6 @@ export async function showCommand(args, out, cwd = process.cwd()) {
|
|
|
171
159
|
});
|
|
172
160
|
}
|
|
173
161
|
}
|
|
174
|
-
/** `agenticreplay checkpoints` — where can I fork from? */
|
|
175
|
-
export async function checkpointsCommand(args, out, cwd = process.cwd()) {
|
|
176
|
-
const reader = await TraceReader.open((await resolveRunSelector(cwd, args.positionals[0] ?? 'last')).dir);
|
|
177
|
-
const events = await reader.events();
|
|
178
|
-
const checkpoints = deriveCheckpoints(events);
|
|
179
|
-
if (checkpoints.length === 0) {
|
|
180
|
-
out.plain('no checkpoints in this run');
|
|
181
|
-
out.plain(' checkpoints need a filesystem snapshot; was this recorded with --no-fs?');
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
out.table(['SEQ', 'TURN', 'TREE'], checkpoints.map((c) => [String(c.seq), String(c.turn), (c.fsTree ?? '').slice(0, 12)]));
|
|
185
|
-
out.plain('');
|
|
186
|
-
out.plain(` agenticreplay replay last --from ${checkpoints.at(-1).seq} --model <other-model>`);
|
|
187
|
-
}
|
|
188
162
|
/**
|
|
189
163
|
* `agenticreplay graph` — what caused what.
|
|
190
164
|
*
|