@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.
Files changed (95) hide show
  1. package/README.md +50 -0
  2. package/dist/Index.d.ts +15 -0
  3. package/dist/Index.d.ts.map +1 -1
  4. package/dist/Index.js +15 -0
  5. package/dist/Index.js.map +1 -1
  6. package/dist/decision/DecionisGate.d.ts.map +1 -1
  7. package/dist/decision/DecionisGate.js +3 -2
  8. package/dist/decision/DecionisGate.js.map +1 -1
  9. package/dist/execution/AuthorizationVerifier.d.ts +33 -4
  10. package/dist/execution/AuthorizationVerifier.d.ts.map +1 -1
  11. package/dist/execution/AuthorizationVerifier.js +74 -10
  12. package/dist/execution/AuthorizationVerifier.js.map +1 -1
  13. package/dist/execution/EffectAdapter.d.ts +117 -0
  14. package/dist/execution/EffectAdapter.d.ts.map +1 -0
  15. package/dist/execution/EffectAdapter.js +22 -0
  16. package/dist/execution/EffectAdapter.js.map +1 -0
  17. package/dist/execution/ExecutionDeadline.d.ts +35 -0
  18. package/dist/execution/ExecutionDeadline.d.ts.map +1 -0
  19. package/dist/execution/ExecutionDeadline.js +52 -0
  20. package/dist/execution/ExecutionDeadline.js.map +1 -0
  21. package/dist/execution/ExecutionJournal.d.ts +148 -0
  22. package/dist/execution/ExecutionJournal.d.ts.map +1 -0
  23. package/dist/execution/ExecutionJournal.js +157 -0
  24. package/dist/execution/ExecutionJournal.js.map +1 -0
  25. package/dist/execution/ExecutionOutcome.d.ts +186 -0
  26. package/dist/execution/ExecutionOutcome.d.ts.map +1 -0
  27. package/dist/execution/ExecutionOutcome.js +2 -0
  28. package/dist/execution/ExecutionOutcome.js.map +1 -0
  29. package/dist/execution/ExecutionPosture.d.ts +50 -0
  30. package/dist/execution/ExecutionPosture.d.ts.map +1 -0
  31. package/dist/execution/ExecutionPosture.js +20 -0
  32. package/dist/execution/ExecutionPosture.js.map +1 -0
  33. package/dist/execution/ExecutorEvidence.d.ts +64 -0
  34. package/dist/execution/ExecutorEvidence.d.ts.map +1 -0
  35. package/dist/execution/ExecutorEvidence.js +14 -0
  36. package/dist/execution/ExecutorEvidence.js.map +1 -0
  37. package/dist/execution/GovernedExecutionRunner.d.ts +315 -0
  38. package/dist/execution/GovernedExecutionRunner.d.ts.map +1 -0
  39. package/dist/execution/GovernedExecutionRunner.js +1358 -0
  40. package/dist/execution/GovernedExecutionRunner.js.map +1 -0
  41. package/dist/execution/NativeExecutor.d.ts +226 -0
  42. package/dist/execution/NativeExecutor.d.ts.map +1 -0
  43. package/dist/execution/NativeExecutor.js +22 -0
  44. package/dist/execution/NativeExecutor.js.map +1 -0
  45. package/dist/execution/NativeExecutorSchema.d.ts +387 -0
  46. package/dist/execution/NativeExecutorSchema.d.ts.map +1 -0
  47. package/dist/execution/NativeExecutorSchema.js +261 -0
  48. package/dist/execution/NativeExecutorSchema.js.map +1 -0
  49. package/dist/execution/PostgresExecutionJournal.d.ts +54 -0
  50. package/dist/execution/PostgresExecutionJournal.d.ts.map +1 -0
  51. package/dist/execution/PostgresExecutionJournal.js +131 -0
  52. package/dist/execution/PostgresExecutionJournal.js.map +1 -0
  53. package/dist/execution/RegistryExecutor.d.ts +35 -0
  54. package/dist/execution/RegistryExecutor.d.ts.map +1 -0
  55. package/dist/execution/RegistryExecutor.js +84 -0
  56. package/dist/execution/RegistryExecutor.js.map +1 -0
  57. package/dist/execution/SafeExecutor.d.ts +22 -193
  58. package/dist/execution/SafeExecutor.d.ts.map +1 -1
  59. package/dist/execution/SafeExecutor.js +49 -521
  60. package/dist/execution/SafeExecutor.js.map +1 -1
  61. package/dist/http/AuthorityPaths.d.ts +51 -0
  62. package/dist/http/AuthorityPaths.d.ts.map +1 -0
  63. package/dist/http/AuthorityPaths.js +84 -0
  64. package/dist/http/AuthorityPaths.js.map +1 -0
  65. package/dist/intent/CanonicalIntentHasher.d.ts.map +1 -1
  66. package/dist/intent/CanonicalIntentHasher.js +11 -0
  67. package/dist/intent/CanonicalIntentHasher.js.map +1 -1
  68. package/dist/intent/ExecutionIntent.d.ts +44 -4
  69. package/dist/intent/ExecutionIntent.d.ts.map +1 -1
  70. package/dist/intent/ExecutionIntent.js +25 -0
  71. package/dist/intent/ExecutionIntent.js.map +1 -1
  72. package/dist/intent/IntentBindingSchema.d.ts +6 -0
  73. package/dist/intent/IntentBindingSchema.d.ts.map +1 -1
  74. package/dist/intent/IntentBindingSchema.js +10 -0
  75. package/dist/intent/IntentBindingSchema.js.map +1 -1
  76. package/dist/intent/IntentCapture.d.ts.map +1 -1
  77. package/dist/intent/IntentCapture.js +3 -0
  78. package/dist/intent/IntentCapture.js.map +1 -1
  79. package/dist/profile/ApiProfile.d.ts +154 -0
  80. package/dist/profile/ApiProfile.d.ts.map +1 -0
  81. package/dist/profile/ApiProfile.js +369 -0
  82. package/dist/profile/ApiProfile.js.map +1 -0
  83. package/dist/profile/ApiProfiles.d.ts +16 -0
  84. package/dist/profile/ApiProfiles.d.ts.map +1 -0
  85. package/dist/profile/ApiProfiles.js +29 -0
  86. package/dist/profile/ApiProfiles.js.map +1 -0
  87. package/dist/profile/BuiltInApiProfiles.d.ts +9 -0
  88. package/dist/profile/BuiltInApiProfiles.d.ts.map +1 -0
  89. package/dist/profile/BuiltInApiProfiles.js +296 -0
  90. package/dist/profile/BuiltInApiProfiles.js.map +1 -0
  91. package/dist/testing/LocalAuthority.d.ts +14 -0
  92. package/dist/testing/LocalAuthority.d.ts.map +1 -1
  93. package/dist/testing/LocalAuthority.js +75 -0
  94. package/dist/testing/LocalAuthority.js.map +1 -1
  95. 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;WAoC1D,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIjD,OAAO,CAAC,MAAM,CAAC,YAAY;IAW3B,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB,OAAO,CAAC,aAAa;CAoBtB"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACjC,qFAAqF;AACrF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;AAElE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,KAAK,EAAE,iBAAiB;IACxB,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE;IACnC,oBAAoB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjD;;;;OAIG;IACH,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,UAAU,EAAE,gBAAgB;IAC5B,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,gBAAgB;IACzB,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE;IACnC,oBAAoB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAClD,CAAC;KACD,MAAM,EAAE,CAAC"}
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;AAU3F;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAsCrC,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"}
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":"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"}
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;IAsChG,6EAA6E;IAChE,eAAe,CAC1B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,cAAc,CAAC;CAK3B"}
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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"}