@ixo/openhands-sdk 0.4.1 → 0.6.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 (548) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/campaign/cleanup.js +1 -1
  3. package/dist/cjs/campaign/cleanup.js.map +1 -1
  4. package/dist/cjs/campaign/funding.js +3 -3
  5. package/dist/cjs/campaign/funding.js.map +1 -1
  6. package/dist/cjs/campaign/spot.d.ts.map +1 -1
  7. package/dist/cjs/campaign/spot.js +2 -1
  8. package/dist/cjs/campaign/spot.js.map +1 -1
  9. package/dist/cjs/chain/ask.d.ts +72 -2
  10. package/dist/cjs/chain/ask.d.ts.map +1 -1
  11. package/dist/cjs/chain/ask.js +68 -34
  12. package/dist/cjs/chain/ask.js.map +1 -1
  13. package/dist/cjs/chain/broadcast.d.ts.map +1 -1
  14. package/dist/cjs/chain/broadcast.js +6 -4
  15. package/dist/cjs/chain/broadcast.js.map +1 -1
  16. package/dist/cjs/chain/claimVerdict.d.ts +26 -0
  17. package/dist/cjs/chain/claimVerdict.d.ts.map +1 -0
  18. package/dist/cjs/chain/claimVerdict.js +33 -0
  19. package/dist/cjs/chain/claimVerdict.js.map +1 -0
  20. package/dist/cjs/chain/delegate.d.ts +54 -13
  21. package/dist/cjs/chain/delegate.d.ts.map +1 -1
  22. package/dist/cjs/chain/delegate.js +77 -28
  23. package/dist/cjs/chain/delegate.js.map +1 -1
  24. package/dist/cjs/chain/entityShape.d.ts +2 -0
  25. package/dist/cjs/chain/entityShape.d.ts.map +1 -1
  26. package/dist/cjs/chain/entityShape.js +8 -1
  27. package/dist/cjs/chain/entityShape.js.map +1 -1
  28. package/dist/cjs/chain/env.d.ts +1 -0
  29. package/dist/cjs/chain/env.d.ts.map +1 -1
  30. package/dist/cjs/chain/env.js +9 -1
  31. package/dist/cjs/chain/env.js.map +1 -1
  32. package/dist/cjs/chain/inviteMessages.d.ts +224 -0
  33. package/dist/cjs/chain/inviteMessages.d.ts.map +1 -0
  34. package/dist/cjs/chain/inviteMessages.js +347 -0
  35. package/dist/cjs/chain/inviteMessages.js.map +1 -0
  36. package/dist/cjs/chain/inviteProof.d.ts +121 -0
  37. package/dist/cjs/chain/inviteProof.d.ts.map +1 -0
  38. package/dist/cjs/chain/inviteProof.js +297 -0
  39. package/dist/cjs/chain/inviteProof.js.map +1 -0
  40. package/dist/cjs/chain/lane.d.ts +148 -0
  41. package/dist/cjs/chain/lane.d.ts.map +1 -0
  42. package/dist/cjs/chain/lane.js +220 -0
  43. package/dist/cjs/chain/lane.js.map +1 -0
  44. package/dist/cjs/chain/money.d.ts +24 -17
  45. package/dist/cjs/chain/money.d.ts.map +1 -1
  46. package/dist/cjs/chain/money.js +28 -29
  47. package/dist/cjs/chain/money.js.map +1 -1
  48. package/dist/cjs/chain/oracle.d.ts +2 -0
  49. package/dist/cjs/chain/oracle.d.ts.map +1 -1
  50. package/dist/cjs/chain/oracle.js +1 -1
  51. package/dist/cjs/chain/oracle.js.map +1 -1
  52. package/dist/cjs/chain/orgReviewBilling.d.ts +1 -1
  53. package/dist/cjs/chain/orgReviewBilling.d.ts.map +1 -1
  54. package/dist/cjs/chain/orgReviewBilling.js +16 -15
  55. package/dist/cjs/chain/orgReviewBilling.js.map +1 -1
  56. package/dist/cjs/chain/payoutTerms.d.ts.map +1 -1
  57. package/dist/cjs/chain/payoutTerms.js +1 -1
  58. package/dist/cjs/chain/payoutTerms.js.map +1 -1
  59. package/dist/cjs/chain/personReview.d.ts +218 -0
  60. package/dist/cjs/chain/personReview.d.ts.map +1 -0
  61. package/dist/cjs/chain/personReview.js +379 -0
  62. package/dist/cjs/chain/personReview.js.map +1 -0
  63. package/dist/cjs/chain/postFee.d.ts +11 -0
  64. package/dist/cjs/chain/postFee.d.ts.map +1 -0
  65. package/dist/cjs/chain/postFee.js +14 -0
  66. package/dist/cjs/chain/postFee.js.map +1 -0
  67. package/dist/cjs/chain/query.d.ts +55 -2
  68. package/dist/cjs/chain/query.d.ts.map +1 -1
  69. package/dist/cjs/chain/query.js +144 -8
  70. package/dist/cjs/chain/query.js.map +1 -1
  71. package/dist/cjs/chain/reviewBilling.d.ts +3 -27
  72. package/dist/cjs/chain/reviewBilling.d.ts.map +1 -1
  73. package/dist/cjs/chain/reviewBilling.js +5 -112
  74. package/dist/cjs/chain/reviewBilling.js.map +1 -1
  75. package/dist/cjs/chain/rewardDenom.d.ts +6 -0
  76. package/dist/cjs/chain/rewardDenom.d.ts.map +1 -0
  77. package/dist/cjs/chain/rewardDenom.js +9 -0
  78. package/dist/cjs/chain/rewardDenom.js.map +1 -0
  79. package/dist/cjs/chain/sponsor.d.ts +1 -1
  80. package/dist/cjs/chain/sponsor.d.ts.map +1 -1
  81. package/dist/cjs/chain/sponsor.js +8 -4
  82. package/dist/cjs/chain/sponsor.js.map +1 -1
  83. package/dist/cjs/chain.d.ts +1 -1
  84. package/dist/cjs/chain.d.ts.map +1 -1
  85. package/dist/cjs/chain.js +5 -4
  86. package/dist/cjs/chain.js.map +1 -1
  87. package/dist/cjs/config.d.ts +12 -3
  88. package/dist/cjs/config.d.ts.map +1 -1
  89. package/dist/cjs/config.js +5 -1
  90. package/dist/cjs/config.js.map +1 -1
  91. package/dist/cjs/data/agent.d.ts +2 -0
  92. package/dist/cjs/data/agent.d.ts.map +1 -1
  93. package/dist/cjs/data/agent.js +1 -0
  94. package/dist/cjs/data/agent.js.map +1 -1
  95. package/dist/cjs/data/board/assemble.d.ts +7 -2
  96. package/dist/cjs/data/board/assemble.d.ts.map +1 -1
  97. package/dist/cjs/data/board/assemble.js +76 -10
  98. package/dist/cjs/data/board/assemble.js.map +1 -1
  99. package/dist/cjs/data/board/facts.d.ts +10 -0
  100. package/dist/cjs/data/board/facts.d.ts.map +1 -1
  101. package/dist/cjs/data/board/facts.js +14 -1
  102. package/dist/cjs/data/board/facts.js.map +1 -1
  103. package/dist/cjs/data/board/read.d.ts +46 -3
  104. package/dist/cjs/data/board/read.d.ts.map +1 -1
  105. package/dist/cjs/data/board/read.js +145 -9
  106. package/dist/cjs/data/board/read.js.map +1 -1
  107. package/dist/cjs/data/board/types.d.ts +82 -5
  108. package/dist/cjs/data/board/types.d.ts.map +1 -1
  109. package/dist/cjs/data/board/types.js +5 -3
  110. package/dist/cjs/data/board/types.js.map +1 -1
  111. package/dist/cjs/data/checkers.d.ts +169 -0
  112. package/dist/cjs/data/checkers.d.ts.map +1 -0
  113. package/dist/cjs/data/checkers.js +354 -0
  114. package/dist/cjs/data/checkers.js.map +1 -0
  115. package/dist/cjs/data/checkersRead.d.ts +58 -0
  116. package/dist/cjs/data/checkersRead.d.ts.map +1 -0
  117. package/dist/cjs/data/checkersRead.js +263 -0
  118. package/dist/cjs/data/checkersRead.js.map +1 -0
  119. package/dist/cjs/data/denoms.d.ts.map +1 -1
  120. package/dist/cjs/data/denoms.js +1 -0
  121. package/dist/cjs/data/denoms.js.map +1 -1
  122. package/dist/cjs/data/docUrls.d.ts +3 -0
  123. package/dist/cjs/data/docUrls.d.ts.map +1 -1
  124. package/dist/cjs/data/docUrls.js +12 -1
  125. package/dist/cjs/data/docUrls.js.map +1 -1
  126. package/dist/cjs/data/docs.d.ts +3 -1
  127. package/dist/cjs/data/docs.d.ts.map +1 -1
  128. package/dist/cjs/data/docs.js +15 -2
  129. package/dist/cjs/data/docs.js.map +1 -1
  130. package/dist/cjs/data/engine.d.ts.map +1 -1
  131. package/dist/cjs/data/engine.js +12 -5
  132. package/dist/cjs/data/engine.js.map +1 -1
  133. package/dist/cjs/data/engineUrl.js +1 -1
  134. package/dist/cjs/data/engineUrl.js.map +1 -1
  135. package/dist/cjs/data/envelope.d.ts +18 -0
  136. package/dist/cjs/data/envelope.d.ts.map +1 -1
  137. package/dist/cjs/data/envelope.js +16 -1
  138. package/dist/cjs/data/envelope.js.map +1 -1
  139. package/dist/cjs/data/format.d.ts +32 -10
  140. package/dist/cjs/data/format.d.ts.map +1 -1
  141. package/dist/cjs/data/format.js +62 -19
  142. package/dist/cjs/data/format.js.map +1 -1
  143. package/dist/cjs/data/index.d.ts +2 -2
  144. package/dist/cjs/data/index.d.ts.map +1 -1
  145. package/dist/cjs/data/index.js +2 -1
  146. package/dist/cjs/data/index.js.map +1 -1
  147. package/dist/cjs/data/install.d.ts +46 -49
  148. package/dist/cjs/data/install.d.ts.map +1 -1
  149. package/dist/cjs/data/install.js +62 -61
  150. package/dist/cjs/data/install.js.map +1 -1
  151. package/dist/cjs/data/money.d.ts +36 -0
  152. package/dist/cjs/data/money.d.ts.map +1 -0
  153. package/dist/cjs/data/money.js +95 -0
  154. package/dist/cjs/data/money.js.map +1 -0
  155. package/dist/cjs/data/openness.d.ts +17 -1
  156. package/dist/cjs/data/openness.d.ts.map +1 -1
  157. package/dist/cjs/data/openness.js +16 -26
  158. package/dist/cjs/data/openness.js.map +1 -1
  159. package/dist/cjs/data/queue.d.ts +26 -0
  160. package/dist/cjs/data/queue.d.ts.map +1 -1
  161. package/dist/cjs/data/queue.js +57 -12
  162. package/dist/cjs/data/queue.js.map +1 -1
  163. package/dist/cjs/data/receipt.d.ts +19 -0
  164. package/dist/cjs/data/receipt.d.ts.map +1 -1
  165. package/dist/cjs/data/receipt.js +22 -5
  166. package/dist/cjs/data/receipt.js.map +1 -1
  167. package/dist/cjs/data/sponsors.d.ts +94 -0
  168. package/dist/cjs/data/sponsors.d.ts.map +1 -0
  169. package/dist/cjs/data/sponsors.js +147 -0
  170. package/dist/cjs/data/sponsors.js.map +1 -0
  171. package/dist/cjs/data/threads.d.ts +4 -0
  172. package/dist/cjs/data/threads.d.ts.map +1 -1
  173. package/dist/cjs/data/threads.js +5 -1
  174. package/dist/cjs/data/threads.js.map +1 -1
  175. package/dist/cjs/data/traceWords.js +8 -8
  176. package/dist/cjs/data/traceWords.js.map +1 -1
  177. package/dist/cjs/data/types.d.ts +6 -1
  178. package/dist/cjs/data/types.d.ts.map +1 -1
  179. package/dist/cjs/data/types.js.map +1 -1
  180. package/dist/cjs/data/whyReceipt.d.ts.map +1 -1
  181. package/dist/cjs/data/whyReceipt.js +10 -1
  182. package/dist/cjs/data/whyReceipt.js.map +1 -1
  183. package/dist/cjs/data/work.d.ts +5 -0
  184. package/dist/cjs/data/work.d.ts.map +1 -1
  185. package/dist/cjs/data/work.js +11 -5
  186. package/dist/cjs/data/work.js.map +1 -1
  187. package/dist/cjs/discovery.d.ts +64 -0
  188. package/dist/cjs/discovery.d.ts.map +1 -0
  189. package/dist/cjs/discovery.js +85 -0
  190. package/dist/cjs/discovery.js.map +1 -0
  191. package/dist/cjs/envRead.d.ts +1 -1
  192. package/dist/cjs/envRead.d.ts.map +1 -1
  193. package/dist/cjs/envRead.js +2 -1
  194. package/dist/cjs/envRead.js.map +1 -1
  195. package/dist/cjs/given.d.ts +14 -0
  196. package/dist/cjs/given.d.ts.map +1 -1
  197. package/dist/cjs/given.js +14 -2
  198. package/dist/cjs/given.js.map +1 -1
  199. package/dist/cjs/network.d.ts +3 -1
  200. package/dist/cjs/network.d.ts.map +1 -1
  201. package/dist/cjs/network.js +11 -3
  202. package/dist/cjs/network.js.map +1 -1
  203. package/dist/cjs/rubric/bridge.d.ts +8 -0
  204. package/dist/cjs/rubric/bridge.d.ts.map +1 -1
  205. package/dist/cjs/rubric/bridge.js +107 -8
  206. package/dist/cjs/rubric/bridge.js.map +1 -1
  207. package/dist/cjs/rubric/call.d.ts +35 -8
  208. package/dist/cjs/rubric/call.d.ts.map +1 -1
  209. package/dist/cjs/rubric/call.js +62 -20
  210. package/dist/cjs/rubric/call.js.map +1 -1
  211. package/dist/cjs/rubric/callChecks.d.ts +14 -0
  212. package/dist/cjs/rubric/callChecks.d.ts.map +1 -0
  213. package/dist/cjs/rubric/callChecks.js +43 -0
  214. package/dist/cjs/rubric/callChecks.js.map +1 -0
  215. package/dist/cjs/rubric/callLimits.d.ts +28 -0
  216. package/dist/cjs/rubric/callLimits.d.ts.map +1 -0
  217. package/dist/cjs/rubric/callLimits.js +36 -0
  218. package/dist/cjs/rubric/callLimits.js.map +1 -0
  219. package/dist/cjs/rubric/callTag.d.ts +5 -0
  220. package/dist/cjs/rubric/callTag.d.ts.map +1 -0
  221. package/dist/cjs/rubric/callTag.js +17 -0
  222. package/dist/cjs/rubric/callTag.js.map +1 -0
  223. package/dist/cjs/rubric/compose.d.ts.map +1 -1
  224. package/dist/cjs/rubric/compose.js +5 -3
  225. package/dist/cjs/rubric/compose.js.map +1 -1
  226. package/dist/cjs/rubric/draft.d.ts +9 -1
  227. package/dist/cjs/rubric/draft.d.ts.map +1 -1
  228. package/dist/cjs/rubric/draft.js +25 -3
  229. package/dist/cjs/rubric/draft.js.map +1 -1
  230. package/dist/cjs/rubric/feeLine.d.ts +26 -0
  231. package/dist/cjs/rubric/feeLine.d.ts.map +1 -0
  232. package/dist/cjs/rubric/feeLine.js +46 -0
  233. package/dist/cjs/rubric/feeLine.js.map +1 -0
  234. package/dist/cjs/rubric/gateMet.d.ts +17 -0
  235. package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
  236. package/dist/cjs/rubric/gateMet.js +36 -3
  237. package/dist/cjs/rubric/gateMet.js.map +1 -1
  238. package/dist/cjs/rubric/leg.js +3 -3
  239. package/dist/cjs/rubric/leg.js.map +1 -1
  240. package/dist/cjs/rubric/marketPlan.d.ts +2 -0
  241. package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
  242. package/dist/cjs/rubric/marketPlan.js.map +1 -1
  243. package/dist/cjs/rubric/planAsk.d.ts +23 -0
  244. package/dist/cjs/rubric/planAsk.d.ts.map +1 -0
  245. package/dist/cjs/rubric/planAsk.js +24 -0
  246. package/dist/cjs/rubric/planAsk.js.map +1 -0
  247. package/dist/cjs/rubric/report.d.ts +208 -0
  248. package/dist/cjs/rubric/report.d.ts.map +1 -0
  249. package/dist/cjs/rubric/report.js +411 -0
  250. package/dist/cjs/rubric/report.js.map +1 -0
  251. package/dist/cjs/rubric/reportLine.d.ts +31 -0
  252. package/dist/cjs/rubric/reportLine.d.ts.map +1 -0
  253. package/dist/cjs/rubric/reportLine.js +45 -0
  254. package/dist/cjs/rubric/reportLine.js.map +1 -0
  255. package/dist/cjs/rubric/reportTemplate.d.ts +30 -0
  256. package/dist/cjs/rubric/reportTemplate.d.ts.map +1 -0
  257. package/dist/cjs/rubric/reportTemplate.js +78 -0
  258. package/dist/cjs/rubric/reportTemplate.js.map +1 -0
  259. package/dist/cjs/rubric/share.d.ts +46 -0
  260. package/dist/cjs/rubric/share.d.ts.map +1 -0
  261. package/dist/cjs/rubric/share.js +65 -0
  262. package/dist/cjs/rubric/share.js.map +1 -0
  263. package/dist/cjs/rubric/terms.d.ts +89 -25
  264. package/dist/cjs/rubric/terms.d.ts.map +1 -1
  265. package/dist/cjs/rubric/terms.js +91 -29
  266. package/dist/cjs/rubric/terms.js.map +1 -1
  267. package/dist/cjs/verification/profile.d.ts +28 -0
  268. package/dist/cjs/verification/profile.d.ts.map +1 -0
  269. package/dist/cjs/verification/profile.js +126 -0
  270. package/dist/cjs/verification/profile.js.map +1 -0
  271. package/dist/cjs/verification/schema.d.ts +54 -0
  272. package/dist/cjs/verification/schema.d.ts.map +1 -0
  273. package/dist/cjs/verification/schema.js +49 -0
  274. package/dist/cjs/verification/schema.js.map +1 -0
  275. package/dist/esm/campaign/cleanup.js +1 -1
  276. package/dist/esm/campaign/cleanup.js.map +1 -1
  277. package/dist/esm/campaign/funding.js +3 -3
  278. package/dist/esm/campaign/funding.js.map +1 -1
  279. package/dist/esm/campaign/spot.d.ts.map +1 -1
  280. package/dist/esm/campaign/spot.js +2 -1
  281. package/dist/esm/campaign/spot.js.map +1 -1
  282. package/dist/esm/chain/ask.d.ts +72 -2
  283. package/dist/esm/chain/ask.d.ts.map +1 -1
  284. package/dist/esm/chain/ask.js +69 -36
  285. package/dist/esm/chain/ask.js.map +1 -1
  286. package/dist/esm/chain/broadcast.d.ts.map +1 -1
  287. package/dist/esm/chain/broadcast.js +7 -5
  288. package/dist/esm/chain/broadcast.js.map +1 -1
  289. package/dist/esm/chain/claimVerdict.d.ts +26 -0
  290. package/dist/esm/chain/claimVerdict.d.ts.map +1 -0
  291. package/dist/esm/chain/claimVerdict.js +30 -0
  292. package/dist/esm/chain/claimVerdict.js.map +1 -0
  293. package/dist/esm/chain/delegate.d.ts +54 -13
  294. package/dist/esm/chain/delegate.d.ts.map +1 -1
  295. package/dist/esm/chain/delegate.js +69 -27
  296. package/dist/esm/chain/delegate.js.map +1 -1
  297. package/dist/esm/chain/entityShape.d.ts +2 -0
  298. package/dist/esm/chain/entityShape.d.ts.map +1 -1
  299. package/dist/esm/chain/entityShape.js +6 -0
  300. package/dist/esm/chain/entityShape.js.map +1 -1
  301. package/dist/esm/chain/env.d.ts +1 -0
  302. package/dist/esm/chain/env.d.ts.map +1 -1
  303. package/dist/esm/chain/env.js +7 -0
  304. package/dist/esm/chain/env.js.map +1 -1
  305. package/dist/esm/chain/inviteMessages.d.ts +224 -0
  306. package/dist/esm/chain/inviteMessages.d.ts.map +1 -0
  307. package/dist/esm/chain/inviteMessages.js +296 -0
  308. package/dist/esm/chain/inviteMessages.js.map +1 -0
  309. package/dist/esm/chain/inviteProof.d.ts +121 -0
  310. package/dist/esm/chain/inviteProof.d.ts.map +1 -0
  311. package/dist/esm/chain/inviteProof.js +278 -0
  312. package/dist/esm/chain/inviteProof.js.map +1 -0
  313. package/dist/esm/chain/lane.d.ts +148 -0
  314. package/dist/esm/chain/lane.d.ts.map +1 -0
  315. package/dist/esm/chain/lane.js +170 -0
  316. package/dist/esm/chain/lane.js.map +1 -0
  317. package/dist/esm/chain/money.d.ts +24 -17
  318. package/dist/esm/chain/money.d.ts.map +1 -1
  319. package/dist/esm/chain/money.js +34 -25
  320. package/dist/esm/chain/money.js.map +1 -1
  321. package/dist/esm/chain/oracle.d.ts +2 -0
  322. package/dist/esm/chain/oracle.d.ts.map +1 -1
  323. package/dist/esm/chain/oracle.js +1 -1
  324. package/dist/esm/chain/oracle.js.map +1 -1
  325. package/dist/esm/chain/orgReviewBilling.d.ts +1 -1
  326. package/dist/esm/chain/orgReviewBilling.d.ts.map +1 -1
  327. package/dist/esm/chain/orgReviewBilling.js +16 -15
  328. package/dist/esm/chain/orgReviewBilling.js.map +1 -1
  329. package/dist/esm/chain/payoutTerms.d.ts.map +1 -1
  330. package/dist/esm/chain/payoutTerms.js +1 -1
  331. package/dist/esm/chain/payoutTerms.js.map +1 -1
  332. package/dist/esm/chain/personReview.d.ts +218 -0
  333. package/dist/esm/chain/personReview.d.ts.map +1 -0
  334. package/dist/esm/chain/personReview.js +322 -0
  335. package/dist/esm/chain/personReview.js.map +1 -0
  336. package/dist/esm/chain/postFee.d.ts +11 -0
  337. package/dist/esm/chain/postFee.d.ts.map +1 -0
  338. package/dist/esm/chain/postFee.js +11 -0
  339. package/dist/esm/chain/postFee.js.map +1 -0
  340. package/dist/esm/chain/query.d.ts +55 -2
  341. package/dist/esm/chain/query.d.ts.map +1 -1
  342. package/dist/esm/chain/query.js +136 -8
  343. package/dist/esm/chain/query.js.map +1 -1
  344. package/dist/esm/chain/reviewBilling.d.ts +3 -27
  345. package/dist/esm/chain/reviewBilling.d.ts.map +1 -1
  346. package/dist/esm/chain/reviewBilling.js +5 -108
  347. package/dist/esm/chain/reviewBilling.js.map +1 -1
  348. package/dist/esm/chain/rewardDenom.d.ts +6 -0
  349. package/dist/esm/chain/rewardDenom.d.ts.map +1 -0
  350. package/dist/esm/chain/rewardDenom.js +5 -0
  351. package/dist/esm/chain/rewardDenom.js.map +1 -0
  352. package/dist/esm/chain/sponsor.d.ts +1 -1
  353. package/dist/esm/chain/sponsor.d.ts.map +1 -1
  354. package/dist/esm/chain/sponsor.js +8 -4
  355. package/dist/esm/chain/sponsor.js.map +1 -1
  356. package/dist/esm/chain.d.ts +1 -1
  357. package/dist/esm/chain.d.ts.map +1 -1
  358. package/dist/esm/chain.js +1 -1
  359. package/dist/esm/chain.js.map +1 -1
  360. package/dist/esm/config.d.ts +12 -3
  361. package/dist/esm/config.d.ts.map +1 -1
  362. package/dist/esm/config.js +6 -2
  363. package/dist/esm/config.js.map +1 -1
  364. package/dist/esm/data/agent.d.ts +2 -0
  365. package/dist/esm/data/agent.d.ts.map +1 -1
  366. package/dist/esm/data/agent.js +1 -0
  367. package/dist/esm/data/agent.js.map +1 -1
  368. package/dist/esm/data/board/assemble.d.ts +7 -2
  369. package/dist/esm/data/board/assemble.d.ts.map +1 -1
  370. package/dist/esm/data/board/assemble.js +73 -9
  371. package/dist/esm/data/board/assemble.js.map +1 -1
  372. package/dist/esm/data/board/facts.d.ts +10 -0
  373. package/dist/esm/data/board/facts.d.ts.map +1 -1
  374. package/dist/esm/data/board/facts.js +13 -1
  375. package/dist/esm/data/board/facts.js.map +1 -1
  376. package/dist/esm/data/board/read.d.ts +46 -3
  377. package/dist/esm/data/board/read.d.ts.map +1 -1
  378. package/dist/esm/data/board/read.js +143 -10
  379. package/dist/esm/data/board/read.js.map +1 -1
  380. package/dist/esm/data/board/types.d.ts +82 -5
  381. package/dist/esm/data/board/types.d.ts.map +1 -1
  382. package/dist/esm/data/board/types.js +5 -3
  383. package/dist/esm/data/board/types.js.map +1 -1
  384. package/dist/esm/data/checkers.d.ts +169 -0
  385. package/dist/esm/data/checkers.d.ts.map +1 -0
  386. package/dist/esm/data/checkers.js +304 -0
  387. package/dist/esm/data/checkers.js.map +1 -0
  388. package/dist/esm/data/checkersRead.d.ts +58 -0
  389. package/dist/esm/data/checkersRead.d.ts.map +1 -0
  390. package/dist/esm/data/checkersRead.js +252 -0
  391. package/dist/esm/data/checkersRead.js.map +1 -0
  392. package/dist/esm/data/denoms.d.ts.map +1 -1
  393. package/dist/esm/data/denoms.js +1 -0
  394. package/dist/esm/data/denoms.js.map +1 -1
  395. package/dist/esm/data/docUrls.d.ts +3 -0
  396. package/dist/esm/data/docUrls.d.ts.map +1 -1
  397. package/dist/esm/data/docUrls.js +9 -0
  398. package/dist/esm/data/docUrls.js.map +1 -1
  399. package/dist/esm/data/docs.d.ts +3 -1
  400. package/dist/esm/data/docs.d.ts.map +1 -1
  401. package/dist/esm/data/docs.js +15 -2
  402. package/dist/esm/data/docs.js.map +1 -1
  403. package/dist/esm/data/engine.d.ts.map +1 -1
  404. package/dist/esm/data/engine.js +12 -5
  405. package/dist/esm/data/engine.js.map +1 -1
  406. package/dist/esm/data/engineUrl.js +2 -2
  407. package/dist/esm/data/engineUrl.js.map +1 -1
  408. package/dist/esm/data/envelope.d.ts +18 -0
  409. package/dist/esm/data/envelope.d.ts.map +1 -1
  410. package/dist/esm/data/envelope.js +14 -0
  411. package/dist/esm/data/envelope.js.map +1 -1
  412. package/dist/esm/data/format.d.ts +32 -10
  413. package/dist/esm/data/format.d.ts.map +1 -1
  414. package/dist/esm/data/format.js +58 -18
  415. package/dist/esm/data/format.js.map +1 -1
  416. package/dist/esm/data/index.d.ts +2 -2
  417. package/dist/esm/data/index.d.ts.map +1 -1
  418. package/dist/esm/data/index.js +1 -1
  419. package/dist/esm/data/index.js.map +1 -1
  420. package/dist/esm/data/install.d.ts +46 -49
  421. package/dist/esm/data/install.d.ts.map +1 -1
  422. package/dist/esm/data/install.js +58 -60
  423. package/dist/esm/data/install.js.map +1 -1
  424. package/dist/esm/data/money.d.ts +36 -0
  425. package/dist/esm/data/money.d.ts.map +1 -0
  426. package/dist/esm/data/money.js +90 -0
  427. package/dist/esm/data/money.js.map +1 -0
  428. package/dist/esm/data/openness.d.ts +17 -1
  429. package/dist/esm/data/openness.d.ts.map +1 -1
  430. package/dist/esm/data/openness.js +16 -26
  431. package/dist/esm/data/openness.js.map +1 -1
  432. package/dist/esm/data/queue.d.ts +26 -0
  433. package/dist/esm/data/queue.d.ts.map +1 -1
  434. package/dist/esm/data/queue.js +50 -9
  435. package/dist/esm/data/queue.js.map +1 -1
  436. package/dist/esm/data/receipt.d.ts +19 -0
  437. package/dist/esm/data/receipt.d.ts.map +1 -1
  438. package/dist/esm/data/receipt.js +20 -4
  439. package/dist/esm/data/receipt.js.map +1 -1
  440. package/dist/esm/data/sponsors.d.ts +94 -0
  441. package/dist/esm/data/sponsors.d.ts.map +1 -0
  442. package/dist/esm/data/sponsors.js +137 -0
  443. package/dist/esm/data/sponsors.js.map +1 -0
  444. package/dist/esm/data/threads.d.ts +4 -0
  445. package/dist/esm/data/threads.d.ts.map +1 -1
  446. package/dist/esm/data/threads.js +6 -2
  447. package/dist/esm/data/threads.js.map +1 -1
  448. package/dist/esm/data/traceWords.js +8 -8
  449. package/dist/esm/data/traceWords.js.map +1 -1
  450. package/dist/esm/data/types.d.ts +6 -1
  451. package/dist/esm/data/types.d.ts.map +1 -1
  452. package/dist/esm/data/types.js.map +1 -1
  453. package/dist/esm/data/whyReceipt.d.ts.map +1 -1
  454. package/dist/esm/data/whyReceipt.js +10 -1
  455. package/dist/esm/data/whyReceipt.js.map +1 -1
  456. package/dist/esm/data/work.d.ts +5 -0
  457. package/dist/esm/data/work.d.ts.map +1 -1
  458. package/dist/esm/data/work.js +11 -5
  459. package/dist/esm/data/work.js.map +1 -1
  460. package/dist/esm/discovery.d.ts +64 -0
  461. package/dist/esm/discovery.d.ts.map +1 -0
  462. package/dist/esm/discovery.js +74 -0
  463. package/dist/esm/discovery.js.map +1 -0
  464. package/dist/esm/envRead.d.ts +1 -1
  465. package/dist/esm/envRead.d.ts.map +1 -1
  466. package/dist/esm/envRead.js +1 -1
  467. package/dist/esm/envRead.js.map +1 -1
  468. package/dist/esm/given.d.ts +14 -0
  469. package/dist/esm/given.d.ts.map +1 -1
  470. package/dist/esm/given.js +11 -1
  471. package/dist/esm/given.js.map +1 -1
  472. package/dist/esm/network.d.ts +3 -1
  473. package/dist/esm/network.d.ts.map +1 -1
  474. package/dist/esm/network.js +10 -3
  475. package/dist/esm/network.js.map +1 -1
  476. package/dist/esm/rubric/bridge.d.ts +8 -0
  477. package/dist/esm/rubric/bridge.d.ts.map +1 -1
  478. package/dist/esm/rubric/bridge.js +105 -7
  479. package/dist/esm/rubric/bridge.js.map +1 -1
  480. package/dist/esm/rubric/call.d.ts +35 -8
  481. package/dist/esm/rubric/call.d.ts.map +1 -1
  482. package/dist/esm/rubric/call.js +57 -16
  483. package/dist/esm/rubric/call.js.map +1 -1
  484. package/dist/esm/rubric/callChecks.d.ts +14 -0
  485. package/dist/esm/rubric/callChecks.d.ts.map +1 -0
  486. package/dist/esm/rubric/callChecks.js +36 -0
  487. package/dist/esm/rubric/callChecks.js.map +1 -0
  488. package/dist/esm/rubric/callLimits.d.ts +28 -0
  489. package/dist/esm/rubric/callLimits.d.ts.map +1 -0
  490. package/dist/esm/rubric/callLimits.js +33 -0
  491. package/dist/esm/rubric/callLimits.js.map +1 -0
  492. package/dist/esm/rubric/callTag.d.ts +5 -0
  493. package/dist/esm/rubric/callTag.d.ts.map +1 -0
  494. package/dist/esm/rubric/callTag.js +12 -0
  495. package/dist/esm/rubric/callTag.js.map +1 -0
  496. package/dist/esm/rubric/compose.d.ts.map +1 -1
  497. package/dist/esm/rubric/compose.js +5 -3
  498. package/dist/esm/rubric/compose.js.map +1 -1
  499. package/dist/esm/rubric/draft.d.ts +9 -1
  500. package/dist/esm/rubric/draft.d.ts.map +1 -1
  501. package/dist/esm/rubric/draft.js +24 -3
  502. package/dist/esm/rubric/draft.js.map +1 -1
  503. package/dist/esm/rubric/feeLine.d.ts +26 -0
  504. package/dist/esm/rubric/feeLine.d.ts.map +1 -0
  505. package/dist/esm/rubric/feeLine.js +42 -0
  506. package/dist/esm/rubric/feeLine.js.map +1 -0
  507. package/dist/esm/rubric/gateMet.d.ts +17 -0
  508. package/dist/esm/rubric/gateMet.d.ts.map +1 -1
  509. package/dist/esm/rubric/gateMet.js +34 -2
  510. package/dist/esm/rubric/gateMet.js.map +1 -1
  511. package/dist/esm/rubric/leg.js +4 -4
  512. package/dist/esm/rubric/leg.js.map +1 -1
  513. package/dist/esm/rubric/marketPlan.d.ts +2 -0
  514. package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
  515. package/dist/esm/rubric/marketPlan.js.map +1 -1
  516. package/dist/esm/rubric/planAsk.d.ts +23 -0
  517. package/dist/esm/rubric/planAsk.d.ts.map +1 -0
  518. package/dist/esm/rubric/planAsk.js +20 -0
  519. package/dist/esm/rubric/planAsk.js.map +1 -0
  520. package/dist/esm/rubric/report.d.ts +208 -0
  521. package/dist/esm/rubric/report.d.ts.map +1 -0
  522. package/dist/esm/rubric/report.js +398 -0
  523. package/dist/esm/rubric/report.js.map +1 -0
  524. package/dist/esm/rubric/reportLine.d.ts +31 -0
  525. package/dist/esm/rubric/reportLine.d.ts.map +1 -0
  526. package/dist/esm/rubric/reportLine.js +40 -0
  527. package/dist/esm/rubric/reportLine.js.map +1 -0
  528. package/dist/esm/rubric/reportTemplate.d.ts +30 -0
  529. package/dist/esm/rubric/reportTemplate.d.ts.map +1 -0
  530. package/dist/esm/rubric/reportTemplate.js +74 -0
  531. package/dist/esm/rubric/reportTemplate.js.map +1 -0
  532. package/dist/esm/rubric/share.d.ts +46 -0
  533. package/dist/esm/rubric/share.d.ts.map +1 -0
  534. package/dist/esm/rubric/share.js +58 -0
  535. package/dist/esm/rubric/share.js.map +1 -0
  536. package/dist/esm/rubric/terms.d.ts +89 -25
  537. package/dist/esm/rubric/terms.d.ts.map +1 -1
  538. package/dist/esm/rubric/terms.js +83 -25
  539. package/dist/esm/rubric/terms.js.map +1 -1
  540. package/dist/esm/verification/profile.d.ts +28 -0
  541. package/dist/esm/verification/profile.d.ts.map +1 -0
  542. package/dist/esm/verification/profile.js +122 -0
  543. package/dist/esm/verification/profile.js.map +1 -0
  544. package/dist/esm/verification/schema.d.ts +54 -0
  545. package/dist/esm/verification/schema.d.ts.map +1 -0
  546. package/dist/esm/verification/schema.js +46 -0
  547. package/dist/esm/verification/schema.js.map +1 -0
  548. package/package.json +22 -2
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ /**
3
+ * "A person gives the final OK" (IXO-5698): the poster lets a person review an ask's held answers at its oracle, and
4
+ * that person answers them. Every call here is the decision oracle's chain lane (`@ixo/decision-oracle` 0.2.4): a
5
+ * self-issued UCAN invocation `{ with: "ixo:eval-oracle", can: <route action> }`, five minutes, from the caller's
6
+ * AuthHub Ed25519 key on their did:ixo — the same key that signs the grant and the review attestation. A SignX
7
+ * wallet has no such key and cannot do any of it.
8
+ *
9
+ * - The grant: ONE `claims/review` delegation on `ixo:oracle/<oracle did:web>/collection/<id>`, poster → reviewer
10
+ * (self allowed), at most 30 days, filed with `POST /v1/collections/<id>/reviewers`.
11
+ * - The answer: `POST /v1/reviews/<claimId>` with `{ answers, attestation, reviewerGrant }`; the attestation is an
12
+ * EdDSA JWS over canonical JSON (`kid` the key's did:key, `issuer` the reviewer's did:ixo), bound to the decision's
13
+ * `resultDigest`. The oracle folds it through the engine and signs the verdict on chain; nobody here signs on chain.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.canonicalJson = exports.readReviewChecks = exports.checkFailed = exports.CHECK_FAILED_WORDS = exports.liveGrant = exports.reviewResource = exports.RENEW_WITHIN_SECONDS = exports.GRANT_MAX_SECONDS = exports.APPROVER_NOT_READY = exports.oracleAudience = void 0;
50
+ exports.approverReady = approverReady;
51
+ exports.grantWindow = grantWindow;
52
+ exports.oracleMint = oracleMint;
53
+ exports.buildReviewerGrant = buildReviewerGrant;
54
+ exports.plainRefusal = plainRefusal;
55
+ exports.foldWords = foldWords;
56
+ exports.allowReviewing = allowReviewing;
57
+ exports.ensureReviewing = ensureReviewing;
58
+ exports.readReviewers = readReviewers;
59
+ exports.readHeldClaim = readHeldClaim;
60
+ exports.parseChecks = parseChecks;
61
+ exports.parseReviewerNote = parseReviewerNote;
62
+ exports.readReview = readReview;
63
+ exports.reviewQuestions = reviewQuestions;
64
+ exports.signAttestation = signAttestation;
65
+ exports.sendReview = sendReview;
66
+ const encoding_1 = require("@cosmjs/encoding");
67
+ const env_ts_1 = require("./env.js");
68
+ const orgReviewBilling_ts_1 = require("./orgReviewBilling.js");
69
+ Object.defineProperty(exports, "oracleAudience", { enumerable: true, get: function () { return orgReviewBilling_ts_1.oracleAudience; } });
70
+ /** Why a named approver cannot be used yet (no Ed25519 key on their IID: never signed in with Google). */
71
+ exports.APPROVER_NOT_READY = "That person can't approve yet: they need to sign in to Openhands with Google once.";
72
+ /**
73
+ * Can this address give the final OK? A real ixo account (bech32 checksum, 20 bytes) whose IID publishes an Ed25519
74
+ * key, read the way the oracle reads it (`@ixo/ucan` `createIxoDIDResolver`): without one they could never sign a
75
+ * review, and every answer the AI passed would wait for ever.
76
+ */
77
+ async function approverReady(address, options = {}) {
78
+ try {
79
+ const decoded = (0, encoding_1.fromBech32)(address, 90);
80
+ if (decoded.prefix !== "ixo" || decoded.data.length !== 20)
81
+ throw new Error("not an account");
82
+ }
83
+ catch {
84
+ return { ok: false, why: "That isn't an Openhands address. Check it and try again." };
85
+ }
86
+ try {
87
+ const { createIxoDIDResolver } = await Promise.resolve().then(() => __importStar(require("@ixo/ucan")));
88
+ const resolved = await createIxoDIDResolver({ indexerUrl: options.indexerUrl ?? (0, env_ts_1.graphqlUrl)(), ...(options.fetch ? { fetch: options.fetch } : {}) })(`did:ixo:${address}`);
89
+ if ("ok" in resolved)
90
+ return { ok: true };
91
+ /* The resolver's own two deterministic answers (no document, no Ed25519 key); anything else is the index. */
92
+ if (!/^(DID document not found for|No valid Ed25519)/.test(resolved.error.message))
93
+ return { ok: false, why: "We couldn't check that person's account just now. Try again in a minute." };
94
+ /* The poster naming themselves holds the key already: the index has not caught up with their sign-in yet. */
95
+ return { ok: false, why: options.self ? "Your account is still being set up. Try again in a minute." : exports.APPROVER_NOT_READY };
96
+ }
97
+ catch {
98
+ return { ok: false, why: "We couldn't check that person's account just now. Try again in a minute." };
99
+ }
100
+ }
101
+ const DAY = 86_400;
102
+ /** The oracle refuses a grant whose `exp − nbf` is over 30 days. */
103
+ exports.GRANT_MAX_SECONDS = 30 * DAY;
104
+ /** The reviewer card offers Renew inside this. */
105
+ exports.RENEW_WITHIN_SECONDS = 3 * DAY;
106
+ /** `nbf` five minutes back; `exp` two days past the ask's end, never past 30 days and never under a day from now. */
107
+ function grantWindow(now, endsAt) {
108
+ const nbf = now - 300;
109
+ const wanted = endsAt ? Math.max(endsAt + 2 * DAY, now + DAY) : nbf + exports.GRANT_MAX_SECONDS;
110
+ return { nbf, exp: Math.min(wanted, nbf + exports.GRANT_MAX_SECONDS) };
111
+ }
112
+ const reviewResource = (oracleDid, collectionId) => `ixo:oracle/${oracleDid}/collection/${collectionId}`;
113
+ exports.reviewResource = reviewResource;
114
+ const signerOf = async (who) => {
115
+ const { signerFromMnemonic } = await Promise.resolve().then(() => __importStar(require("@ixo/ucan")));
116
+ return (await signerFromMnemonic(who.mnemonic, `did:ixo:${who.address}`)).signer;
117
+ };
118
+ /** The route's own action, self-issued (no proofs: the oracle refuses a chain), five minutes, a nonce. */
119
+ function oracleMint(who) {
120
+ return async (audience, can) => {
121
+ const { createInvocation, serializeInvocation } = await Promise.resolve().then(() => __importStar(require("@ixo/ucan")));
122
+ const invocation = await createInvocation({
123
+ issuer: await signerOf(who),
124
+ audience,
125
+ capability: { can, with: "ixo:eval-oracle" },
126
+ expiration: Math.floor(Date.now() / 1000) + 300,
127
+ facts: [{ nonce: crypto.randomUUID() }]
128
+ });
129
+ return serializeInvocation(invocation);
130
+ };
131
+ }
132
+ /** The poster's `claims/review` grant to `reviewer` (an ixo1 address; the poster's own is allowed), base64 CAR. */
133
+ async function buildReviewerGrant(owner, input) {
134
+ const { createDelegation, serializeDelegation } = await Promise.resolve().then(() => __importStar(require("@ixo/ucan")));
135
+ const { nbf, exp } = grantWindow(input.now ?? Math.floor(Date.now() / 1000), input.endsAt ?? null);
136
+ const delegation = await createDelegation({
137
+ issuer: await signerOf(owner),
138
+ audience: `did:ixo:${input.reviewer}`,
139
+ capabilities: [{ with: (0, exports.reviewResource)(input.oracleDid, input.collectionId), can: "claims/review" }],
140
+ notBefore: nbf,
141
+ expiration: exp,
142
+ /* Two grants with the same window would share a CID, and a revoke names one. */
143
+ facts: [{ nonce: crypto.randomUUID() }]
144
+ });
145
+ return serializeDelegation(delegation);
146
+ }
147
+ const rowOf = (raw) => {
148
+ const r = raw;
149
+ return r && typeof r.memberDid === "string" && typeof r.delegation === "string" && typeof r.expiresAt === "string" ? r : null;
150
+ };
151
+ /** A live grant for `reviewer`: filed, not revoked, not expired. */
152
+ const liveGrant = (rows, reviewer, now = Date.now()) => rows.filter((row) => row.memberDid === `did:ixo:${reviewer}` && !row.revokedAt && Date.parse(row.expiresAt) > now).sort((a, b) => Date.parse(b.expiresAt) - Date.parse(a.expiresAt))[0] ?? null;
153
+ exports.liveGrant = liveGrant;
154
+ /**
155
+ * An oracle refusal (a response's code and `details.reason`, or a `foldError`'s `CODE (reason)`) in one plain line.
156
+ * Contract: eval-oracle `reviewer-grant.ts`, `routes/v1/reviews.ts`, `workflows/review-complete.ts`.
157
+ */
158
+ function plainRefusal(code, reason = "", status = 0) {
159
+ if (reason === "evaluator")
160
+ return "Checking can't be turned on here: you can already pay out this ask directly.";
161
+ if (reason === "oracle" || reason === "oracle-owner")
162
+ return "This account can't check answers on this ask.";
163
+ if (reason === "root-not-controller" || reason === "identity")
164
+ return "Only the person who posted this ask can turn on checking.";
165
+ if (reason === "expired" || reason === "lifetime" || reason === "not-yet-valid")
166
+ return "Checking has ended. The poster can turn it on again on the ask's page.";
167
+ if (reason === "revoked")
168
+ return "Checking was turned off. The poster can turn it on again on the ask's page.";
169
+ if (reason === "absent")
170
+ return "Checking isn't turned on yet. The poster can turn it on from the ask's page.";
171
+ if (code === "ATTESTATION_ISSUER_MISMATCH")
172
+ return "This was signed by another account than the one sending it. Sign in as the person who checks this ask, then send again.";
173
+ if (code === "ATTESTATION_KEY_UNKNOWN" || reason === "signature")
174
+ return "Your account isn't ready yet. Sign in with Google once, then try again.";
175
+ if (code === "STALE_REVIEW" || code === "ATTESTATION_MISMATCH" || code === "FACTS_MISMATCH" || code === "CONTENT_MISMATCH")
176
+ return "The answer changed while you were deciding. Answer again.";
177
+ if (code === "REVIEW_INCOMPLETE")
178
+ return "Some questions were left unanswered. Answer them all and send again.";
179
+ if (code === "CONFLICT" || status === 409)
180
+ return "This answer isn't waiting for a decision any more.";
181
+ if (code === "ATTESTATION_UNRESOLVABLE" || code === "UNAVAILABLE" || status >= 500)
182
+ return "The network didn't answer. Try again in a minute.";
183
+ if (status === 404)
184
+ return "This ask isn't ready yet. Try again in a minute.";
185
+ if (status === 401 || status === 403)
186
+ return "You can't check answers on this ask with this account.";
187
+ return "That didn't work. Try again, or ask the poster.";
188
+ }
189
+ /** A `foldError` (`CODE (reason): message`) in plain words, and the code for a details line. */
190
+ function foldWords(foldError) {
191
+ const [, code = "", reason = ""] = /^([A-Z_]+)(?: \(([^)]+)\))?/.exec(foldError) ?? [];
192
+ return { why: plainRefusal(code, reason), detail: foldError };
193
+ }
194
+ const refused = (answer) => !answer ? { ok: false, why: "The verifier could not be reached. Nothing changed; try again." } : { ok: false, why: plainRefusal(answer.code, answer.reason, answer.status), detail: [answer.code || String(answer.status), answer.reason, answer.message].filter(Boolean).join(": ") };
195
+ const base = (url) => url.replace(/\/$/, "");
196
+ /** "Allow reviewing": sign the grant and file it. The poster must control the ask's entity on chain. */
197
+ async function allowReviewing(input, options = {}) {
198
+ const audience = await (0, orgReviewBilling_ts_1.oracleAudience)(input.oracleUrl, options);
199
+ if (!audience)
200
+ return { ok: false, why: "The verifier could not be reached. Nothing was signed." };
201
+ const delegation = await buildReviewerGrant(input.owner, { oracleDid: audience, collectionId: input.collectionId, reviewer: input.reviewer, endsAt: input.endsAt ?? null });
202
+ const answer = await (0, orgReviewBilling_ts_1.sourceCall)(base(input.oracleUrl), audience, oracleMint(input.owner), { method: "POST", path: `/v1/collections/${encodeURIComponent(input.collectionId)}/reviewers`, can: "collections/reviewers-grant", sourceId: null, body: { delegation } }, options);
203
+ const row = answer?.status === 201 || answer?.status === 200 ? rowOf(answer.body) : null;
204
+ return row ? { ok: true, value: row } : refused(answer);
205
+ }
206
+ /**
207
+ * Checking kept on, silently: the poster's grant to `reviewer` is signed only when none is live, or when it ends within
208
+ * three days and a fresh one would add at least a day (never past the ask's end + 2 days, never over 30 days).
209
+ * `signed` says whether a grant was filed now.
210
+ */
211
+ async function ensureReviewing(input, options = {}) {
212
+ const now = input.now ?? Date.now();
213
+ const rows = await readReviewers(input.oracleUrl, input.owner, input.collectionId, options);
214
+ const live = rows ? (0, exports.liveGrant)(rows, input.reviewer, now) : null;
215
+ if (live) {
216
+ const until = Date.parse(live.expiresAt);
217
+ const latest = grantWindow(Math.floor(now / 1000), input.endsAt ?? null).exp * 1000;
218
+ if (until - now >= exports.RENEW_WITHIN_SECONDS * 1000 || latest - until <= 86_400_000)
219
+ return { ok: true, value: { expiresAt: live.expiresAt, signed: false } };
220
+ }
221
+ const done = await allowReviewing({ owner: input.owner, oracleUrl: input.oracleUrl, collectionId: input.collectionId, reviewer: input.reviewer, endsAt: input.endsAt ?? null }, options);
222
+ return done.ok ? { ok: true, value: { expiresAt: done.value.expiresAt, signed: true } } : done;
223
+ }
224
+ /** The grants this signer may see on the ask: every one for its controller, only their own for a reviewer. Null when unread. */
225
+ async function readReviewers(oracleUrl, who, collectionId, options = {}) {
226
+ const audience = await (0, orgReviewBilling_ts_1.oracleAudience)(oracleUrl, options);
227
+ if (!audience)
228
+ return null;
229
+ const answer = await (0, orgReviewBilling_ts_1.sourceCall)(base(oracleUrl), audience, oracleMint(who), { path: `/v1/collections/${encodeURIComponent(collectionId)}/reviewers`, can: "collections/reviewers-read", sourceId: null }, options);
230
+ const rows = answer?.status === 200 ? answer.body?.reviewers : null;
231
+ return Array.isArray(rows) ? rows.map(rowOf).filter((row) => row !== null) : null;
232
+ }
233
+ /** The check could not run (`ingest.status` "failed"): said plainly to anyone, the oracle's own error only to the people who run the ask. */
234
+ exports.CHECK_FAILED_WORDS = "The verifier couldn't check this report yet (its setup has a problem); IXO has been told. Nothing is lost; it will be checked once that's fixed.";
235
+ /** True when the oracle took the claim in but its check failed to run (not a verdict: no decision was made). */
236
+ const checkFailed = (held) => held?.ingest?.status === "failed";
237
+ exports.checkFailed = checkFailed;
238
+ const strOr = (value) => (typeof value === "string" ? value : null);
239
+ /** `GET /v1/claims/:claimId` as this signer (owner, live reviewer or the claim's own submitter). Null: not seen or not readable. */
240
+ async function readHeldClaim(oracleUrl, who, claimId, options = {}) {
241
+ const audience = await (0, orgReviewBilling_ts_1.oracleAudience)(oracleUrl, options);
242
+ if (!audience)
243
+ return null;
244
+ const answer = await (0, orgReviewBilling_ts_1.sourceCall)(base(oracleUrl), audience, oracleMint(who), { path: `/v1/claims/${encodeURIComponent(claimId)}`, can: "claims/read", sourceId: null }, options);
245
+ if (answer?.status !== 200)
246
+ return null;
247
+ const body = answer.body;
248
+ const d = body?.decision ?? null;
249
+ const engine = (d?.decision ?? {});
250
+ const r = body?.review ?? null;
251
+ return {
252
+ decision: d
253
+ ? {
254
+ status: strOr(d.status),
255
+ verdict: strOr(d.verdict),
256
+ resultDigest: strOr(d.resultDigest),
257
+ explanation: strOr(d.explanation),
258
+ gates: Array.isArray(engine.gates) ? engine.gates : [],
259
+ reasons: Array.isArray(engine.reasons) ? engine.reasons : [],
260
+ pendingTasks: Array.isArray(engine.pendingTasks) ? engine.pendingTasks.filter((one) => typeof one === "string") : []
261
+ }
262
+ : null,
263
+ review: r
264
+ ? {
265
+ answers: r.answers ?? null,
266
+ reviewerDid: strOr(r.reviewerDid),
267
+ answeredAt: strOr(r.answeredAt),
268
+ foldedAt: strOr(r.foldedAt),
269
+ foldError: strOr(r.foldError)
270
+ }
271
+ : null,
272
+ checks: parseChecks(body?.checks),
273
+ reviewerNote: parseReviewerNote(body?.reviewerNote),
274
+ ingest: body?.ingest ? { status: strOr(body.ingest.status), error: strOr(body.ingest.error) && capped(strOr(body.ingest.error), REASON_MAX) } : null
275
+ };
276
+ }
277
+ const REASON_MAX = 600;
278
+ /** `checks` as the oracle sent it, defensively: anything not a list (an older oracle) is null; a malformed entry is dropped. */
279
+ function parseChecks(raw) {
280
+ if (!Array.isArray(raw))
281
+ return null;
282
+ return raw.flatMap((one) => {
283
+ const c = one;
284
+ if (!c || typeof c.name !== "string" || (c.status !== "ok" && c.status !== "error"))
285
+ return [];
286
+ const said = typeof c.reason === "string" ? c.reason.trim() : "";
287
+ return [{ name: c.name, status: c.status, value: c.value ?? null, reason: said ? (said.length > REASON_MAX ? `${said.slice(0, REASON_MAX).trimEnd()}…` : said) : null }];
288
+ });
289
+ }
290
+ const SAYS_MAX = 500;
291
+ const CHECK_MAX = 200;
292
+ const CHECKS_MAX = 6;
293
+ const capped = (text, max) => (text.length > max ? `${text.slice(0, max).trimEnd()}…` : text);
294
+ /** `reviewerNote` defensively: absent, not an object, no words or no list is null; blank items are dropped, everything capped. */
295
+ function parseReviewerNote(raw) {
296
+ const n = raw;
297
+ if (!n || typeof n !== "object" || typeof n.says !== "string" || !n.says.trim() || !Array.isArray(n.checkThese))
298
+ return null;
299
+ const checkThese = n.checkThese
300
+ .filter((one) => typeof one === "string" && one.trim() !== "")
301
+ .slice(0, CHECKS_MAX)
302
+ .map((one) => capped(one.trim(), CHECK_MAX));
303
+ return { says: capped(n.says.trim(), SAYS_MAX), checkThese, model: strOr(n.model) ?? "", createdAt: strOr(n.createdAt) ?? "" };
304
+ }
305
+ /** `GET /v1/reviews/:claimId` as the reviewer (`reviews/read`, the read Send decision makes): its checks and note. Null: unread. */
306
+ async function readReview(oracleUrl, who, claimId, options = {}) {
307
+ const audience = await (0, orgReviewBilling_ts_1.oracleAudience)(oracleUrl, options);
308
+ if (!audience)
309
+ return null;
310
+ const answer = await (0, orgReviewBilling_ts_1.sourceCall)(base(oracleUrl), audience, oracleMint(who), { path: `/v1/reviews/${encodeURIComponent(claimId)}`, can: "reviews/read", sourceId: null }, options);
311
+ if (answer?.status !== 200)
312
+ return null;
313
+ const body = answer.body;
314
+ return { checks: parseChecks(body?.checks), reviewerNote: parseReviewerNote(body?.reviewerNote) };
315
+ }
316
+ /** The decision's checks alone, from `readReview`. Null: none, unread or an older oracle. */
317
+ const readReviewChecks = async (oracleUrl, who, claimId, options = {}) => (await readReview(oracleUrl, who, claimId, options))?.checks ?? null;
318
+ exports.readReviewChecks = readReviewChecks;
319
+ /** The prompts for `ids`, from `GET <engine>/v1/rubrics/manifest?protocol=` (public). No detail: the id, Yes/No. */
320
+ async function reviewQuestions(engineUrl, protocolDid, ids, options = {}) {
321
+ const details = await (options.fetch ?? fetch)(`${base(engineUrl)}/v1/rubrics/manifest?protocol=${encodeURIComponent(protocolDid)}`, { signal: AbortSignal.timeout(10_000) })
322
+ .then((response) => (response.ok ? response.json() : null))
323
+ .then((manifest) => manifest?.review?.taskDetails ?? [])
324
+ .catch(() => []);
325
+ return ids.map((id) => {
326
+ const found = details.find((one) => one.id === id);
327
+ const options = found?.answer?.type === "enum" && Array.isArray(found.answer.options) ? found.answer.options.filter((one) => typeof one === "string") : null;
328
+ /* The engine refuses a boolean for its own synthetic tasks (`unique:…`, `checks:held`): approve or reject. */
329
+ const synthetic = id.startsWith("unique:") || id === "checks:held";
330
+ return { id, prompt: typeof found?.prompt === "string" ? found.prompt : id, answer: options?.length ? { type: "enum", options } : synthetic ? { type: "enum", options: ["approve", "reject"] } : { type: "boolean" } };
331
+ });
332
+ }
333
+ const sortKeys = (value) => Array.isArray(value) ? value.map(sortKeys) : value !== null && typeof value === "object" ? Object.fromEntries(Object.keys(value).sort().map((key) => [key, sortKeys(value[key])])) : value;
334
+ /** The oracle refuses any serialisation but this one: sorted keys, no spaces. */
335
+ const canonicalJson = (value) => JSON.stringify(sortKeys(value));
336
+ exports.canonicalJson = canonicalJson;
337
+ const b64url = (bytes) => btoa(String.fromCharCode(...bytes)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
338
+ const utf8 = (text) => new TextEncoder().encode(text);
339
+ /** The `ClaimReviewAttestation` (compact EdDSA JWS) the oracle and the engine both verify against the reviewer's did:ixo. */
340
+ async function signAttestation(reviewer, input) {
341
+ const signer = await signerOf(reviewer);
342
+ const header = { alg: "EdDSA", typ: "vc+jwt", cty: "vc", kid: signer.toDIDKey() };
343
+ const payload = {
344
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://w3id.org/ixo/credentials/review-attestation/v1"],
345
+ id: `urn:uuid:${crypto.randomUUID()}`,
346
+ type: ["VerifiableCredential", "ClaimReviewAttestation"],
347
+ issuer: `did:ixo:${reviewer.address}`,
348
+ validFrom: (input.now ?? new Date()).toISOString(),
349
+ credentialSubject: { id: `urn:ixo:claim:${input.claimId}`, claimId: input.claimId, oracleDid: input.oracleDid, answeredAgainst: input.answeredAgainst, answers: input.answers }
350
+ };
351
+ const signing = `${b64url(utf8((0, exports.canonicalJson)(header)))}.${b64url(utf8((0, exports.canonicalJson)(payload)))}`;
352
+ const signature = await signer.sign(utf8(signing));
353
+ return `${signing}.${b64url(signature.raw)}`;
354
+ }
355
+ /**
356
+ * "Send decision": the answers for every pending task, against the decision as it stands now (its `resultDigest`),
357
+ * with the reviewer's live grant. A re-send before the fold replaces the answers; the oracle folds and signs.
358
+ */
359
+ async function sendReview(input, options = {}) {
360
+ const audience = await (0, orgReviewBilling_ts_1.oracleAudience)(input.oracleUrl, options);
361
+ if (!audience)
362
+ return { ok: false, why: "The verifier could not be reached. Nothing was sent." };
363
+ const url = base(input.oracleUrl);
364
+ const mint = oracleMint(input.reviewer);
365
+ const [view, rows] = await Promise.all([
366
+ (0, orgReviewBilling_ts_1.sourceCall)(url, audience, mint, { path: `/v1/reviews/${encodeURIComponent(input.claimId)}`, can: "reviews/read", sourceId: null }, options),
367
+ readReviewers(url, input.reviewer, input.collectionId, options)
368
+ ]);
369
+ const resultDigest = view?.status === 200 ? strOr(view.body?.resultDigest) : null;
370
+ if (!resultDigest)
371
+ return view && view.status !== 200 ? refused(view) : { ok: false, why: "This answer isn't waiting for a decision any more." };
372
+ const grant = (0, exports.liveGrant)(rows ?? [], input.reviewer.address);
373
+ if (!grant)
374
+ return { ok: false, why: "Checking isn't on for this ask, or it ran out. The poster can turn it on from the ask's page." };
375
+ const attestation = await signAttestation(input.reviewer, { claimId: input.claimId, oracleDid: audience, answeredAgainst: resultDigest, answers: input.answers });
376
+ const answer = await (0, orgReviewBilling_ts_1.sourceCall)(url, audience, mint, { method: "POST", path: `/v1/reviews/${encodeURIComponent(input.claimId)}`, can: "reviews/submit", sourceId: null, body: { answers: input.answers, attestation, reviewerGrant: grant.delegation } }, options);
377
+ return answer?.status === 202 ? { ok: true, value: { status: 202 } } : refused(answer);
378
+ }
379
+ //# sourceMappingURL=personReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personReview.js","sourceRoot":"","sources":["../../../src/chain/personReview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * What one post costs in network fees, and the floor under which a connection's fee allowance needs a Top up.
3
+ *
4
+ * Measured on devnet 2026-10-21 (agent ixo1cdh8…r07, simulate x1.8 at 0.025 uixo, as `senderFor` prices it):
5
+ * a post is two MsgExec transactions, "ask: …" ~722k gas = 18,068 uixo and "open the ask and escrow the money"
6
+ * ~1.1M gas = 27,669 uixo, so ~46k uixo (0.046 IXO) in all. The floor is two posts' worth: one post plus a margin
7
+ * for a heavier ask. Kept in its own module so the /connect page can import it without the chain client.
8
+ */
9
+ export declare const POST_FEE_UIXO = 50000;
10
+ export declare const POST_FEE_FLOOR_UIXO: number;
11
+ //# sourceMappingURL=postFee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postFee.d.ts","sourceRoot":"","sources":["../../../src/chain/postFee.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAS,CAAC;AACpC,eAAO,MAAM,mBAAmB,QAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST_FEE_FLOOR_UIXO = exports.POST_FEE_UIXO = void 0;
4
+ /**
5
+ * What one post costs in network fees, and the floor under which a connection's fee allowance needs a Top up.
6
+ *
7
+ * Measured on devnet 2026-10-21 (agent ixo1cdh8…r07, simulate x1.8 at 0.025 uixo, as `senderFor` prices it):
8
+ * a post is two MsgExec transactions, "ask: …" ~722k gas = 18,068 uixo and "open the ask and escrow the money"
9
+ * ~1.1M gas = 27,669 uixo, so ~46k uixo (0.046 IXO) in all. The floor is two posts' worth: one post plus a margin
10
+ * for a heavier ask. Kept in its own module so the /connect page can import it without the chain client.
11
+ */
12
+ exports.POST_FEE_UIXO = 50_000;
13
+ exports.POST_FEE_FLOOR_UIXO = 2 * exports.POST_FEE_UIXO;
14
+ //# sourceMappingURL=postFee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postFee.js","sourceRoot":"","sources":["../../../src/chain/postFee.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACU,QAAA,aAAa,GAAG,MAAM,CAAC;AACvB,QAAA,mBAAmB,GAAG,CAAC,GAAG,qBAAa,CAAC"}
@@ -1,6 +1,32 @@
1
1
  import { createQueryClient } from "@ixo/impactxclient-sdk";
2
+ import type { FeeSplit } from "../rubric/share.ts";
2
3
  type QueryClient = Awaited<ReturnType<typeof createQueryClient>>;
3
4
  export declare function getQueryClient(): Promise<QueryClient>;
5
+ /** The chain's split of a shared approval, and where the network's half goes when the chain itself was read. */
6
+ export interface ChainFeeSplit extends FeeSplit {
7
+ /** `params.ixoAccount`: the network's half. Absent when the split was handed over (`configure({ feeSplit })`). */
8
+ ixoAccount?: string;
9
+ }
10
+ /** A LegacyDec percentage — 18 decimals, as the chain's params carry it — to a millionth of a percent. */
11
+ export declare function legacyPercent(raw: string | null | undefined): number;
12
+ /**
13
+ * The network's share as the chain splits it today (x/claims params): the
14
+ * percentage to the network and to the relayer node of every approval leg
15
+ * marked `isOraclePayment`. Read live and never written down, because it is
16
+ * the chain's and differs per network (10/10 on devnet and mainnet, 0/0 on
17
+ * testnet on 2026-10-25). The chain answers first: a split handed over with
18
+ * `configure({ feeSplit })` — the MCP adopts the site's `/api/config` — is
19
+ * only the fallback when the chain cannot be read, so a stale or pinned 0/0
20
+ * never prices a leg the chain will split at 10/10. Kept for ten minutes per
21
+ * process; a failed read is not kept, and throws when nothing was handed over.
22
+ */
23
+ export declare function feeSplit(): Promise<ChainFeeSplit>;
24
+ /**
25
+ * The same, or null when the chain could not be read in `timeoutMs` (the handed-over split, when there is one): for
26
+ * words that can say "could not be read" rather than fail, and for `/api/config`, which a slow node must not hold
27
+ * up. A first read connects to the node, which takes a few seconds.
28
+ */
29
+ export declare const feeSplitOrNull: (timeoutMs?: number) => Promise<ChainFeeSplit | null>;
4
30
  export declare function getUixoBalance(address: string): Promise<number>;
5
31
  /**
6
32
  * Whether an allowance has run out of time.
@@ -28,6 +54,15 @@ export declare function canPay(allowance: {
28
54
  typeUrl?: string;
29
55
  value: Uint8Array;
30
56
  } | undefined, forMessages?: string[]): boolean;
57
+ /**
58
+ * Whether an allowance still holds `needUixo` for a fee. A BasicAllowance with no spend limit is unlimited.
59
+ * Without this the first live allowance was picked however empty it was, and the chain then refused the
60
+ * fee ("fee limit exceeded") although the key held IXO of its own to pay with.
61
+ */
62
+ export declare function affords(allowance: {
63
+ typeUrl?: string;
64
+ value: Uint8Array;
65
+ } | undefined, needUixo?: number): boolean;
31
66
  /**
32
67
  * The first live granter that can pay for these messages, out of what a
33
68
  * key holds. Pure, so the choice is testable without a chain.
@@ -46,9 +81,27 @@ export declare function pickGranter(allowances: {
46
81
  typeUrl?: string;
47
82
  value: Uint8Array;
48
83
  };
49
- }[], forMessages?: string[], now?: number): string | undefined;
84
+ }[], forMessages?: string[], now?: number, needUixo?: number): string | undefined;
50
85
  /** First live feegrant granter for this address that can pay for `forMessages` (any, when omitted). */
51
- export declare function getFeegrantGranter(address: string, forMessages?: string[]): Promise<string | undefined>;
86
+ export declare function getFeegrantGranter(address: string, forMessages?: string[], needUixo?: number): Promise<string | undefined>;
87
+ /** A send refused before signing: its sponsors can't pay the fee and the key can't either. Worded so `feeAllowanceSpent` reads it. */
88
+ export declare class FeeAllowanceShort extends Error {
89
+ }
90
+ /**
91
+ * Who pays a send's fee, pure: the first sponsor that covers these messages and still holds `needUixo`; else the key
92
+ * itself (undefined). A sponsor that covers the messages but is spent below the fee is skipped, never set as granter
93
+ * ("basic allowance: fee limit exceeded"); when the key can't pay either, it throws `FeeAllowanceShort`. A key nobody
94
+ * sponsors pays, or fails, as before.
95
+ */
96
+ export declare function pickFeePayer(allowances: {
97
+ granter?: string;
98
+ allowance?: {
99
+ typeUrl?: string;
100
+ value: Uint8Array;
101
+ };
102
+ }[], forMessages: string[], needUixo: number, keyUixo: number, now?: number): string | undefined;
103
+ /** `pickFeePayer` read off the chain. A failed read is "no sponsor", as `getFeegrantGranter` has it. */
104
+ export declare function feePayerFor(address: string, forMessages: string[], needUixo: number): Promise<string | undefined>;
52
105
  /** Testnet/devnet only: ask the faucet to fund an address, then wait for it to land. */
53
106
  export declare function ensureGas(address: string): Promise<void>;
54
107
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/chain/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAInE,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAIjE,wBAAgB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAGrD;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,OAAO,CAiBjH;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAStH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,EAAE,EACvF,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,GAAG,SAAa,GACf,MAAM,GAAG,SAAS,CAOpB;AAED,uGAAuG;AACvG,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7G;AAED,wFAAwF;AACxF,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,CAAC,CAYjI;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAerG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAahK;AAED,wFAAwF;AACxF,wBAAsB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAExG"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/chain/query.ts"],"names":[],"mappings":"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"}