agentskeptic 2.3.0 → 3.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 +1 -1
- package/dist/commercial/postTrustDecisionBlocked.d.ts +11 -0
- package/dist/commercial/postTrustDecisionBlocked.d.ts.map +1 -0
- package/dist/commercial/postTrustDecisionBlocked.js +33 -0
- package/dist/commercial/postTrustDecisionBlocked.js.map +1 -0
- package/dist/commercial/trustDecisionRecord.d.ts +45 -0
- package/dist/commercial/trustDecisionRecord.d.ts.map +1 -0
- package/dist/commercial/trustDecisionRecord.js +65 -0
- package/dist/commercial/trustDecisionRecord.js.map +1 -0
- package/dist/commercial/trustDecisionRecord.schema.test.d.ts +2 -0
- package/dist/commercial/trustDecisionRecord.schema.test.d.ts.map +1 -0
- package/dist/commercial/trustDecisionRecord.schema.test.js +35 -0
- package/dist/commercial/trustDecisionRecord.schema.test.js.map +1 -0
- package/dist/decisionBlocker.d.ts +4 -0
- package/dist/decisionBlocker.d.ts.map +1 -1
- package/dist/decisionBlocker.js +5 -2
- package/dist/decisionBlocker.js.map +1 -1
- package/dist/decisionGate.assertSafe.test.js +3 -3
- package/dist/decisionGate.assertSafe.test.js.map +1 -1
- package/dist/decisionGate.d.ts +4 -0
- package/dist/decisionGate.d.ts.map +1 -1
- package/dist/decisionGate.js +13 -5
- package/dist/decisionGate.js.map +1 -1
- package/dist/finalizeIrreversibleTrustBlock.d.ts +12 -0
- package/dist/finalizeIrreversibleTrustBlock.d.ts.map +1 -0
- package/dist/finalizeIrreversibleTrustBlock.js +13 -0
- package/dist/finalizeIrreversibleTrustBlock.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/langGraphCheckpointTrustGate.d.ts +8 -1
- package/dist/langGraphCheckpointTrustGate.d.ts.map +1 -1
- package/dist/langGraphCheckpointTrustGate.js +27 -14
- package/dist/langGraphCheckpointTrustGate.js.map +1 -1
- package/dist/publicDistribution.generated.d.ts +1 -1
- package/dist/publicDistribution.generated.js +1 -1
- package/dist/schemaLoad.d.ts +1 -1
- package/dist/schemaLoad.d.ts.map +1 -1
- package/dist/schemaLoad.js +5 -0
- package/dist/schemaLoad.js.map +1 -1
- package/dist/sdk/_generated/openapi-types.d.ts +111 -0
- package/dist/sdk/_generated/openapi-types.d.ts.map +1 -1
- package/dist/sdk/deprecatedPublicApi.d.ts +1 -1
- package/dist/sdk/deprecatedPublicApi.d.ts.map +1 -1
- package/dist/sdk/deprecatedPublicApi.js +2 -2
- package/dist/sdk/deprecatedPublicApi.js.map +1 -1
- package/dist/trustDecisionBlockedError.d.ts +16 -0
- package/dist/trustDecisionBlockedError.d.ts.map +1 -0
- package/dist/trustDecisionBlockedError.js +21 -0
- package/dist/trustDecisionBlockedError.js.map +1 -0
- package/package.json +7 -7
- package/schemas/agentskeptic-error-codes.json +42 -0
- package/schemas/ci/verification-truth.manifest.json +27 -0
- package/schemas/ci/verification-truth.manifest.schema.json +47 -0
- package/schemas/openapi-commercial-v1.in.yaml +138 -0
- package/schemas/openapi-commercial-v1.yaml +139 -1
- package/schemas/trust-certificate-snapshot-v1.schema.json +36 -0
- package/schemas/trust-decision-record-v1.schema.json +72 -0
- package/scripts/emit-primary-marketing.cjs +1 -0
- package/dist/decisionUnsafeError.d.ts +0 -8
- package/dist/decisionUnsafeError.d.ts.map +0 -1
- package/dist/decisionUnsafeError.js +0 -12
- package/dist/decisionUnsafeError.js.map +0 -1
- package/dist/langGraphCheckpointTrustUnsafeError.d.ts +0 -8
- package/dist/langGraphCheckpointTrustUnsafeError.d.ts.map +0 -1
- package/dist/langGraphCheckpointTrustUnsafeError.js +0 -12
- package/dist/langGraphCheckpointTrustUnsafeError.js.map +0 -1
package/README.md
CHANGED
|
@@ -330,7 +330,7 @@ Everything beyond core contract verification lives in **[`docs/agentskeptic.md`]
|
|
|
330
330
|
|
|
331
331
|
**Why SQLite:** same note as under [Contract path](#contract-path-registry--events) (file-backed demo DB; read-only verification SQL).
|
|
332
332
|
|
|
333
|
-
**`npm test`** runs
|
|
333
|
+
**`npm test`** runs **`npm run verification:truth`** (regeneration + contract gate, Postgres distribution, then full journey suite). Requires **`DATABASE_URL`** and **`TELEMETRY_DATABASE_URL`** (see [`website/.env.example`](website/.env.example)). Ordering: **[`docs/testing.md`](docs/testing.md)**.
|
|
334
334
|
|
|
335
335
|
**Full CI parity** (Postgres + Playwright for Debug Console): set **`POSTGRES_ADMIN_URL`** and **`POSTGRES_VERIFICATION_URL`**, then **`npm run test:ci`**. See **[`docs/testing.md`](docs/testing.md)**, [`.github/workflows/ci.yml`](.github/workflows/ci.yml), and: `docker run -d --name etl-pg -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:16`.
|
|
336
336
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TrustDecisionRecordV1 } from "./trustDecisionRecord.js";
|
|
2
|
+
/**
|
|
3
|
+
* Emission allowed iff commercial origin (**`LICENSE_API_BASE_URL`**) and API key coexist.
|
|
4
|
+
* Import rules forbid reading the metering-preflight env pair (`LICENSE_PREFLIGHT` + `_ENABLED`); see repo guard tests.
|
|
5
|
+
*/
|
|
6
|
+
export declare function commercialTrustDecisionIngestConfigured(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Best-effort POST to **`/api/v1/funnel/trust-decision-blocked`**. Never throws; never logs secrets.
|
|
9
|
+
*/
|
|
10
|
+
export declare function postTrustDecisionBlocked(record: TrustDecisionRecordV1): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=postTrustDecisionBlocked.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postTrustDecisionBlocked.d.ts","sourceRoot":"","sources":["../../src/commercial/postTrustDecisionBlocked.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAStE;;;GAGG;AACH,wBAAgB,uCAAuC,IAAI,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3F"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LICENSE_API_BASE_URL } from "../generated/commercialBuildFlags.js";
|
|
2
|
+
import { postVerifyOutcomeBestEffort } from "../sdk/transport.js";
|
|
3
|
+
function resolveBearerApiKey() {
|
|
4
|
+
return (process.env.AGENTSKEPTIC_API_KEY?.trim() || process.env.WORKFLOW_VERIFIER_API_KEY?.trim() || null);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Emission allowed iff commercial origin (**`LICENSE_API_BASE_URL`**) and API key coexist.
|
|
8
|
+
* Import rules forbid reading the metering-preflight env pair (`LICENSE_PREFLIGHT` + `_ENABLED`); see repo guard tests.
|
|
9
|
+
*/
|
|
10
|
+
export function commercialTrustDecisionIngestConfigured() {
|
|
11
|
+
return LICENSE_API_BASE_URL.trim().length > 0 && resolveBearerApiKey() !== null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Best-effort POST to **`/api/v1/funnel/trust-decision-blocked`**. Never throws; never logs secrets.
|
|
15
|
+
*/
|
|
16
|
+
export async function postTrustDecisionBlocked(record) {
|
|
17
|
+
const base = LICENSE_API_BASE_URL.replace(/\/$/, "");
|
|
18
|
+
if (base.length === 0) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const apiKey = resolveBearerApiKey();
|
|
22
|
+
if (!apiKey) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const url = `${base}/api/v1/funnel/trust-decision-blocked`;
|
|
26
|
+
const headers = {
|
|
27
|
+
Authorization: `Bearer ${apiKey}`,
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
};
|
|
30
|
+
headers["x-request-id"] = crypto.randomUUID();
|
|
31
|
+
await postVerifyOutcomeBestEffort({ url, body: record, headers, timeoutMs: 400 });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=postTrustDecisionBlocked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postTrustDecisionBlocked.js","sourceRoot":"","sources":["../../src/commercial/postTrustDecisionBlocked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE,SAAS,mBAAmB;IAC1B,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,IAAI,CAClG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uCAAuC;IACrD,OAAO,oBAAoB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,EAAE,KAAK,IAAI,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAA6B;IAC1E,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,IAAI,uCAAuC,CAAC;IAC3D,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,MAAM,EAAE;QACjC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IACF,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAE9C,MAAM,2BAA2B,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { OutcomeCertificateV1 } from "../outcomeCertificate.js";
|
|
2
|
+
import { type TrustDecision } from "../trustDecision.js";
|
|
3
|
+
export type TrustGateKind = "contract_sql_irreversible" | "langgraph_checkpoint_terminal";
|
|
4
|
+
/** Wire + stored shape for trust decision ingestion (aligned with **`schemas/trust-decision-record-v1.schema.json`**). */
|
|
5
|
+
export type TrustDecisionRecordV1 = {
|
|
6
|
+
schema_version: 1;
|
|
7
|
+
trust_decision: TrustDecision;
|
|
8
|
+
gate_kind: TrustGateKind;
|
|
9
|
+
routing: {
|
|
10
|
+
routing_key: string;
|
|
11
|
+
team?: string;
|
|
12
|
+
owner_slug?: string;
|
|
13
|
+
};
|
|
14
|
+
certificate_snapshot: TrustCertificateSnapshotV1;
|
|
15
|
+
human_blocker_lines: string[];
|
|
16
|
+
};
|
|
17
|
+
export type TrustCertificateSnapshotV1 = {
|
|
18
|
+
schema_version: 1;
|
|
19
|
+
workflow_id: string;
|
|
20
|
+
run_kind: OutcomeCertificateV1["runKind"];
|
|
21
|
+
state_relation: OutcomeCertificateV1["stateRelation"];
|
|
22
|
+
high_stakes_reliance: OutcomeCertificateV1["highStakesReliance"];
|
|
23
|
+
reason_codes: string[];
|
|
24
|
+
first_problem: {
|
|
25
|
+
seq: number;
|
|
26
|
+
tool_id: string;
|
|
27
|
+
observed_trunc: string;
|
|
28
|
+
expected_trunc: string;
|
|
29
|
+
} | null;
|
|
30
|
+
};
|
|
31
|
+
/** Max UTF-8 size for serialized **`TrustDecisionRecordV1`** posted to hosted ingest. */
|
|
32
|
+
export declare const MAX_TRUST_DECISION_RECORD_UTF8 = 65536;
|
|
33
|
+
export declare function buildCertificateSnapshotV1(cert: OutcomeCertificateV1): TrustCertificateSnapshotV1;
|
|
34
|
+
export type BuildTrustDecisionRecordRoutingOpts = {
|
|
35
|
+
workflowIdFallback: string;
|
|
36
|
+
ownerRoutingKey?: string;
|
|
37
|
+
routingTeam?: string;
|
|
38
|
+
ownerSlug?: string;
|
|
39
|
+
};
|
|
40
|
+
export declare function buildTrustDecisionRecordV1(params: {
|
|
41
|
+
certificate: OutcomeCertificateV1;
|
|
42
|
+
gateKind: TrustGateKind;
|
|
43
|
+
routingOpts: BuildTrustDecisionRecordRoutingOpts;
|
|
44
|
+
}): TrustDecisionRecordV1;
|
|
45
|
+
//# sourceMappingURL=trustDecisionRecord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustDecisionRecord.d.ts","sourceRoot":"","sources":["../../src/commercial/trustDecisionRecord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,2BAA2B,GAAG,+BAA+B,CAAC;AAE1F,0HAA0H;AAC1H,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,CAAC,CAAC;IAClB,cAAc,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,oBAAoB,EAAE,0BAA0B,CAAC;IACjD,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,EAAE,CAAC,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC1C,cAAc,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACtD,oBAAoB,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IACjE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EACT;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;KACxB,GACD,IAAI,CAAC;CACV,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAkBpD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,oBAAoB,GAAG,0BAA0B,CAoBjG;AAED,MAAM,MAAM,mCAAmC,GAAG;IAChD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,mCAAmC,CAAC;CAClD,GAAG,qBAAqB,CA0BxB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { firstProblemStepForCertificate, formatDecisionBlockerForHumans } from "../decisionBlocker.js";
|
|
2
|
+
import { trustDecisionFromCertificate } from "../trustDecision.js";
|
|
3
|
+
/** Max UTF-8 size for serialized **`TrustDecisionRecordV1`** posted to hosted ingest. */
|
|
4
|
+
export const MAX_TRUST_DECISION_RECORD_UTF8 = 65536;
|
|
5
|
+
function truncateUtf16CodeUnits(s, max) {
|
|
6
|
+
const t = s.length <= max ? s : `${s.slice(0, max - 1)}…`;
|
|
7
|
+
return t.length <= max ? t : t.slice(0, max);
|
|
8
|
+
}
|
|
9
|
+
function sortedUniqueReasonCodes(details, cap) {
|
|
10
|
+
const raw = details.map((d) => d.code);
|
|
11
|
+
const out = [];
|
|
12
|
+
for (const c of [...new Set(raw)].sort((a, b) => a.localeCompare(b))) {
|
|
13
|
+
const t = c.length > 256 ? c.slice(0, 255) + "…" : c;
|
|
14
|
+
out.push(t);
|
|
15
|
+
if (out.length >= cap)
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
export function buildCertificateSnapshotV1(cert) {
|
|
21
|
+
const codes = sortedUniqueReasonCodes(cert.explanation.details, 24);
|
|
22
|
+
const primary = firstProblemStepForCertificate(cert);
|
|
23
|
+
return {
|
|
24
|
+
schema_version: 1,
|
|
25
|
+
workflow_id: cert.workflowId,
|
|
26
|
+
run_kind: cert.runKind,
|
|
27
|
+
state_relation: cert.stateRelation,
|
|
28
|
+
high_stakes_reliance: cert.highStakesReliance,
|
|
29
|
+
reason_codes: codes,
|
|
30
|
+
first_problem: primary === null
|
|
31
|
+
? null
|
|
32
|
+
: {
|
|
33
|
+
seq: primary.seq,
|
|
34
|
+
tool_id: primary.toolId ?? "unknown",
|
|
35
|
+
observed_trunc: truncateUtf16CodeUnits(primary.observedOutcome, 512),
|
|
36
|
+
expected_trunc: truncateUtf16CodeUnits(primary.expectedOutcome, 512),
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function buildTrustDecisionRecordV1(params) {
|
|
41
|
+
const { certificate, gateKind } = params;
|
|
42
|
+
const { lines } = formatDecisionBlockerForHumans(certificate);
|
|
43
|
+
const routing_key = params.routingOpts.ownerRoutingKey ?? params.routingOpts.workflowIdFallback;
|
|
44
|
+
const routing = { routing_key };
|
|
45
|
+
if (params.routingOpts.routingTeam !== undefined && params.routingOpts.routingTeam.length > 0) {
|
|
46
|
+
routing.team = params.routingOpts.routingTeam;
|
|
47
|
+
}
|
|
48
|
+
if (params.routingOpts.ownerSlug !== undefined && params.routingOpts.ownerSlug.length > 0) {
|
|
49
|
+
routing.owner_slug = params.routingOpts.ownerSlug;
|
|
50
|
+
}
|
|
51
|
+
const record = {
|
|
52
|
+
schema_version: 1,
|
|
53
|
+
trust_decision: trustDecisionFromCertificate(certificate),
|
|
54
|
+
gate_kind: gateKind,
|
|
55
|
+
routing,
|
|
56
|
+
certificate_snapshot: buildCertificateSnapshotV1(certificate),
|
|
57
|
+
human_blocker_lines: lines,
|
|
58
|
+
};
|
|
59
|
+
const size = Buffer.byteLength(JSON.stringify(record), "utf8");
|
|
60
|
+
if (size > MAX_TRUST_DECISION_RECORD_UTF8) {
|
|
61
|
+
throw new Error(`buildTrustDecisionRecordV1: record exceeds MAX_TRUST_DECISION_RECORD_UTF8 (${size} > ${MAX_TRUST_DECISION_RECORD_UTF8})`);
|
|
62
|
+
}
|
|
63
|
+
return record;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=trustDecisionRecord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustDecisionRecord.js","sourceRoot":"","sources":["../../src/commercial/trustDecisionRecord.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustDecisionRecord.schema.test.d.ts","sourceRoot":"","sources":["../../src/commercial/trustDecisionRecord.schema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { loadSchemaValidator } from "../schemaLoad.js";
|
|
3
|
+
import { buildTrustDecisionRecordV1 } from "./trustDecisionRecord.js";
|
|
4
|
+
const minimalCertNoSafe = {
|
|
5
|
+
schemaVersion: 1,
|
|
6
|
+
workflowId: "wf_x",
|
|
7
|
+
runKind: "contract_sql",
|
|
8
|
+
stateRelation: "does_not_match",
|
|
9
|
+
highStakesReliance: "prohibited",
|
|
10
|
+
relianceRationale: "x",
|
|
11
|
+
intentSummary: "x",
|
|
12
|
+
explanation: { headline: "h", details: [{ code: "C", message: "m" }] },
|
|
13
|
+
steps: [
|
|
14
|
+
{
|
|
15
|
+
seq: 0,
|
|
16
|
+
toolId: "t",
|
|
17
|
+
declaredAction: "a",
|
|
18
|
+
expectedOutcome: "e",
|
|
19
|
+
observedOutcome: "o",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
humanReport: "r",
|
|
23
|
+
};
|
|
24
|
+
describe("trust decision record ingest shape", () => {
|
|
25
|
+
it("validates TrustDecisionRecordV1 envelope", () => {
|
|
26
|
+
const record = buildTrustDecisionRecordV1({
|
|
27
|
+
certificate: minimalCertNoSafe,
|
|
28
|
+
gateKind: "contract_sql_irreversible",
|
|
29
|
+
routingOpts: { workflowIdFallback: "wf_x" },
|
|
30
|
+
});
|
|
31
|
+
const v = loadSchemaValidator("trust-decision-record-v1");
|
|
32
|
+
expect(v(record)).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=trustDecisionRecord.schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustDecisionRecord.schema.test.js","sourceRoot":"","sources":["../../src/commercial/trustDecisionRecord.schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,iBAAiB,GAAyB;IAC9C,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,cAAc;IACvB,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,YAAY;IAChC,iBAAiB,EAAE,GAAG;IACtB,aAAa,EAAE,GAAG;IAClB,WAAW,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IACtE,KAAK,EAAE;QACL;YACE,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,GAAG;YACX,cAAc,EAAE,GAAG;YACnB,eAAe,EAAE,GAAG;YACpB,eAAe,EAAE,GAAG;SACrB;KACF;IACD,WAAW,EAAE,GAAG;CACjB,CAAC;AAEF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,0BAA0B,CAAC;YACxC,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,2BAA2B;YACrC,WAAW,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { OutcomeCertificateV1 } from "./outcomeCertificate.js";
|
|
2
2
|
import { type TrustDecision } from "./trustDecision.js";
|
|
3
|
+
/**
|
|
4
|
+
* Exported for Trust Decision Record snapshots — same selection rules as **`formatDecisionBlockerForHumans`**.
|
|
5
|
+
*/
|
|
6
|
+
export declare function firstProblemStepForCertificate(certificate: OutcomeCertificateV1): OutcomeCertificateV1["steps"][0] | null;
|
|
3
7
|
/**
|
|
4
8
|
* Fixed six-line human blocker for operators (Requirement 4 contract).
|
|
5
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionBlocker.d.ts","sourceRoot":"","sources":["../src/decisionBlocker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"decisionBlocker.d.ts","sourceRoot":"","sources":["../src/decisionBlocker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAqBtF;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CASzH;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,GAAG;IACjF,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAoCA"}
|
package/dist/decisionBlocker.js
CHANGED
|
@@ -19,7 +19,10 @@ function inferStepStatus(step) {
|
|
|
19
19
|
return "verified";
|
|
20
20
|
return "non_verified";
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Exported for Trust Decision Record snapshots — same selection rules as **`formatDecisionBlockerForHumans`**.
|
|
24
|
+
*/
|
|
25
|
+
export function firstProblemStepForCertificate(certificate) {
|
|
23
26
|
const steps = [...certificate.steps].sort((a, b) => a.seq - b.seq);
|
|
24
27
|
if (steps.length === 0)
|
|
25
28
|
return null;
|
|
@@ -38,7 +41,7 @@ function pickPrimaryStep(certificate) {
|
|
|
38
41
|
export function formatDecisionBlockerForHumans(certificate) {
|
|
39
42
|
const trustDecision = trustDecisionFromCertificate(certificate);
|
|
40
43
|
const codes = sortedUniqueCodes(certificate.explanation.details.map((d) => d.code), 5);
|
|
41
|
-
const primary =
|
|
44
|
+
const primary = firstProblemStepForCertificate(certificate);
|
|
42
45
|
const line3 = trustDecision === "safe"
|
|
43
46
|
? "First problem step: n/a"
|
|
44
47
|
: primary !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionBlocker.js","sourceRoot":"","sources":["../src/decisionBlocker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAsB,MAAM,oBAAoB,CAAC;AAEtF,SAAS,eAAe,CAAC,CAAS,EAAE,GAAW;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe,EAAE,GAAW;IACrD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,IAAsC;IAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,yGAAyG;IACzG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAC;IACzE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACvE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"decisionBlocker.js","sourceRoot":"","sources":["../src/decisionBlocker.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url";
|
|
|
5
5
|
import { DatabaseSync } from "node:sqlite";
|
|
6
6
|
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
7
7
|
import { createDecisionGateImpl } from "./decisionGate.js";
|
|
8
|
-
import {
|
|
8
|
+
import { TrustDecisionBlockedError } from "./trustDecisionBlockedError.js";
|
|
9
9
|
const root = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
10
10
|
describe("DecisionGate.assertSafeForIrreversibleAction", () => {
|
|
11
11
|
/** Seeded SQLite under tmp — `examples/demo.db` is gitignored and absent on clean CI. */
|
|
@@ -22,7 +22,7 @@ describe("DecisionGate.assertSafeForIrreversibleAction", () => {
|
|
|
22
22
|
afterAll(() => {
|
|
23
23
|
rmSync(workDir, { recursive: true, force: true });
|
|
24
24
|
});
|
|
25
|
-
it("throws
|
|
25
|
+
it("throws TrustDecisionBlockedError when DB does not match (wf_missing)", async () => {
|
|
26
26
|
const eventsPath = join(root, "examples", "events.ndjson");
|
|
27
27
|
const registryPath = join(root, "examples", "tools.json");
|
|
28
28
|
const lines = readFileSync(eventsPath, "utf8").split(/\r?\n/).filter((l) => l.trim().length > 0);
|
|
@@ -41,7 +41,7 @@ describe("DecisionGate.assertSafeForIrreversibleAction", () => {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
await expect(gate.assertSafeForIrreversibleAction()).rejects.toSatisfy((e) => {
|
|
44
|
-
if (!(e instanceof
|
|
44
|
+
if (!(e instanceof TrustDecisionBlockedError))
|
|
45
45
|
return false;
|
|
46
46
|
if (e.trustDecision !== "unsafe")
|
|
47
47
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionGate.assertSafe.test.js","sourceRoot":"","sources":["../src/decisionGate.assertSafe.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"decisionGate.assertSafe.test.js","sourceRoot":"","sources":["../src/decisionGate.assertSafe.test.ts"],"names":[],"mappings":"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"}
|
package/dist/decisionGate.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export type CreateDecisionGateOptions = {
|
|
|
8
8
|
verificationPolicy?: VerificationPolicy;
|
|
9
9
|
logStep?: (line: object) => void;
|
|
10
10
|
truthReport?: (report: string) => void;
|
|
11
|
+
/** Overrides **`routing.routing_key`** in **`TrustDecisionRecordV1`** (default **`workflowId`**). */
|
|
12
|
+
ownerRoutingKey?: string;
|
|
13
|
+
routingTeam?: string;
|
|
14
|
+
ownerSlug?: string;
|
|
11
15
|
};
|
|
12
16
|
export type DecisionGate = {
|
|
13
17
|
appendRunEvent(value: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionGate.d.ts","sourceRoot":"","sources":["../src/decisionGate.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAA0C,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"decisionGate.d.ts","sourceRoot":"","sources":["../src/decisionGate.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAA0C,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAU7G,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,qGAAqG;IACrG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,YAAY,IAAI,MAAM,CAAC;IACvB,qBAAqB,IAAI,IAAI,CAAC;IAC9B,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,mBAAmB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrD,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAwGvF"}
|
package/dist/decisionGate.js
CHANGED
|
@@ -8,8 +8,7 @@ import { loadSchemaValidator } from "./schemaLoad.js";
|
|
|
8
8
|
import { resolveVerificationPolicyInput } from "./verificationPolicy.js";
|
|
9
9
|
import { TruthLayerError } from "./truthLayerError.js";
|
|
10
10
|
import { trustDecisionFromCertificate } from "./trustDecision.js";
|
|
11
|
-
import {
|
|
12
|
-
import { DecisionUnsafeError } from "./decisionUnsafeError.js";
|
|
11
|
+
import { finalizeIrreversibleBlockThrow } from "./finalizeIrreversibleTrustBlock.js";
|
|
13
12
|
const validateEvent = loadSchemaValidator("event");
|
|
14
13
|
function verificationDatabaseFromUrl(databaseUrl, projectRoot) {
|
|
15
14
|
return parseVerificationDatabaseUrl(databaseUrl, projectRoot);
|
|
@@ -86,10 +85,19 @@ export function createDecisionGateImpl(options) {
|
|
|
86
85
|
};
|
|
87
86
|
api.assertSafeForIrreversibleAction = async () => {
|
|
88
87
|
const certificate = await api.evaluateCertificate();
|
|
89
|
-
if (trustDecisionFromCertificate(certificate)
|
|
90
|
-
|
|
91
|
-
throw new DecisionUnsafeError(certificate, lines);
|
|
88
|
+
if (trustDecisionFromCertificate(certificate) === "safe") {
|
|
89
|
+
return;
|
|
92
90
|
}
|
|
91
|
+
await finalizeIrreversibleBlockThrow({
|
|
92
|
+
certificate,
|
|
93
|
+
gateKind: "contract_sql_irreversible",
|
|
94
|
+
routingOpts: {
|
|
95
|
+
workflowIdFallback: options.workflowId,
|
|
96
|
+
ownerRoutingKey: options.ownerRoutingKey,
|
|
97
|
+
routingTeam: options.routingTeam,
|
|
98
|
+
ownerSlug: options.ownerSlug,
|
|
99
|
+
},
|
|
100
|
+
});
|
|
93
101
|
};
|
|
94
102
|
return api;
|
|
95
103
|
}
|
package/dist/decisionGate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionGate.js","sourceRoot":"","sources":["../src/decisionGate.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,yCAAyC,GAE1C,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"decisionGate.js","sourceRoot":"","sources":["../src/decisionGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OutcomeCertificateV1 } from "./outcomeCertificate.js";
|
|
2
|
+
import { type BuildTrustDecisionRecordRoutingOpts, type TrustGateKind } from "./commercial/trustDecisionRecord.js";
|
|
3
|
+
/**
|
|
4
|
+
* Mandatory emit (**best-effort**) then **`TrustDecisionBlockedError`**.
|
|
5
|
+
* Caller must only invoke after determining trust is not **`safe`** from the outcome certificate.
|
|
6
|
+
*/
|
|
7
|
+
export declare function finalizeIrreversibleBlockThrow(params: {
|
|
8
|
+
certificate: OutcomeCertificateV1;
|
|
9
|
+
gateKind: TrustGateKind;
|
|
10
|
+
routingOpts: BuildTrustDecisionRecordRoutingOpts;
|
|
11
|
+
}): Promise<never>;
|
|
12
|
+
//# sourceMappingURL=finalizeIrreversibleTrustBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalizeIrreversibleTrustBlock.d.ts","sourceRoot":"","sources":["../src/finalizeIrreversibleTrustBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAEL,KAAK,mCAAmC,EACxC,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAI7C;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,mCAAmC,CAAC;CAClD,GAAG,OAAO,CAAC,KAAK,CAAC,CAIjB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { buildTrustDecisionRecordV1, } from "./commercial/trustDecisionRecord.js";
|
|
2
|
+
import { postTrustDecisionBlocked } from "./commercial/postTrustDecisionBlocked.js";
|
|
3
|
+
import { TrustDecisionBlockedError } from "./trustDecisionBlockedError.js";
|
|
4
|
+
/**
|
|
5
|
+
* Mandatory emit (**best-effort**) then **`TrustDecisionBlockedError`**.
|
|
6
|
+
* Caller must only invoke after determining trust is not **`safe`** from the outcome certificate.
|
|
7
|
+
*/
|
|
8
|
+
export async function finalizeIrreversibleBlockThrow(params) {
|
|
9
|
+
const record = buildTrustDecisionRecordV1(params);
|
|
10
|
+
await postTrustDecisionBlocked(record);
|
|
11
|
+
throw new TrustDecisionBlockedError(record, params.certificate);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=finalizeIrreversibleTrustBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalizeIrreversibleTrustBlock.js","sourceRoot":"","sources":["../src/finalizeIrreversibleTrustBlock.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,GAG3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,MAIpD;IACC,MAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,IAAI,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ export { verifyWorkflow, createDecisionGate, verifyAgentskeptic, runQuickVerify,
|
|
|
9
9
|
export type { CreateDecisionGateOptions, DecisionGate } from "./decisionGate.js";
|
|
10
10
|
export { classifyLangGraphCheckpointTrustEligibility } from "./langGraphCheckpointTrustGate.js";
|
|
11
11
|
export type { CreateLangGraphCheckpointTrustGateOptions, LangGraphCheckpointTrustEligibility, LangGraphCheckpointTrustGate, } from "./langGraphCheckpointTrustGate.js";
|
|
12
|
-
export { LangGraphCheckpointTrustUnsafeError } from "./langGraphCheckpointTrustUnsafeError.js";
|
|
13
12
|
export { trustDecisionFromCertificate } from "./trustDecision.js";
|
|
14
13
|
export type { TrustDecision } from "./trustDecision.js";
|
|
15
|
-
export { formatDecisionBlockerForHumans } from "./decisionBlocker.js";
|
|
16
|
-
export {
|
|
14
|
+
export { formatDecisionBlockerForHumans, firstProblemStepForCertificate } from "./decisionBlocker.js";
|
|
15
|
+
export { TrustDecisionBlockedError } from "./trustDecisionBlockedError.js";
|
|
16
|
+
export type { TrustDecisionRecordV1, TrustCertificateSnapshotV1, TrustGateKind, } from "./commercial/trustDecisionRecord.js";
|
|
17
17
|
export { loadSchemaValidator } from "./schemaLoad.js";
|
|
18
18
|
export type { SchemaValidatorName } from "./schemaLoad.js";
|
|
19
19
|
export { quickReportToStdoutLine } from "./quickVerify/runQuickVerify.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,+CAA+C,GAChD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,yCAAyC,EACzC,sCAAsC,EACtC,iEAAiE,EACjE,kDAAkD,EAClD,2CAA2C,EAC3C,wBAAwB,EACxB,kCAAkC,EAClC,6BAA6B,EAC7B,6BAA6B,EAC7B,8CAA8C,GAC/C,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,oBAAoB,EACpB,yBAAyB,EACzB,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,mCAAmC,EACnC,mCAAmC,EACnC,mCAAmC,GACpC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC5E,YAAY,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,+BAA+B,EAC/B,uCAAuC,EACvC,kCAAkC,GACnC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,2CAA2C,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EACV,yCAAyC,EACzC,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,9 @@ export { buildOutcomeCertificateFromWorkflowResult, buildOutcomeCertificateFromQ
|
|
|
4
4
|
export { loadToolsRegistry, verifyRunStateFromEvents } from "./pipeline.js";
|
|
5
5
|
export { verifyWorkflow, createDecisionGate, verifyAgentskeptic, runQuickVerify, runQuickVerifyToValidatedReport, assertLangGraphCheckpointProductionGate, createLangGraphCheckpointTrustGate, } from "./sdk/deprecatedPublicApi.js";
|
|
6
6
|
export { classifyLangGraphCheckpointTrustEligibility } from "./langGraphCheckpointTrustGate.js";
|
|
7
|
-
export { LangGraphCheckpointTrustUnsafeError } from "./langGraphCheckpointTrustUnsafeError.js";
|
|
8
7
|
export { trustDecisionFromCertificate } from "./trustDecision.js";
|
|
9
|
-
export { formatDecisionBlockerForHumans } from "./decisionBlocker.js";
|
|
10
|
-
export {
|
|
8
|
+
export { formatDecisionBlockerForHumans, firstProblemStepForCertificate } from "./decisionBlocker.js";
|
|
9
|
+
export { TrustDecisionBlockedError } from "./trustDecisionBlockedError.js";
|
|
11
10
|
export { loadSchemaValidator } from "./schemaLoad.js";
|
|
12
11
|
export { quickReportToStdoutLine } from "./quickVerify/runQuickVerify.js";
|
|
13
12
|
export { DEFAULT_QUICK_VERIFY_PRODUCT_TRUTH, buildQuickVerifyProductTruth, } from "./quickVerify/quickVerifyProductTruth.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,+CAA+C,GAChD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,yCAAyC,EACzC,sCAAsC,EACtC,iEAAiE,EACjE,kDAAkD,EAClD,2CAA2C,EAC3C,wBAAwB,EACxB,kCAAkC,EAClC,6BAA6B,EAC7B,6BAA6B,EAC7B,8CAA8C,GAC/C,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,+BAA+B,EAC/B,uCAAuC,EACvC,kCAAkC,GACnC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,2CAA2C,EAAE,MAAM,mCAAmC,CAAC;AAMhG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,11 @@ export declare function classifyLangGraphCheckpointTrustEligibility(input: {
|
|
|
17
17
|
/**
|
|
18
18
|
* LangGraph production wedge: succeeds only on terminal row **B** (matches + all checkpoint verdicts verified).
|
|
19
19
|
*/
|
|
20
|
-
export declare function assertLangGraphCheckpointProductionGate(certificate: OutcomeCertificateV1
|
|
20
|
+
export declare function assertLangGraphCheckpointProductionGate(certificate: OutcomeCertificateV1, routingOpts?: {
|
|
21
|
+
ownerRoutingKey?: string;
|
|
22
|
+
routingTeam?: string;
|
|
23
|
+
ownerSlug?: string;
|
|
24
|
+
}): Promise<void>;
|
|
21
25
|
export type CreateLangGraphCheckpointTrustGateOptions = {
|
|
22
26
|
workflowId: string;
|
|
23
27
|
registryPath: string;
|
|
@@ -26,6 +30,9 @@ export type CreateLangGraphCheckpointTrustGateOptions = {
|
|
|
26
30
|
verificationPolicy?: VerificationPolicy;
|
|
27
31
|
logStep?: (line: object) => void;
|
|
28
32
|
truthReport?: (report: string) => void;
|
|
33
|
+
ownerRoutingKey?: string;
|
|
34
|
+
routingTeam?: string;
|
|
35
|
+
ownerSlug?: string;
|
|
29
36
|
};
|
|
30
37
|
export type LangGraphCheckpointTrustGate = {
|
|
31
38
|
appendRunEvent(value: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langGraphCheckpointTrustGate.d.ts","sourceRoot":"","sources":["../src/langGraphCheckpointTrustGate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"langGraphCheckpointTrustGate.d.ts","sourceRoot":"","sources":["../src/langGraphCheckpointTrustGate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAY,iBAAiB,EAAwB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAUjC,MAAM,MAAM,mCAAmC,GAC3C;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,2CAA2C,CAAC,KAAK,EAAE;IACjE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC,GAAG,mCAAmC,CActC;AAcD;;GAEG;AACH,wBAAsB,uCAAuC,CAC3D,WAAW,EAAE,oBAAoB,EACjC,WAAW,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACnF,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,MAAM,MAAM,yCAAyC,GAAG;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,YAAY,IAAI,MAAM,CAAC;IACvB,8EAA8E;IAC9E,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpD,uCAAuC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAEF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CAoF9B"}
|