agentskeptic 6.0.1 → 6.2.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 (89) hide show
  1. package/dist/actionableFailure.d.ts +8 -1
  2. package/dist/actionableFailure.d.ts.map +1 -1
  3. package/dist/actionableFailure.js +588 -1
  4. package/dist/actionableFailure.js.map +1 -1
  5. package/dist/correctnessDefinition.d.ts.map +1 -1
  6. package/dist/correctnessDefinition.js +2 -22
  7. package/dist/correctnessDefinition.js.map +1 -1
  8. package/dist/evidenceCompleteness.d.ts +9 -5
  9. package/dist/evidenceCompleteness.d.ts.map +1 -1
  10. package/dist/evidenceCompleteness.js +65 -111
  11. package/dist/evidenceCompleteness.js.map +1 -1
  12. package/dist/execution-identity.v1.json +1 -1
  13. package/dist/failureSpine.d.ts +5 -2
  14. package/dist/failureSpine.d.ts.map +1 -1
  15. package/dist/failureSpine.js +3 -81
  16. package/dist/failureSpine.js.map +1 -1
  17. package/dist/failureSpine.test.js +3 -0
  18. package/dist/failureSpine.test.js.map +1 -1
  19. package/dist/formatEvidenceCompletenessHuman.d.ts +1 -1
  20. package/dist/formatEvidenceCompletenessHuman.d.ts.map +1 -1
  21. package/dist/formatEvidenceCompletenessHuman.js +34 -1
  22. package/dist/formatEvidenceCompletenessHuman.js.map +1 -1
  23. package/dist/formatFailureSpineHuman.d.ts.map +1 -1
  24. package/dist/formatFailureSpineHuman.js +5 -1
  25. package/dist/formatFailureSpineHuman.js.map +1 -1
  26. package/dist/index.d.ts +3 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/loop/loopOutput.contract.test.d.ts +2 -0
  31. package/dist/loop/loopOutput.contract.test.d.ts.map +1 -0
  32. package/dist/loop/loopOutput.contract.test.js +22 -0
  33. package/dist/loop/loopOutput.contract.test.js.map +1 -0
  34. package/dist/loop/loopOutput.d.ts +2 -1
  35. package/dist/loop/loopOutput.d.ts.map +1 -1
  36. package/dist/loop/loopOutput.js +9 -2
  37. package/dist/loop/loopOutput.js.map +1 -1
  38. package/dist/loop/runLoopSubcommand.d.ts.map +1 -1
  39. package/dist/loop/runLoopSubcommand.js +1 -1
  40. package/dist/loop/runLoopSubcommand.js.map +1 -1
  41. package/dist/outcomeCertificate.d.ts +3 -1
  42. package/dist/outcomeCertificate.d.ts.map +1 -1
  43. package/dist/outcomeCertificate.js +39 -4
  44. package/dist/outcomeCertificate.js.map +1 -1
  45. package/dist/outcomeCertificate.test.js +130 -0
  46. package/dist/outcomeCertificate.test.js.map +1 -1
  47. package/dist/publicDistribution.generated.d.ts +1 -1
  48. package/dist/publicDistribution.generated.js +1 -1
  49. package/dist/quickSyntheticWorkflow.d.ts +8 -0
  50. package/dist/quickSyntheticWorkflow.d.ts.map +1 -0
  51. package/dist/quickSyntheticWorkflow.js +59 -0
  52. package/dist/quickSyntheticWorkflow.js.map +1 -0
  53. package/dist/quickVerify/canonicalJson.d.ts.map +1 -1
  54. package/dist/quickVerify/canonicalJson.js +6 -1
  55. package/dist/quickVerify/canonicalJson.js.map +1 -1
  56. package/dist/quickVerify/formatQuickVerifyHumanReport.test.js +92 -2
  57. package/dist/quickVerify/formatQuickVerifyHumanReport.test.js.map +1 -1
  58. package/dist/quickVerify/runQuickVerify.d.ts.map +1 -1
  59. package/dist/quickVerify/runQuickVerify.js +48 -4
  60. package/dist/quickVerify/runQuickVerify.js.map +1 -1
  61. package/dist/remediationConsumptionGuard.test.js +1 -0
  62. package/dist/remediationConsumptionGuard.test.js.map +1 -1
  63. package/dist/remediationDecision.parity.test.d.ts +2 -0
  64. package/dist/remediationDecision.parity.test.d.ts.map +1 -0
  65. package/dist/remediationDecision.parity.test.js +22 -0
  66. package/dist/remediationDecision.parity.test.js.map +1 -0
  67. package/dist/remediationMessage.d.ts +2 -0
  68. package/dist/remediationMessage.d.ts.map +1 -1
  69. package/dist/remediationMessage.js +2 -0
  70. package/dist/remediationMessage.js.map +1 -1
  71. package/dist/remediationWireSurfaceGuard.test.js +1 -0
  72. package/dist/remediationWireSurfaceGuard.test.js.map +1 -1
  73. package/dist/sdk/_generated/openapi-types.d.ts +2 -2
  74. package/dist/sdk/_generated/openapi-types.d.ts.map +1 -1
  75. package/dist/types.d.ts +50 -0
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/workflowFailureSignals.d.ts +8 -0
  78. package/dist/workflowFailureSignals.d.ts.map +1 -0
  79. package/dist/workflowFailureSignals.js +65 -0
  80. package/dist/workflowFailureSignals.js.map +1 -0
  81. package/dist/workflowResultSlice.d.ts +6 -0
  82. package/dist/workflowResultSlice.d.ts.map +1 -0
  83. package/dist/workflowResultSlice.js +8 -0
  84. package/dist/workflowResultSlice.js.map +1 -0
  85. package/package.json +1 -1
  86. package/schemas/evidence-completeness-v1.schema.json +180 -1
  87. package/schemas/openapi-commercial-v1.in.yaml +2 -2
  88. package/schemas/openapi-commercial-v1.yaml +3 -3
  89. package/schemas/outcome-certificate-v3.schema.json +8 -0
@@ -1,9 +1,10 @@
1
1
  import { formatQuickVerifyHumanReport } from "./quickVerify/formatQuickVerifyHumanReport.js";
2
- import { buildEvidenceCompletenessForIneligibleLangGraph, buildEvidenceCompletenessFromWorkflowResult, } from "./evidenceCompleteness.js";
2
+ import { buildEvidenceCompletenessForIneligibleLangGraph, buildEvidenceCompletenessFromQuickReport, buildEvidenceCompletenessFromWorkflowResult, } from "./evidenceCompleteness.js";
3
3
  import { EVIDENCE_COMPLETENESS_BEGIN, formatEvidenceCompletenessHuman, } from "./formatEvidenceCompletenessHuman.js";
4
4
  import { buildFailureSpineFromIneligibleLangGraph, buildFailureSpineFromQuickReport, buildFailureSpineFromWorkflowResult, } from "./failureSpine.js";
5
5
  import { formatFailureSpineHuman } from "./formatFailureSpineHuman.js";
6
6
  import { loadSchemaValidator } from "./schemaLoad.js";
7
+ import { deriveRemediationDecisionFromQuickReport, deriveRemediationDecisionFromWorkflowResult, } from "./actionableFailure.js";
7
8
  import { formatWorkflowTruthReportStruct } from "./workflowTruthReport.js";
8
9
  export function deriveHighStakesReliance(runKind, stateRelation) {
9
10
  if (runKind === "quick_preview")
@@ -180,7 +181,8 @@ export function buildOutcomeCertificateLangGraphCheckpointTrustFromWorkflowResul
180
181
  : `${baseHuman}\n\nlanggraph_checkpoint_verdicts:\n${checkpointVerdicts
181
182
  .map((c) => `${c.checkpointKey}\t${c.verdict}\t${c.productionMeaning}`)
182
183
  .join("\n")}`;
183
- const evidenceCompleteness = buildEvidenceCompletenessFromWorkflowResult(result);
184
+ const remediationDecision = deriveRemediationDecisionFromWorkflowResult(result);
185
+ const evidenceCompleteness = buildEvidenceCompletenessFromWorkflowResult(result, remediationDecision);
184
186
  let humanReport = appendEvidenceCompletenessHuman(workflowHuman, evidenceCompleteness, {
185
187
  runKind,
186
188
  highStakesReliance,
@@ -190,6 +192,7 @@ export function buildOutcomeCertificateLangGraphCheckpointTrustFromWorkflowResul
190
192
  runKind,
191
193
  stateRelation,
192
194
  highStakesReliance,
195
+ remediationDecision,
193
196
  });
194
197
  humanReport = `${humanReport}\n\n${formatFailureSpineHuman(failureSpine)}`;
195
198
  const cert = {
@@ -206,6 +209,9 @@ export function buildOutcomeCertificateLangGraphCheckpointTrustFromWorkflowResul
206
209
  evidenceCompleteness,
207
210
  failureSpine,
208
211
  checkpointVerdicts,
212
+ ...(truth.correctnessDefinition !== null && truth.correctnessDefinition !== undefined
213
+ ? { correctnessDefinition: truth.correctnessDefinition }
214
+ : {}),
209
215
  };
210
216
  assertOutcomeCertificateInvariants(cert);
211
217
  return cert;
@@ -218,7 +224,8 @@ export function buildOutcomeCertificateFromWorkflowResult(result, runKind) {
218
224
  const highStakesReliance = deriveHighStakesReliance(runKind, stateRelation);
219
225
  const truth = result.workflowTruthReport;
220
226
  const steps = truth.steps.map(truthStepToCertificateStep);
221
- const evidenceCompleteness = buildEvidenceCompletenessFromWorkflowResult(result);
227
+ const remediationDecision = deriveRemediationDecisionFromWorkflowResult(result);
228
+ const evidenceCompleteness = buildEvidenceCompletenessFromWorkflowResult(result, remediationDecision);
222
229
  let humanReport = appendEvidenceCompletenessHuman(formatWorkflowTruthReportStruct(truth), evidenceCompleteness, {
223
230
  runKind,
224
231
  highStakesReliance,
@@ -228,6 +235,7 @@ export function buildOutcomeCertificateFromWorkflowResult(result, runKind) {
228
235
  runKind,
229
236
  stateRelation,
230
237
  highStakesReliance,
238
+ remediationDecision,
231
239
  });
232
240
  humanReport = `${humanReport}\n\n${formatFailureSpineHuman(failureSpine)}`;
233
241
  const cert = {
@@ -243,6 +251,9 @@ export function buildOutcomeCertificateFromWorkflowResult(result, runKind) {
243
251
  humanReport,
244
252
  evidenceCompleteness,
245
253
  failureSpine,
254
+ ...(truth.correctnessDefinition !== null && truth.correctnessDefinition !== undefined
255
+ ? { correctnessDefinition: truth.correctnessDefinition }
256
+ : {}),
246
257
  };
247
258
  assertOutcomeCertificateInvariants(cert);
248
259
  return cert;
@@ -259,7 +270,19 @@ export function buildOutcomeCertificateFromQuickReport(options) {
259
270
  const runKind = "quick_preview";
260
271
  const stateRelation = quickVerdictToStateRelation(report.verdict);
261
272
  const highStakesReliance = deriveHighStakesReliance(runKind, stateRelation);
262
- const evidenceCompleteness = report.evidenceCompleteness;
273
+ const remediationDecision = deriveRemediationDecisionFromQuickReport(report, workflowId);
274
+ const evidenceCompleteness = buildEvidenceCompletenessFromQuickReport({
275
+ verdict: report.verdict,
276
+ ingest: report.ingest,
277
+ units: report.units.map((u) => ({
278
+ unitId: u.unitId,
279
+ verdict: u.verdict,
280
+ reasonCodes: u.reasonCodes,
281
+ sourceAction: u.sourceAction,
282
+ reconciliation: u.reconciliation,
283
+ verification: u.verification,
284
+ })),
285
+ }, remediationDecision);
263
286
  let humanReport = appendEvidenceCompletenessHuman(formatQuickVerifyHumanReport(report, humanReportOptions), evidenceCompleteness, { runKind, highStakesReliance });
264
287
  const details = [];
265
288
  for (const u of report.units) {
@@ -275,8 +298,10 @@ export function buildOutcomeCertificateFromQuickReport(options) {
275
298
  workflowId,
276
299
  stateRelation,
277
300
  highStakesReliance,
301
+ remediationDecision,
278
302
  });
279
303
  humanReport = `${humanReport}\n\n${formatFailureSpineHuman(failureSpine)}`;
304
+ const firstCd = report.units.find((u) => u.correctnessDefinition !== undefined)?.correctnessDefinition;
280
305
  const cert = {
281
306
  schemaVersion: 3,
282
307
  workflowId,
@@ -298,6 +323,7 @@ export function buildOutcomeCertificateFromQuickReport(options) {
298
323
  humanReport,
299
324
  evidenceCompleteness,
300
325
  failureSpine,
326
+ ...(firstCd !== undefined ? { correctnessDefinition: firstCd } : {}),
301
327
  };
302
328
  assertOutcomeCertificateInvariants(cert);
303
329
  return cert;
@@ -326,6 +352,15 @@ export function assertOutcomeCertificateInvariants(certificate) {
326
352
  certificate.evidenceCompleteness.blockerCategory === undefined) {
327
353
  throw new Error("outcome_certificate: evidenceCompleteness malformed");
328
354
  }
355
+ if (certificate.stateRelation !== "matches_expectations") {
356
+ if (certificate.evidenceCompleteness.remediationItems === undefined ||
357
+ certificate.evidenceCompleteness.remediationItems.length === 0) {
358
+ throw new Error("failed outcome certificate missing evidenceCompleteness.remediationItems");
359
+ }
360
+ if (certificate.evidenceCompleteness.rerunPath === undefined) {
361
+ throw new Error("failed outcome certificate missing evidenceCompleteness.rerunPath");
362
+ }
363
+ }
329
364
  if (!certificate.humanReport.includes(EVIDENCE_COMPLETENESS_BEGIN)) {
330
365
  throw new Error("outcome_certificate: humanReport must contain evidence_completeness anchors");
331
366
  }
@@ -1 +1 @@
1
- {"version":3,"file":"outcomeCertificate.js","sourceRoot":"","sources":["../src/outcomeCertificate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outcomeCertificate.js","sourceRoot":"","sources":["../src/outcomeCertificate.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,15 @@ import { describe, expect, it } from "vitest";
7
7
  import { loadSchemaValidator } from "./schemaLoad.js";
8
8
  import { verifyWorkflow } from "./pipeline.js";
9
9
  import { assertOutcomeCertificateInvariants, buildOutcomeCertificateFromWorkflowResult, deriveHighStakesReliance, formatOutcomeCertificateHuman, } from "./outcomeCertificate.js";
10
+ import { createEmptyVerificationRunContext } from "./verificationRunContext.js";
11
+ import { finalizeEmittedWorkflowResult } from "./workflowTruthReport.js";
10
12
  const __dirname = dirname(fileURLToPath(import.meta.url));
11
13
  const root = join(__dirname, "..");
14
+ const strongPolicy = {
15
+ consistencyMode: "strong",
16
+ verificationWindowMs: 0,
17
+ pollIntervalMs: 0,
18
+ };
12
19
  function seedTempSqliteDb() {
13
20
  const dir = mkdtempSync(join(tmpdir(), "outcome-cert-"));
14
21
  const dbPath = join(dir, "demo.db");
@@ -21,6 +28,38 @@ function seedTempSqliteDb() {
21
28
  cleanup: () => rmSync(dir, { recursive: true, force: true }),
22
29
  };
23
30
  }
31
+ function baseEngine(step, status = "inconsistent") {
32
+ return {
33
+ schemaVersion: 8,
34
+ workflowId: "wf_synthetic",
35
+ status,
36
+ runLevelReasons: [],
37
+ verificationPolicy: strongPolicy,
38
+ eventSequenceIntegrity: { kind: "normal" },
39
+ verificationRunContext: createEmptyVerificationRunContext(),
40
+ steps: [step],
41
+ };
42
+ }
43
+ function sqlStep(code, message, status = "inconsistent") {
44
+ return {
45
+ seq: 0,
46
+ toolId: "crm.upsert_contact",
47
+ intendedEffect: { narrative: "Upsert contact c_missing" },
48
+ observedExecution: { paramsCanonical: "{}" },
49
+ verificationRequest: {
50
+ kind: "sql_row",
51
+ table: "contacts",
52
+ identityEq: [{ column: "id", value: "c_missing" }],
53
+ requiredFields: { status: "active" },
54
+ },
55
+ status,
56
+ reasons: [{ code, message }],
57
+ evidenceSummary: { rowCount: 0 },
58
+ repeatObservationCount: 1,
59
+ evaluatedObservationOrdinal: 1,
60
+ failureDiagnostic: "workflow_execution",
61
+ };
62
+ }
24
63
  describe("outcomeCertificate", () => {
25
64
  it("deriveHighStakesReliance matches normative table", () => {
26
65
  expect(deriveHighStakesReliance("quick_preview", "matches_expectations")).toBe("prohibited");
@@ -65,10 +104,101 @@ describe("outcomeCertificate", () => {
65
104
  const certificate = buildOutcomeCertificateFromWorkflowResult(result, "contract_sql");
66
105
  expect(certificate.stateRelation).toBe("does_not_match");
67
106
  expect(certificate.highStakesReliance).toBe("prohibited");
107
+ const item = certificate.evidenceCompleteness.remediationItems?.[0];
108
+ expect(item).toMatchObject({
109
+ id: "step:0",
110
+ scope: "step",
111
+ humanReview: {
112
+ required: true,
113
+ decisionPrompt: "Decide which hypothesis explains the mismatch before changing state or inputs.",
114
+ },
115
+ automation: {
116
+ class: "never_auto_mutate",
117
+ label: "Manual judgment required; do not automate mutation from this result.",
118
+ },
119
+ rerunPath: {
120
+ type: "after_manual_review_verify",
121
+ sameInputs: false,
122
+ },
123
+ });
124
+ expect(certificate.humanReport).toContain("Manual review: Decide which hypothesis explains the mismatch before changing state or inputs.");
125
+ }
126
+ finally {
127
+ cleanup();
128
+ }
129
+ });
130
+ it("producer invariant rejects failed certificates without remediationItems", async () => {
131
+ const { dbPath, cleanup } = seedTempSqliteDb();
132
+ try {
133
+ const result = await verifyWorkflow({
134
+ workflowId: "wf_missing",
135
+ eventsPath: join(root, "examples", "events.ndjson"),
136
+ registryPath: join(root, "examples", "tools.json"),
137
+ database: { kind: "sqlite", path: dbPath },
138
+ logStep: () => { },
139
+ truthReport: () => { },
140
+ });
141
+ const certificate = buildOutcomeCertificateFromWorkflowResult(result, "contract_sql");
142
+ const malformed = {
143
+ ...certificate,
144
+ evidenceCompleteness: {
145
+ ...certificate.evidenceCompleteness,
146
+ remediationItems: undefined,
147
+ },
148
+ };
149
+ expect(() => assertOutcomeCertificateInvariants(malformed)).toThrow("failed outcome certificate missing evidenceCompleteness.remediationItems");
68
150
  }
69
151
  finally {
70
152
  cleanup();
71
153
  }
72
154
  });
155
+ it("multi-effect failures emit item-level remediation instead of aggregate-only prose", () => {
156
+ const raw = readFileSync(join(root, "test/golden/wf_multi_all_fail.stdout.json"), "utf8");
157
+ const result = JSON.parse(raw);
158
+ const certificate = buildOutcomeCertificateFromWorkflowResult(result, "contract_sql");
159
+ const items = certificate.evidenceCompleteness.remediationItems ?? [];
160
+ expect(items.map((i) => i.id)).toEqual(["effect:0:primary", "effect:0:secondary"]);
161
+ expect(items[0]).toMatchObject({
162
+ id: "effect:0:primary",
163
+ scope: "effect",
164
+ recommendedAction: "reconcile_downstream_state",
165
+ rerunPath: { type: "after_state_fix_verify", sameInputs: false },
166
+ });
167
+ expect(certificate.humanReport).toContain("Remediation items:");
168
+ expect(certificate.humanReport).toContain("- effect:0:primary: Fix downstream database or service state to match declared expectations, then rerun verify.");
169
+ });
170
+ it("connector failures are read-only retry with same inputs", () => {
171
+ const result = finalizeEmittedWorkflowResult(baseEngine(sqlStep("CONNECTOR_ERROR", "Read-only connector failed", "incomplete_verification"), "incomplete"));
172
+ const certificate = buildOutcomeCertificateFromWorkflowResult(result, "contract_sql");
173
+ const item = certificate.evidenceCompleteness.remediationItems?.[0];
174
+ expect(item).toMatchObject({
175
+ id: "step:0",
176
+ recommendedAction: "improve_read_connectivity",
177
+ automation: {
178
+ class: "read_only_retry",
179
+ label: "Safe automatic action: retry read-only verification with the same inputs.",
180
+ },
181
+ rerunPath: { type: "same_input_verify", sameInputs: true },
182
+ });
183
+ expect(certificate.humanReport).toContain("Automation: Safe automatic action: retry read-only verification with the same inputs.");
184
+ });
185
+ it("determinate state mismatch is human-write-required with after-state-fix rerun", () => {
186
+ const result = finalizeEmittedWorkflowResult(baseEngine(sqlStep("DUPLICATE_ROWS", "Duplicate rows matched key")));
187
+ const certificate = buildOutcomeCertificateFromWorkflowResult(result, "contract_sql");
188
+ const item = certificate.evidenceCompleteness.remediationItems?.[0];
189
+ expect(item).toMatchObject({
190
+ recommendedAction: "deduplicate",
191
+ automation: {
192
+ class: "human_write_required",
193
+ label: "Human or external system must change state; AgentSkeptic will not mutate data.",
194
+ },
195
+ rerunPath: {
196
+ type: "after_state_fix_verify",
197
+ sameInputs: false,
198
+ readinessLabel: "Rerun verify after downstream state matches the expected state.",
199
+ },
200
+ });
201
+ expect(certificate.humanReport).toContain("Rerun: Rerun verify after downstream state matches the expected state.");
202
+ });
73
203
  });
74
204
  //# sourceMappingURL=outcomeCertificate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outcomeCertificate.test.js","sourceRoot":"","sources":["../src/outcomeCertificate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outcomeCertificate.test.js","sourceRoot":"","sources":["../src/outcomeCertificate.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export declare const PUBLIC_DISTRIBUTION_SSOT_BLOB_URL = "https://github.com/jwekavanagh/agentskeptic/blob/main/docs/public-distribution.md";
2
2
  export declare const PUBLIC_CANONICAL_SITE_ORIGIN = "https://agentskeptic.com";
3
- export declare const AGENTSKEPTIC_CLI_SEMVER = "6.0.1";
3
+ export declare const AGENTSKEPTIC_CLI_SEMVER = "6.2.0";
4
4
  export declare function formatDistributionFooter(): string;
5
5
  //# sourceMappingURL=publicDistribution.generated.d.ts.map
@@ -1,7 +1,7 @@
1
1
  // Generated by npm run emit-primary-marketing — do not hand edit.
2
2
  export const PUBLIC_DISTRIBUTION_SSOT_BLOB_URL = "https://github.com/jwekavanagh/agentskeptic/blob/main/docs/public-distribution.md";
3
3
  export const PUBLIC_CANONICAL_SITE_ORIGIN = "https://agentskeptic.com";
4
- export const AGENTSKEPTIC_CLI_SEMVER = "6.0.1";
4
+ export const AGENTSKEPTIC_CLI_SEMVER = "6.2.0";
5
5
  export function formatDistributionFooter() {
6
6
  return "Context: https://agentskeptic.com/database-truth-vs-traces\n"
7
7
  + "https://agentskeptic.com/integrate\n"
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Synthetic WorkflowEngineResult from Quick Verify report — failure spine + remediation derivation.
3
+ */
4
+ import type { QuickVerifyReport } from "./quickVerify/runQuickVerify.js";
5
+ import type { FailureAnalysisBase, WorkflowEngineResult } from "./types.js";
6
+ export declare function quickVerifyReportToSyntheticEngine(report: QuickVerifyReport, workflowId: string): WorkflowEngineResult;
7
+ export declare function syntheticQuickFailureAnalysis(report: QuickVerifyReport): FailureAnalysisBase;
8
+ //# sourceMappingURL=quickSyntheticWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickSyntheticWorkflow.d.ts","sourceRoot":"","sources":["../src/quickSyntheticWorkflow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAuB,oBAAoB,EAAkB,MAAM,YAAY,CAAC;AAEjH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,oBAAoB,CA8CtH;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAS5F"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Synthetic WorkflowEngineResult from Quick Verify report — failure spine + remediation derivation.
3
+ */
4
+ import { createEmptyVerificationRunContext } from "./verificationRunContext.js";
5
+ import { DEFAULT_VERIFICATION_POLICY } from "./verificationPolicy.js";
6
+ import { SQL_VERIFICATION_OUTCOME_CODE } from "./wireReasonCodes.js";
7
+ export function quickVerifyReportToSyntheticEngine(report, workflowId) {
8
+ const status = report.verdict === "fail" ? "inconsistent" : report.verdict === "pass" ? "complete" : "incomplete";
9
+ const steps = report.units.map((u, i) => {
10
+ const st = u.verdict === "verified" ? "verified" : u.verdict === "fail" ? "inconsistent" : "uncertain";
11
+ const reasons = u.reasonCodes.length > 0
12
+ ? u.reasonCodes.map((c) => ({ code: c, message: c }))
13
+ : u.verdict !== "verified"
14
+ ? [{ code: SQL_VERIFICATION_OUTCOME_CODE.ROW_ABSENT, message: "quick synthetic absent" }]
15
+ : [];
16
+ const step = {
17
+ seq: i,
18
+ toolId: u.sourceAction.toolName,
19
+ intendedEffect: { narrative: u.explanation },
20
+ observedExecution: { paramsCanonical: "{}" },
21
+ verificationRequest: {
22
+ kind: "sql_row",
23
+ table: u.inference.table,
24
+ identityEq: [{ column: "id", value: "quick_synthetic" }],
25
+ requiredFields: {},
26
+ },
27
+ status: st,
28
+ reasons,
29
+ evidenceSummary: {},
30
+ repeatObservationCount: 1,
31
+ evaluatedObservationOrdinal: 1,
32
+ };
33
+ if (st !== "verified") {
34
+ step.failureDiagnostic = "workflow_execution";
35
+ }
36
+ return step;
37
+ });
38
+ return {
39
+ schemaVersion: 8,
40
+ workflowId,
41
+ status,
42
+ runLevelReasons: [],
43
+ verificationPolicy: DEFAULT_VERIFICATION_POLICY,
44
+ eventSequenceIntegrity: { kind: "normal" },
45
+ steps,
46
+ verificationRunContext: createEmptyVerificationRunContext(),
47
+ };
48
+ }
49
+ export function syntheticQuickFailureAnalysis(report) {
50
+ return {
51
+ summary: report.summary,
52
+ primaryOrigin: "workflow_flow",
53
+ confidence: "medium",
54
+ unknownReasonCodes: [],
55
+ evidence: [{ scope: "run_level", codes: ["QUICK_PREVIEW_SYNTHETIC"] }],
56
+ alternativeHypotheses: undefined,
57
+ };
58
+ }
59
+ //# sourceMappingURL=quickSyntheticWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickSyntheticWorkflow.js","sourceRoot":"","sources":["../src/quickSyntheticWorkflow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAIrE,MAAM,UAAU,kCAAkC,CAAC,MAAyB,EAAE,UAAkB;IAC9F,MAAM,MAAM,GACV,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAErG,MAAM,KAAK,GAAkB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,EAAE,GACN,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9F,MAAM,OAAO,GACX,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU;gBACxB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,6BAA6B,CAAC,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;gBACzF,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,GAAgB;YACxB,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ;YAC/B,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE;YAC5C,iBAAiB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;YAC5C,mBAAmB,EAAE;gBACnB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK;gBACxB,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;gBACxD,cAAc,EAAE,EAAE;aACnB;YACD,MAAM,EAAE,EAAE;YACV,OAAO;YACP,eAAe,EAAE,EAAE;YACnB,sBAAsB,EAAE,CAAC;YACzB,2BAA2B,EAAE,CAAC;SAC/B,CAAC;QACF,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,UAAU;QACV,MAAM;QACN,eAAe,EAAE,EAAE;QACnB,kBAAkB,EAAE,2BAA2B;QAC/C,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1C,KAAK;QACL,sBAAsB,EAAE,iCAAiC,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAyB;IACrE,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,eAAe;QAC9B,UAAU,EAAE,QAAQ;QACpB,kBAAkB,EAAE,EAAE;QACtB,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACtE,qBAAqB,EAAE,SAAS;KACjC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalJson.d.ts","sourceRoot":"","sources":["../../src/quickVerify/canonicalJson.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUtD;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/D"}
1
+ {"version":3,"file":"canonicalJson.d.ts","sourceRoot":"","sources":["../../src/quickVerify/canonicalJson.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAetD;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAO/D"}
@@ -1,6 +1,9 @@
1
1
  import { compareUtf16Id } from "../resolveExpectation.js";
2
2
  /** UTF-16 key sort for stable JSON objects (same as canonical params). */
3
3
  export function stableStringify(value) {
4
+ if (value === undefined) {
5
+ return "null";
6
+ }
4
7
  if (value === null || typeof value !== "object") {
5
8
  return JSON.stringify(value);
6
9
  }
@@ -8,7 +11,9 @@ export function stableStringify(value) {
8
11
  return `[${value.map((x) => stableStringify(x)).join(",")}]`;
9
12
  }
10
13
  const obj = value;
11
- const keys = Object.keys(obj).sort(compareUtf16Id);
14
+ const keys = Object.keys(obj)
15
+ .filter((k) => obj[k] !== undefined)
16
+ .sort(compareUtf16Id);
12
17
  return `{${keys.map((k) => `${JSON.stringify(k)}:${stableStringify(obj[k])}`).join(",")}}`;
13
18
  }
14
19
  /** Canonical UTF-8 string for export file === canonicalToolsArrayUtf8(tools). */
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalJson.js","sourceRoot":"","sources":["../../src/quickVerify/canonicalJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7F,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAI,CAAwB,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,GAAI,CAAwB,CAAC,MAAM,CAAC;QAC5C,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"canonicalJson.js","sourceRoot":"","sources":["../../src/quickVerify/canonicalJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACnC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7F,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAI,CAAwB,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,GAAI,CAAwB,CAAC,MAAM,CAAC;QAC5C,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -3,15 +3,40 @@ import { formatQuickVerifyHumanReport, QUICK_VERIFY_BANNER_LINE_1, QUICK_VERIFY_
3
3
  import { HUMAN_REPORT_BEGIN, HUMAN_REPORT_END, verdictLine } from "./quickVerifyHumanCopy.js";
4
4
  import { DEFAULT_QUICK_VERIFY_SCOPE } from "./quickVerifyScope.js";
5
5
  import { buildQuickVerifyProductTruth } from "./quickVerifyProductTruth.js";
6
+ import { deriveRemediationDecisionFromQuickReport } from "../actionableFailure.js";
6
7
  import { buildEvidenceCompletenessFromQuickReport } from "../evidenceCompleteness.js";
8
+ import { buildQuickUnitCorrectnessDefinition } from "../correctnessDefinition.js";
9
+ import { formatEvidenceCompletenessHuman } from "../formatEvidenceCompletenessHuman.js";
7
10
  function minimalReport(verdict) {
8
11
  const ingest = { reasonCodes: ["INGEST_NO_ACTIONS"], malformedLineCount: 0 };
9
12
  const units = [];
10
- const evidenceCompleteness = buildEvidenceCompletenessFromQuickReport({ verdict, ingest, units });
13
+ const summary = `Inferred provisional check — rollup ${verdict} is not a production-safety or audit-final verdict. 0 unit(s).`;
14
+ const stub = {
15
+ schemaVersion: 5,
16
+ verdict,
17
+ summary,
18
+ verificationMode: "inferred",
19
+ scope: { ...DEFAULT_QUICK_VERIFY_SCOPE },
20
+ productTruth: buildQuickVerifyProductTruth(false),
21
+ ingest,
22
+ units,
23
+ exportableRegistry: { tools: [] },
24
+ evidenceCompleteness: {
25
+ schemaVersion: 1,
26
+ blockerCategory: "preview_lane",
27
+ quickSignal: "no_actions",
28
+ verifiedClaims: [],
29
+ unverifiedClaims: [],
30
+ missingInputs: [{ code: "_", hint: "_" }],
31
+ nextActions: [{ id: "_", text: "_" }],
32
+ },
33
+ };
34
+ const decision = deriveRemediationDecisionFromQuickReport(stub, "test");
35
+ const evidenceCompleteness = buildEvidenceCompletenessFromQuickReport({ verdict, ingest, units }, decision);
11
36
  return {
12
37
  schemaVersion: 5,
13
38
  verdict,
14
- summary: `Inferred provisional check — rollup ${verdict} is not a production-safety or audit-final verdict. 0 unit(s).`,
39
+ summary,
15
40
  verificationMode: "inferred",
16
41
  scope: { ...DEFAULT_QUICK_VERIFY_SCOPE },
17
42
  productTruth: buildQuickVerifyProductTruth(false),
@@ -42,5 +67,70 @@ describe("formatQuickVerifyHumanReport", () => {
42
67
  expect(lines[2]).toBe(HUMAN_REPORT_END);
43
68
  }
44
69
  });
70
+ it("quick mapping gap remediation aligns item action with correctnessDefinition remediationAlignment", () => {
71
+ const ingest = { reasonCodes: [], malformedLineCount: 0 };
72
+ const cd = buildQuickUnitCorrectnessDefinition({
73
+ unitId: "u0",
74
+ kind: "row",
75
+ toolName: "crm.upsert_contact",
76
+ actionIndex: 0,
77
+ table: "contacts",
78
+ reasonCodes: ["MAPPING_FAILED"],
79
+ });
80
+ const units = [
81
+ {
82
+ unitId: "u0",
83
+ kind: "row",
84
+ verdict: "uncertain",
85
+ confidence: 0.1,
86
+ reasonCodes: ["MAPPING_FAILED"],
87
+ sourceAction: { toolName: "crm.upsert_contact", actionIndex: 0 },
88
+ contractEligible: false,
89
+ inference: { table: "contacts", rationale: ["mapping failed"] },
90
+ verification: {},
91
+ explanation: "Could not map row unit.",
92
+ reconciliation: {
93
+ declared: "tool crm.upsert_contact",
94
+ expected: "row mapping for contacts",
95
+ observed_database: "not checked",
96
+ verification_verdict: "mapping failed",
97
+ },
98
+ correctnessDefinition: cd,
99
+ },
100
+ ];
101
+ const summary = "Inferred provisional check - rollup uncertain is not a production-safety or audit-final verdict. 1 unit(s).";
102
+ const report = {
103
+ schemaVersion: 5,
104
+ verdict: "uncertain",
105
+ summary,
106
+ verificationMode: "inferred",
107
+ scope: { ...DEFAULT_QUICK_VERIFY_SCOPE },
108
+ productTruth: buildQuickVerifyProductTruth(false),
109
+ ingest,
110
+ units,
111
+ exportableRegistry: { tools: [] },
112
+ evidenceCompleteness: {
113
+ schemaVersion: 1,
114
+ blockerCategory: "preview_lane",
115
+ quickSignal: "sql_ran_uncertain",
116
+ verifiedClaims: [],
117
+ unverifiedClaims: [],
118
+ missingInputs: [{ code: "_", hint: "_" }],
119
+ nextActions: [{ id: "_", text: "_" }],
120
+ },
121
+ };
122
+ const decision = deriveRemediationDecisionFromQuickReport(report, "quick_verify");
123
+ const evidenceCompleteness = buildEvidenceCompletenessFromQuickReport({ verdict: "uncertain", ingest, units }, decision);
124
+ const item = evidenceCompleteness.remediationItems?.find((i) => i.id === "quick:u0");
125
+ expect(item?.recommendedAction).toBe(cd.remediationAlignment.recommendedAction);
126
+ expect(item?.recommendedAction).toBe("correct_verification_inputs");
127
+ expect(item?.automation.class).toBe("input_regeneration_candidate");
128
+ expect(item?.rerunPath.type).toBe("after_input_fix_verify");
129
+ const human = formatEvidenceCompletenessHuman(evidenceCompleteness, {
130
+ runKind: "quick_preview",
131
+ highStakesReliance: "prohibited",
132
+ });
133
+ expect(human).toContain("Rerun: Rerun verify after registry, events, tool parameters, or verification inputs are corrected.");
134
+ });
45
135
  });
46
136
  //# sourceMappingURL=formatQuickVerifyHumanReport.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatQuickVerifyHumanReport.test.js","sourceRoot":"","sources":["../../src/quickVerify/formatQuickVerifyHumanReport.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AAGtF,SAAS,aAAa,CAAC,OAAsC;IAC3D,MAAM,MAAM,GAAG,EAAE,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;IAC7E,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,MAAM,oBAAoB,GAAG,wCAAwC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,OAAO;QACP,OAAO,EAAE,uCAAuC,OAAO,gEAAgE;QACvH,gBAAgB,EAAE,UAAU;QAC5B,KAAK,EAAE,EAAE,GAAG,0BAA0B,EAAE;QACxC,YAAY,EAAE,4BAA4B,CAAC,KAAK,CAAC;QACjD,MAAM;QACN,oBAAoB;QACpB,KAAK;QACL,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAClC,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAG,4BAA4B,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAU,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"formatQuickVerifyHumanReport.test.js","sourceRoot":"","sources":["../../src/quickVerify/formatQuickVerifyHumanReport.test.ts"],"names":[],"mappings":"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"}