@decionis/agent-safe-pipeline 0.3.6 → 0.3.8
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 +2 -2
- package/dist/approval/PresenceApprovalCoordinator.d.ts +2 -2
- package/dist/audit/AuditRecorder.d.ts +5 -5
- package/dist/decision/DecionisGate.d.ts +11 -5
- package/dist/decision/DecionisGate.d.ts.map +1 -1
- package/dist/decision/DecionisGate.js +119 -16
- package/dist/decision/DecionisGate.js.map +1 -1
- package/dist/decision/DecisionAuthority.d.ts +43 -3
- package/dist/decision/DecisionAuthority.d.ts.map +1 -1
- package/dist/decision/DecisionAuthority.js +2 -2
- package/dist/decision/DecisionAuthority.js.map +1 -1
- package/dist/decision/FixtureDecisionAuthority.d.ts +7 -3
- package/dist/decision/FixtureDecisionAuthority.d.ts.map +1 -1
- package/dist/decision/FixtureDecisionAuthority.js +26 -3
- package/dist/decision/FixtureDecisionAuthority.js.map +1 -1
- package/dist/decision/ImmutableDecisionGate.d.ts +3 -0
- package/dist/decision/ImmutableDecisionGate.d.ts.map +1 -0
- package/dist/decision/{ImmutableGateDecision.js → ImmutableDecisionGate.js} +2 -2
- package/dist/decision/{ImmutableGateDecision.js.map → ImmutableDecisionGate.js.map} +1 -1
- package/dist/decision/ShadowGate.d.ts +2 -2
- package/dist/decision/ShadowGate.js +2 -2
- package/dist/decision/edge/EdgeDecisionAuthority.d.ts +2 -2
- package/dist/decision/edge/EdgeDecisionAuthority.js +2 -2
- package/dist/execution/AuthorizationVerifier.d.ts +19 -4
- package/dist/execution/AuthorizationVerifier.d.ts.map +1 -1
- package/dist/execution/AuthorizationVerifier.js +34 -0
- package/dist/execution/AuthorizationVerifier.js.map +1 -1
- package/dist/execution/LocalAuthorizationVerifier.d.ts +6 -2
- package/dist/execution/LocalAuthorizationVerifier.d.ts.map +1 -1
- package/dist/execution/LocalAuthorizationVerifier.js +19 -0
- package/dist/execution/LocalAuthorizationVerifier.js.map +1 -1
- package/dist/execution/SafeExecutor.d.ts +31 -5
- package/dist/execution/SafeExecutor.d.ts.map +1 -1
- package/dist/execution/SafeExecutor.js +53 -1
- package/dist/execution/SafeExecutor.js.map +1 -1
- package/dist/report/DecisionReport.d.ts +2 -2
- package/dist/report/HostedOutcome.d.ts +2 -2
- package/dist/shadow/ShadowPipeline.d.ts +4 -2
- package/dist/shadow/ShadowPipeline.d.ts.map +1 -1
- package/dist/shadow/ShadowPipeline.js +3 -3
- package/dist/shadow/ShadowPipeline.js.map +1 -1
- package/dist/testing/Index.d.ts +2 -1
- package/dist/testing/Index.d.ts.map +1 -1
- package/dist/testing/Index.js +2 -1
- package/dist/testing/Index.js.map +1 -1
- package/dist/testing/LocalAuthority.d.ts +45 -1
- package/dist/testing/LocalAuthority.d.ts.map +1 -1
- package/dist/testing/LocalAuthority.js +71 -2
- package/dist/testing/LocalAuthority.js.map +1 -1
- package/dist/testing/SignedSignals.d.ts +150 -0
- package/dist/testing/SignedSignals.d.ts.map +1 -0
- package/dist/testing/SignedSignals.js +291 -0
- package/dist/testing/SignedSignals.js.map +1 -0
- package/package.json +1 -1
- package/dist/decision/ImmutableGateDecision.d.ts +0 -3
- package/dist/decision/ImmutableGateDecision.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -267,7 +267,7 @@ const observation = await run.observation;
|
|
|
267
267
|
// Decionis would have returned, the dossier identifier, and whether a grant was discarded.
|
|
268
268
|
```
|
|
269
269
|
|
|
270
|
-
A shadow observation carries no grant, is structurally distinct from a `
|
|
270
|
+
A shadow observation carries no grant, is structurally distinct from a `DecisionGate`, and is
|
|
271
271
|
rejected by `SafeExecutor` at runtime. See
|
|
272
272
|
[shadow mode](https://github.com/decionis/agent-safe-pipeline/blob/master/docs/shadow-mode.md).
|
|
273
273
|
|
|
@@ -411,7 +411,7 @@ them from the testing entry. See
|
|
|
411
411
|
| Concern | Exports | Role |
|
|
412
412
|
| -------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
|
|
413
413
|
| Intent | `IntentCapture`, `CanonicalIntentHasher`, `ExecutionIntentSchema`, `AgentProposalSchema` | Build the immutable `agent-safe.intent/1` binding and its canonical SHA-256 hash |
|
|
414
|
-
| Decision | `DecionisGate`, `DecisionAuthority`, `
|
|
414
|
+
| Decision | `DecionisGate`, `DecisionAuthority`, `DecisionGate`, `FailClosedDecision` | Obtain an independent `ALLOW` / `ESCALATE` / `BLOCK` decision with dossier identifiers |
|
|
415
415
|
| Selection | `createGate`, `ShadowGate`, `SelectedGate`, `HostedEvaluation`, `printDecision` | Choose local, shadow, or enforcement from the environment; combine and report the two verdicts |
|
|
416
416
|
| Human approval | `PresenceApprovalCoordinator`, `ManagedEscalationRequest`, `HumanApprovalEvidence` | Coordinate DIRECT Presence ceremonies or request MANAGED orchestration by Decionis |
|
|
417
417
|
| Execution | `SafeExecutor`, `ActionRegistry`, `DecionisGrantVerifier`, `AuthorizationVerifier`, `ReplayStore` | Claim the single-use grant, validate parameters, invoke a sealed handler, finalize the attempt |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GateResult, HumanApprovalGate } from "@decionis/presence-node";
|
|
2
2
|
import type { AuditRecorder } from "../audit/AuditRecorder.js";
|
|
3
|
-
import type { DecisionAuthority,
|
|
3
|
+
import type { DecisionAuthority, DecisionGate } from "../decision/DecisionAuthority.js";
|
|
4
4
|
import type { CapturedIntent } from "../intent/ExecutionIntent.js";
|
|
5
5
|
export type PresenceGateResult = GateResult;
|
|
6
6
|
export type PresenceApprovalClient = Pick<HumanApprovalGate, "gate" | "outcome">;
|
|
@@ -52,7 +52,7 @@ export declare class PresenceApprovalCoordinator {
|
|
|
52
52
|
private readonly ttlSeconds;
|
|
53
53
|
constructor(presence: PresenceApprovalClient, authority: DecisionAuthority, organization: string, approverId: string, options?: PresenceApprovalCoordinatorOptions);
|
|
54
54
|
request(captured: CapturedIntent): Promise<PresenceGateResult>;
|
|
55
|
-
resolveAndReauthorize(captured: CapturedIntent, result: PresenceGateResult, options?: PresenceResolutionOptions): Promise<
|
|
55
|
+
resolveAndReauthorize(captured: CapturedIntent, result: PresenceGateResult, options?: PresenceResolutionOptions): Promise<DecisionGate>;
|
|
56
56
|
private terminalResult;
|
|
57
57
|
private lookupOutcome;
|
|
58
58
|
private evaluateAuthority;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DecisionGate } from "../decision/DecisionAuthority.js";
|
|
2
2
|
import type { CapturedIntent } from "../intent/ExecutionIntent.js";
|
|
3
3
|
import type { JsonObject, JsonValue } from "../intent/JsonValue.js";
|
|
4
4
|
import type { VerifiedAuthorization } from "../execution/AuthorizationVerifier.js";
|
|
@@ -36,7 +36,7 @@ export interface AuditEventV1 {
|
|
|
36
36
|
readonly policy: AuditPolicyRevision | null;
|
|
37
37
|
readonly evidenceReference: string | null;
|
|
38
38
|
} | null;
|
|
39
|
-
readonly verdict:
|
|
39
|
+
readonly verdict: DecisionGate["verdict"] | null;
|
|
40
40
|
readonly reasonCodes: readonly string[];
|
|
41
41
|
readonly durationMs: number | null;
|
|
42
42
|
readonly metadata: Readonly<JsonObject>;
|
|
@@ -48,13 +48,13 @@ export interface AuditRecordInput {
|
|
|
48
48
|
readonly eventType: AuditEventType;
|
|
49
49
|
readonly captured: CapturedIntent;
|
|
50
50
|
readonly authority?: AuditAuthority;
|
|
51
|
-
readonly decision?:
|
|
51
|
+
readonly decision?: DecisionGate;
|
|
52
52
|
readonly authorization?: VerifiedAuthorization;
|
|
53
53
|
readonly decisionId?: string;
|
|
54
54
|
readonly dossierId?: string;
|
|
55
55
|
readonly grantId?: string;
|
|
56
|
-
/** Verdict for events that carry no `
|
|
57
|
-
readonly verdict?:
|
|
56
|
+
/** Verdict for events that carry no `DecisionGate`, such as shadow observations. */
|
|
57
|
+
readonly verdict?: DecisionGate["verdict"];
|
|
58
58
|
readonly evaluation?: AuditEvaluationEvidence;
|
|
59
59
|
readonly reasonCodes?: readonly string[];
|
|
60
60
|
readonly durationMs?: number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Credential } from "../http/Credential.js";
|
|
2
2
|
import { type ClientSource } from "../http/ClientIdentification.js";
|
|
3
3
|
import type { AuthorityIntentBinding, CapturedIntent } from "../intent/ExecutionIntent.js";
|
|
4
|
-
import { type DecisionAuthority, type DecisionEvaluationMode, type DecisionEvaluationOptions, type DecisionEvidence, type
|
|
4
|
+
import { type DecisionAuthority, type DecisionEvaluationMode, type DecisionEvaluationOptions, type DecisionEvidence, type DecisionGate, type ManagedEscalationState } from "./DecisionAuthority.js";
|
|
5
5
|
export type ManagedEscalationPendingStatus = "PENDING_PRESENCE" | "PRESENCE_REQUESTED" | "AWAITING_APPROVER" | "PRESENCE_VERIFIED" | "REAUTHORIZING";
|
|
6
6
|
export type ManagedEscalationBlockedStatus = "EXPIRED" | "REJECTED" | "BLOCKED" | "CANCELLED";
|
|
7
7
|
interface ManagedEscalationStatusBase {
|
|
@@ -19,7 +19,7 @@ export type ManagedEscalationStatusResult = ManagedEscalationStatusBase & ({
|
|
|
19
19
|
} | {
|
|
20
20
|
readonly status: "GRANT_READY";
|
|
21
21
|
readonly outcome: "ALLOW";
|
|
22
|
-
readonly decision:
|
|
22
|
+
readonly decision: DecisionGate;
|
|
23
23
|
} | {
|
|
24
24
|
readonly status: ManagedEscalationBlockedStatus;
|
|
25
25
|
readonly outcome: "BLOCK";
|
|
@@ -79,7 +79,7 @@ export declare class DecionisGate implements DecisionAuthority {
|
|
|
79
79
|
private readonly userAgent;
|
|
80
80
|
private readonly pendingAuthorizationWaits;
|
|
81
81
|
constructor(options: DecionisGateOptions);
|
|
82
|
-
evaluate(captured: CapturedIntent, evidence?: DecisionEvidence, options?: DecisionEvaluationOptions): Promise<
|
|
82
|
+
evaluate(captured: CapturedIntent, evidence?: DecisionEvidence, options?: DecisionEvaluationOptions): Promise<DecisionGate>;
|
|
83
83
|
/**
|
|
84
84
|
* The `ExecutionIntentBinding` exactly as `enforce-and-bind` receives it:
|
|
85
85
|
* the intent's binding and the hash this process computed over it. The
|
|
@@ -96,9 +96,10 @@ export declare class DecionisGate implements DecisionAuthority {
|
|
|
96
96
|
* Waits only on Decionis. Presence credentials, invitation locators, and
|
|
97
97
|
* receipt evidence never cross this client boundary in managed mode.
|
|
98
98
|
*/
|
|
99
|
-
waitForAuthorization(captured: CapturedIntent, pendingDecision:
|
|
99
|
+
waitForAuthorization(captured: CapturedIntent, pendingDecision: DecisionGate, options?: ManagedAuthorizationWaitOptions): Promise<DecisionGate>;
|
|
100
100
|
private waitForAuthorizationInternal;
|
|
101
101
|
private decisionFromResponse;
|
|
102
|
+
private static escalationRequirementFromWire;
|
|
102
103
|
private initialManagedState;
|
|
103
104
|
private statusResult;
|
|
104
105
|
private expectedStateFailure;
|
|
@@ -126,9 +127,14 @@ export declare class DecionisGate implements DecisionAuthority {
|
|
|
126
127
|
private static isBoundedIdentifier;
|
|
127
128
|
/**
|
|
128
129
|
* The contract returns an `ERROR` decision body on 409 and 503 so the
|
|
129
|
-
* refusal is evidence-bearing
|
|
130
|
+
* refusal is evidence-bearing, or, for a proof it turned away before any
|
|
131
|
+
* evaluation (an attestation or a signed signal it could not verify), a
|
|
132
|
+
* 409 with a bare `{ "error": <code> }` whose code becomes the reason.
|
|
133
|
+
* Anything else fails closed generically, whatever the body says.
|
|
130
134
|
*/
|
|
131
135
|
private static failedResponse;
|
|
136
|
+
/** The code of a refused proof, when the body is exactly `{ "error": <code> }` and the code is one. */
|
|
137
|
+
private static proofRefusalCode;
|
|
132
138
|
}
|
|
133
139
|
export {};
|
|
134
140
|
//# sourceMappingURL=DecionisGate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecionisGate.d.ts","sourceRoot":"","sources":["../../src/decision/DecionisGate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"DecionisGate.d.ts","sourceRoot":"","sources":["../../src/decision/DecionisGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { BoundedResponseBody } from "../http/BoundedResponseBody.js";
|
|
|
5
5
|
import { userAgent } from "../http/ClientIdentification.js";
|
|
6
6
|
import { CanonicalIntentHasher } from "../intent/CanonicalIntentHasher.js";
|
|
7
7
|
import { FailClosedDecision, } from "./DecisionAuthority.js";
|
|
8
|
-
import {
|
|
8
|
+
import { immutableDecisionGate } from "./ImmutableDecisionGate.js";
|
|
9
9
|
const boundedIdentifier = z
|
|
10
10
|
.string()
|
|
11
11
|
.min(1)
|
|
@@ -99,6 +99,32 @@ const VerificationEnvelopeSchema = z
|
|
|
99
99
|
link_expires_at: z.string().datetime().nullable().optional(),
|
|
100
100
|
})
|
|
101
101
|
.passthrough();
|
|
102
|
+
/**
|
|
103
|
+
* Where an ESCALATE goes, as the contract's `escalation_requirement` carries it
|
|
104
|
+
* for a runtime that reads it: the policy's selector (kind and role only) and
|
|
105
|
+
* who proves the person. Closed shapes, like the decision they ride on.
|
|
106
|
+
*/
|
|
107
|
+
const EscalationRequirementWireSchema = z
|
|
108
|
+
.object({
|
|
109
|
+
requirement_id: boundedIdentifier.nullable(),
|
|
110
|
+
expires_at: z.string().datetime(),
|
|
111
|
+
selector: z
|
|
112
|
+
.object({
|
|
113
|
+
kind: z.enum(["ROLE", "PRINCIPAL"]),
|
|
114
|
+
role_id: boundedIdentifier.optional(),
|
|
115
|
+
})
|
|
116
|
+
.strict()
|
|
117
|
+
.nullable(),
|
|
118
|
+
verification: z
|
|
119
|
+
.object({
|
|
120
|
+
provider: z.string().regex(/^[a-z][a-z0-9_.:-]{0,63}$/),
|
|
121
|
+
methods: z.array(z.string().min(1).max(64)).min(1).max(3),
|
|
122
|
+
level: z.enum(["STANDARD", "HIGH_CONFIDENCE"]),
|
|
123
|
+
})
|
|
124
|
+
.strict()
|
|
125
|
+
.nullable(),
|
|
126
|
+
})
|
|
127
|
+
.strict();
|
|
102
128
|
/**
|
|
103
129
|
* Mirrors `ExecutionAuthorityDecision` in the Decionis OpenAPI contract, which
|
|
104
130
|
* declares `additionalProperties: false`; an undocumented field therefore fails
|
|
@@ -128,6 +154,7 @@ const AuthorityResponseSchema = z
|
|
|
128
154
|
execution_token_key_id: boundedIdentifier.nullable().optional(),
|
|
129
155
|
managed_escalation: ManagedEscalationWireSchema.nullable().optional(),
|
|
130
156
|
verification: VerificationEnvelopeSchema.nullable().optional(),
|
|
157
|
+
escalation_requirement: EscalationRequirementWireSchema.nullable().optional(),
|
|
131
158
|
})
|
|
132
159
|
.strict();
|
|
133
160
|
const ManagedEscalationStatusResponseSchema = z
|
|
@@ -151,13 +178,16 @@ const WAITING_STATUS_RANK = Object.freeze({
|
|
|
151
178
|
});
|
|
152
179
|
/**
|
|
153
180
|
* The two shapes `evidence.humanApproval` takes on `enforce-and-bind`: a
|
|
154
|
-
* Presence receipt reference, or a presence provider's signed attestation
|
|
181
|
+
* Presence receipt reference, or a presence provider's signed attestation;
|
|
182
|
+
* and `evidence.signals`, a producer's signed standing signals.
|
|
155
183
|
* Both are mirrored strictly, and the parsed copy is what is sent, so a
|
|
156
184
|
* caller object with a field the contract does not name cannot put it on an
|
|
157
185
|
* authenticated request. The attestation is shaped and bounded here and
|
|
158
186
|
* nothing more: verifying it is the authority's work, against the key the
|
|
159
187
|
* organisation registered for its provider.
|
|
160
188
|
*/
|
|
189
|
+
/** The refusals a 409 names before any evaluation: a proof the authority could not verify. */
|
|
190
|
+
const PROOF_REFUSAL_CODE = /^(?:PRESENCE_ATTESTATION|SIGNED_SIGNAL)_[A-Z_]{3,80}$/;
|
|
161
191
|
const DecisionEvidenceSchema = z.strictObject({
|
|
162
192
|
humanApproval: z
|
|
163
193
|
.discriminatedUnion("provider", [
|
|
@@ -175,6 +205,18 @@ const DecisionEvidenceSchema = z.strictObject({
|
|
|
175
205
|
}),
|
|
176
206
|
])
|
|
177
207
|
.optional(),
|
|
208
|
+
// At most eight producer-signed standing signals, shaped and bounded here;
|
|
209
|
+
// the authority verifies each against the producer's registered key.
|
|
210
|
+
signals: z
|
|
211
|
+
.array(z.strictObject({
|
|
212
|
+
token: z
|
|
213
|
+
.string()
|
|
214
|
+
.max(20_000)
|
|
215
|
+
.regex(/^[\w-]+\.[\w-]+\.[\w-]+$/),
|
|
216
|
+
}))
|
|
217
|
+
.min(1)
|
|
218
|
+
.max(8)
|
|
219
|
+
.optional(),
|
|
178
220
|
});
|
|
179
221
|
const MAX_RESPONSE_BYTES = 100 * 1024;
|
|
180
222
|
const DEFAULT_MANAGED_INITIAL_DELAY_MS = 500;
|
|
@@ -215,17 +257,31 @@ export class DecionisGate {
|
|
|
215
257
|
if (escalation !== undefined && this.evaluationMode !== "ENFORCEMENT") {
|
|
216
258
|
return FailClosedDecision.create(captured.intentHash, "MANAGED_ESCALATION_SHADOW_FORBIDDEN");
|
|
217
259
|
}
|
|
218
|
-
|
|
260
|
+
// A managed escalation acquires the approval itself, so approval
|
|
261
|
+
// evidence beside it is a contradiction; a producer's signed signal is
|
|
262
|
+
// not an approval and rides with either shape.
|
|
263
|
+
if (escalation !== undefined && evidence?.humanApproval !== undefined) {
|
|
219
264
|
return FailClosedDecision.create(captured.intentHash, "MANAGED_ESCALATION_EVIDENCE_FORBIDDEN");
|
|
220
265
|
}
|
|
221
266
|
let sent;
|
|
267
|
+
let retained;
|
|
222
268
|
if (evidence !== undefined) {
|
|
223
269
|
const presented = DecisionEvidenceSchema.safeParse(evidence);
|
|
224
270
|
if (!presented.success) {
|
|
225
|
-
return FailClosedDecision.create(captured.intentHash, "
|
|
271
|
+
return FailClosedDecision.create(captured.intentHash, presented.error.issues.some((issue) => issue.path[0] === "signals")
|
|
272
|
+
? "SIGNED_SIGNAL_EVIDENCE_INVALID"
|
|
273
|
+
: "HUMAN_APPROVAL_EVIDENCE_INVALID");
|
|
226
274
|
}
|
|
227
275
|
const approval = presented.data.humanApproval;
|
|
228
|
-
|
|
276
|
+
const signals = presented.data.signals;
|
|
277
|
+
sent = {
|
|
278
|
+
...(approval === undefined ? {} : { humanApproval: approval }),
|
|
279
|
+
...(signals === undefined ? {} : { signals }),
|
|
280
|
+
};
|
|
281
|
+
// The decision keeps the approval reference a claim re-presents, never
|
|
282
|
+
// a signed signal: the authority recorded its facts with the grant, and
|
|
283
|
+
// the token belongs to no record on this side of the boundary.
|
|
284
|
+
retained = approval === undefined ? {} : { humanApproval: approval };
|
|
229
285
|
}
|
|
230
286
|
const controller = new AbortController();
|
|
231
287
|
const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
@@ -253,14 +309,14 @@ export class DecionisGate {
|
|
|
253
309
|
return FailClosedDecision.create(captured.intentHash, "AUTHORITY_RESPONSE_TOO_LARGE");
|
|
254
310
|
}
|
|
255
311
|
if (!response.ok) {
|
|
256
|
-
return DecionisGate.failedResponse(captured, text);
|
|
312
|
+
return DecionisGate.failedResponse(captured, text, response.status);
|
|
257
313
|
}
|
|
258
314
|
const parsed = AuthorityResponseSchema.parse(JSON.parse(text));
|
|
259
315
|
const managed = this.initialManagedState(captured, parsed, escalation);
|
|
260
316
|
if (managed.reasonCode !== undefined) {
|
|
261
317
|
return FailClosedDecision.create(captured.intentHash, managed.reasonCode);
|
|
262
318
|
}
|
|
263
|
-
return this.decisionFromResponse(captured, parsed,
|
|
319
|
+
return this.decisionFromResponse(captured, parsed, retained, managed.state);
|
|
264
320
|
}
|
|
265
321
|
catch {
|
|
266
322
|
return FailClosedDecision.create(captured.intentHash, "AUTHORITY_UNAVAILABLE");
|
|
@@ -469,8 +525,14 @@ export class DecionisGate {
|
|
|
469
525
|
: "BLOCK";
|
|
470
526
|
const verificationUrl = parsed.verification?.verification_page_url;
|
|
471
527
|
const verification = verificationUrl === undefined ? {} : { verificationUrl };
|
|
528
|
+
// Routing rides only on a hold: anywhere else it would say nothing true.
|
|
529
|
+
const routing = verdict === "ESCALATE" && parsed.escalation_requirement != null
|
|
530
|
+
? {
|
|
531
|
+
escalationRequirement: DecionisGate.escalationRequirementFromWire(parsed.escalation_requirement),
|
|
532
|
+
}
|
|
533
|
+
: {};
|
|
472
534
|
if (this.evaluationMode === "SHADOW") {
|
|
473
|
-
return
|
|
535
|
+
return immutableDecisionGate({
|
|
474
536
|
verdict,
|
|
475
537
|
decisionId: parsed.decision_id,
|
|
476
538
|
dossierId: parsed.dossier_id,
|
|
@@ -479,6 +541,7 @@ export class DecionisGate {
|
|
|
479
541
|
authorization: null,
|
|
480
542
|
failClosed: parsed.status === "ERROR",
|
|
481
543
|
...verification,
|
|
544
|
+
...routing,
|
|
482
545
|
...(evidence === undefined ? {} : { evidence }),
|
|
483
546
|
});
|
|
484
547
|
}
|
|
@@ -499,7 +562,7 @@ export class DecionisGate {
|
|
|
499
562
|
if (verdict === "ALLOW" && !canExecute) {
|
|
500
563
|
return FailClosedDecision.create(captured.intentHash, "AUTHORITY_GRANT_MISSING");
|
|
501
564
|
}
|
|
502
|
-
return
|
|
565
|
+
return immutableDecisionGate({
|
|
503
566
|
verdict,
|
|
504
567
|
decisionId: parsed.decision_id,
|
|
505
568
|
dossierId: parsed.dossier_id,
|
|
@@ -513,10 +576,30 @@ export class DecionisGate {
|
|
|
513
576
|
: null,
|
|
514
577
|
failClosed: parsed.status === "ERROR",
|
|
515
578
|
...verification,
|
|
579
|
+
...routing,
|
|
516
580
|
...(evidence === undefined ? {} : { evidence }),
|
|
517
581
|
...(managedEscalation === undefined ? {} : { managedEscalation }),
|
|
518
582
|
});
|
|
519
583
|
}
|
|
584
|
+
static escalationRequirementFromWire(wire) {
|
|
585
|
+
return {
|
|
586
|
+
requirementId: wire.requirement_id,
|
|
587
|
+
expiresAt: wire.expires_at,
|
|
588
|
+
selector: wire.selector === null
|
|
589
|
+
? null
|
|
590
|
+
: {
|
|
591
|
+
kind: wire.selector.kind,
|
|
592
|
+
...(wire.selector.role_id === undefined ? {} : { roleId: wire.selector.role_id }),
|
|
593
|
+
},
|
|
594
|
+
verification: wire.verification === null
|
|
595
|
+
? null
|
|
596
|
+
: {
|
|
597
|
+
provider: wire.verification.provider,
|
|
598
|
+
methods: [...wire.verification.methods],
|
|
599
|
+
level: wire.verification.level,
|
|
600
|
+
},
|
|
601
|
+
};
|
|
602
|
+
}
|
|
520
603
|
initialManagedState(captured, response, requested) {
|
|
521
604
|
const managed = response.managed_escalation ?? undefined;
|
|
522
605
|
if (managed === undefined) {
|
|
@@ -650,7 +733,7 @@ export class DecionisGate {
|
|
|
650
733
|
? ["CANCELLED"]
|
|
651
734
|
: ["MANAGED_ESCALATION_FAILED"];
|
|
652
735
|
const codes = status.reasonCodes.length === 0 ? fallback : status.reasonCodes;
|
|
653
|
-
return
|
|
736
|
+
return immutableDecisionGate({
|
|
654
737
|
verdict: "BLOCK",
|
|
655
738
|
decisionId: pending.decisionId,
|
|
656
739
|
dossierId: pending.dossierId,
|
|
@@ -662,7 +745,7 @@ export class DecionisGate {
|
|
|
662
745
|
});
|
|
663
746
|
}
|
|
664
747
|
expiredWaitDecision(captured, pending, escalation) {
|
|
665
|
-
return
|
|
748
|
+
return immutableDecisionGate({
|
|
666
749
|
verdict: "BLOCK",
|
|
667
750
|
decisionId: pending.decisionId,
|
|
668
751
|
dossierId: pending.dossierId,
|
|
@@ -679,7 +762,7 @@ export class DecionisGate {
|
|
|
679
762
|
});
|
|
680
763
|
}
|
|
681
764
|
failedWaitDecision(captured, pending, escalation, reasonCode) {
|
|
682
|
-
return
|
|
765
|
+
return immutableDecisionGate({
|
|
683
766
|
verdict: "BLOCK",
|
|
684
767
|
decisionId: pending.decisionId,
|
|
685
768
|
dossierId: pending.dossierId,
|
|
@@ -899,15 +982,18 @@ export class DecionisGate {
|
|
|
899
982
|
}
|
|
900
983
|
/**
|
|
901
984
|
* The contract returns an `ERROR` decision body on 409 and 503 so the
|
|
902
|
-
* refusal is evidence-bearing
|
|
985
|
+
* refusal is evidence-bearing, or, for a proof it turned away before any
|
|
986
|
+
* evaluation (an attestation or a signed signal it could not verify), a
|
|
987
|
+
* 409 with a bare `{ "error": <code> }` whose code becomes the reason.
|
|
988
|
+
* Anything else fails closed generically, whatever the body says.
|
|
903
989
|
*/
|
|
904
|
-
static failedResponse(captured, text) {
|
|
990
|
+
static failedResponse(captured, text, status) {
|
|
905
991
|
try {
|
|
906
992
|
const parsed = AuthorityResponseSchema.parse(JSON.parse(text));
|
|
907
993
|
if (parsed.status !== "ERROR" || parsed.action_hash !== captured.intentHash) {
|
|
908
994
|
return FailClosedDecision.create(captured.intentHash, "AUTHORITY_REQUEST_FAILED");
|
|
909
995
|
}
|
|
910
|
-
return
|
|
996
|
+
return immutableDecisionGate({
|
|
911
997
|
verdict: "BLOCK",
|
|
912
998
|
decisionId: parsed.decision_id,
|
|
913
999
|
dossierId: parsed.dossier_id,
|
|
@@ -918,7 +1004,24 @@ export class DecionisGate {
|
|
|
918
1004
|
});
|
|
919
1005
|
}
|
|
920
1006
|
catch {
|
|
921
|
-
return FailClosedDecision.create(captured.intentHash, "AUTHORITY_REQUEST_FAILED");
|
|
1007
|
+
return FailClosedDecision.create(captured.intentHash, (status === 409 ? DecionisGate.proofRefusalCode(text) : null) ?? "AUTHORITY_REQUEST_FAILED");
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
/** The code of a refused proof, when the body is exactly `{ "error": <code> }` and the code is one. */
|
|
1011
|
+
static proofRefusalCode(text) {
|
|
1012
|
+
try {
|
|
1013
|
+
const parsed = JSON.parse(text);
|
|
1014
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
1015
|
+
return null;
|
|
1016
|
+
const code = parsed.error;
|
|
1017
|
+
return Object.keys(parsed).length === 1 &&
|
|
1018
|
+
typeof code === "string" &&
|
|
1019
|
+
PROOF_REFUSAL_CODE.test(code)
|
|
1020
|
+
? code
|
|
1021
|
+
: null;
|
|
1022
|
+
}
|
|
1023
|
+
catch {
|
|
1024
|
+
return null;
|
|
922
1025
|
}
|
|
923
1026
|
}
|
|
924
1027
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecionisGate.js","sourceRoot":"","sources":["../../src/decision/DecionisGate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DecionisGate.js","sourceRoot":"","sources":["../../src/decision/DecionisGate.ts"],"names":[],"mappings":"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"}
|