@usesigil/kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (631) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +190 -0
  3. package/dist/advanced-analytics.d.ts +118 -0
  4. package/dist/advanced-analytics.d.ts.map +1 -0
  5. package/dist/advanced-analytics.js +341 -0
  6. package/dist/advanced-analytics.js.map +1 -0
  7. package/dist/agent-analytics.d.ts +76 -0
  8. package/dist/agent-analytics.d.ts.map +1 -0
  9. package/dist/agent-analytics.js +179 -0
  10. package/dist/agent-analytics.js.map +1 -0
  11. package/dist/agent-errors.d.ts +151 -0
  12. package/dist/agent-errors.d.ts.map +1 -0
  13. package/dist/agent-errors.js +2001 -0
  14. package/dist/agent-errors.js.map +1 -0
  15. package/dist/alt-config.d.ts +43 -0
  16. package/dist/alt-config.d.ts.map +1 -0
  17. package/dist/alt-config.js +78 -0
  18. package/dist/alt-config.js.map +1 -0
  19. package/dist/alt-loader.d.ts +47 -0
  20. package/dist/alt-loader.d.ts.map +1 -0
  21. package/dist/alt-loader.js +143 -0
  22. package/dist/alt-loader.js.map +1 -0
  23. package/dist/balance-tracker.d.ts +87 -0
  24. package/dist/balance-tracker.d.ts.map +1 -0
  25. package/dist/balance-tracker.js +181 -0
  26. package/dist/balance-tracker.js.map +1 -0
  27. package/dist/composer.d.ts +56 -0
  28. package/dist/composer.d.ts.map +1 -0
  29. package/dist/composer.js +77 -0
  30. package/dist/composer.js.map +1 -0
  31. package/dist/core/engine.d.ts +17 -0
  32. package/dist/core/engine.d.ts.map +1 -0
  33. package/dist/core/engine.js +177 -0
  34. package/dist/core/engine.js.map +1 -0
  35. package/dist/core/errors.d.ts +24 -0
  36. package/dist/core/errors.d.ts.map +1 -0
  37. package/dist/core/errors.js +16 -0
  38. package/dist/core/errors.js.map +1 -0
  39. package/dist/core/index.d.ts +9 -0
  40. package/dist/core/index.d.ts.map +1 -0
  41. package/dist/core/index.js +10 -0
  42. package/dist/core/index.js.map +1 -0
  43. package/dist/core/policies.d.ts +75 -0
  44. package/dist/core/policies.d.ts.map +1 -0
  45. package/dist/core/policies.js +126 -0
  46. package/dist/core/policies.js.map +1 -0
  47. package/dist/core/registry.d.ts +29 -0
  48. package/dist/core/registry.d.ts.map +1 -0
  49. package/dist/core/registry.js +125 -0
  50. package/dist/core/registry.js.map +1 -0
  51. package/dist/core/state.d.ts +71 -0
  52. package/dist/core/state.d.ts.map +1 -0
  53. package/dist/core/state.js +169 -0
  54. package/dist/core/state.js.map +1 -0
  55. package/dist/create-vault.d.ts +58 -0
  56. package/dist/create-vault.d.ts.map +1 -0
  57. package/dist/create-vault.js +90 -0
  58. package/dist/create-vault.js.map +1 -0
  59. package/dist/custody-adapter.d.ts +54 -0
  60. package/dist/custody-adapter.d.ts.map +1 -0
  61. package/dist/custody-adapter.js +45 -0
  62. package/dist/custody-adapter.js.map +1 -0
  63. package/dist/event-analytics.d.ts +45 -0
  64. package/dist/event-analytics.d.ts.map +1 -0
  65. package/dist/event-analytics.js +277 -0
  66. package/dist/event-analytics.js.map +1 -0
  67. package/dist/events.d.ts +56 -0
  68. package/dist/events.d.ts.map +1 -0
  69. package/dist/events.js +151 -0
  70. package/dist/events.js.map +1 -0
  71. package/dist/formatting.d.ts +103 -0
  72. package/dist/formatting.d.ts.map +1 -0
  73. package/dist/formatting.js +244 -0
  74. package/dist/formatting.js.map +1 -0
  75. package/dist/generated/accounts/agentSpendOverlay.d.ts +54 -0
  76. package/dist/generated/accounts/agentSpendOverlay.d.ts.map +1 -0
  77. package/dist/generated/accounts/agentSpendOverlay.js +74 -0
  78. package/dist/generated/accounts/agentSpendOverlay.js.map +1 -0
  79. package/dist/generated/accounts/agentVault.d.ts +95 -0
  80. package/dist/generated/accounts/agentVault.d.ts.map +1 -0
  81. package/dist/generated/accounts/agentVault.js +83 -0
  82. package/dist/generated/accounts/agentVault.js.map +1 -0
  83. package/dist/generated/accounts/escrowDeposit.d.ts +50 -0
  84. package/dist/generated/accounts/escrowDeposit.d.ts.map +1 -0
  85. package/dist/generated/accounts/escrowDeposit.js +76 -0
  86. package/dist/generated/accounts/escrowDeposit.js.map +1 -0
  87. package/dist/generated/accounts/index.d.ts +17 -0
  88. package/dist/generated/accounts/index.d.ts.map +1 -0
  89. package/dist/generated/accounts/index.js +17 -0
  90. package/dist/generated/accounts/index.js.map +1 -0
  91. package/dist/generated/accounts/instructionConstraints.d.ts +37 -0
  92. package/dist/generated/accounts/instructionConstraints.d.ts.map +1 -0
  93. package/dist/generated/accounts/instructionConstraints.js +64 -0
  94. package/dist/generated/accounts/instructionConstraints.js.map +1 -0
  95. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts +53 -0
  96. package/dist/generated/accounts/pendingConstraintsUpdate.d.ts.map +1 -0
  97. package/dist/generated/accounts/pendingConstraintsUpdate.js +68 -0
  98. package/dist/generated/accounts/pendingConstraintsUpdate.js.map +1 -0
  99. package/dist/generated/accounts/pendingPolicyUpdate.d.ts +72 -0
  100. package/dist/generated/accounts/pendingPolicyUpdate.d.ts.map +1 -0
  101. package/dist/generated/accounts/pendingPolicyUpdate.js +97 -0
  102. package/dist/generated/accounts/pendingPolicyUpdate.js.map +1 -0
  103. package/dist/generated/accounts/policyConfig.d.ts +180 -0
  104. package/dist/generated/accounts/policyConfig.d.ts.map +1 -0
  105. package/dist/generated/accounts/policyConfig.js +88 -0
  106. package/dist/generated/accounts/policyConfig.js.map +1 -0
  107. package/dist/generated/accounts/sessionAuthority.d.ts +104 -0
  108. package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -0
  109. package/dist/generated/accounts/sessionAuthority.js +86 -0
  110. package/dist/generated/accounts/sessionAuthority.js.map +1 -0
  111. package/dist/generated/accounts/spendTracker.d.ts +60 -0
  112. package/dist/generated/accounts/spendTracker.d.ts.map +1 -0
  113. package/dist/generated/accounts/spendTracker.js +74 -0
  114. package/dist/generated/accounts/spendTracker.js.map +1 -0
  115. package/dist/generated/errors/index.d.ts +9 -0
  116. package/dist/generated/errors/index.d.ts.map +1 -0
  117. package/dist/generated/errors/index.js +9 -0
  118. package/dist/generated/errors/index.js.map +1 -0
  119. package/dist/generated/errors/sigil.d.ts +162 -0
  120. package/dist/generated/errors/sigil.d.ts.map +1 -0
  121. package/dist/generated/errors/sigil.js +237 -0
  122. package/dist/generated/errors/sigil.js.map +1 -0
  123. package/dist/generated/event-discriminators.d.ts +2 -0
  124. package/dist/generated/event-discriminators.d.ts.map +1 -0
  125. package/dist/generated/event-discriminators.js +39 -0
  126. package/dist/generated/event-discriminators.js.map +1 -0
  127. package/dist/generated/index.d.ts +13 -0
  128. package/dist/generated/index.d.ts.map +1 -0
  129. package/dist/generated/index.js +13 -0
  130. package/dist/generated/index.js.map +1 -0
  131. package/dist/generated/instructions/agentTransfer.d.ts +109 -0
  132. package/dist/generated/instructions/agentTransfer.d.ts.map +1 -0
  133. package/dist/generated/instructions/agentTransfer.js +211 -0
  134. package/dist/generated/instructions/agentTransfer.js.map +1 -0
  135. package/dist/generated/instructions/applyConstraintsUpdate.d.ts +55 -0
  136. package/dist/generated/instructions/applyConstraintsUpdate.d.ts.map +1 -0
  137. package/dist/generated/instructions/applyConstraintsUpdate.js +129 -0
  138. package/dist/generated/instructions/applyConstraintsUpdate.js.map +1 -0
  139. package/dist/generated/instructions/applyPendingPolicy.d.ts +55 -0
  140. package/dist/generated/instructions/applyPendingPolicy.d.ts.map +1 -0
  141. package/dist/generated/instructions/applyPendingPolicy.js +122 -0
  142. package/dist/generated/instructions/applyPendingPolicy.js.map +1 -0
  143. package/dist/generated/instructions/cancelConstraintsUpdate.d.ts +51 -0
  144. package/dist/generated/instructions/cancelConstraintsUpdate.d.ts.map +1 -0
  145. package/dist/generated/instructions/cancelConstraintsUpdate.js +115 -0
  146. package/dist/generated/instructions/cancelConstraintsUpdate.js.map +1 -0
  147. package/dist/generated/instructions/cancelPendingPolicy.d.ts +55 -0
  148. package/dist/generated/instructions/cancelPendingPolicy.d.ts.map +1 -0
  149. package/dist/generated/instructions/cancelPendingPolicy.js +122 -0
  150. package/dist/generated/instructions/cancelPendingPolicy.js.map +1 -0
  151. package/dist/generated/instructions/closeInstructionConstraints.d.ts +55 -0
  152. package/dist/generated/instructions/closeInstructionConstraints.d.ts.map +1 -0
  153. package/dist/generated/instructions/closeInstructionConstraints.js +120 -0
  154. package/dist/generated/instructions/closeInstructionConstraints.js.map +1 -0
  155. package/dist/generated/instructions/closeSettledEscrow.d.ts +72 -0
  156. package/dist/generated/instructions/closeSettledEscrow.d.ts.map +1 -0
  157. package/dist/generated/instructions/closeSettledEscrow.js +127 -0
  158. package/dist/generated/instructions/closeSettledEscrow.js.map +1 -0
  159. package/dist/generated/instructions/closeVault.d.ts +69 -0
  160. package/dist/generated/instructions/closeVault.d.ts.map +1 -0
  161. package/dist/generated/instructions/closeVault.js +142 -0
  162. package/dist/generated/instructions/closeVault.js.map +1 -0
  163. package/dist/generated/instructions/createEscrow.d.ts +131 -0
  164. package/dist/generated/instructions/createEscrow.d.ts.map +1 -0
  165. package/dist/generated/instructions/createEscrow.js +272 -0
  166. package/dist/generated/instructions/createEscrow.js.map +1 -0
  167. package/dist/generated/instructions/createInstructionConstraints.d.ts +69 -0
  168. package/dist/generated/instructions/createInstructionConstraints.d.ts.map +1 -0
  169. package/dist/generated/instructions/createInstructionConstraints.js +145 -0
  170. package/dist/generated/instructions/createInstructionConstraints.js.map +1 -0
  171. package/dist/generated/instructions/depositFunds.d.ts +82 -0
  172. package/dist/generated/instructions/depositFunds.d.ts.map +1 -0
  173. package/dist/generated/instructions/depositFunds.js +198 -0
  174. package/dist/generated/instructions/depositFunds.js.map +1 -0
  175. package/dist/generated/instructions/finalizeSession.d.ts +126 -0
  176. package/dist/generated/instructions/finalizeSession.d.ts.map +1 -0
  177. package/dist/generated/instructions/finalizeSession.js +218 -0
  178. package/dist/generated/instructions/finalizeSession.js.map +1 -0
  179. package/dist/generated/instructions/freezeVault.d.ts +40 -0
  180. package/dist/generated/instructions/freezeVault.d.ts.map +1 -0
  181. package/dist/generated/instructions/freezeVault.js +66 -0
  182. package/dist/generated/instructions/freezeVault.js.map +1 -0
  183. package/dist/generated/instructions/index.d.ts +37 -0
  184. package/dist/generated/instructions/index.d.ts.map +1 -0
  185. package/dist/generated/instructions/index.js +37 -0
  186. package/dist/generated/instructions/index.js.map +1 -0
  187. package/dist/generated/instructions/initializeVault.d.ts +122 -0
  188. package/dist/generated/instructions/initializeVault.d.ts.map +1 -0
  189. package/dist/generated/instructions/initializeVault.js +187 -0
  190. package/dist/generated/instructions/initializeVault.js.map +1 -0
  191. package/dist/generated/instructions/pauseAgent.d.ts +44 -0
  192. package/dist/generated/instructions/pauseAgent.d.ts.map +1 -0
  193. package/dist/generated/instructions/pauseAgent.js +72 -0
  194. package/dist/generated/instructions/pauseAgent.js.map +1 -0
  195. package/dist/generated/instructions/queueConstraintsUpdate.d.ts +73 -0
  196. package/dist/generated/instructions/queueConstraintsUpdate.d.ts.map +1 -0
  197. package/dist/generated/instructions/queueConstraintsUpdate.js +168 -0
  198. package/dist/generated/instructions/queueConstraintsUpdate.js.map +1 -0
  199. package/dist/generated/instructions/queuePolicyUpdate.d.ts +116 -0
  200. package/dist/generated/instructions/queuePolicyUpdate.d.ts.map +1 -0
  201. package/dist/generated/instructions/queuePolicyUpdate.js +173 -0
  202. package/dist/generated/instructions/queuePolicyUpdate.js.map +1 -0
  203. package/dist/generated/instructions/reactivateVault.d.ts +47 -0
  204. package/dist/generated/instructions/reactivateVault.d.ts.map +1 -0
  205. package/dist/generated/instructions/reactivateVault.js +74 -0
  206. package/dist/generated/instructions/reactivateVault.js.map +1 -0
  207. package/dist/generated/instructions/refundEscrow.d.ts +74 -0
  208. package/dist/generated/instructions/refundEscrow.d.ts.map +1 -0
  209. package/dist/generated/instructions/refundEscrow.js +142 -0
  210. package/dist/generated/instructions/refundEscrow.js.map +1 -0
  211. package/dist/generated/instructions/registerAgent.d.ts +55 -0
  212. package/dist/generated/instructions/registerAgent.d.ts.map +1 -0
  213. package/dist/generated/instructions/registerAgent.js +85 -0
  214. package/dist/generated/instructions/registerAgent.js.map +1 -0
  215. package/dist/generated/instructions/revokeAgent.d.ts +49 -0
  216. package/dist/generated/instructions/revokeAgent.d.ts.map +1 -0
  217. package/dist/generated/instructions/revokeAgent.js +81 -0
  218. package/dist/generated/instructions/revokeAgent.js.map +1 -0
  219. package/dist/generated/instructions/settleEscrow.d.ts +80 -0
  220. package/dist/generated/instructions/settleEscrow.d.ts.map +1 -0
  221. package/dist/generated/instructions/settleEscrow.js +173 -0
  222. package/dist/generated/instructions/settleEscrow.js.map +1 -0
  223. package/dist/generated/instructions/syncPositions.d.ts +44 -0
  224. package/dist/generated/instructions/syncPositions.d.ts.map +1 -0
  225. package/dist/generated/instructions/syncPositions.js +72 -0
  226. package/dist/generated/instructions/syncPositions.js.map +1 -0
  227. package/dist/generated/instructions/unpauseAgent.d.ts +44 -0
  228. package/dist/generated/instructions/unpauseAgent.d.ts.map +1 -0
  229. package/dist/generated/instructions/unpauseAgent.js +72 -0
  230. package/dist/generated/instructions/unpauseAgent.js.map +1 -0
  231. package/dist/generated/instructions/updateAgentPermissions.d.ts +68 -0
  232. package/dist/generated/instructions/updateAgentPermissions.d.ts.map +1 -0
  233. package/dist/generated/instructions/updateAgentPermissions.js +139 -0
  234. package/dist/generated/instructions/updateAgentPermissions.js.map +1 -0
  235. package/dist/generated/instructions/updateInstructionConstraints.d.ts +65 -0
  236. package/dist/generated/instructions/updateInstructionConstraints.d.ts.map +1 -0
  237. package/dist/generated/instructions/updateInstructionConstraints.js +131 -0
  238. package/dist/generated/instructions/updateInstructionConstraints.js.map +1 -0
  239. package/dist/generated/instructions/updatePolicy.d.ts +108 -0
  240. package/dist/generated/instructions/updatePolicy.d.ts.map +1 -0
  241. package/dist/generated/instructions/updatePolicy.js +143 -0
  242. package/dist/generated/instructions/updatePolicy.js.map +1 -0
  243. package/dist/generated/instructions/validateAndAuthorize.d.ts +171 -0
  244. package/dist/generated/instructions/validateAndAuthorize.d.ts.map +1 -0
  245. package/dist/generated/instructions/validateAndAuthorize.js +271 -0
  246. package/dist/generated/instructions/validateAndAuthorize.js.map +1 -0
  247. package/dist/generated/instructions/withdrawFunds.d.ts +74 -0
  248. package/dist/generated/instructions/withdrawFunds.d.ts.map +1 -0
  249. package/dist/generated/instructions/withdrawFunds.js +166 -0
  250. package/dist/generated/instructions/withdrawFunds.js.map +1 -0
  251. package/dist/generated/programs/index.d.ts +9 -0
  252. package/dist/generated/programs/index.d.ts.map +1 -0
  253. package/dist/generated/programs/index.js +9 -0
  254. package/dist/generated/programs/index.js.map +1 -0
  255. package/dist/generated/programs/sigil.d.ts +173 -0
  256. package/dist/generated/programs/sigil.d.ts.map +1 -0
  257. package/dist/generated/programs/sigil.js +443 -0
  258. package/dist/generated/programs/sigil.js.map +1 -0
  259. package/dist/generated/types/accountConstraint.d.ts +18 -0
  260. package/dist/generated/types/accountConstraint.d.ts.map +1 -0
  261. package/dist/generated/types/accountConstraint.js +24 -0
  262. package/dist/generated/types/accountConstraint.js.map +1 -0
  263. package/dist/generated/types/actionAuthorized.d.ts +39 -0
  264. package/dist/generated/types/actionAuthorized.d.ts.map +1 -0
  265. package/dist/generated/types/actionAuthorized.js +43 -0
  266. package/dist/generated/types/actionAuthorized.js.map +1 -0
  267. package/dist/generated/types/actionType.d.ts +37 -0
  268. package/dist/generated/types/actionType.d.ts.map +1 -0
  269. package/dist/generated/types/actionType.js +43 -0
  270. package/dist/generated/types/actionType.js.map +1 -0
  271. package/dist/generated/types/agentContributionEntry.d.ts +49 -0
  272. package/dist/generated/types/agentContributionEntry.d.ts.map +1 -0
  273. package/dist/generated/types/agentContributionEntry.js +26 -0
  274. package/dist/generated/types/agentContributionEntry.js.map +1 -0
  275. package/dist/generated/types/agentEntry.d.ts +24 -0
  276. package/dist/generated/types/agentEntry.d.ts.map +1 -0
  277. package/dist/generated/types/agentEntry.js +28 -0
  278. package/dist/generated/types/agentEntry.js.map +1 -0
  279. package/dist/generated/types/agentPausedEvent.d.ts +22 -0
  280. package/dist/generated/types/agentPausedEvent.d.ts.map +1 -0
  281. package/dist/generated/types/agentPausedEvent.js +26 -0
  282. package/dist/generated/types/agentPausedEvent.js.map +1 -0
  283. package/dist/generated/types/agentPermissionsUpdated.d.ts +24 -0
  284. package/dist/generated/types/agentPermissionsUpdated.d.ts.map +1 -0
  285. package/dist/generated/types/agentPermissionsUpdated.js +28 -0
  286. package/dist/generated/types/agentPermissionsUpdated.js.map +1 -0
  287. package/dist/generated/types/agentRegistered.d.ts +26 -0
  288. package/dist/generated/types/agentRegistered.d.ts.map +1 -0
  289. package/dist/generated/types/agentRegistered.js +30 -0
  290. package/dist/generated/types/agentRegistered.js.map +1 -0
  291. package/dist/generated/types/agentRevoked.d.ts +24 -0
  292. package/dist/generated/types/agentRevoked.d.ts.map +1 -0
  293. package/dist/generated/types/agentRevoked.js +28 -0
  294. package/dist/generated/types/agentRevoked.js.map +1 -0
  295. package/dist/generated/types/agentSpendLimitChecked.d.ts +28 -0
  296. package/dist/generated/types/agentSpendLimitChecked.d.ts.map +1 -0
  297. package/dist/generated/types/agentSpendLimitChecked.js +32 -0
  298. package/dist/generated/types/agentSpendLimitChecked.js.map +1 -0
  299. package/dist/generated/types/agentTransferExecuted.d.ts +24 -0
  300. package/dist/generated/types/agentTransferExecuted.d.ts.map +1 -0
  301. package/dist/generated/types/agentTransferExecuted.js +28 -0
  302. package/dist/generated/types/agentTransferExecuted.js.map +1 -0
  303. package/dist/generated/types/agentUnpausedEvent.d.ts +22 -0
  304. package/dist/generated/types/agentUnpausedEvent.d.ts.map +1 -0
  305. package/dist/generated/types/agentUnpausedEvent.js +26 -0
  306. package/dist/generated/types/agentUnpausedEvent.js.map +1 -0
  307. package/dist/generated/types/constraintEntry.d.ts +23 -0
  308. package/dist/generated/types/constraintEntry.d.ts.map +1 -0
  309. package/dist/generated/types/constraintEntry.js +27 -0
  310. package/dist/generated/types/constraintEntry.js.map +1 -0
  311. package/dist/generated/types/constraintOperator.d.ts +22 -0
  312. package/dist/generated/types/constraintOperator.d.ts.map +1 -0
  313. package/dist/generated/types/constraintOperator.js +28 -0
  314. package/dist/generated/types/constraintOperator.js.map +1 -0
  315. package/dist/generated/types/constraintsChangeApplied.d.ts +20 -0
  316. package/dist/generated/types/constraintsChangeApplied.d.ts.map +1 -0
  317. package/dist/generated/types/constraintsChangeApplied.js +24 -0
  318. package/dist/generated/types/constraintsChangeApplied.js.map +1 -0
  319. package/dist/generated/types/constraintsChangeCancelled.d.ts +16 -0
  320. package/dist/generated/types/constraintsChangeCancelled.d.ts.map +1 -0
  321. package/dist/generated/types/constraintsChangeCancelled.js +18 -0
  322. package/dist/generated/types/constraintsChangeCancelled.js.map +1 -0
  323. package/dist/generated/types/constraintsChangeQueued.d.ts +20 -0
  324. package/dist/generated/types/constraintsChangeQueued.d.ts.map +1 -0
  325. package/dist/generated/types/constraintsChangeQueued.js +24 -0
  326. package/dist/generated/types/constraintsChangeQueued.js.map +1 -0
  327. package/dist/generated/types/dataConstraint.d.ts +23 -0
  328. package/dist/generated/types/dataConstraint.d.ts.map +1 -0
  329. package/dist/generated/types/dataConstraint.js +27 -0
  330. package/dist/generated/types/dataConstraint.js.map +1 -0
  331. package/dist/generated/types/delegationRevoked.d.ts +22 -0
  332. package/dist/generated/types/delegationRevoked.d.ts.map +1 -0
  333. package/dist/generated/types/delegationRevoked.js +26 -0
  334. package/dist/generated/types/delegationRevoked.js.map +1 -0
  335. package/dist/generated/types/epochBucket.d.ts +28 -0
  336. package/dist/generated/types/epochBucket.d.ts.map +1 -0
  337. package/dist/generated/types/epochBucket.js +24 -0
  338. package/dist/generated/types/epochBucket.js.map +1 -0
  339. package/dist/generated/types/escrowCreated.d.ts +30 -0
  340. package/dist/generated/types/escrowCreated.d.ts.map +1 -0
  341. package/dist/generated/types/escrowCreated.js +34 -0
  342. package/dist/generated/types/escrowCreated.js.map +1 -0
  343. package/dist/generated/types/escrowRefunded.d.ts +26 -0
  344. package/dist/generated/types/escrowRefunded.d.ts.map +1 -0
  345. package/dist/generated/types/escrowRefunded.js +30 -0
  346. package/dist/generated/types/escrowRefunded.js.map +1 -0
  347. package/dist/generated/types/escrowSettled.d.ts +26 -0
  348. package/dist/generated/types/escrowSettled.d.ts.map +1 -0
  349. package/dist/generated/types/escrowSettled.js +30 -0
  350. package/dist/generated/types/escrowSettled.js.map +1 -0
  351. package/dist/generated/types/escrowStatus.d.ts +18 -0
  352. package/dist/generated/types/escrowStatus.d.ts.map +1 -0
  353. package/dist/generated/types/escrowStatus.js +24 -0
  354. package/dist/generated/types/escrowStatus.js.map +1 -0
  355. package/dist/generated/types/feesCollected.d.ts +38 -0
  356. package/dist/generated/types/feesCollected.d.ts.map +1 -0
  357. package/dist/generated/types/feesCollected.js +42 -0
  358. package/dist/generated/types/feesCollected.js.map +1 -0
  359. package/dist/generated/types/fundsDeposited.d.ts +24 -0
  360. package/dist/generated/types/fundsDeposited.d.ts.map +1 -0
  361. package/dist/generated/types/fundsDeposited.js +28 -0
  362. package/dist/generated/types/fundsDeposited.js.map +1 -0
  363. package/dist/generated/types/fundsWithdrawn.d.ts +26 -0
  364. package/dist/generated/types/fundsWithdrawn.d.ts.map +1 -0
  365. package/dist/generated/types/fundsWithdrawn.js +30 -0
  366. package/dist/generated/types/fundsWithdrawn.js.map +1 -0
  367. package/dist/generated/types/index.d.ts +50 -0
  368. package/dist/generated/types/index.d.ts.map +1 -0
  369. package/dist/generated/types/index.js +50 -0
  370. package/dist/generated/types/index.js.map +1 -0
  371. package/dist/generated/types/instructionConstraintsClosed.d.ts +20 -0
  372. package/dist/generated/types/instructionConstraintsClosed.d.ts.map +1 -0
  373. package/dist/generated/types/instructionConstraintsClosed.js +24 -0
  374. package/dist/generated/types/instructionConstraintsClosed.js.map +1 -0
  375. package/dist/generated/types/instructionConstraintsCreated.d.ts +24 -0
  376. package/dist/generated/types/instructionConstraintsCreated.d.ts.map +1 -0
  377. package/dist/generated/types/instructionConstraintsCreated.js +28 -0
  378. package/dist/generated/types/instructionConstraintsCreated.js.map +1 -0
  379. package/dist/generated/types/instructionConstraintsUpdated.d.ts +24 -0
  380. package/dist/generated/types/instructionConstraintsUpdated.d.ts.map +1 -0
  381. package/dist/generated/types/instructionConstraintsUpdated.js +28 -0
  382. package/dist/generated/types/instructionConstraintsUpdated.js.map +1 -0
  383. package/dist/generated/types/policyChangeApplied.d.ts +20 -0
  384. package/dist/generated/types/policyChangeApplied.d.ts.map +1 -0
  385. package/dist/generated/types/policyChangeApplied.js +24 -0
  386. package/dist/generated/types/policyChangeApplied.js.map +1 -0
  387. package/dist/generated/types/policyChangeCancelled.d.ts +16 -0
  388. package/dist/generated/types/policyChangeCancelled.d.ts.map +1 -0
  389. package/dist/generated/types/policyChangeCancelled.js +18 -0
  390. package/dist/generated/types/policyChangeCancelled.js.map +1 -0
  391. package/dist/generated/types/policyChangeQueued.d.ts +20 -0
  392. package/dist/generated/types/policyChangeQueued.d.ts.map +1 -0
  393. package/dist/generated/types/policyChangeQueued.js +24 -0
  394. package/dist/generated/types/policyChangeQueued.js.map +1 -0
  395. package/dist/generated/types/policyUpdated.d.ts +34 -0
  396. package/dist/generated/types/policyUpdated.d.ts.map +1 -0
  397. package/dist/generated/types/policyUpdated.js +38 -0
  398. package/dist/generated/types/policyUpdated.js.map +1 -0
  399. package/dist/generated/types/positionsSynced.d.ts +24 -0
  400. package/dist/generated/types/positionsSynced.d.ts.map +1 -0
  401. package/dist/generated/types/positionsSynced.js +28 -0
  402. package/dist/generated/types/positionsSynced.js.map +1 -0
  403. package/dist/generated/types/protocolSpendCounter.d.ts +33 -0
  404. package/dist/generated/types/protocolSpendCounter.d.ts.map +1 -0
  405. package/dist/generated/types/protocolSpendCounter.js +26 -0
  406. package/dist/generated/types/protocolSpendCounter.js.map +1 -0
  407. package/dist/generated/types/sessionFinalized.d.ts +32 -0
  408. package/dist/generated/types/sessionFinalized.d.ts.map +1 -0
  409. package/dist/generated/types/sessionFinalized.js +36 -0
  410. package/dist/generated/types/sessionFinalized.js.map +1 -0
  411. package/dist/generated/types/vaultClosed.d.ts +22 -0
  412. package/dist/generated/types/vaultClosed.d.ts.map +1 -0
  413. package/dist/generated/types/vaultClosed.js +26 -0
  414. package/dist/generated/types/vaultClosed.js.map +1 -0
  415. package/dist/generated/types/vaultCreated.d.ts +24 -0
  416. package/dist/generated/types/vaultCreated.d.ts.map +1 -0
  417. package/dist/generated/types/vaultCreated.js +28 -0
  418. package/dist/generated/types/vaultCreated.js.map +1 -0
  419. package/dist/generated/types/vaultFrozen.d.ts +24 -0
  420. package/dist/generated/types/vaultFrozen.d.ts.map +1 -0
  421. package/dist/generated/types/vaultFrozen.js +28 -0
  422. package/dist/generated/types/vaultFrozen.js.map +1 -0
  423. package/dist/generated/types/vaultReactivated.d.ts +24 -0
  424. package/dist/generated/types/vaultReactivated.d.ts.map +1 -0
  425. package/dist/generated/types/vaultReactivated.js +28 -0
  426. package/dist/generated/types/vaultReactivated.js.map +1 -0
  427. package/dist/generated/types/vaultStatus.d.ts +19 -0
  428. package/dist/generated/types/vaultStatus.d.ts.map +1 -0
  429. package/dist/generated/types/vaultStatus.js +25 -0
  430. package/dist/generated/types/vaultStatus.js.map +1 -0
  431. package/dist/index.d.ts +74 -0
  432. package/dist/index.d.ts.map +1 -0
  433. package/dist/index.js +113 -0
  434. package/dist/index.js.map +1 -0
  435. package/dist/inscribe.d.ts +134 -0
  436. package/dist/inscribe.d.ts.map +1 -0
  437. package/dist/inscribe.js +149 -0
  438. package/dist/inscribe.js.map +1 -0
  439. package/dist/inspector.d.ts +85 -0
  440. package/dist/inspector.d.ts.map +1 -0
  441. package/dist/inspector.js +188 -0
  442. package/dist/inspector.js.map +1 -0
  443. package/dist/math-utils.d.ts +15 -0
  444. package/dist/math-utils.d.ts.map +1 -0
  445. package/dist/math-utils.js +29 -0
  446. package/dist/math-utils.js.map +1 -0
  447. package/dist/owner-transaction.d.ts +42 -0
  448. package/dist/owner-transaction.d.ts.map +1 -0
  449. package/dist/owner-transaction.js +71 -0
  450. package/dist/owner-transaction.js.map +1 -0
  451. package/dist/policies.d.ts +70 -0
  452. package/dist/policies.d.ts.map +1 -0
  453. package/dist/policies.js +87 -0
  454. package/dist/policies.js.map +1 -0
  455. package/dist/portfolio-analytics.d.ts +82 -0
  456. package/dist/portfolio-analytics.d.ts.map +1 -0
  457. package/dist/portfolio-analytics.js +232 -0
  458. package/dist/portfolio-analytics.js.map +1 -0
  459. package/dist/presets.d.ts +108 -0
  460. package/dist/presets.d.ts.map +1 -0
  461. package/dist/presets.js +110 -0
  462. package/dist/presets.js.map +1 -0
  463. package/dist/priority-fees.d.ts +49 -0
  464. package/dist/priority-fees.d.ts.map +1 -0
  465. package/dist/priority-fees.js +175 -0
  466. package/dist/priority-fees.js.map +1 -0
  467. package/dist/protocol-analytics.d.ts +35 -0
  468. package/dist/protocol-analytics.d.ts.map +1 -0
  469. package/dist/protocol-analytics.js +64 -0
  470. package/dist/protocol-analytics.js.map +1 -0
  471. package/dist/protocol-names.d.ts +9 -0
  472. package/dist/protocol-names.d.ts.map +1 -0
  473. package/dist/protocol-names.js +18 -0
  474. package/dist/protocol-names.js.map +1 -0
  475. package/dist/protocol-resolver.d.ts +54 -0
  476. package/dist/protocol-resolver.d.ts.map +1 -0
  477. package/dist/protocol-resolver.js +123 -0
  478. package/dist/protocol-resolver.js.map +1 -0
  479. package/dist/resolve-accounts.d.ts +38 -0
  480. package/dist/resolve-accounts.d.ts.map +1 -0
  481. package/dist/resolve-accounts.js +120 -0
  482. package/dist/resolve-accounts.js.map +1 -0
  483. package/dist/rpc-helpers.d.ts +50 -0
  484. package/dist/rpc-helpers.d.ts.map +1 -0
  485. package/dist/rpc-helpers.js +119 -0
  486. package/dist/rpc-helpers.js.map +1 -0
  487. package/dist/seal.d.ts +211 -0
  488. package/dist/seal.d.ts.map +1 -0
  489. package/dist/seal.js +569 -0
  490. package/dist/seal.js.map +1 -0
  491. package/dist/security-analytics.d.ts +85 -0
  492. package/dist/security-analytics.d.ts.map +1 -0
  493. package/dist/security-analytics.js +510 -0
  494. package/dist/security-analytics.js.map +1 -0
  495. package/dist/shield.d.ts +235 -0
  496. package/dist/shield.d.ts.map +1 -0
  497. package/dist/shield.js +701 -0
  498. package/dist/shield.js.map +1 -0
  499. package/dist/simulation.d.ts +111 -0
  500. package/dist/simulation.d.ts.map +1 -0
  501. package/dist/simulation.js +514 -0
  502. package/dist/simulation.js.map +1 -0
  503. package/dist/spending-analytics.d.ts +91 -0
  504. package/dist/spending-analytics.d.ts.map +1 -0
  505. package/dist/spending-analytics.js +217 -0
  506. package/dist/spending-analytics.js.map +1 -0
  507. package/dist/state-resolver.d.ts +173 -0
  508. package/dist/state-resolver.d.ts.map +1 -0
  509. package/dist/state-resolver.js +660 -0
  510. package/dist/state-resolver.js.map +1 -0
  511. package/dist/tee/cache.d.ts +28 -0
  512. package/dist/tee/cache.d.ts.map +1 -0
  513. package/dist/tee/cache.js +75 -0
  514. package/dist/tee/cache.js.map +1 -0
  515. package/dist/tee/index.d.ts +9 -0
  516. package/dist/tee/index.d.ts.map +1 -0
  517. package/dist/tee/index.js +9 -0
  518. package/dist/tee/index.js.map +1 -0
  519. package/dist/tee/nitro-root.d.ts +11 -0
  520. package/dist/tee/nitro-root.d.ts.map +1 -0
  521. package/dist/tee/nitro-root.js +24 -0
  522. package/dist/tee/nitro-root.js.map +1 -0
  523. package/dist/tee/providers/crossmint.d.ts +12 -0
  524. package/dist/tee/providers/crossmint.d.ts.map +1 -0
  525. package/dist/tee/providers/crossmint.js +73 -0
  526. package/dist/tee/providers/crossmint.js.map +1 -0
  527. package/dist/tee/providers/privy.d.ts +12 -0
  528. package/dist/tee/providers/privy.d.ts.map +1 -0
  529. package/dist/tee/providers/privy.js +73 -0
  530. package/dist/tee/providers/privy.js.map +1 -0
  531. package/dist/tee/providers/turnkey.d.ts +34 -0
  532. package/dist/tee/providers/turnkey.d.ts.map +1 -0
  533. package/dist/tee/providers/turnkey.js +401 -0
  534. package/dist/tee/providers/turnkey.js.map +1 -0
  535. package/dist/tee/types.d.ts +124 -0
  536. package/dist/tee/types.d.ts.map +1 -0
  537. package/dist/tee/types.js +51 -0
  538. package/dist/tee/types.js.map +1 -0
  539. package/dist/tee/verify.d.ts +34 -0
  540. package/dist/tee/verify.d.ts.map +1 -0
  541. package/dist/tee/verify.js +177 -0
  542. package/dist/tee/verify.js.map +1 -0
  543. package/dist/tee/wallet-types.d.ts +61 -0
  544. package/dist/tee/wallet-types.d.ts.map +1 -0
  545. package/dist/tee/wallet-types.js +42 -0
  546. package/dist/tee/wallet-types.js.map +1 -0
  547. package/dist/testing/devnet.d.ts +64 -0
  548. package/dist/testing/devnet.d.ts.map +1 -0
  549. package/dist/testing/devnet.js +222 -0
  550. package/dist/testing/devnet.js.map +1 -0
  551. package/dist/testing/index.d.ts +3 -0
  552. package/dist/testing/index.d.ts.map +1 -0
  553. package/dist/testing/index.js +9 -0
  554. package/dist/testing/index.js.map +1 -0
  555. package/dist/testing/mock-rpc.d.ts +31 -0
  556. package/dist/testing/mock-rpc.d.ts.map +1 -0
  557. package/dist/testing/mock-rpc.js +50 -0
  558. package/dist/testing/mock-rpc.js.map +1 -0
  559. package/dist/testing/mock-state.d.ts +35 -0
  560. package/dist/testing/mock-state.d.ts.map +1 -0
  561. package/dist/testing/mock-state.js +86 -0
  562. package/dist/testing/mock-state.js.map +1 -0
  563. package/dist/tokens.d.ts +35 -0
  564. package/dist/tokens.d.ts.map +1 -0
  565. package/dist/tokens.js +157 -0
  566. package/dist/tokens.js.map +1 -0
  567. package/dist/transaction-executor.d.ts +116 -0
  568. package/dist/transaction-executor.d.ts.map +1 -0
  569. package/dist/transaction-executor.js +165 -0
  570. package/dist/transaction-executor.js.map +1 -0
  571. package/dist/types.d.ts +102 -0
  572. package/dist/types.d.ts.map +1 -0
  573. package/dist/types.js +216 -0
  574. package/dist/types.js.map +1 -0
  575. package/dist/vault-analytics.d.ts +83 -0
  576. package/dist/vault-analytics.d.ts.map +1 -0
  577. package/dist/vault-analytics.js +175 -0
  578. package/dist/vault-analytics.js.map +1 -0
  579. package/dist/velocity-tracker.d.ts +79 -0
  580. package/dist/velocity-tracker.d.ts.map +1 -0
  581. package/dist/velocity-tracker.js +183 -0
  582. package/dist/velocity-tracker.js.map +1 -0
  583. package/dist/x402/amount-guard.d.ts +26 -0
  584. package/dist/x402/amount-guard.d.ts.map +1 -0
  585. package/dist/x402/amount-guard.js +80 -0
  586. package/dist/x402/amount-guard.js.map +1 -0
  587. package/dist/x402/audit-trail.d.ts +26 -0
  588. package/dist/x402/audit-trail.d.ts.map +1 -0
  589. package/dist/x402/audit-trail.js +32 -0
  590. package/dist/x402/audit-trail.js.map +1 -0
  591. package/dist/x402/codec.d.ts +26 -0
  592. package/dist/x402/codec.d.ts.map +1 -0
  593. package/dist/x402/codec.js +95 -0
  594. package/dist/x402/codec.js.map +1 -0
  595. package/dist/x402/errors.d.ts +34 -0
  596. package/dist/x402/errors.d.ts.map +1 -0
  597. package/dist/x402/errors.js +53 -0
  598. package/dist/x402/errors.js.map +1 -0
  599. package/dist/x402/facilitator-verify.d.ts +24 -0
  600. package/dist/x402/facilitator-verify.d.ts.map +1 -0
  601. package/dist/x402/facilitator-verify.js +74 -0
  602. package/dist/x402/facilitator-verify.js.map +1 -0
  603. package/dist/x402/index.d.ts +14 -0
  604. package/dist/x402/index.d.ts.map +1 -0
  605. package/dist/x402/index.js +23 -0
  606. package/dist/x402/index.js.map +1 -0
  607. package/dist/x402/nonce-tracker.d.ts +65 -0
  608. package/dist/x402/nonce-tracker.d.ts.map +1 -0
  609. package/dist/x402/nonce-tracker.js +123 -0
  610. package/dist/x402/nonce-tracker.js.map +1 -0
  611. package/dist/x402/payment-selector.d.ts +20 -0
  612. package/dist/x402/payment-selector.d.ts.map +1 -0
  613. package/dist/x402/payment-selector.js +49 -0
  614. package/dist/x402/payment-selector.js.map +1 -0
  615. package/dist/x402/policy-bridge.d.ts +23 -0
  616. package/dist/x402/policy-bridge.d.ts.map +1 -0
  617. package/dist/x402/policy-bridge.js +67 -0
  618. package/dist/x402/policy-bridge.js.map +1 -0
  619. package/dist/x402/shielded-fetch.d.ts +46 -0
  620. package/dist/x402/shielded-fetch.d.ts.map +1 -0
  621. package/dist/x402/shielded-fetch.js +342 -0
  622. package/dist/x402/shielded-fetch.js.map +1 -0
  623. package/dist/x402/transfer-builder.d.ts +43 -0
  624. package/dist/x402/transfer-builder.d.ts.map +1 -0
  625. package/dist/x402/transfer-builder.js +126 -0
  626. package/dist/x402/transfer-builder.js.map +1 -0
  627. package/dist/x402/types.d.ts +109 -0
  628. package/dist/x402/types.d.ts.map +1 -0
  629. package/dist/x402/types.js +8 -0
  630. package/dist/x402/types.js.map +1 -0
  631. package/package.json +98 -0
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Kit-native policy engine for Sigil.
3
+ */
4
+ import type { Address } from "@solana/kit";
5
+ import * as Core from "./core/index.js";
6
+ import { type Network } from "./types.js";
7
+ export type { RateLimitConfig, PolicyCheckResult } from "./core/index.js";
8
+ export { DEFAULT_POLICIES, parseSpendLimit } from "./core/index.js";
9
+ /** Policy configuration for the Sigil wrapper (accepts Address or string) */
10
+ export interface ShieldPolicies {
11
+ /** Maximum spend per rolling 24h window, per token. e.g. "500 USDC/day" or { mint, amount } */
12
+ maxSpend?: SpendLimit | SpendLimit[] | string | string[];
13
+ /** Maximum single transaction size in lamports-equivalent value */
14
+ maxTransactionSize?: bigint | string;
15
+ /** Allowed protocol program IDs. If set, only these + system programs are allowed. */
16
+ allowedProtocols?: (Address | string)[];
17
+ /** Allowed token mints for transfers. If set, only these tokens can be sent. */
18
+ allowedTokens?: (Address | string)[];
19
+ /** Block unknown (unregistered) program IDs. Default: true */
20
+ blockUnknownPrograms?: boolean;
21
+ /** Maximum transactions per time window */
22
+ rateLimit?: Core.RateLimitConfig;
23
+ /** Custom policy evaluation hook — runs AFTER built-in checks */
24
+ customCheck?: (analysis: TransactionAnalysis) => Core.PolicyCheckResult;
25
+ }
26
+ export interface SpendLimit {
27
+ /** SPL token mint address */
28
+ mint: Address | string;
29
+ /** Maximum amount in token's native decimals (e.g. 500_000_000 for 500 USDC) */
30
+ amount: bigint;
31
+ /** Window duration in milliseconds. Default: 86_400_000 (24h) */
32
+ windowMs?: number;
33
+ }
34
+ /** Analysis of a transaction's contents, passed to policy engine and custom checks */
35
+ export interface TransactionAnalysis {
36
+ /** Program IDs invoked by the transaction */
37
+ programIds: Address[];
38
+ /** Token transfers detected in the transaction */
39
+ transfers: TokenTransfer[];
40
+ /** Total estimated value of outgoing transfers, in lamports-equivalent */
41
+ estimatedValueLamports: bigint;
42
+ }
43
+ export interface TokenTransfer {
44
+ mint: Address;
45
+ amount: bigint;
46
+ /** "outgoing" = tokens leaving the wallet, "incoming" = tokens arriving */
47
+ direction: "outgoing" | "incoming" | "unknown";
48
+ /** Destination account */
49
+ destination?: Address;
50
+ }
51
+ /** Internal resolved policy representation (extends core with customCheck) */
52
+ export interface ResolvedPolicies extends Core.ResolvedPolicies {
53
+ customCheck: ((analysis: TransactionAnalysis) => Core.PolicyCheckResult) | undefined;
54
+ }
55
+ /**
56
+ * Normalize user-provided policies into a resolved internal format.
57
+ * Kit Address is already a string, so conversion is trivial.
58
+ */
59
+ export declare function resolvePolicies(input?: ShieldPolicies): ResolvedPolicies;
60
+ /**
61
+ * Convert wrapper TransactionAnalysis (Address-based) to core format (string-based).
62
+ * Trivial since Kit Address IS a string.
63
+ */
64
+ export declare function toCoreAnalysis(analysis: TransactionAnalysis): Core.TransactionAnalysis;
65
+ /**
66
+ * Validate that spend limit mints are recognized stablecoins.
67
+ * Returns warnings for unrecognized mints (does not throw).
68
+ */
69
+ export declare function validateSpendLimitMints(resolved: ResolvedPolicies, network: Network): string[];
70
+ //# sourceMappingURL=policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACzD,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IACrC,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC;IACjC,iEAAiE;IACjE,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC,iBAAiB,CAAC;CACzE;AAED,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,kDAAkD;IAClD,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,0EAA0E;IAC1E,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/C,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,gBAAgB;IAC7D,WAAW,EACP,CAAC,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAC3D,SAAS,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAsBxE;AA2BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,mBAAmB,GAC5B,IAAI,CAAC,mBAAmB,CAW1B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CAYV"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Kit-native policy engine for Sigil.
3
+ */
4
+ import * as Core from "./core/index.js";
5
+ import { isStablecoinMint } from "./types.js";
6
+ export { DEFAULT_POLICIES, parseSpendLimit } from "./core/index.js";
7
+ /**
8
+ * Normalize user-provided policies into a resolved internal format.
9
+ * Kit Address is already a string, so conversion is trivial.
10
+ */
11
+ export function resolvePolicies(input) {
12
+ const coreInput = input
13
+ ? {
14
+ maxSpend: input.maxSpend !== undefined
15
+ ? convertSpendLimits(input.maxSpend)
16
+ : undefined,
17
+ maxTransactionSize: input.maxTransactionSize,
18
+ // Address is already a string — direct pass-through
19
+ allowedProtocols: input.allowedProtocols?.map((p) => p),
20
+ allowedTokens: input.allowedTokens?.map((t) => t),
21
+ blockUnknownPrograms: input.blockUnknownPrograms,
22
+ rateLimit: input.rateLimit,
23
+ }
24
+ : undefined;
25
+ const coreResolved = Core.resolvePolicies(coreInput);
26
+ return {
27
+ ...coreResolved,
28
+ customCheck: input?.customCheck ?? undefined,
29
+ };
30
+ }
31
+ /** Convert SpendLimit (Address | string mint) to core SpendLimit (string mint) */
32
+ function convertSpendLimits(input) {
33
+ if (typeof input === "string")
34
+ return input;
35
+ if (Array.isArray(input)) {
36
+ if (input.every((l) => typeof l === "string")) {
37
+ return input;
38
+ }
39
+ return input.map((l) => {
40
+ if (typeof l === "string")
41
+ return Core.parseSpendLimit(l);
42
+ return {
43
+ mint: l.mint,
44
+ amount: l.amount,
45
+ windowMs: l.windowMs,
46
+ };
47
+ });
48
+ }
49
+ return {
50
+ mint: input.mint,
51
+ amount: input.amount,
52
+ windowMs: input.windowMs,
53
+ };
54
+ }
55
+ /**
56
+ * Convert wrapper TransactionAnalysis (Address-based) to core format (string-based).
57
+ * Trivial since Kit Address IS a string.
58
+ */
59
+ export function toCoreAnalysis(analysis) {
60
+ return {
61
+ programIds: analysis.programIds.map((p) => p),
62
+ transfers: analysis.transfers.map((t) => ({
63
+ mint: t.mint,
64
+ amount: t.amount,
65
+ direction: t.direction,
66
+ destination: t.destination,
67
+ })),
68
+ estimatedValueLamports: analysis.estimatedValueLamports,
69
+ };
70
+ }
71
+ /**
72
+ * Validate that spend limit mints are recognized stablecoins.
73
+ * Returns warnings for unrecognized mints (does not throw).
74
+ */
75
+ export function validateSpendLimitMints(resolved, network) {
76
+ const warnings = [];
77
+ if (!resolved.spendLimits)
78
+ return warnings;
79
+ for (const limit of resolved.spendLimits) {
80
+ if (!isStablecoinMint(limit.mint, network)) {
81
+ warnings.push(`Spend limit mint ${limit.mint} is not a recognized stablecoin on ${network}. ` +
82
+ `On-chain enforcement uses stablecoin-only USD tracking.`);
83
+ }
84
+ }
85
+ return warnings;
86
+ }
87
+ //# sourceMappingURL=policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Portfolio analytics — cross-vault aggregation for the portfolio page.
3
+ *
4
+ * getPortfolioOverview() is the most expensive SDK call — it resolves ALL
5
+ * vaults for an owner. The dashboard caches this with 30s stale time.
6
+ */
7
+ import type { Address, Rpc, SolanaRpcApi } from "@solana/kit";
8
+ import type { ResolvedVaultState } from "./state-resolver.js";
9
+ import { type VaultSummary } from "./vault-analytics.js";
10
+ import { type Alert } from "./security-analytics.js";
11
+ import type { Network } from "./types.js";
12
+ export interface PortfolioOverview {
13
+ vaults: VaultSummary[];
14
+ totals: {
15
+ vaultCount: number;
16
+ activeVaultCount: number;
17
+ totalValueUsd: bigint;
18
+ totalAgents: number;
19
+ totalSpend24h: bigint;
20
+ totalVolume: bigint;
21
+ totalFeesCollected: bigint;
22
+ totalPnl: bigint;
23
+ totalDeposited: bigint;
24
+ totalWithdrawn: bigint;
25
+ overallPnlPercent: number;
26
+ };
27
+ topVaultByValue: Address | null;
28
+ topVaultBySpending: Address | null;
29
+ alerts: Alert[];
30
+ }
31
+ /** Aggregate VaultSummary[] into portfolio totals. Pure function. */
32
+ export declare function aggregatePortfolio(vaults: VaultSummary[]): Omit<PortfolioOverview, "alerts">;
33
+ /**
34
+ * Cross-vault aggregated analytics for the portfolio page.
35
+ * N+1 RPC calls: 1 discovery + N vault summaries (parallel).
36
+ */
37
+ export declare function getPortfolioOverview(rpc: Rpc<SolanaRpcApi>, owner: Address, network?: Network): Promise<PortfolioOverview>;
38
+ export interface CrossVaultAgentRanking {
39
+ agent: Address;
40
+ vaultAddress: Address;
41
+ vaultId: bigint;
42
+ spend24h: bigint;
43
+ lifetimeSpend: bigint;
44
+ capUtilization: number;
45
+ paused: boolean;
46
+ rank: number;
47
+ }
48
+ /**
49
+ * Rank all agents across all vaults by 24h spend.
50
+ * Aggregates what getAgentLeaderboard does per-vault into a portfolio-wide ranking.
51
+ */
52
+ export declare function getCrossVaultAgentRanking(overview: PortfolioOverview): CrossVaultAgentRanking[];
53
+ /**
54
+ * Rank agents across multiple pre-resolved vault states.
55
+ * Convenience wrapper when you have ResolvedVaultState[] but not a full PortfolioOverview.
56
+ *
57
+ * For the full portfolio pipeline, use getPortfolioOverview() + getCrossVaultAgentRanking().
58
+ */
59
+ export declare function getAgentLeaderboardAcrossVaults(vaultStates: Array<{
60
+ address: Address;
61
+ state: ResolvedVaultState;
62
+ }>): CrossVaultAgentRanking[];
63
+ export interface PortfolioTimeSeries {
64
+ /** Aggregated spending per epoch across all vaults */
65
+ spendingByEpoch: Array<{
66
+ timestamp: number;
67
+ totalUsd: bigint;
68
+ vaultBreakdown: Map<Address, bigint>;
69
+ }>;
70
+ totalSpend24h: bigint;
71
+ totalCap24h: bigint;
72
+ utilization: number;
73
+ }
74
+ /**
75
+ * Aggregated spending time-series across all vaults for portfolio-level charts.
76
+ * Merges per-vault SpendTracker histories into one combined timeline.
77
+ */
78
+ export declare function getPortfolioTimeSeries(vaultStates: Array<{
79
+ address: Address;
80
+ state: ResolvedVaultState;
81
+ }>, nowUnix: bigint): PortfolioTimeSeries;
82
+ //# sourceMappingURL=portfolio-analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio-analytics.d.ts","sourceRoot":"","sources":["../src/portfolio-analytics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAID,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CA0E5F;AAID;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,EACtB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,OAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAuB5B;AAID,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,GAC1B,sBAAsB,EAAE,CAgD1B;AAID;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAAC,GAClE,sBAAsB,EAAE,CA8C1B;AAID,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,eAAe,EAAE,KAAK,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC,CAAC;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAAC,EACnE,OAAO,EAAE,MAAM,GACd,mBAAmB,CA4CrB"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Portfolio analytics — cross-vault aggregation for the portfolio page.
3
+ *
4
+ * getPortfolioOverview() is the most expensive SDK call — it resolves ALL
5
+ * vaults for an owner. The dashboard caches this with 30s stale time.
6
+ */
7
+ import { findVaultsByOwner, bytesToAddress, getSpendingHistory, } from "./state-resolver.js";
8
+ import { getVaultSummary } from "./vault-analytics.js";
9
+ import { evaluateAlertConditions } from "./security-analytics.js";
10
+ // ─── Helpers (exported for testing) ──────────────────────────────────────────
11
+ /** Aggregate VaultSummary[] into portfolio totals. Pure function. */
12
+ export function aggregatePortfolio(vaults) {
13
+ if (vaults.length === 0) {
14
+ return {
15
+ vaults: [],
16
+ totals: {
17
+ vaultCount: 0, activeVaultCount: 0, totalValueUsd: 0n, totalAgents: 0,
18
+ totalSpend24h: 0n, totalVolume: 0n, totalFeesCollected: 0n,
19
+ totalPnl: 0n, totalDeposited: 0n, totalWithdrawn: 0n, overallPnlPercent: 0,
20
+ },
21
+ topVaultByValue: null,
22
+ topVaultBySpending: null,
23
+ };
24
+ }
25
+ let totalValueUsd = 0n;
26
+ let totalAgents = 0;
27
+ let totalSpend24h = 0n;
28
+ let totalVolume = 0n;
29
+ let totalFeesCollected = 0n;
30
+ let totalPnl = 0n;
31
+ let totalDeposited = 0n;
32
+ let totalWithdrawn = 0n;
33
+ let activeVaultCount = 0;
34
+ let topValueAddr = null;
35
+ let topValue = 0n;
36
+ let topSpendAddr = null;
37
+ let topSpend = 0n;
38
+ for (const v of vaults) {
39
+ totalValueUsd += v.totalValueUsd;
40
+ totalAgents += v.health.agentCount;
41
+ totalSpend24h += v.state.globalBudget.spent24h;
42
+ totalVolume += v.stats.totalVolume;
43
+ totalFeesCollected += v.stats.totalFeesCollected;
44
+ totalPnl += v.pnl.pnl;
45
+ totalDeposited += v.pnl.totalDeposited;
46
+ totalWithdrawn += v.pnl.totalWithdrawn;
47
+ if (v.health.status === "Active")
48
+ activeVaultCount++;
49
+ if (v.totalValueUsd > topValue) {
50
+ topValue = v.totalValueUsd;
51
+ topValueAddr = v.address;
52
+ }
53
+ if (v.state.globalBudget.spent24h > topSpend) {
54
+ topSpend = v.state.globalBudget.spent24h;
55
+ topSpendAddr = v.address;
56
+ }
57
+ }
58
+ const netInvestment = totalDeposited - totalWithdrawn;
59
+ const overallPnlPercent = netInvestment > 0n
60
+ ? Number((totalPnl * 10000n) / netInvestment) / 100
61
+ : 0;
62
+ return {
63
+ vaults,
64
+ totals: {
65
+ vaultCount: vaults.length,
66
+ activeVaultCount,
67
+ totalValueUsd,
68
+ totalAgents,
69
+ totalSpend24h,
70
+ totalVolume,
71
+ totalFeesCollected,
72
+ totalPnl,
73
+ totalDeposited,
74
+ totalWithdrawn,
75
+ overallPnlPercent,
76
+ },
77
+ topVaultByValue: topValueAddr,
78
+ topVaultBySpending: topSpendAddr,
79
+ };
80
+ }
81
+ // ─── getPortfolioOverview ────────────────────────────────────────────────────
82
+ /**
83
+ * Cross-vault aggregated analytics for the portfolio page.
84
+ * N+1 RPC calls: 1 discovery + N vault summaries (parallel).
85
+ */
86
+ export async function getPortfolioOverview(rpc, owner, network = "mainnet-beta") {
87
+ const discovered = await findVaultsByOwner(rpc, owner);
88
+ if (discovered.length === 0) {
89
+ return { ...aggregatePortfolio([]), alerts: [] };
90
+ }
91
+ // Use allSettled so one failed vault doesn't kill the entire portfolio
92
+ const results = await Promise.allSettled(discovered.map((v) => getVaultSummary(rpc, v.vaultAddress, network)));
93
+ const vaults = results
94
+ .filter((r) => r.status === "fulfilled")
95
+ .map((r) => r.value);
96
+ const portfolio = aggregatePortfolio(vaults);
97
+ const allAlerts = [];
98
+ for (const v of vaults) {
99
+ allAlerts.push(...evaluateAlertConditions(v.state, v.address));
100
+ }
101
+ return { ...portfolio, alerts: allAlerts };
102
+ }
103
+ /**
104
+ * Rank all agents across all vaults by 24h spend.
105
+ * Aggregates what getAgentLeaderboard does per-vault into a portfolio-wide ranking.
106
+ */
107
+ export function getCrossVaultAgentRanking(overview) {
108
+ const allAgents = [];
109
+ for (const vault of overview.vaults) {
110
+ for (const [agentAddr, budget] of vault.state.allAgentBudgets) {
111
+ const agentEntry = vault.state.vault.agents.find((a) => a.pubkey === agentAddr);
112
+ if (!agentEntry)
113
+ continue;
114
+ let lifetimeSpend = 0n;
115
+ if (vault.state.overlay) {
116
+ const slotIdx = vault.state.overlay.entries.findIndex((e) => {
117
+ try {
118
+ return bytesToAddress(e.agent) === agentAddr;
119
+ }
120
+ catch {
121
+ return false;
122
+ }
123
+ });
124
+ if (slotIdx >= 0 && slotIdx < vault.state.overlay.lifetimeSpend.length) {
125
+ lifetimeSpend = vault.state.overlay.lifetimeSpend[slotIdx];
126
+ }
127
+ }
128
+ allAgents.push({
129
+ agent: agentAddr,
130
+ vaultAddress: vault.address,
131
+ vaultId: vault.vaultId,
132
+ spend24h: budget.spent24h,
133
+ lifetimeSpend,
134
+ capUtilization: budget.cap > 0n
135
+ ? Number((budget.spent24h * 10000n) / budget.cap) / 100
136
+ : 0,
137
+ paused: agentEntry.paused,
138
+ rank: 0,
139
+ });
140
+ }
141
+ }
142
+ allAgents.sort((a, b) => b.spend24h > a.spend24h ? 1 : b.spend24h < a.spend24h ? -1 : 0);
143
+ allAgents.forEach((a, i) => {
144
+ a.rank = i + 1;
145
+ });
146
+ return allAgents;
147
+ }
148
+ // ─── getAgentLeaderboardAcrossVaults ─────────────────────────────────────────
149
+ /**
150
+ * Rank agents across multiple pre-resolved vault states.
151
+ * Convenience wrapper when you have ResolvedVaultState[] but not a full PortfolioOverview.
152
+ *
153
+ * For the full portfolio pipeline, use getPortfolioOverview() + getCrossVaultAgentRanking().
154
+ */
155
+ export function getAgentLeaderboardAcrossVaults(vaultStates) {
156
+ const allAgents = [];
157
+ for (const { address: vaultAddress, state } of vaultStates) {
158
+ for (const [agentAddr, budget] of state.allAgentBudgets) {
159
+ const agentEntry = state.vault.agents.find((a) => a.pubkey === agentAddr);
160
+ if (!agentEntry)
161
+ continue;
162
+ let lifetimeSpend = 0n;
163
+ if (state.overlay) {
164
+ const slotIdx = state.overlay.entries.findIndex((e) => {
165
+ try {
166
+ return bytesToAddress(e.agent) === agentAddr;
167
+ }
168
+ catch {
169
+ return false;
170
+ }
171
+ });
172
+ if (slotIdx >= 0 && slotIdx < state.overlay.lifetimeSpend.length) {
173
+ lifetimeSpend = state.overlay.lifetimeSpend[slotIdx];
174
+ }
175
+ }
176
+ allAgents.push({
177
+ agent: agentAddr,
178
+ vaultAddress,
179
+ vaultId: state.vault.vaultId,
180
+ spend24h: budget.spent24h,
181
+ lifetimeSpend,
182
+ capUtilization: budget.cap > 0n
183
+ ? Number((budget.spent24h * 10000n) / budget.cap) / 100
184
+ : 0,
185
+ paused: agentEntry.paused,
186
+ rank: 0,
187
+ });
188
+ }
189
+ }
190
+ allAgents.sort((a, b) => b.spend24h > a.spend24h ? 1 : b.spend24h < a.spend24h ? -1 : 0);
191
+ allAgents.forEach((a, i) => {
192
+ a.rank = i + 1;
193
+ });
194
+ return allAgents;
195
+ }
196
+ /**
197
+ * Aggregated spending time-series across all vaults for portfolio-level charts.
198
+ * Merges per-vault SpendTracker histories into one combined timeline.
199
+ */
200
+ export function getPortfolioTimeSeries(vaultStates, nowUnix) {
201
+ const epochMap = new Map();
202
+ let totalSpend24h = 0n;
203
+ let totalCap24h = 0n;
204
+ for (const { address, state } of vaultStates) {
205
+ totalSpend24h += state.globalBudget.spent24h;
206
+ totalCap24h += state.globalBudget.cap;
207
+ if (!state.tracker)
208
+ continue;
209
+ const history = getSpendingHistory(state.tracker, nowUnix);
210
+ for (const epoch of history) {
211
+ const existing = epochMap.get(epoch.timestamp) ?? {
212
+ totalUsd: 0n,
213
+ vaultBreakdown: new Map(),
214
+ };
215
+ existing.totalUsd += epoch.usdAmount;
216
+ existing.vaultBreakdown.set(address, (existing.vaultBreakdown.get(address) ?? 0n) + epoch.usdAmount);
217
+ epochMap.set(epoch.timestamp, existing);
218
+ }
219
+ }
220
+ const spendingByEpoch = Array.from(epochMap.entries())
221
+ .map(([timestamp, data]) => ({
222
+ timestamp,
223
+ totalUsd: data.totalUsd,
224
+ vaultBreakdown: data.vaultBreakdown,
225
+ }))
226
+ .sort((a, b) => a.timestamp - b.timestamp);
227
+ const utilization = totalCap24h > 0n
228
+ ? Number((totalSpend24h * 10000n) / totalCap24h) / 100
229
+ : 0;
230
+ return { spendingByEpoch, totalSpend24h, totalCap24h, utilization };
231
+ }
232
+ //# sourceMappingURL=portfolio-analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio-analytics.js","sourceRoot":"","sources":["../src/portfolio-analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Vault creation presets — safe defaults for common use cases.
3
+ *
4
+ * Presets provide the policy/permission fields for CreateVaultOptions.
5
+ * Runtime fields (rpc, network, owner, agent, feeDestination, vaultId)
6
+ * are NOT included — the caller supplies those.
7
+ *
8
+ * Dashboard "Create Vault" wizard uses these as "Quick Setup" cards
9
+ * before the custom configuration step.
10
+ */
11
+ import type { Address } from "@solana/kit";
12
+ import type { CreateVaultOptions } from "./create-vault.js";
13
+ /** Policy fields from CreateVaultOptions that a preset configures. */
14
+ export interface VaultPreset {
15
+ /** Human-readable label for UI display. */
16
+ label: string;
17
+ /** One-sentence description for the wizard card. */
18
+ description: string;
19
+ /** Agent permission bitmask (21 bits). */
20
+ permissions: bigint;
21
+ /** Rolling 24h spending cap in USD base units (6 decimals). */
22
+ dailySpendingCapUsd: bigint;
23
+ /** Max single transaction size in USD base units. */
24
+ maxTransactionSizeUsd: bigint;
25
+ /** Max slippage in basis points. */
26
+ maxSlippageBps: number;
27
+ /** Protocol mode: 0 = all, 1 = allowlist, 2 = denylist. */
28
+ protocolMode: number;
29
+ /** Allowed/denied protocol addresses (empty if mode = all). */
30
+ protocols: Address[];
31
+ /** Max leverage in basis points (0 = no leverage). */
32
+ maxLeverageBps: number;
33
+ /** Max concurrent open positions. */
34
+ maxConcurrentPositions: number;
35
+ }
36
+ export declare const VAULT_PRESETS: {
37
+ readonly "jupiter-swap-bot": {
38
+ readonly label: "Jupiter Swap Bot";
39
+ readonly description: "Simple swap bot using Jupiter. Swap permission only, conservative caps.";
40
+ readonly permissions: bigint;
41
+ readonly dailySpendingCapUsd: 500000000n;
42
+ readonly maxTransactionSizeUsd: 100000000n;
43
+ readonly maxSlippageBps: 200;
44
+ readonly protocolMode: 1;
45
+ readonly protocols: [Address];
46
+ readonly maxLeverageBps: 0;
47
+ readonly maxConcurrentPositions: 0;
48
+ };
49
+ readonly "perps-trader": {
50
+ readonly label: "Perps Trader";
51
+ readonly description: "Leveraged trading on Flash Trade and Jupiter. Full order management with position limits.";
52
+ readonly permissions: bigint;
53
+ readonly dailySpendingCapUsd: 5000000000n;
54
+ readonly maxTransactionSizeUsd: 1000000000n;
55
+ readonly maxSlippageBps: 500;
56
+ readonly protocolMode: 1;
57
+ readonly protocols: [Address, Address];
58
+ readonly maxLeverageBps: 10000;
59
+ readonly maxConcurrentPositions: 5;
60
+ };
61
+ readonly "lending-optimizer": {
62
+ readonly label: "Lending Optimizer";
63
+ readonly description: "Deposit and withdraw across lending protocols. Low slippage, moderate caps.";
64
+ readonly permissions: bigint;
65
+ readonly dailySpendingCapUsd: 2000000000n;
66
+ readonly maxTransactionSizeUsd: 500000000n;
67
+ readonly maxSlippageBps: 100;
68
+ readonly protocolMode: 1;
69
+ readonly protocols: [Address, Address, Address];
70
+ readonly maxLeverageBps: 0;
71
+ readonly maxConcurrentPositions: 0;
72
+ };
73
+ readonly "full-access": {
74
+ readonly label: "Full Access";
75
+ readonly description: "All permissions enabled, all protocols allowed. For experienced users who need maximum flexibility.";
76
+ readonly permissions: bigint;
77
+ readonly dailySpendingCapUsd: 10000000000n;
78
+ readonly maxTransactionSizeUsd: 5000000000n;
79
+ readonly maxSlippageBps: 500;
80
+ readonly protocolMode: 0;
81
+ readonly protocols: [];
82
+ readonly maxLeverageBps: 20000;
83
+ readonly maxConcurrentPositions: 10;
84
+ };
85
+ };
86
+ export type PresetName = keyof typeof VAULT_PRESETS;
87
+ /**
88
+ * Get a vault preset by name.
89
+ * @returns The preset, or undefined if name is not recognized.
90
+ */
91
+ export declare function getPreset(name: string): VaultPreset | undefined;
92
+ /**
93
+ * List all available preset names.
94
+ */
95
+ export declare function listPresets(): PresetName[];
96
+ /**
97
+ * Convert a preset into CreateVaultOptions fields (without runtime fields).
98
+ * Merge with your own rpc, network, owner, agent to get a complete CreateVaultOptions.
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const preset = presetToCreateVaultFields("jupiter-swap-bot");
103
+ * const opts: CreateVaultOptions = { rpc, network: "devnet", owner, agent, ...preset };
104
+ * const result = await createVault(opts);
105
+ * ```
106
+ */
107
+ export declare function presetToCreateVaultFields(name: PresetName): Pick<CreateVaultOptions, "permissions" | "dailySpendingCapUsd" | "maxTransactionSizeUsd" | "maxSlippageBps" | "protocolMode" | "protocols" | "maxLeverageBps" | "maxConcurrentPositions">;
108
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA0B5D,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAID,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDsB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAG/D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAE1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,GACf,IAAI,CACL,kBAAkB,EAChB,aAAa,GACb,qBAAqB,GACrB,uBAAuB,GACvB,gBAAgB,GAChB,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,wBAAwB,CAC3B,CAYA"}