agentskeptic 6.4.0 → 7.0.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.
- package/README.md +10 -8
- package/config/first-five-minutes.json +9 -6
- package/config/marketing.json +34 -42
- package/dist/agentRunRecord.d.ts +2 -0
- package/dist/agentRunRecord.d.ts.map +1 -1
- package/dist/agentRunRecord.js +10 -4
- package/dist/agentRunRecord.js.map +1 -1
- package/dist/assurance/buildAssuranceOutput.js.map +1 -1
- package/dist/correctnessDefinition.js +5 -5
- package/dist/correctnessDefinition.js.map +1 -1
- package/dist/correctnessDefinitionTemplates.d.ts +5 -5
- package/dist/correctnessDefinitionTemplates.d.ts.map +1 -1
- package/dist/correctnessDefinitionTemplates.js +7 -7
- package/dist/correctnessDefinitionTemplates.js.map +1 -1
- package/dist/debugCorpus.d.ts.map +1 -1
- package/dist/debugCorpus.js +18 -8
- package/dist/debugCorpus.js.map +1 -1
- package/dist/discovery-payload-v1.json +22 -55
- package/dist/documentationCopyConsistency.test.js +0 -1
- package/dist/documentationCopyConsistency.test.js.map +1 -1
- package/dist/execution-identity.v1.json +1 -1
- package/dist/failureExplanation.d.ts +4 -4
- package/dist/failureExplanation.d.ts.map +1 -1
- package/dist/failureExplanation.golden.test.js +26 -1
- package/dist/failureExplanation.golden.test.js.map +1 -1
- package/dist/failureExplanation.js +2 -2
- package/dist/failureExplanation.js.map +1 -1
- package/dist/outcomeCertificate.js +2 -2
- package/dist/outcomeCertificate.js.map +1 -1
- package/dist/publicDistribution.generated.d.ts +1 -1
- package/dist/publicDistribution.generated.js +1 -1
- package/dist/quickVerify/quickVerifyProductTruth.d.ts +3 -3
- package/dist/quickVerify/quickVerifyProductTruth.js +3 -3
- package/dist/quickVerify/quickVerifyProductTruth.js.map +1 -1
- package/dist/reconciliationPresentation.d.ts +2 -2
- package/dist/reconciliationPresentation.d.ts.map +1 -1
- package/dist/reconciliationPresentation.js +2 -2
- package/dist/reconciliationPresentation.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/verifyRunBundleSignature.d.ts.map +1 -1
- package/dist/verifyRunBundleSignature.js +6 -4
- package/dist/verifyRunBundleSignature.js.map +1 -1
- package/dist/workflowResultSignature.d.ts.map +1 -1
- package/dist/workflowResultSignature.js +4 -3
- package/dist/workflowResultSignature.js.map +1 -1
- package/dist/workflowTruthReport.d.ts +1 -1
- package/dist/workflowTruthReport.d.ts.map +1 -1
- package/dist/workflowTruthReport.js +8 -8
- package/dist/workflowTruthReport.js.map +1 -1
- package/dist/workflowTruthReport.semantics.test.js +1 -1
- package/dist/workflowTruthReport.semantics.test.js.map +1 -1
- package/package.json +2 -2
- package/schemas/buyer-truth-v1.schema.json +2 -2
- package/schemas/evidence-completeness-v1.schema.json +1 -1
- package/schemas/openapi-commercial-v1.yaml +1 -1
- package/schemas/quick-verify-report.schema.json +3 -3
- package/schemas/workflow-truth-report.schema.json +2 -2
package/README.md
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
<!-- discovery-acquisition-fold:start -->
|
|
6
6
|
## Trust reality, not traces.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Tool effects vs read-only store facts.
|
|
9
9
|
|
|
10
|
-
Traces
|
|
10
|
+
Traces can show success while stored data disagrees.
|
|
11
|
+
|
|
12
|
+
AgentSkeptic re-checks the stores your agent claims to change, then returns a deterministic Outcome Certificate before you ship.
|
|
11
13
|
|
|
12
14
|
### Bundled terminal proof
|
|
13
15
|
|
|
@@ -16,9 +18,9 @@ Traces say success. Your data often disagrees. Read-only checks at verify time c
|
|
|
16
18
|
|
|
17
19
|
workflow_id: wf_complete
|
|
18
20
|
workflow_status: complete
|
|
19
|
-
trust: TRUSTED: Every step matched
|
|
21
|
+
trust: TRUSTED: Every step matched registry-backed expected state under the configured verification rules.
|
|
20
22
|
steps:
|
|
21
|
-
- seq=0 tool=crm.upsert_contact result=Matched
|
|
23
|
+
- seq=0 tool=crm.upsert_contact result=Matched registry-backed expected state.
|
|
22
24
|
|
|
23
25
|
{
|
|
24
26
|
"schemaVersion": 15,
|
|
@@ -32,7 +34,7 @@ steps:
|
|
|
32
34
|
workflow_id: wf_missing
|
|
33
35
|
workflow_status: inconsistent
|
|
34
36
|
steps:
|
|
35
|
-
- seq=0 tool=crm.upsert_contact result
|
|
37
|
+
- seq=0 tool=crm.upsert_contact result=Expected state at the verification target was not found (for example a missing row or absent witness result).
|
|
36
38
|
reference_code: ROW_ABSENT
|
|
37
39
|
|
|
38
40
|
{
|
|
@@ -56,7 +58,7 @@ steps:
|
|
|
56
58
|
<!-- adoption-canonical:start -->
|
|
57
59
|
## Default path: one truth check
|
|
58
60
|
|
|
59
|
-
Compare recorded tool activity to your
|
|
61
|
+
Compare recorded tool activity to downstream state (SQL and, in contract mode, HTTP witnesses, object storage, vectors, Mongo per your registry) and get an **Outcome Certificate** (stdout) plus a **`truth_check_verdict`** line on stderr:
|
|
60
62
|
|
|
61
63
|
```bash
|
|
62
64
|
npx agentskeptic check --workflow-id wf_example \
|
|
@@ -70,7 +72,7 @@ With the conventional layout, **`--registry`** and **`--events`** default to **`
|
|
|
70
72
|
|
|
71
73
|
### Lifecycle
|
|
72
74
|
|
|
73
|
-
1. Keep **`agentskeptic/tools.json`** in version control; update when `toolId` →
|
|
75
|
+
1. Keep **`agentskeptic/tools.json`** in version control; update when `toolId` → verification mapping changes.
|
|
74
76
|
2. Emit observations via the canonical SDK emitter, then append emitted rows to the gate buffer. Optionally mirror the same JSON lines to **`agentskeptic/events.ndjson`** for CI replay.
|
|
75
77
|
3. On the code path **before** irreversible work you control (ship, bill, ticket close), call **`await gate.assertSafeForIrreversibleAction()`** so **unsafe** trust (or required emissions that never reached the gate) blocks **that** branch — it is not a substitute for wiring the gate everywhere it matters, and outcomes can still be **`unknown`** when **`highStakesReliance`** is not **`permitted`** (see [`docs/outcome-certificate-normative.md`](docs/outcome-certificate-normative.md)).
|
|
76
78
|
|
|
@@ -270,7 +272,7 @@ Replay the bundled files: **`wf_complete`** / **`examples/events.ndjson`** / **`
|
|
|
270
272
|
**Quick Verify** (`agentskeptic quick`): inferred checks, **no registry file**; **provisional**, not audit-final—graduate to **contract mode** for explicit per-tool expectations. Full contract: **[`docs/quick-verify-normative.md`](docs/quick-verify-normative.md)**.
|
|
271
273
|
|
|
272
274
|
**Input contract:** We only accept **structured tool activity**—JSON or NDJSON that describes tool calls and parameters our ingest model can extract—not arbitrary logs, traces, or unstructured observability text.
|
|
273
|
-
|
|
275
|
+
**Quick** uses read-only SQL against the database you pass in. **Contract** verification adds registry-backed checks for HTTP witnesses, object storage, vector indexes, and Mongo where configured—see [`docs/verification-state-stores.md`](docs/verification-state-stores.md).
|
|
274
276
|
|
|
275
277
|
```bash
|
|
276
278
|
npm run build
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"Run verification on your workflow; green exit and verdict are product success.",
|
|
6
|
-
"Set AGENTSKEPTIC_TELEMETRY=0 to disable opt-in activity posts; they never change verification results."
|
|
2
|
+
"telemetryIntroParagraphs": [
|
|
3
|
+
"Optional telemetry helps connect browser demos and CLI verification during first setup.",
|
|
4
|
+
"It never affects verdicts, never writes to your stores, and can be disabled."
|
|
7
5
|
],
|
|
8
|
-
"
|
|
6
|
+
"checklist": [
|
|
7
|
+
"Visit an allowlisted marketing page or `/integrate` so the site can mint or reuse `funnel_anon_id`.",
|
|
8
|
+
"Run `agentskeptic funnel-anon pull`, or run `agentskeptic funnel-anon set <uuid>` if you already copied an ID from the browser.",
|
|
9
|
+
"Run verification on your workflow. A green exit and verdict are product success.",
|
|
10
|
+
"Set `AGENTSKEPTIC_TELEMETRY=0` to disable opt-in activity posts."
|
|
11
|
+
]
|
|
9
12
|
}
|
package/config/marketing.json
CHANGED
|
@@ -10,20 +10,20 @@
|
|
|
10
10
|
"keywords": ["agentskeptic", "verification", "database", "read-only", "agent", "workflow"],
|
|
11
11
|
"readmeTitle": "AgentSkeptic — state vs trace",
|
|
12
12
|
"heroTitle": "Trust reality, not traces.",
|
|
13
|
-
"heroSubtitle": "
|
|
14
|
-
"visitorProblemAnswer": "Traces
|
|
15
|
-
"heroOutcome": "
|
|
16
|
-
"heroMechanism": "
|
|
13
|
+
"heroSubtitle": "Tool effects vs read-only store facts.",
|
|
14
|
+
"visitorProblemAnswer": "Traces can show success while stored data disagrees.\n\nAgentSkeptic re-checks the stores your agent claims to change, then returns a deterministic Outcome Certificate before you ship.",
|
|
15
|
+
"heroOutcome": "Agents can report success while the database is still wrong.",
|
|
16
|
+
"heroMechanism": "AgentSkeptic re-checks your real stores and fails CI before missing writes reach production.",
|
|
17
17
|
"guaranteeFootnote": "Read-only checks; not which call wrote.",
|
|
18
18
|
"heroPositioning": "Post-condition verification for AI-agent workflows.",
|
|
19
19
|
"siteDefaultMetadata": {
|
|
20
20
|
"title": "AgentSkeptic",
|
|
21
|
-
"description": "
|
|
21
|
+
"description": "Tool activity vs downstream state at verify: SQL, HTTP, vectors, documents, S3 objects—deterministic verdict artifacts (verification-state-stores.md)."
|
|
22
22
|
},
|
|
23
23
|
"homepageAcquisitionCtaLabel": "How it works",
|
|
24
24
|
"pageMetadata": {
|
|
25
25
|
"title": "Traces vs state",
|
|
26
|
-
"description": "
|
|
26
|
+
"description": "Tool activity vs downstream state at verify: SQL, HTTP, vectors, documents, S3 objects—deterministic verdict artifacts (verification-state-stores.md)."
|
|
27
27
|
},
|
|
28
28
|
"readmeFold": {
|
|
29
29
|
"templateLines": [
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"shareableTerminalDemo": {
|
|
44
44
|
"title": "Bundled terminal proof",
|
|
45
|
-
"transcript": "### Success (`wf_complete`)\n\nworkflow_id: wf_complete\nworkflow_status: complete\ntrust: TRUSTED: Every step matched
|
|
45
|
+
"transcript": "### Success (`wf_complete`)\n\nworkflow_id: wf_complete\nworkflow_status: complete\ntrust: TRUSTED: Every step matched registry-backed expected state under the configured verification rules.\nsteps:\n - seq=0 tool=crm.upsert_contact result=Matched registry-backed expected state.\n\n{\n \"schemaVersion\": 15,\n \"workflowId\": \"wf_complete\",\n \"status\": \"complete\",\n \"steps\": [{ \"seq\": 0, \"toolId\": \"crm.upsert_contact\", \"status\": \"verified\" }]\n}\n\n### Failure (`wf_missing`)\n\nworkflow_id: wf_missing\nworkflow_status: inconsistent\nsteps:\n - seq=0 tool=crm.upsert_contact result=Expected state at the verification target was not found (for example a missing row or absent witness result).\n reference_code: ROW_ABSENT\n\n{\n \"schemaVersion\": 15,\n \"workflowId\": \"wf_missing\",\n \"status\": \"inconsistent\",\n \"steps\": [\n {\n \"seq\": 0,\n \"toolId\": \"crm.upsert_contact\",\n \"status\": \"missing\",\n \"reasons\": [{ \"code\": \"ROW_ABSENT\" }]\n }\n ]\n}"
|
|
46
46
|
},
|
|
47
47
|
"cliFollowupLines": [
|
|
48
48
|
"Context: {{ACQUISITION_URL}}",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
],
|
|
52
52
|
"site": {
|
|
53
53
|
"integrate": {
|
|
54
|
-
"title": "
|
|
55
|
-
"description": "
|
|
54
|
+
"title": "Run your first stored-state verification",
|
|
55
|
+
"description": "Compare your agent's tool claims against actual stored state."
|
|
56
56
|
},
|
|
57
57
|
"openGraph": {
|
|
58
58
|
"image": {
|
|
@@ -63,8 +63,9 @@
|
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"pricing": {
|
|
66
|
-
"heroTitle": "
|
|
67
|
-
"
|
|
66
|
+
"heroTitle": "Pricing for stored-state verification",
|
|
67
|
+
"heroSupporting": "Start free. Pay when verification becomes a CI enforcement workflow.",
|
|
68
|
+
"positioning": "Catch bad or missing state before it reaches customers, compliance, or revenue."
|
|
68
69
|
},
|
|
69
70
|
"home": {},
|
|
70
71
|
"security": {
|
|
@@ -81,9 +82,9 @@
|
|
|
81
82
|
}
|
|
82
83
|
},
|
|
83
84
|
"integratePage": {
|
|
84
|
-
"truthCheckCommand": "npx agentskeptic check --workflow-id YOUR_WORKFLOW_ID \\\n --project ./your-app \\\n --db ./path/to/readable.sqlite
|
|
85
|
+
"truthCheckCommand": "npx agentskeptic check --workflow-id YOUR_WORKFLOW_ID \\\n --project ./your-app \\\n --db ./path/to/readable.sqlite",
|
|
85
86
|
"quickVerifyCommand": "npx agentskeptic quick \\\n --input path/to/quick-input.ndjson \\\n --export-registry path/to/tools.json \\\n --db path/to/readable.sqlite \\\n --no-human-report",
|
|
86
|
-
"packLedCommand": "npx agentskeptic activate --input ./path/to/workflow-bootstrap-input.json \\\n --db ./path/to/readable.sqlite \\\n --out ./path/to/agent-pack\n\
|
|
87
|
+
"packLedCommand": "npx agentskeptic activate --input ./path/to/workflow-bootstrap-input.json \\\n --db ./path/to/readable.sqlite \\\n --out ./path/to/agent-pack\n\nnpx agentskeptic crossing \\\n --workflow-id YOUR_WORKFLOW_ID \\\n --events ./path/to/events.ndjson \\\n --registry ./path/to/tools.json \\\n --db ./path/to/readable.sqlite",
|
|
87
88
|
"githubDeepLink": "https://github.com/jwekavanagh/agentskeptic/blob/main/docs/integrate.md",
|
|
88
89
|
"githubFirstRunLink": "https://github.com/jwekavanagh/agentskeptic/blob/main/docs/integrate.md"
|
|
89
90
|
},
|
|
@@ -129,48 +130,39 @@
|
|
|
129
130
|
"problemIndex": [
|
|
130
131
|
{
|
|
131
132
|
"moment": "Green trace, bad data",
|
|
132
|
-
"
|
|
133
|
-
"
|
|
133
|
+
"symptom": "Trace succeeds, but the Postgres row is missing or stale.",
|
|
134
|
+
"verificationCue": "Verify the row before you trust the run.",
|
|
135
|
+
"primaryRoute": "/guides/trace-green-postgres-row-missing"
|
|
134
136
|
},
|
|
135
137
|
{
|
|
136
|
-
"moment": "Tool
|
|
137
|
-
"
|
|
138
|
-
"
|
|
138
|
+
"moment": "Tool OK, CRM wrong",
|
|
139
|
+
"symptom": "Tool loop succeeds, but the CRM record is wrong or missing.",
|
|
140
|
+
"verificationCue": "Match tool claims to stored customer data.",
|
|
141
|
+
"primaryRoute": "/guides/tool-loop-success-crm-state-wrong"
|
|
139
142
|
},
|
|
140
143
|
{
|
|
141
144
|
"moment": "CI green, no write",
|
|
142
|
-
"
|
|
143
|
-
"
|
|
145
|
+
"symptom": "CI passes, but the write never landed.",
|
|
146
|
+
"verificationCue": "Fail when expected stored state is absent.",
|
|
147
|
+
"primaryRoute": "/guides/ci-green-logs-row-absent"
|
|
144
148
|
},
|
|
145
149
|
{
|
|
146
|
-
"moment": "Pre-
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
{
|
|
151
|
-
"moment": "AI CRM data wrong",
|
|
152
|
-
"primaryRoute": "/guides/ai-agent-wrong-crm-data",
|
|
153
|
-
"relatedRoutes": ["/database-truth-vs-traces"]
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"moment": "Params vs store",
|
|
157
|
-
"primaryRoute": "/guides/automation-success-database-mismatch",
|
|
158
|
-
"relatedRoutes": ["/integrate"]
|
|
150
|
+
"moment": "Pre-production read-only gate",
|
|
151
|
+
"symptom": "Add read-only SQL verification before production.",
|
|
152
|
+
"verificationCue": "Read stored state without writes.",
|
|
153
|
+
"primaryRoute": "/guides/pre-production-read-only-sql-gate"
|
|
159
154
|
},
|
|
160
155
|
{
|
|
161
156
|
"moment": "LangGraph data check",
|
|
162
|
-
"
|
|
163
|
-
"
|
|
157
|
+
"symptom": "Inspect Postgres after a LangGraph run.",
|
|
158
|
+
"verificationCue": "Reconcile trace success with persisted rows.",
|
|
159
|
+
"primaryRoute": "/guides/debug-postgres-after-langgraph"
|
|
164
160
|
},
|
|
165
161
|
{
|
|
166
162
|
"moment": "Webhook vs ledger",
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
|
|
170
|
-
{
|
|
171
|
-
"moment": "CI green, no effect",
|
|
172
|
-
"primaryRoute": "/guides/scenario-ci-green-side-effect-missing",
|
|
173
|
-
"relatedRoutes": ["/guides/ci-green-missing-database-side-effect", "/integrate"]
|
|
163
|
+
"symptom": "Stripe 200, but the ledger row is wrong or missing.",
|
|
164
|
+
"verificationCue": "Match webhooks to internal records before settlement.",
|
|
165
|
+
"primaryRoute": "/guides/stripe-webhook-database-alignment"
|
|
174
166
|
}
|
|
175
167
|
],
|
|
176
168
|
"llms": {
|
package/dist/agentRunRecord.d.ts
CHANGED
|
@@ -68,6 +68,8 @@ export type AgentRunRecordV2 = {
|
|
|
68
68
|
};
|
|
69
69
|
export type AgentRunRecord = AgentRunRecordV1 | AgentRunRecordV2;
|
|
70
70
|
export declare function sha256Hex(bytes: Buffer): string;
|
|
71
|
+
/** LF-canonical digest input for text artifacts (matches Git `text eol=lf` and `loadCorpusRun` checks). */
|
|
72
|
+
export declare function lfCanonicalUtf8Payload(bytes: Buffer): Buffer;
|
|
71
73
|
export type BuildAgentRunRecordInput = {
|
|
72
74
|
runId: string;
|
|
73
75
|
workflowId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentRunRecord.d.ts","sourceRoot":"","sources":["../src/agentRunRecord.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,kCAAkC,6BAA6B,CAAC;AAE7E,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,wBAAwB,yBAA2B,CAAC;AACjE,eAAO,MAAM,4BAA4B,6BAAqC,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,cAAc,EAAE;YAAE,YAAY,EAAE,OAAO,wBAAwB,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACtG,MAAM,EAAE;YAAE,YAAY,EAAE,OAAO,eAAe,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;CACH,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,cAAc,EAAE;YAAE,YAAY,EAAE,OAAO,wBAAwB,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACtG,MAAM,EAAE;YAAE,YAAY,EAAE,OAAO,eAAe,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACrF,uBAAuB,EAAE;YACvB,YAAY,EAAE,OAAO,kCAAkC,CAAC;YACxD,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"agentRunRecord.d.ts","sourceRoot":"","sources":["../src/agentRunRecord.ts"],"names":[],"mappings":"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"}
|
package/dist/agentRunRecord.js
CHANGED
|
@@ -10,6 +10,10 @@ export const WORKFLOW_RESULT_SIG_FILENAME = WORKFLOW_RESULT_SIGNATURE_RELATIVE;
|
|
|
10
10
|
export function sha256Hex(bytes) {
|
|
11
11
|
return createHash("sha256").update(bytes).digest("hex");
|
|
12
12
|
}
|
|
13
|
+
/** LF-canonical digest input for text artifacts (matches Git `text eol=lf` and `loadCorpusRun` checks). */
|
|
14
|
+
export function lfCanonicalUtf8Payload(bytes) {
|
|
15
|
+
return Buffer.from(bytes.toString("utf8").replace(/\r\n/g, "\n"), "utf8");
|
|
16
|
+
}
|
|
13
17
|
export function buildAgentRunRecordForBundle(input) {
|
|
14
18
|
const base = {
|
|
15
19
|
runId: input.runId,
|
|
@@ -19,15 +23,17 @@ export function buildAgentRunRecordForBundle(input) {
|
|
|
19
23
|
...(input.customerId !== undefined && input.customerId !== "" ? { customerId: input.customerId } : {}),
|
|
20
24
|
...(input.capturedAt !== undefined && input.capturedAt !== "" ? { capturedAt: input.capturedAt } : {}),
|
|
21
25
|
};
|
|
26
|
+
const workflowDigestBytes = lfCanonicalUtf8Payload(input.workflowResultBytes);
|
|
27
|
+
const eventsDigestBytes = lfCanonicalUtf8Payload(input.eventsBytes);
|
|
22
28
|
const workflowResult = {
|
|
23
29
|
relativePath: WORKFLOW_RESULT_RELATIVE,
|
|
24
|
-
sha256: sha256Hex(
|
|
25
|
-
byteLength:
|
|
30
|
+
sha256: sha256Hex(workflowDigestBytes),
|
|
31
|
+
byteLength: workflowDigestBytes.length,
|
|
26
32
|
};
|
|
27
33
|
const events = {
|
|
28
34
|
relativePath: EVENTS_RELATIVE,
|
|
29
|
-
sha256: sha256Hex(
|
|
30
|
-
byteLength:
|
|
35
|
+
sha256: sha256Hex(eventsDigestBytes),
|
|
36
|
+
byteLength: eventsDigestBytes.length,
|
|
31
37
|
};
|
|
32
38
|
const sigBytes = input.workflowResultSignatureBytes;
|
|
33
39
|
if (sigBytes !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentRunRecord.js","sourceRoot":"","sources":["../src/agentRunRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAC/C,MAAM,CAAC,MAAM,kCAAkC,GAAG,0BAA0B,CAAC;AAE7E,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,kCAAkC,CAAC;AA6C/E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAeD,MAAM,UAAU,4BAA4B,CAAC,KAA+B;IAC1E,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvG,CAAC;IAEF,MAAM,cAAc,GAAoD;QACtE,YAAY,EAAE,wBAAwB;QACtC,MAAM,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"agentRunRecord.js","sourceRoot":"","sources":["../src/agentRunRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAC/C,MAAM,CAAC,MAAM,kCAAkC,GAAG,0BAA0B,CAAC;AAE7E,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,kCAAkC,CAAC;AA6C/E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAeD,MAAM,UAAU,4BAA4B,CAAC,KAA+B;IAC1E,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvG,CAAC;IAEF,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAoD;QACtE,YAAY,EAAE,wBAAwB;QACtC,MAAM,EAAE,SAAS,CAAC,mBAAmB,CAAC;QACtC,UAAU,EAAE,mBAAmB,CAAC,MAAM;KACvC,CAAC;IACF,MAAM,MAAM,GAA4C;QACtD,YAAY,EAAE,eAAe;QAC7B,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC;QACpC,UAAU,EAAE,iBAAiB,CAAC,MAAM;KACrC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,4BAA4B,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAqB;YAC5B,GAAG,IAAI;YACP,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE;gBACT,cAAc;gBACd,MAAM;gBACN,uBAAuB,EAAE;oBACvB,YAAY,EAAE,kCAAkC;oBAChD,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC;oBAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM;iBACuC;aACrE;SACF,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAqB;QAC5B,GAAG,IAAI;QACP,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;KACtC,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAssuranceOutput.js","sourceRoot":"","sources":["../../src/assurance/buildAssuranceOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"buildAssuranceOutput.js","sourceRoot":"","sources":["../../src/assurance/buildAssuranceOutput.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { PLAN_TRANSITION_WORKFLOW_ID } from "./planTransitionConstants.js";
|
|
|
2
2
|
import { deriveQuickRemediationAlignment } from "./actionableFailure.js";
|
|
3
3
|
import { policyFragment } from "./failureExplanation.js";
|
|
4
4
|
import { formatOperationalMessage } from "./failureCatalog.js";
|
|
5
|
-
import { templateEventCaptureEnforceAs, templateEventCaptureMustHold, templatePlanTransitionEnforceAs, templatePlanTransitionMustHold, templateQuickGapEnforceAs, templateQuickGapMustHold, templateQuickRelEnforceAs, templateQuickRelMustHold, templateQuickRowEnforceAs, templateQuickRowMustHold, templateRunContextEnforceAs, templateRunContextMustHold, templateRunIngestEnforceAs, templateRunIngestMustHold,
|
|
5
|
+
import { templateEventCaptureEnforceAs, templateEventCaptureMustHold, templatePlanTransitionEnforceAs, templatePlanTransitionMustHold, templateQuickGapEnforceAs, templateQuickGapMustHold, templateQuickRelEnforceAs, templateQuickRelMustHold, templateQuickRowEnforceAs, templateQuickRowMustHold, templateRunContextEnforceAs, templateRunContextMustHold, templateRunIngestEnforceAs, templateRunIngestMustHold, templateStepRegistryEnforceAs, templateStepRegistryMustHold, } from "./correctnessDefinitionTemplates.js";
|
|
6
6
|
export class CorrectnessDefinitionInvariantError extends Error {
|
|
7
7
|
code;
|
|
8
8
|
constructor(code, message) {
|
|
@@ -168,18 +168,18 @@ export function buildWorkflowCorrectnessDefinition(engine, fe, fa, truthSteps) {
|
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
170
|
const projection = {
|
|
171
|
-
projectionKind: "
|
|
171
|
+
projectionKind: "step_registry_expectation",
|
|
172
172
|
workflowId: W,
|
|
173
173
|
verificationPolicyFragment: P,
|
|
174
174
|
seq: e0.seq,
|
|
175
175
|
toolId: T,
|
|
176
176
|
verificationRequest: driver.verificationRequest,
|
|
177
177
|
};
|
|
178
|
-
const [a0, a1] =
|
|
178
|
+
const [a0, a1] = templateStepRegistryEnforceAs(S);
|
|
179
179
|
return {
|
|
180
180
|
schemaVersion: 1,
|
|
181
|
-
enforcementKind: "
|
|
182
|
-
mustAlwaysHold: formatOperationalMessage(
|
|
181
|
+
enforcementKind: "step_registry_expectation",
|
|
182
|
+
mustAlwaysHold: formatOperationalMessage(templateStepRegistryMustHold({ W, S, T, P })),
|
|
183
183
|
enforceAs: [formatOperationalMessage(a0), formatOperationalMessage(a1)],
|
|
184
184
|
enforceableProjection: projection,
|
|
185
185
|
remediationAlignment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correctnessDefinition.js","sourceRoot":"","sources":["../src/correctnessDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAY/D,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"correctnessDefinition.js","sourceRoot":"","sources":["../src/correctnessDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Forward-looking correctness templates. Normative semantics: docs/correctness-definition-normative.md.
|
|
3
3
|
* CD_DOC_ANCHORS must appear in that file (doc parity test).
|
|
4
4
|
*/
|
|
5
|
-
export declare const CD_DOC_ANCHORS: readonly ["CD_TPL_RUN_INGEST", "CD_TPL_EVENT_CAPTURE", "CD_TPL_RUN_CONTEXT", "
|
|
6
|
-
export declare const CORRECTNESS_ENFORCEMENT_KINDS: readonly ["run_ingest_integrity", "event_capture_integrity", "run_context_fairness", "
|
|
5
|
+
export declare const CD_DOC_ANCHORS: readonly ["CD_TPL_RUN_INGEST", "CD_TPL_EVENT_CAPTURE", "CD_TPL_RUN_CONTEXT", "CD_TPL_STEP_REGISTRY", "CD_TPL_PLAN_TRANSITION", "CD_TPL_QUICK_ROW", "CD_TPL_QUICK_REL", "CD_TPL_QUICK_GAP"];
|
|
6
|
+
export declare const CORRECTNESS_ENFORCEMENT_KINDS: readonly ["run_ingest_integrity", "event_capture_integrity", "run_context_fairness", "step_registry_expectation", "plan_transition_expectation", "quick_inferred_sql_row", "quick_inferred_relational", "quick_mapping_gap"];
|
|
7
7
|
export type CorrectnessEnforcementKind = (typeof CORRECTNESS_ENFORCEMENT_KINDS)[number];
|
|
8
8
|
/** CD_TPL_RUN_INGEST */
|
|
9
9
|
export declare function templateRunIngestMustHold(vars: {
|
|
@@ -29,14 +29,14 @@ export declare function templateRunContextMustHold(vars: {
|
|
|
29
29
|
codes: string;
|
|
30
30
|
}): string;
|
|
31
31
|
export declare function templateRunContextEnforceAs(C: string): [string, string];
|
|
32
|
-
/**
|
|
33
|
-
export declare function
|
|
32
|
+
/** CD_TPL_STEP_REGISTRY */
|
|
33
|
+
export declare function templateStepRegistryMustHold(vars: {
|
|
34
34
|
W: string;
|
|
35
35
|
S: string;
|
|
36
36
|
T: string;
|
|
37
37
|
P: string;
|
|
38
38
|
}): string;
|
|
39
|
-
export declare function
|
|
39
|
+
export declare function templateStepRegistryEnforceAs(S: string): [string, string];
|
|
40
40
|
/** CD_TPL_PLAN_TRANSITION */
|
|
41
41
|
export declare function templatePlanTransitionMustHold(vars: {
|
|
42
42
|
W: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correctnessDefinitionTemplates.d.ts","sourceRoot":"","sources":["../src/correctnessDefinitionTemplates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"correctnessDefinitionTemplates.d.ts","sourceRoot":"","sources":["../src/correctnessDefinitionTemplates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,4LASjB,CAAC;AAEX,eAAO,MAAM,6BAA6B,8NAShC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAUxF,wBAAwB;AACxB,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,MAAM,CAQT;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1E;AAED,2BAA2B;AAC3B,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAK3G;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAK7E;AAED,yBAAyB;AACzB,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAKT;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKvE;AAED,2BAA2B;AAC3B,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKzG;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOzE;AAED,6BAA6B;AAC7B,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAK1H;AAED,wBAAgB,+BAA+B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlE;AAED,uBAAuB;AACvB,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKrG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOzE;AAED,uBAAuB;AACvB,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKjG;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKrE;AAED,uBAAuB;AACvB,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKrG;AAED,wBAAgB,yBAAyB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAK5D"}
|
|
@@ -6,7 +6,7 @@ export const CD_DOC_ANCHORS = [
|
|
|
6
6
|
"CD_TPL_RUN_INGEST",
|
|
7
7
|
"CD_TPL_EVENT_CAPTURE",
|
|
8
8
|
"CD_TPL_RUN_CONTEXT",
|
|
9
|
-
"
|
|
9
|
+
"CD_TPL_STEP_REGISTRY",
|
|
10
10
|
"CD_TPL_PLAN_TRANSITION",
|
|
11
11
|
"CD_TPL_QUICK_ROW",
|
|
12
12
|
"CD_TPL_QUICK_REL",
|
|
@@ -16,7 +16,7 @@ export const CORRECTNESS_ENFORCEMENT_KINDS = [
|
|
|
16
16
|
"run_ingest_integrity",
|
|
17
17
|
"event_capture_integrity",
|
|
18
18
|
"run_context_fairness",
|
|
19
|
-
"
|
|
19
|
+
"step_registry_expectation",
|
|
20
20
|
"plan_transition_expectation",
|
|
21
21
|
"quick_inferred_sql_row",
|
|
22
22
|
"quick_inferred_relational",
|
|
@@ -64,16 +64,16 @@ export function templateRunContextEnforceAs(C) {
|
|
|
64
64
|
fill("Replays SHALL not evaluate downstream tool_observed steps when <C> is violated for that index.", { C }),
|
|
65
65
|
];
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
68
|
-
export function
|
|
69
|
-
return fill("Must: after tool_observed seq=<S> toolId=<T>,
|
|
67
|
+
/** CD_TPL_STEP_REGISTRY */
|
|
68
|
+
export function templateStepRegistryMustHold(vars) {
|
|
69
|
+
return fill("Must: after tool_observed seq=<S> toolId=<T>, authoritative downstream state SHALL satisfy the verification contract in verificationRequest under policy [<P>] for workflowId=<W>.", { W: vars.W, S: vars.S, T: vars.T, P: vars.P });
|
|
70
70
|
}
|
|
71
|
-
export function
|
|
71
|
+
export function templateStepRegistryEnforceAs(S) {
|
|
72
72
|
return [
|
|
73
73
|
fill("Registry (or synthetic events plus registry) SHALL keep verificationRequest aligned with declared tool parameters for seq=<S>.", {
|
|
74
74
|
S,
|
|
75
75
|
}),
|
|
76
|
-
"
|
|
76
|
+
"Read-only verification reads at verify time (SQL, HTTP witnesses, object metadata, vector fetches, Mongo findOne, etc.) SHALL match verificationRequest.",
|
|
77
77
|
];
|
|
78
78
|
}
|
|
79
79
|
/** CD_TPL_PLAN_TRANSITION */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correctnessDefinitionTemplates.js","sourceRoot":"","sources":["../src/correctnessDefinitionTemplates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,
|
|
1
|
+
{"version":3,"file":"correctnessDefinitionTemplates.js","sourceRoot":"","sources":["../src/correctnessDefinitionTemplates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugCorpus.d.ts","sourceRoot":"","sources":["../src/debugCorpus.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"debugCorpus.d.ts","sourceRoot":"","sources":["../src/debugCorpus.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAGL,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,4BAA4B,EAC5B,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,4BAA4B,GAC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAcrB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,kFAAkF;IAClF,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAsCxE,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAI7E;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7D;AAqCD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAwbrF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAIxE;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
|
package/dist/debugCorpus.js
CHANGED
|
@@ -8,8 +8,16 @@ import { TruthLayerError } from "./truthLayerError.js";
|
|
|
8
8
|
import { WORKFLOW_RESULT_RUN_LEVEL_CODES_MISMATCH_MESSAGE } from "./runLevelDriftMessages.js";
|
|
9
9
|
import { isV9RunLevelCodesInconsistent } from "./workflowRunLevelConsistency.js";
|
|
10
10
|
import { normalizeToEmittedWorkflowResult } from "./workflowResultNormalize.js";
|
|
11
|
-
import { sha256Hex, AGENT_RUN_FILENAME, EVENTS_FILENAME, WORKFLOW_RESULT_FILENAME, WORKFLOW_RESULT_SIG_FILENAME, } from "./agentRunRecord.js";
|
|
11
|
+
import { lfCanonicalUtf8Payload, sha256Hex, AGENT_RUN_FILENAME, EVENTS_FILENAME, WORKFLOW_RESULT_FILENAME, WORKFLOW_RESULT_SIG_FILENAME, } from "./agentRunRecord.js";
|
|
12
12
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
/** Align `loadCorpusRun` manifest checks with `buildAgentRunRecordForBundle` digests (LF-canonical text). */
|
|
14
|
+
function corpusTextArtifactBytesForIntegrity(absPath, bytes) {
|
|
15
|
+
const base = path.basename(absPath);
|
|
16
|
+
if (base === WORKFLOW_RESULT_FILENAME || base === EVENTS_FILENAME) {
|
|
17
|
+
return lfCanonicalUtf8Payload(bytes);
|
|
18
|
+
}
|
|
19
|
+
return bytes;
|
|
20
|
+
}
|
|
13
21
|
export { AGENT_RUN_FILENAME, EVENTS_FILENAME, WORKFLOW_RESULT_FILENAME, WORKFLOW_RESULT_SIG_FILENAME, };
|
|
14
22
|
export const DEBUG_CORPUS_CODES = {
|
|
15
23
|
PATH_ESCAPE: "PATH_ESCAPE",
|
|
@@ -247,7 +255,8 @@ export function loadCorpusRun(corpusRootReal, runId) {
|
|
|
247
255
|
capturedAtEffectiveMs: mtimeMs(wrPathResolved),
|
|
248
256
|
};
|
|
249
257
|
}
|
|
250
|
-
|
|
258
|
+
const wrIntegrity = corpusTextArtifactBytesForIntegrity(wrPathResolved, wrBuf);
|
|
259
|
+
if (wrIntegrity.length !== wrSpec.byteLength) {
|
|
251
260
|
return {
|
|
252
261
|
loadStatus: "error",
|
|
253
262
|
runId,
|
|
@@ -255,13 +264,13 @@ export function loadCorpusRun(corpusRootReal, runId) {
|
|
|
255
264
|
code: DEBUG_CORPUS_CODES.ARTIFACT_LENGTH_MISMATCH,
|
|
256
265
|
message: `${WORKFLOW_RESULT_FILENAME} byte length does not match ${AGENT_RUN_FILENAME}.`,
|
|
257
266
|
path: wrPathResolved,
|
|
258
|
-
details: { expected: wrSpec.byteLength, actual:
|
|
267
|
+
details: { expected: wrSpec.byteLength, actual: wrIntegrity.length },
|
|
259
268
|
},
|
|
260
269
|
pathsTried: { agentRun: agentRunPath, workflowResult: wrPathResolved, events: evPathResolved },
|
|
261
270
|
capturedAtEffectiveMs: mtimeMs(wrPathResolved),
|
|
262
271
|
};
|
|
263
272
|
}
|
|
264
|
-
if (sha256Hex(
|
|
273
|
+
if (sha256Hex(wrIntegrity) !== wrSpec.sha256) {
|
|
265
274
|
return {
|
|
266
275
|
loadStatus: "error",
|
|
267
276
|
runId,
|
|
@@ -305,7 +314,8 @@ export function loadCorpusRun(corpusRootReal, runId) {
|
|
|
305
314
|
capturedAtEffectiveMs: capturedAtEffectiveMs(record, wrPathResolved),
|
|
306
315
|
};
|
|
307
316
|
}
|
|
308
|
-
|
|
317
|
+
const evIntegrity = corpusTextArtifactBytesForIntegrity(evPathResolved, evBuf);
|
|
318
|
+
if (evIntegrity.length !== evSpec.byteLength) {
|
|
309
319
|
return {
|
|
310
320
|
loadStatus: "error",
|
|
311
321
|
runId,
|
|
@@ -313,13 +323,13 @@ export function loadCorpusRun(corpusRootReal, runId) {
|
|
|
313
323
|
code: DEBUG_CORPUS_CODES.ARTIFACT_LENGTH_MISMATCH,
|
|
314
324
|
message: `${EVENTS_FILENAME} byte length does not match ${AGENT_RUN_FILENAME}.`,
|
|
315
325
|
path: evPathResolved,
|
|
316
|
-
details: { expected: evSpec.byteLength, actual:
|
|
326
|
+
details: { expected: evSpec.byteLength, actual: evIntegrity.length },
|
|
317
327
|
},
|
|
318
328
|
pathsTried: { agentRun: agentRunPath, workflowResult: wrPathResolved, events: evPathResolved },
|
|
319
329
|
capturedAtEffectiveMs: capturedAtEffectiveMs(record, wrPathResolved),
|
|
320
330
|
};
|
|
321
331
|
}
|
|
322
|
-
if (sha256Hex(
|
|
332
|
+
if (sha256Hex(evIntegrity) !== evSpec.sha256) {
|
|
323
333
|
return {
|
|
324
334
|
loadStatus: "error",
|
|
325
335
|
runId,
|
|
@@ -400,7 +410,7 @@ export function loadCorpusRun(corpusRootReal, runId) {
|
|
|
400
410
|
}
|
|
401
411
|
let wrParsed;
|
|
402
412
|
try {
|
|
403
|
-
wrParsed = JSON.parse(
|
|
413
|
+
wrParsed = JSON.parse(wrIntegrity.toString("utf8"));
|
|
404
414
|
}
|
|
405
415
|
catch (e) {
|
|
406
416
|
const msg = e instanceof Error ? e.message : String(e);
|