@lit-protocol/vincent-ability-sdk 0.0.1-ea

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 (209) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/CONTRIBUTING.md +117 -0
  3. package/README.md +213 -0
  4. package/dist/package.json +44 -0
  5. package/dist/src/index.d.ts +15 -0
  6. package/dist/src/index.d.ts.map +1 -0
  7. package/dist/src/index.js +21 -0
  8. package/dist/src/index.js.map +1 -0
  9. package/dist/src/internal.d.ts +12 -0
  10. package/dist/src/internal.d.ts.map +1 -0
  11. package/dist/src/internal.js +32 -0
  12. package/dist/src/internal.js.map +1 -0
  13. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.d.ts +28 -0
  14. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.d.ts.map +1 -0
  15. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.js +51 -0
  16. package/dist/src/lib/abilityCore/abilityConfig/context/abilityContext.js.map +1 -0
  17. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.d.ts +18 -0
  18. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.d.ts.map +1 -0
  19. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.js +48 -0
  20. package/dist/src/lib/abilityCore/abilityConfig/context/resultCreators.js.map +1 -0
  21. package/dist/src/lib/abilityCore/abilityConfig/context/types.d.ts +31 -0
  22. package/dist/src/lib/abilityCore/abilityConfig/context/types.d.ts.map +1 -0
  23. package/dist/src/lib/abilityCore/abilityConfig/context/types.js +9 -0
  24. package/dist/src/lib/abilityCore/abilityConfig/context/types.js.map +1 -0
  25. package/dist/src/lib/abilityCore/abilityConfig/types.d.ts +20 -0
  26. package/dist/src/lib/abilityCore/abilityConfig/types.d.ts.map +1 -0
  27. package/dist/src/lib/abilityCore/abilityConfig/types.js +4 -0
  28. package/dist/src/lib/abilityCore/abilityConfig/types.js.map +1 -0
  29. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.d.ts +5 -0
  30. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.d.ts.map +1 -0
  31. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.js +21 -0
  32. package/dist/src/lib/abilityCore/bundledAbility/bundledAbility.js.map +1 -0
  33. package/dist/src/lib/abilityCore/bundledAbility/types.d.ts +18 -0
  34. package/dist/src/lib/abilityCore/bundledAbility/types.d.ts.map +1 -0
  35. package/dist/src/lib/abilityCore/bundledAbility/types.js +4 -0
  36. package/dist/src/lib/abilityCore/bundledAbility/types.js.map +1 -0
  37. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.d.ts +5 -0
  38. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.d.ts.map +1 -0
  39. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.js +18 -0
  40. package/dist/src/lib/abilityCore/helpers/getMappedAbilityPolicyParams.js.map +1 -0
  41. package/dist/src/lib/abilityCore/helpers/getPkpInfo.d.ts +10 -0
  42. package/dist/src/lib/abilityCore/helpers/getPkpInfo.d.ts.map +1 -0
  43. package/dist/src/lib/abilityCore/helpers/getPkpInfo.js +26 -0
  44. package/dist/src/lib/abilityCore/helpers/getPkpInfo.js.map +1 -0
  45. package/dist/src/lib/abilityCore/helpers/index.d.ts +5 -0
  46. package/dist/src/lib/abilityCore/helpers/index.d.ts.map +1 -0
  47. package/dist/src/lib/abilityCore/helpers/index.js +12 -0
  48. package/dist/src/lib/abilityCore/helpers/index.js.map +1 -0
  49. package/dist/src/lib/abilityCore/helpers/resultCreators.d.ts +21 -0
  50. package/dist/src/lib/abilityCore/helpers/resultCreators.d.ts.map +1 -0
  51. package/dist/src/lib/abilityCore/helpers/resultCreators.js +48 -0
  52. package/dist/src/lib/abilityCore/helpers/resultCreators.js.map +1 -0
  53. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.d.ts +55 -0
  54. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.d.ts.map +1 -0
  55. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.js +68 -0
  56. package/dist/src/lib/abilityCore/helpers/supportedPoliciesForAbility.js.map +1 -0
  57. package/dist/src/lib/abilityCore/helpers/typeGuards.d.ts +8 -0
  58. package/dist/src/lib/abilityCore/helpers/typeGuards.d.ts.map +1 -0
  59. package/dist/src/lib/abilityCore/helpers/typeGuards.js +28 -0
  60. package/dist/src/lib/abilityCore/helpers/typeGuards.js.map +1 -0
  61. package/dist/src/lib/abilityCore/helpers/validatePolicies.d.ts +24 -0
  62. package/dist/src/lib/abilityCore/helpers/validatePolicies.d.ts.map +1 -0
  63. package/dist/src/lib/abilityCore/helpers/validatePolicies.js +31 -0
  64. package/dist/src/lib/abilityCore/helpers/validatePolicies.js.map +1 -0
  65. package/dist/src/lib/abilityCore/helpers/zod.d.ts +43 -0
  66. package/dist/src/lib/abilityCore/helpers/zod.d.ts.map +1 -0
  67. package/dist/src/lib/abilityCore/helpers/zod.js +70 -0
  68. package/dist/src/lib/abilityCore/helpers/zod.js.map +1 -0
  69. package/dist/src/lib/abilityCore/vincentAbility.d.ts +54 -0
  70. package/dist/src/lib/abilityCore/vincentAbility.d.ts.map +1 -0
  71. package/dist/src/lib/abilityCore/vincentAbility.js +162 -0
  72. package/dist/src/lib/abilityCore/vincentAbility.js.map +1 -0
  73. package/dist/src/lib/assertSupportedAbilityVersion.d.ts +2 -0
  74. package/dist/src/lib/assertSupportedAbilityVersion.d.ts.map +1 -0
  75. package/dist/src/lib/assertSupportedAbilityVersion.js +15 -0
  76. package/dist/src/lib/assertSupportedAbilityVersion.js.map +1 -0
  77. package/dist/src/lib/constants.d.ts +2 -0
  78. package/dist/src/lib/constants.d.ts.map +1 -0
  79. package/dist/src/lib/constants.js +5 -0
  80. package/dist/src/lib/constants.js.map +1 -0
  81. package/dist/src/lib/handlers/constants.d.ts +2 -0
  82. package/dist/src/lib/handlers/constants.d.ts.map +1 -0
  83. package/dist/src/lib/handlers/constants.js +6 -0
  84. package/dist/src/lib/handlers/constants.js.map +1 -0
  85. package/dist/src/lib/handlers/evaluatePolicies.d.ts +11 -0
  86. package/dist/src/lib/handlers/evaluatePolicies.d.ts.map +1 -0
  87. package/dist/src/lib/handlers/evaluatePolicies.js +110 -0
  88. package/dist/src/lib/handlers/evaluatePolicies.js.map +1 -0
  89. package/dist/src/lib/handlers/vincentAbilityHandler.d.ts +15 -0
  90. package/dist/src/lib/handlers/vincentAbilityHandler.d.ts.map +1 -0
  91. package/dist/src/lib/handlers/vincentAbilityHandler.js +160 -0
  92. package/dist/src/lib/handlers/vincentAbilityHandler.js.map +1 -0
  93. package/dist/src/lib/handlers/vincentPolicyHandler.d.ts +13 -0
  94. package/dist/src/lib/handlers/vincentPolicyHandler.d.ts.map +1 -0
  95. package/dist/src/lib/handlers/vincentPolicyHandler.js +70 -0
  96. package/dist/src/lib/handlers/vincentPolicyHandler.js.map +1 -0
  97. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.d.ts +5 -0
  98. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.d.ts.map +1 -0
  99. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.js +21 -0
  100. package/dist/src/lib/policyCore/bundledPolicy/bundledPolicy.js.map +1 -0
  101. package/dist/src/lib/policyCore/bundledPolicy/types.d.ts +17 -0
  102. package/dist/src/lib/policyCore/bundledPolicy/types.d.ts.map +1 -0
  103. package/dist/src/lib/policyCore/bundledPolicy/types.js +4 -0
  104. package/dist/src/lib/policyCore/bundledPolicy/types.js.map +1 -0
  105. package/dist/src/lib/policyCore/helpers/index.d.ts +5 -0
  106. package/dist/src/lib/policyCore/helpers/index.d.ts.map +1 -0
  107. package/dist/src/lib/policyCore/helpers/index.js +16 -0
  108. package/dist/src/lib/policyCore/helpers/index.js.map +1 -0
  109. package/dist/src/lib/policyCore/helpers/resultCreators.d.ts +38 -0
  110. package/dist/src/lib/policyCore/helpers/resultCreators.d.ts.map +1 -0
  111. package/dist/src/lib/policyCore/helpers/resultCreators.js +89 -0
  112. package/dist/src/lib/policyCore/helpers/resultCreators.js.map +1 -0
  113. package/dist/src/lib/policyCore/helpers/typeGuards.d.ts +7 -0
  114. package/dist/src/lib/policyCore/helpers/typeGuards.d.ts.map +1 -0
  115. package/dist/src/lib/policyCore/helpers/typeGuards.js +23 -0
  116. package/dist/src/lib/policyCore/helpers/typeGuards.js.map +1 -0
  117. package/dist/src/lib/policyCore/helpers/zod.d.ts +55 -0
  118. package/dist/src/lib/policyCore/helpers/zod.d.ts.map +1 -0
  119. package/dist/src/lib/policyCore/helpers/zod.js +82 -0
  120. package/dist/src/lib/policyCore/helpers/zod.js.map +1 -0
  121. package/dist/src/lib/policyCore/index.d.ts +3 -0
  122. package/dist/src/lib/policyCore/index.d.ts.map +1 -0
  123. package/dist/src/lib/policyCore/index.js +8 -0
  124. package/dist/src/lib/policyCore/index.js.map +1 -0
  125. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.d.ts +12 -0
  126. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.d.ts.map +1 -0
  127. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.js +20 -0
  128. package/dist/src/lib/policyCore/policyConfig/context/policyConfigContext.js.map +1 -0
  129. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.d.ts +6 -0
  130. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.d.ts.map +1 -0
  131. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.js +30 -0
  132. package/dist/src/lib/policyCore/policyConfig/context/resultCreators.js.map +1 -0
  133. package/dist/src/lib/policyCore/policyConfig/context/types.d.ts +24 -0
  134. package/dist/src/lib/policyCore/policyConfig/context/types.d.ts.map +1 -0
  135. package/dist/src/lib/policyCore/policyConfig/context/types.js +5 -0
  136. package/dist/src/lib/policyCore/policyConfig/context/types.js.map +1 -0
  137. package/dist/src/lib/policyCore/policyConfig/types.d.ts +46 -0
  138. package/dist/src/lib/policyCore/policyConfig/types.d.ts.map +1 -0
  139. package/dist/src/lib/policyCore/policyConfig/types.js +3 -0
  140. package/dist/src/lib/policyCore/policyConfig/types.js.map +1 -0
  141. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.d.ts +17 -0
  142. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.d.ts.map +1 -0
  143. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.js +54 -0
  144. package/dist/src/lib/policyCore/policyParameters/getOnchainPolicyParams.js.map +1 -0
  145. package/dist/src/lib/policyCore/vincentPolicy.d.ts +92 -0
  146. package/dist/src/lib/policyCore/vincentPolicy.d.ts.map +1 -0
  147. package/dist/src/lib/policyCore/vincentPolicy.js +242 -0
  148. package/dist/src/lib/policyCore/vincentPolicy.js.map +1 -0
  149. package/dist/src/lib/types.d.ts +260 -0
  150. package/dist/src/lib/types.d.ts.map +1 -0
  151. package/dist/src/lib/types.js +4 -0
  152. package/dist/src/lib/types.js.map +1 -0
  153. package/dist/src/lib/utils.d.ts +2 -0
  154. package/dist/src/lib/utils.d.ts.map +1 -0
  155. package/dist/src/lib/utils.js +8 -0
  156. package/dist/src/lib/utils.js.map +1 -0
  157. package/dist/src/type-inference-verification/ability-definition-tests.d.ts +702 -0
  158. package/dist/src/type-inference-verification/ability-definition-tests.d.ts.map +1 -0
  159. package/dist/src/type-inference-verification/ability-definition-tests.js +203 -0
  160. package/dist/src/type-inference-verification/ability-definition-tests.js.map +1 -0
  161. package/dist/src/type-inference-verification/ability-lifecycle-inference.d.ts +2 -0
  162. package/dist/src/type-inference-verification/ability-lifecycle-inference.d.ts.map +1 -0
  163. package/dist/src/type-inference-verification/ability-lifecycle-inference.js +109 -0
  164. package/dist/src/type-inference-verification/ability-lifecycle-inference.js.map +1 -0
  165. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.d.ts +923 -0
  166. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.d.ts.map +1 -0
  167. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.js +196 -0
  168. package/dist/src/type-inference-verification/ability-lifecycle-succeed-fail-tests.js.map +1 -0
  169. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.d.ts +4305 -0
  170. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.d.ts.map +1 -0
  171. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.js +644 -0
  172. package/dist/src/type-inference-verification/allow-deny-test-cases-ability.js.map +1 -0
  173. package/dist/src/type-inference-verification/allow-deny-test-cases.d.ts +646 -0
  174. package/dist/src/type-inference-verification/allow-deny-test-cases.d.ts.map +1 -0
  175. package/dist/src/type-inference-verification/allow-deny-test-cases.js +264 -0
  176. package/dist/src/type-inference-verification/allow-deny-test-cases.js.map +1 -0
  177. package/dist/src/type-inference-verification/context-switching-tests.d.ts +637 -0
  178. package/dist/src/type-inference-verification/context-switching-tests.d.ts.map +1 -0
  179. package/dist/src/type-inference-verification/context-switching-tests.js +229 -0
  180. package/dist/src/type-inference-verification/context-switching-tests.js.map +1 -0
  181. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.d.ts +2 -0
  182. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.d.ts.map +1 -0
  183. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.js +56 -0
  184. package/dist/src/type-inference-verification/create-policy-map-from-tool-policies.js.map +1 -0
  185. package/dist/src/type-inference-verification/create-vincent-ability-policy.d.ts +2 -0
  186. package/dist/src/type-inference-verification/create-vincent-ability-policy.d.ts.map +1 -0
  187. package/dist/src/type-inference-verification/create-vincent-ability-policy.js +49 -0
  188. package/dist/src/type-inference-verification/create-vincent-ability-policy.js.map +1 -0
  189. package/dist/src/type-inference-verification/create-vincent-ability.d.ts +250 -0
  190. package/dist/src/type-inference-verification/create-vincent-ability.d.ts.map +1 -0
  191. package/dist/src/type-inference-verification/create-vincent-ability.js +68 -0
  192. package/dist/src/type-inference-verification/create-vincent-ability.js.map +1 -0
  193. package/dist/src/type-inference-verification/parameter-inference-tests-tool.d.ts +1710 -0
  194. package/dist/src/type-inference-verification/parameter-inference-tests-tool.d.ts.map +1 -0
  195. package/dist/src/type-inference-verification/parameter-inference-tests-tool.js +537 -0
  196. package/dist/src/type-inference-verification/parameter-inference-tests-tool.js.map +1 -0
  197. package/dist/src/type-inference-verification/parameter-inference-tests.d.ts +456 -0
  198. package/dist/src/type-inference-verification/parameter-inference-tests.d.ts.map +1 -0
  199. package/dist/src/type-inference-verification/parameter-inference-tests.js +179 -0
  200. package/dist/src/type-inference-verification/parameter-inference-tests.js.map +1 -0
  201. package/dist/src/type-inference-verification/playground.d.ts +1556 -0
  202. package/dist/src/type-inference-verification/playground.d.ts.map +1 -0
  203. package/dist/src/type-inference-verification/playground.js +473 -0
  204. package/dist/src/type-inference-verification/playground.js.map +1 -0
  205. package/dist/src/type-inference-verification/schema-test.d.ts +470 -0
  206. package/dist/src/type-inference-verification/schema-test.d.ts.map +1 -0
  207. package/dist/src/type-inference-verification/schema-test.js +252 -0
  208. package/dist/src/type-inference-verification/schema-test.js.map +1 -0
  209. package/package.json +43 -0
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ // src/lib/policyCore/helpers/zod.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PolicyResponseShape = void 0;
5
+ exports.validateOrDeny = validateOrDeny;
6
+ exports.getValidatedParamsOrDeny = getValidatedParamsOrDeny;
7
+ exports.getSchemaForPolicyResponseResult = getSchemaForPolicyResponseResult;
8
+ const zod_1 = require("zod");
9
+ const utils_1 = require("../../utils");
10
+ const resultCreators_1 = require("./resultCreators");
11
+ const typeGuards_1 = require("./typeGuards");
12
+ /**
13
+ * Matches the minimum structure of a PolicyResponse.
14
+ * This is useful when validating that a response shape is at least plausible.
15
+ */
16
+ exports.PolicyResponseShape = zod_1.z.object({
17
+ allow: zod_1.z.boolean(),
18
+ result: zod_1.z.unknown(),
19
+ });
20
+ /**
21
+ * Validates a value using a Zod schema (or requires undefined if none given).
22
+ * Returns parsed result or a standardized deny object.
23
+ *
24
+ * @param value - The raw value to validate
25
+ * @param schema - A Zod schema to apply, or undefined (meaning: must be undefined)
26
+ * @param phase - One of 'evaluate' | 'precheck' | 'commit'
27
+ * @param stage - 'parameters' (before calling the lifecycle phase) or 'result' (after receiving the result)
28
+ *
29
+ * @returns The parsed result, or a PolicyResponseDeny with a ZodValidationDenyResult
30
+ */
31
+ function validateOrDeny(value, schema, phase, stage) {
32
+ const parsed = schema.safeParse(value);
33
+ if (!parsed.success) {
34
+ const descriptor = stage === 'input' ? 'parameters' : 'result';
35
+ const message = `Invalid ${phase} ${descriptor}.`;
36
+ return (0, resultCreators_1.createDenyResult)({
37
+ runtimeError: message,
38
+ schemaValidationError: {
39
+ zodError: parsed.error,
40
+ phase,
41
+ stage,
42
+ },
43
+ });
44
+ }
45
+ return parsed.data;
46
+ }
47
+ function getValidatedParamsOrDeny({ rawAbilityParams, rawUserParams, abilityParamsSchema, userParamsSchema, phase, }) {
48
+ const abilityParams = validateOrDeny(rawAbilityParams, abilityParamsSchema, phase, 'input');
49
+ if ((0, typeGuards_1.isPolicyDenyResponse)(abilityParams)) {
50
+ return abilityParams;
51
+ }
52
+ const userParams = validateOrDeny(rawUserParams, userParamsSchema, phase, 'input');
53
+ if ((0, typeGuards_1.isPolicyDenyResponse)(userParams)) {
54
+ return userParams;
55
+ }
56
+ return {
57
+ abilityParams,
58
+ userParams,
59
+ };
60
+ }
61
+ /**
62
+ * Given an unknown policy response result and the known allow/deny schemas,
63
+ * this function returns the appropriate Zod schema to use when validating `.result`.
64
+ *
65
+ * - If the response shape is invalid, returns a Zod schema matching the PolicyResponse structure.
66
+ * - If the shape is valid, returns either the allow or deny result schema.
67
+ */
68
+ function getSchemaForPolicyResponseResult({ value, allowResultSchema, denyResultSchema, }) {
69
+ if (!(0, typeGuards_1.isPolicyResponse)(value)) {
70
+ console.log('getSchemaForPolicyResponseResult !isPolicyResponse', JSON.stringify(value, utils_1.bigintReplacer));
71
+ return {
72
+ schemaToUse: exports.PolicyResponseShape,
73
+ parsedType: 'unknown',
74
+ };
75
+ }
76
+ console.log('getSchemaForPolicyResponseResult value is', JSON.stringify(value, utils_1.bigintReplacer));
77
+ return {
78
+ schemaToUse: value.allow ? allowResultSchema : denyResultSchema,
79
+ parsedType: value.allow ? 'allow' : 'deny',
80
+ };
81
+ }
82
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/helpers/zod.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;AAiCpC,wCAsBC;AAED,4DAmCC;AASD,4EA6BC;AA7HD,6BAAwB;AAIxB,uCAA6C;AAC7C,qDAAoD;AACpD,6CAAsE;AAEtE;;;GAGG;AACU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE;IAClB,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAC5B,KAAc,EACd,MAAS,EACT,KAAyC,EACzC,KAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/D,MAAM,OAAO,GAAG,WAAW,KAAK,IAAI,UAAU,GAAG,CAAC;QAClD,OAAO,IAAA,iCAAgB,EAAC;YACtB,YAAY,EAAE,OAAO;YACrB,qBAAqB,EAAE;gBACrB,QAAQ,EAAE,MAAM,CAAC,KAAK;gBACtB,KAAK;gBACL,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAgB,wBAAwB,CAGtC,EACA,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,GAON;IAMC,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5F,IAAI,IAAA,iCAAoB,EAAC,aAAa,CAAC,EAAE,CAAC;QACxC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnF,IAAI,IAAA,iCAAoB,EAAC,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO;QACL,aAAa;QACb,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gCAAgC,CAAC,EAC/C,KAAK,EACL,iBAAiB,EACjB,gBAAgB,GAKjB;IAIC,IAAI,CAAC,IAAA,6BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,oDAAoD,EACpD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,sBAAc,CAAC,CACtC,CAAC;QAEF,OAAO;YACL,WAAW,EAAE,2BAAmB;YAChC,UAAU,EAAE,SAAS;SACtB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,sBAAc,CAAC,CAAC,CAAC;IAChG,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB;QAC/D,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createVincentAbilityPolicy, createVincentPolicy } from './vincentPolicy';
2
+ export type { VincentPolicyConfig, PolicyConfigLifecycleFunction, PolicyConfigCommitFunction, } from './policyConfig/types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/policyCore/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAClF,YAAY,EACV,mBAAmB,EACnB,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // src/lib/policyCore/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createVincentPolicy = exports.createVincentAbilityPolicy = void 0;
5
+ var vincentPolicy_1 = require("./vincentPolicy");
6
+ Object.defineProperty(exports, "createVincentAbilityPolicy", { enumerable: true, get: function () { return vincentPolicy_1.createVincentAbilityPolicy; } });
7
+ Object.defineProperty(exports, "createVincentPolicy", { enumerable: true, get: function () { return vincentPolicy_1.createVincentPolicy; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/policyCore/index.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAE9B,iDAAkF;AAAzE,2HAAA,0BAA0B,OAAA;AAAE,oHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,12 @@
1
+ import type { BaseContext } from '../../../types';
2
+ import type { PolicyContext } from './types';
3
+ /**
4
+ * Creates a policy execution context to be passed into lifecycle methods
5
+ * like `evaluate`, `precheck`, and `commit`. This context includes strongly
6
+ * typed `allow()` and `deny()` helpers based on optional Zod schemas, and is used
7
+ * internally by VincentPolicyConfig wrappers to standardize response structure.
8
+ */
9
+ export declare function createPolicyContext({ baseContext, }: {
10
+ baseContext: BaseContext;
11
+ }): PolicyContext<any, any>;
12
+ //# sourceMappingURL=policyConfigContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policyConfigContext.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/policyCore/policyConfig/context/policyConfigContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;CAC1B,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAO1B"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // src/lib/policyConfig/context/policyConfigContext.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createPolicyContext = createPolicyContext;
5
+ const resultCreators_1 = require("./resultCreators");
6
+ /**
7
+ * Creates a policy execution context to be passed into lifecycle methods
8
+ * like `evaluate`, `precheck`, and `commit`. This context includes strongly
9
+ * typed `allow()` and `deny()` helpers based on optional Zod schemas, and is used
10
+ * internally by VincentPolicyConfig wrappers to standardize response structure.
11
+ */
12
+ function createPolicyContext({ baseContext, }) {
13
+ // Select the appropriate function implementation based on schema presence
14
+ return {
15
+ ...baseContext,
16
+ allow: resultCreators_1.createAllow,
17
+ deny: resultCreators_1.createDeny,
18
+ };
19
+ }
20
+ //# sourceMappingURL=policyConfigContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policyConfigContext.js","sourceRoot":"","sources":["../../../../../../src/lib/policyCore/policyConfig/context/policyConfigContext.ts"],"names":[],"mappings":";AAAA,sDAAsD;;AAatD,kDAWC;AAnBD,qDAA2D;AAE3D;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,EAClC,WAAW,GAGZ;IACC,0EAA0E;IAC1E,OAAO;QACL,GAAG,WAAW;QACd,KAAK,EAAE,4BAA+C;QACtD,IAAI,EAAE,2BAA6C;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ContextAllowResponse, ContextAllowResponseNoResult, ContextDenyResponse, ContextDenyResponseNoResult } from './types';
2
+ export declare function createAllow<T>(result: T): ContextAllowResponse<T>;
3
+ export declare function createAllowNoResult(): ContextAllowResponseNoResult;
4
+ export declare function createDeny<T>(result: T): ContextDenyResponse<T>;
5
+ export declare function createDenyNoResult(): ContextDenyResponseNoResult;
6
+ //# sourceMappingURL=resultCreators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultCreators.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/policyCore/policyConfig/context/resultCreators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAKjE;AAED,wBAAgB,mBAAmB,IAAI,4BAA4B,CAIlE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAK/D;AAED,wBAAgB,kBAAkB,IAAI,2BAA2B,CAKhE"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAllow = createAllow;
4
+ exports.createAllowNoResult = createAllowNoResult;
5
+ exports.createDeny = createDeny;
6
+ exports.createDenyNoResult = createDenyNoResult;
7
+ function createAllow(result) {
8
+ return {
9
+ allow: true,
10
+ result,
11
+ };
12
+ }
13
+ function createAllowNoResult() {
14
+ return {
15
+ allow: true,
16
+ };
17
+ }
18
+ function createDeny(result) {
19
+ return {
20
+ allow: false,
21
+ result,
22
+ };
23
+ }
24
+ function createDenyNoResult() {
25
+ return {
26
+ allow: false,
27
+ result: undefined,
28
+ };
29
+ }
30
+ //# sourceMappingURL=resultCreators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultCreators.js","sourceRoot":"","sources":["../../../../../../src/lib/policyCore/policyConfig/context/resultCreators.ts"],"names":[],"mappings":";;AAOA,kCAKC;AAED,kDAIC;AAED,gCAKC;AAED,gDAKC;AAzBD,SAAgB,WAAW,CAAI,MAAS;IACtC,OAAO;QACL,KAAK,EAAE,IAAI;QACX,MAAM;KACoB,CAAC;AAC/B,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO;QACL,KAAK,EAAE,IAAI;KACoB,CAAC;AACpC,CAAC;AAED,SAAgB,UAAU,CAAI,MAAS;IACrC,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,MAAM;KACmB,CAAC;AAC9B,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,SAAkB;KACI,CAAC;AACnC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { z } from 'zod';
2
+ import type { PolicyResponseAllow, PolicyResponseAllowNoResult, PolicyResponseDeny, PolicyResponseDenyNoResult, BaseContext } from '../../../types';
3
+ declare const YouMustCallContextAllowOrDeny: unique symbol;
4
+ type MustCallContextAllowOrDeny<T> = T & {
5
+ [YouMustCallContextAllowOrDeny]: 'PolicyResponse';
6
+ };
7
+ export type EnforcePolicyResponse<T> = typeof YouMustCallContextAllowOrDeny extends keyof T ? T : {
8
+ ERROR: 'You must return the result of context.allow() or context.deny()';
9
+ FIX: 'Do not construct the return value manually. Use the injected context helpers.';
10
+ };
11
+ export type ContextAllowResponse<AllowResult> = MustCallContextAllowOrDeny<PolicyResponseAllow<AllowResult>>;
12
+ export type ContextAllowResponseNoResult = MustCallContextAllowOrDeny<PolicyResponseAllowNoResult>;
13
+ export type ContextDenyResponse<DenyResult> = MustCallContextAllowOrDeny<PolicyResponseDeny<DenyResult>>;
14
+ export type ContextDenyResponseNoResult = MustCallContextAllowOrDeny<PolicyResponseDenyNoResult>;
15
+ /**
16
+ * @expand
17
+ * @category Interfaces
18
+ * */
19
+ export interface PolicyContext<AllowSchema extends z.ZodType = z.ZodUndefined, DenySchema extends z.ZodType = z.ZodUndefined> extends BaseContext {
20
+ allow: AllowSchema extends z.ZodUndefined ? () => ContextAllowResponseNoResult : (result: z.infer<AllowSchema>) => ContextAllowResponse<z.infer<AllowSchema>>;
21
+ deny: DenySchema extends z.ZodUndefined ? () => ContextDenyResponseNoResult : (result: z.infer<DenySchema>, runtimeError?: string) => ContextDenyResponse<z.infer<DenySchema>>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/policyCore/policyConfig/context/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,0BAA0B,EAC1B,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,QAAA,MAAM,6BAA6B,EAAE,OAAO,MAE3C,CAAC;AAEF,KAAK,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG;IACvC,CAAC,6BAA6B,CAAC,EAAE,gBAAgB,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,OAAO,6BAA6B,SAAS,MAAM,CAAC,GACvF,CAAC,GACD;IACE,KAAK,EAAE,iEAAiE,CAAC;IACzE,GAAG,EAAE,+EAA+E,CAAC;CACtF,CAAC;AAEN,MAAM,MAAM,oBAAoB,CAAC,WAAW,IAAI,0BAA0B,CACxE,mBAAmB,CAAC,WAAW,CAAC,CACjC,CAAC;AACF,MAAM,MAAM,4BAA4B,GAAG,0BAA0B,CAAC,2BAA2B,CAAC,CAAC;AACnG,MAAM,MAAM,mBAAmB,CAAC,UAAU,IAAI,0BAA0B,CACtE,kBAAkB,CAAC,UAAU,CAAC,CAC/B,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,0BAA0B,CAAC,CAAC;AAEjG;;;KAGK;AACL,MAAM,WAAW,aAAa,CAC5B,WAAW,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EAC9C,UAAU,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,CAC7C,SAAQ,WAAW;IACnB,KAAK,EAAE,WAAW,SAAS,CAAC,CAAC,YAAY,GACrC,MAAM,4BAA4B,GAClC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjF,IAAI,EAAE,UAAU,SAAS,CAAC,CAAC,YAAY,GACnC,MAAM,2BAA2B,GACjC,CACE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAC3B,YAAY,CAAC,EAAE,MAAM,KAClB,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;CACnD"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // src/lib/policyConfig/context/types.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const YouMustCallContextAllowOrDeny = Symbol('PolicyResponses must come from calling context.allow() or context.deny()');
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/lib/policyCore/policyConfig/context/types.ts"],"names":[],"mappings":";AAAA,wCAAwC;;AAYxC,MAAM,6BAA6B,GAAkB,MAAM,CACzD,0EAA0E,CAC3E,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { z } from 'zod';
2
+ import type { ContextAllowResponse, ContextAllowResponseNoResult, ContextDenyResponse, ContextDenyResponseNoResult, EnforcePolicyResponse, PolicyContext } from './context/types';
3
+ /** `evaluate()` and `precheck()` functions that you define when using `createVincentPolicy()` will match this function signature.
4
+ * Note that the arguments and return types are inferred based on the ZOD schemas that you pass to `createVincentPolicy`
5
+ *
6
+ * @category Interfaces
7
+ */
8
+ export type PolicyConfigLifecycleFunction<AbilityParams extends z.ZodType, UserParams extends z.ZodType = z.ZodUndefined, AllowResult extends z.ZodType = z.ZodUndefined, DenyResult extends z.ZodType = z.ZodUndefined> = (args: {
9
+ abilityParams: z.infer<AbilityParams>;
10
+ userParams: z.infer<UserParams>;
11
+ }, ctx: PolicyContext<AllowResult, DenyResult>) => Promise<EnforcePolicyResponse<(AllowResult extends z.ZodUndefined ? ContextAllowResponseNoResult : ContextAllowResponse<z.infer<AllowResult>>) | (DenyResult extends z.ZodUndefined ? ContextDenyResponseNoResult : ContextDenyResponse<z.infer<DenyResult>>)>>;
12
+ /** Unlike `evaluate()` and `precheck()`, commit receives specific arguments provided by the ability during its `execute()` phase
13
+ * instead of than `abilityParams` and `userParams` that the ability was called with.
14
+ *
15
+ * @category Interfaces
16
+ */
17
+ export type PolicyConfigCommitFunction<CommitParams extends z.ZodType = z.ZodUndefined, CommitAllowResult extends z.ZodType = z.ZodUndefined, CommitDenyResult extends z.ZodType = z.ZodUndefined> = (args: CommitParams extends z.ZodType ? z.infer<CommitParams> : undefined, context: PolicyContext<CommitAllowResult, CommitDenyResult>) => Promise<EnforcePolicyResponse<(CommitAllowResult extends z.ZodUndefined ? ContextAllowResponseNoResult : ContextAllowResponse<z.infer<CommitAllowResult>>) | (CommitDenyResult extends z.ZodUndefined ? ContextDenyResponseNoResult : ContextDenyResponse<z.infer<CommitDenyResult>>)>>;
18
+ /**
19
+ * @typeParam PackageName {@removeTypeParameterCompletely}
20
+ * @typeParam PolicyAbilityParams {@removeTypeParameterCompletely}
21
+ * @typeParam UserParams {@removeTypeParameterCompletely}
22
+ * @typeParam PrecheckAllowResult {@removeTypeParameterCompletely}
23
+ * @typeParam PrecheckDenyResult {@removeTypeParameterCompletely}
24
+ * @typeParam EvalAllowResult {@removeTypeParameterCompletely}
25
+ * @typeParam EvalDenyResult {@removeTypeParameterCompletely}
26
+ * @typeParam CommitParams {@removeTypeParameterCompletely}
27
+ * @typeParam CommitAllowResult {@removeTypeParameterCompletely}
28
+ * @typeParam CommitDenyResult {@removeTypeParameterCompletely}
29
+ * @typeParam CommitDenyResult {@removeTypeParameterCompletely}
30
+ */
31
+ export type VincentPolicyConfig<PackageName extends string, PolicyAbilityParams extends z.ZodType, UserParams extends z.ZodType = z.ZodUndefined, PrecheckAllowResult extends z.ZodType = z.ZodUndefined, PrecheckDenyResult extends z.ZodType = z.ZodUndefined, EvalAllowResult extends z.ZodType = z.ZodUndefined, EvalDenyResult extends z.ZodType = z.ZodUndefined, CommitParams extends z.ZodType = z.ZodUndefined, CommitAllowResult extends z.ZodType = z.ZodUndefined, CommitDenyResult extends z.ZodType = z.ZodUndefined, EvaluateFn = PolicyConfigLifecycleFunction<PolicyAbilityParams, UserParams, EvalAllowResult, EvalDenyResult>, PrecheckFn = undefined | PolicyConfigLifecycleFunction<PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult>, CommitFn = undefined | PolicyConfigCommitFunction<CommitParams, CommitAllowResult, CommitDenyResult>> = {
32
+ packageName: PackageName;
33
+ abilityParamsSchema: PolicyAbilityParams;
34
+ userParamsSchema?: UserParams;
35
+ evalAllowResultSchema?: EvalAllowResult;
36
+ evalDenyResultSchema?: EvalDenyResult;
37
+ precheckAllowResultSchema?: PrecheckAllowResult;
38
+ precheckDenyResultSchema?: PrecheckDenyResult;
39
+ commitParamsSchema?: CommitParams;
40
+ commitAllowResultSchema?: CommitAllowResult;
41
+ commitDenyResultSchema?: CommitDenyResult;
42
+ evaluate: EvaluateFn;
43
+ precheck?: PrecheckFn;
44
+ commit?: CommitFn;
45
+ };
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/policyConfig/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/policyConfig/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { ethers } from 'ethers';
2
+ import type { AbilityPolicyParameterData } from '@lit-protocol/vincent-contracts-sdk';
3
+ export declare const getDecodedPolicyParams: ({ decodedPolicies, policyIpfsCid, }: {
4
+ decodedPolicies: AbilityPolicyParameterData;
5
+ policyIpfsCid: string;
6
+ }) => Promise<Record<string, any> | undefined>;
7
+ export declare const getPoliciesAndAppVersion: ({ delegationRpcUrl, appDelegateeAddress, agentWalletPkpEthAddress, abilityIpfsCid, }: {
8
+ delegationRpcUrl: string;
9
+ appDelegateeAddress: string;
10
+ agentWalletPkpEthAddress: string;
11
+ abilityIpfsCid: string;
12
+ }) => Promise<{
13
+ appId: ethers.BigNumber;
14
+ appVersion: ethers.BigNumber;
15
+ decodedPolicies: AbilityPolicyParameterData;
16
+ }>;
17
+ //# sourceMappingURL=getOnchainPolicyParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOnchainPolicyParams.d.ts","sourceRoot":"","sources":["../../../../../src/lib/policyCore/policyParameters/getOnchainPolicyParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,sBAAsB,GAAU,qCAG1C;IACD,eAAe,EAAE,0BAA0B,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAW1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,sFAK5C;IACD,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB,KAAG,OAAO,CAAC;IACV,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;IAC7B,eAAe,EAAE,0BAA0B,CAAC;CAC7C,CA6CA,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ // src/lib/policyCore/policyParameters/getOnchainPolicyParams.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getPoliciesAndAppVersion = exports.getDecodedPolicyParams = void 0;
5
+ const ethers_1 = require("ethers");
6
+ const vincent_contracts_sdk_1 = require("@lit-protocol/vincent-contracts-sdk");
7
+ const utils_1 = require("../../utils");
8
+ const getDecodedPolicyParams = async ({ decodedPolicies, policyIpfsCid, }) => {
9
+ console.log('All on-chain policy params:', JSON.stringify(decodedPolicies, utils_1.bigintReplacer));
10
+ const policyParams = decodedPolicies[policyIpfsCid];
11
+ if (policyParams) {
12
+ return policyParams;
13
+ }
14
+ console.log('Found no on-chain parameters for policy IPFS CID:', policyIpfsCid);
15
+ return undefined;
16
+ };
17
+ exports.getDecodedPolicyParams = getDecodedPolicyParams;
18
+ const getPoliciesAndAppVersion = async ({ delegationRpcUrl, appDelegateeAddress, agentWalletPkpEthAddress, abilityIpfsCid, }) => {
19
+ console.log('getPoliciesAndAppVersion', {
20
+ delegationRpcUrl,
21
+ appDelegateeAddress,
22
+ agentWalletPkpEthAddress,
23
+ abilityIpfsCid,
24
+ });
25
+ try {
26
+ // Create a signer using the delegationRpcUrl
27
+ const signer = ethers_1.ethers.Wallet.createRandom().connect(new ethers_1.ethers.providers.StaticJsonRpcProvider(delegationRpcUrl));
28
+ const contractClient = (0, vincent_contracts_sdk_1.getClient)({
29
+ signer,
30
+ });
31
+ // Use the contracts-sdk to validate ability execution and get policies
32
+ const validationResult = await contractClient.validateAbilityExecutionAndGetPolicies({
33
+ delegateeAddress: appDelegateeAddress,
34
+ pkpEthAddress: agentWalletPkpEthAddress,
35
+ abilityIpfsCid: abilityIpfsCid,
36
+ });
37
+ // We exit early here because !validationResult.isPermitted means appDelegateeAddress
38
+ // is not permitted to execute abilityIpfsCid for the Vincent App on behalf of the agentWalletPkpTokenId
39
+ // and no further processing is needed
40
+ if (!validationResult.isPermitted) {
41
+ throw new Error(`App Delegatee: ${appDelegateeAddress} is not permitted to execute Vincent Ability: ${abilityIpfsCid} for App ID: ${validationResult.appId} App Version: ${validationResult.appVersion} using Agent Wallet PKP Address: ${agentWalletPkpEthAddress}`);
42
+ }
43
+ return {
44
+ appId: ethers_1.ethers.BigNumber.from(validationResult.appId),
45
+ appVersion: ethers_1.ethers.BigNumber.from(validationResult.appVersion),
46
+ decodedPolicies: validationResult.decodedPolicies,
47
+ };
48
+ }
49
+ catch (error) {
50
+ throw new Error(`Error getting on-chain policy parameters from Vincent contract using App Delegatee: ${appDelegateeAddress} and Agent Wallet PKP Address: ${agentWalletPkpEthAddress} and Vincent Ability: ${abilityIpfsCid}: ${error instanceof Error ? error.message : String(error)}`);
51
+ }
52
+ };
53
+ exports.getPoliciesAndAppVersion = getPoliciesAndAppVersion;
54
+ //# sourceMappingURL=getOnchainPolicyParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOnchainPolicyParams.js","sourceRoot":"","sources":["../../../../../src/lib/policyCore/policyParameters/getOnchainPolicyParams.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;AAEhE,mCAAgC;AAOhC,+EAAgE;AAEhE,uCAA6C;AAEtC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,eAAe,EACf,aAAa,GAId,EAA4C,EAAE;IAC7C,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,sBAAc,CAAC,CAAC,CAAC;IAE5F,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAEpD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,aAAa,CAAC,CAAC;IAChF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAjBW,QAAA,sBAAsB,0BAiBjC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GAMf,EAIE,EAAE;IACH,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QACtC,gBAAgB;QAChB,mBAAmB;QACnB,wBAAwB;QACxB,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,MAAM,GAAG,eAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,OAAO,CACjD,IAAI,eAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAC7D,CAAC;QAEF,MAAM,cAAc,GAAG,IAAA,iCAAS,EAAC;YAC/B,MAAM;SACP,CAAC,CAAC;QAEH,uEAAuE;QACvE,MAAM,gBAAgB,GACpB,MAAM,cAAc,CAAC,sCAAsC,CAAC;YAC1D,gBAAgB,EAAE,mBAAmB;YACrC,aAAa,EAAE,wBAAwB;YACvC,cAAc,EAAE,cAAc;SAC/B,CAAC,CAAC;QAEL,qFAAqF;QACrF,wGAAwG;QACxG,sCAAsC;QACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,kBAAkB,mBAAmB,iDAAiD,cAAc,gBAAgB,gBAAgB,CAAC,KAAK,iBAAiB,gBAAgB,CAAC,UAAU,oCAAoC,wBAAwB,EAAE,CACrP,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACpD,UAAU,EAAE,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;YAC9D,eAAe,EAAE,gBAAgB,CAAC,eAAe;SAClD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,uFAAuF,mBAAmB,kCAAkC,wBAAwB,yBAAyB,cAAc,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzQ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AA3DW,QAAA,wBAAwB,4BA2DnC"}
@@ -0,0 +1,92 @@
1
+ import { z } from 'zod';
2
+ import type { CommitLifecycleFunction, PolicyLifecycleFunction, VincentPolicy } from '../types';
3
+ import type { BundledVincentPolicy } from './bundledPolicy/types';
4
+ import type { PolicyConfigCommitFunction, PolicyConfigLifecycleFunction, VincentPolicyConfig } from './policyConfig/types';
5
+ /**
6
+ * The `createVincentPolicy()` method is used to define a policy's lifecycle methods and ensure that arguments provided to the ability's
7
+ * lifecycle methods, as well as their return values, are validated and fully type-safe by defining ZOD schemas for them.
8
+ *
9
+ * @typeParam PackageName {@removeTypeParameterCompletely}
10
+ * @typeParam PolicyAbilityParams {@removeTypeParameterCompletely}
11
+ * @typeParam UserParams {@removeTypeParameterCompletely}
12
+ * @typeParam PrecheckAllowResult {@removeTypeParameterCompletely}
13
+ * @typeParam PrecheckDenyResult {@removeTypeParameterCompletely}
14
+ * @typeParam EvalAllowResult {@removeTypeParameterCompletely}
15
+ * @typeParam EvalDenyResult {@removeTypeParameterCompletely}
16
+ * @typeParam CommitParams {@removeTypeParameterCompletely}
17
+ * @typeParam CommitAllowResult {@removeTypeParameterCompletely}
18
+ * @typeParam CommitDenyResult {@removeTypeParameterCompletely}
19
+ * @category API Methods
20
+ */
21
+ export declare function createVincentPolicy<PackageName extends string, PolicyAbilityParams extends z.ZodType, UserParams extends z.ZodType = z.ZodUndefined, PrecheckAllowResult extends z.ZodType = z.ZodUndefined, PrecheckDenyResult extends z.ZodType = z.ZodUndefined, EvalAllowResult extends z.ZodType = z.ZodUndefined, EvalDenyResult extends z.ZodType = z.ZodUndefined, CommitParams extends z.ZodType = z.ZodUndefined, CommitAllowResult extends z.ZodType = z.ZodUndefined, CommitDenyResult extends z.ZodType = z.ZodUndefined>(PolicyConfig: VincentPolicyConfig<PackageName, PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult, EvalAllowResult, EvalDenyResult, CommitParams, CommitAllowResult, CommitDenyResult, PolicyConfigLifecycleFunction<PolicyAbilityParams, UserParams, EvalAllowResult, EvalDenyResult>, PolicyConfigLifecycleFunction<PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult>, PolicyConfigCommitFunction<CommitParams, CommitAllowResult, CommitDenyResult>>): VincentPolicy<PackageName, PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult, EvalAllowResult, EvalDenyResult, CommitParams, CommitAllowResult, CommitDenyResult, PolicyLifecycleFunction<PolicyAbilityParams, UserParams, EvalAllowResult, EvalDenyResult>, PolicyLifecycleFunction<PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult>, CommitLifecycleFunction<CommitParams, CommitAllowResult, CommitDenyResult>>;
22
+ /**
23
+ * `createVincentAbilityPolicy()` is used to bind a policy to a specific ability. You must provide a `abilityParameterMappings` argument
24
+ * which instructs the ability which of its abilityParams should be passed to the Vincent Policy during evaluation, and
25
+ * defines what the argument passed to the ability should be.
26
+ *
27
+ * For example, a Ability might receive an argument called `tokenInAmount`, but it may need to pass that as `buyAmount` to a
28
+ * policy that uses the `tokenInAmount` for its own purposes.
29
+ *
30
+ * ```typescript
31
+ * import { bundledVincentPolicy } from '@lit-protocol/vincent-policy-spending-limit';
32
+ *
33
+ * const SpendingLimitPolicy = createVincentAbilityPolicy({
34
+ * abilityParamsSchema,
35
+ * bundledVincentPolicy,
36
+ * abilityParameterMappings: {
37
+ * rpcUrlForUniswap: 'rpcUrlForUniswap',
38
+ * chainIdForUniswap: 'chainIdForUniswap',
39
+ * ethRpcUrl: 'ethRpcUrl',
40
+ * tokenInAddress: 'tokenAddress',
41
+ * tokenInDecimals: 'tokenDecimals',
42
+ * tokenInAmount: 'buyAmount',
43
+ * },
44
+ * });
45
+ * ```
46
+ *
47
+ * @typeParam PackageName {@removeTypeParameterCompletely}
48
+ * @typeParam IpfsCid {@removeTypeParameterCompletely}
49
+ * @typeParam AbilityParamsSchema {@removeTypeParameterCompletely}
50
+ * @typeParam PolicyAbilityParams {@removeTypeParameterCompletely}
51
+ * @typeParam UserParams {@removeTypeParameterCompletely}
52
+ * @typeParam PrecheckAllowResult {@removeTypeParameterCompletely}
53
+ * @typeParam PrecheckDenyResult {@removeTypeParameterCompletely}
54
+ * @typeParam EvalAllowResult {@removeTypeParameterCompletely}
55
+ * @typeParam EvalDenyResult {@removeTypeParameterCompletely}
56
+ * @typeParam CommitParams {@removeTypeParameterCompletely}
57
+ * @typeParam CommitAllowResult {@removeTypeParameterCompletely}
58
+ * @typeParam CommitDenyResult {@removeTypeParameterCompletely}
59
+ *
60
+ * @returns A Vincent Policy that is configured to work with the provided ability
61
+ * {@displayType A Vincent Policy that is configured to work with the provided ability }
62
+ * @category API Methods
63
+ */
64
+ export declare function createVincentAbilityPolicy<const PackageName extends string, const IpfsCid extends string, const VincentAbilityApiVersion extends string, AbilityParamsSchema extends z.ZodType, PolicyAbilityParams extends z.ZodType, UserParams extends z.ZodType = z.ZodUndefined, PrecheckAllowResult extends z.ZodType = z.ZodUndefined, PrecheckDenyResult extends z.ZodType = z.ZodUndefined, EvalAllowResult extends z.ZodType = z.ZodUndefined, EvalDenyResult extends z.ZodType = z.ZodUndefined, CommitParams extends z.ZodType = z.ZodUndefined, CommitAllowResult extends z.ZodType = z.ZodUndefined, CommitDenyResult extends z.ZodType = z.ZodUndefined>(config: {
65
+ abilityParamsSchema: AbilityParamsSchema;
66
+ bundledVincentPolicy: BundledVincentPolicy<VincentPolicy<PackageName, PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult, EvalAllowResult, EvalDenyResult, CommitParams, CommitAllowResult, CommitDenyResult, PolicyLifecycleFunction<PolicyAbilityParams, UserParams, EvalAllowResult, EvalDenyResult>, PolicyLifecycleFunction<PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult>, CommitLifecycleFunction<CommitParams, CommitAllowResult, CommitDenyResult>>, IpfsCid, VincentAbilityApiVersion>;
67
+ abilityParameterMappings: Partial<{
68
+ [K in keyof z.infer<AbilityParamsSchema>]: keyof z.infer<PolicyAbilityParams>;
69
+ }>;
70
+ }): {
71
+ vincentPolicy: VincentPolicy<PackageName, PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult, EvalAllowResult, EvalDenyResult, CommitParams, CommitAllowResult, CommitDenyResult, PolicyLifecycleFunction<PolicyAbilityParams, UserParams, EvalAllowResult, EvalDenyResult>, PolicyLifecycleFunction<PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult>, CommitLifecycleFunction<CommitParams, CommitAllowResult, CommitDenyResult>>;
72
+ ipfsCid: IpfsCid;
73
+ abilityParameterMappings: typeof config.abilityParameterMappings;
74
+ /** @hidden */
75
+ vincentAbilityApiVersion: VincentAbilityApiVersion;
76
+ /** @hidden */
77
+ __schemaTypes: {
78
+ policyAbilityParamsSchema: PolicyAbilityParams;
79
+ userParamsSchema: UserParams;
80
+ evalAllowResultSchema: EvalAllowResult;
81
+ evalDenyResultSchema: EvalDenyResult;
82
+ precheckAllowResultSchema: PrecheckAllowResult;
83
+ precheckDenyResultSchema: PrecheckDenyResult;
84
+ commitParamsSchema: CommitParams;
85
+ commitAllowResultSchema: CommitAllowResult;
86
+ commitDenyResultSchema: CommitDenyResult;
87
+ evaluate: PolicyLifecycleFunction<PolicyAbilityParams, UserParams, EvalAllowResult, EvalDenyResult>;
88
+ precheck: PolicyLifecycleFunction<PolicyAbilityParams, UserParams, PrecheckAllowResult, PrecheckDenyResult> | undefined;
89
+ commit: CommitLifecycleFunction<CommitParams, CommitAllowResult, CommitDenyResult> | undefined;
90
+ };
91
+ };
92
+ //# sourceMappingURL=vincentPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vincentPolicy.d.ts","sourceRoot":"","sources":["../../../../src/lib/policyCore/vincentPolicy.ts"],"names":[],"mappings":"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"}