@decionis/agent-safe-pipeline 0.3.4 → 0.3.6
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 +5 -4
- package/dist/Index.d.ts +7 -0
- package/dist/Index.d.ts.map +1 -1
- package/dist/Index.js +7 -0
- package/dist/Index.js.map +1 -1
- package/dist/audit/AuditRecorder.d.ts +1 -1
- package/dist/audit/AuditRecorder.d.ts.map +1 -1
- package/dist/audit/AuditRecorder.js.map +1 -1
- package/dist/decision/DecionisGate.d.ts +11 -1
- package/dist/decision/DecionisGate.d.ts.map +1 -1
- package/dist/decision/DecionisGate.js +52 -4
- package/dist/decision/DecionisGate.js.map +1 -1
- package/dist/decision/DecisionAuthority.d.ts +15 -1
- package/dist/decision/DecisionAuthority.d.ts.map +1 -1
- package/dist/decision/DecisionAuthority.js.map +1 -1
- package/dist/decision/edge/BundleWindow.d.ts +43 -0
- package/dist/decision/edge/BundleWindow.d.ts.map +1 -0
- package/dist/decision/edge/BundleWindow.js +41 -0
- package/dist/decision/edge/BundleWindow.js.map +1 -0
- package/dist/decision/edge/EdgeBundleManager.d.ts +87 -0
- package/dist/decision/edge/EdgeBundleManager.d.ts.map +1 -0
- package/dist/decision/edge/EdgeBundleManager.js +175 -0
- package/dist/decision/edge/EdgeBundleManager.js.map +1 -0
- package/dist/decision/edge/EdgeBundleSource.d.ts +59 -0
- package/dist/decision/edge/EdgeBundleSource.d.ts.map +1 -0
- package/dist/decision/edge/EdgeBundleSource.js +99 -0
- package/dist/decision/edge/EdgeBundleSource.js.map +1 -0
- package/dist/decision/edge/EdgeDecisionAuthority.d.ts +104 -0
- package/dist/decision/edge/EdgeDecisionAuthority.d.ts.map +1 -0
- package/dist/decision/edge/EdgeDecisionAuthority.js +197 -0
- package/dist/decision/edge/EdgeDecisionAuthority.js.map +1 -0
- package/dist/decision/edge/EdgeModule.d.ts +63 -0
- package/dist/decision/edge/EdgeModule.d.ts.map +1 -0
- package/dist/decision/edge/EdgeModule.js +147 -0
- package/dist/decision/edge/EdgeModule.js.map +1 -0
- package/dist/execution/ActionRegistry.d.ts +23 -0
- package/dist/execution/ActionRegistry.d.ts.map +1 -1
- package/dist/execution/ActionRegistry.js +32 -2
- package/dist/execution/ActionRegistry.js.map +1 -1
- package/dist/execution/AuthorizationVerifier.d.ts.map +1 -1
- package/dist/execution/AuthorizationVerifier.js +7 -2
- package/dist/execution/AuthorizationVerifier.js.map +1 -1
- package/dist/execution/LocalAuthorizationVerifier.d.ts +70 -0
- package/dist/execution/LocalAuthorizationVerifier.d.ts.map +1 -0
- package/dist/execution/LocalAuthorizationVerifier.js +119 -0
- package/dist/execution/LocalAuthorizationVerifier.js.map +1 -0
- package/dist/execution/PostgresReplayStore.d.ts +57 -0
- package/dist/execution/PostgresReplayStore.d.ts.map +1 -0
- package/dist/execution/PostgresReplayStore.js +81 -0
- package/dist/execution/PostgresReplayStore.js.map +1 -0
- package/dist/execution/ReplayStore.d.ts +14 -0
- package/dist/execution/ReplayStore.d.ts.map +1 -1
- package/dist/execution/ReplayStore.js +8 -0
- package/dist/execution/ReplayStore.js.map +1 -1
- package/dist/execution/SafeExecutor.d.ts +125 -3
- package/dist/execution/SafeExecutor.d.ts.map +1 -1
- package/dist/execution/SafeExecutor.js +242 -68
- package/dist/execution/SafeExecutor.js.map +1 -1
- package/dist/intent/ExecutionIntent.d.ts +32 -0
- 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/ExecutionSignals.d.ts +124 -0
- package/dist/intent/ExecutionSignals.d.ts.map +1 -0
- package/dist/intent/ExecutionSignals.js +124 -0
- package/dist/intent/ExecutionSignals.js.map +1 -0
- package/dist/intent/IntentCapture.d.ts.map +1 -1
- package/dist/intent/IntentCapture.js +9 -2
- package/dist/intent/IntentCapture.js.map +1 -1
- package/dist/testing/LocalAuthority.d.ts +17 -2
- package/dist/testing/LocalAuthority.d.ts.map +1 -1
- package/dist/testing/LocalAuthority.js +38 -1
- package/dist/testing/LocalAuthority.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafeExecutor.d.ts","sourceRoot":"","sources":["../../src/execution/SafeExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SafeExecutor.d.ts","sourceRoot":"","sources":["../../src/execution/SafeExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,114 @@
|
|
|
1
1
|
import { CanonicalIntentHasher } from "../intent/CanonicalIntentHasher.js";
|
|
2
|
+
import { boundaryOf, workloadOf } from "../intent/ExecutionSignals.js";
|
|
2
3
|
export class SafeExecutor {
|
|
3
4
|
registry;
|
|
4
5
|
verifier;
|
|
5
6
|
audit;
|
|
6
7
|
hasher = new CanonicalIntentHasher();
|
|
7
|
-
|
|
8
|
+
boundaryId;
|
|
9
|
+
workloadDigest;
|
|
10
|
+
/** The holds this executor issued and nobody has claimed, keyed by the frozen handle. */
|
|
11
|
+
holds = new WeakMap();
|
|
12
|
+
/** The holds claimed and not yet settled, with the authorization each one consumed. */
|
|
13
|
+
claims = new WeakMap();
|
|
14
|
+
attempts;
|
|
15
|
+
constructor(registry, verifier, audit, options) {
|
|
8
16
|
this.registry = registry;
|
|
9
17
|
this.verifier = verifier;
|
|
10
18
|
this.audit = audit;
|
|
19
|
+
this.boundaryId = options?.boundaryId ?? null;
|
|
20
|
+
this.workloadDigest = options?.workloadDigest ?? null;
|
|
21
|
+
this.attempts = options?.attempts ?? null;
|
|
11
22
|
}
|
|
12
23
|
async run(captured, decision) {
|
|
13
24
|
const startedAt = Date.now();
|
|
25
|
+
const refused = await this.admit(captured, decision, startedAt);
|
|
26
|
+
if (refused !== null)
|
|
27
|
+
return refused;
|
|
28
|
+
const claim = await this.consume(captured, decision, startedAt);
|
|
29
|
+
if (claim.outcome !== "CLAIMED")
|
|
30
|
+
return claim;
|
|
31
|
+
const authorization = claim.authorization;
|
|
32
|
+
const attempt = await this.registry.executeTracked(captured, authorization);
|
|
33
|
+
if (attempt.status === "FAILED_BEFORE_DISPATCH") {
|
|
34
|
+
return await this.failedBeforeDispatch(captured, decision, authorization, "HANDLER_FAILED_BEFORE_DISPATCH", startedAt, attempt.code);
|
|
35
|
+
}
|
|
36
|
+
if (attempt.status === "REFUSED_AFTER_DISPATCH") {
|
|
37
|
+
// The provider said no. That is an outcome, so it is finalized `FAILED`
|
|
38
|
+
// rather than left indeterminate, and `executed` is false rather than
|
|
39
|
+
// null: nothing about it is unknown.
|
|
40
|
+
const finalization = await this.finalize(captured, decision, authorization, "FAILED", attempt.receipt);
|
|
41
|
+
const result = {
|
|
42
|
+
outcome: "DEFINITELY_NOT_EXECUTED",
|
|
43
|
+
executed: false,
|
|
44
|
+
recovered: false,
|
|
45
|
+
reason: attempt.reason,
|
|
46
|
+
result: null,
|
|
47
|
+
authorization,
|
|
48
|
+
finalization,
|
|
49
|
+
};
|
|
50
|
+
// Stryker disable all: Audit payload mapping is covered by lifecycle event assertions.
|
|
51
|
+
await this.record({
|
|
52
|
+
eventType: "EXECUTION_REFUSED_AFTER_DISPATCH",
|
|
53
|
+
captured,
|
|
54
|
+
decision,
|
|
55
|
+
authorization,
|
|
56
|
+
reasonCodes: [attempt.reason, SafeExecutor.finalizationCode(finalization)],
|
|
57
|
+
durationMs: Date.now() - startedAt,
|
|
58
|
+
});
|
|
59
|
+
// Stryker restore all
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
if (attempt.status === "UNKNOWN_AFTER_DISPATCH") {
|
|
63
|
+
const finalization = await this.finalize(captured, decision, authorization, "INDETERMINATE", attempt.receipt);
|
|
64
|
+
const result = {
|
|
65
|
+
outcome: "UNKNOWN_AFTER_DISPATCH",
|
|
66
|
+
executed: null,
|
|
67
|
+
reason: "PROVIDER_OUTCOME_UNKNOWN",
|
|
68
|
+
result: null,
|
|
69
|
+
authorization,
|
|
70
|
+
recovery: SafeExecutor.recoveryReference(captured, authorization),
|
|
71
|
+
finalization,
|
|
72
|
+
};
|
|
73
|
+
// Stryker disable all: Audit payload mapping is covered by lifecycle event assertions.
|
|
74
|
+
await this.record({
|
|
75
|
+
eventType: "EXECUTION_OUTCOME_UNKNOWN",
|
|
76
|
+
captured,
|
|
77
|
+
decision,
|
|
78
|
+
authorization,
|
|
79
|
+
reasonCodes: [result.reason, SafeExecutor.finalizationCode(finalization)],
|
|
80
|
+
durationMs: Date.now() - startedAt,
|
|
81
|
+
});
|
|
82
|
+
// Stryker restore all
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
const finalization = await this.finalize(captured, decision, authorization, "COMMITTED", attempt.receipt);
|
|
86
|
+
const result = {
|
|
87
|
+
outcome: "COMPLETED",
|
|
88
|
+
executed: true,
|
|
89
|
+
recovered: false,
|
|
90
|
+
result: attempt.result,
|
|
91
|
+
authorization,
|
|
92
|
+
finalization,
|
|
93
|
+
};
|
|
94
|
+
// Stryker disable all: Audit payload mapping is covered by lifecycle event assertions.
|
|
95
|
+
await this.record({
|
|
96
|
+
eventType: "EXECUTION_COMPLETED",
|
|
97
|
+
captured,
|
|
98
|
+
decision,
|
|
99
|
+
authorization,
|
|
100
|
+
reasonCodes: [SafeExecutor.finalizationCode(finalization)],
|
|
101
|
+
durationMs: Date.now() - startedAt,
|
|
102
|
+
});
|
|
103
|
+
// Stryker restore all
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Every check made before a grant may be consumed, with the evidence that
|
|
108
|
+
* the intent was captured and decided. A refusal is recorded and returned;
|
|
109
|
+
* null means the decision passed, and so carries a grant.
|
|
110
|
+
*/
|
|
111
|
+
async admit(captured, decision, startedAt) {
|
|
14
112
|
// Stryker disable next-line all: Audit payload mapping is covered by lifecycle event assertions.
|
|
15
113
|
const intentRecorded = await this.record({ eventType: "INTENT_CAPTURED", captured });
|
|
16
114
|
// An observational artifact (shadow observation, serialized audit event) is
|
|
@@ -41,7 +139,23 @@ export class SafeExecutor {
|
|
|
41
139
|
if (!this.intentConforms(captured)) {
|
|
42
140
|
return await this.block(captured, decision, "INTENT_CONFORMANCE_FAILED", startedAt);
|
|
43
141
|
}
|
|
142
|
+
// Before the grant is consumed, not after: a boundary that refuses an
|
|
143
|
+
// intent must leave the authority intact for the boundary that owns it.
|
|
144
|
+
if (!this.boundaryMatches(captured)) {
|
|
145
|
+
return await this.block(captured, decision, "BOUNDARY_MISMATCH", startedAt);
|
|
146
|
+
}
|
|
147
|
+
if (!this.workloadMatches(captured)) {
|
|
148
|
+
return await this.block(captured, decision, "WORKLOAD_MISMATCH", startedAt);
|
|
149
|
+
}
|
|
44
150
|
this.registry.validate(captured);
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Consumes the grant through the verifier, checks what came back against
|
|
155
|
+
* the decision and the intent, and records the consumption and the start
|
|
156
|
+
* of execution. Nothing here dispatches.
|
|
157
|
+
*/
|
|
158
|
+
async consume(captured, decision, startedAt) {
|
|
45
159
|
let authorization;
|
|
46
160
|
try {
|
|
47
161
|
authorization = await this.verifier.verifyAndConsume(captured, decision);
|
|
@@ -90,79 +204,89 @@ export class SafeExecutor {
|
|
|
90
204
|
if (this.audit?.requiresDeliveryBeforeExecution === true && !executionRecorded) {
|
|
91
205
|
return await this.failedBeforeDispatch(captured, decision, authorization, "AUDIT_UNAVAILABLE", startedAt);
|
|
92
206
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
reasonCodes: [attempt.reason, SafeExecutor.finalizationCode(finalization)],
|
|
118
|
-
durationMs: Date.now() - startedAt,
|
|
119
|
-
});
|
|
120
|
-
// Stryker restore all
|
|
121
|
-
return result;
|
|
207
|
+
return { outcome: "CLAIMED", authorization };
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Admits a decision exactly as `run` would and holds its grant instead of
|
|
211
|
+
* consuming it. The intent, the decision and the hold are recorded; the
|
|
212
|
+
* grant stays unclaimed until `claimHeld` is called with the handle, and an
|
|
213
|
+
* unclaimed hold simply expires with its grant.
|
|
214
|
+
*/
|
|
215
|
+
async hold(captured, decision) {
|
|
216
|
+
const startedAt = Date.now();
|
|
217
|
+
const refused = await this.admit(captured, decision, startedAt);
|
|
218
|
+
if (refused !== null)
|
|
219
|
+
return refused;
|
|
220
|
+
const admitted = decision;
|
|
221
|
+
// Stryker disable all: Audit payload mapping is covered by lifecycle event assertions.
|
|
222
|
+
const heldRecorded = await this.record({
|
|
223
|
+
eventType: "GRANT_HELD",
|
|
224
|
+
captured,
|
|
225
|
+
decision,
|
|
226
|
+
durationMs: Date.now() - startedAt,
|
|
227
|
+
});
|
|
228
|
+
// Stryker restore all
|
|
229
|
+
if (this.audit?.requiresDeliveryBeforeExecution === true && !heldRecorded) {
|
|
230
|
+
return await this.block(captured, decision, "AUDIT_UNAVAILABLE", startedAt);
|
|
122
231
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
// Stryker restore all
|
|
144
|
-
return result;
|
|
232
|
+
const held = Object.freeze({
|
|
233
|
+
captured,
|
|
234
|
+
decision,
|
|
235
|
+
expiresAt: admitted.authorization.expiresAt,
|
|
236
|
+
});
|
|
237
|
+
this.holds.set(held, admitted);
|
|
238
|
+
return { outcome: "HELD", executed: false, result: null, authorization: null, held };
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Claims a held grant, once. The handle is forgotten before the verifier
|
|
242
|
+
* is asked, so a second claim of the same hold, concurrent or later, is
|
|
243
|
+
* refused here without reaching the authority; a handle this executor did
|
|
244
|
+
* not issue is refused the same way. What the claim returns is checked
|
|
245
|
+
* exactly as `run` checks it.
|
|
246
|
+
*/
|
|
247
|
+
async claimHeld(held) {
|
|
248
|
+
const startedAt = Date.now();
|
|
249
|
+
const decision = this.holds.get(held);
|
|
250
|
+
if (decision === undefined) {
|
|
251
|
+
return await this.block(held.captured, held.decision, "AUTHORIZATION_INVALID", startedAt);
|
|
145
252
|
}
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
253
|
+
this.holds.delete(held);
|
|
254
|
+
const claim = await this.consume(held.captured, decision, startedAt);
|
|
255
|
+
if (claim.outcome === "CLAIMED")
|
|
256
|
+
this.claims.set(held, claim.authorization);
|
|
257
|
+
return claim;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Reports how a claimed hold ended, once: `COMMITTED` when the effect
|
|
261
|
+
* happened, `FAILED` when it definitively did not, `INDETERMINATE` when
|
|
262
|
+
* nobody can say. The terminal record names the outcome, as `run`'s do.
|
|
263
|
+
*/
|
|
264
|
+
async settleHeld(held, outcome, receipt = null) {
|
|
265
|
+
const startedAt = Date.now();
|
|
266
|
+
const authorization = this.claims.get(held);
|
|
267
|
+
if (authorization === undefined)
|
|
268
|
+
throw new Error("HELD_EXECUTION_NOT_CLAIMED");
|
|
269
|
+
this.claims.delete(held);
|
|
270
|
+
const finalization = await this.finalize(held.captured, held.decision, authorization, outcome, receipt);
|
|
271
|
+
const eventType = SafeExecutor.settledEvent(outcome);
|
|
155
272
|
// Stryker disable all: Audit payload mapping is covered by lifecycle event assertions.
|
|
156
273
|
await this.record({
|
|
157
|
-
eventType
|
|
158
|
-
captured,
|
|
159
|
-
decision,
|
|
274
|
+
eventType,
|
|
275
|
+
captured: held.captured,
|
|
276
|
+
decision: held.decision,
|
|
160
277
|
authorization,
|
|
161
278
|
reasonCodes: [SafeExecutor.finalizationCode(finalization)],
|
|
162
279
|
durationMs: Date.now() - startedAt,
|
|
163
280
|
});
|
|
164
281
|
// Stryker restore all
|
|
165
|
-
return
|
|
282
|
+
return finalization;
|
|
283
|
+
}
|
|
284
|
+
static settledEvent(outcome) {
|
|
285
|
+
if (outcome === "COMMITTED")
|
|
286
|
+
return "EXECUTION_COMPLETED";
|
|
287
|
+
if (outcome === "FAILED")
|
|
288
|
+
return "EXECUTION_REFUSED_AFTER_DISPATCH";
|
|
289
|
+
return "EXECUTION_OUTCOME_UNKNOWN";
|
|
166
290
|
}
|
|
167
291
|
/**
|
|
168
292
|
* Reports the attempt outcome to the verifier's authority, with the
|
|
@@ -198,8 +322,22 @@ export class SafeExecutor {
|
|
|
198
322
|
!this.intentConforms(captured)) {
|
|
199
323
|
return await this.block(captured, undefined, "RECOVERY_BINDING_MISMATCH", startedAt);
|
|
200
324
|
}
|
|
201
|
-
|
|
325
|
+
// The decision and grant are the caller's claim until the executor's own
|
|
326
|
+
// record confirms them; the provider is not asked about a binding that
|
|
327
|
+
// was never dispatched here.
|
|
328
|
+
let authority = "NON_AUTHORITATIVE";
|
|
329
|
+
if (this.attempts !== null) {
|
|
330
|
+
const recorded = await this.attempts.authorizationsOf(captured);
|
|
331
|
+
if (recorded.length === 0) {
|
|
332
|
+
return await this.block(captured, undefined, "RECOVERY_ATTEMPT_UNKNOWN", startedAt);
|
|
333
|
+
}
|
|
334
|
+
if (!recorded.some((candidate) => SafeExecutor.sameBinding(candidate, recovery))) {
|
|
335
|
+
return await this.block(captured, undefined, "RECOVERY_BINDING_MISMATCH", startedAt);
|
|
336
|
+
}
|
|
337
|
+
authority = "AUTHORITATIVE";
|
|
338
|
+
}
|
|
202
339
|
const authorization = SafeExecutor.authorizationFrom(recovery);
|
|
340
|
+
const reconciliation = await this.registry.reconcile(captured, recovery.idempotencyKey);
|
|
203
341
|
if (reconciliation.status === "COMPLETED") {
|
|
204
342
|
const result = {
|
|
205
343
|
outcome: "COMPLETED",
|
|
@@ -213,6 +351,7 @@ export class SafeExecutor {
|
|
|
213
351
|
eventType: "RECONCILIATION_COMPLETED",
|
|
214
352
|
captured,
|
|
215
353
|
authorization,
|
|
354
|
+
authority,
|
|
216
355
|
durationMs: Date.now() - startedAt,
|
|
217
356
|
});
|
|
218
357
|
// Stryker restore all
|
|
@@ -232,6 +371,7 @@ export class SafeExecutor {
|
|
|
232
371
|
eventType: "RECONCILIATION_NOT_EXECUTED",
|
|
233
372
|
captured,
|
|
234
373
|
authorization,
|
|
374
|
+
authority,
|
|
235
375
|
reasonCodes: [result.reason],
|
|
236
376
|
durationMs: Date.now() - startedAt,
|
|
237
377
|
});
|
|
@@ -251,6 +391,7 @@ export class SafeExecutor {
|
|
|
251
391
|
eventType: "RECONCILIATION_UNKNOWN",
|
|
252
392
|
captured,
|
|
253
393
|
authorization,
|
|
394
|
+
authority,
|
|
254
395
|
reasonCodes: [result.reason],
|
|
255
396
|
durationMs: Date.now() - startedAt,
|
|
256
397
|
});
|
|
@@ -266,6 +407,27 @@ export class SafeExecutor {
|
|
|
266
407
|
const candidate = decision;
|
|
267
408
|
return candidate.authority !== "OBSERVATIONAL" && candidate.mode !== "SHADOW";
|
|
268
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Whether this boundary is the one the intent was captured through. The
|
|
412
|
+
* boundary is read back out of the hashed context, so an intent whose
|
|
413
|
+
* boundary was edited after capture fails conformance before it reaches
|
|
414
|
+
* here, and one that never named a boundary cannot acquire one now.
|
|
415
|
+
*/
|
|
416
|
+
boundaryMatches(captured) {
|
|
417
|
+
if (this.boundaryId === null)
|
|
418
|
+
return true;
|
|
419
|
+
return boundaryOf(captured.intent.context)?.boundary_id === this.boundaryId;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Whether the workload that proposed the intent is the one running it. Like
|
|
423
|
+
* the boundary, the digest is read back out of the hashed context, so an
|
|
424
|
+
* intent whose workload was edited after capture fails conformance first.
|
|
425
|
+
*/
|
|
426
|
+
workloadMatches(captured) {
|
|
427
|
+
if (this.workloadDigest === null)
|
|
428
|
+
return true;
|
|
429
|
+
return workloadOf(captured.intent.context)?.digest === this.workloadDigest;
|
|
430
|
+
}
|
|
269
431
|
intentConforms(captured) {
|
|
270
432
|
let recomputed = null;
|
|
271
433
|
try {
|
|
@@ -291,7 +453,7 @@ export class SafeExecutor {
|
|
|
291
453
|
// Stryker restore all
|
|
292
454
|
return { outcome: "BLOCKED", executed: false, reason, result: null, authorization: null };
|
|
293
455
|
}
|
|
294
|
-
async failedBeforeDispatch(captured, decision, authorization, reason, startedAt) {
|
|
456
|
+
async failedBeforeDispatch(captured, decision, authorization, reason, startedAt, code) {
|
|
295
457
|
// The grant was consumed but no side effect was attempted.
|
|
296
458
|
const finalization = await this.finalize(captured, decision, authorization, "FAILED");
|
|
297
459
|
// Stryker disable all: Audit payload mapping is covered by lifecycle event assertions.
|
|
@@ -300,7 +462,11 @@ export class SafeExecutor {
|
|
|
300
462
|
captured,
|
|
301
463
|
decision,
|
|
302
464
|
authorization,
|
|
303
|
-
reasonCodes: [
|
|
465
|
+
reasonCodes: [
|
|
466
|
+
reason,
|
|
467
|
+
...(code === undefined ? [] : [code]),
|
|
468
|
+
SafeExecutor.finalizationCode(finalization),
|
|
469
|
+
],
|
|
304
470
|
durationMs: Date.now() - startedAt,
|
|
305
471
|
});
|
|
306
472
|
// Stryker restore all
|
|
@@ -308,6 +474,7 @@ export class SafeExecutor {
|
|
|
308
474
|
outcome: "FAILED_BEFORE_DISPATCH",
|
|
309
475
|
executed: false,
|
|
310
476
|
reason,
|
|
477
|
+
...(code === undefined ? {} : { code }),
|
|
311
478
|
result: null,
|
|
312
479
|
authorization,
|
|
313
480
|
finalization,
|
|
@@ -333,6 +500,13 @@ export class SafeExecutor {
|
|
|
333
500
|
idempotencyKey: captured.intent.idempotencyKey,
|
|
334
501
|
});
|
|
335
502
|
}
|
|
503
|
+
static sameBinding(recorded, recovery) {
|
|
504
|
+
return (recorded.decisionId === recovery.decisionId &&
|
|
505
|
+
recorded.dossierId === recovery.dossierId &&
|
|
506
|
+
recorded.grantId === recovery.grantId &&
|
|
507
|
+
recorded.intentHash === recovery.intentHash &&
|
|
508
|
+
recorded.expiresAt === recovery.expiresAt);
|
|
509
|
+
}
|
|
336
510
|
static authorizationFrom(recovery) {
|
|
337
511
|
return Object.freeze({
|
|
338
512
|
decisionId: recovery.decisionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafeExecutor.js","sourceRoot":"","sources":["../../src/execution/SafeExecutor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SafeExecutor.js","sourceRoot":"","sources":["../../src/execution/SafeExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,38 @@ export declare const TrustedIntentContextSchema: z.ZodObject<{
|
|
|
41
41
|
correlationId: z.ZodOptional<z.ZodString>;
|
|
42
42
|
expectedEffectDigest: z.ZodOptional<z.ZodString>;
|
|
43
43
|
idempotencyKey: z.ZodString;
|
|
44
|
+
signals: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
boundary: z.ZodOptional<z.ZodObject<{
|
|
46
|
+
boundary_id: z.ZodString;
|
|
47
|
+
agentsafe_version: z.ZodString;
|
|
48
|
+
protocol_version: z.ZodLiteral<"agent-safe.intent/1">;
|
|
49
|
+
deployment_type: z.ZodString;
|
|
50
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
51
|
+
conformance_version: z.ZodOptional<z.ZodString>;
|
|
52
|
+
placement: z.ZodOptional<z.ZodObject<{
|
|
53
|
+
cluster_id: z.ZodOptional<z.ZodString>;
|
|
54
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
55
|
+
region: z.ZodOptional<z.ZodString>;
|
|
56
|
+
workload_id: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
}, z.core.$strict>>;
|
|
59
|
+
workload: z.ZodOptional<z.ZodObject<{
|
|
60
|
+
runtime: z.ZodOptional<z.ZodString>;
|
|
61
|
+
artifact_type: z.ZodOptional<z.ZodString>;
|
|
62
|
+
image: z.ZodOptional<z.ZodString>;
|
|
63
|
+
digest: z.ZodOptional<z.ZodString>;
|
|
64
|
+
publisher: z.ZodOptional<z.ZodString>;
|
|
65
|
+
provenance: z.ZodObject<{
|
|
66
|
+
source: z.ZodString;
|
|
67
|
+
trust_level: z.ZodEnum<{
|
|
68
|
+
unverified: "unverified";
|
|
69
|
+
supplied: "supplied";
|
|
70
|
+
observed: "observed";
|
|
71
|
+
verified: "verified";
|
|
72
|
+
}>;
|
|
73
|
+
}, z.core.$strict>;
|
|
74
|
+
}, z.core.$strict>>;
|
|
75
|
+
}, z.core.$strict>>;
|
|
44
76
|
}, z.core.$strict>;
|
|
45
77
|
export declare const ExecutionIntentSchema: z.ZodObject<{
|
|
46
78
|
version: z.ZodLiteral<"agent-safe.intent/1">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionIntent.d.ts","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExecutionIntent.d.ts","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAanE,eAAO,MAAM,mBAAmB;;;;kBAMrB,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;;;kBAOnB,CAAC;AAEZ,eAAO,MAAM,sBAAsB;;;;;kBAOxB,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,oBAAoB,CAAC;AAElE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgB5B,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBvB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { JsonObjectSchema } from "./JsonValue.js";
|
|
3
|
+
import { ExecutionSignalsSchema } from "./ExecutionSignals.js";
|
|
3
4
|
const boundedId = z.string().trim().min(1).max(200);
|
|
4
5
|
const actionName = z
|
|
5
6
|
.string()
|
|
@@ -47,6 +48,12 @@ export const TrustedIntentContextSchema = z
|
|
|
47
48
|
correlationId: boundedId.optional(),
|
|
48
49
|
expectedEffectDigest: sha256Digest.optional(),
|
|
49
50
|
idempotencyKey: z.string().trim().min(1).max(180),
|
|
51
|
+
/**
|
|
52
|
+
* What the trusted runtime knows about itself and the workload it is
|
|
53
|
+
* standing in front of. The capture stamps these into the hashed context
|
|
54
|
+
* under reserved keys; a caller may not write those keys by hand.
|
|
55
|
+
*/
|
|
56
|
+
signals: ExecutionSignalsSchema.optional(),
|
|
50
57
|
})
|
|
51
58
|
.strict();
|
|
52
59
|
export const ExecutionIntentSchema = z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionIntent.js","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExecutionIntent.js","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"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"}
|