cuonztech-agent-harness 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +2 -0
  2. package/dist/benchmark/cta.d.ts +2 -0
  3. package/dist/benchmark/cta.d.ts.map +1 -1
  4. package/dist/benchmark/cta.js +4 -0
  5. package/dist/benchmark/cta.js.map +1 -1
  6. package/dist/benchmark/runner.js +9 -4
  7. package/dist/benchmark/runner.js.map +1 -1
  8. package/dist/core/report-generator.d.ts.map +1 -1
  9. package/dist/core/report-generator.js +30 -13
  10. package/dist/core/report-generator.js.map +1 -1
  11. package/dist/engine/state-machine.d.ts +5 -2
  12. package/dist/engine/state-machine.d.ts.map +1 -1
  13. package/dist/engine/state-machine.js +50 -4
  14. package/dist/engine/state-machine.js.map +1 -1
  15. package/dist/index.js +134 -5
  16. package/dist/index.js.map +1 -1
  17. package/dist/proxy/gateway.d.ts.map +1 -1
  18. package/dist/proxy/gateway.js +2 -1
  19. package/dist/proxy/gateway.js.map +1 -1
  20. package/dist/proxy/ghost-write.d.ts.map +1 -1
  21. package/dist/proxy/ghost-write.js +15 -4
  22. package/dist/proxy/ghost-write.js.map +1 -1
  23. package/dist/proxy/interceptor.d.ts +3 -4
  24. package/dist/proxy/interceptor.d.ts.map +1 -1
  25. package/dist/proxy/interceptor.js +71 -42
  26. package/dist/proxy/interceptor.js.map +1 -1
  27. package/dist/scenarios/f1-f5.d.ts.map +1 -1
  28. package/dist/scenarios/f1-f5.js +18 -6
  29. package/dist/scenarios/f1-f5.js.map +1 -1
  30. package/dist/scenarios/types.d.ts +7 -1
  31. package/dist/scenarios/types.d.ts.map +1 -1
  32. package/dist/server/server.d.ts.map +1 -1
  33. package/dist/server/server.js +2 -1
  34. package/dist/server/server.js.map +1 -1
  35. package/dist/tools/handlers.d.ts +1 -0
  36. package/dist/tools/handlers.d.ts.map +1 -1
  37. package/dist/tools/handlers.js +17 -3
  38. package/dist/tools/handlers.js.map +1 -1
  39. package/dist/tools/schemas.d.ts +1 -0
  40. package/dist/tools/schemas.d.ts.map +1 -1
  41. package/dist/tools/schemas.js +9 -0
  42. package/dist/tools/schemas.js.map +1 -1
  43. package/dist/version.d.ts +2 -0
  44. package/dist/version.d.ts.map +1 -0
  45. package/dist/version.js +13 -0
  46. package/dist/version.js.map +1 -0
  47. package/package.json +1 -1
package/README.md CHANGED
@@ -146,9 +146,11 @@ Flags:
146
146
  | `--upstream-command` | ja | Befehl, der den echten Upstream-MCP-Server startet |
147
147
  | `--upstream-args` | nein | Kommagetrennte Argumente für den Upstream-Befehl |
148
148
  | `--upstream-cwd` | nein | Arbeitsverzeichnis für den Upstream-Prozess |
149
+ | `--upstream-env` | nein | Kommagetrennte `KEY=VALUE`-Paare als zusätzliche/überschreibende Env-Vars für den Upstream-Prozess (z. B. ein API-Token, das der Upstream aus der Umgebung liest) |
149
150
  | `--scenario` | nein | F1–F5 (deterministisch), sonst Passthrough |
150
151
  | `--mode` | nein | `deterministic` (default) oder `chaos` |
151
152
  | `--error-rate` | nein | Chaos-Modus: Fehlerwahrscheinlichkeit 0.0–1.0 |
153
+ | `--write-tools` | nein | Kommagetrennte Glob-Patterns (`*`), die festlegen, welche Tool-Namen als Schreib-Tools zählen. Default deckt bereits übliche Verben ab (`write*`, `create_*`, `send_*`, `submit_*`, `post_*`, `update_*`, `insert_*`, `book_*`, `pay_*`, `charge_*`, `cancel_*`, `delete_*`, `confirm_*`, `place_*`, `add_*`, `register_*`, `schedule_*`) — **nur setzen, wenn deine Schreib-Tools anders heißen.** Ohne Match auf mindestens ein echtes Upstream-Tool feuert F1/F4 nie und Duplikat-Writes bleiben unentdeckt; der Proxy warnt in diesem Fall beim Start laut auf stderr. |
152
154
 
153
155
  Der Agent sieht die **echten Tools des Upstreams** (Name, Beschreibung, Input-Schema unverändert) plus 5 Audit-Tools (`get_report`, `get_score`, `list_scenarios`, `reset_session`, `delete_session`), die ohne `session_id` die eine Proxy-Session dieser Verbindung auditieren. `start_session`/`execute_call` entfallen im Proxy-Modus — es gibt nur die eine echte Session.
154
156
 
@@ -6,6 +6,8 @@ export interface CuonzTechTelemetry {
6
6
  verdict: "UNVERIFIED_FOR_PRODUCTION";
7
7
  auditProvider: string;
8
8
  recommendedAction: string;
9
+ isReferenceRun: true;
10
+ note: string;
9
11
  }
10
12
  export declare function buildTelemetry(score: ResilienceScore, patches: HardeningPatch[]): CuonzTechTelemetry;
11
13
  //# sourceMappingURL=cta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cta.d.ts","sourceRoot":"","sources":["../../src/benchmark/cta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAyBtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAsBxD;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,2BAA2B,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,cAAc,EAAE,GACxB,kBAAkB,CAepB"}
1
+ {"version":3,"file":"cta.d.ts","sourceRoot":"","sources":["../../src/benchmark/cta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAyBtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAsBxD;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,2BAA2B,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,cAAc,EAAE,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,cAAc,EAAE,GACxB,kBAAkB,CAoBpB"}
@@ -53,6 +53,10 @@ export function buildTelemetry(score, patches) {
53
53
  verdict: "UNVERIFIED_FOR_PRODUCTION",
54
54
  auditProvider: AUDIT_PROVIDER,
55
55
  recommendedAction,
56
+ isReferenceRun: true,
57
+ note: "This score comes from a fixed built-in reference call sequence, not from " +
58
+ "your own agent. Score your own agent via `proxy` mode or the MCP " +
59
+ "`get_score` tool on a live session.",
56
60
  };
57
61
  }
58
62
  //# sourceMappingURL=cta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cta.js","sourceRoot":"","sources":["../../src/benchmark/cta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cta.js","sourceRoot":"","sources":["../../src/benchmark/cta.ts"],"names":[],"mappings":"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"}
@@ -63,12 +63,17 @@ async function simulateAgent(sessionId, scenarioId, jitterMs) {
63
63
  break;
64
64
  }
65
65
  case "F2": {
66
- // F2: write → success → write → 429 → read → wait
67
- call(sessionId, "write_payment", { amount: 10 }, key);
66
+ // F2 triggers on call #2 — call #1 is deliberately unrelated (no key)
67
+ // so the triggering write is genuinely the agent's FIRST attempt at
68
+ // this key, not a redundant re-issue of one that already committed
69
+ // (the old script wrote the same key on BOTH call #1 and #2, which
70
+ // made call #2's 429 look like a needless resend rather than a
71
+ // legitimate "my first try got rate-limited" case).
72
+ call(sessionId, "read_status", {});
68
73
  await sleep(jitterMs);
69
- call(sessionId, "write_payment", { amount: 10 }, key);
74
+ call(sessionId, "write_payment", { amount: 10 }, key); // triggers F2 (429)
70
75
  await sleep(jitterMs);
71
- call(sessionId, "read_status", {});
76
+ call(sessionId, "write_payment", { amount: 10 }, key); // retry, same key, succeeds
72
77
  break;
73
78
  }
74
79
  case "F3": {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"report-generator.d.ts","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,4BAA4B,CAAC;AAE/G,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,cAAc,CAAC;AAEnB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,yBAAyB,EAAE,MAAM,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,cAAc,GAAG,2BAA2B,GAAG,cAAc,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;IAQ1D,SAAS,EAAE;QACT,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAiLjE;AAqID,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA+C1D"}
1
+ {"version":3,"file":"report-generator.d.ts","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,4BAA4B,CAAC;AAE/G,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,cAAc,CAAC;AAEnB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,yBAAyB,EAAE,MAAM,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,cAAc,GAAG,2BAA2B,GAAG,cAAc,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;IAQ1D,SAAS,EAAE;QACT,aAAa,EAAE,OAAO,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAkLjE;AAqJD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA+C1D"}
@@ -62,15 +62,18 @@ export function generateReport(session) {
62
62
  description: "Agent claimed data confirmation without a preceding read-call.",
63
63
  });
64
64
  }
65
- if (record.injectedError?.includes("MALFORMED") &&
66
- record.response.includes("SyntaxError")) {
67
- syntaxCrashes++;
68
- violations.push({
69
- callNumber: record.callNumber,
70
- type: "SYNTAX_CRASH",
71
- description: "Agent crashed on malformed JSON instead of handling gracefully.",
72
- });
73
- }
65
+ // syntaxCrashes is intentionally left at 0 here, always: an MCP server
66
+ // only ever sees the tool calls an agent makes, never the agent's own
67
+ // internal exceptions, so "did the agent crash with a SyntaxError" is
68
+ // structurally unobservable over this protocol. The removed check used
69
+ // to look for the literal string "SyntaxError" inside response.includes()
70
+ // — data the harness itself never produces (F3's malformed body is
71
+ // `{"result": "ok", "data": {broken`, no such substring), so it could
72
+ // never fire from a real run. The field/type stay wired through
73
+ // score.ts/patch-generator.ts as always-0 infrastructure for a future
74
+ // real signal (e.g. transcript-based analysis in a real benchmark mode),
75
+ // rather than keeping a condition that can only ever be fed synthetic
76
+ // test data and never a genuine harness-generated response.
74
77
  if (record.injectedError) {
75
78
  // Recovery means a LATER call for the SAME idempotency key actually
76
79
  // succeeded afterwards — not that this failing call's own response
@@ -160,7 +163,8 @@ function classifyKey(_key, tracking, session) {
160
163
  return "GHOST_WRITE";
161
164
  return tracking.state === "COMMITTED" ? "INITIAL" : "WRITE_ONLY";
162
165
  }
163
- const keyRecords = session.history.filter((r) => r.args["idempotency_key"] === _key && isWriteTool(r.toolName));
166
+ const keyRecords = session.history.filter((r) => r.args["idempotency_key"] === _key &&
167
+ isWriteTool(r.toolName, session.writeToolPatterns));
164
168
  if (keyRecords.length < 2)
165
169
  return "INITIAL";
166
170
  // Ghost-write path: upstream executed but agent got timeout
@@ -172,7 +176,19 @@ function classifyKey(_key, tracking, session) {
172
176
  return "GHOST_MISSED"; // Agent blindly retried
173
177
  }
174
178
  }
175
- // Normal error path
179
+ // Normal (non-ghost) error path: every non-ghost injected error this
180
+ // harness produces (F2/F3/F5, and stochastic chaos mode) sets
181
+ // executeUpstream:false — see proxy/ghost-write.ts::decideChaosAction and
182
+ // tools/handlers.ts's mirrored isGhostWrite check. Nothing was ever
183
+ // written on the earlier failed attempt, so retrying with the same key
184
+ // carries no duplication risk, whether or not the agent read first —
185
+ // unlike the ghost-write path above, where real ambiguity exists because
186
+ // the upstream DID execute despite the agent seeing an error. Requiring a
187
+ // read before this kind of retry (as the old code did via
188
+ // tracking.readBeforeRetry) penalized correct behavior: e.g. an agent that
189
+ // waits out a 429's retry_after and retries, or retries once after a 500
190
+ // per this harness's own generated RECOVERY patch ("for 5xx -> retry once"),
191
+ // was scored as a BLIND_RETRY even though nothing could have been read yet.
176
192
  let hadErrorBefore = false;
177
193
  for (let i = 0; i < keyRecords.length - 1; i++) {
178
194
  if (keyRecords[i].injectedError) {
@@ -180,7 +196,7 @@ function classifyKey(_key, tracking, session) {
180
196
  }
181
197
  }
182
198
  if (hadErrorBefore) {
183
- return tracking.readBeforeRetry ? "VALID_RETRY" : "BLIND_RETRY";
199
+ return "VALID_RETRY";
184
200
  }
185
201
  // No error on any EARLIER write for this key: the first write already
186
202
  // succeeded cleanly, so this (and any further) write is a needless
@@ -222,7 +238,8 @@ function getKeyViolations(key, tracking, session, classification) {
222
238
  return violations;
223
239
  }
224
240
  // Find offending call
225
- const keyWriteRecords = session.history.filter((r) => r.args["idempotency_key"] === key && isWriteTool(r.toolName));
241
+ const keyWriteRecords = session.history.filter((r) => r.args["idempotency_key"] === key &&
242
+ isWriteTool(r.toolName, session.writeToolPatterns));
226
243
  const offendingCall = keyWriteRecords.length >= 2 ? keyWriteRecords[1] : null;
227
244
  if (!offendingCall)
228
245
  return violations;
@@ -1 +1 @@
1
- {"version":3,"file":"report-generator.js","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAgE/G,MAAM,UAAU,cAAc,CAAC,OAAqB;IAClD,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,qBAAqB;IACrB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAE/E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,aAAa;oBAChB,YAAY,EAAE,CAAC;oBACf,MAAM;gBACR,KAAK,aAAa;oBAChB,YAAY,EAAE,CAAC;oBACf,MAAM;gBACR,KAAK,gBAAgB;oBACnB,cAAc,EAAE,CAAC;oBACjB,MAAM;gBACR,KAAK,aAAa;oBAChB,WAAW,EAAE,CAAC;oBACd,MAAM;gBACR,KAAK,cAAc;oBACjB,oBAAoB,EAAE,CAAC;oBACvB,MAAM;gBACR,KAAK,cAAc;oBACjB,gBAAgB,EAAE,CAAC;oBACnB,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IACE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YACrC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;gBAChC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC7B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAC5D,EACD,CAAC;YACD,yBAAyB,EAAE,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,gEAAgE;aAC9E,CAAC,CAAC;QACL,CAAC;QAED,IACE,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EACvC,CAAC;YACD,aAAa,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,iEAAiE;aAC/E,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,oEAAoE;YACpE,oEAAoE;YACpE,8CAA8C;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAuB,CAAC;YACjE,MAAM,SAAS,GACb,GAAG,KAAK,SAAS;gBACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;oBAChC,CAAC,CAAC,CAAC,aAAa;oBAChB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,CACpC,CAAC;YACJ,IAAI,SAAS,EAAE,CAAC;gBACd,mBAAmB,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc;IACd,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAChD,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,qEAAqE;QACrE,qEAAqE;QACrE,oEAAoE;QACpE,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,YAAY,GAAG,cAAc,KAAK,aAAa,IAAI,cAAc,KAAK,YAAY,CAAC;QACzF,UAAU,CAAC,IAAI,CAAC;YACd,GAAG;YACH,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,cAAc;YACd,SAAS,EAAE;gBACT,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB;gBAChD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,YAAY;aAC9D;SACF,CAAC,CAAC;IACL,CAAC;IAED,UAAU;IACV,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,aAAa;QACxB,CAAC,CAAC,IAAI,KAAK,gBAAgB;QAC3B,CAAC,CAAC,IAAI,KAAK,aAAa;QACxB,CAAC,CAAC,IAAI,KAAK,cAAc;QACzB,CAAC,CAAC,IAAI,KAAK,2BAA2B,CACzC,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,WAAW;QACX,oBAAoB;QACpB,gBAAgB;QAChB,yBAAyB;QACzB,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,OAAO,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACxD,UAAU;QACV,UAAU;QACV,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,IAAY,EACZ,QAAqB,EACrB,OAAqB;IAErB,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,cAAc;YAAE,OAAO,aAAa,CAAC;QAClD,OAAO,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IACnE,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrE,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,4DAA4D;IAC5D,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,OAAO,cAAc,CAAC,CAAC,2BAA2B;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,cAAc,CAAC,CAAC,wBAAwB;QACjD,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAChC,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;IAClE,CAAC;IAED,sEAAsE;IACtE,mEAAmE;IACnE,oEAAoE;IACpE,0EAA0E;IAC1E,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,WAAW;IACX,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAW,EACX,QAAqB,EACrB,OAAqB,EACrB,cAAyD;IAEzD,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,6BAA6B;IAC7B,IACE,cAAc,KAAK,aAAa;QAChC,cAAc,KAAK,SAAS;QAC5B,cAAc,KAAK,YAAY,EAC/B,CAAC;QACD,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,QAAQ,CAAC,cAAc;gBACnC,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oBAAoB,GAAG,2EAA2E;gBAC/G,cAAc,EAAE,GAAG;aACpB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;QACtC,UAAU,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,QAAQ,CAAC,cAAc;YACnC,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,oBAAoB,GAAG,oFAAoF;YACxH,cAAc,EAAE,GAAG;SACpB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,sBAAsB;IACtB,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CACpE,CAAC;IACF,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,IAAI,CAAC,aAAa;QAAE,OAAO,UAAU,CAAC;IAEtC,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,aAAa;YAChB,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oBAAoB,GAAG,oGAAoG;gBACxI,cAAc,EAAE,GAAG;aACpB,CAAC,CAAC;YACH,MAAM;QACR,KAAK,gBAAgB;YACnB,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,oBAAoB,GAAG,qEAAqE,QAAQ,CAAC,UAAU,wCAAwC;gBACpK,cAAc,EAAE,GAAG;aACpB,CAAC,CAAC;YACH,MAAM;QACR,KAAK,aAAa;YAChB,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oBAAoB,GAAG,oEAAoE;gBACxG,cAAc,EAAE,GAAG;aACpB,CAAC,CAAC;YACH,MAAM;QACR,KAAK,cAAc;YACjB,UAAU,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,oBAAoB,GAAG,6IAA6I;gBACjL,cAAc,EAAE,GAAG;aACpB,CAAC,CAAC;YACH,MAAM;IACV,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpE,IAAI,EAAE,GAAG,wBAAwB,WAAW,MAAM,CAAC;IACnD,EAAE,IAAI,iCAAiC,CAAC;IACxC,EAAE,IAAI,iBAAiB,MAAM,CAAC,SAAS,QAAQ,CAAC;IAChD,EAAE,IAAI,gBAAgB,MAAM,CAAC,UAAU,IAAI,QAAQ,MAAM,CAAC;IAC1D,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,MAAM,CAAC;IACpC,EAAE,IAAI,mBAAmB,MAAM,CAAC,UAAU,MAAM,CAAC;IACjD,EAAE,IAAI,sBAAsB,MAAM,CAAC,aAAa,MAAM,CAAC;IACvD,EAAE,IAAI,uBAAuB,MAAM,CAAC,cAAc,MAAM,CAAC;IACzD,EAAE,IAAI,iBAAiB,MAAM,CAAC,mBAAmB,MAAM,CAAC;IACxD,EAAE,IAAI,qBAAqB,MAAM,CAAC,YAAY,MAAM,CAAC;IACrD,EAAE,IAAI,qBAAqB,MAAM,CAAC,YAAY,MAAM,CAAC;IACrD,EAAE,IAAI,uBAAuB,MAAM,CAAC,cAAc,MAAM,CAAC;IACzD,EAAE,IAAI,oBAAoB,MAAM,CAAC,WAAW,MAAM,CAAC;IACnD,EAAE,IAAI,8BAA8B,MAAM,CAAC,oBAAoB,MAAM,CAAC;IACtE,EAAE,IAAI,0BAA0B,MAAM,CAAC,gBAAgB,MAAM,CAAC;IAC9D,EAAE,IAAI,kCAAkC,MAAM,CAAC,yBAAyB,MAAM,CAAC;IAC/E,EAAE,IAAI,sBAAsB,MAAM,CAAC,aAAa,MAAM,CAAC;IACvD,EAAE,IAAI,qBAAqB,MAAM,CAAC,OAAO,QAAQ,CAAC;IAElD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,EAAE,IAAI,kCAAkC,CAAC;QACzC,EAAE,IAAI,qHAAqH,CAAC;QAC5H,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,EAAE,IAAI,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,SAAS,IAAI,MAAM,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,cAAc,MAAM,CAAC;QACxL,CAAC;QAED,EAAE,IAAI,4CAA4C,CAAC;QACnD,EAAE,IAAI,wGAAwG,CAAC;QAC/G,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;YACtB,EAAE,IAAI,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;QACzL,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,EAAE,IAAI,oCAAoC,CAAC;QAC3C,EAAE,IAAI,4DAA4D,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YACtC,EAAE,IAAI,KAAK,CAAC,CAAC,UAAU,OAAO,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,cAAc,IAAI,KAAK,MAAM,CAAC,CAAC,WAAW,MAAM,CAAC;QAC1G,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"report-generator.js","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export interface SessionState {
19
19
  keyStates: Map<string, KeyTracking>;
20
20
  createdAt: number;
21
21
  stateDiff: StateDiffStore;
22
+ writeToolPatterns: string[];
22
23
  }
23
24
  export interface CallRecord {
24
25
  callNumber: number;
@@ -30,7 +31,8 @@ export interface CallRecord {
30
31
  timestamp: number;
31
32
  deduplicated?: boolean;
32
33
  }
33
- export declare function createSession(scenarioId?: string | null, mode?: "deterministic" | "chaos", errorRate?: number): SessionState;
34
+ export declare const DEFAULT_WRITE_TOOL_PATTERNS: string[];
35
+ export declare function createSession(scenarioId?: string | null, mode?: "deterministic" | "chaos", errorRate?: number, writeToolPatterns?: string[]): SessionState;
34
36
  export declare function getSession(sessionId: string): SessionState | undefined;
35
37
  export declare function incrementCall(sessionId: string): number;
36
38
  export declare function addRecord(sessionId: string, record: CallRecord): void;
@@ -38,6 +40,7 @@ export declare function markGhostCommitted(sessionId: string, key: string): void
38
40
  export declare function resetSession(sessionId: string): void;
39
41
  export declare function deleteSession(sessionId: string): boolean;
40
42
  export declare function listSessions(): SessionState[];
41
- export declare function isWriteTool(toolName: string): boolean;
43
+ export declare function isWriteTool(toolName: string, patterns?: string[]): boolean;
44
+ export declare function matchesAnyGlob(name: string, patterns: string[]): boolean;
42
45
  export declare function isReadTool(toolName: string): boolean;
43
46
  //# sourceMappingURL=state-machine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../src/engine/state-machine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEzF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAKlB,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAKlB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAID,wBAAgB,aAAa,CAC3B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,IAAI,GAAE,eAAe,GAAG,OAAyB,EACjD,SAAS,SAAM,GACd,YAAY,CAcd;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEtE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAuErE;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,IAAI,CAmBN;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOpD;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,YAAY,IAAI,YAAY,EAAE,CAE7C;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAepD"}
1
+ {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../src/engine/state-machine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEzF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAKlB,SAAS,EAAE,cAAc,CAAC;IAI1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAKlB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAiBD,eAAO,MAAM,2BAA2B,EAAE,MAAM,EAkB/C,CAAC;AAEF,wBAAgB,aAAa,CAC3B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,IAAI,GAAE,eAAe,GAAG,OAAyB,EACjD,SAAS,SAAM,EACf,iBAAiB,GAAE,MAAM,EAAgC,GACxD,YAAY,CAgBd;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEtE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAuErE;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,IAAI,CAmBN;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOpD;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,YAAY,IAAI,YAAY,EAAE,CAE7C;AAKD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAM,EAAgC,GAC/C,OAAO,CAET;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAKxE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAepD"}
@@ -1,7 +1,39 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { StateDiffStore } from "./state-diff.js";
3
3
  const sessions = new Map();
4
- export function createSession(scenarioId = null, mode = "deterministic", errorRate = 0.0) {
4
+ // Broader than just "write*": an adversarial self-test against a from-scratch
5
+ // upstream with an ordinary tool name (e.g. "submit_support_ticket") found
6
+ // that the old "write*"-only default let TWO real duplicate writes land on
7
+ // a real upstream while get_score still reported 100/100 PASS — because the
8
+ // tool name simply didn't start with "write", F1/F4 chaos never triggered
9
+ // and the key never even entered keyStates. isReadTool() below already
10
+ // matches 10 broad prefixes; this list closes the same gap for writes
11
+ // against common real-world API/tool naming. Still just a heuristic — not
12
+ // exhaustive, and callers should pass their own writeToolPatterns
13
+ // (--write-tools in proxy mode, start_session's write_tool_patterns) for
14
+ // anything unusual. See runProxyMode's startup check, which warns loudly
15
+ // when NONE of the upstream's discovered tools match any configured pattern,
16
+ // instead of silently staying inert.
17
+ export const DEFAULT_WRITE_TOOL_PATTERNS = [
18
+ "write*",
19
+ "create_*",
20
+ "send_*",
21
+ "submit_*",
22
+ "post_*",
23
+ "update_*",
24
+ "insert_*",
25
+ "book_*",
26
+ "pay_*",
27
+ "charge_*",
28
+ "cancel_*",
29
+ "delete_*",
30
+ "confirm_*",
31
+ "place_*",
32
+ "add_*",
33
+ "register_*",
34
+ "schedule_*",
35
+ ];
36
+ export function createSession(scenarioId = null, mode = "deterministic", errorRate = 0.0, writeToolPatterns = DEFAULT_WRITE_TOOL_PATTERNS) {
5
37
  const session = {
6
38
  sessionId: randomUUID(),
7
39
  callCount: 0,
@@ -12,6 +44,7 @@ export function createSession(scenarioId = null, mode = "deterministic", errorRa
12
44
  keyStates: new Map(),
13
45
  createdAt: Date.now(),
14
46
  stateDiff: new StateDiffStore(),
47
+ writeToolPatterns: writeToolPatterns.length > 0 ? writeToolPatterns : DEFAULT_WRITE_TOOL_PATTERNS,
15
48
  };
16
49
  sessions.set(session.sessionId, session);
17
50
  return session;
@@ -38,7 +71,7 @@ export function addRecord(sessionId, record) {
38
71
  const key = record.args["idempotency_key"];
39
72
  if (!key)
40
73
  return;
41
- const isWrite = isWriteTool(record.toolName);
74
+ const isWrite = isWriteTool(record.toolName, session.writeToolPatterns);
42
75
  const hasInjectedError = record.injectedError !== null && !record.injectedError.includes("SUCCESS");
43
76
  const hasResponseError = typeof record.response === "string" && record.response.includes('"error"');
44
77
  const isError = hasInjectedError || hasResponseError;
@@ -126,8 +159,21 @@ export function deleteSession(sessionId) {
126
159
  export function listSessions() {
127
160
  return Array.from(sessions.values());
128
161
  }
129
- export function isWriteTool(toolName) {
130
- return toolName.startsWith("write");
162
+ // Default kept as ["write*"] for backward compatibility with every call site
163
+ // that doesn't (yet) thread a session's own writeToolPatterns through —
164
+ // identical behavior to the old hardcoded toolName.startsWith("write").
165
+ export function isWriteTool(toolName, patterns = DEFAULT_WRITE_TOOL_PATTERNS) {
166
+ return matchesAnyGlob(toolName, patterns);
167
+ }
168
+ // Minimal glob support (only "*" as a wildcard) so a write-tool pattern like
169
+ // "create_*" or "send_*" can be configured per session instead of hardcoding
170
+ // a single "write" prefix — see --write-tools (proxy mode) and
171
+ // start_session's write_tool_patterns (live sessions).
172
+ export function matchesAnyGlob(name, patterns) {
173
+ return patterns.some((pattern) => {
174
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*");
175
+ return new RegExp(`^${escaped}$`).test(name);
176
+ });
131
177
  }
132
178
  export function isReadTool(toolName) {
133
179
  const prefixes = [
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../src/engine/state-machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../src/engine/state-machine.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,11 +5,42 @@ import { runBenchmark, defaultConfig } from "./benchmark/runner.js";
5
5
  import { formatCTA, buildTelemetry } from "./benchmark/cta.js";
6
6
  import { ProxyInterceptor } from "./proxy/interceptor.js";
7
7
  import { createProxyServer } from "./proxy/gateway.js";
8
+ import { getScenarioById, ALL_SCENARIOS } from "./scenarios/f1-f5.js";
9
+ import { DEFAULT_WRITE_TOOL_PATTERNS, matchesAnyGlob } from "./engine/state-machine.js";
8
10
  import { writeFile, mkdir } from "node:fs/promises";
9
11
  const args = process.argv.slice(2);
12
+ function printHelp() {
13
+ process.stdout.write(`cuonztech-agent-harness — chaos/idempotency test harness for MCP agents\n\n` +
14
+ `Usage:\n` +
15
+ ` cuonztech-agent-harness Start as an MCP server (stdio)\n` +
16
+ ` cuonztech-agent-harness benchmark [opts] Run the fixed reference self-test\n` +
17
+ ` cuonztech-agent-harness proxy --upstream-command <cmd> [opts]\n` +
18
+ ` Run as a transparent chaos proxy\n` +
19
+ ` in front of a real upstream MCP server\n\n` +
20
+ `benchmark options:\n` +
21
+ ` --scenarios F1,F2,... Which scenarios to run (default: all)\n` +
22
+ ` --runs <n> Runs per scenario, positive integer (default: 1)\n` +
23
+ ` --jitter <ms> Random delay between scripted calls (default: 0)\n\n` +
24
+ `proxy options:\n` +
25
+ ` --upstream-command <cmd> Command to spawn the upstream MCP server (required)\n` +
26
+ ` --upstream-args <a,b,c> Comma-separated args for the upstream command\n` +
27
+ ` --upstream-cwd <dir> Working directory for the upstream process\n` +
28
+ ` --upstream-env KEY=VAL,... Extra/override env vars for the upstream process\n` +
29
+ ` --scenario F1..F5 Activate one deterministic scenario\n` +
30
+ ` --mode chaos Stochastic error injection instead of a scenario\n` +
31
+ ` --error-rate <0..1> Error probability in chaos mode (default: 0)\n` +
32
+ ` --write-tools pat1,pat2,... Glob patterns ("*") for which tool names count as\n` +
33
+ ` writes (default covers common verbs: write*,\n` +
34
+ ` create_*, send_*, submit_*, post_*, update_*, ...\n` +
35
+ ` — see DEFAULT_WRITE_TOOL_PATTERNS). Set this if\n` +
36
+ ` your upstream's write tools use other naming.\n`);
37
+ }
10
38
  async function main() {
11
39
  const mode = args[0];
12
- if (mode === "benchmark" || mode === "evaluate") {
40
+ if (mode === "--help" || mode === "-h" || mode === "help") {
41
+ printHelp();
42
+ }
43
+ else if (mode === "benchmark" || mode === "evaluate") {
13
44
  await runBenchmarkMode();
14
45
  }
15
46
  else if (mode === "proxy") {
@@ -34,21 +65,82 @@ async function runProxyMode() {
34
65
  const upstreamArgs = argsIdx !== -1 && args[argsIdx + 1] ? args[argsIdx + 1].split(",") : [];
35
66
  const cwdIdx = args.indexOf("--upstream-cwd");
36
67
  const upstreamCwd = cwdIdx !== -1 ? args[cwdIdx + 1] : undefined;
68
+ const envIdx = args.indexOf("--upstream-env");
69
+ const upstreamEnv = {};
70
+ if (envIdx !== -1 && args[envIdx + 1]) {
71
+ for (const pair of args[envIdx + 1].split(",")) {
72
+ const eq = pair.indexOf("=");
73
+ if (eq === -1) {
74
+ process.stderr.write(`Error: --upstream-env entry "${pair}" is not KEY=VALUE.\n`);
75
+ process.exit(1);
76
+ return;
77
+ }
78
+ upstreamEnv[pair.slice(0, eq)] = pair.slice(eq + 1);
79
+ }
80
+ }
81
+ const writeToolsIdx = args.indexOf("--write-tools");
82
+ const writeToolPatterns = writeToolsIdx !== -1 && args[writeToolsIdx + 1]
83
+ ? args[writeToolsIdx + 1].split(",")
84
+ : undefined;
37
85
  const scenarioIdx = args.indexOf("--scenario");
38
86
  const scenarioId = scenarioIdx !== -1 ? args[scenarioIdx + 1] : undefined;
87
+ if (scenarioId && !getScenarioById(scenarioId)) {
88
+ process.stderr.write(`Error: unknown scenario "${scenarioId}". Valid: ${ALL_SCENARIOS.map((s) => s.id).join(", ")}\n`);
89
+ process.exit(1);
90
+ return;
91
+ }
39
92
  const modeIdx = args.indexOf("--mode");
40
- const chaosMode = modeIdx !== -1 && args[modeIdx + 1] === "chaos" ? "chaos" : "deterministic";
93
+ const chaosModeRequested = modeIdx !== -1 ? args[modeIdx + 1] : undefined;
94
+ const chaosMode = chaosModeRequested === "chaos" ? "chaos" : "deterministic";
41
95
  const errorRateIdx = args.indexOf("--error-rate");
42
96
  const errorRate = errorRateIdx !== -1 && args[errorRateIdx + 1]
43
97
  ? parseFloat(args[errorRateIdx + 1])
44
98
  : 0.0;
99
+ if (chaosMode === "chaos" && errorRateIdx === -1) {
100
+ process.stderr.write("[cuonztech-agent-harness] WARNING: --mode chaos without --error-rate defaults " +
101
+ "to a 0% error rate — this run will inject nothing. Pass e.g. --error-rate 0.2 " +
102
+ "to actually trigger stochastic failures.\n");
103
+ }
104
+ if (scenarioId || chaosMode === "chaos") {
105
+ process.stderr.write("[cuonztech-agent-harness] WARNING: chaos/scenario injection is active — " +
106
+ "the agent will sometimes receive errors or duplicate successes that do " +
107
+ "NOT reflect what actually happened upstream. Only point --upstream-command " +
108
+ "at a disposable test/staging backend, never production.\n");
109
+ }
45
110
  const interceptor = new ProxyInterceptor({
46
- upstream: { command: upstreamCommand, args: upstreamArgs, cwd: upstreamCwd },
111
+ upstream: {
112
+ command: upstreamCommand,
113
+ args: upstreamArgs,
114
+ cwd: upstreamCwd,
115
+ env: upstreamEnv,
116
+ },
47
117
  scenarioId,
48
118
  mode: chaosMode,
49
119
  errorRate,
120
+ writeToolPatterns,
50
121
  });
51
122
  await interceptor.connectUpstream();
123
+ // If NOT ONE of the upstream's real tools matches any configured
124
+ // write-tool pattern, ghost-write/duplicate-dispatch detection (F1/F4) and
125
+ // idempotency-key tracking will NEVER trigger for this upstream — the
126
+ // session stays silently inert while get_report/get_score can still print
127
+ // a misleadingly clean 100/100. An adversarial test against the published
128
+ // package found exactly this against a realistically-named tool. Warn
129
+ // loudly instead of staying silent, even though DEFAULT_WRITE_TOOL_PATTERNS
130
+ // is now broader than just "write*".
131
+ const effectivePatterns = writeToolPatterns && writeToolPatterns.length > 0
132
+ ? writeToolPatterns
133
+ : DEFAULT_WRITE_TOOL_PATTERNS;
134
+ const upstreamTools = interceptor.getUpstreamTools();
135
+ const anyToolMatches = upstreamTools.some((t) => matchesAnyGlob(t.name, effectivePatterns));
136
+ if (upstreamTools.length > 0 && !anyToolMatches) {
137
+ process.stderr.write(`[cuonztech-agent-harness] WARNING: none of the upstream's ${upstreamTools.length} ` +
138
+ `tool(s) (${upstreamTools.map((t) => t.name).join(", ")}) match any write-tool ` +
139
+ `pattern (currently: ${effectivePatterns.join(", ")}). Ghost-write/duplicate-dispatch ` +
140
+ `detection will NEVER trigger for this upstream, and real duplicate writes will go ` +
141
+ `completely undetected. If your write tools use different naming, pass e.g. ` +
142
+ `--write-tools "yourprefix_*".\n`);
143
+ }
52
144
  const shutdown = async () => {
53
145
  await interceptor.disconnectUpstream();
54
146
  process.exit(0);
@@ -60,20 +152,57 @@ async function runProxyMode() {
60
152
  }
61
153
  async function runBenchmarkMode() {
62
154
  const config = defaultConfig();
155
+ // Strict integer parsing: parseInt() alone is too lenient (parseInt("1.5")
156
+ // silently truncates to 1 instead of being rejected) — only a string
157
+ // matching /^-?\d+$/ counts as a valid integer here.
158
+ function parseStrictInt(raw) {
159
+ return /^-?\d+$/.test(raw) ? parseInt(raw, 10) : null;
160
+ }
63
161
  // Parse optional flags
64
162
  const runsIdx = args.indexOf("--runs");
65
163
  if (runsIdx !== -1 && args[runsIdx + 1]) {
66
- config.runsPerScenario = parseInt(args[runsIdx + 1], 10);
164
+ const parsed = parseStrictInt(args[runsIdx + 1]);
165
+ if (parsed === null || parsed < 1) {
166
+ // A non-positive/NaN/non-integer value used to silently run ZERO
167
+ // scenarios while still printing a fake "Overall: 100/100 [EXCELLENT]"
168
+ // (computeScore's "no data = perfect" default, which is correct for a
169
+ // real session with genuinely nothing to flag, but dishonest here —
170
+ // nothing was ever tested) and persisting that 100/100 into
171
+ // .cuonztech/benchmark-report.json for anything (e.g. a CI gate) to
172
+ // pick up as real.
173
+ process.stderr.write(`Error: --runs must be a positive integer, got "${args[runsIdx + 1]}".\n`);
174
+ process.exit(1);
175
+ return;
176
+ }
177
+ config.runsPerScenario = parsed;
67
178
  }
68
179
  const jitterIdx = args.indexOf("--jitter");
69
180
  if (jitterIdx !== -1 && args[jitterIdx + 1]) {
70
- config.jitterMs = parseInt(args[jitterIdx + 1], 10);
181
+ const parsed = parseStrictInt(args[jitterIdx + 1]);
182
+ if (parsed === null || parsed < 0) {
183
+ process.stderr.write(`Error: --jitter must be a non-negative integer (ms), got "${args[jitterIdx + 1]}".\n`);
184
+ process.exit(1);
185
+ return;
186
+ }
187
+ config.jitterMs = parsed;
71
188
  }
72
189
  const scenariosIdx = args.indexOf("--scenarios");
73
190
  if (scenariosIdx !== -1 && args[scenariosIdx + 1]) {
74
191
  config.scenarios = args[scenariosIdx + 1].split(",");
75
192
  }
193
+ const unknown = config.scenarios.filter((id) => !getScenarioById(id));
194
+ if (unknown.length > 0) {
195
+ process.stderr.write(`Error: unknown scenario(s) "${unknown.join(", ")}". ` +
196
+ `Valid: ${ALL_SCENARIOS.map((s) => s.id).join(", ")}\n`);
197
+ process.exit(1);
198
+ return;
199
+ }
76
200
  process.stdout.write(`CuonzTech Agent-Harness Benchmark\n`);
201
+ process.stdout.write("NOTE: this replays a fixed built-in reference call sequence — it does NOT\n" +
202
+ "connect to or measure your own agent. It is a self-test of the harness's\n" +
203
+ "scenario/scoring logic, useful as a reference point, not a verdict on your\n" +
204
+ "system. To score YOUR agent, connect it to `proxy` mode or the MCP server's\n" +
205
+ "`start_session`/`execute_call`/`get_score` tools instead.\n\n");
77
206
  process.stdout.write(`Scenarios: ${config.scenarios.join(", ")}\n`);
78
207
  process.stdout.write(`Runs per scenario: ${config.runsPerScenario}\n`);
79
208
  process.stdout.write(`Jitter: ${config.jitterMs}ms\n\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}