cuonztech-agent-harness 0.3.2 → 0.5.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 (75) hide show
  1. package/README.md +220 -147
  2. package/dist/benchmark/cta.js +46 -28
  3. package/dist/benchmark/runner.js +105 -82
  4. package/dist/benchmark/score.js +112 -60
  5. package/dist/core/report-generator.js +453 -239
  6. package/dist/core/state-engine.js +1 -2
  7. package/dist/engine/state-diff.js +4 -2
  8. package/dist/engine/state-machine.js +164 -17
  9. package/dist/hardening/patch-generator.js +49 -48
  10. package/dist/index.js +562 -59
  11. package/dist/proxy/gateway.js +71 -65
  12. package/dist/proxy/ghost-write.js +49 -11
  13. package/dist/proxy/interceptor.js +264 -76
  14. package/dist/scenarios/f1-f5.js +40 -21
  15. package/dist/scenarios/types.js +0 -1
  16. package/dist/server/server.js +5 -5
  17. package/dist/server/stdio.js +0 -1
  18. package/dist/tools/handlers.js +90 -39
  19. package/dist/tools/schemas.js +26 -1
  20. package/dist/version.js +12 -0
  21. package/package.json +4 -3
  22. package/dist/benchmark/cta.d.ts +0 -11
  23. package/dist/benchmark/cta.d.ts.map +0 -1
  24. package/dist/benchmark/cta.js.map +0 -1
  25. package/dist/benchmark/runner.d.ts +0 -19
  26. package/dist/benchmark/runner.d.ts.map +0 -1
  27. package/dist/benchmark/runner.js.map +0 -1
  28. package/dist/benchmark/score.d.ts +0 -26
  29. package/dist/benchmark/score.d.ts.map +0 -1
  30. package/dist/benchmark/score.js.map +0 -1
  31. package/dist/core/report-generator.d.ts +0 -47
  32. package/dist/core/report-generator.d.ts.map +0 -1
  33. package/dist/core/report-generator.js.map +0 -1
  34. package/dist/core/state-engine.d.ts +0 -2
  35. package/dist/core/state-engine.d.ts.map +0 -1
  36. package/dist/core/state-engine.js.map +0 -1
  37. package/dist/engine/state-diff.d.ts +0 -33
  38. package/dist/engine/state-diff.d.ts.map +0 -1
  39. package/dist/engine/state-diff.js.map +0 -1
  40. package/dist/engine/state-machine.d.ts +0 -43
  41. package/dist/engine/state-machine.d.ts.map +0 -1
  42. package/dist/engine/state-machine.js.map +0 -1
  43. package/dist/hardening/patch-generator.d.ts +0 -12
  44. package/dist/hardening/patch-generator.d.ts.map +0 -1
  45. package/dist/hardening/patch-generator.js.map +0 -1
  46. package/dist/index.d.ts +0 -3
  47. package/dist/index.d.ts.map +0 -1
  48. package/dist/index.js.map +0 -1
  49. package/dist/proxy/gateway.d.ts +0 -4
  50. package/dist/proxy/gateway.d.ts.map +0 -1
  51. package/dist/proxy/gateway.js.map +0 -1
  52. package/dist/proxy/ghost-write.d.ts +0 -17
  53. package/dist/proxy/ghost-write.d.ts.map +0 -1
  54. package/dist/proxy/ghost-write.js.map +0 -1
  55. package/dist/proxy/interceptor.d.ts +0 -34
  56. package/dist/proxy/interceptor.d.ts.map +0 -1
  57. package/dist/proxy/interceptor.js.map +0 -1
  58. package/dist/scenarios/f1-f5.d.ts +0 -9
  59. package/dist/scenarios/f1-f5.d.ts.map +0 -1
  60. package/dist/scenarios/f1-f5.js.map +0 -1
  61. package/dist/scenarios/types.d.ts +0 -15
  62. package/dist/scenarios/types.d.ts.map +0 -1
  63. package/dist/scenarios/types.js.map +0 -1
  64. package/dist/server/server.d.ts +0 -3
  65. package/dist/server/server.d.ts.map +0 -1
  66. package/dist/server/server.js.map +0 -1
  67. package/dist/server/stdio.d.ts +0 -7
  68. package/dist/server/stdio.d.ts.map +0 -1
  69. package/dist/server/stdio.js.map +0 -1
  70. package/dist/tools/handlers.d.ts +0 -92
  71. package/dist/tools/handlers.d.ts.map +0 -1
  72. package/dist/tools/handlers.js.map +0 -1
  73. package/dist/tools/schemas.d.ts +0 -37
  74. package/dist/tools/schemas.d.ts.map +0 -1
  75. package/dist/tools/schemas.js.map +0 -1
@@ -1,8 +1,9 @@
1
- import { createSession, getSession, incrementCall, addRecord, resetSession as resetSessionState, deleteSession as deleteSessionState, isWriteTool, markGhostCommitted, } from "../core/state-engine.js";
1
+ import { createSession, getSession, incrementCall, addRecord, resetSession as resetSessionState, deleteSession as deleteSessionState, classifyTool, extractKey, stripKeyFields, reserveScenarioFire, markGhostCommitted, } from "../core/state-engine.js";
2
2
  import { generateReport, formatMarkdown } from "../core/report-generator.js";
3
3
  import { computeScore, formatScoreReport } from "../benchmark/score.js";
4
4
  import { generatePatches, formatPatchReport } from "../hardening/patch-generator.js";
5
5
  import { getScenarioById, ALL_SCENARIOS } from "../scenarios/f1-f5.js";
6
+ import { resolveScenarioBody } from "../proxy/ghost-write.js";
6
7
  import { mkdir, writeFile } from "node:fs/promises";
7
8
  import { dirname } from "node:path";
8
9
  const AUDIT_REPORT_PATH = ".cuonztech/audit-report.json";
@@ -12,21 +13,18 @@ const AUDIT_REPORT_PATH = ".cuonztech/audit-report.json";
12
13
  // the new, different arguments get recorded in history (inconsistent audit
13
14
  // trail, and a real anomaly worth letting through to normal classification
14
15
  // instead of masking it as a clean cache hit).
15
- function sameArgs(a, b) {
16
- const strip = (o) => {
17
- const { idempotency_key, ...rest } = o;
18
- return rest;
19
- };
20
- return JSON.stringify(strip(a)) === JSON.stringify(strip(b));
16
+ function sameArgs(a, b, keyFields) {
17
+ return (JSON.stringify(stripKeyFields(a, keyFields)) ===
18
+ JSON.stringify(stripKeyFields(b, keyFields)));
21
19
  }
22
20
  // Ad-hoc, non-chaos mode only: a key that already committed a successful
23
21
  // write must replay that exact result instead of generating a fresh one each
24
22
  // time (real idempotency is enforced server-side, not just classified after
25
23
  // the fact). Excluded on purpose:
26
- // - Deterministic scenarios (F1–F5): their trigger conditions are positional
27
- // (by callNumber) and intentionally decide what a specific call number
28
- // returns regardless of key reuse (e.g. F2 must still 429 the 2nd call
29
- // even though it shares a key with the 1st).
24
+ // - Deterministic scenarios (F1–F5): their trigger conditions decide what a
25
+ // specific write returns regardless of key reuse (e.g. F4 must let the
26
+ // second write through as a real second execution even though it shares
27
+ // a key with the first — that duplicate is exactly what F4 measures).
30
28
  // - Chaos mode: stochastic error_rate injection must keep applying to every
31
29
  // call attempt, including retries of a committed key — otherwise a key
32
30
  // that happened to commit early becomes permanently immune to chaos for
@@ -35,17 +33,28 @@ function findCommittedResponse(session, key, toolName, callArgs) {
35
33
  const tracking = session.keyStates.get(key);
36
34
  if (!tracking || tracking.state !== "COMMITTED")
37
35
  return null;
38
- const committed = session.history.filter((r) => r.args["idempotency_key"] === key &&
36
+ const committed = session.history.filter((r) => extractKey(r.args, session.keyFields) === key &&
39
37
  r.toolName === toolName &&
40
- !r.injectedError &&
41
- !r.response.includes('"error"') &&
42
- sameArgs(r.args, callArgs));
38
+ r.outcome === "success" &&
39
+ !r.deduplicated &&
40
+ sameArgs(r.args, callArgs, session.keyFields));
43
41
  return committed.length > 0 ? committed[committed.length - 1] : null;
44
42
  }
45
43
  export function handleStartSession(args) {
46
44
  const scenarioId = args.scenario_id ?? null;
47
45
  const mode = args.mode ?? "deterministic";
48
46
  const errorRate = args.error_rate ?? 0.0;
47
+ const reject = (message) => ({
48
+ content: [{ type: "text", text: `Error: ${message}` }],
49
+ isError: true,
50
+ });
51
+ // Combinations that would silently do nothing (same rules as the proxy CLI).
52
+ if (scenarioId && mode === "chaos") {
53
+ return reject("scenario_id and mode \"chaos\" cannot be combined: with a scenario set, chaos mode never injects anything.");
54
+ }
55
+ if (errorRate > 0 && mode !== "chaos") {
56
+ return reject("error_rate only has an effect together with mode \"chaos\".");
57
+ }
49
58
  if (scenarioId) {
50
59
  const scenario = getScenarioById(scenarioId);
51
60
  if (!scenario) {
@@ -60,7 +69,11 @@ export function handleStartSession(args) {
60
69
  };
61
70
  }
62
71
  }
63
- const session = createSession(scenarioId, mode, errorRate);
72
+ const session = createSession(scenarioId, mode, errorRate, args.write_tool_patterns, {
73
+ readToolPatterns: args.read_tool_patterns,
74
+ keyFields: args.key_fields,
75
+ retryAfterSec: args.retry_after_sec,
76
+ });
64
77
  return {
65
78
  content: [
66
79
  {
@@ -89,11 +102,17 @@ export function handleExecuteCall(args) {
89
102
  isError: true,
90
103
  };
91
104
  }
105
+ const receivedAt = Date.now();
92
106
  const callNumber = incrementCall(args.session_id);
93
- if (args.idempotency_key && !session.scenarioId && session.mode !== "chaos") {
94
- const cached = findCommittedResponse(session, args.idempotency_key, args.tool_name, args.arguments);
107
+ // The key may arrive as the top-level idempotency_key parameter or inside
108
+ // `arguments`; both must behave the same.
109
+ const callKey = args.idempotency_key ?? extractKey(args.arguments, session.keyFields);
110
+ if (callKey && !session.scenarioId && session.mode !== "chaos") {
111
+ const cached = findCommittedResponse(session, callKey, args.tool_name, args.arguments);
95
112
  if (cached) {
96
- const dedupArgs = { ...args.arguments, idempotency_key: args.idempotency_key };
113
+ const dedupArgs = args.idempotency_key
114
+ ? { ...args.arguments, idempotency_key: args.idempotency_key }
115
+ : { ...args.arguments };
97
116
  const record = {
98
117
  callNumber,
99
118
  toolName: args.tool_name,
@@ -102,6 +121,7 @@ export function handleExecuteCall(args) {
102
121
  response: cached.response,
103
122
  upstreamExecuted: false,
104
123
  timestamp: Date.now(),
124
+ receivedAt,
105
125
  deduplicated: true,
106
126
  };
107
127
  addRecord(args.session_id, record);
@@ -138,20 +158,37 @@ export function handleExecuteCall(args) {
138
158
  let injectedError = null;
139
159
  let responseBody;
140
160
  let statusCode = 200;
141
- // Ghost-write: the simulated upstream actually executed the write, but the
142
- // agent only sees a timeout — it must read-before-retry to find out. Mirrors
143
- // the same classification used by the (unwired) proxy's decideChaosAction,
144
- // so F1 produces a real GHOST_CAUGHT/GHOST_MISSED instead of a generic retry.
161
+ // Ghost-write: the simulated backend actually executed the write, but the
162
+ // agent only sees a timeout. Mirrors proxy/ghost-write.ts::decideChaosAction.
145
163
  let isGhostWrite = false;
164
+ let scenarioTriggered = false;
165
+ let retryAfterSec;
166
+ const toolClass = classifyTool(session, args.tool_name);
167
+ const isWriteCall = toolClass === "write";
168
+ const priorWriteCalls = session.scenarioFireCount;
146
169
  if (session.scenarioId) {
147
170
  const scenario = getScenarioById(session.scenarioId);
148
- if (scenario && scenario.triggerCondition(callNumber, args.tool_name)) {
171
+ if (scenario &&
172
+ scenario.triggerCondition({
173
+ callNumber,
174
+ toolName: args.tool_name,
175
+ isWriteCall,
176
+ priorWriteCalls,
177
+ })) {
178
+ reserveScenarioFire(session);
149
179
  const resp = scenario.simulatedResponse;
180
+ scenarioTriggered = true;
150
181
  // Don't mark "success" type as injected error — F4 simulates successful duplicate dispatches
151
182
  injectedError = resp.type === "success" ? null : `[${resp.type.toUpperCase()}]`;
152
183
  statusCode = resp.statusCode ?? 500;
153
- responseBody = resp.body;
154
- isGhostWrite = resp.type === "timeout" && isWriteTool(args.tool_name);
184
+ responseBody = resolveScenarioBody(scenario, session);
185
+ isGhostWrite = resp.type === "timeout" && isWriteCall;
186
+ if (resp.type === "rate_limit")
187
+ retryAfterSec = session.retryAfterSec;
188
+ // Note: resp.delayMs is NOT awaited on this synchronous path (unlike
189
+ // proxy mode's interceptor.ts) — handleExecuteCall is called
190
+ // synchronously from many call sites across the test suite and
191
+ // benchmark runner. Use `proxy` mode if simulated latency matters.
155
192
  }
156
193
  else {
157
194
  responseBody = {
@@ -166,8 +203,8 @@ export function handleExecuteCall(args) {
166
203
  injectedError = "[CHAOS_INJECTED]";
167
204
  statusCode = 500;
168
205
  responseBody = {
169
- error: "CHAOS_ERROR",
170
- message: "Stochastically injected failure.",
206
+ error: "INTERNAL_SERVER_ERROR",
207
+ message: "The server encountered an internal error.",
171
208
  };
172
209
  }
173
210
  else {
@@ -188,10 +225,19 @@ export function handleExecuteCall(args) {
188
225
  response,
189
226
  upstreamExecuted: isGhostWrite,
190
227
  timestamp: Date.now(),
228
+ receivedAt,
229
+ outcome: injectedError !== null ? "injected_failure" : "success",
230
+ toolClass,
231
+ // The simulated backend executes a write unless a failure was injected —
232
+ // except for a ghost-write, which executes although the agent sees one.
233
+ tookEffect: isWriteCall && (injectedError === null || isGhostWrite),
234
+ scenarioTriggered,
235
+ ...(retryAfterSec !== undefined ? { retryAfterSec } : {}),
191
236
  };
192
237
  addRecord(args.session_id, record);
193
- if (isGhostWrite && args.idempotency_key) {
194
- markGhostCommitted(args.session_id, args.idempotency_key);
238
+ const ghostKey = isGhostWrite ? extractKey(mergedArgs, session.keyFields) : undefined;
239
+ if (ghostKey) {
240
+ markGhostCommitted(args.session_id, ghostKey);
195
241
  }
196
242
  return {
197
243
  content: [
@@ -208,7 +254,12 @@ export function handleExecuteCall(args) {
208
254
  isError: statusCode >= 400,
209
255
  };
210
256
  }
211
- export async function handleGetReport(args) {
257
+ // `persist` writes the JSON report to .cuonztech/audit-report.json in the
258
+ // current working directory (the session-mode get_report tool's documented
259
+ // behavior). Proxy mode passes false: its report file is opt-in via
260
+ // --report-file, because a proxy started by an MCP client has no predictable
261
+ // working directory.
262
+ export async function handleGetReport(args, options = {}) {
212
263
  const session = getSession(args.session_id);
213
264
  if (!session) {
214
265
  return {
@@ -223,13 +274,14 @@ export async function handleGetReport(args) {
223
274
  }
224
275
  const report = generateReport(session);
225
276
  const format = args.format ?? "markdown";
226
- // Persist JSON report atomically
227
- try {
228
- await mkdir(dirname(AUDIT_REPORT_PATH), { recursive: true });
229
- await writeFile(AUDIT_REPORT_PATH, JSON.stringify(report, null, 2), "utf-8");
230
- }
231
- catch {
232
- // Non-fatal: report still returned in chat
277
+ if (options.persist ?? true) {
278
+ try {
279
+ await mkdir(dirname(AUDIT_REPORT_PATH), { recursive: true });
280
+ await writeFile(AUDIT_REPORT_PATH, JSON.stringify(report, null, 2), "utf-8");
281
+ }
282
+ catch {
283
+ // Non-fatal: report still returned in chat
284
+ }
233
285
  }
234
286
  const output = format === "json" ? JSON.stringify(report, null, 2) : formatMarkdown(report);
235
287
  return {
@@ -328,4 +380,3 @@ export function handleDeleteSession(args) {
328
380
  isError: !deleted,
329
381
  };
330
382
  }
331
- //# sourceMappingURL=handlers.js.map
@@ -16,6 +16,32 @@ 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 scoring, e.g. ["create_*", "send_*", "book_*"]. ' +
24
+ "Replaces the default list of common write-verb prefixes (write*, create_*, send_*, " +
25
+ "submit_*, post_*, update_*, book_*, pay_*, charge_*, transfer_*, refund_*, ...). " +
26
+ "A tool that matches " +
27
+ "neither a write pattern nor a read pattern is reported as unclassified and not scored."),
28
+ read_tool_patterns: z
29
+ .array(z.string())
30
+ .optional()
31
+ .describe('Extra glob patterns counted as reads, on top of the built-in read prefixes ' +
32
+ "(read, get, list, check, verify, query, fetch, inspect, status, search, find, " +
33
+ "lookup, describe, show, count, view, retrieve)."),
34
+ key_fields: z
35
+ .array(z.string())
36
+ .optional()
37
+ .describe('Argument names that carry an idempotency key (default ["idempotency_key"]; matched ' +
38
+ 'case-insensitively, ignoring "-" and "_"). They are ignored when two write calls ' +
39
+ "are compared, so the same write re-sent under a new key still counts as the same operation."),
40
+ retry_after_sec: z
41
+ .number()
42
+ .positive()
43
+ .optional()
44
+ .describe("retry_after (seconds) announced by scenario F2's 429 and enforced by the audit. Default 60."),
19
45
  };
20
46
  export const ExecuteCallSchema = {
21
47
  session_id: z.string().uuid().describe("Active session ID."),
@@ -51,4 +77,3 @@ export const ResetSessionSchema = {
51
77
  export const DeleteSessionSchema = {
52
78
  session_id: z.string().uuid().describe("Session ID to delete."),
53
79
  };
54
- //# sourceMappingURL=schemas.js.map
@@ -0,0 +1,12 @@
1
+ // Single source of truth for the package version used in every MCP server
2
+ // identity string (stdio server, proxy gateway, proxy's own upstream client).
3
+ // Previously each spot hardcoded its own version literal and drifted out of
4
+ // sync with package.json (0.3.2) — server.ts said 0.3.0, interceptor.ts said
5
+ // 0.2.0. Read from package.json at runtime (not a static JSON import) so it
6
+ // works regardless of the Node version's import-attribute support.
7
+ import { readFileSync } from "node:fs";
8
+ import { fileURLToPath } from "node:url";
9
+ import { dirname, join } from "node:path";
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf-8"));
12
+ export const VERSION = pkg.version;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "cuonztech-agent-harness",
3
- "version": "0.3.2",
4
- "description": "MCP-Server zur Härtung autonomer KI-Agenten — simulierte F1-F5-Chaos-Szenarien, Idempotenz-Prüfung, Ghost-Write-Erkennung, striktes Key-genaues State-Diffing, Resilience Score, automatische System-Prompt-Reparatur und ein transparenter Chaos-Proxy vor einem echten Upstream-MCP-Server.",
3
+ "version": "0.5.0",
4
+ "description": "Chaos-Proxy für MCP-Server: injiziert F1-F5-Fehlerszenarien (Ghost-Write nach Timeout, 429, defektes JSON, Duplicate Dispatch, 500) vor einem echten Upstream-MCP-Server und prüft, ob ein Agent Schreibvorgänge doppelt ausführt. Mit Resilience Score und System-Prompt-Patches für beobachtetes Fehlverhalten.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
+ "cuonztech-agent-harness": "dist/index.js",
8
9
  "cuonztech-harness": "dist/index.js"
9
10
  },
10
11
  "scripts": {
@@ -42,7 +43,7 @@
42
43
  "node": ">=20"
43
44
  },
44
45
  "files": [
45
- "dist",
46
+ "dist/**/*.js",
46
47
  "README.md",
47
48
  "LICENSE"
48
49
  ],
@@ -1,11 +0,0 @@
1
- import type { ResilienceScore } from "./score.js";
2
- import type { HardeningPatch } from "../hardening/patch-generator.js";
3
- export declare function formatCTA(score: ResilienceScore): string;
4
- export interface CuonzTechTelemetry {
5
- cuonztechScore: number;
6
- verdict: "UNVERIFIED_FOR_PRODUCTION";
7
- auditProvider: string;
8
- recommendedAction: string;
9
- }
10
- export declare function buildTelemetry(score: ResilienceScore, patches: HardeningPatch[]): CuonzTechTelemetry;
11
- //# sourceMappingURL=cta.d.ts.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"cta.js","sourceRoot":"","sources":["../../src/benchmark/cta.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { type ResilienceScore } from "./score.js";
2
- import { type HardeningPatch } from "../hardening/patch-generator.js";
3
- import type { AuditReport } from "../core/report-generator.js";
4
- export interface BenchmarkConfig {
5
- scenarios: string[];
6
- runsPerScenario: number;
7
- jitterMs: number;
8
- }
9
- export interface BenchmarkResult {
10
- reports: AuditReport[];
11
- score: ResilienceScore;
12
- patches: HardeningPatch[];
13
- markdownReport: string;
14
- markdownScore: string;
15
- markdownPatches: string;
16
- }
17
- export declare function defaultConfig(): BenchmarkConfig;
18
- export declare function runBenchmark(config?: BenchmarkConfig): Promise<BenchmarkResult>;
19
- //# sourceMappingURL=runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAsC,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,IAAI,eAAe,CAM/C;AAWD,wBAAsB,YAAY,CAChC,MAAM,GAAE,eAAiC,GACxC,OAAO,CAAC,eAAe,CAAC,CA0C1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { AuditReport } from "../core/report-generator.js";
2
- export interface ResilienceScore {
3
- overall: number;
4
- idempotencyRate: number;
5
- recoveryRate: number;
6
- honestyScore: number;
7
- breakdown: ScoreBreakdown;
8
- }
9
- export interface ScoreBreakdown {
10
- totalScenarios: number;
11
- passedScenarios: number;
12
- failedScenarios: number;
13
- validRetries: number;
14
- blindRetries: number;
15
- redundantCalls: number;
16
- ghostWrites: number;
17
- ghostCaught: number;
18
- ghostMissed: number;
19
- injectedErrors: number;
20
- recoveredFromErrors: number;
21
- hallucinatedVerifications: number;
22
- syntaxCrashes: number;
23
- }
24
- export declare function computeScore(reports: AuditReport[]): ResilienceScore;
25
- export declare function formatScoreReport(score: ResilienceScore): string;
26
- //# sourceMappingURL=score.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/benchmark/score.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,eAAe,CAgDpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAyBhE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/benchmark/score.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { type SessionState } from "../engine/state-machine.js";
2
- export type DuplicateClass = "VALID_RETRY" | "BLIND_RETRY" | "REDUNDANT_CALL" | "GHOST_WRITE" | "GHOST_CAUGHT" | "GHOST_MISSED";
3
- export interface AuditReport {
4
- sessionId: string;
5
- scenarioId: string | null;
6
- mode: string;
7
- totalCalls: number;
8
- upstreamCalls: number;
9
- validRetries: number;
10
- blindRetries: number;
11
- redundantCalls: number;
12
- ghostWrites: number;
13
- ghostWriteDetections: number;
14
- ghostWriteMisses: number;
15
- hallucinatedVerifications: number;
16
- syntaxCrashes: number;
17
- injectedErrors: number;
18
- recoveredFromErrors: number;
19
- verdict: "PASS" | "FAIL";
20
- violations: Violation[];
21
- keySummary: KeySummaryEntry[];
22
- generatedAt: string;
23
- }
24
- export interface Violation {
25
- callNumber: number;
26
- type: DuplicateClass | "HALLUCINATED_VERIFICATION" | "SYNTAX_CRASH";
27
- description: string;
28
- idempotencyKey?: string;
29
- }
30
- export interface KeySummaryEntry {
31
- key: string;
32
- state: string;
33
- writeCalls: number;
34
- lastError: string | null;
35
- readBeforeRetry: boolean;
36
- ghostCommitted: boolean;
37
- classification: DuplicateClass | "INITIAL" | "WRITE_ONLY";
38
- stateDiff: {
39
- recordExisted: boolean;
40
- wasOverwritten: boolean;
41
- didAgentReadBefore: boolean;
42
- agentGaveUpSilently: boolean;
43
- };
44
- }
45
- export declare function generateReport(session: SessionState): AuditReport;
46
- export declare function formatMarkdown(report: AuditReport): string;
47
- //# sourceMappingURL=report-generator.d.ts.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"report-generator.js","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { createSession, getSession, incrementCall, addRecord, resetSession, deleteSession, listSessions, isReadTool, isWriteTool, markGhostCommitted, type KeyState, type KeyTracking, type SessionState, type CallRecord, } from "../engine/state-machine.js";
2
- //# sourceMappingURL=state-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-engine.d.ts","sourceRoot":"","sources":["../../src/core/state-engine.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,4BAA4B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-engine.js","sourceRoot":"","sources":["../../src/core/state-engine.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACX,kBAAkB,GAKnB,MAAM,4BAA4B,CAAC"}
@@ -1,33 +0,0 @@
1
- export interface StateRecord {
2
- key: string;
3
- value: unknown;
4
- writtenAt: number;
5
- overwrittenAt: number | null;
6
- callNumber: number;
7
- }
8
- export interface StateDiffResult {
9
- recordExisted: boolean;
10
- valueBeforeRetry: unknown | null;
11
- valueAfterRetry: unknown | null;
12
- wasOverwritten: boolean;
13
- agentCheckedBeforeRetry: boolean;
14
- agentGaveUpSilently: boolean;
15
- }
16
- export declare class StateDiffStore {
17
- private store;
18
- private readLog;
19
- write(key: string, value: unknown, callNumber: number): void;
20
- read(key: string, callNumber: number): unknown | null;
21
- exists(key: string): boolean;
22
- getReadLog(): Array<{
23
- key: string;
24
- callNumber: number;
25
- found: boolean;
26
- timestamp: number;
27
- }>;
28
- didAgentReadBefore(key: string, beforeCallNumber: number): boolean;
29
- getRecord(key: string): StateRecord | undefined;
30
- diff(key: string, agentLastCallNumber: number, agentHadWarning: boolean): StateDiffResult;
31
- reset(): void;
32
- }
33
- //# sourceMappingURL=state-diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-diff.d.ts","sourceRoot":"","sources":["../../src/engine/state-diff.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,OAAO,CAAqF;IAEpG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAc3D;IAED,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKpD;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED,UAAU,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAE1F;IAED,kBAAkB,CAChB,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAIT;IAED,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE9C;IAED,IAAI,CACF,GAAG,EAAE,MAAM,EACX,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,OAAO,GACvB,eAAe,CAYjB;IAED,KAAK,IAAI,IAAI,CAGZ;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-diff.js","sourceRoot":"","sources":["../../src/engine/state-diff.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,cAAc;IACjB,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IACvC,OAAO,GAAkF,EAAE,CAAC;IAEpG,KAAK,CAAC,GAAW,EAAE,KAAc,EAAE,UAAkB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBAClB,GAAG;gBACH,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,aAAa,EAAE,IAAI;gBACnB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,UAAkB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAChB,GAAW,EACX,gBAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,GAAG,gBAAgB,CACxD,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CACF,GAAW,EACX,mBAA2B,EAC3B,eAAwB;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAEpE,OAAO;YACL,aAAa,EAAE,MAAM,KAAK,SAAS;YACnC,gBAAgB,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;YACvC,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;YACtC,cAAc,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI;YAC9C,uBAAuB,EAAE,SAAS;YAClC,mBAAmB,EAAE,CAAC,SAAS,IAAI,CAAC,eAAe;SACpD,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF"}
@@ -1,43 +0,0 @@
1
- import { StateDiffStore } from "./state-diff.js";
2
- export type KeyState = "PENDING" | "FAILED_DOWNSTREAM" | "COMMITTED" | "GHOST_COMMITTED";
3
- export interface KeyTracking {
4
- state: KeyState;
5
- firstCallNumber: number;
6
- lastCallNumber: number;
7
- lastError: string | null;
8
- readBeforeRetry: boolean;
9
- writeCalls: number;
10
- ghostCommitted: boolean;
11
- }
12
- export interface SessionState {
13
- sessionId: string;
14
- callCount: number;
15
- scenarioId: string | null;
16
- mode: "deterministic" | "chaos";
17
- errorRate: number;
18
- history: CallRecord[];
19
- keyStates: Map<string, KeyTracking>;
20
- createdAt: number;
21
- stateDiff: StateDiffStore;
22
- }
23
- export interface CallRecord {
24
- callNumber: number;
25
- toolName: string;
26
- args: Record<string, unknown>;
27
- injectedError: string | null;
28
- response: string;
29
- upstreamExecuted: boolean;
30
- timestamp: number;
31
- deduplicated?: boolean;
32
- }
33
- export declare function createSession(scenarioId?: string | null, mode?: "deterministic" | "chaos", errorRate?: number): SessionState;
34
- export declare function getSession(sessionId: string): SessionState | undefined;
35
- export declare function incrementCall(sessionId: string): number;
36
- export declare function addRecord(sessionId: string, record: CallRecord): void;
37
- export declare function markGhostCommitted(sessionId: string, key: string): void;
38
- export declare function resetSession(sessionId: string): void;
39
- export declare function deleteSession(sessionId: string): boolean;
40
- export declare function listSessions(): SessionState[];
41
- export declare function isWriteTool(toolName: string): boolean;
42
- export declare function isReadTool(toolName: string): boolean;
43
- //# sourceMappingURL=state-machine.d.ts.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../src/engine/state-machine.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { AuditReport } from "../core/report-generator.js";
2
- import type { ResilienceScore } from "../benchmark/score.js";
3
- export interface HardeningPatch {
4
- category: string;
5
- severity: "critical" | "warning" | "info";
6
- trigger: string;
7
- promptSnippet: string;
8
- toolGuidance: string;
9
- }
10
- export declare function generatePatches(reports: AuditReport[], score: ResilienceScore): HardeningPatch[];
11
- export declare function formatPatchReport(patches: HardeningPatch[]): string;
12
- //# sourceMappingURL=patch-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patch-generator.d.ts","sourceRoot":"","sources":["../../src/hardening/patch-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,eAAe,GACrB,cAAc,EAAE,CAyElB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAmBnE"}