agenticreplay 0.1.11 → 0.1.13

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.
Files changed (99) hide show
  1. package/README.md +6 -0
  2. package/node_modules/@agenticreplay/adapters/package.json +6 -6
  3. package/node_modules/@agenticreplay/core/package.json +3 -3
  4. package/node_modules/@agenticreplay/fs-capture/dist/capture.d.ts +8 -0
  5. package/node_modules/@agenticreplay/fs-capture/dist/capture.d.ts.map +1 -1
  6. package/node_modules/@agenticreplay/fs-capture/dist/capture.js +7 -1
  7. package/node_modules/@agenticreplay/fs-capture/dist/capture.js.map +1 -1
  8. package/node_modules/@agenticreplay/fs-capture/package.json +2 -2
  9. package/node_modules/@agenticreplay/mcp-shim/dist/cli.js +0 -0
  10. package/node_modules/@agenticreplay/mcp-shim/package.json +1 -1
  11. package/node_modules/@agenticreplay/node-instrument/package.json +1 -1
  12. package/node_modules/@agenticreplay/plugin-api/dist/index.d.ts +1 -0
  13. package/node_modules/@agenticreplay/plugin-api/dist/index.d.ts.map +1 -1
  14. package/node_modules/@agenticreplay/plugin-api/dist/index.js +1 -0
  15. package/node_modules/@agenticreplay/plugin-api/dist/index.js.map +1 -1
  16. package/node_modules/@agenticreplay/plugin-api/dist/memory-review.d.ts +35 -0
  17. package/node_modules/@agenticreplay/plugin-api/dist/memory-review.d.ts.map +1 -0
  18. package/node_modules/@agenticreplay/plugin-api/dist/memory-review.js +2 -0
  19. package/node_modules/@agenticreplay/plugin-api/dist/memory-review.js.map +1 -0
  20. package/node_modules/@agenticreplay/plugin-api/package.json +1 -1
  21. package/node_modules/@agenticreplay/providers/package.json +3 -3
  22. package/node_modules/@agenticreplay/proxy/dist/request-body.d.ts +9 -0
  23. package/node_modules/@agenticreplay/proxy/dist/request-body.d.ts.map +1 -0
  24. package/node_modules/@agenticreplay/proxy/dist/request-body.js +65 -0
  25. package/node_modules/@agenticreplay/proxy/dist/request-body.js.map +1 -0
  26. package/node_modules/@agenticreplay/proxy/dist/server.d.ts +3 -0
  27. package/node_modules/@agenticreplay/proxy/dist/server.d.ts.map +1 -1
  28. package/node_modules/@agenticreplay/proxy/dist/server.js +121 -124
  29. package/node_modules/@agenticreplay/proxy/dist/server.js.map +1 -1
  30. package/node_modules/@agenticreplay/proxy/package.json +5 -5
  31. package/node_modules/@agenticreplay/schema/package.json +1 -1
  32. package/node_modules/@agenticreplay/shell-shim/package.json +3 -3
  33. package/node_modules/@agenticreplay/viewer/dist/index.d.ts +1 -0
  34. package/node_modules/@agenticreplay/viewer/dist/index.d.ts.map +1 -1
  35. package/node_modules/@agenticreplay/viewer/dist/index.js +1 -0
  36. package/node_modules/@agenticreplay/viewer/dist/index.js.map +1 -1
  37. package/node_modules/@agenticreplay/viewer/dist/review.d.ts +41 -0
  38. package/node_modules/@agenticreplay/viewer/dist/review.d.ts.map +1 -0
  39. package/node_modules/@agenticreplay/viewer/dist/review.js +206 -0
  40. package/node_modules/@agenticreplay/viewer/dist/review.js.map +1 -0
  41. package/node_modules/@agenticreplay/viewer/package.json +2 -2
  42. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  43. package/node_modules/fast-uri/README.md +8 -0
  44. package/node_modules/fast-uri/index.js +98 -18
  45. package/node_modules/fast-uri/lib/utils.js +52 -0
  46. package/node_modules/fast-uri/package.json +1 -1
  47. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  48. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  49. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  50. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  51. package/package.json +12 -12
  52. package/packages/cli/dist/args.d.ts.map +1 -1
  53. package/packages/cli/dist/args.js +1 -0
  54. package/packages/cli/dist/args.js.map +1 -1
  55. package/packages/cli/dist/cli.js +0 -0
  56. package/packages/cli/dist/commands/attach.js +1 -0
  57. package/packages/cli/dist/commands/attach.js.map +1 -1
  58. package/packages/cli/dist/commands/record.d.ts.map +1 -1
  59. package/packages/cli/dist/commands/record.js +44 -15
  60. package/packages/cli/dist/commands/record.js.map +1 -1
  61. package/packages/cli/dist/commands/review.d.ts +4 -0
  62. package/packages/cli/dist/commands/review.d.ts.map +1 -0
  63. package/packages/cli/dist/commands/review.js +54 -0
  64. package/packages/cli/dist/commands/review.js.map +1 -0
  65. package/packages/cli/dist/config.d.ts +3 -0
  66. package/packages/cli/dist/config.d.ts.map +1 -1
  67. package/packages/cli/dist/config.js.map +1 -1
  68. package/packages/cli/dist/exchange-events.d.ts +2 -0
  69. package/packages/cli/dist/exchange-events.d.ts.map +1 -1
  70. package/packages/cli/dist/exchange-events.js +36 -24
  71. package/packages/cli/dist/exchange-events.js.map +1 -1
  72. package/packages/cli/dist/flags.d.ts.map +1 -1
  73. package/packages/cli/dist/flags.js +2 -0
  74. package/packages/cli/dist/flags.js.map +1 -1
  75. package/packages/cli/dist/fs-events.d.ts.map +1 -1
  76. package/packages/cli/dist/fs-events.js +16 -0
  77. package/packages/cli/dist/fs-events.js.map +1 -1
  78. package/packages/cli/dist/main.d.ts.map +1 -1
  79. package/packages/cli/dist/main.js +6 -0
  80. package/packages/cli/dist/main.js.map +1 -1
  81. package/packages/cli/dist/out.d.ts +6 -0
  82. package/packages/cli/dist/out.d.ts.map +1 -1
  83. package/packages/cli/dist/out.js +50 -5
  84. package/packages/cli/dist/out.js.map +1 -1
  85. package/packages/cli/dist/review-coordinator.d.ts +16 -0
  86. package/packages/cli/dist/review-coordinator.d.ts.map +1 -0
  87. package/packages/cli/dist/review-coordinator.js +141 -0
  88. package/packages/cli/dist/review-coordinator.js.map +1 -0
  89. package/packages/cli/dist/review-store.d.ts +24 -0
  90. package/packages/cli/dist/review-store.d.ts.map +1 -0
  91. package/packages/cli/dist/review-store.js +159 -0
  92. package/packages/cli/dist/review-store.js.map +1 -0
  93. package/packages/cli/dist/snapshot.d.ts +2 -0
  94. package/packages/cli/dist/snapshot.d.ts.map +1 -1
  95. package/packages/cli/dist/snapshot.js.map +1 -1
  96. package/packages/cli/dist/tls-capture.d.ts.map +1 -1
  97. package/packages/cli/dist/tls-capture.js +4 -3
  98. package/packages/cli/dist/tls-capture.js.map +1 -1
  99. package/packages/cli/package.json +11 -11
package/README.md CHANGED
@@ -60,6 +60,12 @@ contain sensitive data. Review them before sharing.
60
60
  See [integrations](docs/integrations.md) for other harnesses and
61
61
  [debugging a failing run](docs/how-to/debug-a-failing-agent-run.md) for an example.
62
62
 
63
+ ## Post-recording review
64
+
65
+ The optional [memory review queue](docs/memory-review.md) tracks a finished CLI recording and lets
66
+ you reopen its review by exact run ID. Candidate preparation and saving need a compatible
67
+ Kiokuko host integration.
68
+
63
69
  ## License
64
70
 
65
71
  Apache-2.0. Trace specification: CC BY 4.0.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/adapters",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -17,11 +17,11 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@agenticreplay/core": "0.1.11",
21
- "@agenticreplay/node-instrument": "0.1.11",
22
- "@agenticreplay/plugin-api": "0.1.11",
23
- "@agenticreplay/proxy": "0.1.11",
24
- "@agenticreplay/shell-shim": "0.1.11"
20
+ "@agenticreplay/core": "0.1.13",
21
+ "@agenticreplay/node-instrument": "0.1.13",
22
+ "@agenticreplay/plugin-api": "0.1.13",
23
+ "@agenticreplay/proxy": "0.1.13",
24
+ "@agenticreplay/shell-shim": "0.1.13"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=24.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/core",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -17,8 +17,8 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@agenticreplay/plugin-api": "0.1.11",
21
- "@agenticreplay/schema": "0.1.11",
20
+ "@agenticreplay/plugin-api": "0.1.13",
21
+ "@agenticreplay/schema": "0.1.13",
22
22
  "any-ascii": "0.3.3"
23
23
  },
24
24
  "engines": {
@@ -11,6 +11,14 @@ export interface FsCaptureOptions {
11
11
  }
12
12
  export interface TurnSnapshot {
13
13
  changes: FileChange[];
14
+ /**
15
+ * The turn whose sample already covers this turn's window, set only when this call sampled
16
+ * nothing because that later turn was sampled first: the harness can hold exchanges in flight
17
+ * at once, so they reach the recorder in completion order, not request order. Re-sampling
18
+ * would describe the tree as it is *after* that later turn and reattribute its changes to this
19
+ * turn. Absent from every ordinary snapshot, whose diff is complete for its own window.
20
+ */
21
+ coveredBy?: number;
14
22
  /**
15
23
  * Nested repositories inside a declared artifact path that this snapshot could not hold, named
16
24
  * the first time each is seen. Absent from every ordinary snapshot; see
@@ -1 +1 @@
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"}
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;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;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;IA6BvD,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"}
@@ -50,7 +50,13 @@ export class FsCapture {
50
50
  throw new Error(`turn must be a non-negative integer, got ${turn}`);
51
51
  }
52
52
  if (turn < this.lastTurn) {
53
- throw new Error(`turn ${turn} is before the last snapshotted turn ${this.lastTurn}`);
53
+ // Out of order, not corruption. A gone-backwards turn means the recorder sampled a later
54
+ // turn first — the harness had exchanges in flight at once, so completion order is not
55
+ // request order, and a turn can arrive after its own window was covered. The later
56
+ // sample is the one that saw that tree; sampling again now would describe the tree as it
57
+ // is after that later turn and reattribute its changes to this turn. So no sample, and
58
+ // the flag tells the caller to record, not warn.
59
+ return { changes: [], coveredBy: this.lastTurn };
54
60
  }
55
61
  const tree = await this.shadow.snapshot();
56
62
  const previous = this.previousTree;
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/fs-capture",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -17,7 +17,7 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@agenticreplay/schema": "0.1.11"
20
+ "@agenticreplay/schema": "0.1.13"
21
21
  },
22
22
  "engines": {
23
23
  "node": ">=24.0.0"
File without changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/mcp-shim",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/node-instrument",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -1,3 +1,4 @@
1
1
  export * from './canonical.js';
2
2
  export * from './plugins.js';
3
+ export * from './memory-review.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './canonical.js';
2
2
  export * from './plugins.js';
3
+ export * from './memory-review.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /** A sealed recording of a single CLI process. It can span multiple conversation turns. */
2
+ export interface RecordingReviewSource {
3
+ readonly version: 1;
4
+ readonly kind: 'recorded_process';
5
+ readonly repository: string;
6
+ readonly runId: string;
7
+ readonly hostSessionId: null;
8
+ readonly range: {
9
+ readonly kind: 'whole_run';
10
+ readonly events: number;
11
+ };
12
+ readonly manifestDigest: string;
13
+ readonly eventsDigest: string;
14
+ readonly capture: 'complete' | 'incomplete' | 'unverified';
15
+ readonly captureIssues: readonly string[];
16
+ readonly exitCode: number;
17
+ }
18
+ export interface ReviewCandidate {
19
+ readonly title: string;
20
+ readonly body: string;
21
+ readonly evidence: readonly {
22
+ readonly sequence: number;
23
+ readonly kind: 'observed' | 'inferred' | 'unverified';
24
+ readonly description: string;
25
+ }[];
26
+ }
27
+ /** Read-only host integration. The preparer owns trace input validation and secret removal. */
28
+ export interface ReviewPreparer {
29
+ prepare(input: {
30
+ source: RecordingReviewSource;
31
+ traceDirectory: string;
32
+ signal: AbortSignal;
33
+ }): Promise<ReviewCandidate | null>;
34
+ }
35
+ //# sourceMappingURL=memory-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-review.d.ts","sourceRoot":"","sources":["../src/memory-review.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;QACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,EAAE,CAAC;CACL;AAED,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,KAAK,EAAE;QACb,MAAM,EAAE,qBAAqB,CAAC;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,WAAW,CAAC;KACrB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-review.js","sourceRoot":"","sources":["../src/memory-review.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/plugin-api",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticreplay/providers",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -17,8 +17,8 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@agenticreplay/plugin-api": "0.1.11",
21
- "@agenticreplay/schema": "0.1.11"
20
+ "@agenticreplay/plugin-api": "0.1.13",
21
+ "@agenticreplay/schema": "0.1.13"
22
22
  },
23
23
  "engines": {
24
24
  "node": ">=24.0.0"
@@ -0,0 +1,9 @@
1
+ import type { IncomingMessage } from 'node:http';
2
+ /** A capture limit limits retention, never the request sent to the provider. */
3
+ export declare function readRequestBody(req: IncomingMessage, limit: number, reserve: (bytes: number) => boolean, release: (bytes: number) => void): Promise<{
4
+ buffer?: Buffer;
5
+ stream?: ReadableStream<Uint8Array>;
6
+ bytes: () => number;
7
+ dispose: () => void;
8
+ }>;
9
+ //# sourceMappingURL=request-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body.d.ts","sourceRoot":"","sources":["../src/request-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,gFAAgF;AAChF,wBAAsB,eAAe,CACnC,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,EACnC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC,CA4DD"}
@@ -0,0 +1,65 @@
1
+ import { Readable } from 'node:stream';
2
+ /** A capture limit limits retention, never the request sent to the provider. */
3
+ export async function readRequestBody(req, limit, reserve, release) {
4
+ const chunks = [];
5
+ const iterator = req[Symbol.asyncIterator]();
6
+ let bytes = 0;
7
+ let reserved = 0;
8
+ const dispose = () => {
9
+ release(reserved);
10
+ reserved = 0;
11
+ chunks.length = 0;
12
+ };
13
+ try {
14
+ while (true) {
15
+ const next = await iterator.next();
16
+ if (next.done)
17
+ return { buffer: Buffer.concat(chunks), bytes: () => bytes, dispose };
18
+ const chunk = next.value;
19
+ bytes += chunk.length;
20
+ if (bytes <= limit && reserve(chunk.length)) {
21
+ reserved += chunk.length;
22
+ chunks.push(chunk);
23
+ continue;
24
+ }
25
+ // Do not exit a for-await loop here: its implicit return() destroys IncomingMessage.
26
+ // Hand the same iterator to fetch and stream the remainder with its backpressure.
27
+ async function* forward() {
28
+ try {
29
+ while (chunks.length > 0) {
30
+ const prefix = chunks.shift();
31
+ yield prefix;
32
+ const held = Math.min(reserved, prefix.length);
33
+ reserved -= held;
34
+ release(held);
35
+ }
36
+ yield chunk;
37
+ while (true) {
38
+ const part = await iterator.next();
39
+ if (part.done)
40
+ return;
41
+ const tail = part.value;
42
+ bytes += tail.length;
43
+ yield tail;
44
+ }
45
+ }
46
+ finally {
47
+ dispose();
48
+ await iterator.return?.();
49
+ }
50
+ }
51
+ return {
52
+ stream: Readable.toWeb(Readable.from(forward(), { objectMode: false, highWaterMark: 65536 }), {
53
+ strategy: { highWaterMark: 65536, size: (chunk) => chunk.byteLength },
54
+ }),
55
+ bytes: () => bytes,
56
+ dispose,
57
+ };
58
+ }
59
+ }
60
+ catch (error) {
61
+ dispose();
62
+ throw error;
63
+ }
64
+ }
65
+ //# sourceMappingURL=request-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body.js","sourceRoot":"","sources":["../src/request-body.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAoB,EACpB,KAAa,EACb,OAAmC,EACnC,OAAgC;IAOhC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,QAAQ,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACrF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;YACnC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,qFAAqF;YACrF,kFAAkF;YAClF,KAAK,SAAS,CAAC,CAAC,OAAO;gBACrB,IAAI,CAAC;oBACH,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAG,CAAC;wBAC/B,MAAM,MAAM,CAAC;wBACb,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC/C,QAAQ,IAAI,IAAI,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;oBACD,MAAM,KAAK,CAAC;oBACZ,OAAO,IAAI,EAAE,CAAC;wBACZ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,IAAI,IAAI,CAAC,IAAI;4BAAE,OAAO;wBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAe,CAAC;wBAClC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;wBACrB,MAAM,IAAI,CAAC;oBACb,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,EAAE,CAAC;oBACV,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,KAAK,CACpB,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EACrE;oBACE,QAAQ,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;iBAClF,CAC4B;gBAC/B,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;gBAClB,OAAO;aACR,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -140,6 +140,8 @@ export interface ProxyOptions {
140
140
  upstream?: Record<string, string>;
141
141
  dialects?: Dialect[];
142
142
  onExchange?: (e: RecordedExchange) => void;
143
+ /** Keep completed bodies for exchanges(); default true. Disk recorders should disable this. */
144
+ retainExchanges?: boolean;
143
145
  onRequestStart?: (request: NetRequest) => void | Promise<void>;
144
146
  maxCapturedBytes?: number;
145
147
  maxBufferedBytes?: number;
@@ -171,6 +173,7 @@ export interface ProxyHandle {
171
173
  url: string;
172
174
  port: number;
173
175
  stats(): ProxyStats;
176
+ /** Empty when retainExchanges is false; onExchange still receives every completed exchange. */
174
177
  exchanges(): RecordedExchange[];
175
178
  /** Present only when TLS interception is on. */
176
179
  tls?: TlsInterceptInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAa5F,OAAO,EAML,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAmHxB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAW/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAajE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAclD;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,+FAA+F;IAC/F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,GAAG,CAAC,EAAE,mBAAmB,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,UAAU,CAAC;IACpB,+FAA+F;IAC/F,SAAS,IAAI,gBAAgB,EAAE,CAAC;IAChC,gDAAgD;IAChD,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAsCD,wBAAgB,eAAe,IAAI,OAAO,EAAE,CAoB3C;AA+BD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA4tC7E"}