@decionis/agent-safe-pipeline 0.1.3 → 0.1.4
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 +318 -16
- package/dist/Index.d.ts +1 -0
- package/dist/Index.d.ts.map +1 -1
- package/dist/Index.js +1 -0
- package/dist/Index.js.map +1 -1
- package/dist/approval/PresenceApprovalCoordinator.d.ts +25 -0
- package/dist/approval/PresenceApprovalCoordinator.d.ts.map +1 -1
- package/dist/approval/PresenceApprovalCoordinator.js +54 -6
- package/dist/approval/PresenceApprovalCoordinator.js.map +1 -1
- package/dist/audit/AuditRecorder.d.ts +122 -0
- package/dist/audit/AuditRecorder.d.ts.map +1 -0
- package/dist/audit/AuditRecorder.js +312 -0
- package/dist/audit/AuditRecorder.js.map +1 -0
- package/dist/decision/DecionisGate.d.ts +91 -2
- package/dist/decision/DecionisGate.d.ts.map +1 -1
- package/dist/decision/DecionisGate.js +793 -44
- package/dist/decision/DecionisGate.js.map +1 -1
- package/dist/decision/DecisionAuthority.d.ts +50 -1
- package/dist/decision/DecisionAuthority.d.ts.map +1 -1
- package/dist/decision/DecisionAuthority.js.map +1 -1
- package/dist/decision/FixtureDecisionAuthority.d.ts +27 -1
- package/dist/decision/FixtureDecisionAuthority.d.ts.map +1 -1
- package/dist/decision/FixtureDecisionAuthority.js +47 -0
- package/dist/decision/FixtureDecisionAuthority.js.map +1 -1
- package/dist/decision/ImmutableGateDecision.d.ts.map +1 -1
- package/dist/decision/ImmutableGateDecision.js +18 -0
- package/dist/decision/ImmutableGateDecision.js.map +1 -1
- package/dist/execution/ActionRegistry.d.ts +37 -0
- package/dist/execution/ActionRegistry.d.ts.map +1 -1
- package/dist/execution/ActionRegistry.js +75 -1
- package/dist/execution/ActionRegistry.js.map +1 -1
- package/dist/execution/AuthorizationVerifier.d.ts +29 -0
- package/dist/execution/AuthorizationVerifier.d.ts.map +1 -1
- package/dist/execution/AuthorizationVerifier.js +126 -25
- package/dist/execution/AuthorizationVerifier.js.map +1 -1
- package/dist/execution/SafeExecutor.d.ts +72 -7
- package/dist/execution/SafeExecutor.d.ts.map +1 -1
- package/dist/execution/SafeExecutor.js +253 -17
- package/dist/execution/SafeExecutor.js.map +1 -1
- package/dist/intent/CanonicalIntentHasher.d.ts +1 -1
- package/dist/intent/CanonicalIntentHasher.d.ts.map +1 -1
- package/dist/intent/CanonicalIntentHasher.js +6 -2
- package/dist/intent/CanonicalIntentHasher.js.map +1 -1
- package/dist/intent/ExecutionIntent.d.ts +14 -2
- package/dist/intent/ExecutionIntent.d.ts.map +1 -1
- package/dist/intent/ExecutionIntent.js +7 -0
- package/dist/intent/ExecutionIntent.js.map +1 -1
- package/dist/intent/IntentCapture.d.ts +5 -0
- package/dist/intent/IntentCapture.d.ts.map +1 -1
- package/dist/intent/IntentCapture.js +12 -1
- package/dist/intent/IntentCapture.js.map +1 -1
- package/dist/shadow/ShadowPipeline.d.ts +75 -5
- package/dist/shadow/ShadowPipeline.d.ts.map +1 -1
- package/dist/shadow/ShadowPipeline.js +157 -7
- package/dist/shadow/ShadowPipeline.js.map +1 -1
- package/dist/testing/Index.d.ts +12 -0
- package/dist/testing/Index.d.ts.map +1 -0
- package/dist/testing/Index.js +12 -0
- package/dist/testing/Index.js.map +1 -0
- package/dist/testing/LocalAuthority.d.ts +203 -0
- package/dist/testing/LocalAuthority.d.ts.map +1 -0
- package/dist/testing/LocalAuthority.js +799 -0
- package/dist/testing/LocalAuthority.js.map +1 -0
- package/dist/testing/LocalPresence.d.ts +210 -0
- package/dist/testing/LocalPresence.d.ts.map +1 -0
- package/dist/testing/LocalPresence.js +473 -0
- package/dist/testing/LocalPresence.js.map +1 -0
- package/package.json +40 -4
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type LocalPresence } from "./LocalPresence.js";
|
|
3
|
+
export declare const LOCAL_AUTHORITY_API_KEY = "test-key";
|
|
4
|
+
export declare const AUTONOMOUS_LIMIT_MINOR = 10000;
|
|
5
|
+
export declare const HUMAN_LIMIT_MINOR = 100000;
|
|
6
|
+
/** `ExecutionAuthorityRequest`: the binding plus hash, mode, evidence, and managed constraints. */
|
|
7
|
+
declare const AuthorityRequestSchema: z.ZodObject<{
|
|
8
|
+
intent_hash: z.ZodString;
|
|
9
|
+
mode: z.ZodEnum<{
|
|
10
|
+
ENFORCEMENT: "ENFORCEMENT";
|
|
11
|
+
SHADOW: "SHADOW";
|
|
12
|
+
}>;
|
|
13
|
+
evidence: z.ZodOptional<z.ZodObject<{
|
|
14
|
+
humanApproval: z.ZodOptional<z.ZodObject<{
|
|
15
|
+
provider: z.ZodLiteral<"presence">;
|
|
16
|
+
requestId: z.ZodString;
|
|
17
|
+
receiptDossierId: z.ZodString;
|
|
18
|
+
}, z.core.$strict>>;
|
|
19
|
+
}, z.core.$strict>>;
|
|
20
|
+
escalation: z.ZodOptional<z.ZodObject<{
|
|
21
|
+
mode: z.ZodLiteral<"MANAGED">;
|
|
22
|
+
approver: z.ZodOptional<z.ZodObject<{
|
|
23
|
+
principal_id: z.ZodOptional<z.ZodString>;
|
|
24
|
+
role_id: z.ZodOptional<z.ZodString>;
|
|
25
|
+
}, z.core.$strict>>;
|
|
26
|
+
verification_requirements: z.ZodOptional<z.ZodObject<{
|
|
27
|
+
methods: z.ZodArray<z.ZodEnum<{
|
|
28
|
+
WEBAUTHN: "WEBAUTHN";
|
|
29
|
+
ACTIVE_LIVENESS: "ACTIVE_LIVENESS";
|
|
30
|
+
}>>;
|
|
31
|
+
level: z.ZodOptional<z.ZodEnum<{
|
|
32
|
+
STANDARD: "STANDARD";
|
|
33
|
+
HIGH_CONFIDENCE: "HIGH_CONFIDENCE";
|
|
34
|
+
}>>;
|
|
35
|
+
}, z.core.$strict>>;
|
|
36
|
+
}, z.core.$strict>>;
|
|
37
|
+
protocol_version: z.ZodLiteral<"agent-safe.intent/1">;
|
|
38
|
+
tenant_id: z.ZodUUID;
|
|
39
|
+
intent_id: z.ZodUUID;
|
|
40
|
+
captured_at: z.ZodISODateTime;
|
|
41
|
+
expires_at: z.ZodISODateTime;
|
|
42
|
+
actor: z.ZodObject<{
|
|
43
|
+
id: z.ZodString;
|
|
44
|
+
type: z.ZodString;
|
|
45
|
+
runtime: z.ZodOptional<z.ZodString>;
|
|
46
|
+
trust_level: z.ZodOptional<z.ZodString>;
|
|
47
|
+
}, z.core.$strict>;
|
|
48
|
+
action: z.ZodObject<{
|
|
49
|
+
type: z.ZodString;
|
|
50
|
+
resource: z.ZodString;
|
|
51
|
+
parameters: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
52
|
+
}, z.core.$strict>;
|
|
53
|
+
context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
54
|
+
downstream_target: z.ZodObject<{
|
|
55
|
+
system: z.ZodString;
|
|
56
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
57
|
+
operation: z.ZodString;
|
|
58
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strict>;
|
|
60
|
+
}, z.core.$strict>;
|
|
61
|
+
export type LocalAuthorityRequest = z.infer<typeof AuthorityRequestSchema>;
|
|
62
|
+
type Verdict = "ALLOW" | "ESCALATE" | "BLOCK";
|
|
63
|
+
type ManagedStatus = "PENDING_PRESENCE" | "PRESENCE_REQUESTED" | "AWAITING_APPROVER" | "PRESENCE_VERIFIED" | "REAUTHORIZING" | "GRANT_READY" | "EXPIRED" | "REJECTED" | "BLOCKED" | "CANCELLED" | "FAILED";
|
|
64
|
+
type LifecycleEntry = ManagedStatus | {
|
|
65
|
+
status: ManagedStatus;
|
|
66
|
+
reasonCodes?: string[];
|
|
67
|
+
};
|
|
68
|
+
type Decision = Record<string, unknown>;
|
|
69
|
+
/** Verdict for an intent evaluated without evidence; evidence handling stays generic. */
|
|
70
|
+
export type LocalAuthorityPolicy = (request: LocalAuthorityRequest) => Verdict;
|
|
71
|
+
export interface LocalRouteOverride {
|
|
72
|
+
readonly status?: number;
|
|
73
|
+
readonly body?: unknown;
|
|
74
|
+
readonly transform?: (body: unknown) => unknown;
|
|
75
|
+
readonly delayMs?: number;
|
|
76
|
+
readonly truncateTo?: number;
|
|
77
|
+
readonly destroy?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export type LocalAuthorityRoute = "enforce" | "status" | "claim" | "finalize";
|
|
80
|
+
export interface LocalAuthorityRequestRecord {
|
|
81
|
+
readonly method: string;
|
|
82
|
+
readonly path: string;
|
|
83
|
+
readonly headers: Readonly<Record<string, string | null>>;
|
|
84
|
+
body: unknown;
|
|
85
|
+
recomputedHash: string | null;
|
|
86
|
+
response: {
|
|
87
|
+
readonly status: number | null;
|
|
88
|
+
readonly body: unknown;
|
|
89
|
+
} | null;
|
|
90
|
+
readonly at: string;
|
|
91
|
+
}
|
|
92
|
+
export interface LocalGrantRecord {
|
|
93
|
+
readonly jti: string;
|
|
94
|
+
readonly tenantId: string;
|
|
95
|
+
readonly actorId: string;
|
|
96
|
+
readonly action: string;
|
|
97
|
+
readonly audience: string;
|
|
98
|
+
readonly decisionId: string;
|
|
99
|
+
readonly dossierId: string;
|
|
100
|
+
readonly intentHash: string;
|
|
101
|
+
readonly issuedAt: number;
|
|
102
|
+
readonly expiresAt: number;
|
|
103
|
+
readonly nonce: string;
|
|
104
|
+
readonly bindingDigest: string;
|
|
105
|
+
/** Present for direct grants issued on client-supplied evidence; null for managed grants. */
|
|
106
|
+
readonly receiptDossierId: string | null;
|
|
107
|
+
claimed: boolean;
|
|
108
|
+
claimToken: string | null;
|
|
109
|
+
correlationId: string | null;
|
|
110
|
+
consumedBy: string | null;
|
|
111
|
+
finalized: "COMMITTED" | "FAILED" | "INDETERMINATE" | null;
|
|
112
|
+
}
|
|
113
|
+
export interface LocalManagedEscalationRecord {
|
|
114
|
+
readonly escalationId: string;
|
|
115
|
+
readonly request: LocalAuthorityRequest;
|
|
116
|
+
/** The `LocalPresence` request this escalation is orchestrated through, if any. */
|
|
117
|
+
readonly presenceRequestId: string | null;
|
|
118
|
+
/** Scripted statuses take precedence over orchestration; used to test client state handling. */
|
|
119
|
+
lifecycle: LifecycleEntry[] | null;
|
|
120
|
+
lookup: number;
|
|
121
|
+
status: ManagedStatus;
|
|
122
|
+
reasonCodes: string[];
|
|
123
|
+
finalDecision: Decision | null;
|
|
124
|
+
readonly initialDecision: Decision;
|
|
125
|
+
}
|
|
126
|
+
export interface LocalAuthorityOptions {
|
|
127
|
+
readonly apiKey?: string;
|
|
128
|
+
/** Verifies direct evidence and hosts managed escalations. */
|
|
129
|
+
readonly presence?: LocalPresence;
|
|
130
|
+
/** Legacy hook used when no `presence` is configured. */
|
|
131
|
+
readonly verifyReceipt?: (approval: {
|
|
132
|
+
readonly requestId: string;
|
|
133
|
+
readonly receiptDossierId: string;
|
|
134
|
+
}, intentHash: string) => boolean;
|
|
135
|
+
readonly policy?: LocalAuthorityPolicy;
|
|
136
|
+
/** Subject routed to for a managed escalation without an approver principal. */
|
|
137
|
+
readonly managedApproverId?: string;
|
|
138
|
+
readonly clock?: () => number;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Independent canonicalization: keys sorted by UTF-16 code unit, values encoded
|
|
142
|
+
* with JSON.stringify semantics. This deliberately does not import the
|
|
143
|
+
* package's hasher so the two implementations check each other.
|
|
144
|
+
*/
|
|
145
|
+
export declare function stableStringify(value: unknown): string;
|
|
146
|
+
export declare function hashBinding(binding: unknown): string;
|
|
147
|
+
export declare class LocalAuthority {
|
|
148
|
+
/** Every request seen, oldest first, with bounded bodies and the response given. */
|
|
149
|
+
readonly requests: LocalAuthorityRequestRecord[];
|
|
150
|
+
/** Issued grants keyed by execution token. */
|
|
151
|
+
readonly grants: Map<string, LocalGrantRecord>;
|
|
152
|
+
/** Managed escalations keyed by their opaque identifier. */
|
|
153
|
+
readonly escalations: Map<string, LocalManagedEscalationRecord>;
|
|
154
|
+
private readonly apiKey;
|
|
155
|
+
private readonly presence;
|
|
156
|
+
private readonly legacyVerifyReceipt;
|
|
157
|
+
private readonly policy;
|
|
158
|
+
private readonly managedApproverId;
|
|
159
|
+
private readonly clock;
|
|
160
|
+
private readonly overrides;
|
|
161
|
+
private readonly managedByIntent;
|
|
162
|
+
private nextManagedLifecycle;
|
|
163
|
+
private decisions;
|
|
164
|
+
private server;
|
|
165
|
+
private port;
|
|
166
|
+
constructor(options?: LocalAuthorityOptions);
|
|
167
|
+
get baseUrl(): string;
|
|
168
|
+
start(): Promise<void>;
|
|
169
|
+
stop(): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Alters the next response on one route only. `transform` receives the
|
|
172
|
+
* computed body; `body` replaces it (an object or a raw string); `status`,
|
|
173
|
+
* `delayMs`, `truncateTo`, and `destroy` shape the transport behavior.
|
|
174
|
+
*/
|
|
175
|
+
scriptOnce(route: LocalAuthorityRoute, override: LocalRouteOverride): void;
|
|
176
|
+
/** Statuses returned, in order, for the next managed escalation instead of orchestration. */
|
|
177
|
+
scriptNextManagedLifecycle(statuses: readonly LifecycleEntry[]): void;
|
|
178
|
+
private handle;
|
|
179
|
+
private enforceAndBind;
|
|
180
|
+
/** Policy plus evidence handling: a valid receipt turns an escalation into an allow. */
|
|
181
|
+
private evaluate;
|
|
182
|
+
private verifyEvidence;
|
|
183
|
+
private baseDecision;
|
|
184
|
+
private grantDecision;
|
|
185
|
+
/** Opens a managed escalation: scripted, orchestrated through LocalPresence, or default-scripted. */
|
|
186
|
+
private openManaged;
|
|
187
|
+
/** Creates the Presence request the way Decionis does: bound structurally to the intent hash. */
|
|
188
|
+
private requestPresence;
|
|
189
|
+
private managedStatus;
|
|
190
|
+
private scripted;
|
|
191
|
+
/** Orchestrated state machine, mirroring Decionis's transitions against Presence. */
|
|
192
|
+
private advance;
|
|
193
|
+
private cancelManaged;
|
|
194
|
+
private claim;
|
|
195
|
+
private finalize;
|
|
196
|
+
/** Recomputes the hash independently and applies the contract's time rules. */
|
|
197
|
+
private assertBinding;
|
|
198
|
+
private respond;
|
|
199
|
+
private send;
|
|
200
|
+
private static isTerminal;
|
|
201
|
+
}
|
|
202
|
+
export {};
|
|
203
|
+
//# sourceMappingURL=LocalAuthority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalAuthority.d.ts","sourceRoot":"","sources":["../../src/testing/LocalAuthority.ts"],"names":[],"mappings":"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"}
|