@ixo/decision-oracle 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1117) hide show
  1. package/README.md +794 -2
  2. package/dist/act.d.ts +87 -0
  3. package/dist/act.d.ts.map +1 -0
  4. package/dist/act.js +20 -0
  5. package/dist/act.js.map +1 -0
  6. package/dist/app.d.ts +22 -0
  7. package/dist/app.d.ts.map +1 -0
  8. package/dist/app.js +128 -0
  9. package/dist/app.js.map +1 -0
  10. package/dist/c2pa.wasm +0 -0
  11. package/dist/cli/commands/api.d.ts +50 -0
  12. package/dist/cli/commands/api.d.ts.map +1 -0
  13. package/dist/cli/commands/api.js +737 -0
  14. package/dist/cli/commands/api.js.map +1 -0
  15. package/dist/cli/commands/create-collection.d.ts +40 -0
  16. package/dist/cli/commands/create-collection.d.ts.map +1 -0
  17. package/dist/cli/commands/create-collection.js +318 -0
  18. package/dist/cli/commands/create-collection.js.map +1 -0
  19. package/dist/cli/commands/create-deed.d.ts +31 -0
  20. package/dist/cli/commands/create-deed.d.ts.map +1 -0
  21. package/dist/cli/commands/create-deed.js +208 -0
  22. package/dist/cli/commands/create-deed.js.map +1 -0
  23. package/dist/cli/commands/delegation.d.ts +26 -0
  24. package/dist/cli/commands/delegation.d.ts.map +1 -0
  25. package/dist/cli/commands/delegation.js +162 -0
  26. package/dist/cli/commands/delegation.js.map +1 -0
  27. package/dist/cli/commands/derive.d.ts +22 -0
  28. package/dist/cli/commands/derive.d.ts.map +1 -0
  29. package/dist/cli/commands/derive.js +53 -0
  30. package/dist/cli/commands/derive.js.map +1 -0
  31. package/dist/cli/commands/engine.d.ts +25 -0
  32. package/dist/cli/commands/engine.d.ts.map +1 -0
  33. package/dist/cli/commands/engine.js +107 -0
  34. package/dist/cli/commands/engine.js.map +1 -0
  35. package/dist/cli/commands/erase.d.ts +17 -0
  36. package/dist/cli/commands/erase.d.ts.map +1 -0
  37. package/dist/cli/commands/erase.js +117 -0
  38. package/dist/cli/commands/erase.js.map +1 -0
  39. package/dist/cli/commands/facts-run.d.ts +30 -0
  40. package/dist/cli/commands/facts-run.d.ts.map +1 -0
  41. package/dist/cli/commands/facts-run.js +409 -0
  42. package/dist/cli/commands/facts-run.js.map +1 -0
  43. package/dist/cli/commands/facts-scaffold.d.ts +22 -0
  44. package/dist/cli/commands/facts-scaffold.d.ts.map +1 -0
  45. package/dist/cli/commands/facts-scaffold.js +208 -0
  46. package/dist/cli/commands/facts-scaffold.js.map +1 -0
  47. package/dist/cli/commands/init.d.ts +18 -0
  48. package/dist/cli/commands/init.d.ts.map +1 -0
  49. package/dist/cli/commands/init.js +34 -0
  50. package/dist/cli/commands/init.js.map +1 -0
  51. package/dist/cli/commands/login.d.ts +9 -0
  52. package/dist/cli/commands/login.d.ts.map +1 -0
  53. package/dist/cli/commands/login.js +16 -0
  54. package/dist/cli/commands/login.js.map +1 -0
  55. package/dist/cli/commands/logout.d.ts +10 -0
  56. package/dist/cli/commands/logout.d.ts.map +1 -0
  57. package/dist/cli/commands/logout.js +28 -0
  58. package/dist/cli/commands/logout.js.map +1 -0
  59. package/dist/cli/commands/manifest.d.ts +12 -0
  60. package/dist/cli/commands/manifest.d.ts.map +1 -0
  61. package/dist/cli/commands/manifest.js +48 -0
  62. package/dist/cli/commands/manifest.js.map +1 -0
  63. package/dist/cli/commands/oracle-init.d.ts +48 -0
  64. package/dist/cli/commands/oracle-init.d.ts.map +1 -0
  65. package/dist/cli/commands/oracle-init.js +1122 -0
  66. package/dist/cli/commands/oracle-init.js.map +1 -0
  67. package/dist/cli/commands/org.d.ts +28 -0
  68. package/dist/cli/commands/org.d.ts.map +1 -0
  69. package/dist/cli/commands/org.js +309 -0
  70. package/dist/cli/commands/org.js.map +1 -0
  71. package/dist/cli/commands/protocol-review.d.ts +20 -0
  72. package/dist/cli/commands/protocol-review.d.ts.map +1 -0
  73. package/dist/cli/commands/protocol-review.js +162 -0
  74. package/dist/cli/commands/protocol-review.js.map +1 -0
  75. package/dist/cli/commands/publish-protocol.d.ts +43 -0
  76. package/dist/cli/commands/publish-protocol.d.ts.map +1 -0
  77. package/dist/cli/commands/publish-protocol.js +345 -0
  78. package/dist/cli/commands/publish-protocol.js.map +1 -0
  79. package/dist/cli/commands/register.d.ts +16 -0
  80. package/dist/cli/commands/register.d.ts.map +1 -0
  81. package/dist/cli/commands/register.js +54 -0
  82. package/dist/cli/commands/register.js.map +1 -0
  83. package/dist/cli/commands/relink.d.ts +11 -0
  84. package/dist/cli/commands/relink.d.ts.map +1 -0
  85. package/dist/cli/commands/relink.js +36 -0
  86. package/dist/cli/commands/relink.js.map +1 -0
  87. package/dist/cli/commands/rubric-fetch-form.d.ts +16 -0
  88. package/dist/cli/commands/rubric-fetch-form.d.ts.map +1 -0
  89. package/dist/cli/commands/rubric-fetch-form.js +83 -0
  90. package/dist/cli/commands/rubric-fetch-form.js.map +1 -0
  91. package/dist/cli/commands/rubric-validate.d.ts +72 -0
  92. package/dist/cli/commands/rubric-validate.d.ts.map +1 -0
  93. package/dist/cli/commands/rubric-validate.js +163 -0
  94. package/dist/cli/commands/rubric-validate.js.map +1 -0
  95. package/dist/cli/commands/scan.d.ts +13 -0
  96. package/dist/cli/commands/scan.d.ts.map +1 -0
  97. package/dist/cli/commands/scan.js +39 -0
  98. package/dist/cli/commands/scan.js.map +1 -0
  99. package/dist/cli/commands/skills.d.ts +11 -0
  100. package/dist/cli/commands/skills.d.ts.map +1 -0
  101. package/dist/cli/commands/skills.js +19 -0
  102. package/dist/cli/commands/skills.js.map +1 -0
  103. package/dist/cli/commands/submit-claim.d.ts +25 -0
  104. package/dist/cli/commands/submit-claim.d.ts.map +1 -0
  105. package/dist/cli/commands/submit-claim.js +155 -0
  106. package/dist/cli/commands/submit-claim.js.map +1 -0
  107. package/dist/cli/index.d.ts +15 -0
  108. package/dist/cli/index.d.ts.map +1 -0
  109. package/dist/cli/index.js +206 -0
  110. package/dist/cli/index.js.map +1 -0
  111. package/dist/cli/lib/agent-card-schema.d.ts +8 -0
  112. package/dist/cli/lib/agent-card-schema.d.ts.map +1 -0
  113. package/dist/cli/lib/agent-card-schema.js +169 -0
  114. package/dist/cli/lib/agent-card-schema.js.map +1 -0
  115. package/dist/cli/lib/ai-rest.d.ts +12 -0
  116. package/dist/cli/lib/ai-rest.d.ts.map +1 -0
  117. package/dist/cli/lib/ai-rest.js +36 -0
  118. package/dist/cli/lib/ai-rest.js.map +1 -0
  119. package/dist/cli/lib/args.d.ts +33 -0
  120. package/dist/cli/lib/args.d.ts.map +1 -0
  121. package/dist/cli/lib/args.js +24 -0
  122. package/dist/cli/lib/args.js.map +1 -0
  123. package/dist/cli/lib/authhub.d.ts +7 -0
  124. package/dist/cli/lib/authhub.d.ts.map +1 -0
  125. package/dist/cli/lib/authhub.js +210 -0
  126. package/dist/cli/lib/authhub.js.map +1 -0
  127. package/dist/cli/lib/chain.d.ts +264 -0
  128. package/dist/cli/lib/chain.d.ts.map +1 -0
  129. package/dist/cli/lib/chain.js +584 -0
  130. package/dist/cli/lib/chain.js.map +1 -0
  131. package/dist/cli/lib/devvars.d.ts +59 -0
  132. package/dist/cli/lib/devvars.d.ts.map +1 -0
  133. package/dist/cli/lib/devvars.js +206 -0
  134. package/dist/cli/lib/devvars.js.map +1 -0
  135. package/dist/cli/lib/engine.d.ts +54 -0
  136. package/dist/cli/lib/engine.d.ts.map +1 -0
  137. package/dist/cli/lib/engine.js +112 -0
  138. package/dist/cli/lib/engine.js.map +1 -0
  139. package/dist/cli/lib/identity-cards.d.ts +188 -0
  140. package/dist/cli/lib/identity-cards.d.ts.map +1 -0
  141. package/dist/cli/lib/identity-cards.js +261 -0
  142. package/dist/cli/lib/identity-cards.js.map +1 -0
  143. package/dist/cli/lib/matrix-account.d.ts +79 -0
  144. package/dist/cli/lib/matrix-account.d.ts.map +1 -0
  145. package/dist/cli/lib/matrix-account.js +228 -0
  146. package/dist/cli/lib/matrix-account.js.map +1 -0
  147. package/dist/cli/lib/oracle-account.d.ts +108 -0
  148. package/dist/cli/lib/oracle-account.d.ts.map +1 -0
  149. package/dist/cli/lib/oracle-account.js +207 -0
  150. package/dist/cli/lib/oracle-account.js.map +1 -0
  151. package/dist/cli/lib/project.d.ts +22 -0
  152. package/dist/cli/lib/project.d.ts.map +1 -0
  153. package/dist/cli/lib/project.js +62 -0
  154. package/dist/cli/lib/project.js.map +1 -0
  155. package/dist/cli/lib/session.d.ts +109 -0
  156. package/dist/cli/lib/session.d.ts.map +1 -0
  157. package/dist/cli/lib/session.js +354 -0
  158. package/dist/cli/lib/session.js.map +1 -0
  159. package/dist/cli/lib/workorder.d.ts +57 -0
  160. package/dist/cli/lib/workorder.d.ts.map +1 -0
  161. package/dist/cli/lib/workorder.js +101 -0
  162. package/dist/cli/lib/workorder.js.map +1 -0
  163. package/dist/config.d.ts +221 -0
  164. package/dist/config.d.ts.map +1 -0
  165. package/dist/config.js +431 -0
  166. package/dist/config.js.map +1 -0
  167. package/dist/context.d.ts +88 -0
  168. package/dist/context.d.ts.map +1 -0
  169. package/dist/context.js +9 -0
  170. package/dist/context.js.map +1 -0
  171. package/dist/contracts/api.d.ts +3367 -0
  172. package/dist/contracts/api.d.ts.map +1 -0
  173. package/dist/contracts/api.js +1303 -0
  174. package/dist/contracts/api.js.map +1 -0
  175. package/dist/contracts/capabilities.d.ts +126 -0
  176. package/dist/contracts/capabilities.d.ts.map +1 -0
  177. package/dist/contracts/capabilities.js +164 -0
  178. package/dist/contracts/capabilities.js.map +1 -0
  179. package/dist/contracts/claim-source.d.ts +98 -0
  180. package/dist/contracts/claim-source.d.ts.map +1 -0
  181. package/dist/contracts/claim-source.js +17 -0
  182. package/dist/contracts/claim-source.js.map +1 -0
  183. package/dist/contracts/errors.d.ts +150 -0
  184. package/dist/contracts/errors.d.ts.map +1 -0
  185. package/dist/contracts/errors.js +121 -0
  186. package/dist/contracts/errors.js.map +1 -0
  187. package/dist/contracts/index.d.ts +15 -0
  188. package/dist/contracts/index.d.ts.map +1 -0
  189. package/dist/contracts/index.js +11 -0
  190. package/dist/contracts/index.js.map +1 -0
  191. package/dist/contracts/payment-gate.d.ts +129 -0
  192. package/dist/contracts/payment-gate.d.ts.map +1 -0
  193. package/dist/contracts/payment-gate.js +24 -0
  194. package/dist/contracts/payment-gate.js.map +1 -0
  195. package/dist/contracts/start-api-claim.d.ts +90 -0
  196. package/dist/contracts/start-api-claim.d.ts.map +1 -0
  197. package/dist/contracts/start-api-claim.js +22 -0
  198. package/dist/contracts/start-api-claim.js.map +1 -0
  199. package/dist/contracts/webhooks.d.ts +1487 -0
  200. package/dist/contracts/webhooks.d.ts.map +1 -0
  201. package/dist/contracts/webhooks.js +71 -0
  202. package/dist/contracts/webhooks.js.map +1 -0
  203. package/dist/contracts/work-order.d.ts +29 -0
  204. package/dist/contracts/work-order.d.ts.map +1 -0
  205. package/dist/contracts/work-order.js +12 -0
  206. package/dist/contracts/work-order.js.map +1 -0
  207. package/dist/cron/ai-cost.d.ts +29 -0
  208. package/dist/cron/ai-cost.d.ts.map +1 -0
  209. package/dist/cron/ai-cost.js +80 -0
  210. package/dist/cron/ai-cost.js.map +1 -0
  211. package/dist/cron/api-lane.d.ts +39 -0
  212. package/dist/cron/api-lane.d.ts.map +1 -0
  213. package/dist/cron/api-lane.js +203 -0
  214. package/dist/cron/api-lane.js.map +1 -0
  215. package/dist/cron/backlog.d.ts +50 -0
  216. package/dist/cron/backlog.d.ts.map +1 -0
  217. package/dist/cron/backlog.js +115 -0
  218. package/dist/cron/backlog.js.map +1 -0
  219. package/dist/cron/billing.d.ts +11 -0
  220. package/dist/cron/billing.d.ts.map +1 -0
  221. package/dist/cron/billing.js +69 -0
  222. package/dist/cron/billing.js.map +1 -0
  223. package/dist/cron/collection.d.ts +50 -0
  224. package/dist/cron/collection.d.ts.map +1 -0
  225. package/dist/cron/collection.js +118 -0
  226. package/dist/cron/collection.js.map +1 -0
  227. package/dist/cron/funding.d.ts +16 -0
  228. package/dist/cron/funding.d.ts.map +1 -0
  229. package/dist/cron/funding.js +262 -0
  230. package/dist/cron/funding.js.map +1 -0
  231. package/dist/cron/payer-billing.d.ts +38 -0
  232. package/dist/cron/payer-billing.d.ts.map +1 -0
  233. package/dist/cron/payer-billing.js +119 -0
  234. package/dist/cron/payer-billing.js.map +1 -0
  235. package/dist/cron/scan.d.ts +43 -0
  236. package/dist/cron/scan.d.ts.map +1 -0
  237. package/dist/cron/scan.js +250 -0
  238. package/dist/cron/scan.js.map +1 -0
  239. package/dist/db/client.d.ts +14 -0
  240. package/dist/db/client.d.ts.map +1 -0
  241. package/dist/db/client.js +14 -0
  242. package/dist/db/client.js.map +1 -0
  243. package/dist/db/index.d.ts +7 -0
  244. package/dist/db/index.d.ts.map +1 -0
  245. package/dist/db/index.js +7 -0
  246. package/dist/db/index.js.map +1 -0
  247. package/dist/db/schema.d.ts +6738 -0
  248. package/dist/db/schema.d.ts.map +1 -0
  249. package/dist/db/schema.js +1433 -0
  250. package/dist/db/schema.js.map +1 -0
  251. package/dist/define-oracle.d.ts +32 -0
  252. package/dist/define-oracle.d.ts.map +1 -0
  253. package/dist/define-oracle.js +80 -0
  254. package/dist/define-oracle.js.map +1 -0
  255. package/dist/dev-oracle.d.ts +9 -0
  256. package/dist/dev-oracle.d.ts.map +1 -0
  257. package/dist/dev-oracle.js +19 -0
  258. package/dist/dev-oracle.js.map +1 -0
  259. package/dist/dev-worker.d.ts +10 -0
  260. package/dist/dev-worker.d.ts.map +1 -0
  261. package/dist/dev-worker.js +12 -0
  262. package/dist/dev-worker.js.map +1 -0
  263. package/dist/env.d.ts +146 -0
  264. package/dist/env.d.ts.map +1 -0
  265. package/dist/env.js +10 -0
  266. package/dist/env.js.map +1 -0
  267. package/dist/facts/exif.d.ts +43 -0
  268. package/dist/facts/exif.d.ts.map +1 -0
  269. package/dist/facts/exif.js +224 -0
  270. package/dist/facts/exif.js.map +1 -0
  271. package/dist/facts/fact.d.ts +62 -0
  272. package/dist/facts/fact.d.ts.map +1 -0
  273. package/dist/facts/fact.js +105 -0
  274. package/dist/facts/fact.js.map +1 -0
  275. package/dist/facts/geo.d.ts +55 -0
  276. package/dist/facts/geo.d.ts.map +1 -0
  277. package/dist/facts/geo.js +267 -0
  278. package/dist/facts/geo.js.map +1 -0
  279. package/dist/facts/index.d.ts +31 -0
  280. package/dist/facts/index.d.ts.map +1 -0
  281. package/dist/facts/index.js +27 -0
  282. package/dist/facts/index.js.map +1 -0
  283. package/dist/facts/linked-doc.d.ts +60 -0
  284. package/dist/facts/linked-doc.d.ts.map +1 -0
  285. package/dist/facts/linked-doc.js +101 -0
  286. package/dist/facts/linked-doc.js.map +1 -0
  287. package/dist/facts/types.d.ts +278 -0
  288. package/dist/facts/types.d.ts.map +1 -0
  289. package/dist/facts/types.js +19 -0
  290. package/dist/facts/types.js.map +1 -0
  291. package/dist/index.d.ts +25 -0
  292. package/dist/index.d.ts.map +1 -0
  293. package/dist/index.js +19 -0
  294. package/dist/index.js.map +1 -0
  295. package/dist/lib/api-lane/accept.d.ts +29 -0
  296. package/dist/lib/api-lane/accept.d.ts.map +1 -0
  297. package/dist/lib/api-lane/accept.js +218 -0
  298. package/dist/lib/api-lane/accept.js.map +1 -0
  299. package/dist/lib/api-lane/claim-list.d.ts +44 -0
  300. package/dist/lib/api-lane/claim-list.d.ts.map +1 -0
  301. package/dist/lib/api-lane/claim-list.js +92 -0
  302. package/dist/lib/api-lane/claim-list.js.map +1 -0
  303. package/dist/lib/api-lane/company.d.ts +56 -0
  304. package/dist/lib/api-lane/company.d.ts.map +1 -0
  305. package/dist/lib/api-lane/company.js +103 -0
  306. package/dist/lib/api-lane/company.js.map +1 -0
  307. package/dist/lib/api-lane/events.d.ts +21 -0
  308. package/dist/lib/api-lane/events.d.ts.map +1 -0
  309. package/dist/lib/api-lane/events.js +111 -0
  310. package/dist/lib/api-lane/events.js.map +1 -0
  311. package/dist/lib/api-lane/ids.d.ts +39 -0
  312. package/dist/lib/api-lane/ids.d.ts.map +1 -0
  313. package/dist/lib/api-lane/ids.js +78 -0
  314. package/dist/lib/api-lane/ids.js.map +1 -0
  315. package/dist/lib/api-lane/index.d.ts +16 -0
  316. package/dist/lib/api-lane/index.d.ts.map +1 -0
  317. package/dist/lib/api-lane/index.js +16 -0
  318. package/dist/lib/api-lane/index.js.map +1 -0
  319. package/dist/lib/api-lane/linked.d.ts +264 -0
  320. package/dist/lib/api-lane/linked.d.ts.map +1 -0
  321. package/dist/lib/api-lane/linked.js +272 -0
  322. package/dist/lib/api-lane/linked.js.map +1 -0
  323. package/dist/lib/api-lane/media-type.d.ts +15 -0
  324. package/dist/lib/api-lane/media-type.d.ts.map +1 -0
  325. package/dist/lib/api-lane/media-type.js +73 -0
  326. package/dist/lib/api-lane/media-type.js.map +1 -0
  327. package/dist/lib/api-lane/member-emails.d.ts +83 -0
  328. package/dist/lib/api-lane/member-emails.d.ts.map +1 -0
  329. package/dist/lib/api-lane/member-emails.js +213 -0
  330. package/dist/lib/api-lane/member-emails.js.map +1 -0
  331. package/dist/lib/api-lane/members.d.ts +42 -0
  332. package/dist/lib/api-lane/members.d.ts.map +1 -0
  333. package/dist/lib/api-lane/members.js +75 -0
  334. package/dist/lib/api-lane/members.js.map +1 -0
  335. package/dist/lib/api-lane/notify.d.ts +47 -0
  336. package/dist/lib/api-lane/notify.d.ts.map +1 -0
  337. package/dist/lib/api-lane/notify.js +240 -0
  338. package/dist/lib/api-lane/notify.js.map +1 -0
  339. package/dist/lib/api-lane/pause.d.ts +41 -0
  340. package/dist/lib/api-lane/pause.d.ts.map +1 -0
  341. package/dist/lib/api-lane/pause.js +155 -0
  342. package/dist/lib/api-lane/pause.js.map +1 -0
  343. package/dist/lib/api-lane/record.d.ts +76 -0
  344. package/dist/lib/api-lane/record.d.ts.map +1 -0
  345. package/dist/lib/api-lane/record.js +337 -0
  346. package/dist/lib/api-lane/record.js.map +1 -0
  347. package/dist/lib/api-lane/retention.d.ts +43 -0
  348. package/dist/lib/api-lane/retention.d.ts.map +1 -0
  349. package/dist/lib/api-lane/retention.js +176 -0
  350. package/dist/lib/api-lane/retention.js.map +1 -0
  351. package/dist/lib/api-lane/review.d.ts +76 -0
  352. package/dist/lib/api-lane/review.d.ts.map +1 -0
  353. package/dist/lib/api-lane/review.js +355 -0
  354. package/dist/lib/api-lane/review.js.map +1 -0
  355. package/dist/lib/api-lane/reviewers.d.ts +109 -0
  356. package/dist/lib/api-lane/reviewers.d.ts.map +1 -0
  357. package/dist/lib/api-lane/reviewers.js +755 -0
  358. package/dist/lib/api-lane/reviewers.js.map +1 -0
  359. package/dist/lib/api-lane/source-delete.d.ts +16 -0
  360. package/dist/lib/api-lane/source-delete.d.ts.map +1 -0
  361. package/dist/lib/api-lane/source-delete.js +50 -0
  362. package/dist/lib/api-lane/source-delete.js.map +1 -0
  363. package/dist/lib/api-lane/source.d.ts +19 -0
  364. package/dist/lib/api-lane/source.d.ts.map +1 -0
  365. package/dist/lib/api-lane/source.js +226 -0
  366. package/dist/lib/api-lane/source.js.map +1 -0
  367. package/dist/lib/api-lane/submitter.d.ts +22 -0
  368. package/dist/lib/api-lane/submitter.d.ts.map +1 -0
  369. package/dist/lib/api-lane/submitter.js +34 -0
  370. package/dist/lib/api-lane/submitter.js.map +1 -0
  371. package/dist/lib/api-lane/timeline.d.ts +20 -0
  372. package/dist/lib/api-lane/timeline.d.ts.map +1 -0
  373. package/dist/lib/api-lane/timeline.js +23 -0
  374. package/dist/lib/api-lane/timeline.js.map +1 -0
  375. package/dist/lib/api-lane/webhook-crypto.d.ts +44 -0
  376. package/dist/lib/api-lane/webhook-crypto.d.ts.map +1 -0
  377. package/dist/lib/api-lane/webhook-crypto.js +103 -0
  378. package/dist/lib/api-lane/webhook-crypto.js.map +1 -0
  379. package/dist/lib/api-lane/webhooks.d.ts +117 -0
  380. package/dist/lib/api-lane/webhooks.d.ts.map +1 -0
  381. package/dist/lib/api-lane/webhooks.js +503 -0
  382. package/dist/lib/api-lane/webhooks.js.map +1 -0
  383. package/dist/lib/archive.d.ts +64 -0
  384. package/dist/lib/archive.d.ts.map +1 -0
  385. package/dist/lib/archive.js +305 -0
  386. package/dist/lib/archive.js.map +1 -0
  387. package/dist/lib/bech32.d.ts +8 -0
  388. package/dist/lib/bech32.d.ts.map +1 -0
  389. package/dist/lib/bech32.js +39 -0
  390. package/dist/lib/bech32.js.map +1 -0
  391. package/dist/lib/claim-erase.d.ts +22 -0
  392. package/dist/lib/claim-erase.d.ts.map +1 -0
  393. package/dist/lib/claim-erase.js +44 -0
  394. package/dist/lib/claim-erase.js.map +1 -0
  395. package/dist/lib/cursor.d.ts +11 -0
  396. package/dist/lib/cursor.d.ts.map +1 -0
  397. package/dist/lib/cursor.js +20 -0
  398. package/dist/lib/cursor.js.map +1 -0
  399. package/dist/lib/email/send.d.ts +43 -0
  400. package/dist/lib/email/send.d.ts.map +1 -0
  401. package/dist/lib/email/send.js +71 -0
  402. package/dist/lib/email/send.js.map +1 -0
  403. package/dist/lib/email/template.d.ts +217 -0
  404. package/dist/lib/email/template.d.ts.map +1 -0
  405. package/dist/lib/email/template.js +713 -0
  406. package/dist/lib/email/template.js.map +1 -0
  407. package/dist/lib/engine/adr36.d.ts +56 -0
  408. package/dist/lib/engine/adr36.d.ts.map +1 -0
  409. package/dist/lib/engine/adr36.js +76 -0
  410. package/dist/lib/engine/adr36.js.map +1 -0
  411. package/dist/lib/engine/client.d.ts +162 -0
  412. package/dist/lib/engine/client.d.ts.map +1 -0
  413. package/dist/lib/engine/client.js +473 -0
  414. package/dist/lib/engine/client.js.map +1 -0
  415. package/dist/lib/engine/types.d.ts +1356 -0
  416. package/dist/lib/engine/types.d.ts.map +1 -0
  417. package/dist/lib/engine/types.js +562 -0
  418. package/dist/lib/engine/types.js.map +1 -0
  419. package/dist/lib/errors.d.ts +73 -0
  420. package/dist/lib/errors.d.ts.map +1 -0
  421. package/dist/lib/errors.js +96 -0
  422. package/dist/lib/errors.js.map +1 -0
  423. package/dist/lib/facts/builder.d.ts +88 -0
  424. package/dist/lib/facts/builder.d.ts.map +1 -0
  425. package/dist/lib/facts/builder.js +239 -0
  426. package/dist/lib/facts/builder.js.map +1 -0
  427. package/dist/lib/facts/ctx.d.ts +34 -0
  428. package/dist/lib/facts/ctx.d.ts.map +1 -0
  429. package/dist/lib/facts/ctx.js +51 -0
  430. package/dist/lib/facts/ctx.js.map +1 -0
  431. package/dist/lib/facts/expected.d.ts +23 -0
  432. package/dist/lib/facts/expected.d.ts.map +1 -0
  433. package/dist/lib/facts/expected.js +16 -0
  434. package/dist/lib/facts/expected.js.map +1 -0
  435. package/dist/lib/facts/fact-cache.d.ts +469 -0
  436. package/dist/lib/facts/fact-cache.d.ts.map +1 -0
  437. package/dist/lib/facts/fact-cache.js +52 -0
  438. package/dist/lib/facts/fact-cache.js.map +1 -0
  439. package/dist/lib/facts/factset.d.ts +608 -0
  440. package/dist/lib/facts/factset.d.ts.map +1 -0
  441. package/dist/lib/facts/factset.js +226 -0
  442. package/dist/lib/facts/factset.js.map +1 -0
  443. package/dist/lib/facts/producer.d.ts +190 -0
  444. package/dist/lib/facts/producer.d.ts.map +1 -0
  445. package/dist/lib/facts/producer.js +15 -0
  446. package/dist/lib/facts/producer.js.map +1 -0
  447. package/dist/lib/facts/runner.d.ts +111 -0
  448. package/dist/lib/facts/runner.d.ts.map +1 -0
  449. package/dist/lib/facts/runner.js +438 -0
  450. package/dist/lib/facts/runner.js.map +1 -0
  451. package/dist/lib/facts/stock/ai-check.d.ts +100 -0
  452. package/dist/lib/facts/stock/ai-check.d.ts.map +1 -0
  453. package/dist/lib/facts/stock/ai-check.js +526 -0
  454. package/dist/lib/facts/stock/ai-check.js.map +1 -0
  455. package/dist/lib/facts/stock/ai-inputs.d.ts +104 -0
  456. package/dist/lib/facts/stock/ai-inputs.d.ts.map +1 -0
  457. package/dist/lib/facts/stock/ai-inputs.js +332 -0
  458. package/dist/lib/facts/stock/ai-inputs.js.map +1 -0
  459. package/dist/lib/facts/stock/ai-provider.d.ts +105 -0
  460. package/dist/lib/facts/stock/ai-provider.d.ts.map +1 -0
  461. package/dist/lib/facts/stock/ai-provider.js +250 -0
  462. package/dist/lib/facts/stock/ai-provider.js.map +1 -0
  463. package/dist/lib/facts/stock/ai-unique.d.ts +85 -0
  464. package/dist/lib/facts/stock/ai-unique.d.ts.map +1 -0
  465. package/dist/lib/facts/stock/ai-unique.js +208 -0
  466. package/dist/lib/facts/stock/ai-unique.js.map +1 -0
  467. package/dist/lib/facts/stock/archive.d.ts +63 -0
  468. package/dist/lib/facts/stock/archive.d.ts.map +1 -0
  469. package/dist/lib/facts/stock/archive.js +349 -0
  470. package/dist/lib/facts/stock/archive.js.map +1 -0
  471. package/dist/lib/facts/stock/c2pa-trust-list.d.ts +16 -0
  472. package/dist/lib/facts/stock/c2pa-trust-list.d.ts.map +1 -0
  473. package/dist/lib/facts/stock/c2pa-trust-list.js +637 -0
  474. package/dist/lib/facts/stock/c2pa-trust-list.js.map +1 -0
  475. package/dist/lib/facts/stock/c2pa.d.ts +56 -0
  476. package/dist/lib/facts/stock/c2pa.d.ts.map +1 -0
  477. package/dist/lib/facts/stock/c2pa.js +234 -0
  478. package/dist/lib/facts/stock/c2pa.js.map +1 -0
  479. package/dist/lib/facts/stock/call.d.ts +91 -0
  480. package/dist/lib/facts/stock/call.d.ts.map +1 -0
  481. package/dist/lib/facts/stock/call.js +281 -0
  482. package/dist/lib/facts/stock/call.js.map +1 -0
  483. package/dist/lib/facts/stock/capability.d.ts +39 -0
  484. package/dist/lib/facts/stock/capability.d.ts.map +1 -0
  485. package/dist/lib/facts/stock/capability.js +59 -0
  486. package/dist/lib/facts/stock/capability.js.map +1 -0
  487. package/dist/lib/facts/stock/ext-source.d.ts +51 -0
  488. package/dist/lib/facts/stock/ext-source.d.ts.map +1 -0
  489. package/dist/lib/facts/stock/ext-source.js +201 -0
  490. package/dist/lib/facts/stock/ext-source.js.map +1 -0
  491. package/dist/lib/facts/stock/frequency-fact.d.ts +59 -0
  492. package/dist/lib/facts/stock/frequency-fact.d.ts.map +1 -0
  493. package/dist/lib/facts/stock/frequency-fact.js +86 -0
  494. package/dist/lib/facts/stock/frequency-fact.js.map +1 -0
  495. package/dist/lib/facts/stock/frequency.d.ts +32 -0
  496. package/dist/lib/facts/stock/frequency.d.ts.map +1 -0
  497. package/dist/lib/facts/stock/frequency.js +48 -0
  498. package/dist/lib/facts/stock/frequency.js.map +1 -0
  499. package/dist/lib/facts/stock/index.d.ts +27 -0
  500. package/dist/lib/facts/stock/index.d.ts.map +1 -0
  501. package/dist/lib/facts/stock/index.js +28 -0
  502. package/dist/lib/facts/stock/index.js.map +1 -0
  503. package/dist/lib/facts/stock/normalize.d.ts +45 -0
  504. package/dist/lib/facts/stock/normalize.d.ts.map +1 -0
  505. package/dist/lib/facts/stock/normalize.js +135 -0
  506. package/dist/lib/facts/stock/normalize.js.map +1 -0
  507. package/dist/lib/facts/stock/phash.d.ts +55 -0
  508. package/dist/lib/facts/stock/phash.d.ts.map +1 -0
  509. package/dist/lib/facts/stock/phash.js +256 -0
  510. package/dist/lib/facts/stock/phash.js.map +1 -0
  511. package/dist/lib/facts/stock/rule-defaults.d.ts +72 -0
  512. package/dist/lib/facts/stock/rule-defaults.d.ts.map +1 -0
  513. package/dist/lib/facts/stock/rule-defaults.js +55 -0
  514. package/dist/lib/facts/stock/rule-defaults.js.map +1 -0
  515. package/dist/lib/facts/stock/send.d.ts +52 -0
  516. package/dist/lib/facts/stock/send.d.ts.map +1 -0
  517. package/dist/lib/facts/stock/send.js +148 -0
  518. package/dist/lib/facts/stock/send.js.map +1 -0
  519. package/dist/lib/facts/stock/unique-score.d.ts +138 -0
  520. package/dist/lib/facts/stock/unique-score.d.ts.map +1 -0
  521. package/dist/lib/facts/stock/unique-score.js +257 -0
  522. package/dist/lib/facts/stock/unique-score.js.map +1 -0
  523. package/dist/lib/facts/stock/unique-store.d.ts +420 -0
  524. package/dist/lib/facts/stock/unique-store.d.ts.map +1 -0
  525. package/dist/lib/facts/stock/unique-store.js +328 -0
  526. package/dist/lib/facts/stock/unique-store.js.map +1 -0
  527. package/dist/lib/facts/stock/unique.d.ts +35 -0
  528. package/dist/lib/facts/stock/unique.d.ts.map +1 -0
  529. package/dist/lib/facts/stock/unique.js +327 -0
  530. package/dist/lib/facts/stock/unique.js.map +1 -0
  531. package/dist/lib/facts/tools.d.ts +57 -0
  532. package/dist/lib/facts/tools.d.ts.map +1 -0
  533. package/dist/lib/facts/tools.js +325 -0
  534. package/dist/lib/facts/tools.js.map +1 -0
  535. package/dist/lib/facts/validate.d.ts +33 -0
  536. package/dist/lib/facts/validate.d.ts.map +1 -0
  537. package/dist/lib/facts/validate.js +137 -0
  538. package/dist/lib/facts/validate.js.map +1 -0
  539. package/dist/lib/hash.d.ts +44 -0
  540. package/dist/lib/hash.d.ts.map +1 -0
  541. package/dist/lib/hash.js +80 -0
  542. package/dist/lib/hash.js.map +1 -0
  543. package/dist/lib/http/client.d.ts +113 -0
  544. package/dist/lib/http/client.d.ts.map +1 -0
  545. package/dist/lib/http/client.js +330 -0
  546. package/dist/lib/http/client.js.map +1 -0
  547. package/dist/lib/ids.d.ts +17 -0
  548. package/dist/lib/ids.d.ts.map +1 -0
  549. package/dist/lib/ids.js +26 -0
  550. package/dist/lib/ids.js.map +1 -0
  551. package/dist/lib/ixo/attachments.d.ts +116 -0
  552. package/dist/lib/ixo/attachments.d.ts.map +1 -0
  553. package/dist/lib/ixo/attachments.js +290 -0
  554. package/dist/lib/ixo/attachments.js.map +1 -0
  555. package/dist/lib/ixo/authz.d.ts +40 -0
  556. package/dist/lib/ixo/authz.d.ts.map +1 -0
  557. package/dist/lib/ixo/authz.js +113 -0
  558. package/dist/lib/ixo/authz.js.map +1 -0
  559. package/dist/lib/ixo/blocksync/index.d.ts +90 -0
  560. package/dist/lib/ixo/blocksync/index.d.ts.map +1 -0
  561. package/dist/lib/ixo/blocksync/index.js +251 -0
  562. package/dist/lib/ixo/blocksync/index.js.map +1 -0
  563. package/dist/lib/ixo/blocksync/queries.d.ts +15 -0
  564. package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -0
  565. package/dist/lib/ixo/blocksync/queries.js +144 -0
  566. package/dist/lib/ixo/blocksync/queries.js.map +1 -0
  567. package/dist/lib/ixo/blocksync/types.d.ts +184 -0
  568. package/dist/lib/ixo/blocksync/types.d.ts.map +1 -0
  569. package/dist/lib/ixo/blocksync/types.js +108 -0
  570. package/dist/lib/ixo/blocksync/types.js.map +1 -0
  571. package/dist/lib/ixo/cellnode.d.ts +35 -0
  572. package/dist/lib/ixo/cellnode.d.ts.map +1 -0
  573. package/dist/lib/ixo/cellnode.js +43 -0
  574. package/dist/lib/ixo/cellnode.js.map +1 -0
  575. package/dist/lib/ixo/chain-write.d.ts +130 -0
  576. package/dist/lib/ixo/chain-write.d.ts.map +1 -0
  577. package/dist/lib/ixo/chain-write.js +460 -0
  578. package/dist/lib/ixo/chain-write.js.map +1 -0
  579. package/dist/lib/ixo/chain.d.ts +1046 -0
  580. package/dist/lib/ixo/chain.d.ts.map +1 -0
  581. package/dist/lib/ixo/chain.js +279 -0
  582. package/dist/lib/ixo/chain.js.map +1 -0
  583. package/dist/lib/ixo/claim-bot.d.ts +49 -0
  584. package/dist/lib/ixo/claim-bot.d.ts.map +1 -0
  585. package/dist/lib/ixo/claim-bot.js +141 -0
  586. package/dist/lib/ixo/claim-bot.js.map +1 -0
  587. package/dist/lib/ixo/delegation-verify.d.ts +44 -0
  588. package/dist/lib/ixo/delegation-verify.d.ts.map +1 -0
  589. package/dist/lib/ixo/delegation-verify.js +101 -0
  590. package/dist/lib/ixo/delegation-verify.js.map +1 -0
  591. package/dist/lib/ixo/did.d.ts +13 -0
  592. package/dist/lib/ixo/did.d.ts.map +1 -0
  593. package/dist/lib/ixo/did.js +85 -0
  594. package/dist/lib/ixo/did.js.map +1 -0
  595. package/dist/lib/ixo/grant-chain.d.ts +55 -0
  596. package/dist/lib/ixo/grant-chain.d.ts.map +1 -0
  597. package/dist/lib/ixo/grant-chain.js +185 -0
  598. package/dist/lib/ixo/grant-chain.js.map +1 -0
  599. package/dist/lib/ixo/identity.d.ts +32 -0
  600. package/dist/lib/ixo/identity.d.ts.map +1 -0
  601. package/dist/lib/ixo/identity.js +104 -0
  602. package/dist/lib/ixo/identity.js.map +1 -0
  603. package/dist/lib/ixo/index.d.ts +118 -0
  604. package/dist/lib/ixo/index.d.ts.map +1 -0
  605. package/dist/lib/ixo/index.js +395 -0
  606. package/dist/lib/ixo/index.js.map +1 -0
  607. package/dist/lib/ixo/payment.d.ts +104 -0
  608. package/dist/lib/ixo/payment.d.ts.map +1 -0
  609. package/dist/lib/ixo/payment.js +136 -0
  610. package/dist/lib/ixo/payment.js.map +1 -0
  611. package/dist/lib/ixo/ucan-store.d.ts +30 -0
  612. package/dist/lib/ixo/ucan-store.d.ts.map +1 -0
  613. package/dist/lib/ixo/ucan-store.js +134 -0
  614. package/dist/lib/ixo/ucan-store.js.map +1 -0
  615. package/dist/lib/ixo/ucan.d.ts +96 -0
  616. package/dist/lib/ixo/ucan.d.ts.map +1 -0
  617. package/dist/lib/ixo/ucan.js +216 -0
  618. package/dist/lib/ixo/ucan.js.map +1 -0
  619. package/dist/lib/ixo/verified-read.d.ts +43 -0
  620. package/dist/lib/ixo/verified-read.d.ts.map +1 -0
  621. package/dist/lib/ixo/verified-read.js +73 -0
  622. package/dist/lib/ixo/verified-read.js.map +1 -0
  623. package/dist/lib/ixo/vfs.d.ts +27 -0
  624. package/dist/lib/ixo/vfs.d.ts.map +1 -0
  625. package/dist/lib/ixo/vfs.js +42 -0
  626. package/dist/lib/ixo/vfs.js.map +1 -0
  627. package/dist/lib/ixo/web-did.d.ts +7 -0
  628. package/dist/lib/ixo/web-did.d.ts.map +1 -0
  629. package/dist/lib/ixo/web-did.js +9 -0
  630. package/dist/lib/ixo/web-did.js.map +1 -0
  631. package/dist/lib/logger.d.ts +34 -0
  632. package/dist/lib/logger.d.ts.map +1 -0
  633. package/dist/lib/logger.js +126 -0
  634. package/dist/lib/logger.js.map +1 -0
  635. package/dist/lib/matrix/api.d.ts +57 -0
  636. package/dist/lib/matrix/api.d.ts.map +1 -0
  637. package/dist/lib/matrix/api.js +58 -0
  638. package/dist/lib/matrix/api.js.map +1 -0
  639. package/dist/lib/matrix/client.d.ts +41 -0
  640. package/dist/lib/matrix/client.d.ts.map +1 -0
  641. package/dist/lib/matrix/client.js +104 -0
  642. package/dist/lib/matrix/client.js.map +1 -0
  643. package/dist/lib/matrix/deliver.d.ts +224 -0
  644. package/dist/lib/matrix/deliver.d.ts.map +1 -0
  645. package/dist/lib/matrix/deliver.js +788 -0
  646. package/dist/lib/matrix/deliver.js.map +1 -0
  647. package/dist/lib/matrix/events.d.ts +114 -0
  648. package/dist/lib/matrix/events.d.ts.map +1 -0
  649. package/dist/lib/matrix/events.js +143 -0
  650. package/dist/lib/matrix/events.js.map +1 -0
  651. package/dist/lib/matrix/mxid.d.ts +24 -0
  652. package/dist/lib/matrix/mxid.d.ts.map +1 -0
  653. package/dist/lib/matrix/mxid.js +47 -0
  654. package/dist/lib/matrix/mxid.js.map +1 -0
  655. package/dist/lib/metrics.d.ts +105 -0
  656. package/dist/lib/metrics.d.ts.map +1 -0
  657. package/dist/lib/metrics.js +204 -0
  658. package/dist/lib/metrics.js.map +1 -0
  659. package/dist/lib/oauth/approvals.d.ts +160 -0
  660. package/dist/lib/oauth/approvals.d.ts.map +1 -0
  661. package/dist/lib/oauth/approvals.js +273 -0
  662. package/dist/lib/oauth/approvals.js.map +1 -0
  663. package/dist/lib/oauth/standing.d.ts +152 -0
  664. package/dist/lib/oauth/standing.d.ts.map +1 -0
  665. package/dist/lib/oauth/standing.js +299 -0
  666. package/dist/lib/oauth/standing.js.map +1 -0
  667. package/dist/lib/oauth/token.d.ts +60 -0
  668. package/dist/lib/oauth/token.d.ts.map +1 -0
  669. package/dist/lib/oauth/token.js +129 -0
  670. package/dist/lib/oauth/token.js.map +1 -0
  671. package/dist/lib/payments/extend.d.ts +42 -0
  672. package/dist/lib/payments/extend.d.ts.map +1 -0
  673. package/dist/lib/payments/extend.js +98 -0
  674. package/dist/lib/payments/extend.js.map +1 -0
  675. package/dist/lib/payments/facilitator.d.ts +220 -0
  676. package/dist/lib/payments/facilitator.d.ts.map +1 -0
  677. package/dist/lib/payments/facilitator.js +451 -0
  678. package/dist/lib/payments/facilitator.js.map +1 -0
  679. package/dist/lib/payments/gate.d.ts +207 -0
  680. package/dist/lib/payments/gate.d.ts.map +1 -0
  681. package/dist/lib/payments/gate.js +481 -0
  682. package/dist/lib/payments/gate.js.map +1 -0
  683. package/dist/lib/payments/header-seal.d.ts +33 -0
  684. package/dist/lib/payments/header-seal.d.ts.map +1 -0
  685. package/dist/lib/payments/header-seal.js +76 -0
  686. package/dist/lib/payments/header-seal.js.map +1 -0
  687. package/dist/lib/payments/index.d.ts +12 -0
  688. package/dist/lib/payments/index.d.ts.map +1 -0
  689. package/dist/lib/payments/index.js +11 -0
  690. package/dist/lib/payments/index.js.map +1 -0
  691. package/dist/lib/payments/price.d.ts +25 -0
  692. package/dist/lib/payments/price.d.ts.map +1 -0
  693. package/dist/lib/payments/price.js +43 -0
  694. package/dist/lib/payments/price.js.map +1 -0
  695. package/dist/lib/payments/reconcile.d.ts +77 -0
  696. package/dist/lib/payments/reconcile.d.ts.map +1 -0
  697. package/dist/lib/payments/reconcile.js +317 -0
  698. package/dist/lib/payments/reconcile.js.map +1 -0
  699. package/dist/lib/payments/refund.d.ts +34 -0
  700. package/dist/lib/payments/refund.d.ts.map +1 -0
  701. package/dist/lib/payments/refund.js +123 -0
  702. package/dist/lib/payments/refund.js.map +1 -0
  703. package/dist/lib/payments/review-billing.d.ts +222 -0
  704. package/dist/lib/payments/review-billing.d.ts.map +1 -0
  705. package/dist/lib/payments/review-billing.js +609 -0
  706. package/dist/lib/payments/review-billing.js.map +1 -0
  707. package/dist/lib/payments/settle.d.ts +44 -0
  708. package/dist/lib/payments/settle.d.ts.map +1 -0
  709. package/dist/lib/payments/settle.js +306 -0
  710. package/dist/lib/payments/settle.js.map +1 -0
  711. package/dist/lib/payments/terms.d.ts +27 -0
  712. package/dist/lib/payments/terms.d.ts.map +1 -0
  713. package/dist/lib/payments/terms.js +21 -0
  714. package/dist/lib/payments/terms.js.map +1 -0
  715. package/dist/lib/payouts.d.ts +20 -0
  716. package/dist/lib/payouts.d.ts.map +1 -0
  717. package/dist/lib/payouts.js +30 -0
  718. package/dist/lib/payouts.js.map +1 -0
  719. package/dist/lib/readiness.d.ts +42 -0
  720. package/dist/lib/readiness.d.ts.map +1 -0
  721. package/dist/lib/readiness.js +130 -0
  722. package/dist/lib/readiness.js.map +1 -0
  723. package/dist/lib/redact.d.ts +23 -0
  724. package/dist/lib/redact.d.ts.map +1 -0
  725. package/dist/lib/redact.js +67 -0
  726. package/dist/lib/redact.js.map +1 -0
  727. package/dist/lib/register.d.ts +85 -0
  728. package/dist/lib/register.d.ts.map +1 -0
  729. package/dist/lib/register.js +390 -0
  730. package/dist/lib/register.js.map +1 -0
  731. package/dist/lib/review/attestation.d.ts +92 -0
  732. package/dist/lib/review/attestation.d.ts.map +1 -0
  733. package/dist/lib/review/attestation.js +264 -0
  734. package/dist/lib/review/attestation.js.map +1 -0
  735. package/dist/lib/review/reviewer-grant.d.ts +146 -0
  736. package/dist/lib/review/reviewer-grant.d.ts.map +1 -0
  737. package/dist/lib/review/reviewer-grant.js +359 -0
  738. package/dist/lib/review/reviewer-grant.js.map +1 -0
  739. package/dist/lib/review/tasks.d.ts +18 -0
  740. package/dist/lib/review/tasks.d.ts.map +1 -0
  741. package/dist/lib/review/tasks.js +36 -0
  742. package/dist/lib/review/tasks.js.map +1 -0
  743. package/dist/lib/sentry.d.ts +89 -0
  744. package/dist/lib/sentry.d.ts.map +1 -0
  745. package/dist/lib/sentry.js +284 -0
  746. package/dist/lib/sentry.js.map +1 -0
  747. package/dist/lib/spans.d.ts +14 -0
  748. package/dist/lib/spans.d.ts.map +1 -0
  749. package/dist/lib/spans.js +28 -0
  750. package/dist/lib/spans.js.map +1 -0
  751. package/dist/lib/tracing.d.ts +31 -0
  752. package/dist/lib/tracing.d.ts.map +1 -0
  753. package/dist/lib/tracing.js +66 -0
  754. package/dist/lib/tracing.js.map +1 -0
  755. package/dist/lib/ttl-cache.d.ts +26 -0
  756. package/dist/lib/ttl-cache.d.ts.map +1 -0
  757. package/dist/lib/ttl-cache.js +61 -0
  758. package/dist/lib/ttl-cache.js.map +1 -0
  759. package/dist/lib/validator.d.ts +19 -0
  760. package/dist/lib/validator.d.ts.map +1 -0
  761. package/dist/lib/validator.js +32 -0
  762. package/dist/lib/validator.js.map +1 -0
  763. package/dist/lib/work-order/form.d.ts +40 -0
  764. package/dist/lib/work-order/form.d.ts.map +1 -0
  765. package/dist/lib/work-order/form.js +316 -0
  766. package/dist/lib/work-order/form.js.map +1 -0
  767. package/dist/lib/work-order/index.d.ts +20 -0
  768. package/dist/lib/work-order/index.d.ts.map +1 -0
  769. package/dist/lib/work-order/index.js +66 -0
  770. package/dist/lib/work-order/index.js.map +1 -0
  771. package/dist/middleware/api/audit.d.ts +9 -0
  772. package/dist/middleware/api/audit.d.ts.map +1 -0
  773. package/dist/middleware/api/audit.js +38 -0
  774. package/dist/middleware/api/audit.js.map +1 -0
  775. package/dist/middleware/api/auth.d.ts +29 -0
  776. package/dist/middleware/api/auth.d.ts.map +1 -0
  777. package/dist/middleware/api/auth.js +105 -0
  778. package/dist/middleware/api/auth.js.map +1 -0
  779. package/dist/middleware/api/console.d.ts +92 -0
  780. package/dist/middleware/api/console.d.ts.map +1 -0
  781. package/dist/middleware/api/console.js +446 -0
  782. package/dist/middleware/api/console.js.map +1 -0
  783. package/dist/middleware/api/errors.d.ts +48 -0
  784. package/dist/middleware/api/errors.d.ts.map +1 -0
  785. package/dist/middleware/api/errors.js +133 -0
  786. package/dist/middleware/api/errors.js.map +1 -0
  787. package/dist/middleware/api/idempotency.d.ts +23 -0
  788. package/dist/middleware/api/idempotency.d.ts.map +1 -0
  789. package/dist/middleware/api/idempotency.js +158 -0
  790. package/dist/middleware/api/idempotency.js.map +1 -0
  791. package/dist/middleware/api/keys.d.ts +14 -0
  792. package/dist/middleware/api/keys.d.ts.map +1 -0
  793. package/dist/middleware/api/keys.js +66 -0
  794. package/dist/middleware/api/keys.js.map +1 -0
  795. package/dist/middleware/api/membership.d.ts +32 -0
  796. package/dist/middleware/api/membership.d.ts.map +1 -0
  797. package/dist/middleware/api/membership.js +48 -0
  798. package/dist/middleware/api/membership.js.map +1 -0
  799. package/dist/middleware/api/oauth.d.ts +28 -0
  800. package/dist/middleware/api/oauth.d.ts.map +1 -0
  801. package/dist/middleware/api/oauth.js +109 -0
  802. package/dist/middleware/api/oauth.js.map +1 -0
  803. package/dist/middleware/api/rate-limit.d.ts +23 -0
  804. package/dist/middleware/api/rate-limit.d.ts.map +1 -0
  805. package/dist/middleware/api/rate-limit.js +70 -0
  806. package/dist/middleware/api/rate-limit.js.map +1 -0
  807. package/dist/middleware/api/types.d.ts +92 -0
  808. package/dist/middleware/api/types.d.ts.map +1 -0
  809. package/dist/middleware/api/types.js +7 -0
  810. package/dist/middleware/api/types.js.map +1 -0
  811. package/dist/middleware/api/wait.d.ts +21 -0
  812. package/dist/middleware/api/wait.d.ts.map +1 -0
  813. package/dist/middleware/api/wait.js +85 -0
  814. package/dist/middleware/api/wait.js.map +1 -0
  815. package/dist/middleware/capability.d.ts +32 -0
  816. package/dist/middleware/capability.d.ts.map +1 -0
  817. package/dist/middleware/capability.js +113 -0
  818. package/dist/middleware/capability.js.map +1 -0
  819. package/dist/middleware/database.d.ts +14 -0
  820. package/dist/middleware/database.d.ts.map +1 -0
  821. package/dist/middleware/database.js +18 -0
  822. package/dist/middleware/database.js.map +1 -0
  823. package/dist/middleware/error-handler.d.ts +13 -0
  824. package/dist/middleware/error-handler.d.ts.map +1 -0
  825. package/dist/middleware/error-handler.js +127 -0
  826. package/dist/middleware/error-handler.js.map +1 -0
  827. package/dist/middleware/observability.d.ts +32 -0
  828. package/dist/middleware/observability.d.ts.map +1 -0
  829. package/dist/middleware/observability.js +134 -0
  830. package/dist/middleware/observability.js.map +1 -0
  831. package/dist/middleware/rate-limit.d.ts +16 -0
  832. package/dist/middleware/rate-limit.d.ts.map +1 -0
  833. package/dist/middleware/rate-limit.js +56 -0
  834. package/dist/middleware/rate-limit.js.map +1 -0
  835. package/dist/middleware/ucan-auth.d.ts +39 -0
  836. package/dist/middleware/ucan-auth.d.ts.map +1 -0
  837. package/dist/middleware/ucan-auth.js +278 -0
  838. package/dist/middleware/ucan-auth.js.map +1 -0
  839. package/dist/networks.d.ts +34 -0
  840. package/dist/networks.d.ts.map +1 -0
  841. package/dist/networks.js +49 -0
  842. package/dist/networks.js.map +1 -0
  843. package/dist/oracle.d.ts +193 -0
  844. package/dist/oracle.d.ts.map +1 -0
  845. package/dist/oracle.js +245 -0
  846. package/dist/oracle.js.map +1 -0
  847. package/dist/routes/health.d.ts +16 -0
  848. package/dist/routes/health.d.ts.map +1 -0
  849. package/dist/routes/health.js +29 -0
  850. package/dist/routes/health.js.map +1 -0
  851. package/dist/routes/v1/admin.d.ts +18 -0
  852. package/dist/routes/v1/admin.d.ts.map +1 -0
  853. package/dist/routes/v1/admin.js +101 -0
  854. package/dist/routes/v1/admin.js.map +1 -0
  855. package/dist/routes/v1/api/admin-claims.d.ts +14 -0
  856. package/dist/routes/v1/api/admin-claims.d.ts.map +1 -0
  857. package/dist/routes/v1/api/admin-claims.js +82 -0
  858. package/dist/routes/v1/api/admin-claims.js.map +1 -0
  859. package/dist/routes/v1/api/admin-facilitator.d.ts +20 -0
  860. package/dist/routes/v1/api/admin-facilitator.d.ts.map +1 -0
  861. package/dist/routes/v1/api/admin-facilitator.js +64 -0
  862. package/dist/routes/v1/api/admin-facilitator.js.map +1 -0
  863. package/dist/routes/v1/api/admin.d.ts +9 -0
  864. package/dist/routes/v1/api/admin.d.ts.map +1 -0
  865. package/dist/routes/v1/api/admin.js +110 -0
  866. package/dist/routes/v1/api/admin.js.map +1 -0
  867. package/dist/routes/v1/api/audit.d.ts +8 -0
  868. package/dist/routes/v1/api/audit.d.ts.map +1 -0
  869. package/dist/routes/v1/api/audit.js +56 -0
  870. package/dist/routes/v1/api/audit.js.map +1 -0
  871. package/dist/routes/v1/api/batch.d.ts +17 -0
  872. package/dist/routes/v1/api/batch.d.ts.map +1 -0
  873. package/dist/routes/v1/api/batch.js +192 -0
  874. package/dist/routes/v1/api/batch.js.map +1 -0
  875. package/dist/routes/v1/api/claims-read.d.ts +43 -0
  876. package/dist/routes/v1/api/claims-read.d.ts.map +1 -0
  877. package/dist/routes/v1/api/claims-read.js +123 -0
  878. package/dist/routes/v1/api/claims-read.js.map +1 -0
  879. package/dist/routes/v1/api/claims.d.ts +131 -0
  880. package/dist/routes/v1/api/claims.d.ts.map +1 -0
  881. package/dist/routes/v1/api/claims.js +407 -0
  882. package/dist/routes/v1/api/claims.js.map +1 -0
  883. package/dist/routes/v1/api/collections-link.d.ts +14 -0
  884. package/dist/routes/v1/api/collections-link.d.ts.map +1 -0
  885. package/dist/routes/v1/api/collections-link.js +97 -0
  886. package/dist/routes/v1/api/collections-link.js.map +1 -0
  887. package/dist/routes/v1/api/export.d.ts +48 -0
  888. package/dist/routes/v1/api/export.d.ts.map +1 -0
  889. package/dist/routes/v1/api/export.js +251 -0
  890. package/dist/routes/v1/api/export.js.map +1 -0
  891. package/dist/routes/v1/api/index.d.ts +16 -0
  892. package/dist/routes/v1/api/index.d.ts.map +1 -0
  893. package/dist/routes/v1/api/index.js +68 -0
  894. package/dist/routes/v1/api/index.js.map +1 -0
  895. package/dist/routes/v1/api/keys.d.ts +9 -0
  896. package/dist/routes/v1/api/keys.d.ts.map +1 -0
  897. package/dist/routes/v1/api/keys.js +95 -0
  898. package/dist/routes/v1/api/keys.js.map +1 -0
  899. package/dist/routes/v1/api/me.d.ts +21 -0
  900. package/dist/routes/v1/api/me.d.ts.map +1 -0
  901. package/dist/routes/v1/api/me.js +122 -0
  902. package/dist/routes/v1/api/me.js.map +1 -0
  903. package/dist/routes/v1/api/members.d.ts +17 -0
  904. package/dist/routes/v1/api/members.d.ts.map +1 -0
  905. package/dist/routes/v1/api/members.js +406 -0
  906. package/dist/routes/v1/api/members.js.map +1 -0
  907. package/dist/routes/v1/api/meta.d.ts +12 -0
  908. package/dist/routes/v1/api/meta.d.ts.map +1 -0
  909. package/dist/routes/v1/api/meta.js +59 -0
  910. package/dist/routes/v1/api/meta.js.map +1 -0
  911. package/dist/routes/v1/api/openapi.gen.d.ts +2 -0
  912. package/dist/routes/v1/api/openapi.gen.d.ts.map +1 -0
  913. package/dist/routes/v1/api/openapi.gen.js +7 -0
  914. package/dist/routes/v1/api/openapi.gen.js.map +1 -0
  915. package/dist/routes/v1/api/protocols.d.ts +22 -0
  916. package/dist/routes/v1/api/protocols.d.ts.map +1 -0
  917. package/dist/routes/v1/api/protocols.js +153 -0
  918. package/dist/routes/v1/api/protocols.js.map +1 -0
  919. package/dist/routes/v1/api/review-billing.d.ts +18 -0
  920. package/dist/routes/v1/api/review-billing.d.ts.map +1 -0
  921. package/dist/routes/v1/api/review-billing.js +196 -0
  922. package/dist/routes/v1/api/review-billing.js.map +1 -0
  923. package/dist/routes/v1/api/review.d.ts +30 -0
  924. package/dist/routes/v1/api/review.d.ts.map +1 -0
  925. package/dist/routes/v1/api/review.js +302 -0
  926. package/dist/routes/v1/api/review.js.map +1 -0
  927. package/dist/routes/v1/api/sources.d.ts +10 -0
  928. package/dist/routes/v1/api/sources.d.ts.map +1 -0
  929. package/dist/routes/v1/api/sources.js +293 -0
  930. package/dist/routes/v1/api/sources.js.map +1 -0
  931. package/dist/routes/v1/api/uploads.d.ts +37 -0
  932. package/dist/routes/v1/api/uploads.d.ts.map +1 -0
  933. package/dist/routes/v1/api/uploads.js +414 -0
  934. package/dist/routes/v1/api/uploads.js.map +1 -0
  935. package/dist/routes/v1/api/views.d.ts +18 -0
  936. package/dist/routes/v1/api/views.d.ts.map +1 -0
  937. package/dist/routes/v1/api/views.js +95 -0
  938. package/dist/routes/v1/api/views.js.map +1 -0
  939. package/dist/routes/v1/api/webhooks.d.ts +14 -0
  940. package/dist/routes/v1/api/webhooks.d.ts.map +1 -0
  941. package/dist/routes/v1/api/webhooks.js +282 -0
  942. package/dist/routes/v1/api/webhooks.js.map +1 -0
  943. package/dist/routes/v1/api/work-orders.d.ts +45 -0
  944. package/dist/routes/v1/api/work-orders.d.ts.map +1 -0
  945. package/dist/routes/v1/api/work-orders.js +171 -0
  946. package/dist/routes/v1/api/work-orders.js.map +1 -0
  947. package/dist/routes/v1/claims.d.ts +21 -0
  948. package/dist/routes/v1/claims.d.ts.map +1 -0
  949. package/dist/routes/v1/claims.js +153 -0
  950. package/dist/routes/v1/claims.js.map +1 -0
  951. package/dist/routes/v1/collections.d.ts +45 -0
  952. package/dist/routes/v1/collections.d.ts.map +1 -0
  953. package/dist/routes/v1/collections.js +201 -0
  954. package/dist/routes/v1/collections.js.map +1 -0
  955. package/dist/routes/v1/index.d.ts +13 -0
  956. package/dist/routes/v1/index.d.ts.map +1 -0
  957. package/dist/routes/v1/index.js +41 -0
  958. package/dist/routes/v1/index.js.map +1 -0
  959. package/dist/routes/v1/info.d.ts +14 -0
  960. package/dist/routes/v1/info.d.ts.map +1 -0
  961. package/dist/routes/v1/info.js +75 -0
  962. package/dist/routes/v1/info.js.map +1 -0
  963. package/dist/routes/v1/mcp/index.d.ts +33 -0
  964. package/dist/routes/v1/mcp/index.d.ts.map +1 -0
  965. package/dist/routes/v1/mcp/index.js +252 -0
  966. package/dist/routes/v1/mcp/index.js.map +1 -0
  967. package/dist/routes/v1/mcp/oauth.d.ts +27 -0
  968. package/dist/routes/v1/mcp/oauth.d.ts.map +1 -0
  969. package/dist/routes/v1/mcp/oauth.js +500 -0
  970. package/dist/routes/v1/mcp/oauth.js.map +1 -0
  971. package/dist/routes/v1/mcp/tools.d.ts +71 -0
  972. package/dist/routes/v1/mcp/tools.d.ts.map +1 -0
  973. package/dist/routes/v1/mcp/tools.js +432 -0
  974. package/dist/routes/v1/mcp/tools.js.map +1 -0
  975. package/dist/routes/v1/mcp/ui.d.ts +45 -0
  976. package/dist/routes/v1/mcp/ui.d.ts.map +1 -0
  977. package/dist/routes/v1/mcp/ui.js +454 -0
  978. package/dist/routes/v1/mcp/ui.js.map +1 -0
  979. package/dist/routes/v1/oauth.d.ts +29 -0
  980. package/dist/routes/v1/oauth.d.ts.map +1 -0
  981. package/dist/routes/v1/oauth.js +256 -0
  982. package/dist/routes/v1/oauth.js.map +1 -0
  983. package/dist/routes/v1/reviewers.d.ts +22 -0
  984. package/dist/routes/v1/reviewers.d.ts.map +1 -0
  985. package/dist/routes/v1/reviewers.js +165 -0
  986. package/dist/routes/v1/reviewers.js.map +1 -0
  987. package/dist/routes/v1/reviews.d.ts +38 -0
  988. package/dist/routes/v1/reviews.d.ts.map +1 -0
  989. package/dist/routes/v1/reviews.js +234 -0
  990. package/dist/routes/v1/reviews.js.map +1 -0
  991. package/dist/routes/v1/shared.d.ts +586 -0
  992. package/dist/routes/v1/shared.d.ts.map +1 -0
  993. package/dist/routes/v1/shared.js +229 -0
  994. package/dist/routes/v1/shared.js.map +1 -0
  995. package/dist/routes/well-known.d.ts +15 -0
  996. package/dist/routes/well-known.d.ts.map +1 -0
  997. package/dist/routes/well-known.js +35 -0
  998. package/dist/routes/well-known.js.map +1 -0
  999. package/dist/runtime.d.ts +100 -0
  1000. package/dist/runtime.d.ts.map +1 -0
  1001. package/dist/runtime.js +144 -0
  1002. package/dist/runtime.js.map +1 -0
  1003. package/dist/testing/fake-tools.d.ts +104 -0
  1004. package/dist/testing/fake-tools.d.ts.map +1 -0
  1005. package/dist/testing/fake-tools.js +213 -0
  1006. package/dist/testing/fake-tools.js.map +1 -0
  1007. package/dist/testing/index.d.ts +54 -0
  1008. package/dist/testing/index.d.ts.map +1 -0
  1009. package/dist/testing/index.js +104 -0
  1010. package/dist/testing/index.js.map +1 -0
  1011. package/dist/testing/samples.d.ts +70 -0
  1012. package/dist/testing/samples.d.ts.map +1 -0
  1013. package/dist/testing/samples.js +92 -0
  1014. package/dist/testing/samples.js.map +1 -0
  1015. package/dist/workflows/claim-ingest.d.ts +250 -0
  1016. package/dist/workflows/claim-ingest.d.ts.map +1 -0
  1017. package/dist/workflows/claim-ingest.js +1020 -0
  1018. package/dist/workflows/claim-ingest.js.map +1 -0
  1019. package/dist/workflows/claim-source.d.ts +25 -0
  1020. package/dist/workflows/claim-source.d.ts.map +1 -0
  1021. package/dist/workflows/claim-source.js +107 -0
  1022. package/dist/workflows/claim-source.js.map +1 -0
  1023. package/dist/workflows/review-complete.d.ts +82 -0
  1024. package/dist/workflows/review-complete.d.ts.map +1 -0
  1025. package/dist/workflows/review-complete.js +455 -0
  1026. package/dist/workflows/review-complete.js.map +1 -0
  1027. package/dist/workflows/steps.d.ts +125 -0
  1028. package/dist/workflows/steps.d.ts.map +1 -0
  1029. package/dist/workflows/steps.js +325 -0
  1030. package/dist/workflows/steps.js.map +1 -0
  1031. package/docs/api.md +2595 -0
  1032. package/docs/guide.md +1525 -0
  1033. package/migrations/0000_init.sql +108 -0
  1034. package/migrations/0001_review_attestation.sql +1 -0
  1035. package/migrations/0002_decisions_facts.sql +1 -0
  1036. package/migrations/0003_api_lane.sql +171 -0
  1037. package/migrations/0004_api_v1_1.sql +19 -0
  1038. package/migrations/0005_member_notify.sql +3 -0
  1039. package/migrations/0006_source_collections.sql +16 -0
  1040. package/migrations/0007_api_settlement.sql +27 -0
  1041. package/migrations/0008_review_extend.sql +1 -0
  1042. package/migrations/0009_card_refunds.sql +4 -0
  1043. package/migrations/0010_even_scorpion.sql +16 -0
  1044. package/migrations/0011_mcp_oauth.sql +27 -0
  1045. package/migrations/0012_mcp_standing.sql +21 -0
  1046. package/migrations/0013_unknown_krista_starr.sql +2 -0
  1047. package/migrations/0014_last_carnage.sql +14 -0
  1048. package/migrations/0015_company_authority.sql +26 -0
  1049. package/migrations/0016_owner_only_links.sql +6 -0
  1050. package/migrations/0017_organisations.sql +35 -0
  1051. package/migrations/0018_remove_app_signed.sql +4 -0
  1052. package/migrations/0019_submitted_via.sql +2 -0
  1053. package/migrations/0020_drop_decision_to_pay.sql +4 -0
  1054. package/migrations/0021_manual_erase.sql +25 -0
  1055. package/migrations/0022_errored_facts.sql +1 -0
  1056. package/migrations/0023_review_billing.sql +20 -0
  1057. package/migrations/0024_pending_task_details.sql +1 -0
  1058. package/migrations/meta/0000_snapshot.json +707 -0
  1059. package/migrations/meta/0001_snapshot.json +714 -0
  1060. package/migrations/meta/0002_snapshot.json +721 -0
  1061. package/migrations/meta/0003_snapshot.json +1845 -0
  1062. package/migrations/meta/0004_snapshot.json +1969 -0
  1063. package/migrations/meta/0005_snapshot.json +1991 -0
  1064. package/migrations/meta/0006_snapshot.json +2097 -0
  1065. package/migrations/meta/0007_snapshot.json +2128 -0
  1066. package/migrations/meta/0008_snapshot.json +2133 -0
  1067. package/migrations/meta/0009_snapshot.json +2161 -0
  1068. package/migrations/meta/0010_snapshot.json +2265 -0
  1069. package/migrations/meta/0011_snapshot.json +2448 -0
  1070. package/migrations/meta/0012_snapshot.json +2577 -0
  1071. package/migrations/meta/0013_snapshot.json +2594 -0
  1072. package/migrations/meta/0014_snapshot.json +2602 -0
  1073. package/migrations/meta/0015_snapshot.json +2778 -0
  1074. package/migrations/meta/0016_snapshot.json +2778 -0
  1075. package/migrations/meta/0017_snapshot.json +2792 -0
  1076. package/migrations/meta/0018_snapshot.json +2778 -0
  1077. package/migrations/meta/0019_snapshot.json +2792 -0
  1078. package/migrations/meta/0020_snapshot.json +2785 -0
  1079. package/migrations/meta/0021_snapshot.json +2762 -0
  1080. package/migrations/meta/0022_snapshot.json +2769 -0
  1081. package/migrations/meta/0023_snapshot.json +2900 -0
  1082. package/migrations/meta/0024_snapshot.json +2907 -0
  1083. package/migrations/meta/_journal.json +181 -0
  1084. package/openapi/decision-api.yaml +12204 -0
  1085. package/package.json +121 -4
  1086. package/skills/README.md +19 -0
  1087. package/skills/add-openhands-support/SKILL.md +113 -0
  1088. package/skills/create-collection/SKILL.md +199 -0
  1089. package/skills/create-collection/reference/claims-stack.md +106 -0
  1090. package/skills/create-collection/reference/collection.md +111 -0
  1091. package/skills/create-oracle/SKILL.md +400 -0
  1092. package/skills/create-rubric/SKILL.md +130 -0
  1093. package/skills/create-rubric/reference/format-cheatsheet.md +186 -0
  1094. package/skills/create-rubric/templates/claim-form.example.json +60 -0
  1095. package/skills/decision-api-client/SKILL.md +236 -0
  1096. package/skills/decision-api-oracle/SKILL.md +336 -0
  1097. package/skills/publish-protocol/SKILL.md +151 -0
  1098. package/skills/publish-protocol/reference/publishing.md +116 -0
  1099. package/skills/reference/engine-contract.md +222 -0
  1100. package/skills/write-facts/SKILL.md +221 -0
  1101. package/skills/write-facts/reference/examples/http-vendor.ts +88 -0
  1102. package/skills/write-facts/reference/examples/price-matches-agreement.ts +67 -0
  1103. package/skills/write-facts/reference/facts-api.md +232 -0
  1104. package/templates/project/.dev.vars.example +93 -0
  1105. package/templates/project/.editorconfig +9 -0
  1106. package/templates/project/CLAUDE.md +45 -0
  1107. package/templates/project/README.md +199 -0
  1108. package/templates/project/biome.json +37 -0
  1109. package/templates/project/gitignore +29 -0
  1110. package/templates/project/package.json +32 -0
  1111. package/templates/project/src/facts/index.ts +19 -0
  1112. package/templates/project/src/index.ts +25 -0
  1113. package/templates/project/test/api-lane.test.ts +57 -0
  1114. package/templates/project/test/facts.test.ts +14 -0
  1115. package/templates/project/tsconfig.json +25 -0
  1116. package/templates/project/vitest.config.ts +13 -0
  1117. package/templates/project/wrangler.jsonc +446 -0
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Decision API payments (payments spec §4, §13.4; Go Prod §11): the x402 `ixo-pay` gate the router
3
+ * calls (S3), settle on receipt the workflows call, and the payment crons.
4
+ */
5
+ export { type ExtendOutcome, extendForReview, reservationExpiry } from "./extend.js";
6
+ export type { FacilitatorDeps } from "./facilitator.js";
7
+ export { createPaymentGate, decodeHeader, encodeHeader, type GateDeps } from "./gate.js";
8
+ export { publishedPrice } from "./price.js";
9
+ export { type ReconcileReport, reconcilePayments, watchBalances } from "./reconcile.js";
10
+ export { type RefundOutcome, refreshRefund } from "./refund.js";
11
+ export { paymentResponse, type SettleDeps, settleClaim } from "./settle.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/payments/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Decision API payments (payments spec §4, §13.4; Go Prod §11): the x402 `ixo-pay` gate the router
3
+ * calls (S3), settle on receipt the workflows call, and the payment crons.
4
+ */
5
+ export { extendForReview, reservationExpiry } from "./extend.js";
6
+ export { createPaymentGate, decodeHeader, encodeHeader } from "./gate.js";
7
+ export { publishedPrice } from "./price.js";
8
+ export { reconcilePayments, watchBalances } from "./reconcile.js";
9
+ export { refreshRefund } from "./refund.js";
10
+ export { paymentResponse, settleClaim } from "./settle.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/payments/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAiB,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAwB,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAsB,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAmB,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The price this oracle PUBLISHES per protocol (payments spec §3.1, Go Prod §11.1): what every offer
3
+ * charges and what `GET /v1/api/protocols/:did` serves. The facilitator refuses an offer whose
4
+ * per-claim amount differs from the published one (`/offers` 422 `price_mismatch`), and the public
5
+ * route cannot see a source — so the charged price is a function of the protocol ALONE. There are
6
+ * no per-source prices (contracts v1.1): a partner who should not pay gets `billingMode: none`.
7
+ *
8
+ * 1 PAY = 1 USD = 1,000,000 upay, so one cent is 10,000 upay and 1 upay is 1 micro-USD.
9
+ */
10
+ import type { Config } from "../../config.js";
11
+ import type { Price } from "../../contracts/index.js";
12
+ export declare const UPAY_PER_CENT = 10000;
13
+ /**
14
+ * The published price of one decision under `protocolDid` (§3.1), or null when this oracle
15
+ * publishes none for it — the route then serves `price: null`, which the facilitator reads as "not
16
+ * published", and the gate offers nothing (`gate.ts`). Resolution, protocol alone: the config's
17
+ * `pricing.api.byProtocol[protocolDid]`, then `pricing.api.amountMicroUsd`, then the
18
+ * `API_PRICE_USD_CENTS` var (× 10 000). `amountMicroUsd` and `amount` are the exact price;
19
+ * `amountCents` is the same price in cents — exact, because every price is a whole number of
20
+ * cents (`MicroUsdPrice` in oracle.ts; the var is whole cents by type).
21
+ */
22
+ export declare function publishedPrice(config: Pick<Config, "API_PRICE_USD_CENTS">, protocolDid: string): Price | null;
23
+ /** upay base units → whole cents, rounded DOWN (a balance is never shown as more than it is). */
24
+ export declare const upayToCents: (upay: string) => number;
25
+ //# sourceMappingURL=price.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../../src/lib/payments/price.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC3C,WAAW,EAAE,MAAM,GAClB,KAAK,GAAG,IAAI,CAkBd;AAED,iGAAiG;AACjG,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,MAAsD,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The price this oracle PUBLISHES per protocol (payments spec §3.1, Go Prod §11.1): what every offer
3
+ * charges and what `GET /v1/api/protocols/:did` serves. The facilitator refuses an offer whose
4
+ * per-claim amount differs from the published one (`/offers` 422 `price_mismatch`), and the public
5
+ * route cannot see a source — so the charged price is a function of the protocol ALONE. There are
6
+ * no per-source prices (contracts v1.1): a partner who should not pay gets `billingMode: none`.
7
+ *
8
+ * 1 PAY = 1 USD = 1,000,000 upay, so one cent is 10,000 upay and 1 upay is 1 micro-USD.
9
+ */
10
+ import { getOracle } from "../../oracle.js";
11
+ export const UPAY_PER_CENT = 10_000;
12
+ /**
13
+ * The published price of one decision under `protocolDid` (§3.1), or null when this oracle
14
+ * publishes none for it — the route then serves `price: null`, which the facilitator reads as "not
15
+ * published", and the gate offers nothing (`gate.ts`). Resolution, protocol alone: the config's
16
+ * `pricing.api.byProtocol[protocolDid]`, then `pricing.api.amountMicroUsd`, then the
17
+ * `API_PRICE_USD_CENTS` var (× 10 000). `amountMicroUsd` and `amount` are the exact price;
18
+ * `amountCents` is the same price in cents — exact, because every price is a whole number of
19
+ * cents (`MicroUsdPrice` in oracle.ts; the var is whole cents by type).
20
+ */
21
+ export function publishedPrice(config, protocolDid) {
22
+ const api = getOracle().config.pricing.api;
23
+ const cents = config.API_PRICE_USD_CENTS;
24
+ const amountMicroUsd =
25
+ // Own keys only: an inherited name ("constructor") is not a protocol with a price.
26
+ (api?.byProtocol && Object.hasOwn(api.byProtocol, protocolDid)
27
+ ? api.byProtocol[protocolDid]
28
+ : undefined) ??
29
+ api?.amountMicroUsd ??
30
+ (cents === undefined ? null : cents * UPAY_PER_CENT);
31
+ if (amountMicroUsd === null)
32
+ return null;
33
+ return {
34
+ amountMicroUsd,
35
+ amountCents: amountMicroUsd / UPAY_PER_CENT,
36
+ currency: "USD",
37
+ amount: String(amountMicroUsd),
38
+ asset: "upay",
39
+ };
40
+ }
41
+ /** upay base units → whole cents, rounded DOWN (a balance is never shown as more than it is). */
42
+ export const upayToCents = (upay) => Number(BigInt(upay) / BigInt(UPAY_PER_CENT));
43
+ //# sourceMappingURL=price.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/lib/payments/price.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA2C,EAC3C,WAAmB;IAEnB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACzC,MAAM,cAAc;IAClB,mFAAmF;IACnF,CAAC,GAAG,EAAE,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;QAC5D,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;IACvD,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,cAAc;QACd,WAAW,EAAE,cAAc,GAAG,aAAa;QAC3C,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;QAC9B,KAAK,EAAE,MAAM;KACd,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * The payment crons (Go Prod §7.3; payments spec §4 steps 6–7, §12), run from the API lane's
3
+ * five-minute tier (cron/api-lane.ts) whenever a facilitator is configured — NOT only while
4
+ * `API_PAYMENTS` is on: switching payments off stops new paid submits at the router, and must never
5
+ * strand a claim that is already reserved.
6
+ *
7
+ * `reconcilePayments` — every 5 minutes, bounded, idempotent, in this order:
8
+ * (c) first — a charge still `reserved` past its reservation's expiry whose claim has no receipt
9
+ * (it failed, or its review outlived the hold) ⇒ `released` (`reservation_expired`): the
10
+ * facilitator released it and nothing moved. The expiry is `reservationExpiresAt` once a
11
+ * review extended it (extend.ts), else the facilitator's TTL (24 h) — either + 10 min of
12
+ * slack. One bounded statement. It is our reckoning, not the facilitator's word: a receipt that comes
13
+ * later is still settled, and the facilitator's answer wins (settle.ts).
14
+ * (d) a charge `reserved`, never extended, whose claim waits on a review (`pending_review`) —
15
+ * the workflow's extend was lost ⇒ `extendForReview` again, while the 24 h hold still
16
+ * stands. A refusal leaves the row to its 24 h (a 422 marks it `extend_refused`, never asked
17
+ * again); every attempt touches the row, so a backlog rotates.
18
+ * (a) a charge `reserved` whose claim is still `queued` 2 minutes after accept — verified and
19
+ * recorded, but the start never happened (the request died, a start failed) ⇒
20
+ * `startApiClaims`, which is idempotent. Only while the reservation is surely alive
21
+ * (younger than 24 h − 10 min): a claim must never start on a lapsed reservation.
22
+ * (b) a decided claim with a receipt whose charge is still `reserved` (the workflow's settle was
23
+ * lost), `settled` (the minute's transfer has not paid it yet) or `released` by (c) ⇒
24
+ * `/settle` again with the IDENTICAL body (settle.ts) until `paid` with the transaction;
25
+ * `reservation_released` ⇒ `released`, a refused receipt ⇒ `failed`, neither retried.
26
+ * Oldest attempt first: every attempt — a skip included — touches the row, so a backlog
27
+ * rotates instead of starving. A `reserved` charge whose verified payment is gone (no header
28
+ * on the row nor in KV) ⇒ `failed` (`settlement_lost`), loudly, once past its reservation's
29
+ * expiry (24 h, or the review's extended one); a `settled` one is resolved by `GET /settlements/:id`, never failed.
30
+ * One `payments.reconcile.report` line with the counts.
31
+ *
32
+ * `watchBalances` — every 5 minutes: active sources with a refill floor, a page at a time (a KV
33
+ * cursor by sourceId, wrapping around), each owner's `upay` available against the floor; one
34
+ * `balance.low` webhook per crossing (`api_sources.balanceLowAt`), and an email to the source's
35
+ * `contactEmail` once per UTC day while the balance stays under the floor (member-emails.ts).
36
+ *
37
+ * Failures: per-call failures are logged and skipped, up to `FAILURE_BUDGET` per job per run; the
38
+ * balance watch stops at once on an unreachable facilitator (network, its did.json).
39
+ */
40
+ import type { Database } from "../../db/client.js";
41
+ import type { OracleEnv } from "../../env.js";
42
+ import type { Metrics } from "../metrics.js";
43
+ import { type FacilitatorDeps } from "./facilitator.js";
44
+ export interface PaymentCronDeps extends FacilitatorDeps {
45
+ db: Database;
46
+ env: OracleEnv;
47
+ }
48
+ /** Charges per arm per run — the tick stays short whatever the backlog. */
49
+ export declare const RECONCILE_BATCH = 200;
50
+ export interface ReconcileReport {
51
+ /** (a) reserved claims started. */
52
+ restarted: number;
53
+ /** (b) `/settle` calls made, and what they came to. */
54
+ resettled: number;
55
+ paid: number;
56
+ pending: number;
57
+ released: number;
58
+ failed: number;
59
+ /** The verified payment gone: marked `failed` (`settlement_lost`). */
60
+ lost: number;
61
+ /** (c) reserved past the TTL with no receipt: marked `released`. */
62
+ expired: number;
63
+ /** (d) reviews whose lost extend was retried and held. */
64
+ extended: number;
65
+ /** (e) card charges asked about their refund (refund.ts), and how many are refunded. */
66
+ refundChecked: number;
67
+ refunded: number;
68
+ }
69
+ export declare function reconcilePayments(deps: PaymentCronDeps, now?: Date, opts?: {
70
+ batch?: number;
71
+ }): Promise<ReconcileReport>;
72
+ export declare function watchBalances(deps: FacilitatorDeps & {
73
+ db: Database;
74
+ metrics: Metrics;
75
+ email?: SendEmail;
76
+ }, now?: Date): Promise<void>;
77
+ //# sourceMappingURL=reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../src/lib/payments/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AAKvB,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,2EAA2E;AAC3E,eAAO,MAAM,eAAe,MAAM,CAAC;AAYnC,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,GAAG,OAAa,EAChB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5B,OAAO,CAAC,eAAe,CAAC,CAwB1B;AAiND,wBAAsB,aAAa,CACjC,IAAI,EAAE,eAAe,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,EAC7E,GAAG,OAAa,GACf,OAAO,CAAC,IAAI,CAAC,CAyEf"}
@@ -0,0 +1,317 @@
1
+ /**
2
+ * The payment crons (Go Prod §7.3; payments spec §4 steps 6–7, §12), run from the API lane's
3
+ * five-minute tier (cron/api-lane.ts) whenever a facilitator is configured — NOT only while
4
+ * `API_PAYMENTS` is on: switching payments off stops new paid submits at the router, and must never
5
+ * strand a claim that is already reserved.
6
+ *
7
+ * `reconcilePayments` — every 5 minutes, bounded, idempotent, in this order:
8
+ * (c) first — a charge still `reserved` past its reservation's expiry whose claim has no receipt
9
+ * (it failed, or its review outlived the hold) ⇒ `released` (`reservation_expired`): the
10
+ * facilitator released it and nothing moved. The expiry is `reservationExpiresAt` once a
11
+ * review extended it (extend.ts), else the facilitator's TTL (24 h) — either + 10 min of
12
+ * slack. One bounded statement. It is our reckoning, not the facilitator's word: a receipt that comes
13
+ * later is still settled, and the facilitator's answer wins (settle.ts).
14
+ * (d) a charge `reserved`, never extended, whose claim waits on a review (`pending_review`) —
15
+ * the workflow's extend was lost ⇒ `extendForReview` again, while the 24 h hold still
16
+ * stands. A refusal leaves the row to its 24 h (a 422 marks it `extend_refused`, never asked
17
+ * again); every attempt touches the row, so a backlog rotates.
18
+ * (a) a charge `reserved` whose claim is still `queued` 2 minutes after accept — verified and
19
+ * recorded, but the start never happened (the request died, a start failed) ⇒
20
+ * `startApiClaims`, which is idempotent. Only while the reservation is surely alive
21
+ * (younger than 24 h − 10 min): a claim must never start on a lapsed reservation.
22
+ * (b) a decided claim with a receipt whose charge is still `reserved` (the workflow's settle was
23
+ * lost), `settled` (the minute's transfer has not paid it yet) or `released` by (c) ⇒
24
+ * `/settle` again with the IDENTICAL body (settle.ts) until `paid` with the transaction;
25
+ * `reservation_released` ⇒ `released`, a refused receipt ⇒ `failed`, neither retried.
26
+ * Oldest attempt first: every attempt — a skip included — touches the row, so a backlog
27
+ * rotates instead of starving. A `reserved` charge whose verified payment is gone (no header
28
+ * on the row nor in KV) ⇒ `failed` (`settlement_lost`), loudly, once past its reservation's
29
+ * expiry (24 h, or the review's extended one); a `settled` one is resolved by `GET /settlements/:id`, never failed.
30
+ * One `payments.reconcile.report` line with the counts.
31
+ *
32
+ * `watchBalances` — every 5 minutes: active sources with a refill floor, a page at a time (a KV
33
+ * cursor by sourceId, wrapping around), each owner's `upay` available against the floor; one
34
+ * `balance.low` webhook per crossing (`api_sources.balanceLowAt`), and an email to the source's
35
+ * `contactEmail` once per UTC day while the balance stays under the floor (member-emails.ts).
36
+ *
37
+ * Failures: per-call failures are logged and skipped, up to `FAILURE_BUDGET` per job per run; the
38
+ * balance watch stops at once on an unreachable facilitator (network, its did.json).
39
+ */
40
+ import { and, asc, eq, exists, gt, inArray, isNotNull, isNull, lt, ne, not, or } from "drizzle-orm";
41
+ import { apiCharges, apiSources, claimIngests, decisions } from "../../db/schema.js";
42
+ import { startApiClaims } from "../api-lane/accept.js";
43
+ import { emailBalanceLow } from "../api-lane/member-emails.js";
44
+ import { DAY_MS } from "../api-lane/retention.js";
45
+ import { emitBalanceLow } from "../api-lane/webhooks.js";
46
+ import { reportAlert, reportError } from "../sentry.js";
47
+ import { EXTEND_REFUSED, extendForReview, reservationExpiry } from "./extend.js";
48
+ import { createFacilitatorClient, FacilitatorUnreachable, } from "./facilitator.js";
49
+ import { upayToCents } from "./price.js";
50
+ import { refreshRefunds } from "./refund.js";
51
+ import { EXPIRED, settleClaim } from "./settle.js";
52
+ /** Charges per arm per run — the tick stays short whatever the backlog. */
53
+ export const RECONCILE_BATCH = 200;
54
+ const WATCH_BATCH = 200;
55
+ const FAILURE_BUDGET = 5;
56
+ /** A start or a settle this young may still be in flight on its request or its workflow. */
57
+ const SETTLE_GRACE_MS = 2 * 60_000;
58
+ /** The facilitator's RESERVATION_TTL (24 h) ± slack: past the upper bound we call a reservation
59
+ * released; past the lower one we no longer start its claim. */
60
+ const RESERVATION_SLACK_MS = 10 * 60_000;
61
+ const RESERVATION_EXPIRED_MS = DAY_MS + RESERVATION_SLACK_MS;
62
+ const RESERVATION_ALIVE_MS = DAY_MS - RESERVATION_SLACK_MS;
63
+ const WATCH_CURSOR = "x402-balance-cursor";
64
+ /** A run's tolerance for per-call failures; false ⇒ stop the run. */
65
+ function failureBudget(logger, what) {
66
+ let left = FAILURE_BUDGET;
67
+ return (err, fields) => {
68
+ logger.warn(`payments.${what}-failed`, { ...fields, detail: String(err) });
69
+ reportError(err, { lane: "payments", step: what });
70
+ if (err instanceof FacilitatorUnreachable)
71
+ return false;
72
+ left -= 1;
73
+ return left > 0;
74
+ };
75
+ }
76
+ export async function reconcilePayments(deps, now = new Date(), opts = {}) {
77
+ const report = {
78
+ restarted: 0,
79
+ resettled: 0,
80
+ paid: 0,
81
+ pending: 0,
82
+ released: 0,
83
+ failed: 0,
84
+ lost: 0,
85
+ expired: 0,
86
+ extended: 0,
87
+ refundChecked: 0,
88
+ refunded: 0,
89
+ };
90
+ const batch = opts.batch ?? RECONCILE_BATCH;
91
+ await expireReservations(deps, now, report, batch);
92
+ await extendReviews(deps, now, report, batch);
93
+ await restartReserved(deps, now, report, batch);
94
+ await resettle(deps, now, report, batch);
95
+ const refunds = await refreshRefunds(deps, now);
96
+ report.refundChecked = refunds.checked;
97
+ report.refunded = refunds.refunded;
98
+ deps.logger.info("payments.reconcile.report", { ...report });
99
+ return report;
100
+ }
101
+ async function restartReserved(deps, now, report, batch) {
102
+ const rows = await deps.db
103
+ .select({ claimId: apiCharges.claimId })
104
+ .from(apiCharges)
105
+ .innerJoin(claimIngests, eq(claimIngests.claimId, apiCharges.claimId))
106
+ .where(and(eq(apiCharges.status, "reserved"), eq(claimIngests.status, "queued"),
107
+ // An API claim's: a chain claim (review billing) reserves inside its own run, and must
108
+ // never be started on the API lane.
109
+ eq(claimIngests.lane, "api"), lt(apiCharges.createdAt, new Date(now.getTime() - SETTLE_GRACE_MS)), gt(apiCharges.createdAt, new Date(now.getTime() - RESERVATION_ALIVE_MS))))
110
+ .orderBy(asc(apiCharges.createdAt))
111
+ .limit(batch);
112
+ if (rows.length === 0)
113
+ return;
114
+ const claimIds = rows.map((r) => r.claimId);
115
+ try {
116
+ await startApiClaims(deps.env, claimIds);
117
+ report.restarted += claimIds.length;
118
+ }
119
+ catch (err) {
120
+ // Retried by the next run: the rows are still reserved and queued.
121
+ deps.logger.error("payments.reconcile.start-failed", { claimIds, detail: String(err) });
122
+ // Paid for and not running: the next run retries it, but a start that keeps failing is a
123
+ // customer's money doing nothing — worth an issue, not only a log line.
124
+ reportError(err, {
125
+ lane: "payments",
126
+ step: "reconcile-start",
127
+ context: { claims: claimIds.length },
128
+ });
129
+ }
130
+ }
131
+ async function expireReservations(deps, now, report, batch) {
132
+ const { db } = deps;
133
+ const expired = await db
134
+ .update(apiCharges)
135
+ .set({ status: "released", error: EXPIRED })
136
+ .where(and(eq(apiCharges.status, "reserved"), inArray(apiCharges.claimId, db
137
+ .select({ claimId: apiCharges.claimId })
138
+ .from(apiCharges)
139
+ .where(and(eq(apiCharges.status, "reserved"), or(and(isNull(apiCharges.reservationExpiresAt), lt(apiCharges.createdAt, new Date(now.getTime() - RESERVATION_EXPIRED_MS))), lt(apiCharges.reservationExpiresAt, new Date(now.getTime() - RESERVATION_SLACK_MS))), not(exists(db
140
+ .select({ claimId: decisions.claimId })
141
+ .from(decisions)
142
+ .where(and(eq(decisions.claimId, apiCharges.claimId), isNotNull(decisions.receiptJws)))))))
143
+ .orderBy(asc(apiCharges.createdAt))
144
+ .limit(batch))))
145
+ .returning({ claimId: apiCharges.claimId });
146
+ report.expired += expired.length;
147
+ }
148
+ async function extendReviews(deps, now, report, batch) {
149
+ const { db } = deps;
150
+ const rows = await db
151
+ .select({ claimId: apiCharges.claimId })
152
+ .from(apiCharges)
153
+ .innerJoin(decisions, eq(decisions.claimId, apiCharges.claimId))
154
+ .where(and(eq(apiCharges.status, "reserved"), isNull(apiCharges.reservationExpiresAt),
155
+ // A 422 marked it (extend.ts): asking again changes nothing.
156
+ or(isNull(apiCharges.error), ne(apiCharges.error, EXTEND_REFUSED)), eq(decisions.status, "pending_review"),
157
+ // The workflow's own extend, right after the decision row: give it its moment.
158
+ lt(decisions.updatedAt, new Date(now.getTime() - SETTLE_GRACE_MS)),
159
+ // Past 24 h the facilitator has released it: nothing left to hold.
160
+ gt(apiCharges.createdAt, new Date(now.getTime() - DAY_MS))))
161
+ .orderBy(asc(apiCharges.updatedAt))
162
+ .limit(batch);
163
+ let left = FAILURE_BUDGET;
164
+ for (const { claimId } of rows) {
165
+ const out = await extendForReview(deps, claimId);
166
+ if (out.status === "extended") {
167
+ report.extended += 1;
168
+ continue;
169
+ }
170
+ // A refusal or an outage (extend.ts logged it): touched, so the walk moves past it.
171
+ await db.update(apiCharges).set({ updatedAt: now }).where(eq(apiCharges.claimId, claimId));
172
+ if (out.status === "skipped" && out.reason === "unavailable") {
173
+ left -= 1;
174
+ if (left <= 0)
175
+ break;
176
+ }
177
+ }
178
+ }
179
+ async function resettle(deps, now, report, batch) {
180
+ const { db, logger } = deps;
181
+ const rows = await db
182
+ .select({
183
+ claimId: apiCharges.claimId,
184
+ createdAt: apiCharges.createdAt,
185
+ reservationExpiresAt: apiCharges.reservationExpiresAt,
186
+ receiptJws: decisions.receiptJws,
187
+ })
188
+ .from(apiCharges)
189
+ .innerJoin(decisions, eq(decisions.claimId, apiCharges.claimId))
190
+ .where(and(or(inArray(apiCharges.status, ["reserved", "settled"]), and(eq(apiCharges.status, "released"), eq(apiCharges.error, EXPIRED))), isNotNull(decisions.receiptJws),
191
+ // The workflow's own settle, right after the decision row: give it its moment.
192
+ lt(decisions.updatedAt, new Date(now.getTime() - SETTLE_GRACE_MS))))
193
+ .orderBy(asc(apiCharges.updatedAt))
194
+ .limit(batch);
195
+ let left = FAILURE_BUDGET;
196
+ // A skipped row is touched, so the oldest-first walk moves past it next run.
197
+ const touch = (claimId) => db.update(apiCharges).set({ updatedAt: now }).where(eq(apiCharges.claimId, claimId));
198
+ for (const row of rows) {
199
+ const out = await settleClaim(deps, row.claimId, row.receiptJws);
200
+ if (out.status === "skipped" && out.reason === "no_payment") {
201
+ // KV may lag or blip: only a reservation past its expiry (an extended one's) is truly lost. (A `settled` row is
202
+ // never here: settle.ts resolves it through `GET /settlements/:id`.)
203
+ if (reservationExpiry(row).getTime() > now.getTime()) {
204
+ await touch(row.claimId);
205
+ continue;
206
+ }
207
+ const lost = await db
208
+ .update(apiCharges)
209
+ .set({ status: "failed", error: "settlement_lost" })
210
+ .where(and(eq(apiCharges.claimId, row.claimId), eq(apiCharges.status, "reserved")))
211
+ .returning({ claimId: apiCharges.claimId });
212
+ if (lost.length > 0) {
213
+ logger.error("payments.settlement-lost", { claimId: row.claimId });
214
+ // A paid-for claim whose payment is gone (header above): a person has to look.
215
+ await reportAlert(deps, "payments.settlement-lost", { claimId: row.claimId });
216
+ report.lost += 1;
217
+ }
218
+ else {
219
+ await touch(row.claimId);
220
+ }
221
+ continue;
222
+ }
223
+ if (out.status === "skipped") {
224
+ // An outage or an unexpected answer: settle.ts logged it.
225
+ await touch(row.claimId);
226
+ left -= 1;
227
+ if (left <= 0)
228
+ break;
229
+ continue;
230
+ }
231
+ report.resettled += 1;
232
+ if (out.status === "paid")
233
+ report.paid += 1;
234
+ else if (out.status === "settled")
235
+ report.pending += 1;
236
+ else if (out.status === "released")
237
+ report.released += 1;
238
+ else
239
+ report.failed += 1;
240
+ }
241
+ }
242
+ export async function watchBalances(deps, now = new Date()) {
243
+ const { db, logger, cache } = deps;
244
+ const after = await cache.get(WATCH_CURSOR);
245
+ const sources = await db
246
+ .select({
247
+ sourceId: apiSources.sourceId,
248
+ name: apiSources.name,
249
+ contactEmail: apiSources.contactEmail,
250
+ ownerDid: apiSources.ownerDid,
251
+ floorCents: apiSources.refillFloorCents,
252
+ balanceLowAt: apiSources.balanceLowAt,
253
+ })
254
+ .from(apiSources)
255
+ .where(and(eq(apiSources.status, "active"), isNotNull(apiSources.refillFloorCents), after ? gt(apiSources.sourceId, after) : undefined))
256
+ .orderBy(asc(apiSources.sourceId))
257
+ .limit(WATCH_BATCH);
258
+ const facilitator = createFacilitatorClient(deps);
259
+ const keepGoing = failureBudget(logger, "balance");
260
+ for (const s of sources) {
261
+ const floorCents = s.floorCents;
262
+ let balanceCents;
263
+ try {
264
+ const available = await facilitator.availableUpay(s.ownerDid);
265
+ // Not yet a payer of this oracle: nothing to watch until its first paid claim.
266
+ if (available === null)
267
+ continue;
268
+ balanceCents = upayToCents(available);
269
+ }
270
+ catch (err) {
271
+ // Unreachable: this page again next run (the cursor has not moved).
272
+ if (!keepGoing(err, { sourceId: s.sourceId }))
273
+ return;
274
+ continue;
275
+ }
276
+ if (balanceCents < floorCents) {
277
+ const low = { balanceCents, floorCents, at: now };
278
+ if (s.balanceLowAt) {
279
+ // Still low: only the email repeats — today's key makes it one a UTC day, and a send that
280
+ // failed earlier today is taken over here. The webhook stays once per crossing.
281
+ if (s.contactEmail)
282
+ await emailBalanceLow(deps, s, low);
283
+ continue;
284
+ }
285
+ // The NULL guard makes the crossing one write, whoever else is watching.
286
+ const crossed = await db
287
+ .update(apiSources)
288
+ .set({ balanceLowAt: now })
289
+ .where(and(eq(apiSources.sourceId, s.sourceId), isNull(apiSources.balanceLowAt)))
290
+ .returning({ sourceId: apiSources.sourceId });
291
+ if (crossed.length > 0) {
292
+ await emitBalanceLow(db, {
293
+ sourceId: s.sourceId,
294
+ balanceCents,
295
+ floorCents,
296
+ crossedAt: now,
297
+ });
298
+ // Fail-soft (never throws): an email that did not land never holds up the watch.
299
+ await emailBalanceLow(deps, s, low);
300
+ logger.info("payments.balance-low", { sourceId: s.sourceId, balanceCents, floorCents });
301
+ }
302
+ }
303
+ else if (s.balanceLowAt) {
304
+ await db
305
+ .update(apiSources)
306
+ .set({ balanceLowAt: null })
307
+ .where(eq(apiSources.sourceId, s.sourceId));
308
+ }
309
+ }
310
+ // A short page wraps around to the first source next run.
311
+ const last = sources.at(-1);
312
+ if (last && sources.length === WATCH_BATCH)
313
+ await cache.put(WATCH_CURSOR, last.sourceId);
314
+ else
315
+ await cache.delete(WATCH_CURSOR);
316
+ }
317
+ //# sourceMappingURL=reconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../src/lib/payments/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEpG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,uBAAuB,EAEvB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAOhD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,4FAA4F;AAC5F,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC;AACnC;iEACiE;AACjE,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAC;AACzC,MAAM,sBAAsB,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAC7D,MAAM,oBAAoB,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAC3D,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAsB3C,qEAAqE;AACrE,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY;IACjD,IAAI,IAAI,GAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,GAAY,EAAE,MAA+B,EAAW,EAAE;QAChE,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3E,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,GAAG,YAAY,sBAAsB;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,IAAI,CAAC,CAAC;QACV,OAAO,IAAI,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAqB,EACrB,GAAG,GAAG,IAAI,IAAI,EAAE,EAChB,IAAI,GAAuB,EAAE;IAE7B,MAAM,MAAM,GAAoB;QAC9B,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,CAAC;KACZ,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,eAAe,CAAC;IAC5C,MAAM,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IACvC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAqB,EACrB,GAAS,EACT,MAAuB,EACvB,KAAa;IAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE;SACvB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;SACvC,IAAI,CAAC,UAAU,CAAC;SAChB,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;SACrE,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;IACjC,uFAAuF;IACvF,oCAAoC;IACpC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAC5B,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,EACnE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,CAAC,CACzE,CACF;SACA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAClC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mEAAmE;QACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,yFAAyF;QACzF,wEAAwE;QACxE,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAqB,EACrB,GAAS,EACT,MAAuB,EACvB,KAAa;IAEb,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IACpB,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,MAAM,CAAC,UAAU,CAAC;SAClB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC3C,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,OAAO,CACL,UAAU,CAAC,OAAO,EAClB,EAAE;SACC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;SACvC,IAAI,CAAC,UAAU,CAAC;SAChB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,EAAE,CACA,GAAG,CACD,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,EACvC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAC3E,EACD,EAAE,CACA,UAAU,CAAC,oBAAoB,EAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,CAC/C,CACF,EACD,GAAG,CACD,MAAM,CACJ,EAAE;SACC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;SACtC,IAAI,CAAC,SAAS,CAAC;SACf,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EACzC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAChC,CACF,CACJ,CACF,CACF,CACF;SACA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAClC,KAAK,CAAC,KAAK,CAAC,CAChB,CACF,CACF;SACA,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAqB,EACrB,GAAS,EACT,MAAuB,EACvB,KAAa;IAEb,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IACpB,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;SACvC,IAAI,CAAC,UAAU,CAAC;SAChB,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;SAC/D,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;IACvC,6DAA6D;IAC7D,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,EAClE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IACtC,+EAA+E;IAC/E,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC;IAClE,mEAAmE;IACnE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAC3D,CACF;SACA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAClC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,IAAI,GAAG,cAAc,CAAC;IAC1B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,oFAAoF;QACpF,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3F,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,CAAC;YACV,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAqB,EAAE,GAAS,EAAE,MAAuB,EAAE,KAAa;IAC9F,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,CAAC;QACN,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC;SACD,IAAI,CAAC,UAAU,CAAC;SAChB,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;SAC/D,KAAK,CACJ,GAAG,CACD,EAAE,CACA,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EACnD,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CACtE,EACD,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC;IAC/B,+EAA+E;IAC/E,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,CACnE,CACF;SACA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAClC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,IAAI,GAAG,cAAc,CAAC;IAE1B,6EAA6E;IAC7E,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAChC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAoB,CAAC,CAAC;QAC3E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5D,gHAAgH;YAChH,qEAAqE;YACrE,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrD,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,EAAE;iBAClB,MAAM,CAAC,UAAU,CAAC;iBAClB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;iBACnD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;iBAClF,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnE,+EAA+E;gBAC/E,MAAM,WAAW,CAAC,IAAI,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9E,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,0DAA0D;YAC1D,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,CAAC;YACV,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM;YACrB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QACtB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;aACvC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;aAClD,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;YAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;;YACpD,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA6E,EAC7E,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,MAAM,CAAC;QACN,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,UAAU,EAAE,UAAU,CAAC,gBAAgB;QACvC,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC;SACD,IAAI,CAAC,UAAU,CAAC;SAChB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC/B,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACtC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CACnD,CACF;SACA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACjC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtB,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,CAAC,CAAC,UAAoB,CAAC;QAC1C,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9D,+EAA+E;YAC/E,IAAI,SAAS,KAAK,IAAI;gBAAE,SAAS;YACjC,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oEAAoE;YACpE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAAE,OAAO;YACtD,SAAS;QACX,CAAC;QACD,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;YAClD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnB,0FAA0F;gBAC1F,gFAAgF;gBAChF,IAAI,CAAC,CAAC,YAAY;oBAAE,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,yEAAyE;YACzE,MAAM,OAAO,GAAG,MAAM,EAAE;iBACrB,MAAM,CAAC,UAAU,CAAC;iBAClB,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;iBAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;iBAChF,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,cAAc,CAAC,EAAE,EAAE;oBACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,YAAY;oBACZ,UAAU;oBACV,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;gBACH,iFAAiF;gBACjF,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,EAAE;iBACL,MAAM,CAAC,UAAU,CAAC;iBAClB,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;iBAC3B,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,0DAA0D;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;QAAE,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;QACpF,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * A card payment's refund on the claim's charge row (S3/S6: the console must not offer Refund
3
+ * twice). Read from the facilitator — `GET /v1/card/refunds/:claimId`, the Stripe refunds it has
4
+ * for the claim — never on the console's word. PAY has no refund: its transfer is final.
5
+ *
6
+ * - `refreshRefund`: one claim, now (S3's refresh route).
7
+ * - `refreshRefunds`: the reconcile's arm — card charges paid in the last REFUND_WINDOW_DAYS,
8
+ * each asked again at most every REFUND_RECHECK_MS, REFUND_BATCH per run; so a refund made
9
+ * anywhere (the console, the operator's Stripe dashboard, a dispute) lands unasked.
10
+ *
11
+ * `refunded` when what was refunded (succeeded + pending) covers the claim's own cents, else
12
+ * `partially_refunded`; nothing refunded (none, or a refund canceled or failed) is `paid` again.
13
+ */
14
+ import type { SettleDeps } from "./settle.js";
15
+ /** A card payment can be refunded or disputed for months: Stripe's dispute window is 120 days. */
16
+ export declare const REFUND_WINDOW_DAYS = 120;
17
+ export declare const REFUND_RECHECK_MS: number;
18
+ export declare const REFUND_BATCH = 25;
19
+ export type RefundOutcome = {
20
+ status: "refunded" | "partially_refunded";
21
+ refundedAmountCents: number;
22
+ } | {
23
+ status: "paid";
24
+ } | {
25
+ status: "skipped";
26
+ reason: "no_charge" | "not_card" | "not_paid" | "unknown_to_facilitator";
27
+ };
28
+ export declare function refreshRefund(deps: SettleDeps, claimId: string, now?: Date): Promise<RefundOutcome>;
29
+ /** The reconcile's refund arm (see the top). Returns how many charges it asked about. */
30
+ export declare function refreshRefunds(deps: SettleDeps, now?: Date, batch?: number): Promise<{
31
+ checked: number;
32
+ refunded: number;
33
+ }>;
34
+ //# sourceMappingURL=refund.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refund.d.ts","sourceRoot":"","sources":["../../../src/lib/payments/refund.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,iBAAiB,QAAc,CAAC;AAC7C,eAAO,MAAM,YAAY,KAAK,CAAC;AAK/B,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,UAAU,GAAG,oBAAoB,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,wBAAwB,CAAA;CAAE,CAAC;AAEpG,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,OAAa,GACf,OAAO,CAAC,aAAa,CAAC,CAiExB;AAED,yFAAyF;AACzF,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,GAAG,OAAa,EAChB,KAAK,SAAe,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA2ChD"}