@emilia-protocol/gate 0.11.0 → 0.14.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 (425) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +310 -0
  3. package/action-control-manifest.js +3 -268
  4. package/action-escrow-custodian.js +3 -394
  5. package/action-escrow-evidence.js +3 -858
  6. package/action-escrow-package.js +3 -1668
  7. package/action-escrow-postgres.js +3 -337
  8. package/action-escrow-state.js +3 -396
  9. package/action-escrow-verifiers.js +3 -331
  10. package/action-escrow.js +3 -2447
  11. package/action-packs.js +3 -140
  12. package/adapters/_kit.js +3 -104
  13. package/adapters/aws.js +3 -108
  14. package/adapters/cloudflare.js +3 -54
  15. package/adapters/gcp.js +3 -70
  16. package/adapters/github.js +3 -109
  17. package/adapters/jira.js +3 -55
  18. package/adapters/k8s.js +3 -70
  19. package/adapters/linear.js +3 -55
  20. package/adapters/salesforce.js +3 -55
  21. package/adapters/stripe.js +3 -81
  22. package/adapters/supabase.js +3 -121
  23. package/adapters/terraform.js +3 -59
  24. package/adapters/vercel.js +3 -84
  25. package/aec-execution.js +3 -312
  26. package/breakglass.js +3 -582
  27. package/capability-receipt.js +4 -0
  28. package/cf1-conformance.js +3 -106
  29. package/challenge-store.js +3 -69
  30. package/control-plane.js +3 -340
  31. package/coverage.js +3 -721
  32. package/demo.mjs +1 -1
  33. package/deployment-attestation.js +3 -247
  34. package/dist/action-control-manifest.d.ts +82 -0
  35. package/dist/action-control-manifest.d.ts.map +1 -0
  36. package/dist/action-control-manifest.js +422 -0
  37. package/dist/action-control-manifest.js.map +1 -0
  38. package/dist/action-escrow-custodian.d.ts +74 -0
  39. package/dist/action-escrow-custodian.d.ts.map +1 -0
  40. package/dist/action-escrow-custodian.js +363 -0
  41. package/dist/action-escrow-custodian.js.map +1 -0
  42. package/dist/action-escrow-evidence.d.ts +130 -0
  43. package/dist/action-escrow-evidence.d.ts.map +1 -0
  44. package/dist/action-escrow-evidence.js +1012 -0
  45. package/dist/action-escrow-evidence.js.map +1 -0
  46. package/dist/action-escrow-package.d.ts +10 -0
  47. package/dist/action-escrow-package.d.ts.map +1 -0
  48. package/dist/action-escrow-package.js +1583 -0
  49. package/dist/action-escrow-package.js.map +1 -0
  50. package/dist/action-escrow-postgres.d.ts +62 -0
  51. package/dist/action-escrow-postgres.d.ts.map +1 -0
  52. package/dist/action-escrow-postgres.js +339 -0
  53. package/dist/action-escrow-postgres.js.map +1 -0
  54. package/dist/action-escrow-state.d.ts +141 -0
  55. package/dist/action-escrow-state.d.ts.map +1 -0
  56. package/dist/action-escrow-state.js +413 -0
  57. package/dist/action-escrow-state.js.map +1 -0
  58. package/dist/action-escrow-verifiers.d.ts +65 -0
  59. package/dist/action-escrow-verifiers.d.ts.map +1 -0
  60. package/dist/action-escrow-verifiers.js +421 -0
  61. package/dist/action-escrow-verifiers.js.map +1 -0
  62. package/dist/action-escrow.d.ts +112 -0
  63. package/dist/action-escrow.d.ts.map +1 -0
  64. package/dist/action-escrow.js +2661 -0
  65. package/dist/action-escrow.js.map +1 -0
  66. package/dist/action-packs.d.ts +54 -0
  67. package/dist/action-packs.d.ts.map +1 -0
  68. package/dist/action-packs.js +143 -0
  69. package/dist/action-packs.js.map +1 -0
  70. package/dist/adapters/_kit.d.ts +50 -0
  71. package/dist/adapters/_kit.d.ts.map +1 -0
  72. package/dist/adapters/_kit.js +98 -0
  73. package/dist/adapters/_kit.js.map +1 -0
  74. package/dist/adapters/aws.d.ts +158 -0
  75. package/dist/adapters/aws.d.ts.map +1 -0
  76. package/dist/adapters/aws.js +136 -0
  77. package/dist/adapters/aws.js.map +1 -0
  78. package/dist/adapters/cloudflare.d.ts +116 -0
  79. package/dist/adapters/cloudflare.d.ts.map +1 -0
  80. package/dist/adapters/cloudflare.js +75 -0
  81. package/dist/adapters/cloudflare.js.map +1 -0
  82. package/dist/adapters/gcp.d.ts +139 -0
  83. package/dist/adapters/gcp.d.ts.map +1 -0
  84. package/dist/adapters/gcp.js +69 -0
  85. package/dist/adapters/gcp.js.map +1 -0
  86. package/dist/adapters/github.d.ts +123 -0
  87. package/dist/adapters/github.d.ts.map +1 -0
  88. package/dist/adapters/github.js +105 -0
  89. package/dist/adapters/github.js.map +1 -0
  90. package/dist/adapters/jira.d.ts +109 -0
  91. package/dist/adapters/jira.d.ts.map +1 -0
  92. package/dist/adapters/jira.js +54 -0
  93. package/dist/adapters/jira.js.map +1 -0
  94. package/dist/adapters/k8s.d.ts +139 -0
  95. package/dist/adapters/k8s.d.ts.map +1 -0
  96. package/dist/adapters/k8s.js +69 -0
  97. package/dist/adapters/k8s.js.map +1 -0
  98. package/dist/adapters/linear.d.ts +109 -0
  99. package/dist/adapters/linear.d.ts.map +1 -0
  100. package/dist/adapters/linear.js +54 -0
  101. package/dist/adapters/linear.js.map +1 -0
  102. package/dist/adapters/salesforce.d.ts +109 -0
  103. package/dist/adapters/salesforce.d.ts.map +1 -0
  104. package/dist/adapters/salesforce.js +54 -0
  105. package/dist/adapters/salesforce.js.map +1 -0
  106. package/dist/adapters/stripe.d.ts +116 -0
  107. package/dist/adapters/stripe.d.ts.map +1 -0
  108. package/dist/adapters/stripe.js +77 -0
  109. package/dist/adapters/stripe.js.map +1 -0
  110. package/dist/adapters/supabase.d.ts +127 -0
  111. package/dist/adapters/supabase.d.ts.map +1 -0
  112. package/dist/adapters/supabase.js +112 -0
  113. package/dist/adapters/supabase.js.map +1 -0
  114. package/dist/adapters/terraform.d.ts +109 -0
  115. package/dist/adapters/terraform.d.ts.map +1 -0
  116. package/dist/adapters/terraform.js +58 -0
  117. package/dist/adapters/terraform.js.map +1 -0
  118. package/dist/adapters/vercel.d.ts +114 -0
  119. package/dist/adapters/vercel.d.ts.map +1 -0
  120. package/dist/adapters/vercel.js +81 -0
  121. package/dist/adapters/vercel.js.map +1 -0
  122. package/dist/aec-execution.d.ts +107 -0
  123. package/dist/aec-execution.d.ts.map +1 -0
  124. package/dist/aec-execution.js +334 -0
  125. package/dist/aec-execution.js.map +1 -0
  126. package/dist/breakglass.d.ts +205 -0
  127. package/dist/breakglass.d.ts.map +1 -0
  128. package/dist/breakglass.js +627 -0
  129. package/dist/breakglass.js.map +1 -0
  130. package/dist/capability-receipt.d.ts +601 -0
  131. package/dist/capability-receipt.d.ts.map +1 -0
  132. package/dist/capability-receipt.js +1177 -0
  133. package/dist/capability-receipt.js.map +1 -0
  134. package/dist/cf1-conformance.d.ts +83 -0
  135. package/dist/cf1-conformance.d.ts.map +1 -0
  136. package/dist/cf1-conformance.js +94 -0
  137. package/dist/cf1-conformance.js.map +1 -0
  138. package/dist/challenge-store.d.ts +20 -0
  139. package/dist/challenge-store.d.ts.map +1 -0
  140. package/dist/challenge-store.js +62 -0
  141. package/dist/challenge-store.js.map +1 -0
  142. package/dist/control-plane.d.ts +136 -0
  143. package/dist/control-plane.d.ts.map +1 -0
  144. package/dist/control-plane.js +349 -0
  145. package/dist/control-plane.js.map +1 -0
  146. package/dist/coverage.d.ts +156 -0
  147. package/dist/coverage.d.ts.map +1 -0
  148. package/dist/coverage.js +768 -0
  149. package/dist/coverage.js.map +1 -0
  150. package/dist/deployment-attestation.d.ts +93 -0
  151. package/dist/deployment-attestation.d.ts.map +1 -0
  152. package/dist/deployment-attestation.js +262 -0
  153. package/dist/deployment-attestation.js.map +1 -0
  154. package/dist/eg1-conformance.d.ts +286 -0
  155. package/dist/eg1-conformance.d.ts.map +1 -0
  156. package/dist/eg1-conformance.js +379 -0
  157. package/dist/eg1-conformance.js.map +1 -0
  158. package/dist/enterprise.d.ts +88 -0
  159. package/dist/enterprise.d.ts.map +1 -0
  160. package/dist/enterprise.js +194 -0
  161. package/dist/enterprise.js.map +1 -0
  162. package/dist/evidence-postgres.d.ts +123 -0
  163. package/dist/evidence-postgres.d.ts.map +1 -0
  164. package/dist/evidence-postgres.js +343 -0
  165. package/dist/evidence-postgres.js.map +1 -0
  166. package/dist/evidence.d.ts +113 -0
  167. package/dist/evidence.d.ts.map +1 -0
  168. package/dist/evidence.js +369 -0
  169. package/dist/evidence.js.map +1 -0
  170. package/dist/execution-binding.d.ts +49 -0
  171. package/dist/execution-binding.d.ts.map +1 -0
  172. package/dist/execution-binding.js +243 -0
  173. package/dist/execution-binding.js.map +1 -0
  174. package/dist/formal-runtime-map.d.ts +42 -0
  175. package/dist/formal-runtime-map.d.ts.map +1 -0
  176. package/dist/formal-runtime-map.js +23 -0
  177. package/dist/formal-runtime-map.js.map +1 -0
  178. package/dist/index.d.ts +1003 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +1737 -0
  181. package/dist/index.js.map +1 -0
  182. package/dist/key-registry.d.ts +60 -0
  183. package/dist/key-registry.d.ts.map +1 -0
  184. package/dist/key-registry.js +144 -0
  185. package/dist/key-registry.js.map +1 -0
  186. package/dist/mcp.d.ts +53 -0
  187. package/dist/mcp.d.ts.map +1 -0
  188. package/dist/mcp.js +112 -0
  189. package/dist/mcp.js.map +1 -0
  190. package/dist/metering.d.ts +80 -0
  191. package/dist/metering.d.ts.map +1 -0
  192. package/dist/metering.js +227 -0
  193. package/dist/metering.js.map +1 -0
  194. package/dist/metrics.d.ts +68 -0
  195. package/dist/metrics.d.ts.map +1 -0
  196. package/dist/metrics.js +242 -0
  197. package/dist/metrics.js.map +1 -0
  198. package/dist/network-witness.d.ts +167 -0
  199. package/dist/network-witness.d.ts.map +1 -0
  200. package/dist/network-witness.js +520 -0
  201. package/dist/network-witness.js.map +1 -0
  202. package/dist/proposal-to-effect.d.ts +146 -0
  203. package/dist/proposal-to-effect.d.ts.map +1 -0
  204. package/dist/proposal-to-effect.js +427 -0
  205. package/dist/proposal-to-effect.js.map +1 -0
  206. package/dist/protocol-state.d.ts +141 -0
  207. package/dist/protocol-state.d.ts.map +1 -0
  208. package/dist/protocol-state.js +106 -0
  209. package/dist/protocol-state.js.map +1 -0
  210. package/dist/receipt-program.d.ts +59 -0
  211. package/dist/receipt-program.d.ts.map +1 -0
  212. package/dist/receipt-program.js +1053 -0
  213. package/dist/receipt-program.js.map +1 -0
  214. package/dist/reliance-kernel.d.ts +66 -0
  215. package/dist/reliance-kernel.d.ts.map +1 -0
  216. package/dist/reliance-kernel.js +103 -0
  217. package/dist/reliance-kernel.js.map +1 -0
  218. package/dist/reliance-packet.d.ts +67 -0
  219. package/dist/reliance-packet.d.ts.map +1 -0
  220. package/dist/reliance-packet.js +176 -0
  221. package/dist/reliance-packet.js.map +1 -0
  222. package/dist/remedy-program-postgres.d.ts +37 -0
  223. package/dist/remedy-program-postgres.d.ts.map +1 -0
  224. package/dist/remedy-program-postgres.js +291 -0
  225. package/dist/remedy-program-postgres.js.map +1 -0
  226. package/dist/remedy-program-receipt.d.ts +97 -0
  227. package/dist/remedy-program-receipt.d.ts.map +1 -0
  228. package/dist/remedy-program-receipt.js +817 -0
  229. package/dist/remedy-program-receipt.js.map +1 -0
  230. package/dist/remedy-program.d.ts +76 -0
  231. package/dist/remedy-program.d.ts.map +1 -0
  232. package/dist/remedy-program.js +1346 -0
  233. package/dist/remedy-program.js.map +1 -0
  234. package/dist/reports/art14.d.ts +101 -0
  235. package/dist/reports/art14.d.ts.map +1 -0
  236. package/dist/reports/art14.js +340 -0
  237. package/dist/reports/art14.js.map +1 -0
  238. package/dist/reports/assurance-package.d.ts +197 -0
  239. package/dist/reports/assurance-package.d.ts.map +1 -0
  240. package/dist/reports/assurance-package.js +313 -0
  241. package/dist/reports/assurance-package.js.map +1 -0
  242. package/dist/reports/auditor-workpaper.d.ts +194 -0
  243. package/dist/reports/auditor-workpaper.d.ts.map +1 -0
  244. package/dist/reports/auditor-workpaper.js +545 -0
  245. package/dist/reports/auditor-workpaper.js.map +1 -0
  246. package/dist/reports/external-verification.d.ts +76 -0
  247. package/dist/reports/external-verification.d.ts.map +1 -0
  248. package/dist/reports/external-verification.js +209 -0
  249. package/dist/reports/external-verification.js.map +1 -0
  250. package/dist/reports/reperform.d.ts +122 -0
  251. package/dist/reports/reperform.d.ts.map +1 -0
  252. package/dist/reports/reperform.js +432 -0
  253. package/dist/reports/reperform.js.map +1 -0
  254. package/dist/reports/underwriter.d.ts +127 -0
  255. package/dist/reports/underwriter.d.ts.map +1 -0
  256. package/dist/reports/underwriter.js +348 -0
  257. package/dist/reports/underwriter.js.map +1 -0
  258. package/dist/retention.d.ts +88 -0
  259. package/dist/retention.d.ts.map +1 -0
  260. package/dist/retention.js +90 -0
  261. package/dist/retention.js.map +1 -0
  262. package/dist/roster.d.ts +113 -0
  263. package/dist/roster.d.ts.map +1 -0
  264. package/dist/roster.js +261 -0
  265. package/dist/roster.js.map +1 -0
  266. package/dist/runtime-monitor.d.ts +132 -0
  267. package/dist/runtime-monitor.d.ts.map +1 -0
  268. package/dist/runtime-monitor.js +197 -0
  269. package/dist/runtime-monitor.js.map +1 -0
  270. package/dist/settlement.d.ts +68 -0
  271. package/dist/settlement.d.ts.map +1 -0
  272. package/dist/settlement.js +306 -0
  273. package/dist/settlement.js.map +1 -0
  274. package/dist/siem.d.ts +261 -0
  275. package/dist/siem.d.ts.map +1 -0
  276. package/dist/siem.js +247 -0
  277. package/dist/siem.js.map +1 -0
  278. package/dist/store-postgres.d.ts +107 -0
  279. package/dist/store-postgres.d.ts.map +1 -0
  280. package/dist/store-postgres.js +152 -0
  281. package/dist/store-postgres.js.map +1 -0
  282. package/dist/store.d.ts +95 -0
  283. package/dist/store.d.ts.map +1 -0
  284. package/dist/store.js +202 -0
  285. package/dist/store.js.map +1 -0
  286. package/dist/strict-json.d.ts +14 -0
  287. package/dist/strict-json.d.ts.map +1 -0
  288. package/dist/strict-json.js +132 -0
  289. package/dist/strict-json.js.map +1 -0
  290. package/dist/trust-program-adapters.d.ts +122 -0
  291. package/dist/trust-program-adapters.d.ts.map +1 -0
  292. package/dist/trust-program-adapters.js +802 -0
  293. package/dist/trust-program-adapters.js.map +1 -0
  294. package/dist/trust-program-postgres.d.ts +41 -0
  295. package/dist/trust-program-postgres.d.ts.map +1 -0
  296. package/dist/trust-program-postgres.js +346 -0
  297. package/dist/trust-program-postgres.js.map +1 -0
  298. package/dist/trust-program-revocation.d.ts +206 -0
  299. package/dist/trust-program-revocation.d.ts.map +1 -0
  300. package/dist/trust-program-revocation.js +600 -0
  301. package/dist/trust-program-revocation.js.map +1 -0
  302. package/dist/trust-program.d.ts +197 -0
  303. package/dist/trust-program.d.ts.map +1 -0
  304. package/dist/trust-program.js +1351 -0
  305. package/dist/trust-program.js.map +1 -0
  306. package/dist/witness-postgres.d.ts +43 -0
  307. package/dist/witness-postgres.d.ts.map +1 -0
  308. package/dist/witness-postgres.js +92 -0
  309. package/dist/witness-postgres.js.map +1 -0
  310. package/dist/zk-range-proof.d.ts +78 -0
  311. package/dist/zk-range-proof.d.ts.map +1 -0
  312. package/dist/zk-range-proof.js +228 -0
  313. package/dist/zk-range-proof.js.map +1 -0
  314. package/eg1-conformance.js +3 -404
  315. package/enterprise.js +3 -180
  316. package/ep-assure.mjs +1 -0
  317. package/evidence-postgres.js +3 -356
  318. package/evidence.js +4 -360
  319. package/execution-binding.js +3 -212
  320. package/formal-runtime-map.js +4 -0
  321. package/index.js +4 -1249
  322. package/key-registry.js +3 -134
  323. package/mcp.js +3 -109
  324. package/metering.js +3 -226
  325. package/metrics.js +3 -231
  326. package/network-witness.js +3 -499
  327. package/package.json +35 -4
  328. package/proposal-to-effect.js +4 -0
  329. package/receipt-program.js +4 -0
  330. package/reliance-kernel.js +3 -112
  331. package/reliance-packet.js +3 -175
  332. package/remedy-program-postgres.js +4 -0
  333. package/remedy-program-receipt.js +4 -0
  334. package/remedy-program.js +4 -0
  335. package/reports/art14.js +0 -0
  336. package/reports/assurance-package.js +2 -312
  337. package/reports/auditor-workpaper.js +3 -537
  338. package/reports/external-verification.js +3 -222
  339. package/reports/reperform.js +3 -424
  340. package/reports/underwriter.js +3 -339
  341. package/retention.js +3 -84
  342. package/roster.js +3 -264
  343. package/runtime-monitor.js +4 -0
  344. package/settlement.js +3 -299
  345. package/siem.js +3 -235
  346. package/src/action-control-manifest.ts +424 -0
  347. package/src/action-escrow-custodian.ts +427 -0
  348. package/src/action-escrow-evidence.ts +1178 -0
  349. package/src/action-escrow-package.ts +1821 -0
  350. package/src/action-escrow-postgres.ts +366 -0
  351. package/src/action-escrow-state.ts +498 -0
  352. package/src/action-escrow-verifiers.ts +484 -0
  353. package/src/action-escrow.ts +3039 -0
  354. package/src/action-packs.ts +170 -0
  355. package/src/adapters/_kit.ts +117 -0
  356. package/src/adapters/aws.ts +142 -0
  357. package/src/adapters/cloudflare.ts +78 -0
  358. package/src/adapters/gcp.ts +71 -0
  359. package/src/adapters/github.ts +110 -0
  360. package/src/adapters/jira.ts +56 -0
  361. package/src/adapters/k8s.ts +71 -0
  362. package/src/adapters/linear.ts +56 -0
  363. package/src/adapters/salesforce.ts +56 -0
  364. package/src/adapters/stripe.ts +82 -0
  365. package/src/adapters/supabase.ts +122 -0
  366. package/src/adapters/terraform.ts +60 -0
  367. package/src/adapters/vercel.ts +85 -0
  368. package/src/aec-execution.ts +354 -0
  369. package/src/breakglass.ts +647 -0
  370. package/src/capability-receipt.ts +1258 -0
  371. package/src/cf1-conformance.ts +120 -0
  372. package/src/challenge-store.ts +70 -0
  373. package/src/control-plane.ts +374 -0
  374. package/src/coverage.ts +832 -0
  375. package/src/deployment-attestation.ts +259 -0
  376. package/src/eg1-conformance.ts +471 -0
  377. package/src/enterprise.ts +195 -0
  378. package/src/evidence-postgres.ts +374 -0
  379. package/src/evidence.ts +367 -0
  380. package/src/execution-binding.ts +236 -0
  381. package/src/formal-runtime-map.ts +24 -0
  382. package/src/index.ts +2127 -0
  383. package/src/key-registry.ts +150 -0
  384. package/src/mcp.ts +120 -0
  385. package/src/metering.ts +237 -0
  386. package/src/metrics.ts +232 -0
  387. package/src/network-witness.ts +585 -0
  388. package/src/proposal-to-effect.ts +571 -0
  389. package/src/protocol-state.ts +143 -0
  390. package/src/protocol-state.typecheck.ts +94 -0
  391. package/src/receipt-program.ts +1105 -0
  392. package/src/reliance-kernel.ts +119 -0
  393. package/src/reliance-packet.ts +206 -0
  394. package/src/remedy-program-postgres.ts +367 -0
  395. package/src/remedy-program-receipt.ts +891 -0
  396. package/src/remedy-program.ts +1388 -0
  397. package/src/reports/art14.ts +361 -0
  398. package/src/reports/assurance-package.ts +330 -0
  399. package/src/reports/auditor-workpaper.ts +558 -0
  400. package/src/reports/external-verification.ts +232 -0
  401. package/src/reports/reperform.ts +441 -0
  402. package/src/reports/underwriter.ts +356 -0
  403. package/src/retention.ts +100 -0
  404. package/src/roster.ts +273 -0
  405. package/src/runtime-monitor.ts +217 -0
  406. package/src/settlement.ts +313 -0
  407. package/src/siem.ts +247 -0
  408. package/src/store-postgres.ts +167 -0
  409. package/src/store.ts +214 -0
  410. package/src/strict-json.ts +115 -0
  411. package/src/trust-program-adapters.ts +847 -0
  412. package/src/trust-program-postgres.ts +429 -0
  413. package/src/trust-program-revocation.ts +751 -0
  414. package/src/trust-program.ts +1460 -0
  415. package/src/witness-postgres.ts +106 -0
  416. package/src/zk-range-proof.ts +250 -0
  417. package/store-postgres.js +3 -161
  418. package/store.js +4 -198
  419. package/strict-json.js +3 -102
  420. package/trust-program-adapters.js +4 -0
  421. package/trust-program-postgres.js +4 -0
  422. package/trust-program-revocation.js +4 -0
  423. package/trust-program.js +4 -0
  424. package/witness-postgres.js +3 -96
  425. package/zk-range-proof.js +4 -0
@@ -0,0 +1,422 @@
1
+ // @ts-nocheck
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //
4
+ // EP Action Control Manifest: the missing control-plane waist between agent
5
+ // runtimes, receipt formats, transparency logs, and system-of-record adapters.
6
+ //
7
+ // A receipt proves an authorization event. This manifest tells an executor
8
+ // when a receipt is required, what assurance tier is required, which material
9
+ // fields must be observed from the system of record, and what evidence must be
10
+ // emitted after the effect boundary.
11
+ import { HIGH_RISK_ACTION_PACKS, DEFAULT_PASS_THROUGH_ACTIONS } from './action-packs.js';
12
+ export const ACTION_CONTROL_MANIFEST_VERSION = 'EP-ACTION-CONTROL-MANIFEST-v0.2';
13
+ export const ACTION_CONTROL_SCHEMA_URL = 'https://www.emiliaprotocol.ai/docs/schemas/agent-action-control-manifest-v0.2.schema.json';
14
+ export const ACTION_CONTROL_CONFORMANCE_LEVEL = 'EG-1';
15
+ export const ACTION_CONTROL_AUTHORIZATION = Object.freeze({
16
+ authorization_endpoint: 'https://www.emiliaprotocol.ai/api/v1/approvals',
17
+ flow: 'EP-APPROVAL-v1',
18
+ });
19
+ // Acquisition is advertised only when the reference server has a closed,
20
+ // independently verifiable ceremony for the action type. Receipt-required
21
+ // actions outside this registry remain enforceable, but challenge-only.
22
+ export const ACTION_CONTROL_ACQUISITION_ACTION_TYPES = Object.freeze([
23
+ 'payment.release',
24
+ ]);
25
+ const RISK_LEVELS = new Set(['low', 'medium', 'high', 'critical']);
26
+ const ASSURANCE_CLASSES = new Set(['software', 'class_a', 'quorum']);
27
+ const ENFORCEMENT_POINTS = new Set(['pre_execution', 'pre_effect_commit']);
28
+ export const ACTION_CONTROL_DEFAULTS = Object.freeze({
29
+ decision_point: 'pre_effect_commit',
30
+ missing_receipt: 'refuse',
31
+ invalid_receipt: 'refuse',
32
+ stale_receipt: 'refuse',
33
+ replay: 'one_time_consumption',
34
+ evidence_log: 'strict',
35
+ });
36
+ export const ACTION_CONTROL_EVIDENCE_PROFILES = Object.freeze({
37
+ authorization_receipt: 'EP-RECEIPT-v1',
38
+ execution_attestation: 'EP-EXECUTION-ATTESTATION-v1',
39
+ reliance_packet: 'EP-RELIANCE-PACKET-v1',
40
+ transparency: 'SCITT-compatible Signed Statement',
41
+ });
42
+ export const ACTION_CONTROL_CONFORMANCE_CHECKS = Object.freeze([
43
+ 'missing_receipt_refused',
44
+ 'software_on_classA_refused',
45
+ 'execution_drift_refused',
46
+ 'valid_classA_runs',
47
+ 'replay_refused',
48
+ 'tampered_refused',
49
+ 'execution_proof_binds',
50
+ 'reliance_packet_rely',
51
+ ]);
52
+ function cloneJson(value) {
53
+ return value == null ? value : JSON.parse(JSON.stringify(value));
54
+ }
55
+ function normalizeRisk(risk) {
56
+ return RISK_LEVELS.has(risk) ? risk : 'high';
57
+ }
58
+ function normalizeAssurance(value) {
59
+ return ASSURANCE_CLASSES.has(value) ? value : 'software';
60
+ }
61
+ function supportsReferenceAcquisition(actionType) {
62
+ return typeof actionType === 'string'
63
+ && ACTION_CONTROL_ACQUISITION_ACTION_TYPES.includes(actionType);
64
+ }
65
+ function defaultControlForAction(action) {
66
+ const requiredFields = action.execution_binding?.required_fields || [];
67
+ const caidSelector = action.execution_binding?.caid_selector;
68
+ if (!action.receipt_required) {
69
+ return {
70
+ enforcement_point: 'none',
71
+ authorization_receipt: { required: false },
72
+ evidence_output: { audit_event: true },
73
+ };
74
+ }
75
+ const control = {
76
+ enforcement_point: 'pre_effect_commit',
77
+ status: 428,
78
+ challenge_header: 'Receipt-Required',
79
+ proof_header: 'X-EMILIA-Receipt',
80
+ authorization_receipt: {
81
+ required: true,
82
+ profile: 'EP-RECEIPT-v1',
83
+ signature: 'Ed25519 over RFC 8785 canonical JSON',
84
+ verifier: 'offline',
85
+ },
86
+ replay: {
87
+ mode: 'one_time_consumption',
88
+ receipt_id_required: true,
89
+ },
90
+ execution_binding: {
91
+ required: true,
92
+ source: 'system_of_record',
93
+ required_fields: [...requiredFields],
94
+ ...(caidSelector ? { caid_selector: cloneJson(caidSelector) } : {}),
95
+ },
96
+ transparency: {
97
+ mode: 'registerable',
98
+ profile: 'SCITT Signed Statement',
99
+ required: false,
100
+ },
101
+ evidence_output: {
102
+ audit_event: true,
103
+ execution_attestation: true,
104
+ reliance_packet: true,
105
+ blocked_attempts: true,
106
+ },
107
+ };
108
+ if (supportsReferenceAcquisition(action.action_type)) {
109
+ control.authorization = { ...ACTION_CONTROL_AUTHORIZATION };
110
+ }
111
+ return control;
112
+ }
113
+ export function toActionControl(action) {
114
+ const out = {
115
+ id: action.id,
116
+ label: action.label || action.description || action.id,
117
+ action_type: action.action_type,
118
+ risk: normalizeRisk(action.risk || (action.receipt_required ? 'high' : 'low')),
119
+ receipt_required: !!action.receipt_required,
120
+ assurance_class: normalizeAssurance(action.assurance_class),
121
+ max_age_sec: action.max_age_sec || 900,
122
+ match: cloneJson(action.match || {}),
123
+ why: action.why || action.description || null,
124
+ control: cloneJson(action.control || defaultControlForAction(action)),
125
+ conformance: {
126
+ level: ACTION_CONTROL_CONFORMANCE_LEVEL,
127
+ checks: [...ACTION_CONTROL_CONFORMANCE_CHECKS],
128
+ ...(action.conformance || {}),
129
+ },
130
+ };
131
+ if (action.quorum)
132
+ out.quorum = cloneJson(action.quorum);
133
+ if (action.business_authorization || action.businessAuthorization) {
134
+ out.business_authorization = cloneJson(action.business_authorization || action.businessAuthorization);
135
+ }
136
+ return out;
137
+ }
138
+ /**
139
+ * @param {object} [o]
140
+ * @param {{ name?: string, issuer?: string, manifest_url?: string }} [o.service]
141
+ * @param {boolean} [o.includePassThrough]
142
+ * @param {Array<object>} [o.extraActions]
143
+ */
144
+ export function createDefaultActionControlManifest({ service = {}, includePassThrough = true, extraActions = [], } = {}) {
145
+ const actions = [
146
+ ...HIGH_RISK_ACTION_PACKS.map(toActionControl),
147
+ ...(includePassThrough ? DEFAULT_PASS_THROUGH_ACTIONS.map(toActionControl) : []),
148
+ ];
149
+ // `extraActions` is also the supported customization mechanism. An exact id
150
+ // or exact transport-selector match replaces the built-in entry; leaving
151
+ // both would create an ambiguous manifest that the validator correctly
152
+ // rejects. Broader/partial overlaps are not silently normalized and remain
153
+ // validation errors.
154
+ for (const candidate of extraActions.map(toActionControl)) {
155
+ const index = actions.findIndex((current) => current.id === candidate.id
156
+ || selectorsEqual(current, candidate));
157
+ if (index >= 0)
158
+ actions.splice(index, 1, candidate);
159
+ else
160
+ actions.push(candidate);
161
+ }
162
+ return {
163
+ '@version': ACTION_CONTROL_MANIFEST_VERSION,
164
+ '$schema': ACTION_CONTROL_SCHEMA_URL,
165
+ profile: 'agent-action-control',
166
+ service: {
167
+ name: service.name || 'EMILIA Gate default action controls',
168
+ issuer: service.issuer || 'https://www.emiliaprotocol.ai',
169
+ manifest_url: service.manifest_url || 'https://www.emiliaprotocol.ai/.well-known/agent-action-control.json',
170
+ ...service,
171
+ },
172
+ defaults: { ...ACTION_CONTROL_DEFAULTS },
173
+ evidence_profiles: { ...ACTION_CONTROL_EVIDENCE_PROFILES },
174
+ actions,
175
+ };
176
+ }
177
+ function selectorMatches(action, selector = {}) {
178
+ if (!action || typeof action !== 'object' || Array.isArray(action)
179
+ || !selector || typeof selector !== 'object' || Array.isArray(selector))
180
+ return false;
181
+ const match = action.match;
182
+ if (!match || typeof match !== 'object' || Array.isArray(match))
183
+ return false;
184
+ const matchEntries = Object.entries(match);
185
+ if (matchEntries.length === 0)
186
+ return false;
187
+ // action_type is an additional constraint; it may never bypass a conflicting
188
+ // transport selector. Other selector metadata (for example manifestUrl) is
189
+ // not part of the action's transport identity.
190
+ if (Object.prototype.hasOwnProperty.call(selector, 'action_type')
191
+ && selector.action_type !== action.action_type)
192
+ return false;
193
+ return matchEntries.every(([key, value]) => (Object.prototype.hasOwnProperty.call(selector, key) && selector[key] === value));
194
+ }
195
+ export function findActionControl(manifest, selector = {}) {
196
+ const resolved = resolveActionControl(manifest, selector);
197
+ return resolved.status === 'one' ? resolved.action : null;
198
+ }
199
+ export function resolveActionControl(manifest, selector = {}) {
200
+ if (!manifest || !Array.isArray(manifest.actions))
201
+ return { status: 'none', action: null };
202
+ const matches = manifest.actions.filter((action) => selectorMatches(action, selector));
203
+ if (matches.length === 0)
204
+ return { status: 'none', action: null };
205
+ if (matches.length === 1)
206
+ return { status: 'one', action: matches[0] };
207
+ return {
208
+ status: 'ambiguous',
209
+ action: null,
210
+ action_ids: matches.map((action) => String(action.id || '')).sort(),
211
+ };
212
+ }
213
+ function selectorsOverlap(left, right) {
214
+ const a = left?.match;
215
+ const b = right?.match;
216
+ if (!a || !b || typeof a !== 'object' || typeof b !== 'object'
217
+ || Array.isArray(a) || Array.isArray(b))
218
+ return false;
219
+ const shared = Object.keys(a).filter((key) => Object.prototype.hasOwnProperty.call(b, key));
220
+ return shared.every((key) => a[key] === b[key]);
221
+ }
222
+ function selectorsEqual(left, right) {
223
+ const a = left?.match;
224
+ const b = right?.match;
225
+ if (!a || !b || typeof a !== 'object' || typeof b !== 'object'
226
+ || Array.isArray(a) || Array.isArray(b))
227
+ return false;
228
+ const aKeys = Object.keys(a).sort();
229
+ const bKeys = Object.keys(b).sort();
230
+ return aKeys.length > 0
231
+ && aKeys.length === bKeys.length
232
+ && aKeys.every((key, index) => key === bKeys[index] && a[key] === b[key]);
233
+ }
234
+ function validateAuthorizationDescriptor(authorization, prefix, errors) {
235
+ if (!authorization || typeof authorization !== 'object' || Array.isArray(authorization)) {
236
+ errors.push(`${prefix}.control.authorization must be an object`);
237
+ return;
238
+ }
239
+ const prototype = Object.getPrototypeOf(authorization);
240
+ const keys = Object.keys(authorization).sort();
241
+ if ((prototype !== Object.prototype && prototype !== null)
242
+ || keys.length !== 2
243
+ || keys[0] !== 'authorization_endpoint'
244
+ || keys[1] !== 'flow') {
245
+ errors.push(`${prefix}.control.authorization must contain only authorization_endpoint and flow`);
246
+ }
247
+ if (authorization.flow !== 'EP-APPROVAL-v1') {
248
+ errors.push(`${prefix}.control.authorization.flow must be EP-APPROVAL-v1`);
249
+ }
250
+ let endpoint = null;
251
+ try {
252
+ endpoint = new URL(authorization.authorization_endpoint);
253
+ }
254
+ catch {
255
+ // The common error below intentionally covers both malformed and relative URLs.
256
+ }
257
+ if (!endpoint
258
+ || endpoint.protocol !== 'https:'
259
+ || !endpoint.hostname
260
+ || endpoint.username
261
+ || endpoint.password
262
+ || endpoint.search
263
+ || endpoint.hash) {
264
+ errors.push(`${prefix}.control.authorization.authorization_endpoint must be an absolute HTTPS URL without credentials, query, or fragment`);
265
+ }
266
+ }
267
+ export function validateActionControlManifest(manifest, { requireAcquisition = false } = {}) {
268
+ const errors = [];
269
+ if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest)) {
270
+ return { ok: false, errors: ['manifest must be an object'] };
271
+ }
272
+ if (manifest['@version'] !== ACTION_CONTROL_MANIFEST_VERSION) {
273
+ errors.push(`@version must be ${ACTION_CONTROL_MANIFEST_VERSION}`);
274
+ }
275
+ if (manifest.profile !== 'agent-action-control' && manifest.profile !== 'emilia.action-control') {
276
+ errors.push('profile must be agent-action-control (or the deployed alias emilia.action-control)');
277
+ }
278
+ if (!manifest.service || typeof manifest.service !== 'object') {
279
+ errors.push('service object is required');
280
+ }
281
+ if (!manifest.defaults || typeof manifest.defaults !== 'object') {
282
+ errors.push('defaults object is required');
283
+ }
284
+ if (!Array.isArray(manifest.actions) || manifest.actions.length === 0) {
285
+ errors.push('actions must be a non-empty array');
286
+ }
287
+ const ids = new Map();
288
+ for (const [idx, action] of (manifest.actions || []).entries()) {
289
+ const prefix = `actions[${idx}]`;
290
+ if (!action || typeof action !== 'object') {
291
+ errors.push(`${prefix} must be an object`);
292
+ continue;
293
+ }
294
+ if (!action.id || typeof action.id !== 'string')
295
+ errors.push(`${prefix}.id is required`);
296
+ else if (ids.has(action.id))
297
+ errors.push(`${prefix}.id duplicates actions[${ids.get(action.id)}].id`);
298
+ else
299
+ ids.set(action.id, idx);
300
+ if (!action.action_type || typeof action.action_type !== 'string')
301
+ errors.push(`${prefix}.action_type is required`);
302
+ if (!action.match || typeof action.match !== 'object')
303
+ errors.push(`${prefix}.match is required`);
304
+ if (typeof action.receipt_required !== 'boolean')
305
+ errors.push(`${prefix}.receipt_required must be boolean`);
306
+ if (!RISK_LEVELS.has(action.risk))
307
+ errors.push(`${prefix}.risk must be low|medium|high|critical`);
308
+ if (!ASSURANCE_CLASSES.has(action.assurance_class))
309
+ errors.push(`${prefix}.assurance_class must be software|class_a|quorum`);
310
+ // Key-class floor: a critical action must be bound to a human key. normalizeAssurance()
311
+ // defaults a missing or unrecognized tier to the weakest 'software', so this also fails
312
+ // closed on a critical action whose tier was omitted rather than silently downgrading it.
313
+ if (action.receipt_required && action.risk === 'critical' && action.assurance_class === 'software') {
314
+ errors.push(`${prefix}.assurance_class must be class_a or quorum when risk is critical`);
315
+ }
316
+ const authorization = action.control?.authorization;
317
+ if (authorization !== undefined) {
318
+ validateAuthorizationDescriptor(authorization, prefix, errors);
319
+ if (!supportsReferenceAcquisition(action.action_type)) {
320
+ errors.push(`${prefix}.control.authorization is advertised for an unsupported acquisition action_type`);
321
+ }
322
+ }
323
+ if (action.receipt_required) {
324
+ if (!Number.isFinite(action.max_age_sec) || action.max_age_sec <= 0)
325
+ errors.push(`${prefix}.max_age_sec must be positive`);
326
+ const control = action.control;
327
+ if (!control || typeof control !== 'object') {
328
+ errors.push(`${prefix}.control is required when receipt_required=true`);
329
+ continue;
330
+ }
331
+ if (requireAcquisition
332
+ && supportsReferenceAcquisition(action.action_type)
333
+ && authorization === undefined) {
334
+ errors.push(`${prefix}.control.authorization is required for acquisition conformance`);
335
+ }
336
+ if (!ENFORCEMENT_POINTS.has(control.enforcement_point)) {
337
+ errors.push(`${prefix}.control.enforcement_point must be pre_execution or pre_effect_commit`);
338
+ }
339
+ if (control.status !== 428)
340
+ errors.push(`${prefix}.control.status must be 428`);
341
+ if (control.authorization_receipt?.required !== true)
342
+ errors.push(`${prefix}.control.authorization_receipt.required must be true`);
343
+ if (control.authorization_receipt?.profile !== 'EP-RECEIPT-v1')
344
+ errors.push(`${prefix}.control.authorization_receipt.profile must be EP-RECEIPT-v1`);
345
+ if (control.authorization_receipt?.verifier !== 'offline')
346
+ errors.push(`${prefix}.control.authorization_receipt.verifier must be offline`);
347
+ if (control.replay?.mode !== 'one_time_consumption')
348
+ errors.push(`${prefix}.control.replay.mode must be one_time_consumption`);
349
+ if (control.replay?.receipt_id_required !== true)
350
+ errors.push(`${prefix}.control.replay.receipt_id_required must be true`);
351
+ const fields = control.execution_binding?.required_fields;
352
+ if (control.execution_binding?.required !== true)
353
+ errors.push(`${prefix}.control.execution_binding.required must be true`);
354
+ if (control.execution_binding?.source !== 'system_of_record')
355
+ errors.push(`${prefix}.control.execution_binding.source must be system_of_record`);
356
+ if (!Array.isArray(fields) || fields.length === 0 || fields.some((f) => typeof f !== 'string' || !f)) {
357
+ errors.push(`${prefix}.control.execution_binding.required_fields must be a non-empty string array`);
358
+ }
359
+ const caidSelector = control.execution_binding?.caid_selector;
360
+ if (caidSelector !== undefined
361
+ && (!caidSelector || typeof caidSelector !== 'object' || Array.isArray(caidSelector)
362
+ || Object.keys(caidSelector).length !== 1
363
+ || typeof caidSelector.field !== 'string'
364
+ || !/^[A-Za-z][A-Za-z0-9_]{0,127}$/.test(caidSelector.field))) {
365
+ errors.push(`${prefix}.control.execution_binding.caid_selector must select one safe action field`);
366
+ }
367
+ if (control.evidence_output?.execution_attestation !== true)
368
+ errors.push(`${prefix}.control.evidence_output.execution_attestation must be true`);
369
+ if (control.evidence_output?.reliance_packet !== true)
370
+ errors.push(`${prefix}.control.evidence_output.reliance_packet must be true`);
371
+ if (action.conformance?.level !== ACTION_CONTROL_CONFORMANCE_LEVEL)
372
+ errors.push(`${prefix}.conformance.level must be ${ACTION_CONTROL_CONFORMANCE_LEVEL}`);
373
+ if (action.business_authorization !== undefined) {
374
+ const business = action.business_authorization;
375
+ const policy = business?.policy;
376
+ const approvers = business?.allowed_approvers;
377
+ if (!business || typeof business !== 'object' || Array.isArray(business)) {
378
+ errors.push(`${prefix}.business_authorization must be an object`);
379
+ }
380
+ else {
381
+ if (!policy || typeof policy !== 'object' || Array.isArray(policy)
382
+ || typeof policy.id !== 'string' || !policy.id
383
+ || typeof policy.hash !== 'string' || !policy.hash) {
384
+ errors.push(`${prefix}.business_authorization.policy must pin non-empty id and hash`);
385
+ }
386
+ if (typeof business.tenant_id !== 'string' || !business.tenant_id) {
387
+ errors.push(`${prefix}.business_authorization.tenant_id must be a non-empty string`);
388
+ }
389
+ if (!Array.isArray(approvers) || approvers.length === 0
390
+ || approvers.some((entry) => !entry || typeof entry !== 'object'
391
+ || typeof entry.subject !== 'string' || !entry.subject
392
+ || typeof entry.role !== 'string' || !entry.role)) {
393
+ errors.push(`${prefix}.business_authorization.allowed_approvers must name subject and role`);
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ for (let left = 0; left < (manifest.actions || []).length; left += 1) {
400
+ for (let right = left + 1; right < manifest.actions.length; right += 1) {
401
+ if (selectorsOverlap(manifest.actions[left], manifest.actions[right])) {
402
+ errors.push(`actions[${left}].match overlaps actions[${right}].match`);
403
+ }
404
+ }
405
+ }
406
+ return { ok: errors.length === 0, errors };
407
+ }
408
+ export default {
409
+ ACTION_CONTROL_MANIFEST_VERSION,
410
+ ACTION_CONTROL_SCHEMA_URL,
411
+ ACTION_CONTROL_CONFORMANCE_LEVEL,
412
+ ACTION_CONTROL_AUTHORIZATION,
413
+ ACTION_CONTROL_DEFAULTS,
414
+ ACTION_CONTROL_EVIDENCE_PROFILES,
415
+ ACTION_CONTROL_CONFORMANCE_CHECKS,
416
+ toActionControl,
417
+ createDefaultActionControlManifest,
418
+ findActionControl,
419
+ resolveActionControl,
420
+ validateActionControlManifest,
421
+ };
422
+ //# sourceMappingURL=action-control-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-control-manifest.js","sourceRoot":"","sources":["../src/action-control-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export declare const ACTION_ESCROW_CUSTODIAN_OBSERVATION_VERSION = "EP-ACTION-ESCROW-CUSTODIAN-OBSERVATION-v1";
2
+ /**
3
+ * The bridge implements the kernel's release/getRelease contract. It never
4
+ * claims that EMILIA holds funds or that the external provider is licensed.
5
+ */
6
+ export declare function createActionEscrowCustodianBridge({ adapter, observationSigner, now, }?: {
7
+ adapter?: Record<string, any>;
8
+ observationSigner?: Record<string, any>;
9
+ now?: () => string;
10
+ }): Readonly<{
11
+ provider: any;
12
+ environment: any;
13
+ release(untrustedRequest: any): Promise<{
14
+ accepted: boolean;
15
+ }>;
16
+ getRelease(untrustedRequest: any): Promise<{
17
+ authenticated: boolean;
18
+ statement: any;
19
+ }>;
20
+ }>;
21
+ export declare function createActionEscrowCustodianStatementVerifier({ operatorKeys, providerId, environment, }?: {
22
+ operatorKeys?: Record<string, any>;
23
+ providerId?: string;
24
+ environment?: string;
25
+ }): (statement: any, expected: any) => Promise<{
26
+ valid: boolean;
27
+ reason: string;
28
+ authenticated?: undefined;
29
+ statement_type?: undefined;
30
+ status?: undefined;
31
+ statement_digest?: undefined;
32
+ provider_id?: undefined;
33
+ agreement_digest?: undefined;
34
+ document_action_binding_digest?: undefined;
35
+ milestone_id?: undefined;
36
+ release_action_digest?: undefined;
37
+ parties_digest?: undefined;
38
+ profile_digest?: undefined;
39
+ provider_idempotency_key?: undefined;
40
+ provider_request_digest?: undefined;
41
+ provider_transaction_id?: undefined;
42
+ provider_milestone_id?: undefined;
43
+ amount?: undefined;
44
+ currency?: undefined;
45
+ destination_id?: undefined;
46
+ } | {
47
+ valid: boolean;
48
+ authenticated: boolean;
49
+ statement_type: any;
50
+ status: any;
51
+ statement_digest: string;
52
+ provider_id: any;
53
+ agreement_digest: any;
54
+ document_action_binding_digest: any;
55
+ milestone_id: any;
56
+ release_action_digest: any;
57
+ parties_digest: any;
58
+ profile_digest: any;
59
+ provider_idempotency_key: any;
60
+ provider_request_digest: any;
61
+ provider_transaction_id: any;
62
+ provider_milestone_id: any;
63
+ amount: any;
64
+ currency: any;
65
+ destination_id: any;
66
+ reason?: undefined;
67
+ }>;
68
+ declare const _default: Readonly<{
69
+ ACTION_ESCROW_CUSTODIAN_OBSERVATION_VERSION: "EP-ACTION-ESCROW-CUSTODIAN-OBSERVATION-v1";
70
+ createActionEscrowCustodianBridge: typeof createActionEscrowCustodianBridge;
71
+ createActionEscrowCustodianStatementVerifier: typeof createActionEscrowCustodianStatementVerifier;
72
+ }>;
73
+ export default _default;
74
+ //# sourceMappingURL=action-escrow-custodian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-escrow-custodian.d.ts","sourceRoot":"","sources":["../src/action-escrow-custodian.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,2CAA2C,8CACX,CAAC;AAuK9C;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,OAAO,EACP,iBAAiB,EACjB,GAAoC,GACrC,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACf;;;;;;;;;;GAqIL;AAED,wBAAgB,4CAA4C,CAAC,EAC3D,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,GAAE;IACD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,IAOkC,cAAS,EAAE,aAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6E1D;;;;;;AAED,wBAIG"}