@decionis/agent-safe-pipeline 0.3.8 → 0.4.1
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 +50 -0
- package/dist/Index.d.ts +15 -0
- package/dist/Index.d.ts.map +1 -1
- package/dist/Index.js +15 -0
- package/dist/Index.js.map +1 -1
- package/dist/decision/DecionisGate.d.ts.map +1 -1
- package/dist/decision/DecionisGate.js +3 -2
- package/dist/decision/DecionisGate.js.map +1 -1
- package/dist/execution/AuthorizationVerifier.d.ts +33 -4
- package/dist/execution/AuthorizationVerifier.d.ts.map +1 -1
- package/dist/execution/AuthorizationVerifier.js +74 -10
- package/dist/execution/AuthorizationVerifier.js.map +1 -1
- package/dist/execution/EffectAdapter.d.ts +117 -0
- package/dist/execution/EffectAdapter.d.ts.map +1 -0
- package/dist/execution/EffectAdapter.js +22 -0
- package/dist/execution/EffectAdapter.js.map +1 -0
- package/dist/execution/ExecutionDeadline.d.ts +35 -0
- package/dist/execution/ExecutionDeadline.d.ts.map +1 -0
- package/dist/execution/ExecutionDeadline.js +52 -0
- package/dist/execution/ExecutionDeadline.js.map +1 -0
- package/dist/execution/ExecutionJournal.d.ts +148 -0
- package/dist/execution/ExecutionJournal.d.ts.map +1 -0
- package/dist/execution/ExecutionJournal.js +157 -0
- package/dist/execution/ExecutionJournal.js.map +1 -0
- package/dist/execution/ExecutionOutcome.d.ts +186 -0
- package/dist/execution/ExecutionOutcome.d.ts.map +1 -0
- package/dist/execution/ExecutionOutcome.js +2 -0
- package/dist/execution/ExecutionOutcome.js.map +1 -0
- package/dist/execution/ExecutionPosture.d.ts +50 -0
- package/dist/execution/ExecutionPosture.d.ts.map +1 -0
- package/dist/execution/ExecutionPosture.js +20 -0
- package/dist/execution/ExecutionPosture.js.map +1 -0
- package/dist/execution/ExecutorEvidence.d.ts +64 -0
- package/dist/execution/ExecutorEvidence.d.ts.map +1 -0
- package/dist/execution/ExecutorEvidence.js +14 -0
- package/dist/execution/ExecutorEvidence.js.map +1 -0
- package/dist/execution/GovernedExecutionRunner.d.ts +315 -0
- package/dist/execution/GovernedExecutionRunner.d.ts.map +1 -0
- package/dist/execution/GovernedExecutionRunner.js +1358 -0
- package/dist/execution/GovernedExecutionRunner.js.map +1 -0
- package/dist/execution/NativeExecutor.d.ts +226 -0
- package/dist/execution/NativeExecutor.d.ts.map +1 -0
- package/dist/execution/NativeExecutor.js +22 -0
- package/dist/execution/NativeExecutor.js.map +1 -0
- package/dist/execution/NativeExecutorSchema.d.ts +387 -0
- package/dist/execution/NativeExecutorSchema.d.ts.map +1 -0
- package/dist/execution/NativeExecutorSchema.js +261 -0
- package/dist/execution/NativeExecutorSchema.js.map +1 -0
- package/dist/execution/PostgresExecutionJournal.d.ts +54 -0
- package/dist/execution/PostgresExecutionJournal.d.ts.map +1 -0
- package/dist/execution/PostgresExecutionJournal.js +131 -0
- package/dist/execution/PostgresExecutionJournal.js.map +1 -0
- package/dist/execution/RegistryExecutor.d.ts +35 -0
- package/dist/execution/RegistryExecutor.d.ts.map +1 -0
- package/dist/execution/RegistryExecutor.js +84 -0
- package/dist/execution/RegistryExecutor.js.map +1 -0
- package/dist/execution/SafeExecutor.d.ts +22 -193
- package/dist/execution/SafeExecutor.d.ts.map +1 -1
- package/dist/execution/SafeExecutor.js +49 -521
- package/dist/execution/SafeExecutor.js.map +1 -1
- package/dist/http/AuthorityPaths.d.ts +51 -0
- package/dist/http/AuthorityPaths.d.ts.map +1 -0
- package/dist/http/AuthorityPaths.js +84 -0
- package/dist/http/AuthorityPaths.js.map +1 -0
- package/dist/intent/CanonicalIntentHasher.d.ts.map +1 -1
- package/dist/intent/CanonicalIntentHasher.js +11 -0
- package/dist/intent/CanonicalIntentHasher.js.map +1 -1
- package/dist/intent/ExecutionIntent.d.ts +44 -4
- package/dist/intent/ExecutionIntent.d.ts.map +1 -1
- package/dist/intent/ExecutionIntent.js +25 -0
- package/dist/intent/ExecutionIntent.js.map +1 -1
- package/dist/intent/IntentBindingSchema.d.ts +6 -0
- package/dist/intent/IntentBindingSchema.d.ts.map +1 -1
- package/dist/intent/IntentBindingSchema.js +10 -0
- package/dist/intent/IntentBindingSchema.js.map +1 -1
- package/dist/intent/IntentCapture.d.ts.map +1 -1
- package/dist/intent/IntentCapture.js +3 -0
- package/dist/intent/IntentCapture.js.map +1 -1
- package/dist/profile/ApiProfile.d.ts +154 -0
- package/dist/profile/ApiProfile.d.ts.map +1 -0
- package/dist/profile/ApiProfile.js +369 -0
- package/dist/profile/ApiProfile.js.map +1 -0
- package/dist/profile/ApiProfiles.d.ts +16 -0
- package/dist/profile/ApiProfiles.d.ts.map +1 -0
- package/dist/profile/ApiProfiles.js +29 -0
- package/dist/profile/ApiProfiles.js.map +1 -0
- package/dist/profile/BuiltInApiProfiles.d.ts +9 -0
- package/dist/profile/BuiltInApiProfiles.d.ts.map +1 -0
- package/dist/profile/BuiltInApiProfiles.js +296 -0
- package/dist/profile/BuiltInApiProfiles.js.map +1 -0
- package/dist/testing/LocalAuthority.d.ts +14 -0
- package/dist/testing/LocalAuthority.d.ts.map +1 -1
- package/dist/testing/LocalAuthority.js +75 -0
- package/dist/testing/LocalAuthority.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every execution-authority path this package calls, in one place, as the
|
|
3
|
+
* REST resources Decionis serves them (`decionis-outcome-infrastructure`
|
|
4
|
+
* plan §3.0): a decision binds a grant, and a grant has claims, receipts and
|
|
5
|
+
* reconciliations, each created by a POST. The verb routes these replace
|
|
6
|
+
* stay registered on the authority as aliases of the same handlers, and are
|
|
7
|
+
* named here only for the one case that needs them: a grant whose id cannot
|
|
8
|
+
* be read from its token.
|
|
9
|
+
*
|
|
10
|
+
* A grant's id is its `jti`: the id the authority returns as
|
|
11
|
+
* `execution_token_jti`, records with the grant, and signs into the token.
|
|
12
|
+
*/
|
|
13
|
+
export declare class AuthorityPaths {
|
|
14
|
+
/** Evaluate an intent and bind a single-use grant: `POST`. */
|
|
15
|
+
static readonly GRANTS = "/v1/authority/grants";
|
|
16
|
+
/**
|
|
17
|
+
* The verb routes the REST resources replace. Deprecated on the authority
|
|
18
|
+
* and kept there as aliases on the same handlers, for clients that predate
|
|
19
|
+
* the resources.
|
|
20
|
+
*/
|
|
21
|
+
static readonly LEGACY: Readonly<{
|
|
22
|
+
enforceAndBind: "/v1/authority/enforce-and-bind";
|
|
23
|
+
verifyToken: "/v1/execution/verify-token";
|
|
24
|
+
claimToken: "/v1/execution/claim-token";
|
|
25
|
+
finalizeToken: "/v1/execution/finalize-token";
|
|
26
|
+
}>;
|
|
27
|
+
/** Read and verify one grant: `GET`. */
|
|
28
|
+
static grant(grantId: string): string;
|
|
29
|
+
/** Claim a grant, once, immediately before the write: `POST`. */
|
|
30
|
+
static claims(grantId: string): string;
|
|
31
|
+
/** Record how the claimed attempt ended (finalize): `POST`. */
|
|
32
|
+
static receipts(grantId: string): string;
|
|
33
|
+
/** Report how an attempt finalized `INDETERMINATE` resolved: `POST`. */
|
|
34
|
+
static reconciliations(grantId: string): string;
|
|
35
|
+
/** One managed escalation: `GET` its state, `DELETE` to cancel it. */
|
|
36
|
+
static escalation(escalationId: string): string;
|
|
37
|
+
/** Where to claim the grant an execution token stands for. */
|
|
38
|
+
static claimFor(executionToken: string): string;
|
|
39
|
+
/** Where to record the receipt for the grant an execution token stands for. */
|
|
40
|
+
static receiptFor(executionToken: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* The grant id a Decionis execution token names (its `jti`), read without
|
|
43
|
+
* verifying anything: it only addresses the resource, and the authority
|
|
44
|
+
* verifies the token itself and refuses a path whose id is not the
|
|
45
|
+
* token's. Null for a token that is not a JWT or whose `jti` is not a UUID
|
|
46
|
+
* (the only grant id the authority routes), in which case the caller uses
|
|
47
|
+
* the legacy alias.
|
|
48
|
+
*/
|
|
49
|
+
static grantIdOf(executionToken: string): string | null;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=AuthorityPaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthorityPaths.d.ts","sourceRoot":"","sources":["../../src/http/AuthorityPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,8DAA8D;IAC9D,gBAAuB,MAAM,0BAA0B;IAEvD;;;;OAIG;IACH,gBAAuB,MAAM;;;;;OAK1B;IAEH,wCAAwC;WAC1B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI5C,iEAAiE;WACnD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7C,+DAA+D;WACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI/C,wEAAwE;WAC1D,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAItD,sEAAsE;WACxD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAItD,8DAA8D;WAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAKtD,+EAA+E;WACjE,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAOxD;;;;;;;OAOG;WACW,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAY/D"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every execution-authority path this package calls, in one place, as the
|
|
3
|
+
* REST resources Decionis serves them (`decionis-outcome-infrastructure`
|
|
4
|
+
* plan §3.0): a decision binds a grant, and a grant has claims, receipts and
|
|
5
|
+
* reconciliations, each created by a POST. The verb routes these replace
|
|
6
|
+
* stay registered on the authority as aliases of the same handlers, and are
|
|
7
|
+
* named here only for the one case that needs them: a grant whose id cannot
|
|
8
|
+
* be read from its token.
|
|
9
|
+
*
|
|
10
|
+
* A grant's id is its `jti`: the id the authority returns as
|
|
11
|
+
* `execution_token_jti`, records with the grant, and signs into the token.
|
|
12
|
+
*/
|
|
13
|
+
export class AuthorityPaths {
|
|
14
|
+
/** Evaluate an intent and bind a single-use grant: `POST`. */
|
|
15
|
+
static GRANTS = "/v1/authority/grants";
|
|
16
|
+
/**
|
|
17
|
+
* The verb routes the REST resources replace. Deprecated on the authority
|
|
18
|
+
* and kept there as aliases on the same handlers, for clients that predate
|
|
19
|
+
* the resources.
|
|
20
|
+
*/
|
|
21
|
+
static LEGACY = Object.freeze({
|
|
22
|
+
enforceAndBind: "/v1/authority/enforce-and-bind",
|
|
23
|
+
verifyToken: "/v1/execution/verify-token",
|
|
24
|
+
claimToken: "/v1/execution/claim-token",
|
|
25
|
+
finalizeToken: "/v1/execution/finalize-token",
|
|
26
|
+
});
|
|
27
|
+
/** Read and verify one grant: `GET`. */
|
|
28
|
+
static grant(grantId) {
|
|
29
|
+
return `${AuthorityPaths.GRANTS}/${encodeURIComponent(grantId)}`;
|
|
30
|
+
}
|
|
31
|
+
/** Claim a grant, once, immediately before the write: `POST`. */
|
|
32
|
+
static claims(grantId) {
|
|
33
|
+
return `${AuthorityPaths.grant(grantId)}/claims`;
|
|
34
|
+
}
|
|
35
|
+
/** Record how the claimed attempt ended (finalize): `POST`. */
|
|
36
|
+
static receipts(grantId) {
|
|
37
|
+
return `${AuthorityPaths.grant(grantId)}/receipts`;
|
|
38
|
+
}
|
|
39
|
+
/** Report how an attempt finalized `INDETERMINATE` resolved: `POST`. */
|
|
40
|
+
static reconciliations(grantId) {
|
|
41
|
+
return `${AuthorityPaths.grant(grantId)}/reconciliations`;
|
|
42
|
+
}
|
|
43
|
+
/** One managed escalation: `GET` its state, `DELETE` to cancel it. */
|
|
44
|
+
static escalation(escalationId) {
|
|
45
|
+
return `/v1/authority/escalations/${encodeURIComponent(escalationId)}`;
|
|
46
|
+
}
|
|
47
|
+
/** Where to claim the grant an execution token stands for. */
|
|
48
|
+
static claimFor(executionToken) {
|
|
49
|
+
const grantId = AuthorityPaths.grantIdOf(executionToken);
|
|
50
|
+
return grantId === null ? AuthorityPaths.LEGACY.claimToken : AuthorityPaths.claims(grantId);
|
|
51
|
+
}
|
|
52
|
+
/** Where to record the receipt for the grant an execution token stands for. */
|
|
53
|
+
static receiptFor(executionToken) {
|
|
54
|
+
const grantId = AuthorityPaths.grantIdOf(executionToken);
|
|
55
|
+
return grantId === null
|
|
56
|
+
? AuthorityPaths.LEGACY.finalizeToken
|
|
57
|
+
: AuthorityPaths.receipts(grantId);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The grant id a Decionis execution token names (its `jti`), read without
|
|
61
|
+
* verifying anything: it only addresses the resource, and the authority
|
|
62
|
+
* verifies the token itself and refuses a path whose id is not the
|
|
63
|
+
* token's. Null for a token that is not a JWT or whose `jti` is not a UUID
|
|
64
|
+
* (the only grant id the authority routes), in which case the caller uses
|
|
65
|
+
* the legacy alias.
|
|
66
|
+
*/
|
|
67
|
+
static grantIdOf(executionToken) {
|
|
68
|
+
const parts = executionToken.split(".");
|
|
69
|
+
const payload = parts[1];
|
|
70
|
+
if (parts.length !== 3 || payload === undefined || payload.length === 0)
|
|
71
|
+
return null;
|
|
72
|
+
try {
|
|
73
|
+
const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
|
|
74
|
+
const jti = claims?.jti;
|
|
75
|
+
return typeof jti === "string" && GRANT_ID.test(jti) ? jti : null;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** A grant id as the authority mints and routes it: a UUID, which no path segment has to escape. */
|
|
83
|
+
const GRANT_ID = /^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i;
|
|
84
|
+
//# sourceMappingURL=AuthorityPaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthorityPaths.js","sourceRoot":"","sources":["../../src/http/AuthorityPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAc;IACzB,8DAA8D;IACvD,MAAM,CAAU,MAAM,GAAG,sBAAsB,CAAC;IAEvD;;;;OAIG;IACI,MAAM,CAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5C,cAAc,EAAE,gCAAgC;QAChD,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,2BAA2B;QACvC,aAAa,EAAE,8BAA8B;KAC9C,CAAC,CAAC;IAEH,wCAAwC;IACjC,MAAM,CAAC,KAAK,CAAC,OAAe;QACjC,OAAO,GAAG,cAAc,CAAC,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,iEAAiE;IAC1D,MAAM,CAAC,MAAM,CAAC,OAAe;QAClC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,QAAQ,CAAC,OAAe;QACpC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;IACrD,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,eAAe,CAAC,OAAe;QAC3C,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC5D,CAAC;IAED,sEAAsE;IAC/D,MAAM,CAAC,UAAU,CAAC,YAAoB;QAC3C,OAAO,6BAA6B,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,8DAA8D;IACvD,MAAM,CAAC,QAAQ,CAAC,cAAsB;QAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,+EAA+E;IACxE,MAAM,CAAC,UAAU,CAAC,cAAsB;QAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,OAAO,KAAK,IAAI;YACrB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa;YACrC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,SAAS,CAAC,cAAsB;QAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;YACzF,MAAM,GAAG,GAAI,MAA4C,EAAE,GAAG,CAAC;YAC/D,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;;AAGH,oGAAoG;AACpG,MAAM,QAAQ,GAAG,4DAA4D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanonicalIntentHasher.d.ts","sourceRoot":"","sources":["../../src/intent/CanonicalIntentHasher.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAEtB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAS7C,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc;IAqBhD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;WAoDjC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,sBAAsB;
|
|
1
|
+
{"version":3,"file":"CanonicalIntentHasher.d.ts","sourceRoot":"","sources":["../../src/intent/CanonicalIntentHasher.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAEtB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAS7C,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc;IAqBhD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;WAoDjC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,sBAAsB;WA+C1D,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIjD,OAAO,CAAC,MAAM,CAAC,YAAY;IAW3B,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB,OAAO,CAAC,aAAa;CAoBtB"}
|
|
@@ -111,6 +111,17 @@ export class CanonicalIntentHasher {
|
|
|
111
111
|
? {}
|
|
112
112
|
: { endpoint: intent.downstreamTarget.endpoint }),
|
|
113
113
|
},
|
|
114
|
+
// Absent unless stated, so an intent without one hashes as it always did.
|
|
115
|
+
...(intent.policyProjection === undefined
|
|
116
|
+
? {}
|
|
117
|
+
: {
|
|
118
|
+
policy_projection: {
|
|
119
|
+
decision_type: intent.policyProjection.decisionType,
|
|
120
|
+
transaction_type: intent.policyProjection.transactionType,
|
|
121
|
+
workflow_key: intent.policyProjection.workflowKey,
|
|
122
|
+
channel: intent.policyProjection.channel,
|
|
123
|
+
},
|
|
124
|
+
}),
|
|
114
125
|
...(intent.expectedEffectDigest === undefined
|
|
115
126
|
? {}
|
|
116
127
|
: { expected_effect_digest: intent.expectedEffectDigest }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanonicalIntentHasher.js","sourceRoot":"","sources":["../../src/intent/CanonicalIntentHasher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CanonicalIntentHasher.js","sourceRoot":"","sources":["../../src/intent/CanonicalIntentHasher.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,25 @@ export declare const DownstreamTargetSchema: z.ZodObject<{
|
|
|
17
17
|
environment: z.ZodOptional<z.ZodString>;
|
|
18
18
|
endpoint: z.ZodOptional<z.ZodString>;
|
|
19
19
|
}, z.core.$strict>;
|
|
20
|
+
/**
|
|
21
|
+
* The policy path the authority decides an intent under: its decision type,
|
|
22
|
+
* transaction type, workflow key and channel. Without one, Decionis evaluates
|
|
23
|
+
* `action.type` as the decision type, transaction type and workflow key, which
|
|
24
|
+
* is right when an action's name is its policy vocabulary. An executor whose
|
|
25
|
+
* policy names its writes differently (an order acknowledgement decided as
|
|
26
|
+
* `ORDER_ACCEPTANCE`) states the projection, and the binding carries it inside
|
|
27
|
+
* the hash, so a claim re-validates the policy path the grant was decided on.
|
|
28
|
+
* A null field is one the authority leaves out of the evaluation.
|
|
29
|
+
*
|
|
30
|
+
* The trusted runtime's to state, never the agent's: an agent that could name
|
|
31
|
+
* its projection could choose the policy it is evaluated under.
|
|
32
|
+
*/
|
|
33
|
+
export declare const PolicyProjectionSchema: z.ZodObject<{
|
|
34
|
+
decisionType: z.ZodString;
|
|
35
|
+
transactionType: z.ZodNullable<z.ZodString>;
|
|
36
|
+
workflowKey: z.ZodNullable<z.ZodString>;
|
|
37
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
38
|
+
}, z.core.$strict>;
|
|
20
39
|
/**
|
|
21
40
|
* The trusted idempotency key travels inside the hashed wire `context` under
|
|
22
41
|
* this reserved key, because the Decionis `ExecutionIntentBinding` contract
|
|
@@ -40,6 +59,12 @@ export declare const TrustedIntentContextSchema: z.ZodObject<{
|
|
|
40
59
|
context: z.ZodDefault<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
|
|
41
60
|
correlationId: z.ZodOptional<z.ZodString>;
|
|
42
61
|
expectedEffectDigest: z.ZodOptional<z.ZodString>;
|
|
62
|
+
policyProjection: z.ZodOptional<z.ZodObject<{
|
|
63
|
+
decisionType: z.ZodString;
|
|
64
|
+
transactionType: z.ZodNullable<z.ZodString>;
|
|
65
|
+
workflowKey: z.ZodNullable<z.ZodString>;
|
|
66
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
67
|
+
}, z.core.$strict>>;
|
|
43
68
|
idempotencyKey: z.ZodString;
|
|
44
69
|
signals: z.ZodOptional<z.ZodObject<{
|
|
45
70
|
boundary: z.ZodOptional<z.ZodObject<{
|
|
@@ -98,8 +123,15 @@ export declare const ExecutionIntentSchema: z.ZodObject<{
|
|
|
98
123
|
context: z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>;
|
|
99
124
|
correlationId: z.ZodOptional<z.ZodString>;
|
|
100
125
|
expectedEffectDigest: z.ZodOptional<z.ZodString>;
|
|
126
|
+
policyProjection: z.ZodOptional<z.ZodObject<{
|
|
127
|
+
decisionType: z.ZodString;
|
|
128
|
+
transactionType: z.ZodNullable<z.ZodString>;
|
|
129
|
+
workflowKey: z.ZodNullable<z.ZodString>;
|
|
130
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
131
|
+
}, z.core.$strict>>;
|
|
101
132
|
idempotencyKey: z.ZodString;
|
|
102
133
|
}, z.core.$strict>;
|
|
134
|
+
export type PolicyProjection = z.infer<typeof PolicyProjectionSchema>;
|
|
103
135
|
export type AgentProposal = z.infer<typeof AgentProposalSchema>;
|
|
104
136
|
export type IntentActor = z.infer<typeof IntentActorSchema>;
|
|
105
137
|
export type DownstreamTarget = z.infer<typeof DownstreamTargetSchema>;
|
|
@@ -111,10 +143,7 @@ export interface CapturedIntent {
|
|
|
111
143
|
readonly intentHash: `sha256:${string}`;
|
|
112
144
|
readonly byteLength: number;
|
|
113
145
|
}
|
|
114
|
-
/**
|
|
115
|
-
* Wire shape of the Decionis `ExecutionIntentBinding` contract, less the
|
|
116
|
-
* optional `policy_projection` this package does not produce.
|
|
117
|
-
*/
|
|
146
|
+
/** Wire shape of the Decionis `ExecutionIntentBinding` contract. */
|
|
118
147
|
export interface AuthorityIntentBinding {
|
|
119
148
|
readonly protocol_version: "agent-safe.intent/1";
|
|
120
149
|
readonly tenant_id: string;
|
|
@@ -141,6 +170,17 @@ export interface AuthorityIntentBinding {
|
|
|
141
170
|
readonly environment?: string;
|
|
142
171
|
readonly endpoint?: string;
|
|
143
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* The policy path the authority decides the intent under. Absent unless the
|
|
175
|
+
* trusted runtime stated one, so an intent without it produces exactly the
|
|
176
|
+
* binding, canonical JSON, and hash it produced before this property existed.
|
|
177
|
+
*/
|
|
178
|
+
readonly policy_projection?: {
|
|
179
|
+
readonly decision_type: string;
|
|
180
|
+
readonly transaction_type: string | null;
|
|
181
|
+
readonly workflow_key: string | null;
|
|
182
|
+
readonly channel: string | null;
|
|
183
|
+
};
|
|
144
184
|
/**
|
|
145
185
|
* Digest-only commitment to the downstream state predicted before dispatch.
|
|
146
186
|
* Absent unless the trusted runtime supplied one, so an intent that does not
|
|
@@ -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;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
|
|
1
|
+
{"version":3,"file":"ExecutionIntent.d.ts","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,28 @@ export const DownstreamTargetSchema = z
|
|
|
33
33
|
endpoint: z.string().trim().min(1).max(500).optional(),
|
|
34
34
|
})
|
|
35
35
|
.strict();
|
|
36
|
+
const projectionValue = z.string().trim().min(1).max(120);
|
|
37
|
+
/**
|
|
38
|
+
* The policy path the authority decides an intent under: its decision type,
|
|
39
|
+
* transaction type, workflow key and channel. Without one, Decionis evaluates
|
|
40
|
+
* `action.type` as the decision type, transaction type and workflow key, which
|
|
41
|
+
* is right when an action's name is its policy vocabulary. An executor whose
|
|
42
|
+
* policy names its writes differently (an order acknowledgement decided as
|
|
43
|
+
* `ORDER_ACCEPTANCE`) states the projection, and the binding carries it inside
|
|
44
|
+
* the hash, so a claim re-validates the policy path the grant was decided on.
|
|
45
|
+
* A null field is one the authority leaves out of the evaluation.
|
|
46
|
+
*
|
|
47
|
+
* The trusted runtime's to state, never the agent's: an agent that could name
|
|
48
|
+
* its projection could choose the policy it is evaluated under.
|
|
49
|
+
*/
|
|
50
|
+
export const PolicyProjectionSchema = z
|
|
51
|
+
.object({
|
|
52
|
+
decisionType: projectionValue,
|
|
53
|
+
transactionType: projectionValue.nullable(),
|
|
54
|
+
workflowKey: projectionValue.nullable(),
|
|
55
|
+
channel: projectionValue.nullable(),
|
|
56
|
+
})
|
|
57
|
+
.strict();
|
|
36
58
|
/**
|
|
37
59
|
* The trusted idempotency key travels inside the hashed wire `context` under
|
|
38
60
|
* this reserved key, because the Decionis `ExecutionIntentBinding` contract
|
|
@@ -47,6 +69,8 @@ export const TrustedIntentContextSchema = z
|
|
|
47
69
|
context: JsonObjectSchema.default({}),
|
|
48
70
|
correlationId: boundedId.optional(),
|
|
49
71
|
expectedEffectDigest: sha256Digest.optional(),
|
|
72
|
+
/** The policy path the intent is decided under, when it is not `action.type`. */
|
|
73
|
+
policyProjection: PolicyProjectionSchema.optional(),
|
|
50
74
|
idempotencyKey: z.string().trim().min(1).max(180),
|
|
51
75
|
/**
|
|
52
76
|
* What the trusted runtime knows about itself and the workload it is
|
|
@@ -71,6 +95,7 @@ export const ExecutionIntentSchema = z
|
|
|
71
95
|
context: JsonObjectSchema,
|
|
72
96
|
correlationId: boundedId.optional(),
|
|
73
97
|
expectedEffectDigest: sha256Digest.optional(),
|
|
98
|
+
policyProjection: PolicyProjectionSchema.optional(),
|
|
74
99
|
idempotencyKey: z.string().trim().min(1).max(180),
|
|
75
100
|
})
|
|
76
101
|
.strict();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionIntent.js","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionIntent.js","sourceRoot":"","sources":["../../src/intent/ExecutionIntent.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,12 @@ export declare const AuthorityIntentBindingSchema: z.ZodObject<{
|
|
|
36
36
|
environment: z.ZodOptional<z.ZodString>;
|
|
37
37
|
endpoint: z.ZodOptional<z.ZodString>;
|
|
38
38
|
}, z.core.$strict>;
|
|
39
|
+
policy_projection: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
decision_type: z.ZodString;
|
|
41
|
+
transaction_type: z.ZodNullable<z.ZodString>;
|
|
42
|
+
workflow_key: z.ZodNullable<z.ZodString>;
|
|
43
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
44
|
+
}, z.core.$strict>>;
|
|
39
45
|
expected_effect_digest: z.ZodOptional<z.ZodString>;
|
|
40
46
|
}, z.core.$strict>;
|
|
41
47
|
/** What the schema accepts; the tests hold it to the `AuthorityIntentBinding` wire interface. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntentBindingSchema.d.ts","sourceRoot":"","sources":["../../src/intent/IntentBindingSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,2FAC6D,CAAC;
|
|
1
|
+
{"version":3,"file":"IntentBindingSchema.d.ts","sourceRoot":"","sources":["../../src/intent/IntentBindingSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,2FAC6D,CAAC;AAW3F;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+CrC,CAAC;AAEL,iGAAiG;AACjG,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOjE"}
|
|
@@ -9,6 +9,7 @@ const actionType = z
|
|
|
9
9
|
.max(120)
|
|
10
10
|
.regex(/^[a-z][a-z0-9._:-]*$/);
|
|
11
11
|
const sha256Digest = z.string().regex(/^sha256:[0-9a-f]{64}$/);
|
|
12
|
+
const projectionValue = z.string().min(1).max(120);
|
|
12
13
|
/**
|
|
13
14
|
* The `agent-safe.intent/1` binding as it is hashed and sent, as a strict
|
|
14
15
|
* schema: what `CanonicalIntentHasher.bindingOf` produces, and what an
|
|
@@ -49,6 +50,15 @@ export const AuthorityIntentBindingSchema = z
|
|
|
49
50
|
endpoint: z.string().min(1).max(500).optional(),
|
|
50
51
|
})
|
|
51
52
|
.strict(),
|
|
53
|
+
policy_projection: z
|
|
54
|
+
.object({
|
|
55
|
+
decision_type: projectionValue,
|
|
56
|
+
transaction_type: projectionValue.nullable(),
|
|
57
|
+
workflow_key: projectionValue.nullable(),
|
|
58
|
+
channel: projectionValue.nullable(),
|
|
59
|
+
})
|
|
60
|
+
.strict()
|
|
61
|
+
.optional(),
|
|
52
62
|
expected_effect_digest: sha256Digest.optional(),
|
|
53
63
|
})
|
|
54
64
|
.strict()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntentBindingSchema.js","sourceRoot":"","sources":["../../src/intent/IntentBindingSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAC3B,wFAAwF,CAAC;AAE3F,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"IntentBindingSchema.js","sourceRoot":"","sources":["../../src/intent/IntentBindingSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntentCapture.d.ts","sourceRoot":"","sources":["../../src/intent/IntentCapture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;gBAE/B,OAAO,CAAC,EAAE,oBAAoB;IAQ1C,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,GAAG,cAAc;
|
|
1
|
+
{"version":3,"file":"IntentCapture.d.ts","sourceRoot":"","sources":["../../src/intent/IntentCapture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;gBAE/B,OAAO,CAAC,EAAE,oBAAoB;IAQ1C,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,GAAG,cAAc;IAyChG,6EAA6E;IAChE,eAAe,CAC1B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,cAAc,CAAC;CAK3B"}
|
|
@@ -47,6 +47,9 @@ export class IntentCapture {
|
|
|
47
47
|
...(trusted.expectedEffectDigest === undefined
|
|
48
48
|
? {}
|
|
49
49
|
: { expectedEffectDigest: trusted.expectedEffectDigest }),
|
|
50
|
+
...(trusted.policyProjection === undefined
|
|
51
|
+
? {}
|
|
52
|
+
: { policyProjection: trusted.policyProjection }),
|
|
50
53
|
idempotencyKey: trusted.idempotencyKey,
|
|
51
54
|
});
|
|
52
55
|
return this.hasher.capture(intent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntentCapture.js","sourceRoot":"","sources":["../../src/intent/IntentCapture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IntentCapture.js","sourceRoot":"","sources":["../../src/intent/IntentCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { JsonObject, JsonValue } from "../intent/JsonValue.js";
|
|
3
|
+
/**
|
|
4
|
+
* `agent-safe.profile.api/1`: a platform API described as data, so that every
|
|
5
|
+
* component that turns one of its calls into an intent turns it into the same
|
|
6
|
+
* one. A profile maps method + path (and, where an API overloads a path, an
|
|
7
|
+
* exact query value) to an action type, and names the facts a decision reads
|
|
8
|
+
* by JSON pointer into the call. The gateway reads it to govern an agent's
|
|
9
|
+
* call; a native executor's `prepare` reads it to describe the call it is
|
|
10
|
+
* about to make. One mapping, no code coupling between them.
|
|
11
|
+
*/
|
|
12
|
+
export declare const API_PROFILE_CONTRACT = "agent-safe.profile.api/1";
|
|
13
|
+
export declare const API_PROFILE_SCHEMA_ID = "https://github.com/decionis/agent-safe-pipeline/blob/master/spec/profiles/api/v1/schema.json";
|
|
14
|
+
/** The methods a profile governs; a read is never an operation. */
|
|
15
|
+
export declare const API_PROFILE_METHODS: readonly ["POST", "PUT", "PATCH", "DELETE"];
|
|
16
|
+
export type ApiProfileMethod = (typeof API_PROFILE_METHODS)[number];
|
|
17
|
+
/**
|
|
18
|
+
* Fact names a profile may not use. The first group is what the gateway
|
|
19
|
+
* already states in an intent's context; the second is what the Decionis
|
|
20
|
+
* authority states itself, or reads from the request rather than the context,
|
|
21
|
+
* so a fact of that name would be shadowed or refused there.
|
|
22
|
+
*/
|
|
23
|
+
export declare const RESERVED_FACT_NAMES: readonly string[];
|
|
24
|
+
/** The most elements one `*` pointer collects; more is not a fact, it is a payload. */
|
|
25
|
+
export declare const MAX_FACT_ELEMENTS = 100;
|
|
26
|
+
/** The longest string a fact carries; a longer value is not stated. */
|
|
27
|
+
export declare const MAX_FACT_STRING = 1000;
|
|
28
|
+
export declare const ApiPolicyProjectionSchema: z.ZodObject<{
|
|
29
|
+
decision_type: z.ZodString;
|
|
30
|
+
transaction_type: z.ZodNullable<z.ZodString>;
|
|
31
|
+
workflow_key: z.ZodNullable<z.ZodString>;
|
|
32
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
33
|
+
}, z.core.$strict>;
|
|
34
|
+
export declare const ApiOperationSchema: z.ZodObject<{
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
method: z.ZodEnum<{
|
|
37
|
+
POST: "POST";
|
|
38
|
+
PUT: "PUT";
|
|
39
|
+
PATCH: "PATCH";
|
|
40
|
+
DELETE: "DELETE";
|
|
41
|
+
}>;
|
|
42
|
+
path: z.ZodString;
|
|
43
|
+
query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
44
|
+
action: z.ZodString;
|
|
45
|
+
summary: z.ZodString;
|
|
46
|
+
facts: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
47
|
+
policy_projection: z.ZodNullable<z.ZodObject<{
|
|
48
|
+
decision_type: z.ZodString;
|
|
49
|
+
transaction_type: z.ZodNullable<z.ZodString>;
|
|
50
|
+
workflow_key: z.ZodNullable<z.ZodString>;
|
|
51
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
52
|
+
}, z.core.$strict>>;
|
|
53
|
+
}, z.core.$strict>;
|
|
54
|
+
export declare const ApiProfileDefinitionSchema: z.ZodObject<{
|
|
55
|
+
profile: z.ZodLiteral<"agent-safe.profile.api/1">;
|
|
56
|
+
id: z.ZodString;
|
|
57
|
+
platform: z.ZodString;
|
|
58
|
+
title: z.ZodString;
|
|
59
|
+
prefixes: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>>;
|
|
60
|
+
operations: z.ZodArray<z.ZodObject<{
|
|
61
|
+
id: z.ZodString;
|
|
62
|
+
method: z.ZodEnum<{
|
|
63
|
+
POST: "POST";
|
|
64
|
+
PUT: "PUT";
|
|
65
|
+
PATCH: "PATCH";
|
|
66
|
+
DELETE: "DELETE";
|
|
67
|
+
}>;
|
|
68
|
+
path: z.ZodString;
|
|
69
|
+
query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
70
|
+
action: z.ZodString;
|
|
71
|
+
summary: z.ZodString;
|
|
72
|
+
facts: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
73
|
+
policy_projection: z.ZodNullable<z.ZodObject<{
|
|
74
|
+
decision_type: z.ZodString;
|
|
75
|
+
transaction_type: z.ZodNullable<z.ZodString>;
|
|
76
|
+
workflow_key: z.ZodNullable<z.ZodString>;
|
|
77
|
+
channel: z.ZodNullable<z.ZodString>;
|
|
78
|
+
}, z.core.$strict>>;
|
|
79
|
+
}, z.core.$strict>>;
|
|
80
|
+
}, z.core.$strict>;
|
|
81
|
+
export type ApiPolicyProjection = z.infer<typeof ApiPolicyProjectionSchema>;
|
|
82
|
+
export type ApiOperationDefinition = z.infer<typeof ApiOperationSchema>;
|
|
83
|
+
export type ApiProfileDefinition = z.infer<typeof ApiProfileDefinitionSchema>;
|
|
84
|
+
/** One call as a component is about to make it, or as the gateway received it. */
|
|
85
|
+
export interface ApiRequest {
|
|
86
|
+
readonly method: string;
|
|
87
|
+
/** The URL path, as sent (percent-encoded); without query or fragment. */
|
|
88
|
+
readonly path: string;
|
|
89
|
+
readonly query?: {
|
|
90
|
+
readonly [key: string]: string | readonly string[];
|
|
91
|
+
};
|
|
92
|
+
/** The parsed JSON body, when there is one. */
|
|
93
|
+
readonly body?: JsonValue;
|
|
94
|
+
}
|
|
95
|
+
/** What a profile says about one call. */
|
|
96
|
+
export interface ApiProfileMatch {
|
|
97
|
+
readonly profile: string;
|
|
98
|
+
readonly operation: string;
|
|
99
|
+
readonly action: string;
|
|
100
|
+
/** Every fact whose pointer resolved to a statable value; the others are absent. */
|
|
101
|
+
readonly facts: JsonObject;
|
|
102
|
+
readonly policyProjection: ApiPolicyProjection | null;
|
|
103
|
+
}
|
|
104
|
+
export declare class ApiProfileError extends Error {
|
|
105
|
+
readonly code: "API_PROFILE_INVALID";
|
|
106
|
+
readonly detail: string;
|
|
107
|
+
constructor(code: "API_PROFILE_INVALID", detail: string);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* One profile, validated and compiled. Matching is deterministic and total:
|
|
111
|
+
* the first operation, in profile order, whose method, path and query match
|
|
112
|
+
* is the call's operation; a call no operation matches is not described by
|
|
113
|
+
* the profile and the caller decides what that means.
|
|
114
|
+
*/
|
|
115
|
+
export declare class ApiProfile {
|
|
116
|
+
readonly definition: ApiProfileDefinition;
|
|
117
|
+
private readonly compiled;
|
|
118
|
+
private constructor();
|
|
119
|
+
/** Validates a definition (closed schema, unique operations, pointers, reserved names) and compiles it. */
|
|
120
|
+
static parse(value: unknown): ApiProfile;
|
|
121
|
+
get id(): string;
|
|
122
|
+
get platform(): string;
|
|
123
|
+
/** Every action type the profile can produce, for a registry to be sealed over. */
|
|
124
|
+
actions(): readonly string[];
|
|
125
|
+
operation(id: string): ApiOperationDefinition | null;
|
|
126
|
+
/**
|
|
127
|
+
* The operation a method, path and query select, before any body is read:
|
|
128
|
+
* what the gateway needs to decide whether to govern a call.
|
|
129
|
+
*/
|
|
130
|
+
operationFor(method: string, path: string, query?: ApiRequest["query"]): ApiOperationDefinition | null;
|
|
131
|
+
/** The operation, action type, facts and policy projection of one call; null when no operation matches. */
|
|
132
|
+
match(request: ApiRequest): ApiProfileMatch | null;
|
|
133
|
+
private select;
|
|
134
|
+
/** A template as an anchored expression: placeholders take one segment's text, never a `/`. */
|
|
135
|
+
private static compile;
|
|
136
|
+
private static escape;
|
|
137
|
+
/** A placeholder's value: percent-decoded, OData quotes removed; null when it does not decode. */
|
|
138
|
+
private static decode;
|
|
139
|
+
private static queryMatches;
|
|
140
|
+
private static queryRoot;
|
|
141
|
+
/** RFC 6901 reference tokens, unescaped; one `*` token at most. */
|
|
142
|
+
private static pointerSegments;
|
|
143
|
+
/**
|
|
144
|
+
* The value at a pointer, when it is statable: a string (at most 1000
|
|
145
|
+
* characters), a finite number or a boolean; or, through one `*`, an array
|
|
146
|
+
* of up to 100 of them, every element statable. Anything else is absent.
|
|
147
|
+
*/
|
|
148
|
+
private static read;
|
|
149
|
+
private static walk;
|
|
150
|
+
private static statable;
|
|
151
|
+
}
|
|
152
|
+
/** The published JSON Schema of a profile definition, generated from the validator above. */
|
|
153
|
+
export declare function apiProfileJsonSchema(): Record<string, unknown>;
|
|
154
|
+
//# sourceMappingURL=ApiProfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiProfile.d.ts","sourceRoot":"","sources":["../../src/profile/ApiProfile.ts"],"names":[],"mappings":"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"}
|