@emilia-protocol/gate 0.10.0 → 0.13.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 (419) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +272 -0
  3. package/action-control-manifest.js +3 -268
  4. package/action-escrow-custodian.js +4 -0
  5. package/action-escrow-evidence.js +4 -0
  6. package/action-escrow-package.js +4 -0
  7. package/action-escrow-postgres.js +4 -0
  8. package/action-escrow-state.js +4 -0
  9. package/action-escrow-verifiers.js +4 -0
  10. package/action-escrow.js +4 -0
  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 +1002 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +1736 -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/protocol-state.d.ts +141 -0
  203. package/dist/protocol-state.d.ts.map +1 -0
  204. package/dist/protocol-state.js +106 -0
  205. package/dist/protocol-state.js.map +1 -0
  206. package/dist/receipt-program.d.ts +59 -0
  207. package/dist/receipt-program.d.ts.map +1 -0
  208. package/dist/receipt-program.js +1053 -0
  209. package/dist/receipt-program.js.map +1 -0
  210. package/dist/reliance-kernel.d.ts +66 -0
  211. package/dist/reliance-kernel.d.ts.map +1 -0
  212. package/dist/reliance-kernel.js +103 -0
  213. package/dist/reliance-kernel.js.map +1 -0
  214. package/dist/reliance-packet.d.ts +67 -0
  215. package/dist/reliance-packet.d.ts.map +1 -0
  216. package/dist/reliance-packet.js +176 -0
  217. package/dist/reliance-packet.js.map +1 -0
  218. package/dist/remedy-program-postgres.d.ts +37 -0
  219. package/dist/remedy-program-postgres.d.ts.map +1 -0
  220. package/dist/remedy-program-postgres.js +291 -0
  221. package/dist/remedy-program-postgres.js.map +1 -0
  222. package/dist/remedy-program-receipt.d.ts +97 -0
  223. package/dist/remedy-program-receipt.d.ts.map +1 -0
  224. package/dist/remedy-program-receipt.js +817 -0
  225. package/dist/remedy-program-receipt.js.map +1 -0
  226. package/dist/remedy-program.d.ts +76 -0
  227. package/dist/remedy-program.d.ts.map +1 -0
  228. package/dist/remedy-program.js +1346 -0
  229. package/dist/remedy-program.js.map +1 -0
  230. package/dist/reports/art14.d.ts +101 -0
  231. package/dist/reports/art14.d.ts.map +1 -0
  232. package/dist/reports/art14.js +340 -0
  233. package/dist/reports/art14.js.map +1 -0
  234. package/dist/reports/assurance-package.d.ts +197 -0
  235. package/dist/reports/assurance-package.d.ts.map +1 -0
  236. package/dist/reports/assurance-package.js +313 -0
  237. package/dist/reports/assurance-package.js.map +1 -0
  238. package/dist/reports/auditor-workpaper.d.ts +194 -0
  239. package/dist/reports/auditor-workpaper.d.ts.map +1 -0
  240. package/dist/reports/auditor-workpaper.js +545 -0
  241. package/dist/reports/auditor-workpaper.js.map +1 -0
  242. package/dist/reports/external-verification.d.ts +76 -0
  243. package/dist/reports/external-verification.d.ts.map +1 -0
  244. package/dist/reports/external-verification.js +209 -0
  245. package/dist/reports/external-verification.js.map +1 -0
  246. package/dist/reports/reperform.d.ts +122 -0
  247. package/dist/reports/reperform.d.ts.map +1 -0
  248. package/dist/reports/reperform.js +432 -0
  249. package/dist/reports/reperform.js.map +1 -0
  250. package/dist/reports/underwriter.d.ts +127 -0
  251. package/dist/reports/underwriter.d.ts.map +1 -0
  252. package/dist/reports/underwriter.js +348 -0
  253. package/dist/reports/underwriter.js.map +1 -0
  254. package/dist/retention.d.ts +88 -0
  255. package/dist/retention.d.ts.map +1 -0
  256. package/dist/retention.js +90 -0
  257. package/dist/retention.js.map +1 -0
  258. package/dist/roster.d.ts +113 -0
  259. package/dist/roster.d.ts.map +1 -0
  260. package/dist/roster.js +261 -0
  261. package/dist/roster.js.map +1 -0
  262. package/dist/runtime-monitor.d.ts +132 -0
  263. package/dist/runtime-monitor.d.ts.map +1 -0
  264. package/dist/runtime-monitor.js +197 -0
  265. package/dist/runtime-monitor.js.map +1 -0
  266. package/dist/settlement.d.ts +68 -0
  267. package/dist/settlement.d.ts.map +1 -0
  268. package/dist/settlement.js +306 -0
  269. package/dist/settlement.js.map +1 -0
  270. package/dist/siem.d.ts +261 -0
  271. package/dist/siem.d.ts.map +1 -0
  272. package/dist/siem.js +247 -0
  273. package/dist/siem.js.map +1 -0
  274. package/dist/store-postgres.d.ts +107 -0
  275. package/dist/store-postgres.d.ts.map +1 -0
  276. package/dist/store-postgres.js +152 -0
  277. package/dist/store-postgres.js.map +1 -0
  278. package/dist/store.d.ts +95 -0
  279. package/dist/store.d.ts.map +1 -0
  280. package/dist/store.js +202 -0
  281. package/dist/store.js.map +1 -0
  282. package/dist/strict-json.d.ts +14 -0
  283. package/dist/strict-json.d.ts.map +1 -0
  284. package/dist/strict-json.js +132 -0
  285. package/dist/strict-json.js.map +1 -0
  286. package/dist/trust-program-adapters.d.ts +122 -0
  287. package/dist/trust-program-adapters.d.ts.map +1 -0
  288. package/dist/trust-program-adapters.js +802 -0
  289. package/dist/trust-program-adapters.js.map +1 -0
  290. package/dist/trust-program-postgres.d.ts +41 -0
  291. package/dist/trust-program-postgres.d.ts.map +1 -0
  292. package/dist/trust-program-postgres.js +346 -0
  293. package/dist/trust-program-postgres.js.map +1 -0
  294. package/dist/trust-program-revocation.d.ts +206 -0
  295. package/dist/trust-program-revocation.d.ts.map +1 -0
  296. package/dist/trust-program-revocation.js +600 -0
  297. package/dist/trust-program-revocation.js.map +1 -0
  298. package/dist/trust-program.d.ts +197 -0
  299. package/dist/trust-program.d.ts.map +1 -0
  300. package/dist/trust-program.js +1351 -0
  301. package/dist/trust-program.js.map +1 -0
  302. package/dist/witness-postgres.d.ts +43 -0
  303. package/dist/witness-postgres.d.ts.map +1 -0
  304. package/dist/witness-postgres.js +92 -0
  305. package/dist/witness-postgres.js.map +1 -0
  306. package/dist/zk-range-proof.d.ts +78 -0
  307. package/dist/zk-range-proof.d.ts.map +1 -0
  308. package/dist/zk-range-proof.js +228 -0
  309. package/dist/zk-range-proof.js.map +1 -0
  310. package/eg1-conformance.js +3 -404
  311. package/enterprise.js +3 -180
  312. package/ep-assure.mjs +1 -0
  313. package/evidence-postgres.js +3 -356
  314. package/evidence.js +4 -360
  315. package/execution-binding.js +3 -212
  316. package/formal-runtime-map.js +4 -0
  317. package/index.js +4 -1249
  318. package/key-registry.js +3 -134
  319. package/mcp.js +3 -109
  320. package/metering.js +3 -226
  321. package/metrics.js +3 -231
  322. package/network-witness.js +3 -499
  323. package/package.json +47 -4
  324. package/receipt-program.js +4 -0
  325. package/reliance-kernel.js +3 -112
  326. package/reliance-packet.js +3 -175
  327. package/remedy-program-postgres.js +4 -0
  328. package/remedy-program-receipt.js +4 -0
  329. package/remedy-program.js +4 -0
  330. package/reports/art14.js +0 -0
  331. package/reports/assurance-package.js +2 -312
  332. package/reports/auditor-workpaper.js +3 -537
  333. package/reports/external-verification.js +3 -222
  334. package/reports/reperform.js +3 -424
  335. package/reports/underwriter.js +3 -339
  336. package/retention.js +3 -84
  337. package/roster.js +3 -264
  338. package/runtime-monitor.js +4 -0
  339. package/settlement.js +3 -299
  340. package/siem.js +3 -235
  341. package/src/action-control-manifest.ts +424 -0
  342. package/src/action-escrow-custodian.ts +427 -0
  343. package/src/action-escrow-evidence.ts +1178 -0
  344. package/src/action-escrow-package.ts +1821 -0
  345. package/src/action-escrow-postgres.ts +366 -0
  346. package/src/action-escrow-state.ts +498 -0
  347. package/src/action-escrow-verifiers.ts +484 -0
  348. package/src/action-escrow.ts +3039 -0
  349. package/src/action-packs.ts +170 -0
  350. package/src/adapters/_kit.ts +117 -0
  351. package/src/adapters/aws.ts +142 -0
  352. package/src/adapters/cloudflare.ts +78 -0
  353. package/src/adapters/gcp.ts +71 -0
  354. package/src/adapters/github.ts +110 -0
  355. package/src/adapters/jira.ts +56 -0
  356. package/src/adapters/k8s.ts +71 -0
  357. package/src/adapters/linear.ts +56 -0
  358. package/src/adapters/salesforce.ts +56 -0
  359. package/src/adapters/stripe.ts +82 -0
  360. package/src/adapters/supabase.ts +122 -0
  361. package/src/adapters/terraform.ts +60 -0
  362. package/src/adapters/vercel.ts +85 -0
  363. package/src/aec-execution.ts +354 -0
  364. package/src/breakglass.ts +647 -0
  365. package/src/capability-receipt.ts +1258 -0
  366. package/src/cf1-conformance.ts +120 -0
  367. package/src/challenge-store.ts +70 -0
  368. package/src/control-plane.ts +374 -0
  369. package/src/coverage.ts +832 -0
  370. package/src/deployment-attestation.ts +259 -0
  371. package/src/eg1-conformance.ts +471 -0
  372. package/src/enterprise.ts +195 -0
  373. package/src/evidence-postgres.ts +374 -0
  374. package/src/evidence.ts +367 -0
  375. package/src/execution-binding.ts +236 -0
  376. package/src/formal-runtime-map.ts +24 -0
  377. package/src/index.ts +2122 -0
  378. package/src/key-registry.ts +150 -0
  379. package/src/mcp.ts +120 -0
  380. package/src/metering.ts +237 -0
  381. package/src/metrics.ts +232 -0
  382. package/src/network-witness.ts +585 -0
  383. package/src/protocol-state.ts +143 -0
  384. package/src/protocol-state.typecheck.ts +94 -0
  385. package/src/receipt-program.ts +1105 -0
  386. package/src/reliance-kernel.ts +119 -0
  387. package/src/reliance-packet.ts +206 -0
  388. package/src/remedy-program-postgres.ts +367 -0
  389. package/src/remedy-program-receipt.ts +891 -0
  390. package/src/remedy-program.ts +1388 -0
  391. package/src/reports/art14.ts +361 -0
  392. package/src/reports/assurance-package.ts +330 -0
  393. package/src/reports/auditor-workpaper.ts +558 -0
  394. package/src/reports/external-verification.ts +232 -0
  395. package/src/reports/reperform.ts +441 -0
  396. package/src/reports/underwriter.ts +356 -0
  397. package/src/retention.ts +100 -0
  398. package/src/roster.ts +273 -0
  399. package/src/runtime-monitor.ts +217 -0
  400. package/src/settlement.ts +313 -0
  401. package/src/siem.ts +247 -0
  402. package/src/store-postgres.ts +167 -0
  403. package/src/store.ts +214 -0
  404. package/src/strict-json.ts +115 -0
  405. package/src/trust-program-adapters.ts +847 -0
  406. package/src/trust-program-postgres.ts +429 -0
  407. package/src/trust-program-revocation.ts +751 -0
  408. package/src/trust-program.ts +1460 -0
  409. package/src/witness-postgres.ts +106 -0
  410. package/src/zk-range-proof.ts +250 -0
  411. package/store-postgres.js +3 -161
  412. package/store.js +4 -198
  413. package/strict-json.js +3 -85
  414. package/trust-program-adapters.js +4 -0
  415. package/trust-program-postgres.js +4 -0
  416. package/trust-program-revocation.js +4 -0
  417. package/trust-program.js +4 -0
  418. package/witness-postgres.js +3 -96
  419. package/zk-range-proof.js +4 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-witness.js","sourceRoot":"","sources":["../src/network-witness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * EP Protocol-State — brand-typed handshake lifecycle (GAP-4).
3
+ *
4
+ * Purpose: make an ILLEGAL protocol-state transition a COMPILE error, not a
5
+ * runtime failure. Each lifecycle state is a distinct nominal (branded) type,
6
+ * and every transition is a function whose parameter type admits ONLY its legal
7
+ * predecessor state(s) and whose return type is exactly its legal successor.
8
+ * Passing the wrong state to a transition (e.g. `consume(initiated)` — consuming
9
+ * before verification) is rejected by `tsc` before the code ever runs.
10
+ *
11
+ * ── Source of truth ─────────────────────────────────────────────────────────
12
+ * The state graph mirrors the formally-verified model, not a toy:
13
+ * formal/ep_handshake.tla — abstract lifecycle + transition guards
14
+ * lib/handshake/invariants.js (HANDSHAKE_STATUSES) — the 6 persisted statuses
15
+ * lib/handshake/create.js — status:'initiated' (T1 Initiate)
16
+ * lib/handshake/present.js — initiated → pending_verification (T2 Present)
17
+ * lib/handshake/verify.js — outcome accepted/rejected/expired (T3/T4/T7)
18
+ * lib/handshake/consume.js — verified → consumed (T5 Consume)
19
+ * lib/handshake/finalize.js — → revoked (T6 Revoke)
20
+ *
21
+ * ── States (TLA `state` domain) ─────────────────────────────────────────────
22
+ * none | initiated | pending_verification | verified
23
+ * | rejected | expired | revoked | consumed
24
+ *
25
+ * Two of these are ABSTRACT lifecycle states, not DB status values:
26
+ * - `none` : pre-initiation. There is no persisted row yet.
27
+ * - `consumed` : a verified handshake that has an entry in the
28
+ * `handshake_consumptions` table. Consumption does NOT rewrite
29
+ * `handshakes.status` (it stays 'verified'); it is recorded
30
+ * atomically in a side table by `consume_handshake_atomic`.
31
+ * The TLA model abstracts (status='verified' ∧ h∈consumptions)
32
+ * as the distinct terminal state `consumed`. This module keeps
33
+ * that abstraction so "consume-once" and "no-verify-after-consume"
34
+ * are expressible in the type system.
35
+ *
36
+ * The other six are exactly `HANDSHAKE_STATUSES` from invariants.js and carry a
37
+ * `dbStatus` field equal to the persisted `handshakes.status` value.
38
+ *
39
+ * ── Legal transition graph (the ONLY edges; everything else is a type error) ─
40
+ * genesis() -> None
41
+ * initiate(None) -> Initiated
42
+ * present(Initiated) -> PendingVerification
43
+ * verifyAccept(PendingVerification) -> Verified
44
+ * verifyReject(PendingVerification) -> Rejected (terminal)
45
+ * consume(Verified) -> Consumed (terminal)
46
+ * revoke(Initiated|PendingVerification|Verified) -> Revoked (terminal)
47
+ * expire(Initiated|PendingVerification|Verified) -> Expired (terminal)
48
+ *
49
+ * Terminal states (Rejected, Expired, Revoked, Consumed) are accepted by NO
50
+ * transition function, so any move out of a terminal state is a compile error.
51
+ *
52
+ * Branding note: each state is nominally distinguished by a private, readonly
53
+ * string-literal `tag`. Distinct tags make each state a distinct type, so no
54
+ * legal predecessor of one transition is accidentally assignable to another.
55
+ * The runtime value literally is `{ tag, dbStatus }`; there is no phantom-only
56
+ * field, so no casts are needed and the runtime and the types cannot drift.
57
+ *
58
+ * This module is intentionally free of I/O. It is the compile-time spine that
59
+ * the runtime state machine (verify.js / consume.js / finalize.js) is expected
60
+ * to obey; it does not replace those code paths' own DB-level guards.
61
+ *
62
+ * @license Apache-2.0
63
+ */
64
+ /**
65
+ * The six persisted `handshakes.status` values (single source: invariants.js
66
+ * HANDSHAKE_STATUSES). `none` and `consumed` are abstract and have no row status.
67
+ */
68
+ export type DbHandshakeStatus = 'initiated' | 'pending_verification' | 'verified' | 'rejected' | 'expired' | 'revoked';
69
+ /** Pre-initiation. No persisted handshake exists yet. */
70
+ export type None = {
71
+ readonly tag: 'none';
72
+ readonly dbStatus: null;
73
+ };
74
+ /** A handshake row was created (T1). DB status 'initiated'. */
75
+ export type Initiated = {
76
+ readonly tag: 'initiated';
77
+ readonly dbStatus: 'initiated';
78
+ };
79
+ /** A presentation was added and verification is pending (T2). DB 'pending_verification'. */
80
+ export type PendingVerification = {
81
+ readonly tag: 'pending_verification';
82
+ readonly dbStatus: 'pending_verification';
83
+ };
84
+ /** Verification accepted (T3). DB 'verified'. Only state from which consume is legal. */
85
+ export type Verified = {
86
+ readonly tag: 'verified';
87
+ readonly dbStatus: 'verified';
88
+ };
89
+ /** Verification rejected (T4). Terminal. DB 'rejected'. */
90
+ export type Rejected = {
91
+ readonly tag: 'rejected';
92
+ readonly dbStatus: 'rejected';
93
+ };
94
+ /** Binding expired (T7). Terminal. DB 'expired'. */
95
+ export type Expired = {
96
+ readonly tag: 'expired';
97
+ readonly dbStatus: 'expired';
98
+ };
99
+ /** Revoked by a party (T6). Terminal. DB 'revoked'. */
100
+ export type Revoked = {
101
+ readonly tag: 'revoked';
102
+ readonly dbStatus: 'revoked';
103
+ };
104
+ /**
105
+ * Consumed exactly once (T5). Terminal abstract state; the row keeps DB status
106
+ * 'verified' and gains a `handshake_consumptions` record.
107
+ */
108
+ export type Consumed = {
109
+ readonly tag: 'consumed';
110
+ readonly dbStatus: 'verified';
111
+ };
112
+ /** Any state in the lifecycle. */
113
+ export type ProtocolState = None | Initiated | PendingVerification | Verified | Rejected | Expired | Revoked | Consumed;
114
+ /** States a still-active handshake can be revoked or expired from (T6/T7 domain). */
115
+ export type Active = Initiated | PendingVerification | Verified;
116
+ /** T0: genesis — the empty pre-initiation state. */
117
+ export declare function genesis(): None;
118
+ /** T1 Initiate: none -> initiated. Maps to create.js status:'initiated'. */
119
+ export declare function initiate(_s: None): Initiated;
120
+ /** T2 Present: initiated -> pending_verification. Maps to present.js. */
121
+ export declare function present(_s: Initiated): PendingVerification;
122
+ /** T3 VerifyAccept: pending_verification -> verified. verify.js outcome='accepted'. */
123
+ export declare function verifyAccept(_s: PendingVerification): Verified;
124
+ /** T4 VerifyReject: pending_verification -> rejected (terminal). verify.js outcome='rejected'. */
125
+ export declare function verifyReject(_s: PendingVerification): Rejected;
126
+ /**
127
+ * T5 Consume: verified -> consumed (terminal). consume.js requires 'verified' state
128
+ * and enforces consume-once at the DB level.
129
+ */
130
+ export declare function consume(_s: Verified): Consumed;
131
+ /**
132
+ * T6 Revoke: {initiated|pending_verification|verified} -> revoked (terminal).
133
+ * finalize.js. Legal only from an active (pre-terminal) state.
134
+ */
135
+ export declare function revoke(_s: Active): Revoked;
136
+ /**
137
+ * T7 Expire: {initiated|pending_verification|verified} -> expired (terminal).
138
+ * verify.js outcome='expired'. Legal only from an active (pre-terminal) state.
139
+ */
140
+ export declare function expire(_s: Active): Expired;
141
+ //# sourceMappingURL=protocol-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-state.d.ts","sourceRoot":"","sources":["../src/protocol-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,sBAAsB,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvH,yDAAyD;AACzD,MAAM,MAAM,IAAI,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACrE,+DAA+D;AAC/D,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AACtF,4FAA4F;AAC5F,MAAM,MAAM,mBAAmB,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;CAAE,CAAC;AACtH,yFAAyF;AACzF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,CAAC;AACnF,2DAA2D;AAC3D,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,CAAC;AACnF,oDAAoD;AACpD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC;AAChF,uDAAuD;AACvD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC;AAChF;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;CAAE,CAAC;AAEnF,kCAAkC;AAClC,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AACxH,qFAAqF;AACrF,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAEhE,oDAAoD;AACpD,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,SAAS,CAE5C;AAED,yEAAyE;AACzE,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,mBAAmB,CAE1D;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,mBAAmB,GAAG,QAAQ,CAE9D;AAED,kGAAkG;AAClG,wBAAgB,YAAY,CAAC,EAAE,EAAE,mBAAmB,GAAG,QAAQ,CAE9D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAE9C;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1C"}
@@ -0,0 +1,106 @@
1
+ // @ts-nocheck
2
+ /**
3
+ * EP Protocol-State — brand-typed handshake lifecycle (GAP-4).
4
+ *
5
+ * Purpose: make an ILLEGAL protocol-state transition a COMPILE error, not a
6
+ * runtime failure. Each lifecycle state is a distinct nominal (branded) type,
7
+ * and every transition is a function whose parameter type admits ONLY its legal
8
+ * predecessor state(s) and whose return type is exactly its legal successor.
9
+ * Passing the wrong state to a transition (e.g. `consume(initiated)` — consuming
10
+ * before verification) is rejected by `tsc` before the code ever runs.
11
+ *
12
+ * ── Source of truth ─────────────────────────────────────────────────────────
13
+ * The state graph mirrors the formally-verified model, not a toy:
14
+ * formal/ep_handshake.tla — abstract lifecycle + transition guards
15
+ * lib/handshake/invariants.js (HANDSHAKE_STATUSES) — the 6 persisted statuses
16
+ * lib/handshake/create.js — status:'initiated' (T1 Initiate)
17
+ * lib/handshake/present.js — initiated → pending_verification (T2 Present)
18
+ * lib/handshake/verify.js — outcome accepted/rejected/expired (T3/T4/T7)
19
+ * lib/handshake/consume.js — verified → consumed (T5 Consume)
20
+ * lib/handshake/finalize.js — → revoked (T6 Revoke)
21
+ *
22
+ * ── States (TLA `state` domain) ─────────────────────────────────────────────
23
+ * none | initiated | pending_verification | verified
24
+ * | rejected | expired | revoked | consumed
25
+ *
26
+ * Two of these are ABSTRACT lifecycle states, not DB status values:
27
+ * - `none` : pre-initiation. There is no persisted row yet.
28
+ * - `consumed` : a verified handshake that has an entry in the
29
+ * `handshake_consumptions` table. Consumption does NOT rewrite
30
+ * `handshakes.status` (it stays 'verified'); it is recorded
31
+ * atomically in a side table by `consume_handshake_atomic`.
32
+ * The TLA model abstracts (status='verified' ∧ h∈consumptions)
33
+ * as the distinct terminal state `consumed`. This module keeps
34
+ * that abstraction so "consume-once" and "no-verify-after-consume"
35
+ * are expressible in the type system.
36
+ *
37
+ * The other six are exactly `HANDSHAKE_STATUSES` from invariants.js and carry a
38
+ * `dbStatus` field equal to the persisted `handshakes.status` value.
39
+ *
40
+ * ── Legal transition graph (the ONLY edges; everything else is a type error) ─
41
+ * genesis() -> None
42
+ * initiate(None) -> Initiated
43
+ * present(Initiated) -> PendingVerification
44
+ * verifyAccept(PendingVerification) -> Verified
45
+ * verifyReject(PendingVerification) -> Rejected (terminal)
46
+ * consume(Verified) -> Consumed (terminal)
47
+ * revoke(Initiated|PendingVerification|Verified) -> Revoked (terminal)
48
+ * expire(Initiated|PendingVerification|Verified) -> Expired (terminal)
49
+ *
50
+ * Terminal states (Rejected, Expired, Revoked, Consumed) are accepted by NO
51
+ * transition function, so any move out of a terminal state is a compile error.
52
+ *
53
+ * Branding note: each state is nominally distinguished by a private, readonly
54
+ * string-literal `tag`. Distinct tags make each state a distinct type, so no
55
+ * legal predecessor of one transition is accidentally assignable to another.
56
+ * The runtime value literally is `{ tag, dbStatus }`; there is no phantom-only
57
+ * field, so no casts are needed and the runtime and the types cannot drift.
58
+ *
59
+ * This module is intentionally free of I/O. It is the compile-time spine that
60
+ * the runtime state machine (verify.js / consume.js / finalize.js) is expected
61
+ * to obey; it does not replace those code paths' own DB-level guards.
62
+ *
63
+ * @license Apache-2.0
64
+ */
65
+ /** T0: genesis — the empty pre-initiation state. */
66
+ export function genesis() {
67
+ return { tag: 'none', dbStatus: null };
68
+ }
69
+ /** T1 Initiate: none -> initiated. Maps to create.js status:'initiated'. */
70
+ export function initiate(_s) {
71
+ return { tag: 'initiated', dbStatus: 'initiated' };
72
+ }
73
+ /** T2 Present: initiated -> pending_verification. Maps to present.js. */
74
+ export function present(_s) {
75
+ return { tag: 'pending_verification', dbStatus: 'pending_verification' };
76
+ }
77
+ /** T3 VerifyAccept: pending_verification -> verified. verify.js outcome='accepted'. */
78
+ export function verifyAccept(_s) {
79
+ return { tag: 'verified', dbStatus: 'verified' };
80
+ }
81
+ /** T4 VerifyReject: pending_verification -> rejected (terminal). verify.js outcome='rejected'. */
82
+ export function verifyReject(_s) {
83
+ return { tag: 'rejected', dbStatus: 'rejected' };
84
+ }
85
+ /**
86
+ * T5 Consume: verified -> consumed (terminal). consume.js requires 'verified' state
87
+ * and enforces consume-once at the DB level.
88
+ */
89
+ export function consume(_s) {
90
+ return { tag: 'consumed', dbStatus: 'verified' };
91
+ }
92
+ /**
93
+ * T6 Revoke: {initiated|pending_verification|verified} -> revoked (terminal).
94
+ * finalize.js. Legal only from an active (pre-terminal) state.
95
+ */
96
+ export function revoke(_s) {
97
+ return { tag: 'revoked', dbStatus: 'revoked' };
98
+ }
99
+ /**
100
+ * T7 Expire: {initiated|pending_verification|verified} -> expired (terminal).
101
+ * verify.js outcome='expired'. Legal only from an active (pre-terminal) state.
102
+ */
103
+ export function expire(_s) {
104
+ return { tag: 'expired', dbStatus: 'expired' };
105
+ }
106
+ //# sourceMappingURL=protocol-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-state.js","sourceRoot":"","sources":["../src/protocol-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAiCH,oDAAoD;AACpD,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAC,EAAQ;IAC/B,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAC,EAAa;IACnC,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC;AAC3E,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,EAAuB;IAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,YAAY,CAAC,EAAuB;IAClD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,EAAY;IAClC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,59 @@
1
+ export declare const RECEIPT_PROGRAM_VERSION = "EP-RECEIPT-PROGRAM-v1";
2
+ export declare const RECEIPT_PROGRAM_CERTIFICATE_VERSION = "EP-RECEIPT-PROGRAM-CERTIFICATE-v1";
3
+ export declare const RECEIPT_PROGRAM_SIGNATURE_ALGORITHM = "Ed25519";
4
+ /**
5
+ * Build a receipt-program kernel over an already configured Gate.
6
+ * Trust configuration is constructor-pinned and cannot be supplied per run.
7
+ *
8
+ * options.gate: configured EMILIA Gate
9
+ * options.resolveCaid: synchronous pinned CAID resolver, (action) => string|object
10
+ * options.operationIdField: dot-path to the stable operation id in observed action
11
+ * options.certificatePrivateKey: test/demo-only Ed25519 operator key
12
+ * options.certificateSigner: external KMS/HSM signer
13
+ * options.certificateContext: pinned issuer, tenant, environment, audience, and key id
14
+ * options.projectResult: pinned disclosure projection, (result) => any|Promise<any>
15
+ * options.effectTimeoutMs: provider deadline in milliseconds (default 30000)
16
+ * options.allowEphemeralState: explicit test/demo opt-in (default false)
17
+ * options.now: number|(() => number), default Date.now
18
+ */
19
+ export declare function createReceiptProgramKernel({ gate, resolveCaid, operationIdField, certificatePrivateKey, certificateSigner, certificateContext, projectResult, effectTimeoutMs, allowEphemeralState, now, }?: any): Readonly<{
20
+ version: string;
21
+ signer_public_key: any;
22
+ certificate_context: any;
23
+ /**
24
+ * Execute one consequential receipt instruction through Gate.
25
+ * The effect MUST return a bounded canonical-JSON evidence projection, not
26
+ * a raw provider object. A projection failure occurs after provider entry
27
+ * and is therefore committed as indeterminate.
28
+ */
29
+ run(request: any | undefined, effect: any): Promise<any>;
30
+ /**
31
+ * Explicit crash-recovery path. It scans the durable evidence history only
32
+ * when requested and returns every independently verified certificate for
33
+ * one program digest; it never guesses which attempt a caller intended.
34
+ */
35
+ recoverCertificates(programDigest: any): Promise<any>;
36
+ }>;
37
+ /**
38
+ * Verify the certificate's operator signature, content addresses, program
39
+ * binding, and Gate evidence linkage. This proves exact certificate integrity
40
+ * under a pinned operator key; it does not prove an external provider told the
41
+ * truth or replace verification of the referenced receipt/capability artifacts.
42
+ *
43
+ * options.trustedCertificateKeys?: Record<string, string>
44
+ * options.resolveCaid?: ((action: any) => any)|null
45
+ * options.expectedContext?: object|null
46
+ * options.certificateEvidence?: any
47
+ * options.verifyCertificateInclusion?: (((record: any, expectation: any) => any)|null)
48
+ * options.requireAtomicCertificateEvidence?: boolean
49
+ */
50
+ export declare function verifyReceiptProgramCertificate(certificate: any, { trustedCertificateKeys, resolveCaid, expectedContext, certificateEvidence, verifyCertificateInclusion, requireAtomicCertificateEvidence, }?: any): any;
51
+ declare const _default: {
52
+ RECEIPT_PROGRAM_VERSION: string;
53
+ RECEIPT_PROGRAM_CERTIFICATE_VERSION: string;
54
+ RECEIPT_PROGRAM_SIGNATURE_ALGORITHM: string;
55
+ createReceiptProgramKernel: typeof createReceiptProgramKernel;
56
+ verifyReceiptProgramCertificate: typeof verifyReceiptProgramCertificate;
57
+ };
58
+ export default _default;
59
+ //# sourceMappingURL=receipt-program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipt-program.d.ts","sourceRoot":"","sources":["../src/receipt-program.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,mCAAmC,sCAAsC,CAAC;AACvF,eAAO,MAAM,mCAAmC,YAAY,CAAC;AAsS7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,aAAoB,EACpB,eAAwB,EACxB,mBAA2B,EAC3B,GAAc,GACf,GAAE,GAAQ;;;;IAoGP;;;;;OAKG;iBACgB,GAAG,sBAAe,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAiSvD;;;;OAIG;uCACsC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;GAyC9D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,GAAG,EAAE,EAChE,sBAA2B,EAC3B,WAAkB,EAClB,eAAsB,EACtB,mBAA0B,EAC1B,0BAAiC,EACjC,gCAAwC,GACzC,GAAE,GAAQ,GAAG,GAAG,CA2RhB;;;;;;;;AAED,wBAME"}