keri-ts 2.1.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/README.md +30 -2
  2. package/esm/keri/npm/src/acdc/authoring.js +195 -0
  3. package/esm/keri/npm/src/acdc/custody.js +187 -0
  4. package/esm/keri/npm/src/acdc/dhking.js +244 -32
  5. package/esm/keri/npm/src/acdc/regbasing.js +10 -0
  6. package/esm/keri/npm/src/acdc/salting.js +16 -1
  7. package/esm/keri/npm/src/acdc/scheming.js +93 -54
  8. package/esm/keri/npm/src/acdc/unblinding.js +118 -95
  9. package/esm/keri/npm/src/app/bootstrap/authenticating.js +4 -6
  10. package/esm/keri/npm/src/app/bootstrap/oobi-resolving.js +41 -0
  11. package/esm/keri/npm/src/app/bootstrap/oobiery.js +4 -6
  12. package/esm/keri/npm/src/app/credentials/credential-revoking.js +1 -0
  13. package/esm/keri/npm/src/app/credentials/credential-workflows.js +2 -0
  14. package/esm/keri/npm/src/app/credentials/registry-settling.js +44 -0
  15. package/esm/keri/npm/src/app/credentials/root-replicating.js +68 -60
  16. package/esm/keri/npm/src/app/credentials/root-replicator.js +198 -0
  17. package/esm/keri/npm/src/app/credentials/tel-completion.js +36 -0
  18. package/esm/keri/npm/src/app/delivery/forwarding.js +16 -3
  19. package/esm/keri/npm/src/app/exchanges/exchanging.js +14 -4
  20. package/esm/keri/npm/src/app/identity/challenging.js +50 -0
  21. package/esm/keri/npm/src/app/identity/delegating.js +77 -77
  22. package/esm/keri/npm/src/app/identity/delegation-approval.js +333 -0
  23. package/esm/keri/npm/src/app/identity/event-completion.js +154 -0
  24. package/esm/keri/npm/src/app/identity/habbing.js +129 -6
  25. package/esm/keri/npm/src/app/identity/keeping.js +77 -4
  26. package/esm/keri/npm/src/app/ipex/group-ipex.js +341 -0
  27. package/esm/keri/npm/src/app/ipex/group-issuance.js +905 -0
  28. package/esm/keri/npm/src/app/ipex/ipex-admitting.js +120 -0
  29. package/esm/keri/npm/src/app/ipex/ipex-conversation.js +197 -0
  30. package/esm/keri/npm/src/app/ipex/ipex-discloser.js +591 -0
  31. package/esm/keri/npm/src/app/ipex/ipex-granting.js +93 -0
  32. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +50 -19
  33. package/esm/keri/npm/src/app/ipex/ipex-node-authentication.js +42 -18
  34. package/esm/keri/npm/src/app/ipex/issuance.js +896 -0
  35. package/esm/keri/npm/src/app/ipex/pending-presentations.js +46 -0
  36. package/esm/keri/npm/src/app/ipex/presentation-files.js +200 -0
  37. package/esm/keri/npm/src/app/ipex/presenting.js +408 -0
  38. package/esm/keri/npm/src/app/ipex/receive-issuance.js +86 -0
  39. package/esm/keri/npm/src/app/ipex/unblinding-workflow.js +667 -0
  40. package/esm/keri/npm/src/app/mailbox/ipex-arrival.js +103 -0
  41. package/esm/keri/npm/src/app/mailbox/kel-publisher.js +322 -0
  42. package/esm/keri/npm/src/app/mailbox/kel-publishing.js +65 -0
  43. package/esm/keri/npm/src/app/mailbox/kel-submission.js +24 -0
  44. package/esm/keri/npm/src/app/mailbox/mailbox-admin.js +208 -0
  45. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +212 -47
  46. package/esm/keri/npm/src/app/mailbox/mailboxing.js +10 -5
  47. package/esm/keri/npm/src/app/multisig/counseling.js +488 -0
  48. package/esm/keri/npm/src/app/multisig/group-members.js +18 -0
  49. package/esm/keri/npm/src/app/multisig/multisig-messaging.js +33 -6
  50. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +98 -147
  51. package/esm/keri/npm/src/app/multisig/proposals.js +281 -0
  52. package/esm/keri/npm/src/app/multisig/proposing.js +122 -0
  53. package/esm/keri/npm/src/app/notifications/signaling.js +5 -5
  54. package/esm/keri/npm/src/app/protocol/parsering.js +26 -1
  55. package/esm/keri/npm/src/app/protocol/protocol-processing.js +9 -3
  56. package/esm/keri/npm/src/app/queries/query-workflows.js +98 -0
  57. package/esm/keri/npm/src/app/runtime/agent-runtime.js +106 -55
  58. package/esm/keri/npm/src/app/runtime/cue-runtime.js +3 -6
  59. package/esm/keri/npm/src/app/runtime/delivery-outbox.js +87 -0
  60. package/esm/keri/npm/src/app/runtime/doing.js +17 -0
  61. package/esm/keri/npm/src/app/runtime/ipex-auxiliaries.js +207 -0
  62. package/esm/keri/npm/src/app/runtime/operation-owners.js +151 -0
  63. package/esm/keri/npm/src/app/runtime/retry-backoff.js +93 -0
  64. package/esm/keri/npm/src/app/runtime/workflow-contract.js +80 -0
  65. package/esm/keri/npm/src/app/transport/http-client.js +25 -6
  66. package/esm/keri/npm/src/app/witness/http-endpoints.js +4 -4
  67. package/esm/keri/npm/src/cli/common/event-completion.js +49 -0
  68. package/esm/keri/npm/src/cli/common/runtime-workers.js +23 -0
  69. package/esm/keri/npm/src/cli/credentials/ipex.js +164 -191
  70. package/esm/keri/npm/src/cli/credentials/vc.js +53 -72
  71. package/esm/keri/npm/src/cli/endpoints/did.js +12 -3
  72. package/esm/keri/npm/src/cli/endpoints/oobi.js +10 -13
  73. package/esm/keri/npm/src/cli/identity/challenge.js +8 -34
  74. package/esm/keri/npm/src/cli/identity/delegate.js +81 -258
  75. package/esm/keri/npm/src/cli/identity/incept.js +15 -32
  76. package/esm/keri/npm/src/cli/identity/interact.js +5 -17
  77. package/esm/keri/npm/src/cli/identity/rotate.js +8 -36
  78. package/esm/keri/npm/src/cli/index.js +3 -1
  79. package/esm/keri/npm/src/cli/messaging/group-join.js +83 -0
  80. package/esm/keri/npm/src/cli/messaging/group-wait.js +88 -0
  81. package/esm/keri/npm/src/cli/messaging/multisig.js +190 -285
  82. package/esm/keri/npm/src/cli/messaging/root-copy-lines.js +31 -0
  83. package/esm/keri/npm/src/core/kel/eventing.js +66 -10
  84. package/esm/keri/npm/src/core/mailbox/kram-policy.js +39 -6
  85. package/esm/keri/npm/src/core/mailbox/kraming.js +2 -0
  86. package/esm/keri/npm/src/core/records.js +23 -0
  87. package/esm/keri/npm/src/core/routing.js +13 -0
  88. package/esm/keri/npm/src/db/basing.js +34 -2
  89. package/esm/keri/npm/src/db/core/indexeddb-persistence.js +221 -0
  90. package/esm/keri/npm/src/db/indexeddb.js +98 -0
  91. package/esm/keri/npm/src/db/keeping.js +11 -2
  92. package/esm/keri/npm/src/db/store-lock.js +150 -0
  93. package/esm/keri/npm/src/npm/db-indexeddb.browser.js +2 -0
  94. package/esm/keri/npm/src/npm/db-indexeddb.js +3 -0
  95. package/esm/keri/npm/src/npm/db.browser.js +2 -0
  96. package/esm/keri/npm/src/npm/index.browser.js +9 -0
  97. package/esm/keri/npm/src/npm/runtime-web.browser.js +2 -0
  98. package/esm/keri/npm/src/npm/runtime-web.js +3 -0
  99. package/esm/keri/npm/src/npm/runtime.browser.js +2 -0
  100. package/esm/keri/npm/src/runtime/index.js +51 -4
  101. package/esm/keri/npm/src/runtime/web/output-barrier.js +47 -0
  102. package/esm/keri/npm/src/runtime/web/persistent-storage.js +37 -0
  103. package/esm/keri/npm/src/runtime/web.js +10 -0
  104. package/esm/keri/npm/src/vdr/tel-publication.js +16 -0
  105. package/esm/keri/npm/src/version.js +2 -2
  106. package/package.json +15 -2
  107. package/types/acdc/authoring.d.ts +54 -0
  108. package/types/acdc/authoring.d.ts.map +1 -0
  109. package/types/acdc/custody.d.ts +84 -0
  110. package/types/acdc/custody.d.ts.map +1 -0
  111. package/types/acdc/dhking.d.ts +94 -3
  112. package/types/acdc/dhking.d.ts.map +1 -1
  113. package/types/acdc/regbasing.d.ts +4 -0
  114. package/types/acdc/regbasing.d.ts.map +1 -1
  115. package/types/acdc/salting.d.ts +6 -1
  116. package/types/acdc/salting.d.ts.map +1 -1
  117. package/types/acdc/scheming.d.ts +2 -0
  118. package/types/acdc/scheming.d.ts.map +1 -1
  119. package/types/acdc/unblinding.d.ts +58 -19
  120. package/types/acdc/unblinding.d.ts.map +1 -1
  121. package/types/app/bootstrap/authenticating.d.ts +3 -1
  122. package/types/app/bootstrap/authenticating.d.ts.map +1 -1
  123. package/types/app/bootstrap/oobi-resolving.d.ts +92 -0
  124. package/types/app/bootstrap/oobi-resolving.d.ts.map +1 -0
  125. package/types/app/bootstrap/oobiery.d.ts +3 -1
  126. package/types/app/bootstrap/oobiery.d.ts.map +1 -1
  127. package/types/app/credentials/credential-revoking.d.ts +3 -0
  128. package/types/app/credentials/credential-revoking.d.ts.map +1 -1
  129. package/types/app/credentials/credential-workflows.d.ts +5 -0
  130. package/types/app/credentials/credential-workflows.d.ts.map +1 -1
  131. package/types/app/credentials/registry-settling.d.ts +85 -0
  132. package/types/app/credentials/registry-settling.d.ts.map +1 -0
  133. package/types/app/credentials/root-replicating.d.ts +56 -44
  134. package/types/app/credentials/root-replicating.d.ts.map +1 -1
  135. package/types/app/credentials/root-replicator.d.ts +105 -0
  136. package/types/app/credentials/root-replicator.d.ts.map +1 -0
  137. package/types/app/credentials/tel-completion.d.ts +55 -0
  138. package/types/app/credentials/tel-completion.d.ts.map +1 -0
  139. package/types/app/delivery/forwarding.d.ts +6 -0
  140. package/types/app/delivery/forwarding.d.ts.map +1 -1
  141. package/types/app/exchanges/exchanging.d.ts.map +1 -1
  142. package/types/app/identity/challenging.d.ts +54 -0
  143. package/types/app/identity/challenging.d.ts.map +1 -1
  144. package/types/app/identity/delegating.d.ts +21 -4
  145. package/types/app/identity/delegating.d.ts.map +1 -1
  146. package/types/app/identity/delegation-approval.d.ts +228 -0
  147. package/types/app/identity/delegation-approval.d.ts.map +1 -0
  148. package/types/app/identity/event-completion.d.ts +151 -0
  149. package/types/app/identity/event-completion.d.ts.map +1 -0
  150. package/types/app/identity/habbing.d.ts +67 -2
  151. package/types/app/identity/habbing.d.ts.map +1 -1
  152. package/types/app/identity/keeping.d.ts +49 -3
  153. package/types/app/identity/keeping.d.ts.map +1 -1
  154. package/types/app/ipex/group-ipex.d.ts +254 -0
  155. package/types/app/ipex/group-ipex.d.ts.map +1 -0
  156. package/types/app/ipex/group-issuance.d.ts +281 -0
  157. package/types/app/ipex/group-issuance.d.ts.map +1 -0
  158. package/types/app/ipex/ipex-admitting.d.ts +47 -0
  159. package/types/app/ipex/ipex-admitting.d.ts.map +1 -0
  160. package/types/app/ipex/ipex-conversation.d.ts +195 -0
  161. package/types/app/ipex/ipex-conversation.d.ts.map +1 -0
  162. package/types/app/ipex/ipex-discloser.d.ts +156 -0
  163. package/types/app/ipex/ipex-discloser.d.ts.map +1 -0
  164. package/types/app/ipex/ipex-granting.d.ts +145 -0
  165. package/types/app/ipex/ipex-granting.d.ts.map +1 -0
  166. package/types/app/ipex/ipex-grouping.d.ts +18 -0
  167. package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
  168. package/types/app/ipex/ipex-node-authentication.d.ts +9 -1
  169. package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -1
  170. package/types/app/ipex/issuance.d.ts +445 -0
  171. package/types/app/ipex/issuance.d.ts.map +1 -0
  172. package/types/app/ipex/pending-presentations.d.ts +25 -0
  173. package/types/app/ipex/pending-presentations.d.ts.map +1 -0
  174. package/types/app/ipex/presentation-files.d.ts +47 -0
  175. package/types/app/ipex/presentation-files.d.ts.map +1 -0
  176. package/types/app/ipex/presenting.d.ts +300 -0
  177. package/types/app/ipex/presenting.d.ts.map +1 -0
  178. package/types/app/ipex/receive-issuance.d.ts +99 -0
  179. package/types/app/ipex/receive-issuance.d.ts.map +1 -0
  180. package/types/app/ipex/unblinding-workflow.d.ts +257 -0
  181. package/types/app/ipex/unblinding-workflow.d.ts.map +1 -0
  182. package/types/app/mailbox/ipex-arrival.d.ts +104 -0
  183. package/types/app/mailbox/ipex-arrival.d.ts.map +1 -0
  184. package/types/app/mailbox/kel-publisher.d.ts +141 -0
  185. package/types/app/mailbox/kel-publisher.d.ts.map +1 -0
  186. package/types/app/mailbox/kel-publishing.d.ts +70 -0
  187. package/types/app/mailbox/kel-publishing.d.ts.map +1 -0
  188. package/types/app/mailbox/kel-submission.d.ts +18 -0
  189. package/types/app/mailbox/kel-submission.d.ts.map +1 -0
  190. package/types/app/mailbox/mailbox-admin.d.ts +113 -0
  191. package/types/app/mailbox/mailbox-admin.d.ts.map +1 -0
  192. package/types/app/mailbox/mailbox-poller.d.ts +92 -3
  193. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -1
  194. package/types/app/mailbox/mailboxing.d.ts +3 -0
  195. package/types/app/mailbox/mailboxing.d.ts.map +1 -1
  196. package/types/app/multisig/counseling.d.ts +196 -0
  197. package/types/app/multisig/counseling.d.ts.map +1 -0
  198. package/types/app/multisig/group-members.d.ts +11 -0
  199. package/types/app/multisig/group-members.d.ts.map +1 -1
  200. package/types/app/multisig/grouping.d.ts +39 -20
  201. package/types/app/multisig/grouping.d.ts.map +1 -1
  202. package/types/app/multisig/multisig-messaging.d.ts +23 -6
  203. package/types/app/multisig/multisig-messaging.d.ts.map +1 -1
  204. package/types/app/multisig/multisig-workflows.d.ts +91 -22
  205. package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
  206. package/types/app/multisig/proposals.d.ts +129 -0
  207. package/types/app/multisig/proposals.d.ts.map +1 -0
  208. package/types/app/multisig/proposing.d.ts +125 -0
  209. package/types/app/multisig/proposing.d.ts.map +1 -0
  210. package/types/app/notifications/signaling.d.ts +3 -1
  211. package/types/app/notifications/signaling.d.ts.map +1 -1
  212. package/types/app/protocol/parsering.d.ts +13 -0
  213. package/types/app/protocol/parsering.d.ts.map +1 -1
  214. package/types/app/protocol/protocol-processing.d.ts +7 -1
  215. package/types/app/protocol/protocol-processing.d.ts.map +1 -1
  216. package/types/app/queries/query-workflows.d.ts +98 -0
  217. package/types/app/queries/query-workflows.d.ts.map +1 -0
  218. package/types/app/runtime/agent-runtime.d.ts +72 -25
  219. package/types/app/runtime/agent-runtime.d.ts.map +1 -1
  220. package/types/app/runtime/cue-runtime.d.ts +2 -1
  221. package/types/app/runtime/cue-runtime.d.ts.map +1 -1
  222. package/types/app/runtime/delivery-outbox.d.ts +68 -0
  223. package/types/app/runtime/delivery-outbox.d.ts.map +1 -0
  224. package/types/app/runtime/doing.d.ts +27 -0
  225. package/types/app/runtime/doing.d.ts.map +1 -0
  226. package/types/app/runtime/ipex-auxiliaries.d.ts +74 -0
  227. package/types/app/runtime/ipex-auxiliaries.d.ts.map +1 -0
  228. package/types/app/runtime/operation-owners.d.ts +137 -0
  229. package/types/app/runtime/operation-owners.d.ts.map +1 -0
  230. package/types/app/runtime/retry-backoff.d.ts +49 -0
  231. package/types/app/runtime/retry-backoff.d.ts.map +1 -0
  232. package/types/app/runtime/workflow-contract.d.ts +79 -0
  233. package/types/app/runtime/workflow-contract.d.ts.map +1 -0
  234. package/types/app/transport/http-client.d.ts.map +1 -1
  235. package/types/cli/common/event-completion.d.ts +26 -0
  236. package/types/cli/common/event-completion.d.ts.map +1 -0
  237. package/types/cli/common/runtime-workers.d.ts +23 -0
  238. package/types/cli/common/runtime-workers.d.ts.map +1 -0
  239. package/types/cli/credentials/ipex.d.ts.map +1 -1
  240. package/types/cli/credentials/vc.d.ts +1 -1
  241. package/types/cli/credentials/vc.d.ts.map +1 -1
  242. package/types/cli/endpoints/did.d.ts.map +1 -1
  243. package/types/cli/endpoints/oobi.d.ts +3 -1
  244. package/types/cli/endpoints/oobi.d.ts.map +1 -1
  245. package/types/cli/identity/challenge.d.ts +1 -1
  246. package/types/cli/identity/challenge.d.ts.map +1 -1
  247. package/types/cli/identity/delegate.d.ts +14 -1
  248. package/types/cli/identity/delegate.d.ts.map +1 -1
  249. package/types/cli/identity/incept.d.ts.map +1 -1
  250. package/types/cli/identity/interact.d.ts.map +1 -1
  251. package/types/cli/identity/rotate.d.ts.map +1 -1
  252. package/types/cli/index.d.ts +3 -1
  253. package/types/cli/index.d.ts.map +1 -1
  254. package/types/cli/messaging/group-join.d.ts +56 -0
  255. package/types/cli/messaging/group-join.d.ts.map +1 -0
  256. package/types/cli/messaging/group-wait.d.ts +34 -0
  257. package/types/cli/messaging/group-wait.d.ts.map +1 -0
  258. package/types/cli/messaging/multisig.d.ts +29 -5
  259. package/types/cli/messaging/multisig.d.ts.map +1 -1
  260. package/types/cli/messaging/root-copy-lines.d.ts +39 -0
  261. package/types/cli/messaging/root-copy-lines.d.ts.map +1 -0
  262. package/types/core/cues.d.ts +11 -0
  263. package/types/core/cues.d.ts.map +1 -1
  264. package/types/core/kel/eventing.d.ts.map +1 -1
  265. package/types/core/mailbox/kram-policy.d.ts +14 -0
  266. package/types/core/mailbox/kram-policy.d.ts.map +1 -1
  267. package/types/core/mailbox/kraming.d.ts +1 -1
  268. package/types/core/mailbox/kraming.d.ts.map +1 -1
  269. package/types/core/records.d.ts +61 -0
  270. package/types/core/records.d.ts.map +1 -1
  271. package/types/core/routing.d.ts +6 -0
  272. package/types/core/routing.d.ts.map +1 -1
  273. package/types/db/basing.d.ts +8 -2
  274. package/types/db/basing.d.ts.map +1 -1
  275. package/types/db/core/indexeddb-persistence.d.ts +59 -0
  276. package/types/db/core/indexeddb-persistence.d.ts.map +1 -0
  277. package/types/db/indexeddb.d.ts +37 -0
  278. package/types/db/indexeddb.d.ts.map +1 -0
  279. package/types/db/keeping.d.ts +5 -2
  280. package/types/db/keeping.d.ts.map +1 -1
  281. package/types/db/store-lock.d.ts +72 -0
  282. package/types/db/store-lock.d.ts.map +1 -0
  283. package/types/npm/db-indexeddb.d.ts +4 -0
  284. package/types/npm/db-indexeddb.d.ts.map +1 -0
  285. package/types/npm/runtime-web.d.ts +4 -0
  286. package/types/npm/runtime-web.d.ts.map +1 -0
  287. package/types/runtime/index.d.ts +42 -7
  288. package/types/runtime/index.d.ts.map +1 -1
  289. package/types/runtime/web/output-barrier.d.ts +30 -0
  290. package/types/runtime/web/output-barrier.d.ts.map +1 -0
  291. package/types/runtime/web/persistent-storage.d.ts +36 -0
  292. package/types/runtime/web/persistent-storage.d.ts.map +1 -0
  293. package/types/runtime/web.d.ts +11 -0
  294. package/types/runtime/web.d.ts.map +1 -0
  295. package/types/vdr/tel-publication.d.ts +6 -0
  296. package/types/vdr/tel-publication.d.ts.map +1 -1
  297. package/types/version.d.ts +2 -2
  298. package/esm/keri/npm/src/cli/common/tel-completion.js +0 -24
  299. package/types/cli/common/tel-completion.d.ts +0 -8
  300. package/types/cli/common/tel-completion.d.ts.map +0 -1
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Ordered outbox of signed bytes an operation owes its peers, with retry.
3
+ *
4
+ * An operation's steps decide what to send and queue it here; the owner drains the queue each pass. A delivery
5
+ * that fails keeps its message at the head and is retried after a doubling delay ({@link RetryBackoff}), so a peer
6
+ * that is briefly offline delays an operation instead of ending it. The owner decides when retrying stops: an
7
+ * operation with a deadline ends at the deadline, and one without ends once failures have lasted the bound it
8
+ * states. Memory only: the signed messages themselves are durable in the protocol stores.
9
+ */
10
+ import type { Operation } from "effection";
11
+ import { type RetryPolicy } from "./retry-backoff.js";
12
+ import type { RuntimeClock } from "./runtime-clock.js";
13
+ /** One message waiting for delivery. */
14
+ export interface Outbound {
15
+ src: string;
16
+ dest: string;
17
+ /** The signed bytes, or a producer called at delivery for a message that must be timely when it leaves (a query). */
18
+ msg: Uint8Array | (() => Uint8Array);
19
+ topic?: string;
20
+ }
21
+ /** Signed bytes handed to the transport. */
22
+ export interface DeliveryMessage {
23
+ src: string;
24
+ dest: string;
25
+ msg: Uint8Array;
26
+ topic?: string;
27
+ }
28
+ /** Delivery of signed bytes; resolves once the transport reports an outcome and throws when it failed. */
29
+ export interface OutboxDelivery {
30
+ deliver(message: DeliveryMessage): Operation<string[]>;
31
+ }
32
+ /** Why the head delivery is being retried; part of an active operation's status. */
33
+ export interface DeliveryFailure {
34
+ /** Consecutive failures of the head message. */
35
+ attempts: number;
36
+ /** The error's message followed by its `cause` chain, joined with " <- ". */
37
+ reason: string;
38
+ /** When the next attempt is due (ISO 8601). */
39
+ retryAt: string;
40
+ }
41
+ /** Flatten an error and its `cause` chain to one line of text, so a reader sees the transport's own reason. */
42
+ export declare function describeFailure(error: unknown): string;
43
+ /** The queue and its retry state for one live operation. */
44
+ export declare class DeliveryOutbox {
45
+ private readonly queue;
46
+ private readonly backoff;
47
+ /** Destinations the transport reported for everything delivered so far. */
48
+ readonly delivered: string[];
49
+ constructor(policy?: Readonly<RetryPolicy>);
50
+ /** Messages still waiting. */
51
+ get length(): number;
52
+ /** Consecutive delivery failures of the head message. */
53
+ get attempts(): number;
54
+ /** The latest delivery error, or null. */
55
+ get lastError(): unknown;
56
+ /** The retry state of the head message, or null while nothing is failing. */
57
+ get failure(): DeliveryFailure | null;
58
+ /** Queue a message behind the others. */
59
+ enqueue(message: Outbound): void;
60
+ /**
61
+ * Deliver the queued messages in order. A failure keeps the message and schedules a retry; it throws only when
62
+ * `boundMs` is given and failures have lasted that long.
63
+ *
64
+ * @returns True when the queue is empty, false while a message waits for its retry.
65
+ */
66
+ drain(transport: OutboxDelivery, clock: RuntimeClock, boundMs?: number): Operation<boolean>;
67
+ }
68
+ //# sourceMappingURL=delivery-outbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-outbox.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/delivery-outbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wCAAwC;AACxC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qHAAqH;IACrH,GAAG,EAAE,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0GAA0G;AAC1G,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;CACxD;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+GAA+G;AAC/G,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOtD;AAED,4DAA4D;AAC5D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;gBAEtB,MAAM,GAAE,QAAQ,CAAC,WAAW,CAAwB;IAIhE,8BAA8B;IAC9B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,yDAAyD;IACzD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,0CAA0C;IAC1C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,6EAA6E;IAC7E,IAAI,OAAO,IAAI,eAAe,GAAG,IAAI,CAQpC;IAED,yCAAyC;IACzC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAIhC;;;;;OAKG;IACF,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;CAmB7F"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Fixed-tock doers: a background loop is a pass that runs, then waits one tock on the runtime clock, as a HIO
3
+ * `Doer` is re-run every `tock` (`hio/base/doing.py`) and KERIpy's Doist cycles at 0.03125 s. A loop never
4
+ * sleeps for a variable time and is never woken early; work that arrives between tocks is seen on the next one.
5
+ * The wait follows the pass, not a fixed rate, because a pass awaits network I/O.
6
+ */
7
+ import type { Operation } from "effection";
8
+ import type { RuntimeClock } from "./runtime-clock.js";
9
+ /** One pass of a doer; `tock` counts passes from 0, so a doer can do heavier work on tock 0 and every Nth. */
10
+ export type DoerPass = (tock: number) => Operation<unknown>;
11
+ /**
12
+ * How often a doer runs, in milliseconds, and how many tocks apart its full sweeps are. A host that must be
13
+ * gentler (a browser wallet in a background tab, a mobile wallet on battery) supplies longer values.
14
+ */
15
+ export interface DoerPacing {
16
+ tockMs: number;
17
+ sweepTocks: number;
18
+ }
19
+ /** Milliseconds between passes of the protocol-facing background loops: KERIpy's Doist cycle, as the escrow loop uses. */
20
+ export declare const PROTOCOL_TOCK_MS = 31.25;
21
+ /** Tocks between full sweeps of a loop that has one: 1920 tocks of 31.25 ms is a minute. */
22
+ export declare const PROTOCOL_SWEEP_TOCKS = 1920;
23
+ /** The production pacing of the protocol-facing background loops. */
24
+ export declare const PROTOCOL_PACING: Readonly<DoerPacing>;
25
+ /** Run `pass` forever: pass 0, wait `tockMs` on `clock`, pass 1, and so on. A thrown error ends the doer. */
26
+ export declare function doEvery(clock: RuntimeClock, tockMs: number, pass: DoerPass): Operation<never>;
27
+ //# sourceMappingURL=doing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doing.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/doing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,8GAA8G;AAC9G,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0HAA0H;AAC1H,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAG/C,CAAC;AAEH,6GAA6G;AAC7G,wBAAiB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAK9F"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Runtime-owned registry of IPEX auxiliary owners (DH and Unblind), keyed by local identifier.
3
+ *
4
+ * The runtime registers one query receiver and one reply resource per route. Both resolve the
5
+ * addressed local identifier at dispatch time and create that identifier's owner then, so a wallet
6
+ * with several identifiers needs no owner before the first message and no hook when an identifier
7
+ * is made, joined or reloaded.
8
+ *
9
+ * Dispatch key: an `/ipex/*` message carries the sender (`pre`) and the transaction id (`q.x` for
10
+ * a query, `a.x` for a reply) but no recipient. The addressed local identifier is, from stored state:
11
+ * the holder of an approved operation for that id; for DH the recipient of a Grant `sender` opened in
12
+ * that transaction, and for Unblind the sender of a Grant addressed to `sender`; and, for a local
13
+ * group, itself when it is `sender` (its own members' contributions, which KRAM must pool). Exactly one
14
+ * such identifier owns the message; none or several leave it unowned, which is exactly a runtime without
15
+ * that owner: queries drop as `missingProcessor` before KRAM, and replies fail with the Router's
16
+ * missing-route error. Creating an owner grants no consent.
17
+ */
18
+ import type { SerderKERI } from "cesr-ts";
19
+ import { Dhke } from "../../acdc/dhking.js";
20
+ import type { RegistryObserver } from "../../acdc/observing.js";
21
+ import { Unblind } from "../../acdc/unblinding.js";
22
+ import type { KeriDispatchEnvelope } from "../../core/dispatch.js";
23
+ import type { Revery, Router } from "../../core/routing.js";
24
+ import type { Exchanger } from "../exchanges/exchanging.js";
25
+ import type { Hab } from "../identity/habbing.js";
26
+ import type { AuxiliaryQueryProcessor, DispatchDecision } from "../protocol/parsering.js";
27
+ /** Per-identifier DH and Unblind owners behind one query receiver and one reply route each. */
28
+ export declare class IpexAuxiliaries implements AuxiliaryQueryProcessor {
29
+ private readonly exc;
30
+ private readonly registry;
31
+ private readonly rvy;
32
+ private readonly now;
33
+ /** Whether the runtime's KRAM is on; DH and Unblind approval need the rows only KRAM writes. */
34
+ private readonly kram;
35
+ /** Unused: `claims` decides which queries this receiver takes. */
36
+ readonly resource = "/ipex";
37
+ private readonly dhkes;
38
+ private readonly unblinds;
39
+ /**
40
+ * @param exc Exchanger shared by every owner.
41
+ * @param registry Public registry observer shared by every owner.
42
+ * @param rvy Reply verifier whose router the owners' routes are registered on.
43
+ * @param now Receiver clock shared by every owner.
44
+ * @param kram Whether KRAM is enabled; with it off, `approve` of either owner throws.
45
+ */
46
+ constructor(exc: Exchanger, registry: RegistryObserver, rvy: Revery, now: () => number,
47
+ /** Whether the runtime's KRAM is on; DH and Unblind approval need the rows only KRAM writes. */
48
+ kram: boolean);
49
+ private restored;
50
+ /** Every live DH owner, for hosts draining their completion cues. */
51
+ dhkeOwners(): IterableIterator<Dhke>;
52
+ /** Every live Unblind owner, for hosts delivering the replies they owe. */
53
+ unblindOwners(): IterableIterator<Unblind>;
54
+ /** Register the DH and Unblind reply routes once; owners are looked up on each reply. */
55
+ registerReplyRoutes(rtr: Router): void;
56
+ /** The DH owner for `hab`, created on first use and recreated when `hab` is no longer the owner's object. */
57
+ dhke(hab: Hab): Dhke;
58
+ /** The Unblind owner for `hab`, created on first use and recreated when `hab` is no longer the owner's object. */
59
+ unblind(hab: Hab): Unblind;
60
+ /** Close and unregister both owners of `pre`; process-local approvals and retries are cleared. */
61
+ release(pre: string): void;
62
+ /** Close every owner; the runtime calls this on explicit close and scope exit. */
63
+ close(): void;
64
+ claims(serder: SerderKERI): boolean;
65
+ processQuery(envelope: KeriDispatchEnvelope): DispatchDecision;
66
+ private reply;
67
+ private select;
68
+ /**
69
+ * The owner of the one local identifier party to the transaction, created now if needed; absent or
70
+ * ambiguous means unowned. Parties come from live owners (approved operations) and from the store.
71
+ */
72
+ private claimant;
73
+ }
74
+ //# sourceMappingURL=ipex-auxiliaries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipex-auxiliaries.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/ipex-auxiliaries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAM1F,+FAA+F;AAC/F,qBAAa,eAAgB,YAAW,uBAAuB;IAc3D,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlBvB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAEvD;;;;;;OAMG;gBAEgB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,MAAM;IAClC,gGAAgG;IAC/E,IAAI,EAAE,OAAO;IAGhC,OAAO,CAAC,QAAQ,CAAS;IAEzB,qEAAqE;IACrE,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAIpC,2EAA2E;IAC3E,aAAa,IAAI,gBAAgB,CAAC,OAAO,CAAC;IAkB1C,yFAAyF;IACzF,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKtC,6GAA6G;IAC7G,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAgBpB,kHAAkH;IAClH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAS1B,kGAAkG;IAClG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ1B,kFAAkF;IAClF,KAAK,IAAI,IAAI;IAMb,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAInC,YAAY,CAAC,QAAQ,EAAE,oBAAoB,GAAG,gBAAgB;IAI9D,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,MAAM;IAKd;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAgCjB"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Composition and loop of the runtime's operations owners.
3
+ *
4
+ * The runtime owns one `IssuanceOperations`, one
5
+ * `PresentationOperations` and one `UnblindingOperations`, each an in-memory live table
6
+ * with status derived from the protocol stores, and,
7
+ * when it has a registry root owner, one `RootReplicator`. `runAgentRuntime` runs each
8
+ * owner's `processOnce` on one fiber with an adaptive cadence ({@link operationOwnersDo}). The owners
9
+ * act only for operations a user began or copies already owed.
10
+ *
11
+ * The root replicator is a runtime reaction. It derives what is owed from state and records
12
+ * sent copies in the Baser (`rrsn.`), so a CLI command that sends copies through its own
13
+ * replicator shares that record with the loop and a later pass does not repeat its sends.
14
+ */
15
+ import { type Operation } from "effection";
16
+ import { type DerivedUpdateStore } from "../../acdc/custody.js";
17
+ import type { Regery } from "../../acdc/registraring.js";
18
+ import type { RegistryRoot } from "../../acdc/salting.js";
19
+ import { RootReplicator } from "../credentials/root-replicator.js";
20
+ import type { Poster } from "../delivery/forwarding.js";
21
+ import type { Exchanger } from "../exchanges/exchanging.js";
22
+ import type { Habery } from "../identity/habbing.js";
23
+ import { GroupIpexOperations } from "../ipex/group-ipex.js";
24
+ import type { CredentialViews } from "../ipex/ipex-discloser.js";
25
+ import { IssuanceOperations } from "../ipex/issuance.js";
26
+ import { PresentationOperations } from "../ipex/presenting.js";
27
+ import { UnblindingOperations } from "../ipex/unblinding-workflow.js";
28
+ import type { Counselor } from "../multisig/counseling.js";
29
+ import type { Multiplexor } from "../multisig/grouping.js";
30
+ import type { ProtocolProcessor } from "../protocol/protocol-processing.js";
31
+ import type { Reactor } from "../protocol/reactor.js";
32
+ import type { Receiptor } from "../witness/receipting.js";
33
+ import { type DoerPacing } from "./doing.js";
34
+ import type { IpexAuxiliaries } from "./ipex-auxiliaries.js";
35
+ import type { RetryPolicy } from "./retry-backoff.js";
36
+ import type { RuntimeClock } from "./runtime-clock.js";
37
+ import type { ChangeSink } from "./workflow-contract.js";
38
+ /** Milliseconds between owner passes; the cadence of the CLI drivers the loop replaced. */
39
+ export declare const OWNER_TOCK_MS = 50;
40
+ /** Tocks between the replicator's full rotation checks: 1200 tocks of 50 ms is a minute. */
41
+ export declare const OWNER_SWEEP_TOCKS = 1200;
42
+ /** The production pacing of the owner loop. */
43
+ export declare const OWNER_PACING: Readonly<DoerPacing>;
44
+ /**
45
+ * What an embedder may supply; every field is optional. The operation tables are in memory and their status is
46
+ * derived from the protocol stores, so there is no store port for them.
47
+ */
48
+ export interface OperationStores {
49
+ /**
50
+ * Non-secret blind-derivation coordinates for issuance and derived presentation. Defaults to
51
+ * {@link BaserDerivedUpdateStore} over the registry environment's database, which is durable wherever the
52
+ * registry store is; a wallet with its own table supplies that instead.
53
+ */
54
+ derived?: DerivedUpdateStore;
55
+ /** The embedder's credential inventory, from which presentation selects issued and held credentials. Without it only replies and `apply` can be presented. */
56
+ views?: CredentialViews;
57
+ /** Receives identity-only changes after commit; defaults to the runtime's Signaler when it has one. */
58
+ changes?: ChangeSink;
59
+ }
60
+ /** The operations owners of one runtime, additive on `AgentRuntime.operations`. */
61
+ export interface RuntimeOperations {
62
+ readonly issuance: IssuanceOperations;
63
+ /** A local group's v2 IPEX messages (its Admit): propose, approve, status, wait. */
64
+ readonly groupIpex: GroupIpexOperations;
65
+ readonly presentation: PresentationOperations;
66
+ readonly unblinding: UnblindingOperations;
67
+ /** What the owner loop could not do; read by a host that reports runtime health. */
68
+ readonly health: OwnerHealth;
69
+ }
70
+ /** The last failure of an owner pass that no single operation owned, and how many there have been. */
71
+ export interface OwnerFault {
72
+ owner: "issuance" | "groupIpex" | "presentation" | "unblinding" | "replicator";
73
+ error: string;
74
+ /** ISO 8601 time of the failure on the host clock. */
75
+ at: string;
76
+ }
77
+ /**
78
+ * Failures of the owner loop itself. A failure of one operation (a delivery that throws, an unreadable stored
79
+ * Grant) ends that operation as `failed` and is never recorded here; this records only what escaped an owner
80
+ * pass, which the loop survives so that the other owners keep running. `faults` counts them and `last` keeps
81
+ * the latest. Nothing clears it: a host reads it and decides.
82
+ */
83
+ export declare class OwnerHealth {
84
+ faults: number;
85
+ last: OwnerFault | null;
86
+ }
87
+ /** What the runtime composes for its operations owners. */
88
+ export interface ComposedOwners {
89
+ operations: RuntimeOperations;
90
+ rootReplicator: RootReplicator | null;
91
+ }
92
+ /** The runtime pieces the owners borrow; no AgentRuntime bundle. */
93
+ export interface OwnerParts {
94
+ hby: Habery;
95
+ acdc: Regery;
96
+ exc: Exchanger;
97
+ protocol: ProtocolProcessor;
98
+ reactor: Reactor;
99
+ postman: Poster;
100
+ receiptor: Receiptor;
101
+ ipex: IpexAuxiliaries;
102
+ clock: RuntimeClock;
103
+ registryRoot: RegistryRoot | null;
104
+ /** Delegates the DH wrappers of group issuance; one owner per runtime registers. */
105
+ mux: Multiplexor;
106
+ /** Counsels the group anchor of a custodian's registry update. */
107
+ counselor: Counselor;
108
+ /** Delivery retry delays of the owners; the production policy when absent. */
109
+ retry?: Readonly<RetryPolicy>;
110
+ /** Milliseconds between issuer query resends; one second when absent. */
111
+ queryResendMs?: number;
112
+ changes?: ChangeSink;
113
+ }
114
+ /** Construct the owners over their in-memory tables; the derivation store defaults to the registry database. */
115
+ export declare function composeOwners(parts: OwnerParts, stores?: OperationStores): ComposedOwners;
116
+ /** What the owner loop runs: the owners, the replicator, the DH owners whose completion cues prompt it, the clock. */
117
+ export interface OwnerLoopParts extends ComposedOwners {
118
+ ipex: IpexAuxiliaries;
119
+ clock: RuntimeClock;
120
+ }
121
+ /**
122
+ * Run every owner on one fiber until halted, as a fixed-tock doer (`./doing.ts`): each tock runs an owner that
123
+ * has live work, then the replicator (after prompting it with the live DH owners' `replicated` cues), and then
124
+ * the loop waits one tock. Work begun between tocks is seen on the next one; nothing wakes the loop early.
125
+ *
126
+ * Idle cost, per tock: four constant-time table checks, one in-memory walk of the Unblind owners for an owed
127
+ * reply, one drain of each DH owner's cue deck, and the replicator's emptiness checks. The replicator's
128
+ * rotation check (the establishment SAID of each local group, one keyed read per local identifier) runs on
129
+ * tock 0 and every `pacing.sweepTocks`. No owner reads a protocol store. Only the first pass, once, scans the
130
+ * pending exchange escrow for resumable Grants.
131
+ *
132
+ * A failure that escapes an owner pass is recorded in `operations.health` and the loop keeps running, so
133
+ * one owner's fault never stops the others. The owners run one after another, so a delivery that does not return holds the others up until it fails or
134
+ * its Grant deadline passes; operations already bound each delivery by that deadline.
135
+ */
136
+ export declare function operationOwnersDo(owners: OwnerLoopParts, pacing?: Readonly<DoerPacing>): Operation<never>;
137
+ //# sourceMappingURL=operation-owners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-owners.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/operation-owners.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Retry state for a transient delivery failure inside a live operation.
3
+ *
4
+ * A member that is briefly offline is normal, so an owner keeps the unsent work, waits with a doubling delay and
5
+ * tries again on a later pass instead of ending the operation at the first error. The owner decides when retrying
6
+ * stops: an operation with a deadline ends at the deadline, and one without ends once failures have lasted the
7
+ * bound it states.
8
+ */
9
+ /** Delay after the first failure; it doubles per consecutive failure up to {@link RETRY_MAX_MS}. */
10
+ export declare const RETRY_BASE_MS = 1000;
11
+ /** Longest delay between attempts. */
12
+ export declare const RETRY_MAX_MS = 30000;
13
+ /** How long failures may last before an owner with no deadline of its own gives up. */
14
+ export declare const RETRY_BOUND_MS = 600000;
15
+ /**
16
+ * How long a retried action waits: it starts at `baseMs`, doubles per consecutive failure up to `maxMs`, and an
17
+ * owner that gives up does so once failures have lasted `boundMs`. Owners that never give up ignore the bound.
18
+ * Milliseconds; a test passes small values.
19
+ */
20
+ export interface RetryPolicy {
21
+ baseMs: number;
22
+ maxMs: number;
23
+ boundMs: number;
24
+ }
25
+ /** The production delays of delivery retries. */
26
+ export declare const DEFAULT_RETRY_POLICY: Readonly<RetryPolicy>;
27
+ /** Consecutive-failure counter with a next-attempt time; memory only. */
28
+ export declare class RetryBackoff {
29
+ #private;
30
+ private readonly policy;
31
+ /** Consecutive failures since the last success. */
32
+ attempts: number;
33
+ /** Time of the first failure of the current run (host clock, ms); 0 when none. */
34
+ since: number;
35
+ /** Error of the latest failure. */
36
+ last: unknown;
37
+ constructor(policy?: Readonly<RetryPolicy>);
38
+ /** Host-clock time (ms) of the next attempt. */
39
+ get next(): number;
40
+ /** Whether an attempt may be made at `now`. */
41
+ due(now: number): boolean;
42
+ /** Record a failure at `now` and schedule the next attempt. */
43
+ failed(now: number, error: unknown): void;
44
+ /** Whether failures have lasted at least `boundMs` by `now`. */
45
+ exhausted(now: number, boundMs: number): boolean;
46
+ /** Forget failures after a success. */
47
+ succeeded(): void;
48
+ }
49
+ //# sourceMappingURL=retry-backoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-backoff.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/retry-backoff.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oGAAoG;AACpG,eAAO,MAAM,aAAa,OAAQ,CAAC;AACnC,sCAAsC;AACtC,eAAO,MAAM,YAAY,QAAS,CAAC;AACnC,uFAAuF;AACvF,eAAO,MAAM,cAAc,SAAU,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iDAAiD;AACjD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAIrD,CAAC;AAEH,yEAAyE;AACzE,qBAAa,YAAY;;IASX,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,mDAAmD;IACnD,QAAQ,SAAK;IACb,kFAAkF;IAClF,KAAK,SAAK;IACV,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAQ;gBAGQ,MAAM,GAAE,QAAQ,CAAC,WAAW,CAAwB;IAEjF,gDAAgD;IAChD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,+CAA+C;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,+DAA+D;IAC/D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOzC,gEAAgE;IAChE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhD,uCAAuC;IACvC,SAAS,IAAI,IAAI;CAMlB"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Shared pieces of the library workflow contract.
3
+ *
4
+ * Library workflows follow one shape: `begin*` is an explicit operation that
5
+ * returns after local commit, `*Status` is a pure synchronous read, and
6
+ * `waitFor*` only observes. A wait never starts runtime workers: a host that
7
+ * already runs a runtime must not get a second poller and escrow loop. One-shot
8
+ * hosts such as the CLI run the runtime around the wait themselves
9
+ * (`cli/common/runtime-workers.ts`). Remote and time-driven outcomes, including
10
+ * an expired wait, are returned values; only caller-contract, invariant and
11
+ * infrastructure failures throw.
12
+ */
13
+ import { type Operation } from "effection";
14
+ import type { Signaler } from "../notifications/signaling.js";
15
+ import { type RuntimeClock } from "./runtime-clock.js";
16
+ /** Workflow families that publish changes. */
17
+ export type WorkflowKind = "oobi" | "query" | "event" | "delegation" | "group" | "issuance" | "ipex" | "presentation" | "unblinding"
18
+ /** A registry root copy was retained; `id` is the registry. */
19
+ | "root";
20
+ /** Identity of a workflow whose status may have changed; consumers re-read status. */
21
+ export interface WorkflowChange {
22
+ kind: WorkflowKind;
23
+ id: string;
24
+ }
25
+ /**
26
+ * Receiver of change identities. Owners publish after their commit and never
27
+ * depend on what the sink does with it; a sink must not throw into a workflow.
28
+ */
29
+ export interface ChangeSink {
30
+ push(change: WorkflowChange): void;
31
+ }
32
+ /**
33
+ * Result of a library wait. `settled` means the status reached a terminal or
34
+ * wanted state; `timed-out` means the budget expired first. Either way `status`
35
+ * is the status read at return, so a caller never needs a second read to explain
36
+ * the outcome. `Timed` adds fields to the timed-out arm (default: the budget).
37
+ */
38
+ export type WaitResult<S, Timed extends object = {
39
+ timeoutMs: number;
40
+ }> = {
41
+ readonly outcome: "settled";
42
+ readonly status: S;
43
+ } | ({
44
+ readonly outcome: "timed-out";
45
+ readonly status: S;
46
+ } & Readonly<Timed>);
47
+ /** In-memory sink that records changes in order. */
48
+ export declare class MemoryChangeSink implements ChangeSink {
49
+ readonly changes: WorkflowChange[];
50
+ push(change: WorkflowChange): void;
51
+ }
52
+ /**
53
+ * Back a sink with the host's transient `Signaler`. Publishing needs no polling:
54
+ * `push` is a synchronous append that collapses repeats of one workflow into a
55
+ * single signal (collapse key `kind:id`). Delivery is pull-based, though: the
56
+ * Signaler has no subscriber hook, so the consumer must read `signaler.list()`.
57
+ * A closed or failing Signaler drops the change instead of throwing: a hint must
58
+ * never break the workflow that published it.
59
+ */
60
+ export declare function signalerChangeSink(signaler: Pick<Signaler, "push">): ChangeSink;
61
+ /**
62
+ * Observe-only wait: poll `done`, yielding to the scheduler between checks,
63
+ * until it holds or the deadline passes. Starts no worker and has no effects of
64
+ * its own.
65
+ *
66
+ * @param done Synchronous status read; checked before the first yield.
67
+ * @param pollMs Elapsed milliseconds between checks. Omitted: yield one scheduler turn.
68
+ * @returns True when `done` held, false when `timeoutMs` elapsed first.
69
+ */
70
+ export declare function observeUntil(done: () => boolean, { timeoutMs, clock, pollMs }: {
71
+ timeoutMs: number;
72
+ clock?: Pick<RuntimeClock, "now">;
73
+ pollMs?: number;
74
+ }): Operation<boolean>;
75
+ /**
76
+ * Wait `milliseconds` on the host's clock, so a fake clock drives it and cancellation releases the timer.
77
+ */
78
+ export declare function waitOnClock(clock: RuntimeClock, milliseconds: number): Operation<void>;
79
+ //# sourceMappingURL=workflow-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-contract.d.ts","sourceRoot":"","sources":["../../../src/app/runtime/workflow-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAU,KAAK,SAAS,EAAS,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAGpE,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,OAAO,GACP,OAAO,GACP,YAAY,GACZ,OAAO,GACP,UAAU,GACV,MAAM,GACN,cAAc,GACd,YAAY;AACd,+DAA+D;GAC7D,MAAM,CAAC;AAEX,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,IAClE;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GACnD,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9E,oDAAoD;AACpD,qBAAa,gBAAiB,YAAW,UAAU;IACjD,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAM;IACxC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;CAGnC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,UAAU,CAU/E;AAED;;;;;;;;GAQG;AACH,wBAAiB,YAAY,CAC3B,IAAI,EAAE,MAAM,OAAO,EACnB,EAAE,SAAS,EAAE,KAAmB,EAAE,MAAM,EAAE,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,SAAS,CAAC,OAAO,CAAC,CASpB;AAED;;GAEG;AACH,wBAAiB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAKvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/app/transport/http-client.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAQ,KAAK,SAAS,EAAoB,MAAM,WAAW,CAAC;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IAChD,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CACvD;AAED,uGAAuG;AACvG,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IAEzB;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IACtE;;;;;;;;;;OAUG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAC1E;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,SAAS,CAAC,YAAY,CAAC;IASzE;;;;;;;;;;OAUG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,SAAS,CAAC,kBAAkB,CAAC;CAsH7E"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/app/transport/http-client.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAQ,KAAK,SAAS,EAAoB,MAAM,WAAW,CAAC;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IAChD,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CACvD;AAED,uGAAuG;AACvG,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IAEzB;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IACtE;;;;;;;;;;OAUG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAC1E;AAmBD;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,SAAS,CAAC,YAAY,CAAC;IASzE;;;;;;;;;;OAUG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,SAAS,CAAC,kBAAkB,CAAC;CAyH7E"}
@@ -0,0 +1,26 @@
1
+ import type { Operation } from "effection";
2
+ import type { DelegationWorkflowStatus } from "../../app/identity/delegating.js";
3
+ import { completeEvent, type EventCompletionDeps } from "../../app/identity/event-completion.js";
4
+ import type { Habery } from "../../app/identity/habbing.js";
5
+ import { KelPublisher } from "../../app/mailbox/kel-publisher.js";
6
+ import type { HttpClient } from "../../app/transport/http-client.js";
7
+ /** Event-completion dependencies of a command, with the publisher that tells mailboxes after a rotation. */
8
+ export interface CliEventCompletionDeps extends EventCompletionDeps {
9
+ readonly publisher: KelPublisher;
10
+ }
11
+ /**
12
+ * Compose event-completion dependencies for one CLI command.
13
+ *
14
+ * A short-lived runtime is created only when a delegated event needs workers.
15
+ * It is lent to the library for that one scope with its workers running around
16
+ * the library's observe-only wait, and closed on every exit path.
17
+ */
18
+ export declare function cliEventCompletionDeps(hby: Habery, http: HttpClient): CliEventCompletionDeps;
19
+ /**
20
+ * `completeEvent` for commands: an expired delegation wait fails the command with
21
+ * the text the CLI has always printed, then the caller sees the usual result.
22
+ */
23
+ export declare function completeEventOrThrow(deps: CliEventCompletionDeps, ...args: Parameters<typeof completeEvent> extends [unknown, ...infer Rest] ? Rest : never): Operation<{
24
+ delegationPhase: DelegationWorkflowStatus["phase"] | null;
25
+ }>;
26
+ //# sourceMappingURL=event-completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/common/event-completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAGrE,4GAA4G;AAC5G,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,sBAAsB,CAuB5F;AAED;;;GAGG;AACH,wBAAiB,oBAAoB,CACnC,IAAI,EAAE,sBAAsB,EAC5B,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GACxF,SAAS,CAAC;IAAE,eAAe,EAAE,wBAAwB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAS1E"}
@@ -0,0 +1,23 @@
1
+ import { type Operation } from "effection";
2
+ import type { Hab } from "../../app/identity/habbing.js";
3
+ import { type AgentRuntime } from "../../app/runtime/agent-runtime.js";
4
+ import type { AgentCue } from "../../core/cues.js";
5
+ import type { Deck } from "../../core/deck.js";
6
+ /**
7
+ * Run the runtime workers around one observe-only library call.
8
+ *
9
+ * Library workflows only observe (see `app/runtime/workflow-contract.ts`); a
10
+ * one-shot CLI command has no running runtime, so it supplies the workers here.
11
+ * The worker is halted and joined on success, failure and cancellation before
12
+ * the caller can release stores.
13
+ *
14
+ * @param runtime Borrowed composed runtime; the command owns its lifetime.
15
+ * @param options Signer, mailbox polling and command-owned query cue Deck.
16
+ * @param use Observe-only operation that depends on the workers' progress.
17
+ */
18
+ export declare function withRuntimeWorkers<T>(runtime: AgentRuntime, options: {
19
+ hab?: Hab;
20
+ pollMailbox?: boolean;
21
+ queryCues?: Deck<AgentCue>;
22
+ }, use: () => Operation<T>): Operation<T>;
23
+ //# sourceMappingURL=runtime-workers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-workers.d.ts","sourceRoot":"","sources":["../../../src/cli/common/runtime-workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oCAAoC,CAAC;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAiB,kBAAkB,CAAC,CAAC,EACnC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;CAAE,EACzE,GAAG,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,GACtB,SAAS,CAAC,CAAC,CAAC,CAOd"}
@@ -1 +1 @@
1
- {"version":3,"file":"ipex.d.ts","sourceRoot":"","sources":["../../../src/cli/credentials/ipex.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAU,KAAK,SAAS,EAAS,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAiCjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAGhF,OAAO,EAAE,KAAK,YAAY,EAA2C,MAAM,oCAAoC,CAAC;AAOhH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA+B1C,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;CACvE;AAED,wGAAwG;AACxG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;CACvE;AAED,8FAA8F;AAC9F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;CACvE;AAED,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,eAAe,GAAG;QACxB,QAAQ,EAAE,UAAU,CAAC;QACrB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,kFAAkF;QAClF,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;QACrB,8FAA8F;QAC9F,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAmB1F;AAED;;;;GAIG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAoB1F;AAED,0EAA0E;AAC1E,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAE1F;AAED;;;GAGG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAe1F;AACD;;;;GAIG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,CAyG3F;AAED;;;;GAIG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,CAiF3F;AAED,yEAAyE;AACzE,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAgB/E;AAED,yGAAyG;AACzG,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CA0DzF;AAED;;;;GAIG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAQzF;AAED,qFAAqF;AACrF,wBAAiB,gBAAgB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,QAAQ,EAAE,eAAe,GACxB,SAAS,CAAC,cAAc,CAAC,CAwF3B"}
1
+ {"version":3,"file":"ipex.d.ts","sourceRoot":"","sources":["../../../src/cli/credentials/ipex.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Operation } from "effection";
1
+ import type { Operation } from "effection";
2
2
  import { type CredentialRevokeResult } from "../../app/credentials/credential-revoking.js";
3
3
  import { type IssueResult, type RegistryResult } from "../../app/credentials/credential-workflows.js";
4
4
  /** Implement `tufa vc schema import` by pinning JSON schemas into `schema.`. */
@@ -1 +1 @@
1
- {"version":3,"file":"vc.d.ts","sourceRoot":"","sources":["../../../src/cli/credentials/vc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,SAAS,EAAS,MAAM,WAAW,CAAC;AAExD,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAOL,KAAK,WAAW,EAGhB,KAAK,cAAc,EACpB,MAAM,+CAA+C,CAAC;AAiEvD,gFAAgF;AAChF,wBAAiB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAWrF;AAED;;;;GAIG;AACH,wBAAiB,uBAAuB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,cAAc,CAAC,CA6B3B;AAED,uEAAuE;AACvE,wBAAiB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAOrF;AAED,2EAA2E;AAC3E,wBAAiB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAKvF;AAED;;;;GAIG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CA6DtF;AAED,oEAAoE;AACpE,wBAAiB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAgB7E;AAED,mFAAmF;AACnF,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAa/E;AAED;;;;;;;;GAQG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAyB/E;AAED;;;;GAIG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAmDjG"}
1
+ {"version":3,"file":"vc.d.ts","sourceRoot":"","sources":["../../../src/cli/credentials/vc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAOL,KAAK,WAAW,EAGhB,KAAK,cAAc,EACpB,MAAM,+CAA+C,CAAC;AAwEvD,gFAAgF;AAChF,wBAAiB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAWrF;AAED;;;;GAIG;AACH,wBAAiB,uBAAuB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,cAAc,CAAC,CAuB3B;AAED,uEAAuE;AACvE,wBAAiB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAOrF;AAED,2EAA2E;AAC3E,wBAAiB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAKvF;AAED;;;;GAIG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAmDtF;AAED,oEAAoE;AACpE,wBAAiB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAgB7E;AAED,mFAAmF;AACnF,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAa/E;AAED;;;;;;;;GAQG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAyB/E;AAED;;;;GAIG;AACH,wBAAiB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAAC,CA8CjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../../src/cli/endpoints/did.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAqD3C,iCAAiC;AACjC,wBAAiB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAsC9E;AAED,qCAAqC;AACrC,wBAAiB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CA2ClF;AAED;;;;GAIG;AACH,wBAAiB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAwBjF;AAED,oCAAoC;AACpC,wBAAiB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CA4BjF"}
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../../src/cli/endpoints/did.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAuD3C,iCAAiC;AACjC,wBAAiB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAsC9E;AAED,qCAAqC;AACrC,wBAAiB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CA2ClF;AAED;;;;GAIG;AACH,wBAAiB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAwBjF;AAED,oCAAoC;AACpC,wBAAiB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAgCjF"}
@@ -16,7 +16,9 @@ export declare function oobiGenerateCommand(args: Record<string, unknown>): Oper
16
16
  *
17
17
  * The command queues one OOBI job, runs the shared workers, and succeeds only if
18
18
  * the URL lands in `roobi.`. Any reply/event material fetched from the OOBI is
19
- * forced through the same parser/routing path used by the long-lived host.
19
+ * forced through the same parser/routing path used by the long-lived host. It
20
+ * waits on that URL's own record, never on unrelated pending runtime work such
21
+ * as group proposals or delegation escrows.
20
22
  */
21
23
  export declare function oobiResolveCommand(args: Record<string, unknown>): Operation<void>;
22
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"oobi.d.ts","sourceRoot":"","sources":["../../../src/cli/endpoints/oobi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AA8D3C;;;;;;;;;;GAUG;AACH,wBAAiB,mBAAmB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAwFjB;AAED;;;;;;GAMG;AACH,wBAAiB,kBAAkB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAkDjB;AAED;;;;;;;GAOG;AACH,wBAAiB,kBAAkB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CA8DjB"}
1
+ {"version":3,"file":"oobi.d.ts","sourceRoot":"","sources":["../../../src/cli/endpoints/oobi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AA8D3C;;;;;;;;;;GAUG;AACH,wBAAiB,mBAAmB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAwFjB;AAED;;;;;;;;GAQG;AACH,wBAAiB,kBAAkB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CA+CjB;AAED;;;;;;;GAOG;AACH,wBAAiB,kBAAkB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CA8DjB"}
@@ -1,4 +1,4 @@
1
- import { type Operation } from "effection";
1
+ import type { Operation } from "effection";
2
2
  /** Implement `tufa challenge generate`. */
3
3
  export declare function challengeGenerateCommand(args: Record<string, unknown>): Operation<void>;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"challenge.d.ts","sourceRoot":"","sources":["../../../src/cli/identity/challenge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,SAAS,EAAS,MAAM,WAAW,CAAC;AAsD1D,2CAA2C;AAC3C,wBAAiB,wBAAwB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CASjB;AAED;;;;GAIG;AACH,wBAAiB,uBAAuB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CA+DjB;AAED,0GAA0G;AAC1G,wBAAiB,sBAAsB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAwFjB"}
1
+ {"version":3,"file":"challenge.d.ts","sourceRoot":"","sources":["../../../src/cli/identity/challenge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAoD3C,2CAA2C;AAC3C,wBAAiB,wBAAwB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CASjB;AAED;;;;GAIG;AACH,wBAAiB,uBAAuB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAmDjB;AAED,0GAA0G;AAC1G,wBAAiB,sBAAsB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,SAAS,CAAC,IAAI,CAAC,CAqFjB"}