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
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/proxy/gateway.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAgEzD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM,CA+CvE"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/proxy/gateway.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAgEzD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM,CA+CvE"}
@@ -8,6 +8,7 @@
8
8
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
9
9
  import { ListToolsRequestSchema, CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
10
  import { z } from "zod";
11
+ import { VERSION } from "../version.js";
11
12
  import { GetReportSchema, GetScoreSchema, ListScenariosSchema, ResetSessionSchema, DeleteSessionSchema, } from "../tools/schemas.js";
12
13
  import { handleGetReport, handleGetScore, handleListScenarios, handleResetSession, handleDeleteSession, } from "../tools/handlers.js";
13
14
  // session_id is required in the shared schemas (used by the multi-session
@@ -48,7 +49,7 @@ function isOwnTool(name) {
48
49
  return name in OWN_TOOLS;
49
50
  }
50
51
  export function createProxyServer(interceptor) {
51
- const server = new Server({ name: "cuonztech-agent-harness-proxy", version: "0.3.0" }, { capabilities: { tools: {} } });
52
+ const server = new Server({ name: "cuonztech-agent-harness-proxy", version: VERSION }, { capabilities: { tools: {} } });
52
53
  server.setRequestHandler(ListToolsRequestSchema, async () => {
53
54
  const upstreamDefs = interceptor.getUpstreamTools();
54
55
  const ownDefs = Object.keys(OWN_TOOLS).map((name) => {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/proxy/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/proxy/gateway.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ghost-write.d.ts","sourceRoot":"","sources":["../../src/proxy/ghost-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI3E,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,aAAa,CA6Cf;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAC/C,gBAAgB,CAMlB;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,OAAO,GACxB,UAAU,CAUZ"}
1
+ {"version":3,"file":"ghost-write.d.ts","sourceRoot":"","sources":["../../src/proxy/ghost-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI3E,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,aAAa,CA6Df;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAC/C,gBAAgB,CAMlB;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,OAAO,GACxB,UAAU,CAUZ"}
@@ -1,5 +1,5 @@
1
1
  import { getScenarioById } from "../scenarios/f1-f5.js";
2
- import { markGhostCommitted } from "../engine/state-machine.js";
2
+ import { markGhostCommitted, isWriteTool } from "../engine/state-machine.js";
3
3
  export function decideChaosAction(session, callNumber, toolName, args) {
4
4
  const noChaos = {
5
5
  injectError: false,
@@ -9,18 +9,29 @@ export function decideChaosAction(session, callNumber, toolName, args) {
9
9
  executeUpstream: true,
10
10
  delayMs: 0,
11
11
  };
12
+ const isWriteCall = isWriteTool(toolName, session.writeToolPatterns);
13
+ const priorWriteCalls = session.history.filter((r) => isWriteTool(r.toolName, session.writeToolPatterns)).length;
12
14
  // Deterministic scenario mode
13
15
  if (session.scenarioId) {
14
16
  const scenario = getScenarioById(session.scenarioId);
15
- if (scenario && scenario.triggerCondition(callNumber, toolName)) {
17
+ if (scenario &&
18
+ scenario.triggerCondition({ callNumber, toolName, isWriteCall, priorWriteCalls })) {
16
19
  const resp = scenario.simulatedResponse;
17
- const isGhostWrite = resp.type === "timeout" && toolName.startsWith("write");
20
+ const isGhostWrite = resp.type === "timeout" && isWriteCall;
21
+ // F4 (duplicate dispatch) must also actually reach the upstream: it
22
+ // reports "success" to the agent, and against a real upstream that
23
+ // claim has to be true, or the proxy is fabricating a confirmation for
24
+ // a write that never happened (silent data loss if ever pointed at a
25
+ // production backend). F2/F3/F5 stay executeUpstream:false — those are
26
+ // genuine failures (rate-limit/malformed/500), so nothing should land
27
+ // upstream for them, matching what the agent is told.
28
+ const executeUpstream = isGhostWrite || resp.type === "success";
18
29
  return {
19
30
  injectError: true,
20
31
  errorType: resp.type === "success" ? null : `[${resp.type.toUpperCase()}]`,
21
32
  statusCode: resp.statusCode ?? 500,
22
33
  errorBody: resp.body,
23
- executeUpstream: isGhostWrite, // F1: execute upstream but return timeout
34
+ executeUpstream,
24
35
  delayMs: resp.delayMs ?? 0,
25
36
  };
26
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ghost-write.js","sourceRoot":"","sources":["../../src/proxy/ghost-write.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAWhE,MAAM,UAAU,iBAAiB,CAC/B,OAAqB,EACrB,UAAkB,EAClB,QAAgB,EAChB,IAA6B;IAE7B,MAAM,OAAO,GAAkB;QAC7B,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,CAAC;KACX,CAAC;IAEF,8BAA8B;IAC9B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7E,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG;gBAC1E,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG;gBAClC,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,eAAe,EAAE,YAAY,EAAE,0CAA0C;gBACzE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;aAC3B,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QAClE,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE,GAAG;YACf,SAAS,EAAE;gBACT,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,kCAAkC;aAC5C;YACD,eAAe,EAAE,KAAK;YACtB,OAAO,EAAE,CAAC;SACX,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,MAAM,UAAU,gBAAgB,CAC9B,OAAqB,EACrB,IAA6B,EAC7B,gBAAgD;IAEhD,MAAM,GAAG,GAAI,IAAI,CAAC,iBAAiB,CAAY,IAAI,IAAI,CAAC;IACxD,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC5B,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,QAAgB,EAChB,IAA6B,EAC7B,aAA4B,EAC5B,QAAgB,EAChB,gBAAyB;IAEzB,OAAO;QACL,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,aAAa;QACb,QAAQ;QACR,gBAAgB;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ghost-write.js","sourceRoot":"","sources":["../../src/proxy/ghost-write.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,13 @@ export interface ProxyConfig {
5
5
  scenarioId?: string;
6
6
  mode?: "deterministic" | "chaos";
7
7
  errorRate?: number;
8
+ writeToolPatterns?: string[];
8
9
  }
9
10
  export interface UpstreamConfig {
10
11
  command: string;
11
12
  args?: string[];
12
13
  cwd?: string;
14
+ env?: Record<string, string>;
13
15
  }
14
16
  export declare class ProxyInterceptor {
15
17
  private upstreamClient;
@@ -24,10 +26,7 @@ export declare class ProxyInterceptor {
24
26
  getUpstreamTools(): Tool[];
25
27
  getSession(): SessionState;
26
28
  interceptToolCall(toolName: string, args: Record<string, unknown>): Promise<{
27
- content: Array<{
28
- type: "text";
29
- text: string;
30
- }>;
29
+ content: Array<Record<string, unknown>>;
31
30
  isError: boolean;
32
31
  }>;
33
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/proxy/interceptor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAOpC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAAc;IAEnC,YAAY,MAAM,EAAE,WAAW,EAO9B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEK,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBrC;IAEK,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKxC;IAED,gBAAgB,IAAI,IAAI,EAAE,CAEzB;IAED,UAAU,IAAI,YAAY,CAEzB;IAEK,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QACT,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAmHD;CACF"}
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/proxy/interceptor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAWpC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAOb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAAc;IAEnC,YAAY,MAAM,EAAE,WAAW,EAQ9B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEK,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBrC;IAEK,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKxC;IAED,gBAAgB,IAAI,IAAI,EAAE,CAEzB;IAED,UAAU,IAAI,YAAY,CAEzB;IAEK,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QACT,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAsID;CACF"}
@@ -5,8 +5,12 @@
5
5
  // anhand `getUpstreamTools()`).
6
6
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
7
7
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
8
+ import { VERSION } from "../version.js";
8
9
  import { createSession, incrementCall, addRecord, } from "../engine/state-machine.js";
9
10
  import { decideChaosAction, handleGhostWrite, buildCallRecord, } from "./ghost-write.js";
11
+ function sleep(ms) {
12
+ return new Promise((resolve) => setTimeout(resolve, ms));
13
+ }
10
14
  export class ProxyInterceptor {
11
15
  upstreamClient = null;
12
16
  upstreamTransport = null;
@@ -15,7 +19,7 @@ export class ProxyInterceptor {
15
19
  upstreamTools = [];
16
20
  constructor(config) {
17
21
  this.config = config;
18
- this.session = createSession(config.scenarioId ?? null, config.mode ?? "deterministic", config.errorRate ?? 0.0);
22
+ this.session = createSession(config.scenarioId ?? null, config.mode ?? "deterministic", config.errorRate ?? 0.0, config.writeToolPatterns);
19
23
  }
20
24
  get sessionId() {
21
25
  return this.session.sessionId;
@@ -25,9 +29,16 @@ export class ProxyInterceptor {
25
29
  command: this.config.upstream.command,
26
30
  args: this.config.upstream.args,
27
31
  cwd: this.config.upstream.cwd,
32
+ // Inherit the full parent environment (same as any normal child
33
+ // process spawn) instead of the SDK's restrictive default allowlist,
34
+ // then layer --upstream-env on top for additions/overrides.
35
+ env: {
36
+ ...process.env,
37
+ ...this.config.upstream.env,
38
+ },
28
39
  stderr: "pipe",
29
40
  });
30
- this.upstreamClient = new Client({ name: "cuonztech-harness-proxy", version: "0.2.0" }, { capabilities: {} });
41
+ this.upstreamClient = new Client({ name: "cuonztech-harness-proxy", version: VERSION }, { capabilities: {} });
31
42
  await this.upstreamClient.connect(this.upstreamTransport);
32
43
  // Discover upstream tools (full definitions, including inputSchema, so
33
44
  // the gateway can advertise them to its own client unchanged)
@@ -54,9 +65,12 @@ export class ProxyInterceptor {
54
65
  // Decide chaos action
55
66
  const decision = decideChaosAction(this.session, callNumber, toolName, mergedArgs);
56
67
  let upstreamResponse = null;
68
+ let upstreamContent = null;
69
+ let upstreamIsError = false;
57
70
  let upstreamExecuted = false;
71
+ // responseText only ever feeds the audit trail (buildCallRecord/history),
72
+ // never the agent — see agentContent below.
58
73
  let responseText = "";
59
- let statusCode = 200;
60
74
  let injectedError = null;
61
75
  if (decision.executeUpstream && this.upstreamClient) {
62
76
  // Forward to upstream
@@ -65,9 +79,10 @@ export class ProxyInterceptor {
65
79
  name: toolName,
66
80
  arguments: mergedArgs,
67
81
  });
68
- const content = result.content;
69
- const textPart = content.find((c) => c.type === "text");
70
- responseText = textPart?.text ?? JSON.stringify(result.content);
82
+ upstreamContent = result.content;
83
+ upstreamIsError = Boolean(result.isError);
84
+ const textPart = upstreamContent.find((c) => c.type === "text");
85
+ responseText = textPart?.text ?? JSON.stringify(upstreamContent);
71
86
  upstreamExecuted = true;
72
87
  try {
73
88
  upstreamResponse = JSON.parse(responseText);
@@ -84,27 +99,59 @@ export class ProxyInterceptor {
84
99
  injectedError = "[UPSTREAM_ERROR]";
85
100
  }
86
101
  }
87
- // Apply chaos decision (after upstream execution for ghost-writes)
102
+ // A genuine simulated failure (timeout/rate_limit/malformed/error) must
103
+ // replace whatever the agent sees, even if the upstream really executed
104
+ // (F1's ghost-write). A "success"-typed match (F4) is NOT a failure —
105
+ // once it actually ran upstream above, the agent must see that REAL
106
+ // response, not a canned one, or the proxy is lying about what happened.
107
+ const isSimulatedFailure = decision.injectError && decision.errorType !== null;
88
108
  let isGhostWrite = false;
89
- if (decision.injectError) {
109
+ let agentContent;
110
+ let agentIsError;
111
+ if (isSimulatedFailure) {
112
+ // Honor the scenario's configured delay before replying — previously
113
+ // decision.delayMs was computed but never awaited anywhere, so a
114
+ // scenario simulating a slow timeout behaved identically to an
115
+ // instant one. None of the built-in F1–F5 scenarios currently set a
116
+ // nonzero delayMs, so this has no effect yet, but the plumbing is now
117
+ // real instead of a dead field.
118
+ if (decision.delayMs > 0) {
119
+ await sleep(decision.delayMs);
120
+ }
90
121
  injectedError = decision.errorType;
91
- statusCode = decision.statusCode;
92
- responseText =
93
- typeof decision.errorBody === "string"
94
- ? decision.errorBody
95
- : JSON.stringify(decision.errorBody);
122
+ const errorText = typeof decision.errorBody === "string"
123
+ ? decision.errorBody
124
+ : JSON.stringify(decision.errorBody);
125
+ responseText = errorText;
126
+ agentContent = [{ type: "text", text: errorText }];
127
+ agentIsError = true;
96
128
  isGhostWrite = decision.executeUpstream && upstreamExecuted && Boolean(key);
97
129
  }
130
+ else if (upstreamExecuted) {
131
+ // Real passthrough: forward the upstream's actual content unchanged
132
+ // (all blocks — text, images, structured content — not just the first
133
+ // text block) and its real isError, instead of wrapping it in an
134
+ // audit envelope. Audit-only facts (upstreamExecuted, injectedError,
135
+ // callNumber) are recorded via buildCallRecord()/addRecord() below and
136
+ // surfaced through get_report/get_score — never in the tool response
137
+ // itself, so an agent reading the response can't trivially infer the
138
+ // harness's internal chaos state.
139
+ agentContent = upstreamContent ?? [{ type: "text", text: responseText }];
140
+ agentIsError = upstreamIsError;
141
+ }
142
+ else if (injectedError === "[UPSTREAM_ERROR]") {
143
+ agentContent = [{ type: "text", text: responseText }];
144
+ agentIsError = true;
145
+ }
98
146
  else {
99
- statusCode = 200;
100
- if (!upstreamExecuted) {
101
- // No upstream, no error — passthrough mock
102
- responseText = JSON.stringify({
103
- result: "ok",
104
- callNumber,
105
- timestamp: new Date().toISOString(),
106
- });
107
- }
147
+ // No scenario triggered and no real upstream call was attempted
148
+ // (shouldn't normally happen once connected) — synthetic ok mock.
149
+ responseText = JSON.stringify({
150
+ result: "ok",
151
+ timestamp: new Date().toISOString(),
152
+ });
153
+ agentContent = [{ type: "text", text: responseText }];
154
+ agentIsError = false;
108
155
  }
109
156
  // Record the call
110
157
  const record = buildCallRecord(callNumber, toolName, mergedArgs, injectedError, responseText, upstreamExecuted);
@@ -118,26 +165,8 @@ export class ProxyInterceptor {
118
165
  handleGhostWrite(this.session, mergedArgs, upstreamResponse);
119
166
  }
120
167
  return {
121
- content: [
122
- {
123
- type: "text",
124
- text: JSON.stringify({
125
- callNumber,
126
- statusCode,
127
- injectedError,
128
- upstreamExecuted,
129
- response: (() => {
130
- try {
131
- return JSON.parse(responseText);
132
- }
133
- catch {
134
- return responseText;
135
- }
136
- })(),
137
- }, null, 2),
138
- },
139
- ],
140
- isError: statusCode >= 400,
168
+ content: agentContent,
169
+ isError: agentIsError,
141
170
  };
142
171
  }
143
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/proxy/interceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/proxy/interceptor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"f1-f5.d.ts","sourceRoot":"","sources":["../../src/scenarios/f1-f5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,eAAO,MAAM,sBAAsB,EAAE,kBAepC,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,kBAiB3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,kBAa/B,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,kBAkBnC,CAAC;AAGF,eAAO,MAAM,4BAA4B,EAAE,kBAgB1C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBAAkB,EAM7C,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE1E"}
1
+ {"version":3,"file":"f1-f5.d.ts","sourceRoot":"","sources":["../../src/scenarios/f1-f5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,eAAO,MAAM,sBAAsB,EAAE,kBAmBpC,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,kBAiB3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,kBAa/B,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,kBA0BnC,CAAC;AAGF,eAAO,MAAM,4BAA4B,EAAE,kBAgB1C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBAAkB,EAM7C,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE1E"}
@@ -3,7 +3,11 @@ export const F1_TIMEOUT_FIRST_WRITE = {
3
3
  id: "F1",
4
4
  name: "Timeout on First Write",
5
5
  description: "Simuliert einen Timeout beim ersten Schreibversuch. Der Agent muss den Fehler erkennen, verifizieren (Read-before-Write) und dann mit Idempotency-Key wiederholen.",
6
- triggerCondition: (callNumber, toolName) => callNumber === 1 && toolName.startsWith("write"),
6
+ // Fires on the agent's first WRITE call specifically, regardless of its
7
+ // position in the overall call sequence — an agent that reads first, then
8
+ // writes, must still see the timeout on that write (previously gated on
9
+ // callNumber === 1, so a cautious read-first agent never triggered F1 at all).
10
+ triggerCondition: ({ priorWriteCalls, isWriteCall }) => priorWriteCalls === 0 && isWriteCall,
7
11
  simulatedResponse: {
8
12
  type: "timeout",
9
13
  statusCode: 408,
@@ -17,7 +21,7 @@ export const F2_RATE_LIMIT = {
17
21
  id: "F2",
18
22
  name: "Rate Limit (429)",
19
23
  description: "Simuliert einen HTTP 429 Rate-Limit beim zweiten Aufruf. Der Agent muss Backoff respektieren und nicht sofort retry-en.",
20
- triggerCondition: (callNumber) => callNumber === 2,
24
+ triggerCondition: ({ callNumber }) => callNumber === 2,
21
25
  simulatedResponse: {
22
26
  type: "rate_limit",
23
27
  statusCode: 429,
@@ -34,7 +38,7 @@ export const F3_MALFORMED_JSON = {
34
38
  id: "F3",
35
39
  name: "Malformed JSON Response",
36
40
  description: "Liefert ein defektes JSON zurück. Der Agent darf nicht crashen (SyntaxError), sondern muss graceful reagieren.",
37
- triggerCondition: (callNumber) => callNumber === 1,
41
+ triggerCondition: ({ callNumber }) => callNumber === 1,
38
42
  simulatedResponse: {
39
43
  type: "malformed",
40
44
  statusCode: 200,
@@ -46,8 +50,16 @@ export const F3_MALFORMED_JSON = {
46
50
  export const F4_DUPLICATE_DISPATCH = {
47
51
  id: "F4",
48
52
  name: "Duplicate Dispatch (Ghost-Write)",
49
- description: "Beide Aufrufe erhalten Erfolg. Der Server hat aber nur den ersten tatsächlich ausgeführt. Der Agent muss Idempotency prüfen und den Duplikat-Aufruf erkennen.",
50
- triggerCondition: (callNumber, toolName) => callNumber <= 2 && toolName.startsWith("write"),
53
+ description: "Beide Aufrufe erhalten Erfolg. Weder Server noch Proxy dedupen von sich aus — schreibt der Agent zweimal, landen auch zweimal echte Writes. Der Agent muss Idempotency selbst prüfen und den Duplikat-Aufruf erkennen.",
54
+ // Fires on the agent's first TWO write calls specifically (same reasoning
55
+ // as F1: positional-by-callNumber would miss an agent that reads first).
56
+ triggerCondition: ({ priorWriteCalls, isWriteCall }) => priorWriteCalls <= 1 && isWriteCall,
57
+ // Only used by the non-proxy session/benchmark simulation (tools/handlers.ts),
58
+ // which has no real upstream to call. In proxy mode (proxy/ghost-write.ts +
59
+ // proxy/interceptor.ts), "success"-typed scenarios now actually execute
60
+ // against the real upstream and forward its real response/id instead of
61
+ // this canned body — a fabricated transaction_id for a write that never
62
+ // happened would be a real data-loss risk against a production backend.
51
63
  simulatedResponse: {
52
64
  type: "success",
53
65
  statusCode: 200,
@@ -64,7 +76,7 @@ export const F5_SERVER_ERROR_THEN_SUCCESS = {
64
76
  id: "F5",
65
77
  name: "Server Error (500) then Success",
66
78
  description: "Erster Aufruf: HTTP 500. Zweiter Aufruf: Erfolg. Der Agent muss den Fehler erkennen, einmal retry-en und dann stoppen.",
67
- triggerCondition: (callNumber) => callNumber === 1,
79
+ triggerCondition: ({ callNumber }) => callNumber === 1,
68
80
  simulatedResponse: {
69
81
  type: "error",
70
82
  statusCode: 500,
@@ -1 +1 @@
1
- {"version":3,"file":"f1-f5.js","sourceRoot":"","sources":["../../src/scenarios/f1-f5.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"f1-f5.js","sourceRoot":"","sources":["../../src/scenarios/f1-f5.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,14 @@
1
+ export interface TriggerContext {
2
+ callNumber: number;
3
+ toolName: string;
4
+ isWriteCall: boolean;
5
+ priorWriteCalls: number;
6
+ }
1
7
  export interface ScenarioDefinition {
2
8
  id: string;
3
9
  name: string;
4
10
  description: string;
5
- triggerCondition: (callNumber: number, toolName: string) => boolean;
11
+ triggerCondition: (ctx: TriggerContext) => boolean;
6
12
  simulatedResponse: SimulatedResponse;
7
13
  auditMetric: string;
8
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scenarios/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACpE,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scenarios/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,OAAO,CAAC;IAKrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;IACnD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,wBAAgB,YAAY,IAAI,SAAS,CA0FxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBpE,wBAAgB,YAAY,IAAI,SAAS,CA0FxC"}
@@ -1,10 +1,11 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { VERSION } from "../version.js";
2
3
  import { StartSessionSchema, ExecuteCallSchema, GetReportSchema, GetScoreSchema, ListScenariosSchema, ResetSessionSchema, DeleteSessionSchema, } from "../tools/schemas.js";
3
4
  import { handleStartSession, handleExecuteCall, handleGetReport, handleGetScore, handleListScenarios, handleResetSession, handleDeleteSession, } from "../tools/handlers.js";
4
5
  export function createServer() {
5
6
  const server = new McpServer({
6
7
  name: "cuonztech-agent-harness",
7
- version: "0.3.0",
8
+ version: VERSION,
8
9
  });
9
10
  // Tool: start_session
10
11
  server.registerTool("start_session", {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,2IAA2I;QAC7I,WAAW,EAAE,kBAAkB;KAChC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACzC,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,wKAAwK;QAC1K,WAAW,EAAE,iBAAiB;KAC/B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CACxC,CAAC;IAEF,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,yIAAyI;QAC3I,WAAW,EAAE,eAAe;KAC7B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CACtC,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,+TAA+T;QACjU,WAAW,EAAE,cAAc;KAC5B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CACrC,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,oGAAoG;QACtG,WAAW,EAAE,mBAAmB;KACjC,EACD,KAAK,IAAI,EAAE,CAAC,mBAAmB,EAAE,CAClC,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,2GAA2G;QAC7G,WAAW,EAAE,kBAAkB;KAChC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACzC,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,mBAAmB;KACjC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC1C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,2IAA2I;QAC7I,WAAW,EAAE,kBAAkB;KAChC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACzC,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,wKAAwK;QAC1K,WAAW,EAAE,iBAAiB;KAC/B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CACxC,CAAC;IAEF,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,yIAAyI;QAC3I,WAAW,EAAE,eAAe;KAC7B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CACtC,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,+TAA+T;QACjU,WAAW,EAAE,cAAc;KAC5B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CACrC,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,oGAAoG;QACtG,WAAW,EAAE,mBAAmB;KACjC,EACD,KAAK,IAAI,EAAE,CAAC,mBAAmB,EAAE,CAClC,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,2GAA2G;QAC7G,WAAW,EAAE,kBAAkB;KAChC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACzC,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,mBAAmB;KACjC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC1C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -2,6 +2,7 @@ export declare function handleStartSession(args: {
2
2
  scenario_id?: string;
3
3
  mode?: "deterministic" | "chaos";
4
4
  error_rate?: number;
5
+ write_tool_patterns?: string[];
5
6
  }): {
6
7
  content: {
7
8
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AAoEA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;cAWiB,MAAM;;;;;;;cAcV,MAAM;;;EAenB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;;cAMe,MAAM;;;;EAkJrB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC9B;;cAMe,MAAM;;;;;;;cAwBR,MAAM;;;GAKnB;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE;;cAMzE,MAAM;;;;;;;cAuBR,MAAM;;;EAKnB;AAED,wBAAgB,mBAAmB;;cAWrB,MAAM;;;EAKnB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;cAM/C,MAAM;;;;;;;cAaR,MAAM;;;EAKnB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;cAKlD,MAAM;;;;EAQnB"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AAoEA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;;cAWiB,MAAM;;;;;;;cAmBV,MAAM;;;EAenB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;;cAMe,MAAM;;;;EAoKrB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC9B;;cAMe,MAAM;;;;;;;cAwBR,MAAM;;;GAKnB;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE;;cAMzE,MAAM;;;;;;;cAuBR,MAAM;;;EAKnB;AAED,wBAAgB,mBAAmB;;cAWrB,MAAM;;;EAKnB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;cAM/C,MAAM;;;;;;;cAaR,MAAM;;;EAKnB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;cAKlD,MAAM;;;;EAQnB"}
@@ -60,7 +60,7 @@ export function handleStartSession(args) {
60
60
  };
61
61
  }
62
62
  }
63
- const session = createSession(scenarioId, mode, errorRate);
63
+ const session = createSession(scenarioId, mode, errorRate, args.write_tool_patterns);
64
64
  return {
65
65
  content: [
66
66
  {
@@ -143,15 +143,29 @@ export function handleExecuteCall(args) {
143
143
  // the same classification used by the (unwired) proxy's decideChaosAction,
144
144
  // so F1 produces a real GHOST_CAUGHT/GHOST_MISSED instead of a generic retry.
145
145
  let isGhostWrite = false;
146
+ const isWriteCall = isWriteTool(args.tool_name, session.writeToolPatterns);
147
+ const priorWriteCalls = session.history.filter((r) => isWriteTool(r.toolName, session.writeToolPatterns)).length;
146
148
  if (session.scenarioId) {
147
149
  const scenario = getScenarioById(session.scenarioId);
148
- if (scenario && scenario.triggerCondition(callNumber, args.tool_name)) {
150
+ if (scenario &&
151
+ scenario.triggerCondition({
152
+ callNumber,
153
+ toolName: args.tool_name,
154
+ isWriteCall,
155
+ priorWriteCalls,
156
+ })) {
149
157
  const resp = scenario.simulatedResponse;
150
158
  // Don't mark "success" type as injected error — F4 simulates successful duplicate dispatches
151
159
  injectedError = resp.type === "success" ? null : `[${resp.type.toUpperCase()}]`;
152
160
  statusCode = resp.statusCode ?? 500;
153
161
  responseBody = resp.body;
154
- isGhostWrite = resp.type === "timeout" && isWriteTool(args.tool_name);
162
+ isGhostWrite = resp.type === "timeout" && isWriteCall;
163
+ // Note: resp.delayMs is NOT awaited on this synchronous path (unlike
164
+ // proxy mode's interceptor.ts) — handleExecuteCall is called
165
+ // synchronously from ~30 call sites across the test suite and
166
+ // benchmark runner; making it async to honor a delay that no built-in
167
+ // scenario currently sets to a nonzero value isn't worth that ripple.
168
+ // Use `proxy` mode if simulated latency matters.
155
169
  }
156
170
  else {
157
171
  responseBody = {
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare const StartSessionSchema: {
6
6
  deterministic: "deterministic";
7
7
  }>>>;
8
8
  error_rate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
9
+ write_tool_patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
10
  };
10
11
  export declare const ExecuteCallSchema: {
11
12
  session_id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;IAC7B,WAAW;IAMX,IAAI;;;;IAKJ,UAAU;CAOX,CAAC;AAEF,eAAO,MAAM,iBAAiB;IAC5B,UAAU;IACV,SAAS;IACT,SAAS;IAGT,eAAe;CAIhB,CAAC;AAEF,eAAO,MAAM,eAAe;IAC1B,UAAU;IACV,MAAM;;;;CAKP,CAAC;AAEF,eAAO,MAAM,cAAc;IACzB,UAAU;IACV,MAAM;;;;CAKP,CAAC;AAEF,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC,eAAO,MAAM,kBAAkB;IAC7B,UAAU;CACX,CAAC;AAEF,eAAO,MAAM,mBAAmB;IAC9B,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;IAC7B,WAAW;IAMX,IAAI;;;;IAKJ,UAAU;IAOV,mBAAmB;CAWpB,CAAC;AAEF,eAAO,MAAM,iBAAiB;IAC5B,UAAU;IACV,SAAS;IACT,SAAS;IAGT,eAAe;CAIhB,CAAC;AAEF,eAAO,MAAM,eAAe;IAC1B,UAAU;IACV,MAAM;;;;CAKP,CAAC;AAEF,eAAO,MAAM,cAAc;IACzB,UAAU;IACV,MAAM;;;;CAKP,CAAC;AAEF,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC,eAAO,MAAM,kBAAkB;IAC7B,UAAU;CACX,CAAC;AAEF,eAAO,MAAM,mBAAmB;IAC9B,UAAU;CACX,CAAC"}
@@ -16,6 +16,15 @@ export const StartSessionSchema = {
16
16
  .optional()
17
17
  .default(0.0)
18
18
  .describe("Chaos mode only: probability of random error injection (0.0–1.0)."),
19
+ write_tool_patterns: z
20
+ .array(z.string())
21
+ .optional()
22
+ .describe('Glob patterns ("*" wildcard) deciding which tool names count as writes for ' +
23
+ 'scenario triggering and idempotency classification, e.g. ["create_*", "send_*", "book_*"]. ' +
24
+ 'Defaults to a broad set of common write-verb prefixes (write*, create_*, send_*, ' +
25
+ 'submit_*, post_*, update_*, insert_*, book_*, pay_*, charge_*, cancel_*, delete_*, ' +
26
+ 'confirm_*, place_*, add_*, register_*, schedule_*) — see DEFAULT_WRITE_TOOL_PATTERNS ' +
27
+ 'in src/engine/state-machine.ts. Set this explicitly if your write tools use other naming.'),
19
28
  };
20
29
  export const ExecuteCallSchema = {
21
30
  session_id: z.string().uuid().describe("Active session ID."),