@decionis/agent-safe-pipeline 0.1.3 → 0.2.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 +477 -16
- package/dist/Index.d.ts +9 -0
- package/dist/Index.d.ts.map +1 -1
- package/dist/Index.js +8 -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/CreateGate.d.ts +123 -0
- package/dist/decision/CreateGate.d.ts.map +1 -0
- package/dist/decision/CreateGate.js +211 -0
- package/dist/decision/CreateGate.js.map +1 -0
- package/dist/decision/DecionisGate.d.ts +109 -3
- package/dist/decision/DecionisGate.d.ts.map +1 -1
- package/dist/decision/DecionisGate.js +823 -46
- package/dist/decision/DecionisGate.js.map +1 -1
- package/dist/decision/DecisionAuthority.d.ts +76 -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 +26 -0
- package/dist/decision/ImmutableGateDecision.js.map +1 -1
- package/dist/decision/Provision.d.ts +33 -0
- package/dist/decision/Provision.d.ts.map +1 -0
- package/dist/decision/Provision.js +116 -0
- package/dist/decision/Provision.js.map +1 -0
- package/dist/decision/ShadowGate.d.ts +31 -0
- package/dist/decision/ShadowGate.d.ts.map +1 -0
- package/dist/decision/ShadowGate.js +79 -0
- package/dist/decision/ShadowGate.js.map +1 -0
- package/dist/execution/ActionRegistry.d.ts +66 -0
- package/dist/execution/ActionRegistry.d.ts.map +1 -1
- package/dist/execution/ActionRegistry.js +110 -1
- package/dist/execution/ActionRegistry.js.map +1 -1
- package/dist/execution/AuthorizationVerifier.d.ts +149 -1
- package/dist/execution/AuthorizationVerifier.d.ts.map +1 -1
- package/dist/execution/AuthorizationVerifier.js +302 -27
- package/dist/execution/AuthorizationVerifier.js.map +1 -1
- package/dist/execution/SafeExecutor.d.ts +102 -7
- package/dist/execution/SafeExecutor.d.ts.map +1 -1
- package/dist/execution/SafeExecutor.js +288 -17
- package/dist/execution/SafeExecutor.js.map +1 -1
- package/dist/http/ClientIdentification.d.ts +22 -0
- package/dist/http/ClientIdentification.d.ts.map +1 -0
- package/dist/http/ClientIdentification.js +44 -0
- package/dist/http/ClientIdentification.js.map +1 -0
- package/dist/http/Credential.d.ts +17 -0
- package/dist/http/Credential.d.ts.map +1 -0
- package/dist/http/Credential.js +5 -0
- package/dist/http/Credential.js.map +1 -0
- package/dist/http/StoredCredentials.d.ts +34 -0
- package/dist/http/StoredCredentials.d.ts.map +1 -0
- package/dist/http/StoredCredentials.js +85 -0
- package/dist/http/StoredCredentials.js.map +1 -0
- package/dist/intent/CanonicalIntentHasher.d.ts +1 -1
- package/dist/intent/CanonicalIntentHasher.d.ts.map +1 -1
- package/dist/intent/CanonicalIntentHasher.js +9 -2
- package/dist/intent/CanonicalIntentHasher.js.map +1 -1
- package/dist/intent/ExecutionIntent.d.ts +26 -2
- package/dist/intent/ExecutionIntent.d.ts.map +1 -1
- package/dist/intent/ExecutionIntent.js +11 -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 +15 -1
- package/dist/intent/IntentCapture.js.map +1 -1
- package/dist/report/DecisionReport.d.ts +22 -0
- package/dist/report/DecisionReport.d.ts.map +1 -0
- package/dist/report/DecisionReport.js +37 -0
- package/dist/report/DecisionReport.js.map +1 -0
- package/dist/report/DossierReport.d.ts +43 -0
- package/dist/report/DossierReport.d.ts.map +1 -0
- package/dist/report/DossierReport.js +130 -0
- package/dist/report/DossierReport.js.map +1 -0
- package/dist/report/HostedOutcome.d.ts +18 -0
- package/dist/report/HostedOutcome.d.ts.map +1 -0
- package/dist/report/HostedOutcome.js +24 -0
- package/dist/report/HostedOutcome.js.map +1 -0
- 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 +292 -0
- package/dist/testing/LocalAuthority.d.ts.map +1 -0
- package/dist/testing/LocalAuthority.js +1124 -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
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import type { GateResult, HumanApprovalGate } from "@decionis/presence-node";
|
|
2
|
+
import type { AuditRecorder } from "../audit/AuditRecorder.js";
|
|
2
3
|
import type { DecisionAuthority, GateDecision } from "../decision/DecisionAuthority.js";
|
|
3
4
|
import type { CapturedIntent } from "../intent/ExecutionIntent.js";
|
|
4
5
|
export type PresenceGateResult = GateResult;
|
|
5
6
|
export type PresenceApprovalClient = Pick<HumanApprovalGate, "gate" | "outcome">;
|
|
7
|
+
/** Verification requirements Presence enforces for the approval ceremony (docs/22). */
|
|
8
|
+
export type PresenceVerificationRequirements = NonNullable<Parameters<HumanApprovalGate["gate"]>[0]["requirements"]>;
|
|
6
9
|
export interface PresenceApprovalCoordinatorOptions {
|
|
10
|
+
/** Optional bounded lifecycle audit recorder. */
|
|
11
|
+
readonly audit?: AuditRecorder;
|
|
12
|
+
/**
|
|
13
|
+
* Ceremony Presence must complete before it seals a receipt, such as WebAuthn
|
|
14
|
+
* alone or WebAuthn with active liveness. Omitted, Presence applies its
|
|
15
|
+
* default standard-confidence device proof.
|
|
16
|
+
*/
|
|
17
|
+
readonly requirements?: PresenceVerificationRequirements;
|
|
18
|
+
/** Approval-request lifetime in seconds (30-600); omitted, Presence applies its default. */
|
|
19
|
+
readonly ttlSeconds?: number;
|
|
7
20
|
/** Maximum number of outcome lookups after Presence returns HUMAN_REQUIRED. */
|
|
8
21
|
readonly maxAttempts?: number;
|
|
9
22
|
/** Initial exponential-backoff delay in milliseconds. */
|
|
@@ -34,6 +47,9 @@ export declare class PresenceApprovalCoordinator {
|
|
|
34
47
|
private readonly organization;
|
|
35
48
|
private readonly approverId;
|
|
36
49
|
private readonly polling;
|
|
50
|
+
private readonly audit;
|
|
51
|
+
private readonly requirements;
|
|
52
|
+
private readonly ttlSeconds;
|
|
37
53
|
constructor(presence: PresenceApprovalClient, authority: DecisionAuthority, organization: string, approverId: string, options?: PresenceApprovalCoordinatorOptions);
|
|
38
54
|
request(captured: CapturedIntent): Promise<PresenceGateResult>;
|
|
39
55
|
resolveAndReauthorize(captured: CapturedIntent, result: PresenceGateResult, options?: PresenceResolutionOptions): Promise<GateDecision>;
|
|
@@ -49,7 +65,16 @@ export declare class PresenceApprovalCoordinator {
|
|
|
49
65
|
private requestIdOf;
|
|
50
66
|
private evidenceOf;
|
|
51
67
|
private boundedIdentifier;
|
|
68
|
+
private recordPresence;
|
|
52
69
|
private isRecord;
|
|
70
|
+
/**
|
|
71
|
+
* Presence replays a sealed answer for a repeated idempotency key, so the key
|
|
72
|
+
* must identify exactly one captured intent for one approver: a re-captured
|
|
73
|
+
* intent has a new hash and must get a new request. The digest keeps the key
|
|
74
|
+
* inside Presence's `[A-Za-z0-9._:-]{8,128}` alphabet whatever the runtime's
|
|
75
|
+
* business key or the approver identity contain.
|
|
76
|
+
*/
|
|
77
|
+
static presenceIdempotencyKey(captured: CapturedIntent, approverId: string): string;
|
|
53
78
|
private static pollingConfiguration;
|
|
54
79
|
private static sleep;
|
|
55
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresenceApprovalCoordinator.d.ts","sourceRoot":"","sources":["../../src/approval/PresenceApprovalCoordinator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PresenceApprovalCoordinator.d.ts","sourceRoot":"","sources":["../../src/approval/PresenceApprovalCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
1
2
|
import { FailClosedDecision } from "../decision/DecisionAuthority.js";
|
|
3
|
+
const MIN_PRESENCE_TTL_SECONDS = 30;
|
|
4
|
+
const MAX_PRESENCE_TTL_SECONDS = 600;
|
|
2
5
|
const DEFAULT_MAX_ATTEMPTS = 20;
|
|
3
6
|
const DEFAULT_INITIAL_DELAY_MS = 250;
|
|
4
7
|
const DEFAULT_MAX_DELAY_MS = 2_000;
|
|
@@ -18,21 +21,37 @@ export class PresenceApprovalCoordinator {
|
|
|
18
21
|
organization;
|
|
19
22
|
approverId;
|
|
20
23
|
polling;
|
|
24
|
+
audit;
|
|
25
|
+
requirements;
|
|
26
|
+
ttlSeconds;
|
|
21
27
|
constructor(presence, authority, organization, approverId, options = {}) {
|
|
22
28
|
this.presence = presence;
|
|
23
29
|
this.authority = authority;
|
|
24
30
|
this.organization = organization;
|
|
25
31
|
this.approverId = approverId;
|
|
26
32
|
this.polling = PresenceApprovalCoordinator.pollingConfiguration(options);
|
|
33
|
+
this.audit = options.audit;
|
|
34
|
+
this.requirements = options.requirements;
|
|
35
|
+
if (options.ttlSeconds !== undefined &&
|
|
36
|
+
(!Number.isInteger(options.ttlSeconds) ||
|
|
37
|
+
options.ttlSeconds < MIN_PRESENCE_TTL_SECONDS ||
|
|
38
|
+
options.ttlSeconds > MAX_PRESENCE_TTL_SECONDS)) {
|
|
39
|
+
throw new Error("PRESENCE_TTL_INVALID");
|
|
40
|
+
}
|
|
41
|
+
this.ttlSeconds = options.ttlSeconds;
|
|
27
42
|
}
|
|
28
43
|
async request(captured) {
|
|
29
44
|
try {
|
|
45
|
+
// `intentHash` is the structural binding Presence seals into the envelope
|
|
46
|
+
// when the SDK supports it; the display field below stays the human copy.
|
|
47
|
+
const action = {
|
|
48
|
+
intent: captured.intent.action,
|
|
49
|
+
target: captured.intent.target,
|
|
50
|
+
surface: "agent_safe_pipeline",
|
|
51
|
+
intentHash: captured.intentHash,
|
|
52
|
+
};
|
|
30
53
|
const result = await this.presence.gate({
|
|
31
|
-
action
|
|
32
|
-
intent: captured.intent.action,
|
|
33
|
-
target: captured.intent.target,
|
|
34
|
-
surface: "agent_safe_pipeline",
|
|
35
|
-
},
|
|
54
|
+
action,
|
|
36
55
|
agent: {
|
|
37
56
|
id: captured.intent.actor.id,
|
|
38
57
|
display: captured.intent.actor.id,
|
|
@@ -49,11 +68,14 @@ export class PresenceApprovalCoordinator {
|
|
|
49
68
|
{ key: "intent_hash", label: "Intent hash", value: captured.intentHash },
|
|
50
69
|
],
|
|
51
70
|
},
|
|
52
|
-
|
|
71
|
+
...(this.requirements === undefined ? {} : { requirements: this.requirements }),
|
|
72
|
+
...(this.ttlSeconds === undefined ? {} : { ttlSeconds: this.ttlSeconds }),
|
|
73
|
+
}, PresenceApprovalCoordinator.presenceIdempotencyKey(captured, this.approverId));
|
|
53
74
|
const verdict = this.verdictOf(result);
|
|
54
75
|
if (verdict === null || (verdict === "HUMAN_REQUIRED" && this.requestIdOf(result) === null)) {
|
|
55
76
|
throw new Error("Presence returned an invalid gate response");
|
|
56
77
|
}
|
|
78
|
+
await this.recordPresence(captured, verdict === "HUMAN_REQUIRED" ? "PRESENCE_ESCALATED" : "PRESENCE_RESOLVED", verdict);
|
|
57
79
|
return result;
|
|
58
80
|
}
|
|
59
81
|
catch {
|
|
@@ -74,12 +96,14 @@ export class PresenceApprovalCoordinator {
|
|
|
74
96
|
return FailClosedDecision.create(captured.intentHash, "PRESENCE_RESPONSE_INVALID");
|
|
75
97
|
}
|
|
76
98
|
if (verdict !== "PROCEED") {
|
|
99
|
+
await this.recordPresence(captured, "PRESENCE_RESOLVED", verdict);
|
|
77
100
|
return FailClosedDecision.create(captured.intentHash, `PRESENCE_${verdict}`);
|
|
78
101
|
}
|
|
79
102
|
const evidence = this.evidenceOf(resolution.result);
|
|
80
103
|
if (evidence === null) {
|
|
81
104
|
return FailClosedDecision.create(captured.intentHash, "PRESENCE_PROOF_MISSING");
|
|
82
105
|
}
|
|
106
|
+
await this.recordPresence(captured, "PRESENCE_RESOLVED", verdict, evidence.receiptDossierId);
|
|
83
107
|
const preAuthorizationFailure = this.boundaryFailure(captured, options.signal);
|
|
84
108
|
if (preAuthorizationFailure !== null) {
|
|
85
109
|
return FailClosedDecision.create(captured.intentHash, preAuthorizationFailure);
|
|
@@ -268,9 +292,33 @@ export class PresenceApprovalCoordinator {
|
|
|
268
292
|
boundedIdentifier(value) {
|
|
269
293
|
return typeof value === "string" && value.length > 0 && value.length <= 200;
|
|
270
294
|
}
|
|
295
|
+
async recordPresence(captured, eventType, verdict, dossierId) {
|
|
296
|
+
await this.audit?.record({
|
|
297
|
+
eventType,
|
|
298
|
+
captured,
|
|
299
|
+
authority: "NON_AUTHORITATIVE",
|
|
300
|
+
...(dossierId === undefined ? {} : { dossierId }),
|
|
301
|
+
reasonCodes: [`PRESENCE_${verdict}`],
|
|
302
|
+
});
|
|
303
|
+
}
|
|
271
304
|
isRecord(value) {
|
|
272
305
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
273
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Presence replays a sealed answer for a repeated idempotency key, so the key
|
|
309
|
+
* must identify exactly one captured intent for one approver: a re-captured
|
|
310
|
+
* intent has a new hash and must get a new request. The digest keeps the key
|
|
311
|
+
* inside Presence's `[A-Za-z0-9._:-]{8,128}` alphabet whatever the runtime's
|
|
312
|
+
* business key or the approver identity contain.
|
|
313
|
+
*/
|
|
314
|
+
static presenceIdempotencyKey(captured, approverId) {
|
|
315
|
+
const digest = createHash("sha256")
|
|
316
|
+
.update(captured.intentHash)
|
|
317
|
+
.update("\u0000")
|
|
318
|
+
.update(approverId)
|
|
319
|
+
.digest("hex");
|
|
320
|
+
return `presence-${digest}`;
|
|
321
|
+
}
|
|
274
322
|
static pollingConfiguration(options) {
|
|
275
323
|
const maxAttempts = options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
|
|
276
324
|
const initialDelayMs = options.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresenceApprovalCoordinator.js","sourceRoot":"","sources":["../../src/approval/PresenceApprovalCoordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PresenceApprovalCoordinator.js","sourceRoot":"","sources":["../../src/approval/PresenceApprovalCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { GateDecision } from "../decision/DecisionAuthority.js";
|
|
2
|
+
import type { CapturedIntent } from "../intent/ExecutionIntent.js";
|
|
3
|
+
import type { JsonObject, JsonValue } from "../intent/JsonValue.js";
|
|
4
|
+
import type { VerifiedAuthorization } from "../execution/AuthorizationVerifier.js";
|
|
5
|
+
export type AuditEventType = "INTENT_CAPTURED" | "AUTHORITY_DECISION" | "AUTHORITY_FAILED_CLOSED" | "PRESENCE_ESCALATED" | "PRESENCE_RESOLVED" | "SHADOW_EVALUATED" | "GRANT_CONSUMED" | "EXECUTION_STARTED" | "EXECUTION_COMPLETED" | "EXECUTION_BLOCKED" | "EXECUTION_FAILED_BEFORE_DISPATCH" | "EXECUTION_REFUSED_AFTER_DISPATCH" | "EXECUTION_OUTCOME_UNKNOWN" | "RECONCILIATION_COMPLETED" | "RECONCILIATION_NOT_EXECUTED" | "RECONCILIATION_UNKNOWN";
|
|
6
|
+
export type AuditAuthority = "AUTHORITATIVE" | "OBSERVATIONAL" | "NON_AUTHORITATIVE";
|
|
7
|
+
export interface AuditPolicyRevision {
|
|
8
|
+
readonly policyId: string;
|
|
9
|
+
readonly revisionId: string;
|
|
10
|
+
readonly version?: string;
|
|
11
|
+
readonly digest: `sha256:${string}`;
|
|
12
|
+
}
|
|
13
|
+
export interface AuditEvaluationEvidence {
|
|
14
|
+
readonly evaluationId?: string;
|
|
15
|
+
readonly materialInputDigest?: `sha256:${string}`;
|
|
16
|
+
readonly policy?: AuditPolicyRevision;
|
|
17
|
+
readonly evidenceReference?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface AuditEventV1 {
|
|
20
|
+
readonly schemaVersion: "agent-safe.audit/1";
|
|
21
|
+
readonly eventId: string;
|
|
22
|
+
readonly occurredAt: string;
|
|
23
|
+
readonly eventType: AuditEventType;
|
|
24
|
+
readonly authority: AuditAuthority;
|
|
25
|
+
readonly correlation: {
|
|
26
|
+
readonly intentId: string;
|
|
27
|
+
readonly intentHash: string;
|
|
28
|
+
readonly correlationId?: string;
|
|
29
|
+
readonly decisionId?: string;
|
|
30
|
+
readonly dossierId?: string;
|
|
31
|
+
readonly grantId?: string;
|
|
32
|
+
};
|
|
33
|
+
readonly evaluation: {
|
|
34
|
+
readonly evaluationId: string;
|
|
35
|
+
readonly materialInputDigest: string;
|
|
36
|
+
readonly policy: AuditPolicyRevision | null;
|
|
37
|
+
readonly evidenceReference: string | null;
|
|
38
|
+
} | null;
|
|
39
|
+
readonly verdict: GateDecision["verdict"] | null;
|
|
40
|
+
readonly reasonCodes: readonly string[];
|
|
41
|
+
readonly durationMs: number | null;
|
|
42
|
+
readonly metadata: Readonly<JsonObject>;
|
|
43
|
+
}
|
|
44
|
+
export interface AuditSink {
|
|
45
|
+
write(event: AuditEventV1): Promise<void> | void;
|
|
46
|
+
}
|
|
47
|
+
export interface AuditRecordInput {
|
|
48
|
+
readonly eventType: AuditEventType;
|
|
49
|
+
readonly captured: CapturedIntent;
|
|
50
|
+
readonly authority?: AuditAuthority;
|
|
51
|
+
readonly decision?: GateDecision;
|
|
52
|
+
readonly authorization?: VerifiedAuthorization;
|
|
53
|
+
readonly decisionId?: string;
|
|
54
|
+
readonly dossierId?: string;
|
|
55
|
+
readonly grantId?: string;
|
|
56
|
+
/** Verdict for events that carry no `GateDecision`, such as shadow observations. */
|
|
57
|
+
readonly verdict?: GateDecision["verdict"];
|
|
58
|
+
readonly evaluation?: AuditEvaluationEvidence;
|
|
59
|
+
readonly reasonCodes?: readonly string[];
|
|
60
|
+
readonly durationMs?: number;
|
|
61
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
62
|
+
}
|
|
63
|
+
export interface AuditRecorderOptions {
|
|
64
|
+
readonly sink: AuditSink;
|
|
65
|
+
readonly timeoutMs?: number;
|
|
66
|
+
readonly failurePolicy?: "BEST_EFFORT" | "REQUIRE_BEFORE_EXECUTION";
|
|
67
|
+
readonly metadataAllowlist?: readonly string[];
|
|
68
|
+
readonly redactMetadata?: (key: string, value: JsonValue) => JsonValue | undefined;
|
|
69
|
+
readonly clock?: () => Date;
|
|
70
|
+
readonly createId?: () => string;
|
|
71
|
+
}
|
|
72
|
+
export interface AuditPolicyRevisionArtifact extends AuditPolicyRevision {
|
|
73
|
+
/** Opaque location or object-store version used by an authorized replay system. */
|
|
74
|
+
readonly artifactReference: string;
|
|
75
|
+
}
|
|
76
|
+
export interface AuditPolicyRevisionResolver {
|
|
77
|
+
resolve(policyId: string, revisionId: string): Promise<AuditPolicyRevisionArtifact | null> | AuditPolicyRevisionArtifact | null;
|
|
78
|
+
}
|
|
79
|
+
export type AuditPolicyVerification = {
|
|
80
|
+
readonly status: "VERIFIED";
|
|
81
|
+
readonly artifact: AuditPolicyRevisionArtifact;
|
|
82
|
+
} | {
|
|
83
|
+
readonly status: "NOT_REFERENCED";
|
|
84
|
+
readonly artifact: null;
|
|
85
|
+
} | {
|
|
86
|
+
readonly status: "MISSING" | "DIGEST_MISMATCH" | "IDENTITY_MISMATCH" | "UNAVAILABLE";
|
|
87
|
+
readonly artifact: null;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Emits immutable, redacted lifecycle records through one bounded sink call.
|
|
91
|
+
* Sink failures are converted to `false`; the recorder never retries because
|
|
92
|
+
* retries could reorder evidence or couple provider execution to sink health.
|
|
93
|
+
*/
|
|
94
|
+
export declare class AuditRecorder {
|
|
95
|
+
private readonly options;
|
|
96
|
+
private readonly timeoutMs;
|
|
97
|
+
private readonly failurePolicy;
|
|
98
|
+
private readonly metadataAllowlist;
|
|
99
|
+
private readonly clock;
|
|
100
|
+
private readonly createId;
|
|
101
|
+
constructor(options: AuditRecorderOptions);
|
|
102
|
+
get requiresDeliveryBeforeExecution(): boolean;
|
|
103
|
+
record(input: AuditRecordInput): Promise<boolean>;
|
|
104
|
+
private event;
|
|
105
|
+
private evaluation;
|
|
106
|
+
private metadata;
|
|
107
|
+
private copyJson;
|
|
108
|
+
private boundedId;
|
|
109
|
+
private validDate;
|
|
110
|
+
private static defaultAuthority;
|
|
111
|
+
private static assertIdentifier;
|
|
112
|
+
private static assertDigest;
|
|
113
|
+
private static deepFreeze;
|
|
114
|
+
}
|
|
115
|
+
/** Resolves historical policy evidence by its pinned revision, never by a mutable alias. */
|
|
116
|
+
export declare class AuditPolicyRevisionVerifier {
|
|
117
|
+
private readonly resolver;
|
|
118
|
+
private readonly timeoutMs;
|
|
119
|
+
constructor(resolver: AuditPolicyRevisionResolver, timeoutMs?: number);
|
|
120
|
+
verify(event: AuditEventV1): Promise<AuditPolicyVerification>;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=AuditRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditRecorder.d.ts","sourceRoot":"","sources":["../../src/audit/AuditRecorder.ts"],"names":[],"mappings":"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"}
|