agentskeptic 0.1.1 → 0.1.2
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.
- package/LICENSE +21 -21
- package/README.md +342 -342
- package/dist/cli.js +157 -157
- package/dist/debug-ui/app.css +188 -188
- package/dist/debug-ui/app.js +245 -245
- package/dist/debug-ui/index.html +79 -79
- package/dist/enforceCli.js +11 -11
- package/dist/planTransition.test.js +235 -235
- package/dist/planTransitionPathHarvest.test.js +116 -116
- package/dist/quickVerify/postgresCatalog.js +53 -53
- package/package.json +1 -1
- package/schemas/agent-run-record-v1.schema.json +51 -51
- package/schemas/agent-run-record-v2.schema.json +61 -61
- package/schemas/assurance-manifest-v1.schema.json +28 -28
- package/schemas/assurance-run-report-v1.schema.json +28 -28
- package/schemas/ci-lock-v1.schema.json +163 -163
- package/schemas/cli-error-envelope.schema.json +48 -48
- package/schemas/event.schema.json +111 -111
- package/schemas/execution-trace-view.schema.json +122 -122
- package/schemas/plan-validation-core.schema.json +95 -95
- package/schemas/quick-verify-report.schema.json +251 -251
- package/schemas/registry-validation-result.schema.json +99 -99
- package/schemas/run-comparison-report.schema.json +513 -513
- package/schemas/tools-registry-export.schema.json +9 -9
- package/schemas/tools-registry.schema.json +284 -284
- package/schemas/workflow-engine-result.schema.json +591 -591
- package/schemas/workflow-result-compare-input.schema.json +15 -15
- package/schemas/workflow-result-signature.schema.json +20 -20
- package/schemas/workflow-result-v9.schema.json +85 -85
- package/schemas/workflow-result.schema.json +80 -80
- package/schemas/workflow-truth-report.schema.json +761 -761
- package/dist/failureOriginSchemaEnum.test.d.ts +0 -2
- package/dist/failureOriginSchemaEnum.test.d.ts.map +0 -1
- package/dist/failureOriginSchemaEnum.test.js +0 -21
- package/dist/failureOriginSchemaEnum.test.js.map +0 -1
- package/dist/failureOriginSchemaParity.test.d.ts +0 -2
- package/dist/failureOriginSchemaParity.test.d.ts.map +0 -1
- package/dist/failureOriginSchemaParity.test.js +0 -33
- package/dist/failureOriginSchemaParity.test.js.map +0 -1
- package/dist/slice6.compare.ac.test.d.ts +0 -2
- package/dist/slice6.compare.ac.test.d.ts.map +0 -1
- package/dist/slice6.compare.ac.test.js +0 -81
- package/dist/slice6.compare.ac.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failureOriginSchemaEnum.test.d.ts","sourceRoot":"","sources":["../src/failureOriginSchemaEnum.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { readFileSync } from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
5
|
-
import { FAILURE_ORIGINS } from "./failureOriginTypes.js";
|
|
6
|
-
const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
|
-
function enumFromWorkflowTruthSchema() {
|
|
8
|
-
const raw = readFileSync(path.join(root, "schemas", "workflow-truth-report.schema.json"), "utf8");
|
|
9
|
-
const j = JSON.parse(raw);
|
|
10
|
-
const e = j.$defs?.failureOrigin?.enum;
|
|
11
|
-
if (!Array.isArray(e))
|
|
12
|
-
throw new Error("missing failureOrigin enum in workflow-truth-report.schema.json");
|
|
13
|
-
return e;
|
|
14
|
-
}
|
|
15
|
-
describe("failureOriginSchemaEnum", () => {
|
|
16
|
-
it("FAILURE_ORIGINS matches workflow-truth-report $defs.failureOrigin.enum (order-independent)", () => {
|
|
17
|
-
const schemaEnum = enumFromWorkflowTruthSchema();
|
|
18
|
-
expect([...FAILURE_ORIGINS].sort()).toEqual([...schemaEnum].sort());
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=failureOriginSchemaEnum.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failureOriginSchemaEnum.test.js","sourceRoot":"","sources":["../src/failureOriginSchemaEnum.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE3E,SAAS,2BAA2B;IAClC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,mCAAmC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAEvB,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC1G,OAAO,CAAC,CAAC;AACX,CAAC;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;QACpG,MAAM,UAAU,GAAG,2BAA2B,EAAE,CAAC;QACjD,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failureOriginSchemaParity.test.d.ts","sourceRoot":"","sources":["../src/failureOriginSchemaParity.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { readFileSync } from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
5
|
-
import { FAILURE_ORIGINS } from "./failureOriginTypes.js";
|
|
6
|
-
const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
|
-
function enumFromWorkflowTruthSchema() {
|
|
8
|
-
const raw = readFileSync(path.join(root, "schemas", "workflow-truth-report.schema.json"), "utf8");
|
|
9
|
-
const j = JSON.parse(raw);
|
|
10
|
-
const e = j.$defs?.failureOrigin?.enum;
|
|
11
|
-
if (!Array.isArray(e))
|
|
12
|
-
throw new Error("missing failureOrigin enum in workflow-truth-report.schema.json");
|
|
13
|
-
return [...e].sort((a, b) => a.localeCompare(b));
|
|
14
|
-
}
|
|
15
|
-
function enumFromCliErrorSchema() {
|
|
16
|
-
const raw = readFileSync(path.join(root, "schemas", "cli-error-envelope.schema.json"), "utf8");
|
|
17
|
-
const j = JSON.parse(raw);
|
|
18
|
-
const e = j.properties?.failureDiagnosis?.properties?.primaryOrigin?.enum;
|
|
19
|
-
if (!Array.isArray(e))
|
|
20
|
-
throw new Error("missing primaryOrigin enum in cli-error-envelope.schema.json");
|
|
21
|
-
return [...e].sort((a, b) => a.localeCompare(b));
|
|
22
|
-
}
|
|
23
|
-
describe("FailureOrigin JSON Schema parity", () => {
|
|
24
|
-
it("workflow-truth-report failureOrigin enum matches FAILURE_ORIGINS tuple", () => {
|
|
25
|
-
const fromSchema = enumFromWorkflowTruthSchema();
|
|
26
|
-
const fromTs = [...FAILURE_ORIGINS].sort((a, b) => a.localeCompare(b));
|
|
27
|
-
expect(fromSchema).toEqual(fromTs);
|
|
28
|
-
});
|
|
29
|
-
it("cli-error-envelope primaryOrigin enum matches FAILURE_ORIGINS tuple", () => {
|
|
30
|
-
expect(enumFromCliErrorSchema()).toEqual([...FAILURE_ORIGINS].sort((a, b) => a.localeCompare(b)));
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=failureOriginSchemaParity.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failureOriginSchemaParity.test.js","sourceRoot":"","sources":["../src/failureOriginSchemaParity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE3E,SAAS,2BAA2B;IAClC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,mCAAmC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAEvB,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,gCAAgC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAMvB,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACvG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,UAAU,GAAG,2BAA2B,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slice6.compare.ac.test.d.ts","sourceRoot":"","sources":["../src/slice6.compare.ac.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { describe, expect, it } from "vitest";
|
|
5
|
-
import { buildRunComparisonReport } from "./runComparison.js";
|
|
6
|
-
import { loadSchemaValidator } from "./schemaLoad.js";
|
|
7
|
-
import { createEmptyVerificationRunContext } from "./verificationRunContext.js";
|
|
8
|
-
import { finalizeEmittedWorkflowResult } from "./workflowTruthReport.js";
|
|
9
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
|
-
const root = join(__dirname, "..");
|
|
11
|
-
function sqlRowStep(seq, toolId, keyValue, verified) {
|
|
12
|
-
return {
|
|
13
|
-
seq,
|
|
14
|
-
toolId,
|
|
15
|
-
intendedEffect: { narrative: "" },
|
|
16
|
-
observedExecution: { paramsCanonical: "{}" },
|
|
17
|
-
verificationRequest: {
|
|
18
|
-
kind: "sql_row",
|
|
19
|
-
table: "contacts",
|
|
20
|
-
keyColumn: "id",
|
|
21
|
-
keyValue,
|
|
22
|
-
requiredFields: {},
|
|
23
|
-
},
|
|
24
|
-
status: verified ? "verified" : "missing",
|
|
25
|
-
reasons: verified ? [] : [{ code: "ROW_ABSENT", message: "absent" }],
|
|
26
|
-
evidenceSummary: verified ? {} : { rowCount: 0 },
|
|
27
|
-
repeatObservationCount: 1,
|
|
28
|
-
evaluatedObservationOrdinal: 1,
|
|
29
|
-
...(verified ? {} : { failureDiagnostic: "workflow_execution" }),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function wf(steps, id = "wf_slice6_ac") {
|
|
33
|
-
const bad = steps.some((s) => s.status !== "verified");
|
|
34
|
-
const engine = {
|
|
35
|
-
schemaVersion: 7,
|
|
36
|
-
workflowId: id,
|
|
37
|
-
status: bad ? "inconsistent" : "complete",
|
|
38
|
-
runLevelReasons: [],
|
|
39
|
-
verificationPolicy: {
|
|
40
|
-
consistencyMode: "strong",
|
|
41
|
-
verificationWindowMs: 0,
|
|
42
|
-
pollIntervalMs: 0,
|
|
43
|
-
},
|
|
44
|
-
eventSequenceIntegrity: { kind: "normal" },
|
|
45
|
-
verificationRunContext: createEmptyVerificationRunContext(),
|
|
46
|
-
steps,
|
|
47
|
-
};
|
|
48
|
-
return finalizeEmittedWorkflowResult(engine);
|
|
49
|
-
}
|
|
50
|
-
describe("Slice 6 compare acceptance tests", () => {
|
|
51
|
-
const v = loadSchemaValidator("run-comparison-report");
|
|
52
|
-
it("AC_9_1_multi_run_compare_emits_schema_v4", () => {
|
|
53
|
-
const r0 = wf([sqlRowStep(0, "t", "a", true)]);
|
|
54
|
-
const r1 = wf([sqlRowStep(0, "t", "a", true)]);
|
|
55
|
-
const r2 = wf([sqlRowStep(0, "t", "a", true)]);
|
|
56
|
-
const report = buildRunComparisonReport([r0, r1, r2], ["r0", "r1", "r2"]);
|
|
57
|
-
expect(report.schemaVersion).toBe(4);
|
|
58
|
-
expect(report.runs).toHaveLength(3);
|
|
59
|
-
expect(v(report)).toBe(true);
|
|
60
|
-
});
|
|
61
|
-
it("AC_9_2_compareHighlights_match_fixture", () => {
|
|
62
|
-
const r0 = wf([sqlRowStep(0, "t1", "a", true), sqlRowStep(1, "t1", "b", true)]);
|
|
63
|
-
const r1 = wf([sqlRowStep(0, "t1", "b", true), sqlRowStep(1, "t1", "a", false)]);
|
|
64
|
-
const report = buildRunComparisonReport([r0, r1], ["r0", "r1"]);
|
|
65
|
-
expect(v(report)).toBe(true);
|
|
66
|
-
expect(report.compareHighlights.introducedLogicalStepKeys).toContain("sql_row|contacts|id|a");
|
|
67
|
-
expect(report.compareHighlights.resolvedLogicalStepKeys.length).toBeGreaterThanOrEqual(0);
|
|
68
|
-
});
|
|
69
|
-
it("AC_9_4_headlineVerdict_window_pairwise_divergence", () => {
|
|
70
|
-
const r0 = wf([sqlRowStep(0, "t", "a", true)]);
|
|
71
|
-
const r1 = wf([sqlRowStep(0, "t", "a", false)]);
|
|
72
|
-
const r2 = wf([sqlRowStep(0, "t", "a", true)]);
|
|
73
|
-
const report = buildRunComparisonReport([r0, r1, r2], ["r0", "r1", "r2"]);
|
|
74
|
-
expect(report.reliabilityAssessment.windowTrend).toBe("unchanged");
|
|
75
|
-
expect(report.reliabilityAssessment.pairwiseTrend).toBe("improving");
|
|
76
|
-
const golden = JSON.parse(readFileSync(join(root, "test/fixtures/debug-ui-slice6/headline-ac-9-4.json"), "utf8"));
|
|
77
|
-
expect(report.reliabilityAssessment.headlineVerdict).toBe(golden.headlineVerdict);
|
|
78
|
-
expect(report.reliabilityAssessment.headlineRationale).toBe(golden.headlineRationale);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=slice6.compare.ac.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slice6.compare.ac.test.js","sourceRoot":"","sources":["../src/slice6.compare.ac.test.ts"],"names":[],"mappings":"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"}
|