@ixo/decision-oracle 0.0.0-stage → 0.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 (1118) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +794 -2
  3. package/dist/act.d.ts +87 -0
  4. package/dist/act.d.ts.map +1 -0
  5. package/dist/act.js +20 -0
  6. package/dist/act.js.map +1 -0
  7. package/dist/app.d.ts +22 -0
  8. package/dist/app.d.ts.map +1 -0
  9. package/dist/app.js +128 -0
  10. package/dist/app.js.map +1 -0
  11. package/dist/c2pa.wasm +0 -0
  12. package/dist/cli/commands/api.d.ts +50 -0
  13. package/dist/cli/commands/api.d.ts.map +1 -0
  14. package/dist/cli/commands/api.js +737 -0
  15. package/dist/cli/commands/api.js.map +1 -0
  16. package/dist/cli/commands/create-collection.d.ts +40 -0
  17. package/dist/cli/commands/create-collection.d.ts.map +1 -0
  18. package/dist/cli/commands/create-collection.js +318 -0
  19. package/dist/cli/commands/create-collection.js.map +1 -0
  20. package/dist/cli/commands/create-deed.d.ts +31 -0
  21. package/dist/cli/commands/create-deed.d.ts.map +1 -0
  22. package/dist/cli/commands/create-deed.js +208 -0
  23. package/dist/cli/commands/create-deed.js.map +1 -0
  24. package/dist/cli/commands/delegation.d.ts +26 -0
  25. package/dist/cli/commands/delegation.d.ts.map +1 -0
  26. package/dist/cli/commands/delegation.js +162 -0
  27. package/dist/cli/commands/delegation.js.map +1 -0
  28. package/dist/cli/commands/derive.d.ts +22 -0
  29. package/dist/cli/commands/derive.d.ts.map +1 -0
  30. package/dist/cli/commands/derive.js +53 -0
  31. package/dist/cli/commands/derive.js.map +1 -0
  32. package/dist/cli/commands/engine.d.ts +25 -0
  33. package/dist/cli/commands/engine.d.ts.map +1 -0
  34. package/dist/cli/commands/engine.js +107 -0
  35. package/dist/cli/commands/engine.js.map +1 -0
  36. package/dist/cli/commands/erase.d.ts +17 -0
  37. package/dist/cli/commands/erase.d.ts.map +1 -0
  38. package/dist/cli/commands/erase.js +117 -0
  39. package/dist/cli/commands/erase.js.map +1 -0
  40. package/dist/cli/commands/facts-run.d.ts +30 -0
  41. package/dist/cli/commands/facts-run.d.ts.map +1 -0
  42. package/dist/cli/commands/facts-run.js +409 -0
  43. package/dist/cli/commands/facts-run.js.map +1 -0
  44. package/dist/cli/commands/facts-scaffold.d.ts +22 -0
  45. package/dist/cli/commands/facts-scaffold.d.ts.map +1 -0
  46. package/dist/cli/commands/facts-scaffold.js +208 -0
  47. package/dist/cli/commands/facts-scaffold.js.map +1 -0
  48. package/dist/cli/commands/init.d.ts +18 -0
  49. package/dist/cli/commands/init.d.ts.map +1 -0
  50. package/dist/cli/commands/init.js +34 -0
  51. package/dist/cli/commands/init.js.map +1 -0
  52. package/dist/cli/commands/login.d.ts +9 -0
  53. package/dist/cli/commands/login.d.ts.map +1 -0
  54. package/dist/cli/commands/login.js +16 -0
  55. package/dist/cli/commands/login.js.map +1 -0
  56. package/dist/cli/commands/logout.d.ts +10 -0
  57. package/dist/cli/commands/logout.d.ts.map +1 -0
  58. package/dist/cli/commands/logout.js +28 -0
  59. package/dist/cli/commands/logout.js.map +1 -0
  60. package/dist/cli/commands/manifest.d.ts +12 -0
  61. package/dist/cli/commands/manifest.d.ts.map +1 -0
  62. package/dist/cli/commands/manifest.js +48 -0
  63. package/dist/cli/commands/manifest.js.map +1 -0
  64. package/dist/cli/commands/oracle-init.d.ts +48 -0
  65. package/dist/cli/commands/oracle-init.d.ts.map +1 -0
  66. package/dist/cli/commands/oracle-init.js +1122 -0
  67. package/dist/cli/commands/oracle-init.js.map +1 -0
  68. package/dist/cli/commands/org.d.ts +28 -0
  69. package/dist/cli/commands/org.d.ts.map +1 -0
  70. package/dist/cli/commands/org.js +309 -0
  71. package/dist/cli/commands/org.js.map +1 -0
  72. package/dist/cli/commands/protocol-review.d.ts +20 -0
  73. package/dist/cli/commands/protocol-review.d.ts.map +1 -0
  74. package/dist/cli/commands/protocol-review.js +162 -0
  75. package/dist/cli/commands/protocol-review.js.map +1 -0
  76. package/dist/cli/commands/publish-protocol.d.ts +43 -0
  77. package/dist/cli/commands/publish-protocol.d.ts.map +1 -0
  78. package/dist/cli/commands/publish-protocol.js +345 -0
  79. package/dist/cli/commands/publish-protocol.js.map +1 -0
  80. package/dist/cli/commands/register.d.ts +16 -0
  81. package/dist/cli/commands/register.d.ts.map +1 -0
  82. package/dist/cli/commands/register.js +54 -0
  83. package/dist/cli/commands/register.js.map +1 -0
  84. package/dist/cli/commands/relink.d.ts +11 -0
  85. package/dist/cli/commands/relink.d.ts.map +1 -0
  86. package/dist/cli/commands/relink.js +36 -0
  87. package/dist/cli/commands/relink.js.map +1 -0
  88. package/dist/cli/commands/rubric-fetch-form.d.ts +16 -0
  89. package/dist/cli/commands/rubric-fetch-form.d.ts.map +1 -0
  90. package/dist/cli/commands/rubric-fetch-form.js +83 -0
  91. package/dist/cli/commands/rubric-fetch-form.js.map +1 -0
  92. package/dist/cli/commands/rubric-validate.d.ts +72 -0
  93. package/dist/cli/commands/rubric-validate.d.ts.map +1 -0
  94. package/dist/cli/commands/rubric-validate.js +163 -0
  95. package/dist/cli/commands/rubric-validate.js.map +1 -0
  96. package/dist/cli/commands/scan.d.ts +13 -0
  97. package/dist/cli/commands/scan.d.ts.map +1 -0
  98. package/dist/cli/commands/scan.js +39 -0
  99. package/dist/cli/commands/scan.js.map +1 -0
  100. package/dist/cli/commands/skills.d.ts +11 -0
  101. package/dist/cli/commands/skills.d.ts.map +1 -0
  102. package/dist/cli/commands/skills.js +19 -0
  103. package/dist/cli/commands/skills.js.map +1 -0
  104. package/dist/cli/commands/submit-claim.d.ts +25 -0
  105. package/dist/cli/commands/submit-claim.d.ts.map +1 -0
  106. package/dist/cli/commands/submit-claim.js +155 -0
  107. package/dist/cli/commands/submit-claim.js.map +1 -0
  108. package/dist/cli/index.d.ts +15 -0
  109. package/dist/cli/index.d.ts.map +1 -0
  110. package/dist/cli/index.js +206 -0
  111. package/dist/cli/index.js.map +1 -0
  112. package/dist/cli/lib/agent-card-schema.d.ts +8 -0
  113. package/dist/cli/lib/agent-card-schema.d.ts.map +1 -0
  114. package/dist/cli/lib/agent-card-schema.js +169 -0
  115. package/dist/cli/lib/agent-card-schema.js.map +1 -0
  116. package/dist/cli/lib/ai-rest.d.ts +12 -0
  117. package/dist/cli/lib/ai-rest.d.ts.map +1 -0
  118. package/dist/cli/lib/ai-rest.js +36 -0
  119. package/dist/cli/lib/ai-rest.js.map +1 -0
  120. package/dist/cli/lib/args.d.ts +33 -0
  121. package/dist/cli/lib/args.d.ts.map +1 -0
  122. package/dist/cli/lib/args.js +24 -0
  123. package/dist/cli/lib/args.js.map +1 -0
  124. package/dist/cli/lib/authhub.d.ts +7 -0
  125. package/dist/cli/lib/authhub.d.ts.map +1 -0
  126. package/dist/cli/lib/authhub.js +210 -0
  127. package/dist/cli/lib/authhub.js.map +1 -0
  128. package/dist/cli/lib/chain.d.ts +264 -0
  129. package/dist/cli/lib/chain.d.ts.map +1 -0
  130. package/dist/cli/lib/chain.js +584 -0
  131. package/dist/cli/lib/chain.js.map +1 -0
  132. package/dist/cli/lib/devvars.d.ts +59 -0
  133. package/dist/cli/lib/devvars.d.ts.map +1 -0
  134. package/dist/cli/lib/devvars.js +206 -0
  135. package/dist/cli/lib/devvars.js.map +1 -0
  136. package/dist/cli/lib/engine.d.ts +54 -0
  137. package/dist/cli/lib/engine.d.ts.map +1 -0
  138. package/dist/cli/lib/engine.js +112 -0
  139. package/dist/cli/lib/engine.js.map +1 -0
  140. package/dist/cli/lib/identity-cards.d.ts +188 -0
  141. package/dist/cli/lib/identity-cards.d.ts.map +1 -0
  142. package/dist/cli/lib/identity-cards.js +261 -0
  143. package/dist/cli/lib/identity-cards.js.map +1 -0
  144. package/dist/cli/lib/matrix-account.d.ts +79 -0
  145. package/dist/cli/lib/matrix-account.d.ts.map +1 -0
  146. package/dist/cli/lib/matrix-account.js +228 -0
  147. package/dist/cli/lib/matrix-account.js.map +1 -0
  148. package/dist/cli/lib/oracle-account.d.ts +108 -0
  149. package/dist/cli/lib/oracle-account.d.ts.map +1 -0
  150. package/dist/cli/lib/oracle-account.js +207 -0
  151. package/dist/cli/lib/oracle-account.js.map +1 -0
  152. package/dist/cli/lib/project.d.ts +22 -0
  153. package/dist/cli/lib/project.d.ts.map +1 -0
  154. package/dist/cli/lib/project.js +62 -0
  155. package/dist/cli/lib/project.js.map +1 -0
  156. package/dist/cli/lib/session.d.ts +109 -0
  157. package/dist/cli/lib/session.d.ts.map +1 -0
  158. package/dist/cli/lib/session.js +354 -0
  159. package/dist/cli/lib/session.js.map +1 -0
  160. package/dist/cli/lib/workorder.d.ts +57 -0
  161. package/dist/cli/lib/workorder.d.ts.map +1 -0
  162. package/dist/cli/lib/workorder.js +101 -0
  163. package/dist/cli/lib/workorder.js.map +1 -0
  164. package/dist/config.d.ts +221 -0
  165. package/dist/config.d.ts.map +1 -0
  166. package/dist/config.js +431 -0
  167. package/dist/config.js.map +1 -0
  168. package/dist/context.d.ts +88 -0
  169. package/dist/context.d.ts.map +1 -0
  170. package/dist/context.js +9 -0
  171. package/dist/context.js.map +1 -0
  172. package/dist/contracts/api.d.ts +3367 -0
  173. package/dist/contracts/api.d.ts.map +1 -0
  174. package/dist/contracts/api.js +1303 -0
  175. package/dist/contracts/api.js.map +1 -0
  176. package/dist/contracts/capabilities.d.ts +126 -0
  177. package/dist/contracts/capabilities.d.ts.map +1 -0
  178. package/dist/contracts/capabilities.js +164 -0
  179. package/dist/contracts/capabilities.js.map +1 -0
  180. package/dist/contracts/claim-source.d.ts +98 -0
  181. package/dist/contracts/claim-source.d.ts.map +1 -0
  182. package/dist/contracts/claim-source.js +17 -0
  183. package/dist/contracts/claim-source.js.map +1 -0
  184. package/dist/contracts/errors.d.ts +150 -0
  185. package/dist/contracts/errors.d.ts.map +1 -0
  186. package/dist/contracts/errors.js +121 -0
  187. package/dist/contracts/errors.js.map +1 -0
  188. package/dist/contracts/index.d.ts +15 -0
  189. package/dist/contracts/index.d.ts.map +1 -0
  190. package/dist/contracts/index.js +11 -0
  191. package/dist/contracts/index.js.map +1 -0
  192. package/dist/contracts/payment-gate.d.ts +129 -0
  193. package/dist/contracts/payment-gate.d.ts.map +1 -0
  194. package/dist/contracts/payment-gate.js +24 -0
  195. package/dist/contracts/payment-gate.js.map +1 -0
  196. package/dist/contracts/start-api-claim.d.ts +90 -0
  197. package/dist/contracts/start-api-claim.d.ts.map +1 -0
  198. package/dist/contracts/start-api-claim.js +22 -0
  199. package/dist/contracts/start-api-claim.js.map +1 -0
  200. package/dist/contracts/webhooks.d.ts +1487 -0
  201. package/dist/contracts/webhooks.d.ts.map +1 -0
  202. package/dist/contracts/webhooks.js +71 -0
  203. package/dist/contracts/webhooks.js.map +1 -0
  204. package/dist/contracts/work-order.d.ts +29 -0
  205. package/dist/contracts/work-order.d.ts.map +1 -0
  206. package/dist/contracts/work-order.js +12 -0
  207. package/dist/contracts/work-order.js.map +1 -0
  208. package/dist/cron/ai-cost.d.ts +29 -0
  209. package/dist/cron/ai-cost.d.ts.map +1 -0
  210. package/dist/cron/ai-cost.js +80 -0
  211. package/dist/cron/ai-cost.js.map +1 -0
  212. package/dist/cron/api-lane.d.ts +39 -0
  213. package/dist/cron/api-lane.d.ts.map +1 -0
  214. package/dist/cron/api-lane.js +203 -0
  215. package/dist/cron/api-lane.js.map +1 -0
  216. package/dist/cron/backlog.d.ts +50 -0
  217. package/dist/cron/backlog.d.ts.map +1 -0
  218. package/dist/cron/backlog.js +115 -0
  219. package/dist/cron/backlog.js.map +1 -0
  220. package/dist/cron/billing.d.ts +11 -0
  221. package/dist/cron/billing.d.ts.map +1 -0
  222. package/dist/cron/billing.js +69 -0
  223. package/dist/cron/billing.js.map +1 -0
  224. package/dist/cron/collection.d.ts +50 -0
  225. package/dist/cron/collection.d.ts.map +1 -0
  226. package/dist/cron/collection.js +118 -0
  227. package/dist/cron/collection.js.map +1 -0
  228. package/dist/cron/funding.d.ts +16 -0
  229. package/dist/cron/funding.d.ts.map +1 -0
  230. package/dist/cron/funding.js +262 -0
  231. package/dist/cron/funding.js.map +1 -0
  232. package/dist/cron/payer-billing.d.ts +38 -0
  233. package/dist/cron/payer-billing.d.ts.map +1 -0
  234. package/dist/cron/payer-billing.js +119 -0
  235. package/dist/cron/payer-billing.js.map +1 -0
  236. package/dist/cron/scan.d.ts +43 -0
  237. package/dist/cron/scan.d.ts.map +1 -0
  238. package/dist/cron/scan.js +250 -0
  239. package/dist/cron/scan.js.map +1 -0
  240. package/dist/db/client.d.ts +14 -0
  241. package/dist/db/client.d.ts.map +1 -0
  242. package/dist/db/client.js +14 -0
  243. package/dist/db/client.js.map +1 -0
  244. package/dist/db/index.d.ts +7 -0
  245. package/dist/db/index.d.ts.map +1 -0
  246. package/dist/db/index.js +7 -0
  247. package/dist/db/index.js.map +1 -0
  248. package/dist/db/schema.d.ts +6738 -0
  249. package/dist/db/schema.d.ts.map +1 -0
  250. package/dist/db/schema.js +1433 -0
  251. package/dist/db/schema.js.map +1 -0
  252. package/dist/define-oracle.d.ts +32 -0
  253. package/dist/define-oracle.d.ts.map +1 -0
  254. package/dist/define-oracle.js +80 -0
  255. package/dist/define-oracle.js.map +1 -0
  256. package/dist/dev-oracle.d.ts +9 -0
  257. package/dist/dev-oracle.d.ts.map +1 -0
  258. package/dist/dev-oracle.js +19 -0
  259. package/dist/dev-oracle.js.map +1 -0
  260. package/dist/dev-worker.d.ts +10 -0
  261. package/dist/dev-worker.d.ts.map +1 -0
  262. package/dist/dev-worker.js +12 -0
  263. package/dist/dev-worker.js.map +1 -0
  264. package/dist/env.d.ts +146 -0
  265. package/dist/env.d.ts.map +1 -0
  266. package/dist/env.js +10 -0
  267. package/dist/env.js.map +1 -0
  268. package/dist/facts/exif.d.ts +43 -0
  269. package/dist/facts/exif.d.ts.map +1 -0
  270. package/dist/facts/exif.js +224 -0
  271. package/dist/facts/exif.js.map +1 -0
  272. package/dist/facts/fact.d.ts +62 -0
  273. package/dist/facts/fact.d.ts.map +1 -0
  274. package/dist/facts/fact.js +105 -0
  275. package/dist/facts/fact.js.map +1 -0
  276. package/dist/facts/geo.d.ts +55 -0
  277. package/dist/facts/geo.d.ts.map +1 -0
  278. package/dist/facts/geo.js +267 -0
  279. package/dist/facts/geo.js.map +1 -0
  280. package/dist/facts/index.d.ts +31 -0
  281. package/dist/facts/index.d.ts.map +1 -0
  282. package/dist/facts/index.js +27 -0
  283. package/dist/facts/index.js.map +1 -0
  284. package/dist/facts/linked-doc.d.ts +60 -0
  285. package/dist/facts/linked-doc.d.ts.map +1 -0
  286. package/dist/facts/linked-doc.js +101 -0
  287. package/dist/facts/linked-doc.js.map +1 -0
  288. package/dist/facts/types.d.ts +278 -0
  289. package/dist/facts/types.d.ts.map +1 -0
  290. package/dist/facts/types.js +19 -0
  291. package/dist/facts/types.js.map +1 -0
  292. package/dist/index.d.ts +25 -0
  293. package/dist/index.d.ts.map +1 -0
  294. package/dist/index.js +19 -0
  295. package/dist/index.js.map +1 -0
  296. package/dist/lib/api-lane/accept.d.ts +29 -0
  297. package/dist/lib/api-lane/accept.d.ts.map +1 -0
  298. package/dist/lib/api-lane/accept.js +218 -0
  299. package/dist/lib/api-lane/accept.js.map +1 -0
  300. package/dist/lib/api-lane/claim-list.d.ts +44 -0
  301. package/dist/lib/api-lane/claim-list.d.ts.map +1 -0
  302. package/dist/lib/api-lane/claim-list.js +92 -0
  303. package/dist/lib/api-lane/claim-list.js.map +1 -0
  304. package/dist/lib/api-lane/company.d.ts +56 -0
  305. package/dist/lib/api-lane/company.d.ts.map +1 -0
  306. package/dist/lib/api-lane/company.js +103 -0
  307. package/dist/lib/api-lane/company.js.map +1 -0
  308. package/dist/lib/api-lane/events.d.ts +21 -0
  309. package/dist/lib/api-lane/events.d.ts.map +1 -0
  310. package/dist/lib/api-lane/events.js +111 -0
  311. package/dist/lib/api-lane/events.js.map +1 -0
  312. package/dist/lib/api-lane/ids.d.ts +39 -0
  313. package/dist/lib/api-lane/ids.d.ts.map +1 -0
  314. package/dist/lib/api-lane/ids.js +78 -0
  315. package/dist/lib/api-lane/ids.js.map +1 -0
  316. package/dist/lib/api-lane/index.d.ts +16 -0
  317. package/dist/lib/api-lane/index.d.ts.map +1 -0
  318. package/dist/lib/api-lane/index.js +16 -0
  319. package/dist/lib/api-lane/index.js.map +1 -0
  320. package/dist/lib/api-lane/linked.d.ts +264 -0
  321. package/dist/lib/api-lane/linked.d.ts.map +1 -0
  322. package/dist/lib/api-lane/linked.js +272 -0
  323. package/dist/lib/api-lane/linked.js.map +1 -0
  324. package/dist/lib/api-lane/media-type.d.ts +15 -0
  325. package/dist/lib/api-lane/media-type.d.ts.map +1 -0
  326. package/dist/lib/api-lane/media-type.js +73 -0
  327. package/dist/lib/api-lane/media-type.js.map +1 -0
  328. package/dist/lib/api-lane/member-emails.d.ts +83 -0
  329. package/dist/lib/api-lane/member-emails.d.ts.map +1 -0
  330. package/dist/lib/api-lane/member-emails.js +213 -0
  331. package/dist/lib/api-lane/member-emails.js.map +1 -0
  332. package/dist/lib/api-lane/members.d.ts +42 -0
  333. package/dist/lib/api-lane/members.d.ts.map +1 -0
  334. package/dist/lib/api-lane/members.js +75 -0
  335. package/dist/lib/api-lane/members.js.map +1 -0
  336. package/dist/lib/api-lane/notify.d.ts +47 -0
  337. package/dist/lib/api-lane/notify.d.ts.map +1 -0
  338. package/dist/lib/api-lane/notify.js +240 -0
  339. package/dist/lib/api-lane/notify.js.map +1 -0
  340. package/dist/lib/api-lane/pause.d.ts +41 -0
  341. package/dist/lib/api-lane/pause.d.ts.map +1 -0
  342. package/dist/lib/api-lane/pause.js +155 -0
  343. package/dist/lib/api-lane/pause.js.map +1 -0
  344. package/dist/lib/api-lane/record.d.ts +76 -0
  345. package/dist/lib/api-lane/record.d.ts.map +1 -0
  346. package/dist/lib/api-lane/record.js +337 -0
  347. package/dist/lib/api-lane/record.js.map +1 -0
  348. package/dist/lib/api-lane/retention.d.ts +43 -0
  349. package/dist/lib/api-lane/retention.d.ts.map +1 -0
  350. package/dist/lib/api-lane/retention.js +176 -0
  351. package/dist/lib/api-lane/retention.js.map +1 -0
  352. package/dist/lib/api-lane/review.d.ts +76 -0
  353. package/dist/lib/api-lane/review.d.ts.map +1 -0
  354. package/dist/lib/api-lane/review.js +355 -0
  355. package/dist/lib/api-lane/review.js.map +1 -0
  356. package/dist/lib/api-lane/reviewers.d.ts +109 -0
  357. package/dist/lib/api-lane/reviewers.d.ts.map +1 -0
  358. package/dist/lib/api-lane/reviewers.js +755 -0
  359. package/dist/lib/api-lane/reviewers.js.map +1 -0
  360. package/dist/lib/api-lane/source-delete.d.ts +16 -0
  361. package/dist/lib/api-lane/source-delete.d.ts.map +1 -0
  362. package/dist/lib/api-lane/source-delete.js +50 -0
  363. package/dist/lib/api-lane/source-delete.js.map +1 -0
  364. package/dist/lib/api-lane/source.d.ts +19 -0
  365. package/dist/lib/api-lane/source.d.ts.map +1 -0
  366. package/dist/lib/api-lane/source.js +226 -0
  367. package/dist/lib/api-lane/source.js.map +1 -0
  368. package/dist/lib/api-lane/submitter.d.ts +22 -0
  369. package/dist/lib/api-lane/submitter.d.ts.map +1 -0
  370. package/dist/lib/api-lane/submitter.js +34 -0
  371. package/dist/lib/api-lane/submitter.js.map +1 -0
  372. package/dist/lib/api-lane/timeline.d.ts +20 -0
  373. package/dist/lib/api-lane/timeline.d.ts.map +1 -0
  374. package/dist/lib/api-lane/timeline.js +23 -0
  375. package/dist/lib/api-lane/timeline.js.map +1 -0
  376. package/dist/lib/api-lane/webhook-crypto.d.ts +44 -0
  377. package/dist/lib/api-lane/webhook-crypto.d.ts.map +1 -0
  378. package/dist/lib/api-lane/webhook-crypto.js +103 -0
  379. package/dist/lib/api-lane/webhook-crypto.js.map +1 -0
  380. package/dist/lib/api-lane/webhooks.d.ts +117 -0
  381. package/dist/lib/api-lane/webhooks.d.ts.map +1 -0
  382. package/dist/lib/api-lane/webhooks.js +503 -0
  383. package/dist/lib/api-lane/webhooks.js.map +1 -0
  384. package/dist/lib/archive.d.ts +64 -0
  385. package/dist/lib/archive.d.ts.map +1 -0
  386. package/dist/lib/archive.js +305 -0
  387. package/dist/lib/archive.js.map +1 -0
  388. package/dist/lib/bech32.d.ts +8 -0
  389. package/dist/lib/bech32.d.ts.map +1 -0
  390. package/dist/lib/bech32.js +39 -0
  391. package/dist/lib/bech32.js.map +1 -0
  392. package/dist/lib/claim-erase.d.ts +22 -0
  393. package/dist/lib/claim-erase.d.ts.map +1 -0
  394. package/dist/lib/claim-erase.js +44 -0
  395. package/dist/lib/claim-erase.js.map +1 -0
  396. package/dist/lib/cursor.d.ts +11 -0
  397. package/dist/lib/cursor.d.ts.map +1 -0
  398. package/dist/lib/cursor.js +20 -0
  399. package/dist/lib/cursor.js.map +1 -0
  400. package/dist/lib/email/send.d.ts +43 -0
  401. package/dist/lib/email/send.d.ts.map +1 -0
  402. package/dist/lib/email/send.js +71 -0
  403. package/dist/lib/email/send.js.map +1 -0
  404. package/dist/lib/email/template.d.ts +217 -0
  405. package/dist/lib/email/template.d.ts.map +1 -0
  406. package/dist/lib/email/template.js +713 -0
  407. package/dist/lib/email/template.js.map +1 -0
  408. package/dist/lib/engine/adr36.d.ts +56 -0
  409. package/dist/lib/engine/adr36.d.ts.map +1 -0
  410. package/dist/lib/engine/adr36.js +76 -0
  411. package/dist/lib/engine/adr36.js.map +1 -0
  412. package/dist/lib/engine/client.d.ts +162 -0
  413. package/dist/lib/engine/client.d.ts.map +1 -0
  414. package/dist/lib/engine/client.js +473 -0
  415. package/dist/lib/engine/client.js.map +1 -0
  416. package/dist/lib/engine/types.d.ts +1356 -0
  417. package/dist/lib/engine/types.d.ts.map +1 -0
  418. package/dist/lib/engine/types.js +562 -0
  419. package/dist/lib/engine/types.js.map +1 -0
  420. package/dist/lib/errors.d.ts +73 -0
  421. package/dist/lib/errors.d.ts.map +1 -0
  422. package/dist/lib/errors.js +96 -0
  423. package/dist/lib/errors.js.map +1 -0
  424. package/dist/lib/facts/builder.d.ts +88 -0
  425. package/dist/lib/facts/builder.d.ts.map +1 -0
  426. package/dist/lib/facts/builder.js +239 -0
  427. package/dist/lib/facts/builder.js.map +1 -0
  428. package/dist/lib/facts/ctx.d.ts +34 -0
  429. package/dist/lib/facts/ctx.d.ts.map +1 -0
  430. package/dist/lib/facts/ctx.js +51 -0
  431. package/dist/lib/facts/ctx.js.map +1 -0
  432. package/dist/lib/facts/expected.d.ts +23 -0
  433. package/dist/lib/facts/expected.d.ts.map +1 -0
  434. package/dist/lib/facts/expected.js +16 -0
  435. package/dist/lib/facts/expected.js.map +1 -0
  436. package/dist/lib/facts/fact-cache.d.ts +469 -0
  437. package/dist/lib/facts/fact-cache.d.ts.map +1 -0
  438. package/dist/lib/facts/fact-cache.js +52 -0
  439. package/dist/lib/facts/fact-cache.js.map +1 -0
  440. package/dist/lib/facts/factset.d.ts +608 -0
  441. package/dist/lib/facts/factset.d.ts.map +1 -0
  442. package/dist/lib/facts/factset.js +226 -0
  443. package/dist/lib/facts/factset.js.map +1 -0
  444. package/dist/lib/facts/producer.d.ts +190 -0
  445. package/dist/lib/facts/producer.d.ts.map +1 -0
  446. package/dist/lib/facts/producer.js +15 -0
  447. package/dist/lib/facts/producer.js.map +1 -0
  448. package/dist/lib/facts/runner.d.ts +111 -0
  449. package/dist/lib/facts/runner.d.ts.map +1 -0
  450. package/dist/lib/facts/runner.js +438 -0
  451. package/dist/lib/facts/runner.js.map +1 -0
  452. package/dist/lib/facts/stock/ai-check.d.ts +100 -0
  453. package/dist/lib/facts/stock/ai-check.d.ts.map +1 -0
  454. package/dist/lib/facts/stock/ai-check.js +526 -0
  455. package/dist/lib/facts/stock/ai-check.js.map +1 -0
  456. package/dist/lib/facts/stock/ai-inputs.d.ts +104 -0
  457. package/dist/lib/facts/stock/ai-inputs.d.ts.map +1 -0
  458. package/dist/lib/facts/stock/ai-inputs.js +332 -0
  459. package/dist/lib/facts/stock/ai-inputs.js.map +1 -0
  460. package/dist/lib/facts/stock/ai-provider.d.ts +105 -0
  461. package/dist/lib/facts/stock/ai-provider.d.ts.map +1 -0
  462. package/dist/lib/facts/stock/ai-provider.js +250 -0
  463. package/dist/lib/facts/stock/ai-provider.js.map +1 -0
  464. package/dist/lib/facts/stock/ai-unique.d.ts +85 -0
  465. package/dist/lib/facts/stock/ai-unique.d.ts.map +1 -0
  466. package/dist/lib/facts/stock/ai-unique.js +208 -0
  467. package/dist/lib/facts/stock/ai-unique.js.map +1 -0
  468. package/dist/lib/facts/stock/archive.d.ts +63 -0
  469. package/dist/lib/facts/stock/archive.d.ts.map +1 -0
  470. package/dist/lib/facts/stock/archive.js +349 -0
  471. package/dist/lib/facts/stock/archive.js.map +1 -0
  472. package/dist/lib/facts/stock/c2pa-trust-list.d.ts +16 -0
  473. package/dist/lib/facts/stock/c2pa-trust-list.d.ts.map +1 -0
  474. package/dist/lib/facts/stock/c2pa-trust-list.js +637 -0
  475. package/dist/lib/facts/stock/c2pa-trust-list.js.map +1 -0
  476. package/dist/lib/facts/stock/c2pa.d.ts +56 -0
  477. package/dist/lib/facts/stock/c2pa.d.ts.map +1 -0
  478. package/dist/lib/facts/stock/c2pa.js +234 -0
  479. package/dist/lib/facts/stock/c2pa.js.map +1 -0
  480. package/dist/lib/facts/stock/call.d.ts +91 -0
  481. package/dist/lib/facts/stock/call.d.ts.map +1 -0
  482. package/dist/lib/facts/stock/call.js +281 -0
  483. package/dist/lib/facts/stock/call.js.map +1 -0
  484. package/dist/lib/facts/stock/capability.d.ts +39 -0
  485. package/dist/lib/facts/stock/capability.d.ts.map +1 -0
  486. package/dist/lib/facts/stock/capability.js +59 -0
  487. package/dist/lib/facts/stock/capability.js.map +1 -0
  488. package/dist/lib/facts/stock/ext-source.d.ts +51 -0
  489. package/dist/lib/facts/stock/ext-source.d.ts.map +1 -0
  490. package/dist/lib/facts/stock/ext-source.js +201 -0
  491. package/dist/lib/facts/stock/ext-source.js.map +1 -0
  492. package/dist/lib/facts/stock/frequency-fact.d.ts +59 -0
  493. package/dist/lib/facts/stock/frequency-fact.d.ts.map +1 -0
  494. package/dist/lib/facts/stock/frequency-fact.js +86 -0
  495. package/dist/lib/facts/stock/frequency-fact.js.map +1 -0
  496. package/dist/lib/facts/stock/frequency.d.ts +32 -0
  497. package/dist/lib/facts/stock/frequency.d.ts.map +1 -0
  498. package/dist/lib/facts/stock/frequency.js +48 -0
  499. package/dist/lib/facts/stock/frequency.js.map +1 -0
  500. package/dist/lib/facts/stock/index.d.ts +27 -0
  501. package/dist/lib/facts/stock/index.d.ts.map +1 -0
  502. package/dist/lib/facts/stock/index.js +28 -0
  503. package/dist/lib/facts/stock/index.js.map +1 -0
  504. package/dist/lib/facts/stock/normalize.d.ts +45 -0
  505. package/dist/lib/facts/stock/normalize.d.ts.map +1 -0
  506. package/dist/lib/facts/stock/normalize.js +135 -0
  507. package/dist/lib/facts/stock/normalize.js.map +1 -0
  508. package/dist/lib/facts/stock/phash.d.ts +55 -0
  509. package/dist/lib/facts/stock/phash.d.ts.map +1 -0
  510. package/dist/lib/facts/stock/phash.js +256 -0
  511. package/dist/lib/facts/stock/phash.js.map +1 -0
  512. package/dist/lib/facts/stock/rule-defaults.d.ts +72 -0
  513. package/dist/lib/facts/stock/rule-defaults.d.ts.map +1 -0
  514. package/dist/lib/facts/stock/rule-defaults.js +55 -0
  515. package/dist/lib/facts/stock/rule-defaults.js.map +1 -0
  516. package/dist/lib/facts/stock/send.d.ts +52 -0
  517. package/dist/lib/facts/stock/send.d.ts.map +1 -0
  518. package/dist/lib/facts/stock/send.js +148 -0
  519. package/dist/lib/facts/stock/send.js.map +1 -0
  520. package/dist/lib/facts/stock/unique-score.d.ts +138 -0
  521. package/dist/lib/facts/stock/unique-score.d.ts.map +1 -0
  522. package/dist/lib/facts/stock/unique-score.js +257 -0
  523. package/dist/lib/facts/stock/unique-score.js.map +1 -0
  524. package/dist/lib/facts/stock/unique-store.d.ts +420 -0
  525. package/dist/lib/facts/stock/unique-store.d.ts.map +1 -0
  526. package/dist/lib/facts/stock/unique-store.js +328 -0
  527. package/dist/lib/facts/stock/unique-store.js.map +1 -0
  528. package/dist/lib/facts/stock/unique.d.ts +35 -0
  529. package/dist/lib/facts/stock/unique.d.ts.map +1 -0
  530. package/dist/lib/facts/stock/unique.js +327 -0
  531. package/dist/lib/facts/stock/unique.js.map +1 -0
  532. package/dist/lib/facts/tools.d.ts +57 -0
  533. package/dist/lib/facts/tools.d.ts.map +1 -0
  534. package/dist/lib/facts/tools.js +325 -0
  535. package/dist/lib/facts/tools.js.map +1 -0
  536. package/dist/lib/facts/validate.d.ts +33 -0
  537. package/dist/lib/facts/validate.d.ts.map +1 -0
  538. package/dist/lib/facts/validate.js +137 -0
  539. package/dist/lib/facts/validate.js.map +1 -0
  540. package/dist/lib/hash.d.ts +44 -0
  541. package/dist/lib/hash.d.ts.map +1 -0
  542. package/dist/lib/hash.js +80 -0
  543. package/dist/lib/hash.js.map +1 -0
  544. package/dist/lib/http/client.d.ts +113 -0
  545. package/dist/lib/http/client.d.ts.map +1 -0
  546. package/dist/lib/http/client.js +330 -0
  547. package/dist/lib/http/client.js.map +1 -0
  548. package/dist/lib/ids.d.ts +17 -0
  549. package/dist/lib/ids.d.ts.map +1 -0
  550. package/dist/lib/ids.js +26 -0
  551. package/dist/lib/ids.js.map +1 -0
  552. package/dist/lib/ixo/attachments.d.ts +116 -0
  553. package/dist/lib/ixo/attachments.d.ts.map +1 -0
  554. package/dist/lib/ixo/attachments.js +290 -0
  555. package/dist/lib/ixo/attachments.js.map +1 -0
  556. package/dist/lib/ixo/authz.d.ts +40 -0
  557. package/dist/lib/ixo/authz.d.ts.map +1 -0
  558. package/dist/lib/ixo/authz.js +113 -0
  559. package/dist/lib/ixo/authz.js.map +1 -0
  560. package/dist/lib/ixo/blocksync/index.d.ts +90 -0
  561. package/dist/lib/ixo/blocksync/index.d.ts.map +1 -0
  562. package/dist/lib/ixo/blocksync/index.js +251 -0
  563. package/dist/lib/ixo/blocksync/index.js.map +1 -0
  564. package/dist/lib/ixo/blocksync/queries.d.ts +15 -0
  565. package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -0
  566. package/dist/lib/ixo/blocksync/queries.js +144 -0
  567. package/dist/lib/ixo/blocksync/queries.js.map +1 -0
  568. package/dist/lib/ixo/blocksync/types.d.ts +184 -0
  569. package/dist/lib/ixo/blocksync/types.d.ts.map +1 -0
  570. package/dist/lib/ixo/blocksync/types.js +108 -0
  571. package/dist/lib/ixo/blocksync/types.js.map +1 -0
  572. package/dist/lib/ixo/cellnode.d.ts +35 -0
  573. package/dist/lib/ixo/cellnode.d.ts.map +1 -0
  574. package/dist/lib/ixo/cellnode.js +43 -0
  575. package/dist/lib/ixo/cellnode.js.map +1 -0
  576. package/dist/lib/ixo/chain-write.d.ts +130 -0
  577. package/dist/lib/ixo/chain-write.d.ts.map +1 -0
  578. package/dist/lib/ixo/chain-write.js +460 -0
  579. package/dist/lib/ixo/chain-write.js.map +1 -0
  580. package/dist/lib/ixo/chain.d.ts +1046 -0
  581. package/dist/lib/ixo/chain.d.ts.map +1 -0
  582. package/dist/lib/ixo/chain.js +279 -0
  583. package/dist/lib/ixo/chain.js.map +1 -0
  584. package/dist/lib/ixo/claim-bot.d.ts +49 -0
  585. package/dist/lib/ixo/claim-bot.d.ts.map +1 -0
  586. package/dist/lib/ixo/claim-bot.js +141 -0
  587. package/dist/lib/ixo/claim-bot.js.map +1 -0
  588. package/dist/lib/ixo/delegation-verify.d.ts +44 -0
  589. package/dist/lib/ixo/delegation-verify.d.ts.map +1 -0
  590. package/dist/lib/ixo/delegation-verify.js +101 -0
  591. package/dist/lib/ixo/delegation-verify.js.map +1 -0
  592. package/dist/lib/ixo/did.d.ts +13 -0
  593. package/dist/lib/ixo/did.d.ts.map +1 -0
  594. package/dist/lib/ixo/did.js +85 -0
  595. package/dist/lib/ixo/did.js.map +1 -0
  596. package/dist/lib/ixo/grant-chain.d.ts +55 -0
  597. package/dist/lib/ixo/grant-chain.d.ts.map +1 -0
  598. package/dist/lib/ixo/grant-chain.js +185 -0
  599. package/dist/lib/ixo/grant-chain.js.map +1 -0
  600. package/dist/lib/ixo/identity.d.ts +32 -0
  601. package/dist/lib/ixo/identity.d.ts.map +1 -0
  602. package/dist/lib/ixo/identity.js +104 -0
  603. package/dist/lib/ixo/identity.js.map +1 -0
  604. package/dist/lib/ixo/index.d.ts +118 -0
  605. package/dist/lib/ixo/index.d.ts.map +1 -0
  606. package/dist/lib/ixo/index.js +395 -0
  607. package/dist/lib/ixo/index.js.map +1 -0
  608. package/dist/lib/ixo/payment.d.ts +104 -0
  609. package/dist/lib/ixo/payment.d.ts.map +1 -0
  610. package/dist/lib/ixo/payment.js +136 -0
  611. package/dist/lib/ixo/payment.js.map +1 -0
  612. package/dist/lib/ixo/ucan-store.d.ts +30 -0
  613. package/dist/lib/ixo/ucan-store.d.ts.map +1 -0
  614. package/dist/lib/ixo/ucan-store.js +134 -0
  615. package/dist/lib/ixo/ucan-store.js.map +1 -0
  616. package/dist/lib/ixo/ucan.d.ts +96 -0
  617. package/dist/lib/ixo/ucan.d.ts.map +1 -0
  618. package/dist/lib/ixo/ucan.js +216 -0
  619. package/dist/lib/ixo/ucan.js.map +1 -0
  620. package/dist/lib/ixo/verified-read.d.ts +43 -0
  621. package/dist/lib/ixo/verified-read.d.ts.map +1 -0
  622. package/dist/lib/ixo/verified-read.js +73 -0
  623. package/dist/lib/ixo/verified-read.js.map +1 -0
  624. package/dist/lib/ixo/vfs.d.ts +27 -0
  625. package/dist/lib/ixo/vfs.d.ts.map +1 -0
  626. package/dist/lib/ixo/vfs.js +42 -0
  627. package/dist/lib/ixo/vfs.js.map +1 -0
  628. package/dist/lib/ixo/web-did.d.ts +7 -0
  629. package/dist/lib/ixo/web-did.d.ts.map +1 -0
  630. package/dist/lib/ixo/web-did.js +9 -0
  631. package/dist/lib/ixo/web-did.js.map +1 -0
  632. package/dist/lib/logger.d.ts +34 -0
  633. package/dist/lib/logger.d.ts.map +1 -0
  634. package/dist/lib/logger.js +126 -0
  635. package/dist/lib/logger.js.map +1 -0
  636. package/dist/lib/matrix/api.d.ts +57 -0
  637. package/dist/lib/matrix/api.d.ts.map +1 -0
  638. package/dist/lib/matrix/api.js +58 -0
  639. package/dist/lib/matrix/api.js.map +1 -0
  640. package/dist/lib/matrix/client.d.ts +41 -0
  641. package/dist/lib/matrix/client.d.ts.map +1 -0
  642. package/dist/lib/matrix/client.js +104 -0
  643. package/dist/lib/matrix/client.js.map +1 -0
  644. package/dist/lib/matrix/deliver.d.ts +224 -0
  645. package/dist/lib/matrix/deliver.d.ts.map +1 -0
  646. package/dist/lib/matrix/deliver.js +788 -0
  647. package/dist/lib/matrix/deliver.js.map +1 -0
  648. package/dist/lib/matrix/events.d.ts +114 -0
  649. package/dist/lib/matrix/events.d.ts.map +1 -0
  650. package/dist/lib/matrix/events.js +143 -0
  651. package/dist/lib/matrix/events.js.map +1 -0
  652. package/dist/lib/matrix/mxid.d.ts +24 -0
  653. package/dist/lib/matrix/mxid.d.ts.map +1 -0
  654. package/dist/lib/matrix/mxid.js +47 -0
  655. package/dist/lib/matrix/mxid.js.map +1 -0
  656. package/dist/lib/metrics.d.ts +105 -0
  657. package/dist/lib/metrics.d.ts.map +1 -0
  658. package/dist/lib/metrics.js +204 -0
  659. package/dist/lib/metrics.js.map +1 -0
  660. package/dist/lib/oauth/approvals.d.ts +160 -0
  661. package/dist/lib/oauth/approvals.d.ts.map +1 -0
  662. package/dist/lib/oauth/approvals.js +273 -0
  663. package/dist/lib/oauth/approvals.js.map +1 -0
  664. package/dist/lib/oauth/standing.d.ts +152 -0
  665. package/dist/lib/oauth/standing.d.ts.map +1 -0
  666. package/dist/lib/oauth/standing.js +299 -0
  667. package/dist/lib/oauth/standing.js.map +1 -0
  668. package/dist/lib/oauth/token.d.ts +60 -0
  669. package/dist/lib/oauth/token.d.ts.map +1 -0
  670. package/dist/lib/oauth/token.js +129 -0
  671. package/dist/lib/oauth/token.js.map +1 -0
  672. package/dist/lib/payments/extend.d.ts +42 -0
  673. package/dist/lib/payments/extend.d.ts.map +1 -0
  674. package/dist/lib/payments/extend.js +98 -0
  675. package/dist/lib/payments/extend.js.map +1 -0
  676. package/dist/lib/payments/facilitator.d.ts +220 -0
  677. package/dist/lib/payments/facilitator.d.ts.map +1 -0
  678. package/dist/lib/payments/facilitator.js +451 -0
  679. package/dist/lib/payments/facilitator.js.map +1 -0
  680. package/dist/lib/payments/gate.d.ts +207 -0
  681. package/dist/lib/payments/gate.d.ts.map +1 -0
  682. package/dist/lib/payments/gate.js +481 -0
  683. package/dist/lib/payments/gate.js.map +1 -0
  684. package/dist/lib/payments/header-seal.d.ts +33 -0
  685. package/dist/lib/payments/header-seal.d.ts.map +1 -0
  686. package/dist/lib/payments/header-seal.js +76 -0
  687. package/dist/lib/payments/header-seal.js.map +1 -0
  688. package/dist/lib/payments/index.d.ts +12 -0
  689. package/dist/lib/payments/index.d.ts.map +1 -0
  690. package/dist/lib/payments/index.js +11 -0
  691. package/dist/lib/payments/index.js.map +1 -0
  692. package/dist/lib/payments/price.d.ts +25 -0
  693. package/dist/lib/payments/price.d.ts.map +1 -0
  694. package/dist/lib/payments/price.js +43 -0
  695. package/dist/lib/payments/price.js.map +1 -0
  696. package/dist/lib/payments/reconcile.d.ts +77 -0
  697. package/dist/lib/payments/reconcile.d.ts.map +1 -0
  698. package/dist/lib/payments/reconcile.js +317 -0
  699. package/dist/lib/payments/reconcile.js.map +1 -0
  700. package/dist/lib/payments/refund.d.ts +34 -0
  701. package/dist/lib/payments/refund.d.ts.map +1 -0
  702. package/dist/lib/payments/refund.js +123 -0
  703. package/dist/lib/payments/refund.js.map +1 -0
  704. package/dist/lib/payments/review-billing.d.ts +222 -0
  705. package/dist/lib/payments/review-billing.d.ts.map +1 -0
  706. package/dist/lib/payments/review-billing.js +609 -0
  707. package/dist/lib/payments/review-billing.js.map +1 -0
  708. package/dist/lib/payments/settle.d.ts +44 -0
  709. package/dist/lib/payments/settle.d.ts.map +1 -0
  710. package/dist/lib/payments/settle.js +306 -0
  711. package/dist/lib/payments/settle.js.map +1 -0
  712. package/dist/lib/payments/terms.d.ts +27 -0
  713. package/dist/lib/payments/terms.d.ts.map +1 -0
  714. package/dist/lib/payments/terms.js +21 -0
  715. package/dist/lib/payments/terms.js.map +1 -0
  716. package/dist/lib/payouts.d.ts +20 -0
  717. package/dist/lib/payouts.d.ts.map +1 -0
  718. package/dist/lib/payouts.js +30 -0
  719. package/dist/lib/payouts.js.map +1 -0
  720. package/dist/lib/readiness.d.ts +42 -0
  721. package/dist/lib/readiness.d.ts.map +1 -0
  722. package/dist/lib/readiness.js +130 -0
  723. package/dist/lib/readiness.js.map +1 -0
  724. package/dist/lib/redact.d.ts +23 -0
  725. package/dist/lib/redact.d.ts.map +1 -0
  726. package/dist/lib/redact.js +67 -0
  727. package/dist/lib/redact.js.map +1 -0
  728. package/dist/lib/register.d.ts +85 -0
  729. package/dist/lib/register.d.ts.map +1 -0
  730. package/dist/lib/register.js +390 -0
  731. package/dist/lib/register.js.map +1 -0
  732. package/dist/lib/review/attestation.d.ts +92 -0
  733. package/dist/lib/review/attestation.d.ts.map +1 -0
  734. package/dist/lib/review/attestation.js +264 -0
  735. package/dist/lib/review/attestation.js.map +1 -0
  736. package/dist/lib/review/reviewer-grant.d.ts +146 -0
  737. package/dist/lib/review/reviewer-grant.d.ts.map +1 -0
  738. package/dist/lib/review/reviewer-grant.js +359 -0
  739. package/dist/lib/review/reviewer-grant.js.map +1 -0
  740. package/dist/lib/review/tasks.d.ts +18 -0
  741. package/dist/lib/review/tasks.d.ts.map +1 -0
  742. package/dist/lib/review/tasks.js +36 -0
  743. package/dist/lib/review/tasks.js.map +1 -0
  744. package/dist/lib/sentry.d.ts +89 -0
  745. package/dist/lib/sentry.d.ts.map +1 -0
  746. package/dist/lib/sentry.js +284 -0
  747. package/dist/lib/sentry.js.map +1 -0
  748. package/dist/lib/spans.d.ts +14 -0
  749. package/dist/lib/spans.d.ts.map +1 -0
  750. package/dist/lib/spans.js +28 -0
  751. package/dist/lib/spans.js.map +1 -0
  752. package/dist/lib/tracing.d.ts +31 -0
  753. package/dist/lib/tracing.d.ts.map +1 -0
  754. package/dist/lib/tracing.js +66 -0
  755. package/dist/lib/tracing.js.map +1 -0
  756. package/dist/lib/ttl-cache.d.ts +26 -0
  757. package/dist/lib/ttl-cache.d.ts.map +1 -0
  758. package/dist/lib/ttl-cache.js +61 -0
  759. package/dist/lib/ttl-cache.js.map +1 -0
  760. package/dist/lib/validator.d.ts +19 -0
  761. package/dist/lib/validator.d.ts.map +1 -0
  762. package/dist/lib/validator.js +32 -0
  763. package/dist/lib/validator.js.map +1 -0
  764. package/dist/lib/work-order/form.d.ts +40 -0
  765. package/dist/lib/work-order/form.d.ts.map +1 -0
  766. package/dist/lib/work-order/form.js +316 -0
  767. package/dist/lib/work-order/form.js.map +1 -0
  768. package/dist/lib/work-order/index.d.ts +20 -0
  769. package/dist/lib/work-order/index.d.ts.map +1 -0
  770. package/dist/lib/work-order/index.js +66 -0
  771. package/dist/lib/work-order/index.js.map +1 -0
  772. package/dist/middleware/api/audit.d.ts +9 -0
  773. package/dist/middleware/api/audit.d.ts.map +1 -0
  774. package/dist/middleware/api/audit.js +38 -0
  775. package/dist/middleware/api/audit.js.map +1 -0
  776. package/dist/middleware/api/auth.d.ts +29 -0
  777. package/dist/middleware/api/auth.d.ts.map +1 -0
  778. package/dist/middleware/api/auth.js +105 -0
  779. package/dist/middleware/api/auth.js.map +1 -0
  780. package/dist/middleware/api/console.d.ts +92 -0
  781. package/dist/middleware/api/console.d.ts.map +1 -0
  782. package/dist/middleware/api/console.js +446 -0
  783. package/dist/middleware/api/console.js.map +1 -0
  784. package/dist/middleware/api/errors.d.ts +48 -0
  785. package/dist/middleware/api/errors.d.ts.map +1 -0
  786. package/dist/middleware/api/errors.js +133 -0
  787. package/dist/middleware/api/errors.js.map +1 -0
  788. package/dist/middleware/api/idempotency.d.ts +23 -0
  789. package/dist/middleware/api/idempotency.d.ts.map +1 -0
  790. package/dist/middleware/api/idempotency.js +158 -0
  791. package/dist/middleware/api/idempotency.js.map +1 -0
  792. package/dist/middleware/api/keys.d.ts +14 -0
  793. package/dist/middleware/api/keys.d.ts.map +1 -0
  794. package/dist/middleware/api/keys.js +66 -0
  795. package/dist/middleware/api/keys.js.map +1 -0
  796. package/dist/middleware/api/membership.d.ts +32 -0
  797. package/dist/middleware/api/membership.d.ts.map +1 -0
  798. package/dist/middleware/api/membership.js +48 -0
  799. package/dist/middleware/api/membership.js.map +1 -0
  800. package/dist/middleware/api/oauth.d.ts +28 -0
  801. package/dist/middleware/api/oauth.d.ts.map +1 -0
  802. package/dist/middleware/api/oauth.js +109 -0
  803. package/dist/middleware/api/oauth.js.map +1 -0
  804. package/dist/middleware/api/rate-limit.d.ts +23 -0
  805. package/dist/middleware/api/rate-limit.d.ts.map +1 -0
  806. package/dist/middleware/api/rate-limit.js +70 -0
  807. package/dist/middleware/api/rate-limit.js.map +1 -0
  808. package/dist/middleware/api/types.d.ts +92 -0
  809. package/dist/middleware/api/types.d.ts.map +1 -0
  810. package/dist/middleware/api/types.js +7 -0
  811. package/dist/middleware/api/types.js.map +1 -0
  812. package/dist/middleware/api/wait.d.ts +21 -0
  813. package/dist/middleware/api/wait.d.ts.map +1 -0
  814. package/dist/middleware/api/wait.js +85 -0
  815. package/dist/middleware/api/wait.js.map +1 -0
  816. package/dist/middleware/capability.d.ts +32 -0
  817. package/dist/middleware/capability.d.ts.map +1 -0
  818. package/dist/middleware/capability.js +113 -0
  819. package/dist/middleware/capability.js.map +1 -0
  820. package/dist/middleware/database.d.ts +14 -0
  821. package/dist/middleware/database.d.ts.map +1 -0
  822. package/dist/middleware/database.js +18 -0
  823. package/dist/middleware/database.js.map +1 -0
  824. package/dist/middleware/error-handler.d.ts +13 -0
  825. package/dist/middleware/error-handler.d.ts.map +1 -0
  826. package/dist/middleware/error-handler.js +127 -0
  827. package/dist/middleware/error-handler.js.map +1 -0
  828. package/dist/middleware/observability.d.ts +32 -0
  829. package/dist/middleware/observability.d.ts.map +1 -0
  830. package/dist/middleware/observability.js +134 -0
  831. package/dist/middleware/observability.js.map +1 -0
  832. package/dist/middleware/rate-limit.d.ts +16 -0
  833. package/dist/middleware/rate-limit.d.ts.map +1 -0
  834. package/dist/middleware/rate-limit.js +56 -0
  835. package/dist/middleware/rate-limit.js.map +1 -0
  836. package/dist/middleware/ucan-auth.d.ts +39 -0
  837. package/dist/middleware/ucan-auth.d.ts.map +1 -0
  838. package/dist/middleware/ucan-auth.js +278 -0
  839. package/dist/middleware/ucan-auth.js.map +1 -0
  840. package/dist/networks.d.ts +34 -0
  841. package/dist/networks.d.ts.map +1 -0
  842. package/dist/networks.js +49 -0
  843. package/dist/networks.js.map +1 -0
  844. package/dist/oracle.d.ts +193 -0
  845. package/dist/oracle.d.ts.map +1 -0
  846. package/dist/oracle.js +245 -0
  847. package/dist/oracle.js.map +1 -0
  848. package/dist/routes/health.d.ts +16 -0
  849. package/dist/routes/health.d.ts.map +1 -0
  850. package/dist/routes/health.js +29 -0
  851. package/dist/routes/health.js.map +1 -0
  852. package/dist/routes/v1/admin.d.ts +18 -0
  853. package/dist/routes/v1/admin.d.ts.map +1 -0
  854. package/dist/routes/v1/admin.js +101 -0
  855. package/dist/routes/v1/admin.js.map +1 -0
  856. package/dist/routes/v1/api/admin-claims.d.ts +14 -0
  857. package/dist/routes/v1/api/admin-claims.d.ts.map +1 -0
  858. package/dist/routes/v1/api/admin-claims.js +82 -0
  859. package/dist/routes/v1/api/admin-claims.js.map +1 -0
  860. package/dist/routes/v1/api/admin-facilitator.d.ts +20 -0
  861. package/dist/routes/v1/api/admin-facilitator.d.ts.map +1 -0
  862. package/dist/routes/v1/api/admin-facilitator.js +64 -0
  863. package/dist/routes/v1/api/admin-facilitator.js.map +1 -0
  864. package/dist/routes/v1/api/admin.d.ts +9 -0
  865. package/dist/routes/v1/api/admin.d.ts.map +1 -0
  866. package/dist/routes/v1/api/admin.js +110 -0
  867. package/dist/routes/v1/api/admin.js.map +1 -0
  868. package/dist/routes/v1/api/audit.d.ts +8 -0
  869. package/dist/routes/v1/api/audit.d.ts.map +1 -0
  870. package/dist/routes/v1/api/audit.js +56 -0
  871. package/dist/routes/v1/api/audit.js.map +1 -0
  872. package/dist/routes/v1/api/batch.d.ts +17 -0
  873. package/dist/routes/v1/api/batch.d.ts.map +1 -0
  874. package/dist/routes/v1/api/batch.js +192 -0
  875. package/dist/routes/v1/api/batch.js.map +1 -0
  876. package/dist/routes/v1/api/claims-read.d.ts +43 -0
  877. package/dist/routes/v1/api/claims-read.d.ts.map +1 -0
  878. package/dist/routes/v1/api/claims-read.js +123 -0
  879. package/dist/routes/v1/api/claims-read.js.map +1 -0
  880. package/dist/routes/v1/api/claims.d.ts +131 -0
  881. package/dist/routes/v1/api/claims.d.ts.map +1 -0
  882. package/dist/routes/v1/api/claims.js +407 -0
  883. package/dist/routes/v1/api/claims.js.map +1 -0
  884. package/dist/routes/v1/api/collections-link.d.ts +14 -0
  885. package/dist/routes/v1/api/collections-link.d.ts.map +1 -0
  886. package/dist/routes/v1/api/collections-link.js +97 -0
  887. package/dist/routes/v1/api/collections-link.js.map +1 -0
  888. package/dist/routes/v1/api/export.d.ts +48 -0
  889. package/dist/routes/v1/api/export.d.ts.map +1 -0
  890. package/dist/routes/v1/api/export.js +251 -0
  891. package/dist/routes/v1/api/export.js.map +1 -0
  892. package/dist/routes/v1/api/index.d.ts +16 -0
  893. package/dist/routes/v1/api/index.d.ts.map +1 -0
  894. package/dist/routes/v1/api/index.js +68 -0
  895. package/dist/routes/v1/api/index.js.map +1 -0
  896. package/dist/routes/v1/api/keys.d.ts +9 -0
  897. package/dist/routes/v1/api/keys.d.ts.map +1 -0
  898. package/dist/routes/v1/api/keys.js +95 -0
  899. package/dist/routes/v1/api/keys.js.map +1 -0
  900. package/dist/routes/v1/api/me.d.ts +21 -0
  901. package/dist/routes/v1/api/me.d.ts.map +1 -0
  902. package/dist/routes/v1/api/me.js +122 -0
  903. package/dist/routes/v1/api/me.js.map +1 -0
  904. package/dist/routes/v1/api/members.d.ts +17 -0
  905. package/dist/routes/v1/api/members.d.ts.map +1 -0
  906. package/dist/routes/v1/api/members.js +406 -0
  907. package/dist/routes/v1/api/members.js.map +1 -0
  908. package/dist/routes/v1/api/meta.d.ts +12 -0
  909. package/dist/routes/v1/api/meta.d.ts.map +1 -0
  910. package/dist/routes/v1/api/meta.js +59 -0
  911. package/dist/routes/v1/api/meta.js.map +1 -0
  912. package/dist/routes/v1/api/openapi.gen.d.ts +2 -0
  913. package/dist/routes/v1/api/openapi.gen.d.ts.map +1 -0
  914. package/dist/routes/v1/api/openapi.gen.js +7 -0
  915. package/dist/routes/v1/api/openapi.gen.js.map +1 -0
  916. package/dist/routes/v1/api/protocols.d.ts +22 -0
  917. package/dist/routes/v1/api/protocols.d.ts.map +1 -0
  918. package/dist/routes/v1/api/protocols.js +153 -0
  919. package/dist/routes/v1/api/protocols.js.map +1 -0
  920. package/dist/routes/v1/api/review-billing.d.ts +18 -0
  921. package/dist/routes/v1/api/review-billing.d.ts.map +1 -0
  922. package/dist/routes/v1/api/review-billing.js +196 -0
  923. package/dist/routes/v1/api/review-billing.js.map +1 -0
  924. package/dist/routes/v1/api/review.d.ts +30 -0
  925. package/dist/routes/v1/api/review.d.ts.map +1 -0
  926. package/dist/routes/v1/api/review.js +302 -0
  927. package/dist/routes/v1/api/review.js.map +1 -0
  928. package/dist/routes/v1/api/sources.d.ts +10 -0
  929. package/dist/routes/v1/api/sources.d.ts.map +1 -0
  930. package/dist/routes/v1/api/sources.js +293 -0
  931. package/dist/routes/v1/api/sources.js.map +1 -0
  932. package/dist/routes/v1/api/uploads.d.ts +37 -0
  933. package/dist/routes/v1/api/uploads.d.ts.map +1 -0
  934. package/dist/routes/v1/api/uploads.js +414 -0
  935. package/dist/routes/v1/api/uploads.js.map +1 -0
  936. package/dist/routes/v1/api/views.d.ts +18 -0
  937. package/dist/routes/v1/api/views.d.ts.map +1 -0
  938. package/dist/routes/v1/api/views.js +95 -0
  939. package/dist/routes/v1/api/views.js.map +1 -0
  940. package/dist/routes/v1/api/webhooks.d.ts +14 -0
  941. package/dist/routes/v1/api/webhooks.d.ts.map +1 -0
  942. package/dist/routes/v1/api/webhooks.js +282 -0
  943. package/dist/routes/v1/api/webhooks.js.map +1 -0
  944. package/dist/routes/v1/api/work-orders.d.ts +45 -0
  945. package/dist/routes/v1/api/work-orders.d.ts.map +1 -0
  946. package/dist/routes/v1/api/work-orders.js +171 -0
  947. package/dist/routes/v1/api/work-orders.js.map +1 -0
  948. package/dist/routes/v1/claims.d.ts +21 -0
  949. package/dist/routes/v1/claims.d.ts.map +1 -0
  950. package/dist/routes/v1/claims.js +153 -0
  951. package/dist/routes/v1/claims.js.map +1 -0
  952. package/dist/routes/v1/collections.d.ts +45 -0
  953. package/dist/routes/v1/collections.d.ts.map +1 -0
  954. package/dist/routes/v1/collections.js +201 -0
  955. package/dist/routes/v1/collections.js.map +1 -0
  956. package/dist/routes/v1/index.d.ts +13 -0
  957. package/dist/routes/v1/index.d.ts.map +1 -0
  958. package/dist/routes/v1/index.js +41 -0
  959. package/dist/routes/v1/index.js.map +1 -0
  960. package/dist/routes/v1/info.d.ts +14 -0
  961. package/dist/routes/v1/info.d.ts.map +1 -0
  962. package/dist/routes/v1/info.js +75 -0
  963. package/dist/routes/v1/info.js.map +1 -0
  964. package/dist/routes/v1/mcp/index.d.ts +33 -0
  965. package/dist/routes/v1/mcp/index.d.ts.map +1 -0
  966. package/dist/routes/v1/mcp/index.js +252 -0
  967. package/dist/routes/v1/mcp/index.js.map +1 -0
  968. package/dist/routes/v1/mcp/oauth.d.ts +27 -0
  969. package/dist/routes/v1/mcp/oauth.d.ts.map +1 -0
  970. package/dist/routes/v1/mcp/oauth.js +500 -0
  971. package/dist/routes/v1/mcp/oauth.js.map +1 -0
  972. package/dist/routes/v1/mcp/tools.d.ts +71 -0
  973. package/dist/routes/v1/mcp/tools.d.ts.map +1 -0
  974. package/dist/routes/v1/mcp/tools.js +432 -0
  975. package/dist/routes/v1/mcp/tools.js.map +1 -0
  976. package/dist/routes/v1/mcp/ui.d.ts +45 -0
  977. package/dist/routes/v1/mcp/ui.d.ts.map +1 -0
  978. package/dist/routes/v1/mcp/ui.js +454 -0
  979. package/dist/routes/v1/mcp/ui.js.map +1 -0
  980. package/dist/routes/v1/oauth.d.ts +29 -0
  981. package/dist/routes/v1/oauth.d.ts.map +1 -0
  982. package/dist/routes/v1/oauth.js +256 -0
  983. package/dist/routes/v1/oauth.js.map +1 -0
  984. package/dist/routes/v1/reviewers.d.ts +22 -0
  985. package/dist/routes/v1/reviewers.d.ts.map +1 -0
  986. package/dist/routes/v1/reviewers.js +165 -0
  987. package/dist/routes/v1/reviewers.js.map +1 -0
  988. package/dist/routes/v1/reviews.d.ts +38 -0
  989. package/dist/routes/v1/reviews.d.ts.map +1 -0
  990. package/dist/routes/v1/reviews.js +234 -0
  991. package/dist/routes/v1/reviews.js.map +1 -0
  992. package/dist/routes/v1/shared.d.ts +586 -0
  993. package/dist/routes/v1/shared.d.ts.map +1 -0
  994. package/dist/routes/v1/shared.js +229 -0
  995. package/dist/routes/v1/shared.js.map +1 -0
  996. package/dist/routes/well-known.d.ts +15 -0
  997. package/dist/routes/well-known.d.ts.map +1 -0
  998. package/dist/routes/well-known.js +35 -0
  999. package/dist/routes/well-known.js.map +1 -0
  1000. package/dist/runtime.d.ts +100 -0
  1001. package/dist/runtime.d.ts.map +1 -0
  1002. package/dist/runtime.js +144 -0
  1003. package/dist/runtime.js.map +1 -0
  1004. package/dist/testing/fake-tools.d.ts +104 -0
  1005. package/dist/testing/fake-tools.d.ts.map +1 -0
  1006. package/dist/testing/fake-tools.js +213 -0
  1007. package/dist/testing/fake-tools.js.map +1 -0
  1008. package/dist/testing/index.d.ts +54 -0
  1009. package/dist/testing/index.d.ts.map +1 -0
  1010. package/dist/testing/index.js +104 -0
  1011. package/dist/testing/index.js.map +1 -0
  1012. package/dist/testing/samples.d.ts +70 -0
  1013. package/dist/testing/samples.d.ts.map +1 -0
  1014. package/dist/testing/samples.js +92 -0
  1015. package/dist/testing/samples.js.map +1 -0
  1016. package/dist/workflows/claim-ingest.d.ts +250 -0
  1017. package/dist/workflows/claim-ingest.d.ts.map +1 -0
  1018. package/dist/workflows/claim-ingest.js +1020 -0
  1019. package/dist/workflows/claim-ingest.js.map +1 -0
  1020. package/dist/workflows/claim-source.d.ts +25 -0
  1021. package/dist/workflows/claim-source.d.ts.map +1 -0
  1022. package/dist/workflows/claim-source.js +107 -0
  1023. package/dist/workflows/claim-source.js.map +1 -0
  1024. package/dist/workflows/review-complete.d.ts +82 -0
  1025. package/dist/workflows/review-complete.d.ts.map +1 -0
  1026. package/dist/workflows/review-complete.js +455 -0
  1027. package/dist/workflows/review-complete.js.map +1 -0
  1028. package/dist/workflows/steps.d.ts +125 -0
  1029. package/dist/workflows/steps.d.ts.map +1 -0
  1030. package/dist/workflows/steps.js +325 -0
  1031. package/dist/workflows/steps.js.map +1 -0
  1032. package/docs/api.md +2595 -0
  1033. package/docs/guide.md +1525 -0
  1034. package/migrations/0000_init.sql +108 -0
  1035. package/migrations/0001_review_attestation.sql +1 -0
  1036. package/migrations/0002_decisions_facts.sql +1 -0
  1037. package/migrations/0003_api_lane.sql +171 -0
  1038. package/migrations/0004_api_v1_1.sql +19 -0
  1039. package/migrations/0005_member_notify.sql +3 -0
  1040. package/migrations/0006_source_collections.sql +16 -0
  1041. package/migrations/0007_api_settlement.sql +27 -0
  1042. package/migrations/0008_review_extend.sql +1 -0
  1043. package/migrations/0009_card_refunds.sql +4 -0
  1044. package/migrations/0010_even_scorpion.sql +16 -0
  1045. package/migrations/0011_mcp_oauth.sql +27 -0
  1046. package/migrations/0012_mcp_standing.sql +21 -0
  1047. package/migrations/0013_unknown_krista_starr.sql +2 -0
  1048. package/migrations/0014_last_carnage.sql +14 -0
  1049. package/migrations/0015_company_authority.sql +26 -0
  1050. package/migrations/0016_owner_only_links.sql +6 -0
  1051. package/migrations/0017_organisations.sql +35 -0
  1052. package/migrations/0018_remove_app_signed.sql +4 -0
  1053. package/migrations/0019_submitted_via.sql +2 -0
  1054. package/migrations/0020_drop_decision_to_pay.sql +4 -0
  1055. package/migrations/0021_manual_erase.sql +25 -0
  1056. package/migrations/0022_errored_facts.sql +1 -0
  1057. package/migrations/0023_review_billing.sql +20 -0
  1058. package/migrations/0024_pending_task_details.sql +1 -0
  1059. package/migrations/meta/0000_snapshot.json +707 -0
  1060. package/migrations/meta/0001_snapshot.json +714 -0
  1061. package/migrations/meta/0002_snapshot.json +721 -0
  1062. package/migrations/meta/0003_snapshot.json +1845 -0
  1063. package/migrations/meta/0004_snapshot.json +1969 -0
  1064. package/migrations/meta/0005_snapshot.json +1991 -0
  1065. package/migrations/meta/0006_snapshot.json +2097 -0
  1066. package/migrations/meta/0007_snapshot.json +2128 -0
  1067. package/migrations/meta/0008_snapshot.json +2133 -0
  1068. package/migrations/meta/0009_snapshot.json +2161 -0
  1069. package/migrations/meta/0010_snapshot.json +2265 -0
  1070. package/migrations/meta/0011_snapshot.json +2448 -0
  1071. package/migrations/meta/0012_snapshot.json +2577 -0
  1072. package/migrations/meta/0013_snapshot.json +2594 -0
  1073. package/migrations/meta/0014_snapshot.json +2602 -0
  1074. package/migrations/meta/0015_snapshot.json +2778 -0
  1075. package/migrations/meta/0016_snapshot.json +2778 -0
  1076. package/migrations/meta/0017_snapshot.json +2792 -0
  1077. package/migrations/meta/0018_snapshot.json +2778 -0
  1078. package/migrations/meta/0019_snapshot.json +2792 -0
  1079. package/migrations/meta/0020_snapshot.json +2785 -0
  1080. package/migrations/meta/0021_snapshot.json +2762 -0
  1081. package/migrations/meta/0022_snapshot.json +2769 -0
  1082. package/migrations/meta/0023_snapshot.json +2900 -0
  1083. package/migrations/meta/0024_snapshot.json +2907 -0
  1084. package/migrations/meta/_journal.json +181 -0
  1085. package/openapi/decision-api.yaml +12204 -0
  1086. package/package.json +123 -4
  1087. package/skills/README.md +19 -0
  1088. package/skills/add-openhands-support/SKILL.md +113 -0
  1089. package/skills/create-collection/SKILL.md +199 -0
  1090. package/skills/create-collection/reference/claims-stack.md +106 -0
  1091. package/skills/create-collection/reference/collection.md +111 -0
  1092. package/skills/create-oracle/SKILL.md +400 -0
  1093. package/skills/create-rubric/SKILL.md +130 -0
  1094. package/skills/create-rubric/reference/format-cheatsheet.md +186 -0
  1095. package/skills/create-rubric/templates/claim-form.example.json +60 -0
  1096. package/skills/decision-api-client/SKILL.md +236 -0
  1097. package/skills/decision-api-oracle/SKILL.md +336 -0
  1098. package/skills/publish-protocol/SKILL.md +151 -0
  1099. package/skills/publish-protocol/reference/publishing.md +116 -0
  1100. package/skills/reference/engine-contract.md +222 -0
  1101. package/skills/write-facts/SKILL.md +221 -0
  1102. package/skills/write-facts/reference/examples/http-vendor.ts +88 -0
  1103. package/skills/write-facts/reference/examples/price-matches-agreement.ts +67 -0
  1104. package/skills/write-facts/reference/facts-api.md +232 -0
  1105. package/templates/project/.dev.vars.example +93 -0
  1106. package/templates/project/.editorconfig +9 -0
  1107. package/templates/project/CLAUDE.md +45 -0
  1108. package/templates/project/README.md +199 -0
  1109. package/templates/project/biome.json +37 -0
  1110. package/templates/project/gitignore +29 -0
  1111. package/templates/project/package.json +32 -0
  1112. package/templates/project/src/facts/index.ts +19 -0
  1113. package/templates/project/src/index.ts +25 -0
  1114. package/templates/project/test/api-lane.test.ts +57 -0
  1115. package/templates/project/test/facts.test.ts +14 -0
  1116. package/templates/project/tsconfig.json +25 -0
  1117. package/templates/project/vitest.config.ts +13 -0
  1118. package/templates/project/wrangler.jsonc +446 -0
@@ -0,0 +1,455 @@
1
+ /**
2
+ * Review completion (README "How a claim flows" step 6): fold a human's answers into the SAME decision — the
3
+ * engine replays its frozen facts with one more fact (`POST /v1/reviews/:claimId`, docs/
4
+ * ENGINE-CONTRACT.md "Human review"), never a second evaluation — then act on the now-terminal
5
+ * verdict. One instance per claim (id = `reviewInstanceIdFor(claimId)`, lib/ids.ts), spawned by
6
+ * the review route:
7
+ * step "fold" → load the decision + the answers → RE-PULL the claim body → the engine
8
+ * folds them → the `decisions` row becomes the folded decision (new
9
+ * verdict, digest, receipt; `chainStatus` back to `pending`) and the
10
+ * review is stamped `foldedAt` — one atomic batch, so a retry can never
11
+ * see one without the other. Replayed after completion ⇒ a no-op: the
12
+ * folded row stands
13
+ * step "act" → the same act step as the ingest lane (workflows/steps.ts), fail-soft
14
+ * terminal catch → `claim_reviews.foldError` on the answer the fold read (surfaced by
15
+ * `GET /v1/reviews/:claimId`); the answers are KEPT — the reviewer's
16
+ * "try again" re-POSTs, which clears the error and re-spawns this
17
+ * workflow
18
+ *
19
+ * The re-pull is the contract's (docs/ENGINE-CONTRACT.md "Human review"): the engine's `decide()`
20
+ * reads the claim answers, which neither side persists, so the fold sends them again and the
21
+ * engine rebuilds its FactSet from the stored trace + `claim.answers`, refusing unless
22
+ * `factsDigest` matches. The same claim source as `evaluate` (chain: `pullClaim` — the VFS, the
23
+ * bot via the owner delegation, IPFS or a cellnode, every store but the bot CID-verified) returns
24
+ * the byte-identical body and the same `claimContent`, which every fold carries (company authority:
25
+ * the engine holds it to the decision's content) — and, as in `evaluate`, neither leaves the step:
26
+ * only the small fold summary is a step result.
27
+ *
28
+ * The engine's deterministic refusals — `STALE_REVIEW` (it no longer holds the digest the answers
29
+ * were folded against), `FACTS_MISMATCH` (the rebuilt digest ≠ the stored one: a bug on one side,
30
+ * a CID-addressed body cannot change), `REVIEW_INCOMPLETE` (its pending-task set ≠ the row's;
31
+ * `details.pendingTasks` names what is still owed), `CONTENT_MISMATCH` / `PAYLOAD_TOO_LARGE` (the
32
+ * content is not the decision's, or the body is over the engine's cap; `details.reason` goes into
33
+ * the text), a 400 (the engine's row is not pending), a
34
+ * 403/404 (the engine holds this claim under another oracle, or not at all) — are NonRetryable,
35
+ * logged, and surfaced as `foldError` as `CODE (details.reason): message`; the reviewer answers again against the
36
+ * current decision. A fail-closed pull (403/404) takes the same path through `stepError`; a
37
+ * transient one (503) is left to the runtime's retries — and so is a final fold answered without
38
+ * its receipt (`RECEIPT_MISSING`, steps.ts `requireReceipt`): never stamped, retried, paged once
39
+ * the retries run out.
40
+ *
41
+ * The reviewer's authority (company authority D2) is re-checked HERE, before the pull: the chain
42
+ * lane's gate (lib/review/reviewer-grant.ts) over the grant stored with the answer, so a revoke, a
43
+ * controller removed, or an evaluate grant given to the reviewer since the answer refuses the fold
44
+ * with no engine call — `foldError` `REVIEWER_GRANT_INVALID` / `REVIEWER_NOT_AUTHORIZED`, the
45
+ * engine's own codes; a chain or Blocksync blip (503) retries. An API claim's answer gets the
46
+ * same treatment from `recheckApiReviewer` (lib/api-lane/review.ts): a member whose role grant was
47
+ * revoked, narrowed or replaced, or a root no longer a controller, since the answer is refused the
48
+ * same way. The grant then rides the fold as its controller filed it (or as the API answer sent
49
+ * it), and the engine's own refusal of it (the same two codes) lands on
50
+ * `foldError` too.
51
+ *
52
+ * And the fold's own "no" that is not an error: the protocol's `#vct` drifted between the decision
53
+ * and the fold, so the pinned rubric no longer binds — a `200` with `decision.status = "unusable"`,
54
+ * FINAL on the engine (persisted, receipted). Recorded exactly as the evaluate step records an
55
+ * engine `unusable` (the folded row, its receipt, `foldedAt`), the collection pauses
56
+ * `rubric-unusable` (steps.ts `pauseUnusable`) and `act` skips the non-terminal verdict.
57
+ */
58
+ import { WorkflowEntrypoint } from "cloudflare:workers";
59
+ import { NonRetryableError } from "cloudflare:workflows";
60
+ import * as Sentry from "@sentry/cloudflare";
61
+ import { and, eq, isNull, sql } from "drizzle-orm";
62
+ import { getDb } from "../db/client.js";
63
+ import { claimIngests, claimReviews, decisions } from "../db/schema.js";
64
+ import { recheckApiReviewer } from "../lib/api-lane/review.js";
65
+ import { archiveAnswer } from "../lib/archive.js";
66
+ import { createEngineClient } from "../lib/engine/client.js";
67
+ import { EngineError } from "../lib/engine/types.js";
68
+ import { AppError } from "../lib/errors.js";
69
+ import { finalVerdictUpdate, registryVerdictToken } from "../lib/facts/stock/unique-store.js";
70
+ import { depsFromEnv } from "../lib/ixo/index.js";
71
+ import { scopedStep, withMetrics } from "../lib/metrics.js";
72
+ import { settleClaim } from "../lib/payments/settle.js";
73
+ import { payoutRequestFor, payoutsConfigured } from "../lib/payouts.js";
74
+ import { checkReviewerGrant } from "../lib/review/reviewer-grant.js";
75
+ import { reportAlert, reportError } from "../lib/sentry.js";
76
+ import { getOracle } from "../oracle.js";
77
+ import { isChain, sourceFor } from "./claim-source.js";
78
+ import { actStep, erroredFactsOf, pauseUnusable, RECEIPT_MISSING, reasonOf, requireReceipt, stepError, } from "./steps.js";
79
+ /** `foldError` for an answer that arrived while an earlier answer's fold failed (terminal catch). */
80
+ const RETRY_ANSWER = "RETRY_ANSWER: your answer arrived while an earlier attempt to apply a review failed — send your answer again to apply it";
81
+ export class ReviewComplete extends WorkflowEntrypoint {
82
+ async run(event, step) {
83
+ const deps = depsFromEnv(this.env, {
84
+ claimId: event.payload?.claimId,
85
+ instanceId: event.instanceId,
86
+ workflow: "review-complete",
87
+ });
88
+ // Ambient for the run AND inside every step callback (`scopedStep`), so the fetch client and
89
+ // the cache reads record into `deps.metrics`.
90
+ const scope = { metrics: deps.metrics, logger: deps.logger };
91
+ return withMetrics(scope, () => this.complete(event, scopedStep(step, scope, "review-complete"), deps));
92
+ }
93
+ async complete(event, step, deps) {
94
+ const claimId = event.payload?.claimId;
95
+ if (!claimId)
96
+ throw new NonRetryableError("Missing claimId param");
97
+ Sentry.setTags({ claimId, instanceId: event.instanceId, workflow: "review-complete" });
98
+ // The answer the fold read, by its `attestationJws` (an answer's identity — the fold marker is
99
+ // scoped the same way): the terminal catch writes `foldError` onto that answer only. A re-POST
100
+ // landing mid-fold replaces the row, and that newer answer must not inherit this attempt's
101
+ // failure — it would read as refused and never be folded. Absent until a fold read the row.
102
+ const seen = {};
103
+ try {
104
+ const folded = await step.do("fold",
105
+ // One pull + one engine round trip — no connectors, no model calls happen here.
106
+ {
107
+ retries: { limit: 5, delay: "10 seconds", backoff: "exponential" },
108
+ timeout: "2 minutes",
109
+ }, async () => {
110
+ try {
111
+ // The re-pull goes through the lane the claim came in by (§7.1).
112
+ const ingest = await getDb(this.env).query.claimIngests.findFirst({
113
+ columns: { lane: true },
114
+ where: eq(claimIngests.claimId, claimId),
115
+ });
116
+ const lane = ingest?.lane ?? "chain";
117
+ return {
118
+ ...(await this.fold(deps, sourceFor(lane, this.env, deps), claimId, seen)),
119
+ lane,
120
+ };
121
+ }
122
+ catch (err) {
123
+ throw stepError(err);
124
+ }
125
+ });
126
+ const source = sourceFor(folded.lane ?? "chain", this.env, deps);
127
+ // Only a `decided` fold can act (chain-write.ts step 1) — a fold-time `unusable` never does.
128
+ if (source.after.act && folded.status === "decided") {
129
+ await actStep(this.env, deps, step, {
130
+ claimId,
131
+ collectionId: folded.collectionId,
132
+ instanceId: event.instanceId,
133
+ workflow: "review-complete",
134
+ });
135
+ }
136
+ // The source's notify lane for the folded claim (chain: the `m.replace` edit that completes
137
+ // the review card sent at ingest time). Its own step, fail-soft like `act` above:
138
+ // self-contained (reads the folded decision + the answered review off the DB) and a no-op
139
+ // when there is nothing to tell (no token, no prior send, already edited).
140
+ try {
141
+ await step.do("notify-folded", {
142
+ retries: { limit: 3, delay: "5 seconds", backoff: "exponential" },
143
+ timeout: "1 minute",
144
+ }, () => source.after.notify(claimId));
145
+ }
146
+ catch (err) {
147
+ deps.logger.error("notify-folded.failed", { claimId, detail: String(err) });
148
+ reportError(err, { lane: "notify", step: "notify-folded", claimId });
149
+ }
150
+ // The lane rode the step result for the steps above; the run's result is unchanged by it.
151
+ const { lane: _lane, ...summary } = folded;
152
+ return { claimId, ...summary };
153
+ }
154
+ catch (err) {
155
+ // Terminal failure — say why on the review row (never over a completed fold) and rethrow so
156
+ // the instance shows Errored. Recovery is the same POST again. The reason belongs to the
157
+ // answer the fold read (`seen`); a newer answer re-POSTed mid-fold found this instance
158
+ // running, so its spawn did nothing and — now that the instance has errored — nothing will
159
+ // ever fold it. It gets `RETRY_ANSWER` instead: the re-POST it asks for restarts the
160
+ // instance. One statement, so the two rows can never be told different stories.
161
+ const message = err instanceof Error ? err.message : String(err);
162
+ const foldError = seen.attestationJws === undefined
163
+ ? message
164
+ : sql `case when ${claimReviews.attestationJws} is ${seen.attestationJws} then ${message} else ${RETRY_ANSWER} end`;
165
+ await getDb(this.env)
166
+ .update(claimReviews)
167
+ .set({ foldError })
168
+ .where(and(eq(claimReviews.claimId, claimId), isNull(claimReviews.foldedAt)))
169
+ .catch(() => { });
170
+ reportError(err, { lane: "review", step: "terminal", claimId, instanceId: event.instanceId });
171
+ // The retries ran out with the engine's fold still receipt-less — page it, like evaluate.
172
+ if (message.startsWith(RECEIPT_MISSING)) {
173
+ await reportAlert(deps, "engine.receipt-missing", { claimId, code: RECEIPT_MISSING }, `engine.receipt-missing:${claimId}`);
174
+ }
175
+ throw err;
176
+ }
177
+ }
178
+ async fold(deps, source, claimId, seen) {
179
+ const db = getDb(this.env);
180
+ const [decision, review] = await Promise.all([
181
+ db.query.decisions.findFirst({ where: (t, { eq: eqOp }) => eqOp(t.claimId, claimId) }),
182
+ db.query.claimReviews.findFirst({ where: (t, { eq: eqOp }) => eqOp(t.claimId, claimId) }),
183
+ ]);
184
+ if (!decision || !review) {
185
+ throw new NonRetryableError(`No pending review recorded for claim ${claimId}`);
186
+ }
187
+ seen.attestationJws = review.attestationJws;
188
+ // A replayed/duplicate instance after completion is a no-op — the folded decision stands.
189
+ if (review.foldedAt)
190
+ return summary(decision);
191
+ if (decision.status !== "pending_review" || !decision.resultDigest) {
192
+ throw new NonRetryableError(`Claim ${claimId} is not awaiting review (${decision.status})`);
193
+ }
194
+ // Every review answer is signed (routes/v1/reviews.ts), so a row without one was written by an
195
+ // older kit and can never fold: the engine requires the attestation too. Said HERE, loudly, on
196
+ // the review row — the reviewer answers again, signed, which is the only recovery.
197
+ if (!review.attestationJws) {
198
+ throw new NonRetryableError(`Review for ${claimId} carries no signed attestation — answer again with a signed review`);
199
+ }
200
+ // The reviewer's authority, NOW (header): the chain lane's gate, or the API lane's re-check of
201
+ // a member's live role grant / a root's controller standing (lib/api-lane/review.ts).
202
+ const reviewerGrant = await this.gate(deps, source, decision.collectionId, review);
203
+ const engine = createEngineClient({
204
+ config: deps.config,
205
+ logger: deps.logger,
206
+ trace: deps.trace,
207
+ cache: deps.cache,
208
+ });
209
+ // The body the engine needs back (header comment): the same source `evaluate` pulled through,
210
+ // verified, so these are the bytes `facts.answers` carried. `frozenAt` is deliberately not
211
+ // sent — the kit always freezes with `frozenAt === ctx.now` (builder.ts), which is exactly the
212
+ // engine's default (`trace.ctx.now`). A fail-closed pull throws out of the step (stepError).
213
+ const { content, ...pulled } = await source.pull(claimId);
214
+ // S16 — the same block the decide call sent (payouts design §4.7); resolved only when some
215
+ // protocol is configured, so a fold without payouts costs no extra read.
216
+ const payout = payoutsConfigured()
217
+ ? payoutRequestFor(await source.protocolDid(decision.collectionId))
218
+ : undefined;
219
+ let response;
220
+ try {
221
+ response = await engine.review(claimId, {
222
+ answeredAgainst: decision.resultDigest,
223
+ answers: review.answers,
224
+ reviewerDid: review.reviewerDid,
225
+ // Verbatim — the signature is over exact bytes, and the engine verifies them again itself.
226
+ // An attestation error from the engine would therefore be a bug on one side (or a kit
227
+ // deployed ahead of its engine): it falls through the `switch` below to `default: throw
228
+ // err`, which the terminal catch pages.
229
+ attestation: review.attestationJws,
230
+ claim: { answers: pulled.body },
231
+ ...(payout ? { payout } : {}),
232
+ claimContent: content,
233
+ // The CAR the gate just passed, as its controller filed it: the engine verifies it itself.
234
+ ...(reviewerGrant ? { reviewerGrant } : {}),
235
+ });
236
+ }
237
+ catch (err) {
238
+ if (!(err instanceof EngineError))
239
+ throw err;
240
+ const scope = {
241
+ claimId,
242
+ collectionId: decision.collectionId,
243
+ answeredAgainst: decision.resultDigest,
244
+ requestId: err.requestId ?? null,
245
+ };
246
+ switch (err.code) {
247
+ case "STALE_REVIEW":
248
+ deps.logger.warn("review.stale", scope);
249
+ throw new NonRetryableError(`Review answers are stale — answer again: ${err.message}`);
250
+ case "FACTS_MISMATCH":
251
+ // A CID-addressed body cannot change, so this is a bug on one side (ours: the pulled
252
+ // body ≠ what the facts lane froze; theirs: the rebuild) — the terminal catch pages it.
253
+ deps.logger.error("review.facts-mismatch", scope);
254
+ throw new NonRetryableError(`FACTS_MISMATCH: ${err.message}`);
255
+ case "REVIEW_INCOMPLETE": {
256
+ // The route made the answers cover exactly the row's `pendingTasks`; the engine
257
+ // disagreeing means its pending set drifted from ours — the reviewer re-reads and
258
+ // answers. `details.pendingTasks` says what is still owed: on the review row, so the
259
+ // GET shows it.
260
+ const pending = pendingTasksOf(err.details);
261
+ deps.logger.error("review.incomplete", { ...scope, pendingTasks: pending });
262
+ throw new NonRetryableError(`REVIEW_INCOMPLETE: ${err.message}${pending.length > 0 ? ` (still pending: ${pending.join(", ")})` : ""}`);
263
+ }
264
+ case "CONTENT_MISMATCH":
265
+ case "PAYLOAD_TOO_LARGE": {
266
+ // Not the decision's content, or a body over the engine's cap: a fold never changes
267
+ // content, so no retry fixes it — on the review row with the engine's reason.
268
+ const reason = reasonOf(err.details);
269
+ deps.logger.error("review.content-refused", { ...scope, code: err.code, reason });
270
+ throw new NonRetryableError(refusal(err));
271
+ }
272
+ case "REVIEWER_GRANT_INVALID":
273
+ case "REVIEWER_NOT_AUTHORIZED": {
274
+ // The engine read the grant otherwise than our gate did (a root it no longer sees as a
275
+ // controller, an oracle it knows of): no retry changes it — the reviewer answers again
276
+ // with a grant from a current controller.
277
+ const reason = reasonOf(err.details);
278
+ deps.logger.warn("review.grant-refused", { ...scope, code: err.code, reason });
279
+ throw new NonRetryableError(refusal(err));
280
+ }
281
+ case "BAD_REQUEST":
282
+ // The engine's row is not pending (already final there) or the answers' values don't
283
+ // fit the rubric's tasks: nothing a retry changes — the reviewer re-reads the decision.
284
+ deps.logger.error("review.rejected", { ...scope, code: err.code });
285
+ throw new NonRetryableError(refusal(err));
286
+ case "FORBIDDEN":
287
+ case "NOT_FOUND":
288
+ // The engine holds this claim under a different oracle (403) or not at all (404) while
289
+ // we hold a pending decision for it — an identity/config fault worth paging, never a retry.
290
+ deps.logger.error("review.not-ours", { ...scope, code: err.code });
291
+ reportError(err, {
292
+ lane: "review",
293
+ step: "fold",
294
+ claimId,
295
+ collectionId: scope.collectionId,
296
+ });
297
+ throw new NonRetryableError(refusal(err));
298
+ default:
299
+ throw err;
300
+ }
301
+ }
302
+ // A fold is final, so its answer carries the receipt the fold minted: one without it is never
303
+ // stamped `foldedAt` — the retry re-POSTs the identical fold, and the engine's stored fold comes
304
+ // back with it (steps.ts `requireReceipt`).
305
+ requireReceipt(response, "fold");
306
+ const folded = {
307
+ verdict: response.decision.verdict,
308
+ status: response.decision.status,
309
+ resultDigest: response.resultDigest,
310
+ receiptCid: response.receipt?.cid ?? null,
311
+ receiptJws: response.receipt?.jws ?? null,
312
+ decision: response.decision,
313
+ explanation: response.explanation,
314
+ // The fold's answer names the same errored facts (they never move on a fold); an engine
315
+ // that sent none leaves the decide's list standing.
316
+ ...(response.erroredFacts ? { erroredFacts: erroredFactsOf(response) } : {}),
317
+ // `facts` is deliberately NOT in this set: the fold replays the SAME frozen facts (the
318
+ // engine rebuilds the FactSet from its trace), so the row's copy — what the act policy reads
319
+ // at signing time — must survive the fold untouched.
320
+ // The folded verdict is a NEW thing to act on — whatever the pre-fold row said about delivery
321
+ // — unless the source never acts (the API lane, §7.1).
322
+ chainStatus: source.after.act ? "pending" : "skipped",
323
+ chainError: null,
324
+ };
325
+ // One atomic batch (schema.ts header): the decision, its fold marker and — the fold made it
326
+ // final — the verdict on the claim's duplicate registry rows (stock/unique-store.ts; a no-op
327
+ // for a rubric without `unique`) land together or not at all.
328
+ const token = registryVerdictToken(folded.status, folded.verdict);
329
+ // The fold marker lands only on the answer that was folded: an answer re-POSTed while this
330
+ // fold was in flight must not be stamped as the one the engine folded.
331
+ const [, stamped] = await db.batch([
332
+ db.update(decisions).set(folded).where(eq(decisions.claimId, claimId)),
333
+ db
334
+ .update(claimReviews)
335
+ .set({ foldedAt: new Date(), foldError: null })
336
+ .where(and(eq(claimReviews.claimId, claimId), eq(claimReviews.attestationJws, review.attestationJws)))
337
+ .returning({ claimId: claimReviews.claimId }),
338
+ ...(token
339
+ ? [finalVerdictUpdate(db, { collectionId: decision.collectionId, claimId, token })]
340
+ : []),
341
+ ]);
342
+ // A `pending_review` decision has no receipt (ENGINE-CONTRACT): the fold mints it, so its
343
+ // reservation is settled here (payments spec §4 step 6) — an API claim's, or a chain claim's a
344
+ // per-review collection reserved — fail-soft, the reconcile re-settles a lost one.
345
+ if (folded.receiptJws && deps.config.X402_FACILITATOR_URL) {
346
+ await settleClaim({ ...deps, db }, claimId, folded.receiptJws);
347
+ }
348
+ if (stamped.length === 0) {
349
+ // A newer answer replaced the one folded: the decision is final on the folded one, so the
350
+ // newer answer can only be stale — say so on its row, where the GET shows it.
351
+ await db
352
+ .update(claimReviews)
353
+ .set({ foldError: "STALE_REVIEW: another answer was folded first — re-read the decision" })
354
+ .where(and(eq(claimReviews.claimId, claimId), isNull(claimReviews.foldedAt)));
355
+ deps.logger.warn("review.answer-replaced-during-fold", { claimId });
356
+ }
357
+ deps.metrics.count("review.folded", 1);
358
+ // The answer archive's `answer.json`, re-written with the folded decision (lib/archive.ts) —
359
+ // fail-soft, from the body this step re-pulled; nothing of it leaves the step.
360
+ if (this.env.ANSWERS_ARCHIVE) {
361
+ await archiveAnswer(this.env, deps, {
362
+ lane: source.lane,
363
+ claim: pulled,
364
+ content,
365
+ submitter: await source.submitterKey(pulled).catch(() => null),
366
+ response,
367
+ facts: decision.facts ?? null,
368
+ hooks: getOracle().config.archive,
369
+ reviewerDid: review.reviewerDid,
370
+ });
371
+ }
372
+ // A payout scope whose claim names no payee: folded, its receipt without a payment binding
373
+ // (ENGINE-CONTRACT "Payee").
374
+ if (response.decisionToPayRefused) {
375
+ deps.logger.warn("payout.refused", {
376
+ claimId,
377
+ collectionId: decision.collectionId,
378
+ code: response.decisionToPayRefused,
379
+ });
380
+ }
381
+ deps.logger.info("review.folded", {
382
+ claimId,
383
+ collectionId: decision.collectionId,
384
+ reviewerDid: review.reviewerDid,
385
+ status: folded.status,
386
+ verdict: folded.verdict,
387
+ resultDigest: folded.resultDigest,
388
+ receiptCid: folded.receiptCid,
389
+ traceId: response.traceId ?? null,
390
+ });
391
+ // `#vct` drifted since the decision (header): a final, receipted `unusable` for THIS claim —
392
+ // and the same answer for every other claim of the collection, exactly as at evaluate time.
393
+ if (response.decision.status === "unusable") {
394
+ await pauseUnusable(source, deps.logger, "review", {
395
+ claimId,
396
+ collectionId: decision.collectionId,
397
+ rubricId: decision.rubricId,
398
+ issues: response.decision.reasons,
399
+ receiptCid: folded.receiptCid,
400
+ });
401
+ }
402
+ return summary({ ...decision, ...folded });
403
+ }
404
+ /**
405
+ * The answer's grant as things stand now — a chain claim's against the chain
406
+ * (lib/review/reviewer-grant.ts), an API claim's against the source's members and controllers
407
+ * (`recheckApiReviewer`); answers the CAR the fold forwards. A refusal is the reviewer's to fix,
408
+ * so NonRetryable with the engine's code and nothing forwarded; a 503 propagates and retries.
409
+ */
410
+ async gate(deps, source, collectionId, review) {
411
+ const db = getDb(this.env);
412
+ try {
413
+ if (!isChain(source)) {
414
+ return await recheckApiReviewer({ db, chain: { config: deps.config, trace: deps.trace } }, { scopeId: collectionId, ...review });
415
+ }
416
+ if (!review.reviewerGrant) {
417
+ throw new NonRetryableError("REVIEWER_GRANT_INVALID (absent): the answer carries no reviewer grant — answer again with the grant the collection's owner gave you");
418
+ }
419
+ const grant = await checkReviewerGrant({ config: deps.config, trace: deps.trace, db }, review.reviewerGrant, { collectionId, reviewerDid: review.reviewerDid });
420
+ return grant.delegation;
421
+ }
422
+ catch (err) {
423
+ if (!(err instanceof AppError) || err.status === 503)
424
+ throw err;
425
+ deps.logger.warn("review.grant-refused", {
426
+ claimId: review.claimId,
427
+ collectionId,
428
+ code: err.code,
429
+ reason: reasonOf(err.details),
430
+ });
431
+ throw new NonRetryableError(refusal(err));
432
+ }
433
+ }
434
+ }
435
+ /**
436
+ * `foldError` for a refusal, ours or the engine's: `CODE (reason): message` — `details.reason` (the
437
+ * CA4 vocabulary for grants) in the one place the Portal and the Console read it from either side.
438
+ */
439
+ function refusal(err) {
440
+ const reason = reasonOf(err.details);
441
+ return `${err.code}${reason ? ` (${reason})` : ""}: ${err.message}`;
442
+ }
443
+ /** The 422's `details.pendingTasks` (contract "Human review"), or nothing if the engine sent none. */
444
+ function pendingTasksOf(details) {
445
+ const tasks = details?.pendingTasks;
446
+ return Array.isArray(tasks) ? tasks.filter((t) => typeof t === "string") : [];
447
+ }
448
+ const summary = (row) => ({
449
+ collectionId: row.collectionId,
450
+ status: row.status,
451
+ verdict: row.verdict,
452
+ resultDigest: row.resultDigest,
453
+ receiptCid: row.receiptCid,
454
+ });
455
+ //# sourceMappingURL=review-complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-complete.js","sourceRoot":"","sources":["../../src/workflows/review-complete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * What the two workflows share (README "How a claim flows" step 6): the `act` step that follows a final decision
3
+ * — after `evaluate` in ClaimIngest, after `fold` in ReviewComplete — the one rule for turning a
4
+ * thrown error into "retry" vs "stop", and the pause that follows an `unusable` rubric (said at
5
+ * evaluate time or, when `#vct` drifted before the fold, at fold time).
6
+ *
7
+ * Also `pauseCollection`/`notifyCollectionResumed` — the collection-status side of the notice
8
+ * lane: a chat message in the collection's review room (Matrix, the PRIMARY channel) and its email
9
+ * twin, both from the ONE `Notice` (lib/email/template.ts). Told once PER COLLECTION (not per
10
+ * reason, and not pooled per owner — there is one `status` column and no shared
11
+ * subscription/payout account to group by), via an alternating marker on `matrix_deliveries`: a
12
+ * `notice_paused`/`notice_resumed` pair per collection, and a state is announced only when its own
13
+ * marker is not already the newer of the two. That one rule gives both properties needed: a step
14
+ * retry inside one pause re-sends nothing, and a pause that follows a recovery is a fresh notice
15
+ * rather than a silently suppressed one.
16
+ */
17
+ import type { WorkflowStep } from "cloudflare:workers";
18
+ import type { Config } from "../config.js";
19
+ import type { ClaimSource } from "../contracts/index.js";
20
+ import { type Database } from "../db/client.js";
21
+ import type { OracleEnv } from "../env.js";
22
+ import { type AdminUnfundedDetail, type CollectionPausedReason } from "../lib/email/template.js";
23
+ import { type DecideResponse, type ErroredFact } from "../lib/engine/types.js";
24
+ import type { PullDeps } from "../lib/ixo/index.js";
25
+ import { type ChainWriteOutcome } from "../lib/ixo/chain-write.js";
26
+ import type { Logger } from "../lib/logger.js";
27
+ import type { Metrics } from "../lib/metrics.js";
28
+ import type { TraceContext } from "../lib/tracing.js";
29
+ /**
30
+ * Retry or stop? Transient trouble (a 503 from any lane, the engine's own `UNAVAILABLE`, its 429
31
+ * `RATE_LIMITED` throttle, anything unclassified) is left as-is so the runtime retries the step;
32
+ * every deterministic negative — a fail-closed 404/403 from the pull, a config or contract-drift
33
+ * 500, any other 4xx from the engine — is rethrown NonRetryable so a real "no" never burns the
34
+ * retry budget. `EngineError.retryable` is that line for the engine. A NonRetryableError passes
35
+ * through untouched.
36
+ */
37
+ export declare function stepError(err: unknown): unknown;
38
+ /** The prefix of the error {@link requireReceipt} throws — how a terminal catch knows to page it. */
39
+ export declare const RECEIPT_MISSING = "RECEIPT_MISSING";
40
+ /**
41
+ * A final answer (`decided` / `unusable`) always carries its receipt (ENGINE-CONTRACT "Response"),
42
+ * and the receipt is the ONE credential act and the payout spend. One without it (the engine's
43
+ * mint failed) is never recorded — a receipt-less row is a payout nothing heals. Retryable
44
+ * instead: the step's retry asks again (the evaluate recovery's GET, a decide's or fold's identical
45
+ * re-POST), and the engine's stored row comes back with the receipt. `pending_review` has none by
46
+ * contract (the fold mints it).
47
+ */
48
+ export declare function requireReceipt(answer: {
49
+ decision: {
50
+ status: string;
51
+ };
52
+ receipt: unknown;
53
+ }, what: "decision" | "fold"): void;
54
+ /**
55
+ * What the decision row keeps of the engine's `erroredFacts` (engine/types.ts): each detail capped
56
+ * (an older or looser engine is not trusted to have done it), null when the engine sent none or an
57
+ * empty list — so a clean decision and an older engine store the same nothing. Written in the same
58
+ * statement as the rest of the decision (record / fold); never logged.
59
+ */
60
+ export declare function erroredFactsOf(answer: Pick<DecideResponse, "erroredFacts">): ErroredFact[] | null;
61
+ /** The engine's `details.reason` on a company-authority refusal — a check's name, never a value. */
62
+ export declare function reasonOf(details: unknown): string | null;
63
+ /**
64
+ * The rubric cannot be bound — said by the manifest before a producer ran, by the engine at decide
65
+ * time, or by the fold (the pinned rubric no longer binds against the live `#vct`) — and every
66
+ * other claim of the scope would be refused the same way until the catalog is fixed, so stop
67
+ * taking claims and say why (codes and paths, never answer values), through the claim's source
68
+ * (a chain collection or an API source, Go Prod §7.1). The scope's row stands (a chain collection
69
+ * keeps its delegation); `POST /v1/collections/:id/resume` lifts a collection's pause. Logged as
70
+ * `<lane>.rubric-unusable`.
71
+ */
72
+ export declare function pauseUnusable(source: Pick<ClaimSource, "pause">, logger: Logger, lane: "evaluate" | "review", scope: {
73
+ claimId: string;
74
+ collectionId: string;
75
+ rubricId: string | null;
76
+ issues: unknown;
77
+ receiptCid?: string | null;
78
+ }): Promise<void>;
79
+ /**
80
+ * The engine's `402 INSUFFICIENT_CREDITS` — the oracle OWNER's credits, shared by every scope this
81
+ * oracle serves — so EVERY active collection AND every active API source pauses at once (not per
82
+ * claim source: seam header, src/contracts/claim-source.ts). `cron/billing.ts` resumes the
83
+ * collections when the engine's `/me` says ok (sources: `cron/api-lane.ts`).
84
+ */
85
+ export declare function pauseForEngineCredits(db: Database, deps: CollectionNoticeDeps): Promise<void>;
86
+ export interface CollectionNoticeDeps {
87
+ logger: Logger;
88
+ metrics: Metrics;
89
+ config: Config;
90
+ trace: TraceContext;
91
+ /** `env.CACHE_KV` — the Matrix identity guard's cache (lib/matrix/deliver.ts). */
92
+ cache: KVNamespace;
93
+ /** `env.EMAIL` — absent ⇒ the notice email lane no-ops (lib/email/send.ts). */
94
+ email?: SendEmail;
95
+ }
96
+ /**
97
+ * Pause a collection AND tell its owner once. Writes `status`/`pausedReason` unconditionally — a
98
+ * step retry, or a new reason landing while already paused (e.g. `engine-credits` after
99
+ * `rubric-unusable`), must still record the latest reason — then fires the paused notice, which is
100
+ * told-once per collection regardless (see the header comment on the alternating-marker rule).
101
+ * `detail` is the `admin-unfunded` notice's account + amount (lib/email/template.ts). `alert` false
102
+ * is for a caller that pages once for many rows (`pauseForEngineCredits`).
103
+ */
104
+ export declare function pauseCollection(db: Database, deps: CollectionNoticeDeps, collectionId: string, reason: CollectionPausedReason, detail?: AdminUnfundedDetail, alert?: boolean): Promise<void>;
105
+ /**
106
+ * The resume twin. Does NOT write `status` — the caller (`routes/v1/collections.ts`'s pause/resume
107
+ * route and its re-register upsert, and `cron/billing.ts`'s `resumeEngineCredits`) has already
108
+ * flipped the row on a REAL paused→active transition, which is the only time any call site invokes
109
+ * this.
110
+ */
111
+ export declare function notifyCollectionResumed(db: Database, deps: CollectionNoticeDeps, collectionId: string): Promise<void>;
112
+ /**
113
+ * Act on the claim's recorded decision (lib/ixo/chain-write.ts) as its own durable step. Delivery
114
+ * has its own state (`decisions.chainStatus`) and its own retries; a delivery failure NEVER fails
115
+ * the workflow — the decision is recorded, and an operator rerun re-enters delivery idempotently
116
+ * (the delivered-once guard). The swallow is reported: a decision that never reached the chain is
117
+ * otherwise invisible to everyone but this log line, and `withSentry` cannot see a caught throw.
118
+ */
119
+ export declare function actStep(env: OracleEnv, deps: PullDeps, step: WorkflowStep, scope: {
120
+ claimId: string;
121
+ collectionId?: string;
122
+ instanceId: string;
123
+ workflow: string;
124
+ }): Promise<ChainWriteOutcome | "failed">;
125
+ //# sourceMappingURL=steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/workflows/steps.ts"],"names":[],"mappings":"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"}