@ixo/decision-oracle 0.0.0-stage → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1118) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +794 -2
  3. package/dist/act.d.ts +87 -0
  4. package/dist/act.d.ts.map +1 -0
  5. package/dist/act.js +20 -0
  6. package/dist/act.js.map +1 -0
  7. package/dist/app.d.ts +22 -0
  8. package/dist/app.d.ts.map +1 -0
  9. package/dist/app.js +128 -0
  10. package/dist/app.js.map +1 -0
  11. package/dist/c2pa.wasm +0 -0
  12. package/dist/cli/commands/api.d.ts +50 -0
  13. package/dist/cli/commands/api.d.ts.map +1 -0
  14. package/dist/cli/commands/api.js +737 -0
  15. package/dist/cli/commands/api.js.map +1 -0
  16. package/dist/cli/commands/create-collection.d.ts +40 -0
  17. package/dist/cli/commands/create-collection.d.ts.map +1 -0
  18. package/dist/cli/commands/create-collection.js +318 -0
  19. package/dist/cli/commands/create-collection.js.map +1 -0
  20. package/dist/cli/commands/create-deed.d.ts +31 -0
  21. package/dist/cli/commands/create-deed.d.ts.map +1 -0
  22. package/dist/cli/commands/create-deed.js +208 -0
  23. package/dist/cli/commands/create-deed.js.map +1 -0
  24. package/dist/cli/commands/delegation.d.ts +26 -0
  25. package/dist/cli/commands/delegation.d.ts.map +1 -0
  26. package/dist/cli/commands/delegation.js +162 -0
  27. package/dist/cli/commands/delegation.js.map +1 -0
  28. package/dist/cli/commands/derive.d.ts +22 -0
  29. package/dist/cli/commands/derive.d.ts.map +1 -0
  30. package/dist/cli/commands/derive.js +53 -0
  31. package/dist/cli/commands/derive.js.map +1 -0
  32. package/dist/cli/commands/engine.d.ts +25 -0
  33. package/dist/cli/commands/engine.d.ts.map +1 -0
  34. package/dist/cli/commands/engine.js +107 -0
  35. package/dist/cli/commands/engine.js.map +1 -0
  36. package/dist/cli/commands/erase.d.ts +17 -0
  37. package/dist/cli/commands/erase.d.ts.map +1 -0
  38. package/dist/cli/commands/erase.js +117 -0
  39. package/dist/cli/commands/erase.js.map +1 -0
  40. package/dist/cli/commands/facts-run.d.ts +30 -0
  41. package/dist/cli/commands/facts-run.d.ts.map +1 -0
  42. package/dist/cli/commands/facts-run.js +409 -0
  43. package/dist/cli/commands/facts-run.js.map +1 -0
  44. package/dist/cli/commands/facts-scaffold.d.ts +22 -0
  45. package/dist/cli/commands/facts-scaffold.d.ts.map +1 -0
  46. package/dist/cli/commands/facts-scaffold.js +208 -0
  47. package/dist/cli/commands/facts-scaffold.js.map +1 -0
  48. package/dist/cli/commands/init.d.ts +18 -0
  49. package/dist/cli/commands/init.d.ts.map +1 -0
  50. package/dist/cli/commands/init.js +34 -0
  51. package/dist/cli/commands/init.js.map +1 -0
  52. package/dist/cli/commands/login.d.ts +9 -0
  53. package/dist/cli/commands/login.d.ts.map +1 -0
  54. package/dist/cli/commands/login.js +16 -0
  55. package/dist/cli/commands/login.js.map +1 -0
  56. package/dist/cli/commands/logout.d.ts +10 -0
  57. package/dist/cli/commands/logout.d.ts.map +1 -0
  58. package/dist/cli/commands/logout.js +28 -0
  59. package/dist/cli/commands/logout.js.map +1 -0
  60. package/dist/cli/commands/manifest.d.ts +12 -0
  61. package/dist/cli/commands/manifest.d.ts.map +1 -0
  62. package/dist/cli/commands/manifest.js +48 -0
  63. package/dist/cli/commands/manifest.js.map +1 -0
  64. package/dist/cli/commands/oracle-init.d.ts +48 -0
  65. package/dist/cli/commands/oracle-init.d.ts.map +1 -0
  66. package/dist/cli/commands/oracle-init.js +1122 -0
  67. package/dist/cli/commands/oracle-init.js.map +1 -0
  68. package/dist/cli/commands/org.d.ts +28 -0
  69. package/dist/cli/commands/org.d.ts.map +1 -0
  70. package/dist/cli/commands/org.js +309 -0
  71. package/dist/cli/commands/org.js.map +1 -0
  72. package/dist/cli/commands/protocol-review.d.ts +20 -0
  73. package/dist/cli/commands/protocol-review.d.ts.map +1 -0
  74. package/dist/cli/commands/protocol-review.js +162 -0
  75. package/dist/cli/commands/protocol-review.js.map +1 -0
  76. package/dist/cli/commands/publish-protocol.d.ts +43 -0
  77. package/dist/cli/commands/publish-protocol.d.ts.map +1 -0
  78. package/dist/cli/commands/publish-protocol.js +345 -0
  79. package/dist/cli/commands/publish-protocol.js.map +1 -0
  80. package/dist/cli/commands/register.d.ts +16 -0
  81. package/dist/cli/commands/register.d.ts.map +1 -0
  82. package/dist/cli/commands/register.js +54 -0
  83. package/dist/cli/commands/register.js.map +1 -0
  84. package/dist/cli/commands/relink.d.ts +11 -0
  85. package/dist/cli/commands/relink.d.ts.map +1 -0
  86. package/dist/cli/commands/relink.js +36 -0
  87. package/dist/cli/commands/relink.js.map +1 -0
  88. package/dist/cli/commands/rubric-fetch-form.d.ts +16 -0
  89. package/dist/cli/commands/rubric-fetch-form.d.ts.map +1 -0
  90. package/dist/cli/commands/rubric-fetch-form.js +83 -0
  91. package/dist/cli/commands/rubric-fetch-form.js.map +1 -0
  92. package/dist/cli/commands/rubric-validate.d.ts +72 -0
  93. package/dist/cli/commands/rubric-validate.d.ts.map +1 -0
  94. package/dist/cli/commands/rubric-validate.js +163 -0
  95. package/dist/cli/commands/rubric-validate.js.map +1 -0
  96. package/dist/cli/commands/scan.d.ts +13 -0
  97. package/dist/cli/commands/scan.d.ts.map +1 -0
  98. package/dist/cli/commands/scan.js +39 -0
  99. package/dist/cli/commands/scan.js.map +1 -0
  100. package/dist/cli/commands/skills.d.ts +11 -0
  101. package/dist/cli/commands/skills.d.ts.map +1 -0
  102. package/dist/cli/commands/skills.js +19 -0
  103. package/dist/cli/commands/skills.js.map +1 -0
  104. package/dist/cli/commands/submit-claim.d.ts +25 -0
  105. package/dist/cli/commands/submit-claim.d.ts.map +1 -0
  106. package/dist/cli/commands/submit-claim.js +155 -0
  107. package/dist/cli/commands/submit-claim.js.map +1 -0
  108. package/dist/cli/index.d.ts +15 -0
  109. package/dist/cli/index.d.ts.map +1 -0
  110. package/dist/cli/index.js +206 -0
  111. package/dist/cli/index.js.map +1 -0
  112. package/dist/cli/lib/agent-card-schema.d.ts +8 -0
  113. package/dist/cli/lib/agent-card-schema.d.ts.map +1 -0
  114. package/dist/cli/lib/agent-card-schema.js +169 -0
  115. package/dist/cli/lib/agent-card-schema.js.map +1 -0
  116. package/dist/cli/lib/ai-rest.d.ts +12 -0
  117. package/dist/cli/lib/ai-rest.d.ts.map +1 -0
  118. package/dist/cli/lib/ai-rest.js +36 -0
  119. package/dist/cli/lib/ai-rest.js.map +1 -0
  120. package/dist/cli/lib/args.d.ts +33 -0
  121. package/dist/cli/lib/args.d.ts.map +1 -0
  122. package/dist/cli/lib/args.js +24 -0
  123. package/dist/cli/lib/args.js.map +1 -0
  124. package/dist/cli/lib/authhub.d.ts +7 -0
  125. package/dist/cli/lib/authhub.d.ts.map +1 -0
  126. package/dist/cli/lib/authhub.js +210 -0
  127. package/dist/cli/lib/authhub.js.map +1 -0
  128. package/dist/cli/lib/chain.d.ts +264 -0
  129. package/dist/cli/lib/chain.d.ts.map +1 -0
  130. package/dist/cli/lib/chain.js +584 -0
  131. package/dist/cli/lib/chain.js.map +1 -0
  132. package/dist/cli/lib/devvars.d.ts +59 -0
  133. package/dist/cli/lib/devvars.d.ts.map +1 -0
  134. package/dist/cli/lib/devvars.js +206 -0
  135. package/dist/cli/lib/devvars.js.map +1 -0
  136. package/dist/cli/lib/engine.d.ts +54 -0
  137. package/dist/cli/lib/engine.d.ts.map +1 -0
  138. package/dist/cli/lib/engine.js +112 -0
  139. package/dist/cli/lib/engine.js.map +1 -0
  140. package/dist/cli/lib/identity-cards.d.ts +188 -0
  141. package/dist/cli/lib/identity-cards.d.ts.map +1 -0
  142. package/dist/cli/lib/identity-cards.js +261 -0
  143. package/dist/cli/lib/identity-cards.js.map +1 -0
  144. package/dist/cli/lib/matrix-account.d.ts +79 -0
  145. package/dist/cli/lib/matrix-account.d.ts.map +1 -0
  146. package/dist/cli/lib/matrix-account.js +228 -0
  147. package/dist/cli/lib/matrix-account.js.map +1 -0
  148. package/dist/cli/lib/oracle-account.d.ts +108 -0
  149. package/dist/cli/lib/oracle-account.d.ts.map +1 -0
  150. package/dist/cli/lib/oracle-account.js +207 -0
  151. package/dist/cli/lib/oracle-account.js.map +1 -0
  152. package/dist/cli/lib/project.d.ts +22 -0
  153. package/dist/cli/lib/project.d.ts.map +1 -0
  154. package/dist/cli/lib/project.js +62 -0
  155. package/dist/cli/lib/project.js.map +1 -0
  156. package/dist/cli/lib/session.d.ts +109 -0
  157. package/dist/cli/lib/session.d.ts.map +1 -0
  158. package/dist/cli/lib/session.js +354 -0
  159. package/dist/cli/lib/session.js.map +1 -0
  160. package/dist/cli/lib/workorder.d.ts +57 -0
  161. package/dist/cli/lib/workorder.d.ts.map +1 -0
  162. package/dist/cli/lib/workorder.js +101 -0
  163. package/dist/cli/lib/workorder.js.map +1 -0
  164. package/dist/config.d.ts +221 -0
  165. package/dist/config.d.ts.map +1 -0
  166. package/dist/config.js +431 -0
  167. package/dist/config.js.map +1 -0
  168. package/dist/context.d.ts +88 -0
  169. package/dist/context.d.ts.map +1 -0
  170. package/dist/context.js +9 -0
  171. package/dist/context.js.map +1 -0
  172. package/dist/contracts/api.d.ts +3367 -0
  173. package/dist/contracts/api.d.ts.map +1 -0
  174. package/dist/contracts/api.js +1303 -0
  175. package/dist/contracts/api.js.map +1 -0
  176. package/dist/contracts/capabilities.d.ts +126 -0
  177. package/dist/contracts/capabilities.d.ts.map +1 -0
  178. package/dist/contracts/capabilities.js +164 -0
  179. package/dist/contracts/capabilities.js.map +1 -0
  180. package/dist/contracts/claim-source.d.ts +98 -0
  181. package/dist/contracts/claim-source.d.ts.map +1 -0
  182. package/dist/contracts/claim-source.js +17 -0
  183. package/dist/contracts/claim-source.js.map +1 -0
  184. package/dist/contracts/errors.d.ts +150 -0
  185. package/dist/contracts/errors.d.ts.map +1 -0
  186. package/dist/contracts/errors.js +121 -0
  187. package/dist/contracts/errors.js.map +1 -0
  188. package/dist/contracts/index.d.ts +15 -0
  189. package/dist/contracts/index.d.ts.map +1 -0
  190. package/dist/contracts/index.js +11 -0
  191. package/dist/contracts/index.js.map +1 -0
  192. package/dist/contracts/payment-gate.d.ts +129 -0
  193. package/dist/contracts/payment-gate.d.ts.map +1 -0
  194. package/dist/contracts/payment-gate.js +24 -0
  195. package/dist/contracts/payment-gate.js.map +1 -0
  196. package/dist/contracts/start-api-claim.d.ts +90 -0
  197. package/dist/contracts/start-api-claim.d.ts.map +1 -0
  198. package/dist/contracts/start-api-claim.js +22 -0
  199. package/dist/contracts/start-api-claim.js.map +1 -0
  200. package/dist/contracts/webhooks.d.ts +1487 -0
  201. package/dist/contracts/webhooks.d.ts.map +1 -0
  202. package/dist/contracts/webhooks.js +71 -0
  203. package/dist/contracts/webhooks.js.map +1 -0
  204. package/dist/contracts/work-order.d.ts +29 -0
  205. package/dist/contracts/work-order.d.ts.map +1 -0
  206. package/dist/contracts/work-order.js +12 -0
  207. package/dist/contracts/work-order.js.map +1 -0
  208. package/dist/cron/ai-cost.d.ts +29 -0
  209. package/dist/cron/ai-cost.d.ts.map +1 -0
  210. package/dist/cron/ai-cost.js +80 -0
  211. package/dist/cron/ai-cost.js.map +1 -0
  212. package/dist/cron/api-lane.d.ts +39 -0
  213. package/dist/cron/api-lane.d.ts.map +1 -0
  214. package/dist/cron/api-lane.js +203 -0
  215. package/dist/cron/api-lane.js.map +1 -0
  216. package/dist/cron/backlog.d.ts +50 -0
  217. package/dist/cron/backlog.d.ts.map +1 -0
  218. package/dist/cron/backlog.js +115 -0
  219. package/dist/cron/backlog.js.map +1 -0
  220. package/dist/cron/billing.d.ts +11 -0
  221. package/dist/cron/billing.d.ts.map +1 -0
  222. package/dist/cron/billing.js +69 -0
  223. package/dist/cron/billing.js.map +1 -0
  224. package/dist/cron/collection.d.ts +50 -0
  225. package/dist/cron/collection.d.ts.map +1 -0
  226. package/dist/cron/collection.js +118 -0
  227. package/dist/cron/collection.js.map +1 -0
  228. package/dist/cron/funding.d.ts +16 -0
  229. package/dist/cron/funding.d.ts.map +1 -0
  230. package/dist/cron/funding.js +262 -0
  231. package/dist/cron/funding.js.map +1 -0
  232. package/dist/cron/payer-billing.d.ts +38 -0
  233. package/dist/cron/payer-billing.d.ts.map +1 -0
  234. package/dist/cron/payer-billing.js +119 -0
  235. package/dist/cron/payer-billing.js.map +1 -0
  236. package/dist/cron/scan.d.ts +43 -0
  237. package/dist/cron/scan.d.ts.map +1 -0
  238. package/dist/cron/scan.js +250 -0
  239. package/dist/cron/scan.js.map +1 -0
  240. package/dist/db/client.d.ts +14 -0
  241. package/dist/db/client.d.ts.map +1 -0
  242. package/dist/db/client.js +14 -0
  243. package/dist/db/client.js.map +1 -0
  244. package/dist/db/index.d.ts +7 -0
  245. package/dist/db/index.d.ts.map +1 -0
  246. package/dist/db/index.js +7 -0
  247. package/dist/db/index.js.map +1 -0
  248. package/dist/db/schema.d.ts +6738 -0
  249. package/dist/db/schema.d.ts.map +1 -0
  250. package/dist/db/schema.js +1433 -0
  251. package/dist/db/schema.js.map +1 -0
  252. package/dist/define-oracle.d.ts +32 -0
  253. package/dist/define-oracle.d.ts.map +1 -0
  254. package/dist/define-oracle.js +80 -0
  255. package/dist/define-oracle.js.map +1 -0
  256. package/dist/dev-oracle.d.ts +9 -0
  257. package/dist/dev-oracle.d.ts.map +1 -0
  258. package/dist/dev-oracle.js +19 -0
  259. package/dist/dev-oracle.js.map +1 -0
  260. package/dist/dev-worker.d.ts +10 -0
  261. package/dist/dev-worker.d.ts.map +1 -0
  262. package/dist/dev-worker.js +12 -0
  263. package/dist/dev-worker.js.map +1 -0
  264. package/dist/env.d.ts +146 -0
  265. package/dist/env.d.ts.map +1 -0
  266. package/dist/env.js +10 -0
  267. package/dist/env.js.map +1 -0
  268. package/dist/facts/exif.d.ts +43 -0
  269. package/dist/facts/exif.d.ts.map +1 -0
  270. package/dist/facts/exif.js +224 -0
  271. package/dist/facts/exif.js.map +1 -0
  272. package/dist/facts/fact.d.ts +62 -0
  273. package/dist/facts/fact.d.ts.map +1 -0
  274. package/dist/facts/fact.js +105 -0
  275. package/dist/facts/fact.js.map +1 -0
  276. package/dist/facts/geo.d.ts +55 -0
  277. package/dist/facts/geo.d.ts.map +1 -0
  278. package/dist/facts/geo.js +267 -0
  279. package/dist/facts/geo.js.map +1 -0
  280. package/dist/facts/index.d.ts +31 -0
  281. package/dist/facts/index.d.ts.map +1 -0
  282. package/dist/facts/index.js +27 -0
  283. package/dist/facts/index.js.map +1 -0
  284. package/dist/facts/linked-doc.d.ts +60 -0
  285. package/dist/facts/linked-doc.d.ts.map +1 -0
  286. package/dist/facts/linked-doc.js +101 -0
  287. package/dist/facts/linked-doc.js.map +1 -0
  288. package/dist/facts/types.d.ts +278 -0
  289. package/dist/facts/types.d.ts.map +1 -0
  290. package/dist/facts/types.js +19 -0
  291. package/dist/facts/types.js.map +1 -0
  292. package/dist/index.d.ts +25 -0
  293. package/dist/index.d.ts.map +1 -0
  294. package/dist/index.js +19 -0
  295. package/dist/index.js.map +1 -0
  296. package/dist/lib/api-lane/accept.d.ts +29 -0
  297. package/dist/lib/api-lane/accept.d.ts.map +1 -0
  298. package/dist/lib/api-lane/accept.js +218 -0
  299. package/dist/lib/api-lane/accept.js.map +1 -0
  300. package/dist/lib/api-lane/claim-list.d.ts +44 -0
  301. package/dist/lib/api-lane/claim-list.d.ts.map +1 -0
  302. package/dist/lib/api-lane/claim-list.js +92 -0
  303. package/dist/lib/api-lane/claim-list.js.map +1 -0
  304. package/dist/lib/api-lane/company.d.ts +56 -0
  305. package/dist/lib/api-lane/company.d.ts.map +1 -0
  306. package/dist/lib/api-lane/company.js +103 -0
  307. package/dist/lib/api-lane/company.js.map +1 -0
  308. package/dist/lib/api-lane/events.d.ts +21 -0
  309. package/dist/lib/api-lane/events.d.ts.map +1 -0
  310. package/dist/lib/api-lane/events.js +111 -0
  311. package/dist/lib/api-lane/events.js.map +1 -0
  312. package/dist/lib/api-lane/ids.d.ts +39 -0
  313. package/dist/lib/api-lane/ids.d.ts.map +1 -0
  314. package/dist/lib/api-lane/ids.js +78 -0
  315. package/dist/lib/api-lane/ids.js.map +1 -0
  316. package/dist/lib/api-lane/index.d.ts +16 -0
  317. package/dist/lib/api-lane/index.d.ts.map +1 -0
  318. package/dist/lib/api-lane/index.js +16 -0
  319. package/dist/lib/api-lane/index.js.map +1 -0
  320. package/dist/lib/api-lane/linked.d.ts +264 -0
  321. package/dist/lib/api-lane/linked.d.ts.map +1 -0
  322. package/dist/lib/api-lane/linked.js +272 -0
  323. package/dist/lib/api-lane/linked.js.map +1 -0
  324. package/dist/lib/api-lane/media-type.d.ts +15 -0
  325. package/dist/lib/api-lane/media-type.d.ts.map +1 -0
  326. package/dist/lib/api-lane/media-type.js +73 -0
  327. package/dist/lib/api-lane/media-type.js.map +1 -0
  328. package/dist/lib/api-lane/member-emails.d.ts +83 -0
  329. package/dist/lib/api-lane/member-emails.d.ts.map +1 -0
  330. package/dist/lib/api-lane/member-emails.js +213 -0
  331. package/dist/lib/api-lane/member-emails.js.map +1 -0
  332. package/dist/lib/api-lane/members.d.ts +42 -0
  333. package/dist/lib/api-lane/members.d.ts.map +1 -0
  334. package/dist/lib/api-lane/members.js +75 -0
  335. package/dist/lib/api-lane/members.js.map +1 -0
  336. package/dist/lib/api-lane/notify.d.ts +47 -0
  337. package/dist/lib/api-lane/notify.d.ts.map +1 -0
  338. package/dist/lib/api-lane/notify.js +240 -0
  339. package/dist/lib/api-lane/notify.js.map +1 -0
  340. package/dist/lib/api-lane/pause.d.ts +41 -0
  341. package/dist/lib/api-lane/pause.d.ts.map +1 -0
  342. package/dist/lib/api-lane/pause.js +155 -0
  343. package/dist/lib/api-lane/pause.js.map +1 -0
  344. package/dist/lib/api-lane/record.d.ts +76 -0
  345. package/dist/lib/api-lane/record.d.ts.map +1 -0
  346. package/dist/lib/api-lane/record.js +337 -0
  347. package/dist/lib/api-lane/record.js.map +1 -0
  348. package/dist/lib/api-lane/retention.d.ts +43 -0
  349. package/dist/lib/api-lane/retention.d.ts.map +1 -0
  350. package/dist/lib/api-lane/retention.js +176 -0
  351. package/dist/lib/api-lane/retention.js.map +1 -0
  352. package/dist/lib/api-lane/review.d.ts +76 -0
  353. package/dist/lib/api-lane/review.d.ts.map +1 -0
  354. package/dist/lib/api-lane/review.js +355 -0
  355. package/dist/lib/api-lane/review.js.map +1 -0
  356. package/dist/lib/api-lane/reviewers.d.ts +109 -0
  357. package/dist/lib/api-lane/reviewers.d.ts.map +1 -0
  358. package/dist/lib/api-lane/reviewers.js +755 -0
  359. package/dist/lib/api-lane/reviewers.js.map +1 -0
  360. package/dist/lib/api-lane/source-delete.d.ts +16 -0
  361. package/dist/lib/api-lane/source-delete.d.ts.map +1 -0
  362. package/dist/lib/api-lane/source-delete.js +50 -0
  363. package/dist/lib/api-lane/source-delete.js.map +1 -0
  364. package/dist/lib/api-lane/source.d.ts +19 -0
  365. package/dist/lib/api-lane/source.d.ts.map +1 -0
  366. package/dist/lib/api-lane/source.js +226 -0
  367. package/dist/lib/api-lane/source.js.map +1 -0
  368. package/dist/lib/api-lane/submitter.d.ts +22 -0
  369. package/dist/lib/api-lane/submitter.d.ts.map +1 -0
  370. package/dist/lib/api-lane/submitter.js +34 -0
  371. package/dist/lib/api-lane/submitter.js.map +1 -0
  372. package/dist/lib/api-lane/timeline.d.ts +20 -0
  373. package/dist/lib/api-lane/timeline.d.ts.map +1 -0
  374. package/dist/lib/api-lane/timeline.js +23 -0
  375. package/dist/lib/api-lane/timeline.js.map +1 -0
  376. package/dist/lib/api-lane/webhook-crypto.d.ts +44 -0
  377. package/dist/lib/api-lane/webhook-crypto.d.ts.map +1 -0
  378. package/dist/lib/api-lane/webhook-crypto.js +103 -0
  379. package/dist/lib/api-lane/webhook-crypto.js.map +1 -0
  380. package/dist/lib/api-lane/webhooks.d.ts +117 -0
  381. package/dist/lib/api-lane/webhooks.d.ts.map +1 -0
  382. package/dist/lib/api-lane/webhooks.js +503 -0
  383. package/dist/lib/api-lane/webhooks.js.map +1 -0
  384. package/dist/lib/archive.d.ts +64 -0
  385. package/dist/lib/archive.d.ts.map +1 -0
  386. package/dist/lib/archive.js +305 -0
  387. package/dist/lib/archive.js.map +1 -0
  388. package/dist/lib/bech32.d.ts +8 -0
  389. package/dist/lib/bech32.d.ts.map +1 -0
  390. package/dist/lib/bech32.js +39 -0
  391. package/dist/lib/bech32.js.map +1 -0
  392. package/dist/lib/claim-erase.d.ts +22 -0
  393. package/dist/lib/claim-erase.d.ts.map +1 -0
  394. package/dist/lib/claim-erase.js +44 -0
  395. package/dist/lib/claim-erase.js.map +1 -0
  396. package/dist/lib/cursor.d.ts +11 -0
  397. package/dist/lib/cursor.d.ts.map +1 -0
  398. package/dist/lib/cursor.js +20 -0
  399. package/dist/lib/cursor.js.map +1 -0
  400. package/dist/lib/email/send.d.ts +43 -0
  401. package/dist/lib/email/send.d.ts.map +1 -0
  402. package/dist/lib/email/send.js +71 -0
  403. package/dist/lib/email/send.js.map +1 -0
  404. package/dist/lib/email/template.d.ts +217 -0
  405. package/dist/lib/email/template.d.ts.map +1 -0
  406. package/dist/lib/email/template.js +713 -0
  407. package/dist/lib/email/template.js.map +1 -0
  408. package/dist/lib/engine/adr36.d.ts +56 -0
  409. package/dist/lib/engine/adr36.d.ts.map +1 -0
  410. package/dist/lib/engine/adr36.js +76 -0
  411. package/dist/lib/engine/adr36.js.map +1 -0
  412. package/dist/lib/engine/client.d.ts +162 -0
  413. package/dist/lib/engine/client.d.ts.map +1 -0
  414. package/dist/lib/engine/client.js +473 -0
  415. package/dist/lib/engine/client.js.map +1 -0
  416. package/dist/lib/engine/types.d.ts +1356 -0
  417. package/dist/lib/engine/types.d.ts.map +1 -0
  418. package/dist/lib/engine/types.js +562 -0
  419. package/dist/lib/engine/types.js.map +1 -0
  420. package/dist/lib/errors.d.ts +73 -0
  421. package/dist/lib/errors.d.ts.map +1 -0
  422. package/dist/lib/errors.js +96 -0
  423. package/dist/lib/errors.js.map +1 -0
  424. package/dist/lib/facts/builder.d.ts +88 -0
  425. package/dist/lib/facts/builder.d.ts.map +1 -0
  426. package/dist/lib/facts/builder.js +239 -0
  427. package/dist/lib/facts/builder.js.map +1 -0
  428. package/dist/lib/facts/ctx.d.ts +34 -0
  429. package/dist/lib/facts/ctx.d.ts.map +1 -0
  430. package/dist/lib/facts/ctx.js +51 -0
  431. package/dist/lib/facts/ctx.js.map +1 -0
  432. package/dist/lib/facts/expected.d.ts +23 -0
  433. package/dist/lib/facts/expected.d.ts.map +1 -0
  434. package/dist/lib/facts/expected.js +16 -0
  435. package/dist/lib/facts/expected.js.map +1 -0
  436. package/dist/lib/facts/fact-cache.d.ts +469 -0
  437. package/dist/lib/facts/fact-cache.d.ts.map +1 -0
  438. package/dist/lib/facts/fact-cache.js +52 -0
  439. package/dist/lib/facts/fact-cache.js.map +1 -0
  440. package/dist/lib/facts/factset.d.ts +608 -0
  441. package/dist/lib/facts/factset.d.ts.map +1 -0
  442. package/dist/lib/facts/factset.js +226 -0
  443. package/dist/lib/facts/factset.js.map +1 -0
  444. package/dist/lib/facts/producer.d.ts +190 -0
  445. package/dist/lib/facts/producer.d.ts.map +1 -0
  446. package/dist/lib/facts/producer.js +15 -0
  447. package/dist/lib/facts/producer.js.map +1 -0
  448. package/dist/lib/facts/runner.d.ts +111 -0
  449. package/dist/lib/facts/runner.d.ts.map +1 -0
  450. package/dist/lib/facts/runner.js +438 -0
  451. package/dist/lib/facts/runner.js.map +1 -0
  452. package/dist/lib/facts/stock/ai-check.d.ts +100 -0
  453. package/dist/lib/facts/stock/ai-check.d.ts.map +1 -0
  454. package/dist/lib/facts/stock/ai-check.js +526 -0
  455. package/dist/lib/facts/stock/ai-check.js.map +1 -0
  456. package/dist/lib/facts/stock/ai-inputs.d.ts +104 -0
  457. package/dist/lib/facts/stock/ai-inputs.d.ts.map +1 -0
  458. package/dist/lib/facts/stock/ai-inputs.js +332 -0
  459. package/dist/lib/facts/stock/ai-inputs.js.map +1 -0
  460. package/dist/lib/facts/stock/ai-provider.d.ts +105 -0
  461. package/dist/lib/facts/stock/ai-provider.d.ts.map +1 -0
  462. package/dist/lib/facts/stock/ai-provider.js +250 -0
  463. package/dist/lib/facts/stock/ai-provider.js.map +1 -0
  464. package/dist/lib/facts/stock/ai-unique.d.ts +85 -0
  465. package/dist/lib/facts/stock/ai-unique.d.ts.map +1 -0
  466. package/dist/lib/facts/stock/ai-unique.js +208 -0
  467. package/dist/lib/facts/stock/ai-unique.js.map +1 -0
  468. package/dist/lib/facts/stock/archive.d.ts +63 -0
  469. package/dist/lib/facts/stock/archive.d.ts.map +1 -0
  470. package/dist/lib/facts/stock/archive.js +349 -0
  471. package/dist/lib/facts/stock/archive.js.map +1 -0
  472. package/dist/lib/facts/stock/c2pa-trust-list.d.ts +16 -0
  473. package/dist/lib/facts/stock/c2pa-trust-list.d.ts.map +1 -0
  474. package/dist/lib/facts/stock/c2pa-trust-list.js +637 -0
  475. package/dist/lib/facts/stock/c2pa-trust-list.js.map +1 -0
  476. package/dist/lib/facts/stock/c2pa.d.ts +56 -0
  477. package/dist/lib/facts/stock/c2pa.d.ts.map +1 -0
  478. package/dist/lib/facts/stock/c2pa.js +234 -0
  479. package/dist/lib/facts/stock/c2pa.js.map +1 -0
  480. package/dist/lib/facts/stock/call.d.ts +91 -0
  481. package/dist/lib/facts/stock/call.d.ts.map +1 -0
  482. package/dist/lib/facts/stock/call.js +281 -0
  483. package/dist/lib/facts/stock/call.js.map +1 -0
  484. package/dist/lib/facts/stock/capability.d.ts +39 -0
  485. package/dist/lib/facts/stock/capability.d.ts.map +1 -0
  486. package/dist/lib/facts/stock/capability.js +59 -0
  487. package/dist/lib/facts/stock/capability.js.map +1 -0
  488. package/dist/lib/facts/stock/ext-source.d.ts +51 -0
  489. package/dist/lib/facts/stock/ext-source.d.ts.map +1 -0
  490. package/dist/lib/facts/stock/ext-source.js +201 -0
  491. package/dist/lib/facts/stock/ext-source.js.map +1 -0
  492. package/dist/lib/facts/stock/frequency-fact.d.ts +59 -0
  493. package/dist/lib/facts/stock/frequency-fact.d.ts.map +1 -0
  494. package/dist/lib/facts/stock/frequency-fact.js +86 -0
  495. package/dist/lib/facts/stock/frequency-fact.js.map +1 -0
  496. package/dist/lib/facts/stock/frequency.d.ts +32 -0
  497. package/dist/lib/facts/stock/frequency.d.ts.map +1 -0
  498. package/dist/lib/facts/stock/frequency.js +48 -0
  499. package/dist/lib/facts/stock/frequency.js.map +1 -0
  500. package/dist/lib/facts/stock/index.d.ts +27 -0
  501. package/dist/lib/facts/stock/index.d.ts.map +1 -0
  502. package/dist/lib/facts/stock/index.js +28 -0
  503. package/dist/lib/facts/stock/index.js.map +1 -0
  504. package/dist/lib/facts/stock/normalize.d.ts +45 -0
  505. package/dist/lib/facts/stock/normalize.d.ts.map +1 -0
  506. package/dist/lib/facts/stock/normalize.js +135 -0
  507. package/dist/lib/facts/stock/normalize.js.map +1 -0
  508. package/dist/lib/facts/stock/phash.d.ts +55 -0
  509. package/dist/lib/facts/stock/phash.d.ts.map +1 -0
  510. package/dist/lib/facts/stock/phash.js +256 -0
  511. package/dist/lib/facts/stock/phash.js.map +1 -0
  512. package/dist/lib/facts/stock/rule-defaults.d.ts +72 -0
  513. package/dist/lib/facts/stock/rule-defaults.d.ts.map +1 -0
  514. package/dist/lib/facts/stock/rule-defaults.js +55 -0
  515. package/dist/lib/facts/stock/rule-defaults.js.map +1 -0
  516. package/dist/lib/facts/stock/send.d.ts +52 -0
  517. package/dist/lib/facts/stock/send.d.ts.map +1 -0
  518. package/dist/lib/facts/stock/send.js +148 -0
  519. package/dist/lib/facts/stock/send.js.map +1 -0
  520. package/dist/lib/facts/stock/unique-score.d.ts +138 -0
  521. package/dist/lib/facts/stock/unique-score.d.ts.map +1 -0
  522. package/dist/lib/facts/stock/unique-score.js +257 -0
  523. package/dist/lib/facts/stock/unique-score.js.map +1 -0
  524. package/dist/lib/facts/stock/unique-store.d.ts +420 -0
  525. package/dist/lib/facts/stock/unique-store.d.ts.map +1 -0
  526. package/dist/lib/facts/stock/unique-store.js +328 -0
  527. package/dist/lib/facts/stock/unique-store.js.map +1 -0
  528. package/dist/lib/facts/stock/unique.d.ts +35 -0
  529. package/dist/lib/facts/stock/unique.d.ts.map +1 -0
  530. package/dist/lib/facts/stock/unique.js +327 -0
  531. package/dist/lib/facts/stock/unique.js.map +1 -0
  532. package/dist/lib/facts/tools.d.ts +57 -0
  533. package/dist/lib/facts/tools.d.ts.map +1 -0
  534. package/dist/lib/facts/tools.js +325 -0
  535. package/dist/lib/facts/tools.js.map +1 -0
  536. package/dist/lib/facts/validate.d.ts +33 -0
  537. package/dist/lib/facts/validate.d.ts.map +1 -0
  538. package/dist/lib/facts/validate.js +137 -0
  539. package/dist/lib/facts/validate.js.map +1 -0
  540. package/dist/lib/hash.d.ts +44 -0
  541. package/dist/lib/hash.d.ts.map +1 -0
  542. package/dist/lib/hash.js +80 -0
  543. package/dist/lib/hash.js.map +1 -0
  544. package/dist/lib/http/client.d.ts +113 -0
  545. package/dist/lib/http/client.d.ts.map +1 -0
  546. package/dist/lib/http/client.js +330 -0
  547. package/dist/lib/http/client.js.map +1 -0
  548. package/dist/lib/ids.d.ts +17 -0
  549. package/dist/lib/ids.d.ts.map +1 -0
  550. package/dist/lib/ids.js +26 -0
  551. package/dist/lib/ids.js.map +1 -0
  552. package/dist/lib/ixo/attachments.d.ts +116 -0
  553. package/dist/lib/ixo/attachments.d.ts.map +1 -0
  554. package/dist/lib/ixo/attachments.js +290 -0
  555. package/dist/lib/ixo/attachments.js.map +1 -0
  556. package/dist/lib/ixo/authz.d.ts +40 -0
  557. package/dist/lib/ixo/authz.d.ts.map +1 -0
  558. package/dist/lib/ixo/authz.js +113 -0
  559. package/dist/lib/ixo/authz.js.map +1 -0
  560. package/dist/lib/ixo/blocksync/index.d.ts +90 -0
  561. package/dist/lib/ixo/blocksync/index.d.ts.map +1 -0
  562. package/dist/lib/ixo/blocksync/index.js +251 -0
  563. package/dist/lib/ixo/blocksync/index.js.map +1 -0
  564. package/dist/lib/ixo/blocksync/queries.d.ts +15 -0
  565. package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -0
  566. package/dist/lib/ixo/blocksync/queries.js +144 -0
  567. package/dist/lib/ixo/blocksync/queries.js.map +1 -0
  568. package/dist/lib/ixo/blocksync/types.d.ts +184 -0
  569. package/dist/lib/ixo/blocksync/types.d.ts.map +1 -0
  570. package/dist/lib/ixo/blocksync/types.js +108 -0
  571. package/dist/lib/ixo/blocksync/types.js.map +1 -0
  572. package/dist/lib/ixo/cellnode.d.ts +35 -0
  573. package/dist/lib/ixo/cellnode.d.ts.map +1 -0
  574. package/dist/lib/ixo/cellnode.js +43 -0
  575. package/dist/lib/ixo/cellnode.js.map +1 -0
  576. package/dist/lib/ixo/chain-write.d.ts +130 -0
  577. package/dist/lib/ixo/chain-write.d.ts.map +1 -0
  578. package/dist/lib/ixo/chain-write.js +460 -0
  579. package/dist/lib/ixo/chain-write.js.map +1 -0
  580. package/dist/lib/ixo/chain.d.ts +1046 -0
  581. package/dist/lib/ixo/chain.d.ts.map +1 -0
  582. package/dist/lib/ixo/chain.js +279 -0
  583. package/dist/lib/ixo/chain.js.map +1 -0
  584. package/dist/lib/ixo/claim-bot.d.ts +49 -0
  585. package/dist/lib/ixo/claim-bot.d.ts.map +1 -0
  586. package/dist/lib/ixo/claim-bot.js +141 -0
  587. package/dist/lib/ixo/claim-bot.js.map +1 -0
  588. package/dist/lib/ixo/delegation-verify.d.ts +44 -0
  589. package/dist/lib/ixo/delegation-verify.d.ts.map +1 -0
  590. package/dist/lib/ixo/delegation-verify.js +101 -0
  591. package/dist/lib/ixo/delegation-verify.js.map +1 -0
  592. package/dist/lib/ixo/did.d.ts +13 -0
  593. package/dist/lib/ixo/did.d.ts.map +1 -0
  594. package/dist/lib/ixo/did.js +85 -0
  595. package/dist/lib/ixo/did.js.map +1 -0
  596. package/dist/lib/ixo/grant-chain.d.ts +55 -0
  597. package/dist/lib/ixo/grant-chain.d.ts.map +1 -0
  598. package/dist/lib/ixo/grant-chain.js +185 -0
  599. package/dist/lib/ixo/grant-chain.js.map +1 -0
  600. package/dist/lib/ixo/identity.d.ts +32 -0
  601. package/dist/lib/ixo/identity.d.ts.map +1 -0
  602. package/dist/lib/ixo/identity.js +104 -0
  603. package/dist/lib/ixo/identity.js.map +1 -0
  604. package/dist/lib/ixo/index.d.ts +118 -0
  605. package/dist/lib/ixo/index.d.ts.map +1 -0
  606. package/dist/lib/ixo/index.js +395 -0
  607. package/dist/lib/ixo/index.js.map +1 -0
  608. package/dist/lib/ixo/payment.d.ts +104 -0
  609. package/dist/lib/ixo/payment.d.ts.map +1 -0
  610. package/dist/lib/ixo/payment.js +136 -0
  611. package/dist/lib/ixo/payment.js.map +1 -0
  612. package/dist/lib/ixo/ucan-store.d.ts +30 -0
  613. package/dist/lib/ixo/ucan-store.d.ts.map +1 -0
  614. package/dist/lib/ixo/ucan-store.js +134 -0
  615. package/dist/lib/ixo/ucan-store.js.map +1 -0
  616. package/dist/lib/ixo/ucan.d.ts +96 -0
  617. package/dist/lib/ixo/ucan.d.ts.map +1 -0
  618. package/dist/lib/ixo/ucan.js +216 -0
  619. package/dist/lib/ixo/ucan.js.map +1 -0
  620. package/dist/lib/ixo/verified-read.d.ts +43 -0
  621. package/dist/lib/ixo/verified-read.d.ts.map +1 -0
  622. package/dist/lib/ixo/verified-read.js +73 -0
  623. package/dist/lib/ixo/verified-read.js.map +1 -0
  624. package/dist/lib/ixo/vfs.d.ts +27 -0
  625. package/dist/lib/ixo/vfs.d.ts.map +1 -0
  626. package/dist/lib/ixo/vfs.js +42 -0
  627. package/dist/lib/ixo/vfs.js.map +1 -0
  628. package/dist/lib/ixo/web-did.d.ts +7 -0
  629. package/dist/lib/ixo/web-did.d.ts.map +1 -0
  630. package/dist/lib/ixo/web-did.js +9 -0
  631. package/dist/lib/ixo/web-did.js.map +1 -0
  632. package/dist/lib/logger.d.ts +34 -0
  633. package/dist/lib/logger.d.ts.map +1 -0
  634. package/dist/lib/logger.js +126 -0
  635. package/dist/lib/logger.js.map +1 -0
  636. package/dist/lib/matrix/api.d.ts +57 -0
  637. package/dist/lib/matrix/api.d.ts.map +1 -0
  638. package/dist/lib/matrix/api.js +58 -0
  639. package/dist/lib/matrix/api.js.map +1 -0
  640. package/dist/lib/matrix/client.d.ts +41 -0
  641. package/dist/lib/matrix/client.d.ts.map +1 -0
  642. package/dist/lib/matrix/client.js +104 -0
  643. package/dist/lib/matrix/client.js.map +1 -0
  644. package/dist/lib/matrix/deliver.d.ts +224 -0
  645. package/dist/lib/matrix/deliver.d.ts.map +1 -0
  646. package/dist/lib/matrix/deliver.js +788 -0
  647. package/dist/lib/matrix/deliver.js.map +1 -0
  648. package/dist/lib/matrix/events.d.ts +114 -0
  649. package/dist/lib/matrix/events.d.ts.map +1 -0
  650. package/dist/lib/matrix/events.js +143 -0
  651. package/dist/lib/matrix/events.js.map +1 -0
  652. package/dist/lib/matrix/mxid.d.ts +24 -0
  653. package/dist/lib/matrix/mxid.d.ts.map +1 -0
  654. package/dist/lib/matrix/mxid.js +47 -0
  655. package/dist/lib/matrix/mxid.js.map +1 -0
  656. package/dist/lib/metrics.d.ts +105 -0
  657. package/dist/lib/metrics.d.ts.map +1 -0
  658. package/dist/lib/metrics.js +204 -0
  659. package/dist/lib/metrics.js.map +1 -0
  660. package/dist/lib/oauth/approvals.d.ts +160 -0
  661. package/dist/lib/oauth/approvals.d.ts.map +1 -0
  662. package/dist/lib/oauth/approvals.js +273 -0
  663. package/dist/lib/oauth/approvals.js.map +1 -0
  664. package/dist/lib/oauth/standing.d.ts +152 -0
  665. package/dist/lib/oauth/standing.d.ts.map +1 -0
  666. package/dist/lib/oauth/standing.js +299 -0
  667. package/dist/lib/oauth/standing.js.map +1 -0
  668. package/dist/lib/oauth/token.d.ts +60 -0
  669. package/dist/lib/oauth/token.d.ts.map +1 -0
  670. package/dist/lib/oauth/token.js +129 -0
  671. package/dist/lib/oauth/token.js.map +1 -0
  672. package/dist/lib/payments/extend.d.ts +42 -0
  673. package/dist/lib/payments/extend.d.ts.map +1 -0
  674. package/dist/lib/payments/extend.js +98 -0
  675. package/dist/lib/payments/extend.js.map +1 -0
  676. package/dist/lib/payments/facilitator.d.ts +220 -0
  677. package/dist/lib/payments/facilitator.d.ts.map +1 -0
  678. package/dist/lib/payments/facilitator.js +451 -0
  679. package/dist/lib/payments/facilitator.js.map +1 -0
  680. package/dist/lib/payments/gate.d.ts +207 -0
  681. package/dist/lib/payments/gate.d.ts.map +1 -0
  682. package/dist/lib/payments/gate.js +481 -0
  683. package/dist/lib/payments/gate.js.map +1 -0
  684. package/dist/lib/payments/header-seal.d.ts +33 -0
  685. package/dist/lib/payments/header-seal.d.ts.map +1 -0
  686. package/dist/lib/payments/header-seal.js +76 -0
  687. package/dist/lib/payments/header-seal.js.map +1 -0
  688. package/dist/lib/payments/index.d.ts +12 -0
  689. package/dist/lib/payments/index.d.ts.map +1 -0
  690. package/dist/lib/payments/index.js +11 -0
  691. package/dist/lib/payments/index.js.map +1 -0
  692. package/dist/lib/payments/price.d.ts +25 -0
  693. package/dist/lib/payments/price.d.ts.map +1 -0
  694. package/dist/lib/payments/price.js +43 -0
  695. package/dist/lib/payments/price.js.map +1 -0
  696. package/dist/lib/payments/reconcile.d.ts +77 -0
  697. package/dist/lib/payments/reconcile.d.ts.map +1 -0
  698. package/dist/lib/payments/reconcile.js +317 -0
  699. package/dist/lib/payments/reconcile.js.map +1 -0
  700. package/dist/lib/payments/refund.d.ts +34 -0
  701. package/dist/lib/payments/refund.d.ts.map +1 -0
  702. package/dist/lib/payments/refund.js +123 -0
  703. package/dist/lib/payments/refund.js.map +1 -0
  704. package/dist/lib/payments/review-billing.d.ts +222 -0
  705. package/dist/lib/payments/review-billing.d.ts.map +1 -0
  706. package/dist/lib/payments/review-billing.js +609 -0
  707. package/dist/lib/payments/review-billing.js.map +1 -0
  708. package/dist/lib/payments/settle.d.ts +44 -0
  709. package/dist/lib/payments/settle.d.ts.map +1 -0
  710. package/dist/lib/payments/settle.js +306 -0
  711. package/dist/lib/payments/settle.js.map +1 -0
  712. package/dist/lib/payments/terms.d.ts +27 -0
  713. package/dist/lib/payments/terms.d.ts.map +1 -0
  714. package/dist/lib/payments/terms.js +21 -0
  715. package/dist/lib/payments/terms.js.map +1 -0
  716. package/dist/lib/payouts.d.ts +20 -0
  717. package/dist/lib/payouts.d.ts.map +1 -0
  718. package/dist/lib/payouts.js +30 -0
  719. package/dist/lib/payouts.js.map +1 -0
  720. package/dist/lib/readiness.d.ts +42 -0
  721. package/dist/lib/readiness.d.ts.map +1 -0
  722. package/dist/lib/readiness.js +130 -0
  723. package/dist/lib/readiness.js.map +1 -0
  724. package/dist/lib/redact.d.ts +23 -0
  725. package/dist/lib/redact.d.ts.map +1 -0
  726. package/dist/lib/redact.js +67 -0
  727. package/dist/lib/redact.js.map +1 -0
  728. package/dist/lib/register.d.ts +85 -0
  729. package/dist/lib/register.d.ts.map +1 -0
  730. package/dist/lib/register.js +390 -0
  731. package/dist/lib/register.js.map +1 -0
  732. package/dist/lib/review/attestation.d.ts +92 -0
  733. package/dist/lib/review/attestation.d.ts.map +1 -0
  734. package/dist/lib/review/attestation.js +264 -0
  735. package/dist/lib/review/attestation.js.map +1 -0
  736. package/dist/lib/review/reviewer-grant.d.ts +146 -0
  737. package/dist/lib/review/reviewer-grant.d.ts.map +1 -0
  738. package/dist/lib/review/reviewer-grant.js +359 -0
  739. package/dist/lib/review/reviewer-grant.js.map +1 -0
  740. package/dist/lib/review/tasks.d.ts +18 -0
  741. package/dist/lib/review/tasks.d.ts.map +1 -0
  742. package/dist/lib/review/tasks.js +36 -0
  743. package/dist/lib/review/tasks.js.map +1 -0
  744. package/dist/lib/sentry.d.ts +89 -0
  745. package/dist/lib/sentry.d.ts.map +1 -0
  746. package/dist/lib/sentry.js +284 -0
  747. package/dist/lib/sentry.js.map +1 -0
  748. package/dist/lib/spans.d.ts +14 -0
  749. package/dist/lib/spans.d.ts.map +1 -0
  750. package/dist/lib/spans.js +28 -0
  751. package/dist/lib/spans.js.map +1 -0
  752. package/dist/lib/tracing.d.ts +31 -0
  753. package/dist/lib/tracing.d.ts.map +1 -0
  754. package/dist/lib/tracing.js +66 -0
  755. package/dist/lib/tracing.js.map +1 -0
  756. package/dist/lib/ttl-cache.d.ts +26 -0
  757. package/dist/lib/ttl-cache.d.ts.map +1 -0
  758. package/dist/lib/ttl-cache.js +61 -0
  759. package/dist/lib/ttl-cache.js.map +1 -0
  760. package/dist/lib/validator.d.ts +19 -0
  761. package/dist/lib/validator.d.ts.map +1 -0
  762. package/dist/lib/validator.js +32 -0
  763. package/dist/lib/validator.js.map +1 -0
  764. package/dist/lib/work-order/form.d.ts +40 -0
  765. package/dist/lib/work-order/form.d.ts.map +1 -0
  766. package/dist/lib/work-order/form.js +316 -0
  767. package/dist/lib/work-order/form.js.map +1 -0
  768. package/dist/lib/work-order/index.d.ts +20 -0
  769. package/dist/lib/work-order/index.d.ts.map +1 -0
  770. package/dist/lib/work-order/index.js +66 -0
  771. package/dist/lib/work-order/index.js.map +1 -0
  772. package/dist/middleware/api/audit.d.ts +9 -0
  773. package/dist/middleware/api/audit.d.ts.map +1 -0
  774. package/dist/middleware/api/audit.js +38 -0
  775. package/dist/middleware/api/audit.js.map +1 -0
  776. package/dist/middleware/api/auth.d.ts +29 -0
  777. package/dist/middleware/api/auth.d.ts.map +1 -0
  778. package/dist/middleware/api/auth.js +105 -0
  779. package/dist/middleware/api/auth.js.map +1 -0
  780. package/dist/middleware/api/console.d.ts +92 -0
  781. package/dist/middleware/api/console.d.ts.map +1 -0
  782. package/dist/middleware/api/console.js +446 -0
  783. package/dist/middleware/api/console.js.map +1 -0
  784. package/dist/middleware/api/errors.d.ts +48 -0
  785. package/dist/middleware/api/errors.d.ts.map +1 -0
  786. package/dist/middleware/api/errors.js +133 -0
  787. package/dist/middleware/api/errors.js.map +1 -0
  788. package/dist/middleware/api/idempotency.d.ts +23 -0
  789. package/dist/middleware/api/idempotency.d.ts.map +1 -0
  790. package/dist/middleware/api/idempotency.js +158 -0
  791. package/dist/middleware/api/idempotency.js.map +1 -0
  792. package/dist/middleware/api/keys.d.ts +14 -0
  793. package/dist/middleware/api/keys.d.ts.map +1 -0
  794. package/dist/middleware/api/keys.js +66 -0
  795. package/dist/middleware/api/keys.js.map +1 -0
  796. package/dist/middleware/api/membership.d.ts +32 -0
  797. package/dist/middleware/api/membership.d.ts.map +1 -0
  798. package/dist/middleware/api/membership.js +48 -0
  799. package/dist/middleware/api/membership.js.map +1 -0
  800. package/dist/middleware/api/oauth.d.ts +28 -0
  801. package/dist/middleware/api/oauth.d.ts.map +1 -0
  802. package/dist/middleware/api/oauth.js +109 -0
  803. package/dist/middleware/api/oauth.js.map +1 -0
  804. package/dist/middleware/api/rate-limit.d.ts +23 -0
  805. package/dist/middleware/api/rate-limit.d.ts.map +1 -0
  806. package/dist/middleware/api/rate-limit.js +70 -0
  807. package/dist/middleware/api/rate-limit.js.map +1 -0
  808. package/dist/middleware/api/types.d.ts +92 -0
  809. package/dist/middleware/api/types.d.ts.map +1 -0
  810. package/dist/middleware/api/types.js +7 -0
  811. package/dist/middleware/api/types.js.map +1 -0
  812. package/dist/middleware/api/wait.d.ts +21 -0
  813. package/dist/middleware/api/wait.d.ts.map +1 -0
  814. package/dist/middleware/api/wait.js +85 -0
  815. package/dist/middleware/api/wait.js.map +1 -0
  816. package/dist/middleware/capability.d.ts +32 -0
  817. package/dist/middleware/capability.d.ts.map +1 -0
  818. package/dist/middleware/capability.js +113 -0
  819. package/dist/middleware/capability.js.map +1 -0
  820. package/dist/middleware/database.d.ts +14 -0
  821. package/dist/middleware/database.d.ts.map +1 -0
  822. package/dist/middleware/database.js +18 -0
  823. package/dist/middleware/database.js.map +1 -0
  824. package/dist/middleware/error-handler.d.ts +13 -0
  825. package/dist/middleware/error-handler.d.ts.map +1 -0
  826. package/dist/middleware/error-handler.js +127 -0
  827. package/dist/middleware/error-handler.js.map +1 -0
  828. package/dist/middleware/observability.d.ts +32 -0
  829. package/dist/middleware/observability.d.ts.map +1 -0
  830. package/dist/middleware/observability.js +134 -0
  831. package/dist/middleware/observability.js.map +1 -0
  832. package/dist/middleware/rate-limit.d.ts +16 -0
  833. package/dist/middleware/rate-limit.d.ts.map +1 -0
  834. package/dist/middleware/rate-limit.js +56 -0
  835. package/dist/middleware/rate-limit.js.map +1 -0
  836. package/dist/middleware/ucan-auth.d.ts +39 -0
  837. package/dist/middleware/ucan-auth.d.ts.map +1 -0
  838. package/dist/middleware/ucan-auth.js +278 -0
  839. package/dist/middleware/ucan-auth.js.map +1 -0
  840. package/dist/networks.d.ts +34 -0
  841. package/dist/networks.d.ts.map +1 -0
  842. package/dist/networks.js +49 -0
  843. package/dist/networks.js.map +1 -0
  844. package/dist/oracle.d.ts +193 -0
  845. package/dist/oracle.d.ts.map +1 -0
  846. package/dist/oracle.js +245 -0
  847. package/dist/oracle.js.map +1 -0
  848. package/dist/routes/health.d.ts +16 -0
  849. package/dist/routes/health.d.ts.map +1 -0
  850. package/dist/routes/health.js +29 -0
  851. package/dist/routes/health.js.map +1 -0
  852. package/dist/routes/v1/admin.d.ts +18 -0
  853. package/dist/routes/v1/admin.d.ts.map +1 -0
  854. package/dist/routes/v1/admin.js +101 -0
  855. package/dist/routes/v1/admin.js.map +1 -0
  856. package/dist/routes/v1/api/admin-claims.d.ts +14 -0
  857. package/dist/routes/v1/api/admin-claims.d.ts.map +1 -0
  858. package/dist/routes/v1/api/admin-claims.js +82 -0
  859. package/dist/routes/v1/api/admin-claims.js.map +1 -0
  860. package/dist/routes/v1/api/admin-facilitator.d.ts +20 -0
  861. package/dist/routes/v1/api/admin-facilitator.d.ts.map +1 -0
  862. package/dist/routes/v1/api/admin-facilitator.js +64 -0
  863. package/dist/routes/v1/api/admin-facilitator.js.map +1 -0
  864. package/dist/routes/v1/api/admin.d.ts +9 -0
  865. package/dist/routes/v1/api/admin.d.ts.map +1 -0
  866. package/dist/routes/v1/api/admin.js +110 -0
  867. package/dist/routes/v1/api/admin.js.map +1 -0
  868. package/dist/routes/v1/api/audit.d.ts +8 -0
  869. package/dist/routes/v1/api/audit.d.ts.map +1 -0
  870. package/dist/routes/v1/api/audit.js +56 -0
  871. package/dist/routes/v1/api/audit.js.map +1 -0
  872. package/dist/routes/v1/api/batch.d.ts +17 -0
  873. package/dist/routes/v1/api/batch.d.ts.map +1 -0
  874. package/dist/routes/v1/api/batch.js +192 -0
  875. package/dist/routes/v1/api/batch.js.map +1 -0
  876. package/dist/routes/v1/api/claims-read.d.ts +43 -0
  877. package/dist/routes/v1/api/claims-read.d.ts.map +1 -0
  878. package/dist/routes/v1/api/claims-read.js +123 -0
  879. package/dist/routes/v1/api/claims-read.js.map +1 -0
  880. package/dist/routes/v1/api/claims.d.ts +131 -0
  881. package/dist/routes/v1/api/claims.d.ts.map +1 -0
  882. package/dist/routes/v1/api/claims.js +407 -0
  883. package/dist/routes/v1/api/claims.js.map +1 -0
  884. package/dist/routes/v1/api/collections-link.d.ts +14 -0
  885. package/dist/routes/v1/api/collections-link.d.ts.map +1 -0
  886. package/dist/routes/v1/api/collections-link.js +97 -0
  887. package/dist/routes/v1/api/collections-link.js.map +1 -0
  888. package/dist/routes/v1/api/export.d.ts +48 -0
  889. package/dist/routes/v1/api/export.d.ts.map +1 -0
  890. package/dist/routes/v1/api/export.js +251 -0
  891. package/dist/routes/v1/api/export.js.map +1 -0
  892. package/dist/routes/v1/api/index.d.ts +16 -0
  893. package/dist/routes/v1/api/index.d.ts.map +1 -0
  894. package/dist/routes/v1/api/index.js +68 -0
  895. package/dist/routes/v1/api/index.js.map +1 -0
  896. package/dist/routes/v1/api/keys.d.ts +9 -0
  897. package/dist/routes/v1/api/keys.d.ts.map +1 -0
  898. package/dist/routes/v1/api/keys.js +95 -0
  899. package/dist/routes/v1/api/keys.js.map +1 -0
  900. package/dist/routes/v1/api/me.d.ts +21 -0
  901. package/dist/routes/v1/api/me.d.ts.map +1 -0
  902. package/dist/routes/v1/api/me.js +122 -0
  903. package/dist/routes/v1/api/me.js.map +1 -0
  904. package/dist/routes/v1/api/members.d.ts +17 -0
  905. package/dist/routes/v1/api/members.d.ts.map +1 -0
  906. package/dist/routes/v1/api/members.js +406 -0
  907. package/dist/routes/v1/api/members.js.map +1 -0
  908. package/dist/routes/v1/api/meta.d.ts +12 -0
  909. package/dist/routes/v1/api/meta.d.ts.map +1 -0
  910. package/dist/routes/v1/api/meta.js +59 -0
  911. package/dist/routes/v1/api/meta.js.map +1 -0
  912. package/dist/routes/v1/api/openapi.gen.d.ts +2 -0
  913. package/dist/routes/v1/api/openapi.gen.d.ts.map +1 -0
  914. package/dist/routes/v1/api/openapi.gen.js +7 -0
  915. package/dist/routes/v1/api/openapi.gen.js.map +1 -0
  916. package/dist/routes/v1/api/protocols.d.ts +22 -0
  917. package/dist/routes/v1/api/protocols.d.ts.map +1 -0
  918. package/dist/routes/v1/api/protocols.js +153 -0
  919. package/dist/routes/v1/api/protocols.js.map +1 -0
  920. package/dist/routes/v1/api/review-billing.d.ts +18 -0
  921. package/dist/routes/v1/api/review-billing.d.ts.map +1 -0
  922. package/dist/routes/v1/api/review-billing.js +196 -0
  923. package/dist/routes/v1/api/review-billing.js.map +1 -0
  924. package/dist/routes/v1/api/review.d.ts +30 -0
  925. package/dist/routes/v1/api/review.d.ts.map +1 -0
  926. package/dist/routes/v1/api/review.js +302 -0
  927. package/dist/routes/v1/api/review.js.map +1 -0
  928. package/dist/routes/v1/api/sources.d.ts +10 -0
  929. package/dist/routes/v1/api/sources.d.ts.map +1 -0
  930. package/dist/routes/v1/api/sources.js +293 -0
  931. package/dist/routes/v1/api/sources.js.map +1 -0
  932. package/dist/routes/v1/api/uploads.d.ts +37 -0
  933. package/dist/routes/v1/api/uploads.d.ts.map +1 -0
  934. package/dist/routes/v1/api/uploads.js +414 -0
  935. package/dist/routes/v1/api/uploads.js.map +1 -0
  936. package/dist/routes/v1/api/views.d.ts +18 -0
  937. package/dist/routes/v1/api/views.d.ts.map +1 -0
  938. package/dist/routes/v1/api/views.js +95 -0
  939. package/dist/routes/v1/api/views.js.map +1 -0
  940. package/dist/routes/v1/api/webhooks.d.ts +14 -0
  941. package/dist/routes/v1/api/webhooks.d.ts.map +1 -0
  942. package/dist/routes/v1/api/webhooks.js +282 -0
  943. package/dist/routes/v1/api/webhooks.js.map +1 -0
  944. package/dist/routes/v1/api/work-orders.d.ts +45 -0
  945. package/dist/routes/v1/api/work-orders.d.ts.map +1 -0
  946. package/dist/routes/v1/api/work-orders.js +171 -0
  947. package/dist/routes/v1/api/work-orders.js.map +1 -0
  948. package/dist/routes/v1/claims.d.ts +21 -0
  949. package/dist/routes/v1/claims.d.ts.map +1 -0
  950. package/dist/routes/v1/claims.js +153 -0
  951. package/dist/routes/v1/claims.js.map +1 -0
  952. package/dist/routes/v1/collections.d.ts +45 -0
  953. package/dist/routes/v1/collections.d.ts.map +1 -0
  954. package/dist/routes/v1/collections.js +201 -0
  955. package/dist/routes/v1/collections.js.map +1 -0
  956. package/dist/routes/v1/index.d.ts +13 -0
  957. package/dist/routes/v1/index.d.ts.map +1 -0
  958. package/dist/routes/v1/index.js +41 -0
  959. package/dist/routes/v1/index.js.map +1 -0
  960. package/dist/routes/v1/info.d.ts +14 -0
  961. package/dist/routes/v1/info.d.ts.map +1 -0
  962. package/dist/routes/v1/info.js +75 -0
  963. package/dist/routes/v1/info.js.map +1 -0
  964. package/dist/routes/v1/mcp/index.d.ts +33 -0
  965. package/dist/routes/v1/mcp/index.d.ts.map +1 -0
  966. package/dist/routes/v1/mcp/index.js +252 -0
  967. package/dist/routes/v1/mcp/index.js.map +1 -0
  968. package/dist/routes/v1/mcp/oauth.d.ts +27 -0
  969. package/dist/routes/v1/mcp/oauth.d.ts.map +1 -0
  970. package/dist/routes/v1/mcp/oauth.js +500 -0
  971. package/dist/routes/v1/mcp/oauth.js.map +1 -0
  972. package/dist/routes/v1/mcp/tools.d.ts +71 -0
  973. package/dist/routes/v1/mcp/tools.d.ts.map +1 -0
  974. package/dist/routes/v1/mcp/tools.js +432 -0
  975. package/dist/routes/v1/mcp/tools.js.map +1 -0
  976. package/dist/routes/v1/mcp/ui.d.ts +45 -0
  977. package/dist/routes/v1/mcp/ui.d.ts.map +1 -0
  978. package/dist/routes/v1/mcp/ui.js +454 -0
  979. package/dist/routes/v1/mcp/ui.js.map +1 -0
  980. package/dist/routes/v1/oauth.d.ts +29 -0
  981. package/dist/routes/v1/oauth.d.ts.map +1 -0
  982. package/dist/routes/v1/oauth.js +256 -0
  983. package/dist/routes/v1/oauth.js.map +1 -0
  984. package/dist/routes/v1/reviewers.d.ts +22 -0
  985. package/dist/routes/v1/reviewers.d.ts.map +1 -0
  986. package/dist/routes/v1/reviewers.js +165 -0
  987. package/dist/routes/v1/reviewers.js.map +1 -0
  988. package/dist/routes/v1/reviews.d.ts +38 -0
  989. package/dist/routes/v1/reviews.d.ts.map +1 -0
  990. package/dist/routes/v1/reviews.js +234 -0
  991. package/dist/routes/v1/reviews.js.map +1 -0
  992. package/dist/routes/v1/shared.d.ts +586 -0
  993. package/dist/routes/v1/shared.d.ts.map +1 -0
  994. package/dist/routes/v1/shared.js +229 -0
  995. package/dist/routes/v1/shared.js.map +1 -0
  996. package/dist/routes/well-known.d.ts +15 -0
  997. package/dist/routes/well-known.d.ts.map +1 -0
  998. package/dist/routes/well-known.js +35 -0
  999. package/dist/routes/well-known.js.map +1 -0
  1000. package/dist/runtime.d.ts +100 -0
  1001. package/dist/runtime.d.ts.map +1 -0
  1002. package/dist/runtime.js +144 -0
  1003. package/dist/runtime.js.map +1 -0
  1004. package/dist/testing/fake-tools.d.ts +104 -0
  1005. package/dist/testing/fake-tools.d.ts.map +1 -0
  1006. package/dist/testing/fake-tools.js +213 -0
  1007. package/dist/testing/fake-tools.js.map +1 -0
  1008. package/dist/testing/index.d.ts +54 -0
  1009. package/dist/testing/index.d.ts.map +1 -0
  1010. package/dist/testing/index.js +104 -0
  1011. package/dist/testing/index.js.map +1 -0
  1012. package/dist/testing/samples.d.ts +70 -0
  1013. package/dist/testing/samples.d.ts.map +1 -0
  1014. package/dist/testing/samples.js +92 -0
  1015. package/dist/testing/samples.js.map +1 -0
  1016. package/dist/workflows/claim-ingest.d.ts +250 -0
  1017. package/dist/workflows/claim-ingest.d.ts.map +1 -0
  1018. package/dist/workflows/claim-ingest.js +1020 -0
  1019. package/dist/workflows/claim-ingest.js.map +1 -0
  1020. package/dist/workflows/claim-source.d.ts +25 -0
  1021. package/dist/workflows/claim-source.d.ts.map +1 -0
  1022. package/dist/workflows/claim-source.js +107 -0
  1023. package/dist/workflows/claim-source.js.map +1 -0
  1024. package/dist/workflows/review-complete.d.ts +82 -0
  1025. package/dist/workflows/review-complete.d.ts.map +1 -0
  1026. package/dist/workflows/review-complete.js +455 -0
  1027. package/dist/workflows/review-complete.js.map +1 -0
  1028. package/dist/workflows/steps.d.ts +125 -0
  1029. package/dist/workflows/steps.d.ts.map +1 -0
  1030. package/dist/workflows/steps.js +325 -0
  1031. package/dist/workflows/steps.js.map +1 -0
  1032. package/docs/api.md +2595 -0
  1033. package/docs/guide.md +1525 -0
  1034. package/migrations/0000_init.sql +108 -0
  1035. package/migrations/0001_review_attestation.sql +1 -0
  1036. package/migrations/0002_decisions_facts.sql +1 -0
  1037. package/migrations/0003_api_lane.sql +171 -0
  1038. package/migrations/0004_api_v1_1.sql +19 -0
  1039. package/migrations/0005_member_notify.sql +3 -0
  1040. package/migrations/0006_source_collections.sql +16 -0
  1041. package/migrations/0007_api_settlement.sql +27 -0
  1042. package/migrations/0008_review_extend.sql +1 -0
  1043. package/migrations/0009_card_refunds.sql +4 -0
  1044. package/migrations/0010_even_scorpion.sql +16 -0
  1045. package/migrations/0011_mcp_oauth.sql +27 -0
  1046. package/migrations/0012_mcp_standing.sql +21 -0
  1047. package/migrations/0013_unknown_krista_starr.sql +2 -0
  1048. package/migrations/0014_last_carnage.sql +14 -0
  1049. package/migrations/0015_company_authority.sql +26 -0
  1050. package/migrations/0016_owner_only_links.sql +6 -0
  1051. package/migrations/0017_organisations.sql +35 -0
  1052. package/migrations/0018_remove_app_signed.sql +4 -0
  1053. package/migrations/0019_submitted_via.sql +2 -0
  1054. package/migrations/0020_drop_decision_to_pay.sql +4 -0
  1055. package/migrations/0021_manual_erase.sql +25 -0
  1056. package/migrations/0022_errored_facts.sql +1 -0
  1057. package/migrations/0023_review_billing.sql +20 -0
  1058. package/migrations/0024_pending_task_details.sql +1 -0
  1059. package/migrations/meta/0000_snapshot.json +707 -0
  1060. package/migrations/meta/0001_snapshot.json +714 -0
  1061. package/migrations/meta/0002_snapshot.json +721 -0
  1062. package/migrations/meta/0003_snapshot.json +1845 -0
  1063. package/migrations/meta/0004_snapshot.json +1969 -0
  1064. package/migrations/meta/0005_snapshot.json +1991 -0
  1065. package/migrations/meta/0006_snapshot.json +2097 -0
  1066. package/migrations/meta/0007_snapshot.json +2128 -0
  1067. package/migrations/meta/0008_snapshot.json +2133 -0
  1068. package/migrations/meta/0009_snapshot.json +2161 -0
  1069. package/migrations/meta/0010_snapshot.json +2265 -0
  1070. package/migrations/meta/0011_snapshot.json +2448 -0
  1071. package/migrations/meta/0012_snapshot.json +2577 -0
  1072. package/migrations/meta/0013_snapshot.json +2594 -0
  1073. package/migrations/meta/0014_snapshot.json +2602 -0
  1074. package/migrations/meta/0015_snapshot.json +2778 -0
  1075. package/migrations/meta/0016_snapshot.json +2778 -0
  1076. package/migrations/meta/0017_snapshot.json +2792 -0
  1077. package/migrations/meta/0018_snapshot.json +2778 -0
  1078. package/migrations/meta/0019_snapshot.json +2792 -0
  1079. package/migrations/meta/0020_snapshot.json +2785 -0
  1080. package/migrations/meta/0021_snapshot.json +2762 -0
  1081. package/migrations/meta/0022_snapshot.json +2769 -0
  1082. package/migrations/meta/0023_snapshot.json +2900 -0
  1083. package/migrations/meta/0024_snapshot.json +2907 -0
  1084. package/migrations/meta/_journal.json +181 -0
  1085. package/openapi/decision-api.yaml +12204 -0
  1086. package/package.json +123 -4
  1087. package/skills/README.md +19 -0
  1088. package/skills/add-openhands-support/SKILL.md +113 -0
  1089. package/skills/create-collection/SKILL.md +199 -0
  1090. package/skills/create-collection/reference/claims-stack.md +106 -0
  1091. package/skills/create-collection/reference/collection.md +111 -0
  1092. package/skills/create-oracle/SKILL.md +400 -0
  1093. package/skills/create-rubric/SKILL.md +130 -0
  1094. package/skills/create-rubric/reference/format-cheatsheet.md +186 -0
  1095. package/skills/create-rubric/templates/claim-form.example.json +60 -0
  1096. package/skills/decision-api-client/SKILL.md +236 -0
  1097. package/skills/decision-api-oracle/SKILL.md +336 -0
  1098. package/skills/publish-protocol/SKILL.md +151 -0
  1099. package/skills/publish-protocol/reference/publishing.md +116 -0
  1100. package/skills/reference/engine-contract.md +222 -0
  1101. package/skills/write-facts/SKILL.md +221 -0
  1102. package/skills/write-facts/reference/examples/http-vendor.ts +88 -0
  1103. package/skills/write-facts/reference/examples/price-matches-agreement.ts +67 -0
  1104. package/skills/write-facts/reference/facts-api.md +232 -0
  1105. package/templates/project/.dev.vars.example +93 -0
  1106. package/templates/project/.editorconfig +9 -0
  1107. package/templates/project/CLAUDE.md +45 -0
  1108. package/templates/project/README.md +199 -0
  1109. package/templates/project/biome.json +37 -0
  1110. package/templates/project/gitignore +29 -0
  1111. package/templates/project/package.json +32 -0
  1112. package/templates/project/src/facts/index.ts +19 -0
  1113. package/templates/project/src/index.ts +25 -0
  1114. package/templates/project/test/api-lane.test.ts +57 -0
  1115. package/templates/project/test/facts.test.ts +14 -0
  1116. package/templates/project/tsconfig.json +25 -0
  1117. package/templates/project/vitest.config.ts +13 -0
  1118. package/templates/project/wrangler.jsonc +446 -0
@@ -0,0 +1,390 @@
1
+ /**
2
+ * The register logic behind `POST /v1/collections/register` (routes/v1/collections.ts) AND the
3
+ * `registerCollection` runtime export (../runtime.ts) — one interface, two callers. The route is
4
+ * UCAN-guarded HTTP; a provider's own Workflow calls this directly when it registers a collection
5
+ * as the oracle's own principal (after minting its own evaluate grant), where there is no request
6
+ * to validate a body against and no `c.env` to read bindings off.
7
+ *
8
+ * The four gates (WHO/HIRED/PROTOCOL/PAID), the delegation resolution, the upsert and the
9
+ * paused→active notice are unchanged from the route's original body — see routes/v1/collections.ts'
10
+ * header comment for the enrollment rules this enforces. `RegisterCtx` is what either caller can
11
+ * assemble: the route from its request-scoped Hono context, the runtime from `env` via
12
+ * `cronContext`-style plumbing (cron/scan.ts).
13
+ */
14
+ import { and, asc, eq, inArray, isNotNull, sql } from "drizzle-orm";
15
+ import { apiSources, watchedCollections } from "../db/schema.js";
16
+ import { effectivePricing, evaluationFeeFor, getOracle } from "../oracle.js";
17
+ import { notifyCollectionResumed } from "../workflows/steps.js";
18
+ import { hasUnlinkedActiveSource, linkCompanySources } from "./api-lane/linked.js";
19
+ import { createEngineClient } from "./engine/client.js";
20
+ import { EngineError } from "./engine/types.js";
21
+ import { AppError } from "./errors.js";
22
+ import { queryEvaluateGrant } from "./ixo/authz.js";
23
+ import { getCollection, getEntityOwner } from "./ixo/blocksync/index.js";
24
+ import { resolveIssuerKeys } from "./ixo/delegation-verify.js";
25
+ import { requireEvaluationPayment } from "./ixo/payment.js";
26
+ import { verifyOwnerDelegation } from "./ixo/ucan.js";
27
+ import { fetchOwnerDelegation } from "./ixo/ucan-store.js";
28
+ import { companyOf, creditsCover, PayerUnavailable, resolvePayer, reviewBillingActive, } from "./payments/review-billing.js";
29
+ /**
30
+ * The chain owner or the current enroller of a watched row — who may redirect its notices
31
+ * (re-register, below) and pause or resume it (routes/v1/shared.ts `assertCanManage`). A plain grant
32
+ * holder is neither: a competing oracle hired on the same collection holds a grant by definition.
33
+ */
34
+ export function isOwnerOrEnroller(row, did) {
35
+ return did === row.ownerDid || did === row.enrolledByDid;
36
+ }
37
+ /**
38
+ * Register (or re-register) a collection with this oracle — the four gates, the delegation
39
+ * resolution, the upsert and the paused→active notice, in that order. See
40
+ * routes/v1/collections.ts for the WHO/HIRED/PROTOCOL/PAID rules this enforces; behaviour here is
41
+ * byte-for-byte what the route did before this function existed.
42
+ */
43
+ export async function registerCollection(ctx, input) {
44
+ const { config, trace, logger, metrics, db, env } = ctx;
45
+ const { collectionId, principal, delegationCar, contactEmail, cursor } = input;
46
+ // Confirm the collection actually exists on-chain (clean 404 rather than watching a typo). Its
47
+ // `entity` resolves the owner, its `admin` is the grant's granter, its `payments` the fee.
48
+ const collection = await getCollection({ config, trace }, collectionId);
49
+ if (!collection) {
50
+ throw refusal("NOT_FOUND", "collection_not_found", `Collection ${collectionId} not found on-chain`);
51
+ }
52
+ // The chain owner — the wallet that created the deed entity — pays the evaluation fees and is
53
+ // the delegation root the pull path reads. Resolved ALWAYS (a grant holder registering on the
54
+ // owner's behalf must never become that root), and it is the chain's answer, not the caller's.
55
+ if (!collection.entity) {
56
+ throw refusal("FORBIDDEN", "owner_unresolvable", `Collection ${collectionId} has no entity on-chain — its owner cannot be resolved`);
57
+ }
58
+ const ownerAddress = await getEntityOwner({ config, trace }, collection.entity);
59
+ if (!ownerAddress) {
60
+ throw refusal("FORBIDDEN", "owner_unresolvable", `Entity ${collection.entity} not found on-chain — its owner cannot be resolved`);
61
+ }
62
+ const ownerDid = `did:ixo:${ownerAddress}`;
63
+ // 1 · WHO. The UNCACHED grant read on purpose: the portal grants and registers in one flow, and
64
+ // `hasEvaluateGrant` would pin a negative for 5 minutes — a refusal that outlives the grant it
65
+ // contradicts. Register is rare; freshness is what matters here. No admin ⇒ no grant can exist.
66
+ const holdsGrant = (address) => collection.admin
67
+ ? queryEvaluateGrant(config, collection.admin, address, collectionId)
68
+ : Promise.resolve(false);
69
+ const callerIsOwner = principal.address === ownerAddress;
70
+ const callerIsOracle = principal.address === config.ORACLE_ADDRESS;
71
+ // The owner needs no grant. The oracle's OWN wallet always takes the read: its answer is also
72
+ // the hired check below, so the two gates collapse into one chain read for it.
73
+ const callerHolds = callerIsOwner && !callerIsOracle ? true : await holdsGrant(principal.address);
74
+ if (!callerIsOwner && !callerHolds) {
75
+ throw refusal("FORBIDDEN", "not_owner_or_grantee", `Only the owner of collection ${collectionId} or a holder of an active EvaluateClaimAuthorization for it may register it`);
76
+ }
77
+ // 2 · HIRED. Without this grant the oracle can never sign `MsgEvaluateClaim` — a watched row
78
+ // would only ever produce decisions the chain refuses.
79
+ const hired = callerIsOracle ? callerHolds : await holdsGrant(config.ORACLE_ADDRESS);
80
+ if (!hired) {
81
+ throw refusal("CONFLICT", "not_hired", `Grant EvaluateClaimAuthorization to ${config.ORACLE_ADDRESS} first`);
82
+ }
83
+ // 3 · PROTOCOL. Reuses `collection.protocol` resolved above — no second chain/Blocksync fetch.
84
+ // Empty `supportedProtocols` ⇒ no restriction (today's unconfigured default: evaluate whatever
85
+ // passes the money/grant gates, whatever protocol it's for). Checked before PAID: a
86
+ // wrong-protocol collection should
87
+ // hear "this oracle won't serve you" first, not be sent off to fix a payment that would never
88
+ // have mattered.
89
+ const { supportedProtocols, pricing } = getOracle().config;
90
+ if (supportedProtocols.length > 0 && !supportedProtocols.includes(collection.protocol ?? "")) {
91
+ throw refusal("CONFLICT", "unsupported_protocol", `This oracle does not support protocol ${collection.protocol ?? "(none)"} — supported: ${supportedProtocols.join(", ")}`);
92
+ }
93
+ // 4 · PAID. On EVERY (re-)register and before anything is written: a collection whose admin
94
+ // zeroed or re-denominated `Payments.evaluation` since the last register must not keep being
95
+ // evaluated for free. Live off blocksync, never a stored copy. `pricing.byProtocol` lets a
96
+ // specific protocol override the default fee (e.g. `minAmount: "0"` for a protocol whose income
97
+ // isn't the evaluation split) — resolved by the collection's own protocol first, falling back to
98
+ // `pricing.evaluation` for everything else.
99
+ // `effectivePricing`: the per-network EVALUATION_DENOM / EVALUATION_MIN_AMOUNT vars, when set,
100
+ // replace `pricing.evaluation` (config.ts; required on mainnet, so it is never a stand-in coin).
101
+ // The escrow gate below charges by it; per-review billing charges the published `pricing.api`.
102
+ const fee = evaluationFeeFor(effectivePricing(pricing, config), collection.protocol ?? "");
103
+ // Per-review billing (active by IXO's plan for the oracle, owner 2026-10-14): a collection whose company
104
+ // holds a live review-billing delegation is paid per review over x402 from the owner's credits —
105
+ // its evaluation leg may be empty (never escrowed, never billed twice). Who pays comes from the
106
+ // ENGINE's company answer: its blip or a `disputed` company is a 503 to retry, never a guess. With
107
+ // a payer, the register fails unless its credits cover one review now (402
108
+ // `insufficient_credits`); with none, the escrow gate stands — and a collection it refuses hears
109
+ // both ways in (402 `no_review_billing`).
110
+ const perReview = await reviewBillingActive({ config, trace, logger, cache: env.CACHE_KV });
111
+ const company = perReview
112
+ ? await companyOf({ config, trace, logger, cache: env.CACHE_KV }, collectionId)
113
+ : undefined;
114
+ let billingSourceId = null;
115
+ let evaluation;
116
+ if (company !== undefined) {
117
+ const billingDeps = { config, trace, logger, cache: env.CACHE_KV, db };
118
+ const payer = await resolvePayer(billingDeps, company, collection.protocol ?? "");
119
+ if (!payer.ok && payer.why === "disputed") {
120
+ throw new PayerUnavailable("company_unavailable", `The decision engine names no single organisation for collection ${collectionId} (disputed), so who pays for its reviews is unknown; retry once it is settled.`);
121
+ }
122
+ if (payer.ok) {
123
+ if (!(await creditsCover(billingDeps, payer))) {
124
+ throw refusal("PAYMENT_REQUIRED", "insufficient_credits", `The organisation's credits do not cover one review (${payer.price.amount} upay). Top them up in the Decision Console, then register again.`, { price: payer.price, ...fundingUrl(config) });
125
+ }
126
+ billingSourceId = payer.source.sourceId;
127
+ // What the leg offers in the fee's denom (usually nothing): recorded, never required.
128
+ evaluation = requireEvaluationPayment({ denom: fee.denom, minAmount: "0" }, collection.payments);
129
+ }
130
+ else {
131
+ try {
132
+ evaluation = requireEvaluationPayment(fee, collection.payments);
133
+ }
134
+ catch (err) {
135
+ if (!(err instanceof AppError) || err.code !== "PAYMENT_REQUIRED")
136
+ throw err;
137
+ logger.info("register.no-review-billing", { collectionId, detail: payer.detail });
138
+ throw refusal("PAYMENT_REQUIRED", "no_review_billing", `${err.message}. Or have the organisation's owner set up review billing on its Decision API source in the Decision Console (per-review billing from its credits), then register again.`, { ...err.details, ...fundingUrl(config) });
139
+ }
140
+ }
141
+ }
142
+ else {
143
+ evaluation = requireEvaluationPayment(fee, collection.payments);
144
+ }
145
+ // Read BEFORE the upsert — the only way to tell "just registered a paused collection back to
146
+ // active" from "registered an already-active one again" (a notice fires only on a REAL
147
+ // paused→active flip), and who may change what on a re-register (below).
148
+ const prior = await db.query.watchedCollections.findFirst({
149
+ where: (t, { eq: eqOp }) => eqOp(t.collectionId, collectionId),
150
+ columns: { status: true, enrolledByDid: true, contactEmail: true },
151
+ });
152
+ // Any grant holder passes gate 1, and a competing oracle hired on the same collection holds a
153
+ // grant by definition. So on a RE-register only the chain owner or the current enroller may
154
+ // redirect the notices (`contactEmail`, and `enrolledByDid` — who may change it next) or lift a
155
+ // pause (an owner's, an operator's, `rubric-unusable`, `admin-unfunded`): were the enroller to
156
+ // move with every re-register, a stranger would become it on the first and redirect the notices
157
+ // on the second. Anyone else's re-register still refreshes the fee and delegation columns and
158
+ // leaves the enroller alone; asking for either change is a plain 403, never a silent ignore. A
159
+ // first registration sets both freely — that is the portal flow, and there is nothing to redirect.
160
+ // A non-owner enroller keeps these rights only while it still holds a live grant: here that is
161
+ // already proven, since gate 1 above refused any non-owner without one (uncached).
162
+ const mayChangeContact = !prior ||
163
+ callerIsOwner ||
164
+ isOwnerOrEnroller({ ownerDid, enrolledByDid: prior.enrolledByDid }, principal.did);
165
+ if (prior && !mayChangeContact) {
166
+ if (contactEmail !== undefined && (contactEmail || null) !== prior.contactEmail) {
167
+ throw refusal("FORBIDDEN", "contact_change_forbidden", `Only the owner of collection ${collectionId} or whoever registered it may change its contact email`);
168
+ }
169
+ if (prior.status === "paused") {
170
+ throw refusal("FORBIDDEN", "resume_forbidden", `Collection ${collectionId} is paused — only its owner or whoever registered it may resume it`);
171
+ }
172
+ }
173
+ // The collection's COMPANY, as the engine derives it — asked ONCE and serving two things: with no
174
+ // contact sent and none on the row, the contact of the company's own Decision API source (so the
175
+ // chain-lane notices — pause / resume, `admin-unfunded`, review requests — reach someone), and
176
+ // the company links below. Asked only when one of them could use it: an explicit or stored
177
+ // contact is never touched, and a link is possible only while an active source is not yet linked.
178
+ const wantContact = contactEmail === undefined && !prior?.contactEmail;
179
+ // Per-review billing already asked (above): the same answer, never a second read.
180
+ const companyRead = company !== undefined
181
+ ? company
182
+ : wantContact || (await hasUnlinkedActiveSource(db, collectionId))
183
+ ? await readCompany(ctx, collectionId)
184
+ : undefined;
185
+ const orgContact = wantContact && companyRead ? await companyContact(db, companyRead) : null;
186
+ // Resolve the delegation to persist. A CAR in the body must PROVE it belongs here: issued by the
187
+ // OWNER (the delegation root — never the enroller), addressed to this oracle, scoped to the claim
188
+ // bot, unexpired — else 400. Without one we try the owner's store inbox (deposited moments ago in
189
+ // the same portal flow); a miss is non-fatal — registration stands, and the pull path refreshes
190
+ // from the store on demand, failing closed with a clear re-register error if nothing is ever
191
+ // deposited (lib/ixo/index.ts).
192
+ let stored = null;
193
+ if (delegationCar) {
194
+ stored = await verifyOwnerDelegation(config, delegationCar, ownerDid, () => resolveIssuerKeys(config, ownerDid, trace));
195
+ }
196
+ else {
197
+ const found = await fetchOwnerDelegation({ config, trace, cache: env.CACHE_KV, logger }, ownerDid).catch(() => null);
198
+ if (found) {
199
+ stored = {
200
+ car: found.car,
201
+ expiresAt: found.expiresAt ? new Date(found.expiresAt * 1000) : null,
202
+ };
203
+ }
204
+ else {
205
+ logger.warn("collection.registered-without-delegation", { collectionId, ownerDid });
206
+ }
207
+ }
208
+ // NB: `rubricId` is deliberately NOT written here — the pin may only come from a VERIFIED
209
+ // resolution, which is the workflow's evaluate step (claim-ingest.ts), never the register.
210
+ const watched = {
211
+ ownerDid,
212
+ // Moves only with a caller who may change the contact (above); a first insert always sets it.
213
+ ...(mayChangeContact ? { enrolledByDid: principal.did } : {}),
214
+ protocolDid: collection.protocol ?? null,
215
+ // What the collection pays per evaluation, as just verified — the dashboard shows it.
216
+ evaluationDenom: evaluation.denom,
217
+ evaluationAmount: evaluation.amount,
218
+ // Who pays per review (null: the evaluation leg does) — decided by every register afresh.
219
+ billingSourceId,
220
+ // Only written when the caller sent the field; a sent empty string clears it.
221
+ ...(contactEmail !== undefined ? { contactEmail: contactEmail || null } : {}),
222
+ // …or, with nothing sent and nothing stored, the org source's contact (above).
223
+ ...(orgContact ? { contactEmail: orgContact } : {}),
224
+ // Only touch the delegation columns when we actually have one — never clobber a stored CAR.
225
+ ...(stored ? { delegationCar: stored.car, delegationExpiresAt: stored.expiresAt } : {}),
226
+ };
227
+ // Cursor seeded on FIRST registration only (it's not in the conflict `set`, so a re-register can
228
+ // never rewind one the cron has advanced): absent ⇒ "now" (today's behaviour — a NULL cursor
229
+ // scans the collection from claim zero, blocksync CLAIMS_FROM_START, judging every claim that
230
+ // predates the hire); `null` explicitly ⇒ that same claim-zero scan; a caller-supplied string ⇒
231
+ // that watermark verbatim. The first real page rewrites it in blocksync's own timestamp format.
232
+ const seedCursor = cursor === undefined ? new Date().toISOString() : cursor;
233
+ // `status` / `pausedReason` are never in the conflict `set`: the `prior` read above is a snapshot,
234
+ // and the network steps since (the delegation, the store) leave a window in which an owner's
235
+ // `/pause`, `admin-unfunded`, `rubric-unusable` or `engine-credits` can land — a blanket
236
+ // `status: "active"` here would wipe it, for any grant holder looping re-register.
237
+ let [row] = await db
238
+ .insert(watchedCollections)
239
+ .values({ collectionId, cursor: seedCursor, enrolledByDid: principal.did, ...watched })
240
+ .onConflictDoUpdate({ target: watchedCollections.collectionId, set: watched })
241
+ .returning();
242
+ if (!row)
243
+ throw AppError.internal("Register upsert returned no row");
244
+ // Re-registering is the "change my mind" path: the owner's or the enroller's also resumes a
245
+ // paused collection (anyone else's never does) — a fresh register that passed the gates is the
246
+ // clearest "resume" there is (and, having just re-proven the oracle's grant, clears an engine
247
+ // `no-grant` pause; a credits pause is the operator's to lift, but resuming one collection early
248
+ // costs one retried claim, no more). Decided by the row AS IT IS NOW, in the one statement: a
249
+ // returned row is a REAL paused→active flip, which is what the notice below needs.
250
+ let resumed = false;
251
+ if (prior && mayChangeContact) {
252
+ const [flipped] = await db
253
+ .update(watchedCollections)
254
+ .set({ status: "active", pausedReason: null })
255
+ .where(and(eq(watchedCollections.collectionId, collectionId), eq(watchedCollections.status, "paused")))
256
+ .returning();
257
+ if (flipped) {
258
+ row = flipped;
259
+ resumed = true;
260
+ }
261
+ }
262
+ // Link the collection to its company's active sources, so the org's reviewers see its chain
263
+ // claims in the console without a member linking it by hand (lib/api-lane/linked.ts). Only the
264
+ // engine's `ok` links; idempotent, so a re-register adds only what is missing.
265
+ const linkedSources = companyRead && collection.protocol
266
+ ? await linkCompanySources(db, collectionId, collection.protocol, companyRead)
267
+ : [];
268
+ metrics.count("collection.registered");
269
+ logger.info("collection.registered", {
270
+ collectionId,
271
+ ownerDid,
272
+ enrolledByDid: row.enrolledByDid,
273
+ registeredByDid: principal.did,
274
+ evaluation,
275
+ delegationStored: !!stored,
276
+ reviewBilling: billingSourceId !== null,
277
+ contactFromOrgSource: !!orgContact,
278
+ linkedSources: linkedSources.length,
279
+ });
280
+ // A notice fires only on a REAL recovery (above). Fail-soft: a notice failure must never fail
281
+ // the register response.
282
+ if (resumed) {
283
+ await notifyCollectionResumed(db, { logger, metrics, config, trace, cache: env.CACHE_KV, email: env.EMAIL }, collectionId).catch((err) => logger.warn("collection.notice.failed", { collectionId, detail: String(err) }));
284
+ }
285
+ return row;
286
+ }
287
+ /**
288
+ * A register refusal with its stable machine code (`details.reason`), so a caller never matches a
289
+ * message: `collection_not_found` · `owner_unresolvable` · `not_owner_or_grantee` · `not_hired` ·
290
+ * `unsupported_protocol` · `evaluation_underpaid` (lib/ixo/payment.ts) · `no_review_billing` ·
291
+ * `insufficient_credits` · `contact_change_forbidden` · `resume_forbidden`, and the 503s
292
+ * `company_unavailable` / `credits_unavailable` (payments/review-billing.ts `PayerUnavailable`).
293
+ */
294
+ function refusal(code, reason, message, details = {}) {
295
+ return new AppError(message, { code, details: { ...details, reason } });
296
+ }
297
+ /** Where a payer tops up: the Console's credits page. */
298
+ const fundingUrl = (config) => config.CONSOLE_URL ? { fundingUrl: `${config.CONSOLE_URL}/credits` } : {};
299
+ /**
300
+ * The collection's company, as the ENGINE derives it (contract "Company authority" → "Read it"):
301
+ * on a poster's deed it is the org linked to the deed both ways, not `collection.entity`, and only
302
+ * the engine resolves that. Null for a collection the engine does not know (404). `undefined` for
303
+ * any other engine trouble (its 503 while Blocksync is down, the network, a refusal) — never a
304
+ * failed hire: nothing is filled or linked, and a later register (or the backfill) does it.
305
+ */
306
+ async function readCompany(ctx, collectionId) {
307
+ const { config, trace, logger, env } = ctx;
308
+ try {
309
+ return await createEngineClient({
310
+ config,
311
+ trace,
312
+ logger,
313
+ cache: env.CACHE_KV,
314
+ }).getCollectionCompany(collectionId);
315
+ }
316
+ catch (err) {
317
+ const { status, code } = err instanceof AppError || err instanceof EngineError ? err : {};
318
+ logger.warn("register.company-unavailable", { collectionId, status, code });
319
+ return undefined;
320
+ }
321
+ }
322
+ /**
323
+ * The contact of the company's oldest active Decision API source. A `disputed` company has none.
324
+ * Oldest activation wins, so a re-run picks the same source; none (or API_LANE off — the table is
325
+ * empty) leaves it empty.
326
+ */
327
+ async function companyContact(db, company) {
328
+ if (company.state !== "ok")
329
+ return null;
330
+ const [source] = await db
331
+ .select({ contactEmail: apiSources.contactEmail })
332
+ .from(apiSources)
333
+ .where(and(eq(apiSources.companyEntityDid, company.entityDid), eq(apiSources.status, "active"), isNotNull(apiSources.contactEmail)))
334
+ .orderBy(asc(sql `coalesce(${apiSources.activatedAt}, ${apiSources.createdAt})`), asc(apiSources.sourceId))
335
+ .limit(1);
336
+ return source?.contactEmail || null;
337
+ }
338
+ /** Collections one backfill call visits when it names none. */
339
+ export const RELINK_CAP = 100;
340
+ /**
341
+ * The backfill of register's company links for collections watched before it linked them
342
+ * (`POST /v1/admin/collections/relink`): per collection, the SAME engine read and the SAME
343
+ * `linkCompanySources` register runs, so a re-run is a no-op. `collectionIds` names them (an id
344
+ * this oracle does not watch is `not-watched`); absent ⇒ every watched collection, lowest id first,
345
+ * up to `RELINK_CAP` (`truncated` says more exist — name them). A collection with no unlinked
346
+ * active source is `unchanged` without an engine call.
347
+ */
348
+ export async function relinkCollections(ctx, collectionIds) {
349
+ const { db } = ctx;
350
+ const rows = await db
351
+ .select({
352
+ collectionId: watchedCollections.collectionId,
353
+ protocolDid: watchedCollections.protocolDid,
354
+ })
355
+ .from(watchedCollections)
356
+ .where(collectionIds ? inArray(watchedCollections.collectionId, collectionIds) : undefined)
357
+ .orderBy(asc(watchedCollections.collectionId))
358
+ .limit(collectionIds ? collectionIds.length : RELINK_CAP + 1);
359
+ const truncated = !collectionIds && rows.length > RELINK_CAP;
360
+ const watched = new Map(rows.slice(0, RELINK_CAP).map((r) => [r.collectionId, r.protocolDid]));
361
+ const items = [];
362
+ for (const collectionId of collectionIds ?? [...watched.keys()]) {
363
+ const protocolDid = watched.get(collectionId);
364
+ const item = (outcome, linkedSources = []) => items.push({ collectionId, outcome, linkedSources });
365
+ if (protocolDid === undefined)
366
+ item("not-watched");
367
+ else if (!protocolDid || !(await hasUnlinkedActiveSource(db, collectionId)))
368
+ item("unchanged");
369
+ else {
370
+ const company = await readCompany(ctx, collectionId);
371
+ if (company === undefined)
372
+ item("unavailable");
373
+ else if (company === null)
374
+ item("no-company");
375
+ else if (company.state !== "ok")
376
+ item("disputed");
377
+ else {
378
+ const linked = await linkCompanySources(db, collectionId, protocolDid, company);
379
+ item(linked.length > 0 ? "linked" : "unchanged", linked);
380
+ }
381
+ }
382
+ }
383
+ ctx.logger.info("collection.relinked", {
384
+ visited: items.length,
385
+ linked: items.filter((i) => i.outcome === "linked").length,
386
+ truncated,
387
+ });
388
+ return { items, truncated };
389
+ }
390
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/lib/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * The reviewer's signed review attestation (design §B.3) — a small Verifiable Credential the
3
+ * REVIEWER issues with their own Ed25519 key (the same PIN-unlocked key their UCAN invocations are
4
+ * signed with), saying in their own name: "I, <did>, answered claim <claimId> at oracle
5
+ * <oracleDid> against evaluation <resultDigest> with these answers."
6
+ *
7
+ * A DELIBERATE MIRROR of the engine's `src/lib/receipt/attestation.ts`. There is no shared package
8
+ * between this kit and the engine — same posture as the rubric format — so the two copies are kept
9
+ * in lock-step by hand, and BOTH verify: the kit because it is the only party that sees the
10
+ * reviewer's UCAN invocation, the engine because it trusts nothing this kit asserts about the
11
+ * reviewer (§B.5). A change here needs the matching change there.
12
+ *
13
+ * Fail closed, at the first miss: every refusal carries its own code and nothing half-verified ever
14
+ * passes. The keys come from the SAME composite DID resolver `middleware/ucan-auth.ts` authenticates
15
+ * with, so an attestation can never verify against a key the UCAN layer would have rejected.
16
+ */
17
+ import { z } from "zod";
18
+ import type { Config } from "../../config.js";
19
+ /**
20
+ * The attestation's JSON-LD context — a fixed CONSTANT on the namespace IXO operates, not a
21
+ * per-oracle URL: the same statement signed by two reviewers at two oracles must be the same
22
+ * vocabulary. Published as content in `ixofoundation/ns`; this kit never serves or resolves it.
23
+ */
24
+ export declare const REVIEW_ATTESTATION_CONTEXT = "https://w3id.org/ixo/credentials/review-attestation/v1";
25
+ /** The compact JWS protected header. `kid` is the `did:key` FORM of the signing key (§B.2) — not a
26
+ * DID-document fragment — so the verifier's job is exactly one assertion: the chain publishes it. */
27
+ export declare const ReviewAttestationHeaderSchema: z.ZodObject<{
28
+ alg: z.ZodLiteral<"EdDSA">;
29
+ typ: z.ZodLiteral<"vc+jwt">;
30
+ cty: z.ZodLiteral<"vc">;
31
+ kid: z.ZodString;
32
+ }, z.core.$strict>;
33
+ export declare const ReviewAttestationSchema: z.ZodObject<{
34
+ "@context": z.ZodTuple<[z.ZodLiteral<"https://www.w3.org/ns/credentials/v2">, z.ZodString], null>;
35
+ id: z.ZodString;
36
+ type: z.ZodTuple<[z.ZodLiteral<"VerifiableCredential">, z.ZodLiteral<"ClaimReviewAttestation">], null>;
37
+ issuer: z.ZodString;
38
+ validFrom: z.ZodISODateTime;
39
+ credentialSubject: z.ZodObject<{
40
+ id: z.ZodString;
41
+ claimId: z.ZodString;
42
+ oracleDid: z.ZodString;
43
+ answeredAgainst: z.ZodString;
44
+ answers: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
45
+ }, z.core.$strict>;
46
+ }, z.core.$strict>;
47
+ export type ReviewAttestation = z.infer<typeof ReviewAttestationSchema>;
48
+ /** The five refusal codes, identical on the engine (docs/ENGINE-CONTRACT.md "Human review"). */
49
+ export type AttestationErrorCode = "ATTESTATION_INVALID" | "ATTESTATION_KEY_UNKNOWN" | "ATTESTATION_ISSUER_MISMATCH" | "ATTESTATION_MISMATCH" | "ATTESTATION_UNRESOLVABLE";
50
+ /** What the attestation must be bound to for this request — the replay bindings of §B.5. */
51
+ export interface ExpectedAttestation {
52
+ /** The authenticated reviewer: `principal.did`, never anything the body carries. */
53
+ issuer: string;
54
+ /** This oracle's own did:web — the UCAN audience the reviewer addressed. */
55
+ oracleDid: string;
56
+ claimId: string;
57
+ /** The `resultDigest` of the `pending_review` decision being answered. */
58
+ answeredAgainst: string;
59
+ answers: Record<string, boolean | string>;
60
+ }
61
+ export type VerifyAttestationResult =
62
+ /** `kid`: the did:key that signed — on the issuer's document (an API-lane root's self-grant must
63
+ * be signed by it too, lib/review/reviewer-grant.ts `parseSelfReviewGrant`). */
64
+ {
65
+ ok: true;
66
+ attestation: ReviewAttestation;
67
+ cid: string;
68
+ kid: string;
69
+ } | {
70
+ ok: false;
71
+ code: AttestationErrorCode;
72
+ failures: string[];
73
+ };
74
+ export declare const b64urlToText: (part: string) => string;
75
+ /** The raw 32-byte Ed25519 key inside a `did:key`, or null if it is not one (§B.4 step 2). */
76
+ export declare function ed25519KeyOf(kid: string): Uint8Array | null;
77
+ /**
78
+ * Does the compact JWS's signature verify under the raw Ed25519 key? A malformed JWS or key does
79
+ * not. Shared with the Decision API's reviewer-key proof (`routes/v1/api/members.ts`), whose
80
+ * payload is not an attestation but whose signature is checked the same way.
81
+ */
82
+ export declare function ed25519JwsVerifies(publicKeyRaw: Uint8Array, jws: string): Promise<boolean>;
83
+ /**
84
+ * Verify one attestation against what this request binds it to. Order is the fail-closed order of
85
+ * §B.5 — shape, then the issuer we already know, then key, then signature, then the remaining
86
+ * bindings — so a refusal always names the FIRST thing that is wrong rather than the most
87
+ * convenient one, and a refusal we can make with no network costs no network.
88
+ */
89
+ export declare function verifyReviewAttestation(deps: {
90
+ config: Config;
91
+ }, jws: string, expected: ExpectedAttestation): Promise<VerifyAttestationResult>;
92
+ //# sourceMappingURL=attestation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../../src/lib/review/attestation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,2DAA2D,CAAC;AAEnG;sGACsG;AACtG,eAAO,MAAM,6BAA6B;;;;;kBAKxC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;kBAkBlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,yBAAyB,GACzB,6BAA6B,GAC7B,sBAAsB,GACtB,0BAA0B,CAAC;AAE/B,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,uBAAuB;AACjC;iFACiF;AAC/E;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAmFlE,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAuD,CAAC;AAEpG,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS3D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBhG;AAaD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACxB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAsFlC"}