@ixo/openhands-sdk 0.3.0 → 0.4.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 (487) hide show
  1. package/dist/cjs/campaign/campaign.js +3 -2
  2. package/dist/cjs/campaign/campaign.js.map +1 -1
  3. package/dist/cjs/campaign/funding.d.ts.map +1 -1
  4. package/dist/cjs/campaign/funding.js +4 -1
  5. package/dist/cjs/campaign/funding.js.map +1 -1
  6. package/dist/cjs/campaign/pool.d.ts.map +1 -1
  7. package/dist/cjs/campaign/pool.js +4 -3
  8. package/dist/cjs/campaign/pool.js.map +1 -1
  9. package/dist/cjs/campaign/record.d.ts.map +1 -1
  10. package/dist/cjs/campaign/record.js +1 -1
  11. package/dist/cjs/campaign/record.js.map +1 -1
  12. package/dist/cjs/campaign/spots.d.ts.map +1 -1
  13. package/dist/cjs/campaign/spots.js +10 -8
  14. package/dist/cjs/campaign/spots.js.map +1 -1
  15. package/dist/cjs/campaign/treasurySends.d.ts.map +1 -1
  16. package/dist/cjs/campaign/treasurySends.js +3 -3
  17. package/dist/cjs/campaign/treasurySends.js.map +1 -1
  18. package/dist/cjs/chain/ask.d.ts +104 -14
  19. package/dist/cjs/chain/ask.d.ts.map +1 -1
  20. package/dist/cjs/chain/ask.js +151 -78
  21. package/dist/cjs/chain/ask.js.map +1 -1
  22. package/dist/cjs/chain/askImage.d.ts +19 -0
  23. package/dist/cjs/chain/askImage.d.ts.map +1 -0
  24. package/dist/cjs/chain/askImage.js +56 -0
  25. package/dist/cjs/chain/askImage.js.map +1 -0
  26. package/dist/cjs/chain/bridge.d.ts +7 -33
  27. package/dist/cjs/chain/bridge.d.ts.map +1 -1
  28. package/dist/cjs/chain/bridge.js +10 -25
  29. package/dist/cjs/chain/bridge.js.map +1 -1
  30. package/dist/cjs/chain/claimSubmit.d.ts +15 -0
  31. package/dist/cjs/chain/claimSubmit.d.ts.map +1 -0
  32. package/dist/cjs/chain/claimSubmit.js +14 -0
  33. package/dist/cjs/chain/claimSubmit.js.map +1 -0
  34. package/dist/cjs/chain/delegate.d.ts +52 -7
  35. package/dist/cjs/chain/delegate.d.ts.map +1 -1
  36. package/dist/cjs/chain/delegate.js +66 -14
  37. package/dist/cjs/chain/delegate.js.map +1 -1
  38. package/dist/cjs/chain/domainIndexer.d.ts +26 -0
  39. package/dist/cjs/chain/domainIndexer.d.ts.map +1 -0
  40. package/dist/cjs/chain/domainIndexer.js +51 -0
  41. package/dist/cjs/chain/domainIndexer.js.map +1 -0
  42. package/dist/cjs/chain/entityShape.d.ts +31 -2
  43. package/dist/cjs/chain/entityShape.d.ts.map +1 -1
  44. package/dist/cjs/chain/entityShape.js +71 -8
  45. package/dist/cjs/chain/entityShape.js.map +1 -1
  46. package/dist/cjs/chain/env.d.ts +33 -3
  47. package/dist/cjs/chain/env.d.ts.map +1 -1
  48. package/dist/cjs/chain/env.js +38 -6
  49. package/dist/cjs/chain/env.js.map +1 -1
  50. package/dist/cjs/chain/guest.d.ts +14 -0
  51. package/dist/cjs/chain/guest.d.ts.map +1 -1
  52. package/dist/cjs/chain/guest.js +9 -9
  53. package/dist/cjs/chain/guest.js.map +1 -1
  54. package/dist/cjs/chain/money.d.ts +53 -2
  55. package/dist/cjs/chain/money.d.ts.map +1 -1
  56. package/dist/cjs/chain/money.js +73 -6
  57. package/dist/cjs/chain/money.js.map +1 -1
  58. package/dist/cjs/chain/orgReviewBilling.d.ts +124 -0
  59. package/dist/cjs/chain/orgReviewBilling.d.ts.map +1 -0
  60. package/dist/cjs/chain/orgReviewBilling.js +290 -0
  61. package/dist/cjs/chain/orgReviewBilling.js.map +1 -0
  62. package/dist/cjs/chain/orgReviewBillingSign.d.ts +63 -0
  63. package/dist/cjs/chain/orgReviewBillingSign.d.ts.map +1 -0
  64. package/dist/cjs/chain/orgReviewBillingSign.js +166 -0
  65. package/dist/cjs/chain/orgReviewBillingSign.js.map +1 -0
  66. package/dist/cjs/chain/payoutSettings.d.ts +97 -0
  67. package/dist/cjs/chain/payoutSettings.d.ts.map +1 -0
  68. package/dist/cjs/chain/payoutSettings.js +123 -0
  69. package/dist/cjs/chain/payoutSettings.js.map +1 -0
  70. package/dist/cjs/chain/payoutTerms.d.ts +72 -0
  71. package/dist/cjs/chain/payoutTerms.d.ts.map +1 -0
  72. package/dist/cjs/chain/payoutTerms.js +141 -0
  73. package/dist/cjs/chain/payoutTerms.js.map +1 -0
  74. package/dist/cjs/chain/query.d.ts +14 -0
  75. package/dist/cjs/chain/query.d.ts.map +1 -1
  76. package/dist/cjs/chain/query.js +27 -0
  77. package/dist/cjs/chain/query.js.map +1 -1
  78. package/dist/cjs/chain/reviewBilling.d.ts +86 -0
  79. package/dist/cjs/chain/reviewBilling.d.ts.map +1 -0
  80. package/dist/cjs/chain/reviewBilling.js +265 -0
  81. package/dist/cjs/chain/reviewBilling.js.map +1 -0
  82. package/dist/cjs/chain/store.d.ts +7 -6
  83. package/dist/cjs/chain/store.d.ts.map +1 -1
  84. package/dist/cjs/chain/store.js +7 -6
  85. package/dist/cjs/chain/store.js.map +1 -1
  86. package/dist/cjs/chain/subscription.d.ts +0 -7
  87. package/dist/cjs/chain/subscription.d.ts.map +1 -1
  88. package/dist/cjs/chain/subscription.js +4 -47
  89. package/dist/cjs/chain/subscription.js.map +1 -1
  90. package/dist/cjs/chain/takeBack.d.ts +12 -0
  91. package/dist/cjs/chain/takeBack.d.ts.map +1 -1
  92. package/dist/cjs/chain/takeBack.js +24 -10
  93. package/dist/cjs/chain/takeBack.js.map +1 -1
  94. package/dist/cjs/chain/why.d.ts +44 -0
  95. package/dist/cjs/chain/why.d.ts.map +1 -0
  96. package/dist/cjs/chain/why.js +153 -0
  97. package/dist/cjs/chain/why.js.map +1 -0
  98. package/dist/cjs/chain/whyMint.d.ts +8 -0
  99. package/dist/cjs/chain/whyMint.d.ts.map +1 -0
  100. package/dist/cjs/chain/whyMint.js +53 -0
  101. package/dist/cjs/chain/whyMint.js.map +1 -0
  102. package/dist/cjs/chain.d.ts +8 -4
  103. package/dist/cjs/chain.d.ts.map +1 -1
  104. package/dist/cjs/chain.js +21 -9
  105. package/dist/cjs/chain.js.map +1 -1
  106. package/dist/cjs/config.d.ts +11 -5
  107. package/dist/cjs/config.d.ts.map +1 -1
  108. package/dist/cjs/config.js +2 -0
  109. package/dist/cjs/config.js.map +1 -1
  110. package/dist/cjs/data/askEntity.d.ts +40 -0
  111. package/dist/cjs/data/askEntity.d.ts.map +1 -0
  112. package/dist/cjs/data/askEntity.js +48 -0
  113. package/dist/cjs/data/askEntity.js.map +1 -0
  114. package/dist/cjs/data/askLinks.d.ts +6 -0
  115. package/dist/cjs/data/askLinks.d.ts.map +1 -0
  116. package/dist/cjs/data/askLinks.js +21 -0
  117. package/dist/cjs/data/askLinks.js.map +1 -0
  118. package/dist/cjs/data/board/assemble.d.ts.map +1 -1
  119. package/dist/cjs/data/board/assemble.js +15 -2
  120. package/dist/cjs/data/board/assemble.js.map +1 -1
  121. package/dist/cjs/data/board/facts.d.ts +11 -0
  122. package/dist/cjs/data/board/facts.d.ts.map +1 -1
  123. package/dist/cjs/data/board/facts.js +16 -0
  124. package/dist/cjs/data/board/facts.js.map +1 -1
  125. package/dist/cjs/data/board/read.d.ts.map +1 -1
  126. package/dist/cjs/data/board/read.js +2 -1
  127. package/dist/cjs/data/board/read.js.map +1 -1
  128. package/dist/cjs/data/board/types.d.ts +9 -0
  129. package/dist/cjs/data/board/types.d.ts.map +1 -1
  130. package/dist/cjs/data/board/types.js.map +1 -1
  131. package/dist/cjs/data/docs.d.ts +10 -2
  132. package/dist/cjs/data/docs.d.ts.map +1 -1
  133. package/dist/cjs/data/docs.js +43 -3
  134. package/dist/cjs/data/docs.js.map +1 -1
  135. package/dist/cjs/data/format.js +1 -1
  136. package/dist/cjs/data/format.js.map +1 -1
  137. package/dist/cjs/data/install.d.ts +43 -2
  138. package/dist/cjs/data/install.d.ts.map +1 -1
  139. package/dist/cjs/data/install.js +60 -10
  140. package/dist/cjs/data/install.js.map +1 -1
  141. package/dist/cjs/data/oracleInfo.d.ts +6 -1
  142. package/dist/cjs/data/oracleInfo.d.ts.map +1 -1
  143. package/dist/cjs/data/oracleInfo.js +22 -3
  144. package/dist/cjs/data/oracleInfo.js.map +1 -1
  145. package/dist/cjs/data/oracles.d.ts +62 -5
  146. package/dist/cjs/data/oracles.d.ts.map +1 -1
  147. package/dist/cjs/data/oracles.js +90 -11
  148. package/dist/cjs/data/oracles.js.map +1 -1
  149. package/dist/cjs/data/orgPayouts.d.ts +87 -0
  150. package/dist/cjs/data/orgPayouts.d.ts.map +1 -0
  151. package/dist/cjs/data/orgPayouts.js +183 -0
  152. package/dist/cjs/data/orgPayouts.js.map +1 -0
  153. package/dist/cjs/data/plans.d.ts +8 -0
  154. package/dist/cjs/data/plans.d.ts.map +1 -0
  155. package/dist/cjs/data/plans.js +12 -0
  156. package/dist/cjs/data/plans.js.map +1 -0
  157. package/dist/cjs/data/profiles.d.ts +20 -0
  158. package/dist/cjs/data/profiles.d.ts.map +1 -1
  159. package/dist/cjs/data/profiles.js +63 -4
  160. package/dist/cjs/data/profiles.js.map +1 -1
  161. package/dist/cjs/data/receipt.d.ts +7 -0
  162. package/dist/cjs/data/receipt.d.ts.map +1 -1
  163. package/dist/cjs/data/receipt.js +19 -4
  164. package/dist/cjs/data/receipt.js.map +1 -1
  165. package/dist/cjs/data/resources.d.ts +3 -0
  166. package/dist/cjs/data/resources.d.ts.map +1 -1
  167. package/dist/cjs/data/resources.js +4 -1
  168. package/dist/cjs/data/resources.js.map +1 -1
  169. package/dist/cjs/data/threads.d.ts +14 -0
  170. package/dist/cjs/data/threads.d.ts.map +1 -1
  171. package/dist/cjs/data/threads.js +32 -20
  172. package/dist/cjs/data/threads.js.map +1 -1
  173. package/dist/cjs/data/trace.d.ts +8 -0
  174. package/dist/cjs/data/trace.d.ts.map +1 -1
  175. package/dist/cjs/data/trace.js +1 -1
  176. package/dist/cjs/data/trace.js.map +1 -1
  177. package/dist/cjs/data/traceWords.d.ts +4 -1
  178. package/dist/cjs/data/traceWords.d.ts.map +1 -1
  179. package/dist/cjs/data/traceWords.js +8 -2
  180. package/dist/cjs/data/traceWords.js.map +1 -1
  181. package/dist/cjs/data/why.d.ts +38 -0
  182. package/dist/cjs/data/why.d.ts.map +1 -0
  183. package/dist/cjs/data/why.js +86 -0
  184. package/dist/cjs/data/why.js.map +1 -0
  185. package/dist/cjs/data/whyReceipt.d.ts +33 -0
  186. package/dist/cjs/data/whyReceipt.d.ts.map +1 -0
  187. package/dist/cjs/data/whyReceipt.js +291 -0
  188. package/dist/cjs/data/whyReceipt.js.map +1 -0
  189. package/dist/cjs/geo/exifcarry.d.ts +9 -0
  190. package/dist/cjs/geo/exifcarry.d.ts.map +1 -1
  191. package/dist/cjs/geo/exifcarry.js +35 -0
  192. package/dist/cjs/geo/exifcarry.js.map +1 -1
  193. package/dist/cjs/geo/geohash.d.ts +11 -0
  194. package/dist/cjs/geo/geohash.d.ts.map +1 -1
  195. package/dist/cjs/geo/geohash.js +53 -3
  196. package/dist/cjs/geo/geohash.js.map +1 -1
  197. package/dist/cjs/geo/provenance.d.ts +41 -0
  198. package/dist/cjs/geo/provenance.d.ts.map +1 -0
  199. package/dist/cjs/geo/provenance.js +134 -0
  200. package/dist/cjs/geo/provenance.js.map +1 -0
  201. package/dist/cjs/rubric/bridge.d.ts +98 -2
  202. package/dist/cjs/rubric/bridge.d.ts.map +1 -1
  203. package/dist/cjs/rubric/bridge.js +132 -15
  204. package/dist/cjs/rubric/bridge.js.map +1 -1
  205. package/dist/cjs/rubric/card.d.ts +28 -14
  206. package/dist/cjs/rubric/card.d.ts.map +1 -1
  207. package/dist/cjs/rubric/card.js +28 -7
  208. package/dist/cjs/rubric/card.js.map +1 -1
  209. package/dist/cjs/rubric/claimForm.d.ts +116 -0
  210. package/dist/cjs/rubric/claimForm.d.ts.map +1 -1
  211. package/dist/cjs/rubric/claimForm.js +12 -1
  212. package/dist/cjs/rubric/claimForm.js.map +1 -1
  213. package/dist/cjs/rubric/compose.d.ts +5 -0
  214. package/dist/cjs/rubric/compose.d.ts.map +1 -1
  215. package/dist/cjs/rubric/compose.js +9 -3
  216. package/dist/cjs/rubric/compose.js.map +1 -1
  217. package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
  218. package/dist/cjs/rubric/gateMet.js +4 -2
  219. package/dist/cjs/rubric/gateMet.js.map +1 -1
  220. package/dist/cjs/rubric/leg.d.ts +2 -2
  221. package/dist/cjs/rubric/leg.d.ts.map +1 -1
  222. package/dist/cjs/rubric/leg.js +7 -5
  223. package/dist/cjs/rubric/leg.js.map +1 -1
  224. package/dist/cjs/rubric/marketPlan.d.ts +41 -3
  225. package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
  226. package/dist/cjs/rubric/marketPlan.js +110 -10
  227. package/dist/cjs/rubric/marketPlan.js.map +1 -1
  228. package/dist/cjs/rubric/observation.d.ts +56 -14
  229. package/dist/cjs/rubric/observation.d.ts.map +1 -1
  230. package/dist/cjs/rubric/observation.js +61 -11
  231. package/dist/cjs/rubric/observation.js.map +1 -1
  232. package/dist/cjs/rubric/survey.d.ts +65 -0
  233. package/dist/cjs/rubric/survey.d.ts.map +1 -0
  234. package/dist/cjs/rubric/survey.js +101 -0
  235. package/dist/cjs/rubric/survey.js.map +1 -0
  236. package/dist/cjs/rubric/terms.d.ts +7 -0
  237. package/dist/cjs/rubric/terms.d.ts.map +1 -1
  238. package/dist/cjs/rubric/terms.js +12 -1
  239. package/dist/cjs/rubric/terms.js.map +1 -1
  240. package/dist/cjs/rubric.d.ts +1 -1
  241. package/dist/cjs/rubric.d.ts.map +1 -1
  242. package/dist/cjs/rubric.js +4 -2
  243. package/dist/cjs/rubric.js.map +1 -1
  244. package/dist/esm/campaign/campaign.js +4 -3
  245. package/dist/esm/campaign/campaign.js.map +1 -1
  246. package/dist/esm/campaign/funding.d.ts.map +1 -1
  247. package/dist/esm/campaign/funding.js +5 -2
  248. package/dist/esm/campaign/funding.js.map +1 -1
  249. package/dist/esm/campaign/pool.d.ts.map +1 -1
  250. package/dist/esm/campaign/pool.js +4 -3
  251. package/dist/esm/campaign/pool.js.map +1 -1
  252. package/dist/esm/campaign/record.d.ts.map +1 -1
  253. package/dist/esm/campaign/record.js +2 -2
  254. package/dist/esm/campaign/record.js.map +1 -1
  255. package/dist/esm/campaign/spots.d.ts.map +1 -1
  256. package/dist/esm/campaign/spots.js +10 -8
  257. package/dist/esm/campaign/spots.js.map +1 -1
  258. package/dist/esm/campaign/treasurySends.d.ts.map +1 -1
  259. package/dist/esm/campaign/treasurySends.js +4 -4
  260. package/dist/esm/campaign/treasurySends.js.map +1 -1
  261. package/dist/esm/chain/ask.d.ts +104 -14
  262. package/dist/esm/chain/ask.d.ts.map +1 -1
  263. package/dist/esm/chain/ask.js +152 -80
  264. package/dist/esm/chain/ask.js.map +1 -1
  265. package/dist/esm/chain/askImage.d.ts +19 -0
  266. package/dist/esm/chain/askImage.d.ts.map +1 -0
  267. package/dist/esm/chain/askImage.js +50 -0
  268. package/dist/esm/chain/askImage.js.map +1 -0
  269. package/dist/esm/chain/bridge.d.ts +7 -33
  270. package/dist/esm/chain/bridge.d.ts.map +1 -1
  271. package/dist/esm/chain/bridge.js +10 -24
  272. package/dist/esm/chain/bridge.js.map +1 -1
  273. package/dist/esm/chain/claimSubmit.d.ts +15 -0
  274. package/dist/esm/chain/claimSubmit.d.ts.map +1 -0
  275. package/dist/esm/chain/claimSubmit.js +10 -0
  276. package/dist/esm/chain/claimSubmit.js.map +1 -0
  277. package/dist/esm/chain/delegate.d.ts +52 -7
  278. package/dist/esm/chain/delegate.d.ts.map +1 -1
  279. package/dist/esm/chain/delegate.js +64 -13
  280. package/dist/esm/chain/delegate.js.map +1 -1
  281. package/dist/esm/chain/domainIndexer.d.ts +26 -0
  282. package/dist/esm/chain/domainIndexer.d.ts.map +1 -0
  283. package/dist/esm/chain/domainIndexer.js +48 -0
  284. package/dist/esm/chain/domainIndexer.js.map +1 -0
  285. package/dist/esm/chain/entityShape.d.ts +31 -2
  286. package/dist/esm/chain/entityShape.d.ts.map +1 -1
  287. package/dist/esm/chain/entityShape.js +65 -7
  288. package/dist/esm/chain/entityShape.js.map +1 -1
  289. package/dist/esm/chain/env.d.ts +33 -3
  290. package/dist/esm/chain/env.d.ts.map +1 -1
  291. package/dist/esm/chain/env.js +33 -5
  292. package/dist/esm/chain/env.js.map +1 -1
  293. package/dist/esm/chain/guest.d.ts +14 -0
  294. package/dist/esm/chain/guest.d.ts.map +1 -1
  295. package/dist/esm/chain/guest.js +7 -8
  296. package/dist/esm/chain/guest.js.map +1 -1
  297. package/dist/esm/chain/money.d.ts +53 -2
  298. package/dist/esm/chain/money.d.ts.map +1 -1
  299. package/dist/esm/chain/money.js +63 -4
  300. package/dist/esm/chain/money.js.map +1 -1
  301. package/dist/esm/chain/orgReviewBilling.d.ts +124 -0
  302. package/dist/esm/chain/orgReviewBilling.d.ts.map +1 -0
  303. package/dist/esm/chain/orgReviewBilling.js +241 -0
  304. package/dist/esm/chain/orgReviewBilling.js.map +1 -0
  305. package/dist/esm/chain/orgReviewBillingSign.d.ts +63 -0
  306. package/dist/esm/chain/orgReviewBillingSign.d.ts.map +1 -0
  307. package/dist/esm/chain/orgReviewBillingSign.js +124 -0
  308. package/dist/esm/chain/orgReviewBillingSign.js.map +1 -0
  309. package/dist/esm/chain/payoutSettings.d.ts +97 -0
  310. package/dist/esm/chain/payoutSettings.d.ts.map +1 -0
  311. package/dist/esm/chain/payoutSettings.js +111 -0
  312. package/dist/esm/chain/payoutSettings.js.map +1 -0
  313. package/dist/esm/chain/payoutTerms.d.ts +72 -0
  314. package/dist/esm/chain/payoutTerms.d.ts.map +1 -0
  315. package/dist/esm/chain/payoutTerms.js +127 -0
  316. package/dist/esm/chain/payoutTerms.js.map +1 -0
  317. package/dist/esm/chain/query.d.ts +14 -0
  318. package/dist/esm/chain/query.d.ts.map +1 -1
  319. package/dist/esm/chain/query.js +25 -0
  320. package/dist/esm/chain/query.js.map +1 -1
  321. package/dist/esm/chain/reviewBilling.d.ts +86 -0
  322. package/dist/esm/chain/reviewBilling.d.ts.map +1 -0
  323. package/dist/esm/chain/reviewBilling.js +215 -0
  324. package/dist/esm/chain/reviewBilling.js.map +1 -0
  325. package/dist/esm/chain/store.d.ts +7 -6
  326. package/dist/esm/chain/store.d.ts.map +1 -1
  327. package/dist/esm/chain/store.js +7 -6
  328. package/dist/esm/chain/store.js.map +1 -1
  329. package/dist/esm/chain/subscription.d.ts +0 -7
  330. package/dist/esm/chain/subscription.d.ts.map +1 -1
  331. package/dist/esm/chain/subscription.js +4 -13
  332. package/dist/esm/chain/subscription.js.map +1 -1
  333. package/dist/esm/chain/takeBack.d.ts +12 -0
  334. package/dist/esm/chain/takeBack.d.ts.map +1 -1
  335. package/dist/esm/chain/takeBack.js +22 -9
  336. package/dist/esm/chain/takeBack.js.map +1 -1
  337. package/dist/esm/chain/why.d.ts +44 -0
  338. package/dist/esm/chain/why.d.ts.map +1 -0
  339. package/dist/esm/chain/why.js +111 -0
  340. package/dist/esm/chain/why.js.map +1 -0
  341. package/dist/esm/chain/whyMint.d.ts +8 -0
  342. package/dist/esm/chain/whyMint.d.ts.map +1 -0
  343. package/dist/esm/chain/whyMint.js +17 -0
  344. package/dist/esm/chain/whyMint.js.map +1 -0
  345. package/dist/esm/chain.d.ts +8 -4
  346. package/dist/esm/chain.d.ts.map +1 -1
  347. package/dist/esm/chain.js +9 -4
  348. package/dist/esm/chain.js.map +1 -1
  349. package/dist/esm/config.d.ts +11 -5
  350. package/dist/esm/config.d.ts.map +1 -1
  351. package/dist/esm/config.js +3 -1
  352. package/dist/esm/config.js.map +1 -1
  353. package/dist/esm/data/askEntity.d.ts +40 -0
  354. package/dist/esm/data/askEntity.d.ts.map +1 -0
  355. package/dist/esm/data/askEntity.js +41 -0
  356. package/dist/esm/data/askEntity.js.map +1 -0
  357. package/dist/esm/data/askLinks.d.ts +6 -0
  358. package/dist/esm/data/askLinks.d.ts.map +1 -0
  359. package/dist/esm/data/askLinks.js +16 -0
  360. package/dist/esm/data/askLinks.js.map +1 -0
  361. package/dist/esm/data/board/assemble.d.ts.map +1 -1
  362. package/dist/esm/data/board/assemble.js +15 -2
  363. package/dist/esm/data/board/assemble.js.map +1 -1
  364. package/dist/esm/data/board/facts.d.ts +11 -0
  365. package/dist/esm/data/board/facts.d.ts.map +1 -1
  366. package/dist/esm/data/board/facts.js +15 -0
  367. package/dist/esm/data/board/facts.js.map +1 -1
  368. package/dist/esm/data/board/read.d.ts.map +1 -1
  369. package/dist/esm/data/board/read.js +2 -1
  370. package/dist/esm/data/board/read.js.map +1 -1
  371. package/dist/esm/data/board/types.d.ts +9 -0
  372. package/dist/esm/data/board/types.d.ts.map +1 -1
  373. package/dist/esm/data/board/types.js.map +1 -1
  374. package/dist/esm/data/docs.d.ts +10 -2
  375. package/dist/esm/data/docs.d.ts.map +1 -1
  376. package/dist/esm/data/docs.js +43 -4
  377. package/dist/esm/data/docs.js.map +1 -1
  378. package/dist/esm/data/format.js +1 -1
  379. package/dist/esm/data/format.js.map +1 -1
  380. package/dist/esm/data/install.d.ts +43 -2
  381. package/dist/esm/data/install.d.ts.map +1 -1
  382. package/dist/esm/data/install.js +56 -9
  383. package/dist/esm/data/install.js.map +1 -1
  384. package/dist/esm/data/oracleInfo.d.ts +6 -1
  385. package/dist/esm/data/oracleInfo.d.ts.map +1 -1
  386. package/dist/esm/data/oracleInfo.js +22 -3
  387. package/dist/esm/data/oracleInfo.js.map +1 -1
  388. package/dist/esm/data/oracles.d.ts +62 -5
  389. package/dist/esm/data/oracles.d.ts.map +1 -1
  390. package/dist/esm/data/oracles.js +87 -12
  391. package/dist/esm/data/oracles.js.map +1 -1
  392. package/dist/esm/data/orgPayouts.d.ts +87 -0
  393. package/dist/esm/data/orgPayouts.d.ts.map +1 -0
  394. package/dist/esm/data/orgPayouts.js +170 -0
  395. package/dist/esm/data/orgPayouts.js.map +1 -0
  396. package/dist/esm/data/plans.d.ts +8 -0
  397. package/dist/esm/data/plans.d.ts.map +1 -0
  398. package/dist/esm/data/plans.js +8 -0
  399. package/dist/esm/data/plans.js.map +1 -0
  400. package/dist/esm/data/profiles.d.ts +20 -0
  401. package/dist/esm/data/profiles.d.ts.map +1 -1
  402. package/dist/esm/data/profiles.js +60 -4
  403. package/dist/esm/data/profiles.js.map +1 -1
  404. package/dist/esm/data/receipt.d.ts +7 -0
  405. package/dist/esm/data/receipt.d.ts.map +1 -1
  406. package/dist/esm/data/receipt.js +20 -5
  407. package/dist/esm/data/receipt.js.map +1 -1
  408. package/dist/esm/data/resources.d.ts +3 -0
  409. package/dist/esm/data/resources.d.ts.map +1 -1
  410. package/dist/esm/data/resources.js +2 -0
  411. package/dist/esm/data/resources.js.map +1 -1
  412. package/dist/esm/data/threads.d.ts +14 -0
  413. package/dist/esm/data/threads.d.ts.map +1 -1
  414. package/dist/esm/data/threads.js +32 -21
  415. package/dist/esm/data/threads.js.map +1 -1
  416. package/dist/esm/data/trace.d.ts +8 -0
  417. package/dist/esm/data/trace.d.ts.map +1 -1
  418. package/dist/esm/data/trace.js +1 -1
  419. package/dist/esm/data/trace.js.map +1 -1
  420. package/dist/esm/data/traceWords.d.ts +4 -1
  421. package/dist/esm/data/traceWords.d.ts.map +1 -1
  422. package/dist/esm/data/traceWords.js +8 -2
  423. package/dist/esm/data/traceWords.js.map +1 -1
  424. package/dist/esm/data/why.d.ts +38 -0
  425. package/dist/esm/data/why.d.ts.map +1 -0
  426. package/dist/esm/data/why.js +78 -0
  427. package/dist/esm/data/why.js.map +1 -0
  428. package/dist/esm/data/whyReceipt.d.ts +33 -0
  429. package/dist/esm/data/whyReceipt.d.ts.map +1 -0
  430. package/dist/esm/data/whyReceipt.js +284 -0
  431. package/dist/esm/data/whyReceipt.js.map +1 -0
  432. package/dist/esm/geo/exifcarry.d.ts +9 -0
  433. package/dist/esm/geo/exifcarry.d.ts.map +1 -1
  434. package/dist/esm/geo/exifcarry.js +34 -0
  435. package/dist/esm/geo/exifcarry.js.map +1 -1
  436. package/dist/esm/geo/geohash.d.ts +11 -0
  437. package/dist/esm/geo/geohash.d.ts.map +1 -1
  438. package/dist/esm/geo/geohash.js +52 -3
  439. package/dist/esm/geo/geohash.js.map +1 -1
  440. package/dist/esm/geo/provenance.d.ts +41 -0
  441. package/dist/esm/geo/provenance.d.ts.map +1 -0
  442. package/dist/esm/geo/provenance.js +129 -0
  443. package/dist/esm/geo/provenance.js.map +1 -0
  444. package/dist/esm/rubric/bridge.d.ts +98 -2
  445. package/dist/esm/rubric/bridge.d.ts.map +1 -1
  446. package/dist/esm/rubric/bridge.js +130 -14
  447. package/dist/esm/rubric/bridge.js.map +1 -1
  448. package/dist/esm/rubric/card.d.ts +28 -14
  449. package/dist/esm/rubric/card.d.ts.map +1 -1
  450. package/dist/esm/rubric/card.js +24 -5
  451. package/dist/esm/rubric/card.js.map +1 -1
  452. package/dist/esm/rubric/claimForm.d.ts +116 -0
  453. package/dist/esm/rubric/claimForm.d.ts.map +1 -1
  454. package/dist/esm/rubric/claimForm.js +11 -0
  455. package/dist/esm/rubric/claimForm.js.map +1 -1
  456. package/dist/esm/rubric/compose.d.ts +5 -0
  457. package/dist/esm/rubric/compose.d.ts.map +1 -1
  458. package/dist/esm/rubric/compose.js +7 -2
  459. package/dist/esm/rubric/compose.js.map +1 -1
  460. package/dist/esm/rubric/gateMet.d.ts.map +1 -1
  461. package/dist/esm/rubric/gateMet.js +4 -2
  462. package/dist/esm/rubric/gateMet.js.map +1 -1
  463. package/dist/esm/rubric/leg.d.ts +2 -2
  464. package/dist/esm/rubric/leg.d.ts.map +1 -1
  465. package/dist/esm/rubric/leg.js +7 -5
  466. package/dist/esm/rubric/leg.js.map +1 -1
  467. package/dist/esm/rubric/marketPlan.d.ts +41 -3
  468. package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
  469. package/dist/esm/rubric/marketPlan.js +107 -9
  470. package/dist/esm/rubric/marketPlan.js.map +1 -1
  471. package/dist/esm/rubric/observation.d.ts +56 -14
  472. package/dist/esm/rubric/observation.d.ts.map +1 -1
  473. package/dist/esm/rubric/observation.js +61 -12
  474. package/dist/esm/rubric/observation.js.map +1 -1
  475. package/dist/esm/rubric/survey.d.ts +65 -0
  476. package/dist/esm/rubric/survey.d.ts.map +1 -0
  477. package/dist/esm/rubric/survey.js +94 -0
  478. package/dist/esm/rubric/survey.js.map +1 -0
  479. package/dist/esm/rubric/terms.d.ts +7 -0
  480. package/dist/esm/rubric/terms.d.ts.map +1 -1
  481. package/dist/esm/rubric/terms.js +12 -2
  482. package/dist/esm/rubric/terms.js.map +1 -1
  483. package/dist/esm/rubric.d.ts +1 -1
  484. package/dist/esm/rubric.d.ts.map +1 -1
  485. package/dist/esm/rubric.js +1 -1
  486. package/dist/esm/rubric.js.map +1 -1
  487. package/package.json +8 -2
@@ -81,6 +81,30 @@ export declare const INSTALL_WHERE: Record<InstallClient, string>;
81
81
  export declare const PLUGIN_MARKETPLACE = "ixoworld/ixo-plugins";
82
82
  export declare const PLUGIN_NAME = "ixo-openhands";
83
83
  export declare const PLUGIN_ID = "ixo-openhands@ixo-plugins";
84
+ /**
85
+ * The hosted MCP (claude.ai, ChatGPT) only reads. Everything that signs runs in
86
+ * Claude Code with the local MCP / HQ plugin, where keys and data stay on the
87
+ * user's machine (owner ruling 2026-10-15). One wording, said everywhere.
88
+ */
89
+ export declare const HQ_PLUGIN_NAME = "ixo-openhands-hq";
90
+ /** The plugin marketplace's public repository: every plugin's skill, README and version. */
91
+ export declare const PLUGIN_MARKETPLACE_URL = "https://github.com/ixoworld/ixo-plugins";
92
+ /** An npm package's page, where its latest version is. */
93
+ export declare const npmUrl: (name: string) => string;
94
+ /**
95
+ * The packages the plugins run, each with the version range an install pins (npx takes the newest inside it). The
96
+ * guides (/llms.txt, /mcp.md) list these; bump a range here when a plugin's skill moves to a new one.
97
+ */
98
+ export declare const RESOURCE_PACKAGES: readonly {
99
+ name: string;
100
+ range: string;
101
+ what: string;
102
+ }[];
103
+ /** One line per package: name@range, what it is, its npm page. */
104
+ export declare const resourceLines: () => string[];
105
+ /** The marketplace also lists two hosted, read-only plugins; their names read like network versions of ixo-openhands, so say what they are. */
106
+ export declare const READ_ONLY_PLUGINS_LINE = "ixo-openhands-mainnet and ixo-openhands-testnet in the same marketplace are read-only: they only look at the board, with no posting, payouts or sign-in. They are not the mainnet or testnet versions of ixo-openhands; for those, install ixo-openhands or ixo-openhands-hq, which start on mainnet and switch to testnet with OPENHANDS_NETWORK=testnet.";
107
+ export declare const READ_ONLY_LINE = "This connector can only read. To post asks, set up payouts, pay for reviews or get paid, use Claude Code with an OpenHands plugin (ixo-openhands-hq for a company, ixo-openhands for a worker or yourself): it runs on your computer, so your keys and data stay with you.";
84
108
  /**
85
109
  * The network the plugin starts on, and the variable that changes it.
86
110
  *
@@ -102,9 +126,26 @@ export type PluginClient = (typeof PLUGIN_CLIENTS)[number];
102
126
  */
103
127
  export declare const PLUGIN_INSTALLS: readonly ["claude-code", "claude-code-older", "codex"];
104
128
  export type PluginInstall = (typeof PLUGIN_INSTALLS)[number];
105
- /** One plugin install, a command per line. */
106
- export declare function pluginLines(install: PluginInstall): string;
129
+ /** One plugin install, a command per line: the worker plugin unless `name` says which. */
130
+ export declare function pluginLines(install: PluginInstall, name?: string): string;
131
+ /** The HQ plugin's two Claude Code lines, which work on every Claude Code version. */
132
+ export declare const HQ_INSTALL_LINES: string;
133
+ /**
134
+ * The two ways in, company first: who each plugin is for and what it does.
135
+ * Every page and tool that shows an install shows both, from here.
136
+ */
137
+ export declare const PLUGIN_PATHS: readonly [{
138
+ readonly name: "ixo-openhands-hq";
139
+ readonly who: "For a company";
140
+ readonly what: "Set up your company (organisation, how workers are paid, a reviewer, review billing), then post asks.";
141
+ }, {
142
+ readonly name: "ixo-openhands";
143
+ readonly who: "For a worker or yourself";
144
+ readonly what: "Find asks, answer them and get paid. Post asks of your own.";
145
+ }];
107
146
  export declare const PLUGIN_WHERE: Record<PluginInstall, string>;
147
+ /** Both plugins as plain text, company first: who it is for, then each install's lines. */
148
+ export declare function pluginPathsText(installs?: readonly PluginInstall[]): string[];
108
149
  /**
109
150
  * What the plugin brings and which network it starts on, said for the site at
110
151
  * `network`: on mainnet, how to get the test network instead; on the test
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,0EAA0E;AAC1E,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAEhD,iGAAiG;AACjG,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,iCAAiC;AACjC,eAAO,MAAM,QAAQ,yBAAgC,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,wDAAwD;AACxD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MAA2D,CAAC;AAEvG,eAAO,MAAM,eAAe,uDAAwD,CAAC;AACrF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAgBD,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAqBnF;AAED,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,SAAS,8BAA+B,CAAC;AAEtD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAChD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,gGAAgG;AAChG,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,cAAc,mCAAoC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,eAAe,wDAAyD,CAAC;AACtF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,8CAA8C;AAC9C,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAS1D;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAItD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,uCAAwC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAGrD,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,30 @@ export const INSTALL_WHERE = {
91
91
  export const PLUGIN_MARKETPLACE = "ixoworld/ixo-plugins";
92
92
  export const PLUGIN_NAME = "ixo-openhands";
93
93
  export const PLUGIN_ID = `${PLUGIN_NAME}@ixo-plugins`;
94
+ /**
95
+ * The hosted MCP (claude.ai, ChatGPT) only reads. Everything that signs runs in
96
+ * Claude Code with the local MCP / HQ plugin, where keys and data stay on the
97
+ * user's machine (owner ruling 2026-10-15). One wording, said everywhere.
98
+ */
99
+ export const HQ_PLUGIN_NAME = "ixo-openhands-hq";
100
+ /** The plugin marketplace's public repository: every plugin's skill, README and version. */
101
+ export const PLUGIN_MARKETPLACE_URL = `https://github.com/${PLUGIN_MARKETPLACE}`;
102
+ /** An npm package's page, where its latest version is. */
103
+ export const npmUrl = (name) => `https://www.npmjs.com/package/${name}`;
104
+ /**
105
+ * The packages the plugins run, each with the version range an install pins (npx takes the newest inside it). The
106
+ * guides (/llms.txt, /mcp.md) list these; bump a range here when a plugin's skill moves to a new one.
107
+ */
108
+ export const RESOURCE_PACKAGES = [
109
+ { name: MCP_PACKAGE, range: String(MCP_MAJOR), what: `the Openhands tools both plugins run (server name ${MCP_SERVER})` },
110
+ { name: "@ixo/decision-oracle", range: "0.2", what: `company setup: the organisation, its reviewer and Pay for reviews (used by ${HQ_PLUGIN_NAME})` },
111
+ { name: "@ixo/payouts-facilitator", range: "0.1", what: `a company's own payouts service, for paying workers USDC on Base (used by ${HQ_PLUGIN_NAME})` }
112
+ ];
113
+ /** One line per package: name@range, what it is, its npm page. */
114
+ export const resourceLines = () => RESOURCE_PACKAGES.map((one) => `${one.name}@${one.range}: ${one.what}. ${npmUrl(one.name)}`);
115
+ /** The marketplace also lists two hosted, read-only plugins; their names read like network versions of ixo-openhands, so say what they are. */
116
+ export const READ_ONLY_PLUGINS_LINE = "ixo-openhands-mainnet and ixo-openhands-testnet in the same marketplace are read-only: they only look at the board, with no posting, payouts or sign-in. They are not the mainnet or testnet versions of ixo-openhands; for those, install ixo-openhands or ixo-openhands-hq, which start on mainnet and switch to testnet with OPENHANDS_NETWORK=testnet.";
117
+ export const READ_ONLY_LINE = "This connector can only read. To post asks, set up payouts, pay for reviews or get paid, use Claude Code with an OpenHands plugin (ixo-openhands-hq for a company, ixo-openhands for a worker or yourself): it runs on your computer, so your keys and data stay with you.";
94
118
  /**
95
119
  * The network the plugin starts on, and the variable that changes it.
96
120
  *
@@ -110,33 +134,56 @@ export const PLUGIN_CLIENTS = ["claude-code", "codex"];
110
134
  * the two steps an older Claude Code needs, then Codex.
111
135
  */
112
136
  export const PLUGIN_INSTALLS = ["claude-code", "claude-code-older", "codex"];
113
- /** One plugin install, a command per line. */
114
- export function pluginLines(install) {
137
+ /** One plugin install, a command per line: the worker plugin unless `name` says which. */
138
+ export function pluginLines(install, name = PLUGIN_NAME) {
139
+ const id = `${name}@ixo-plugins`;
115
140
  switch (install) {
116
141
  case "claude-code":
117
- return `/plugin install ${PLUGIN_NAME} --marketplace ${PLUGIN_MARKETPLACE}`;
142
+ return `/plugin install ${name} --marketplace ${PLUGIN_MARKETPLACE}`;
118
143
  case "claude-code-older":
119
- return [`/plugin marketplace add ${PLUGIN_MARKETPLACE}`, `/plugin install ${PLUGIN_ID}`].join("\n");
144
+ return [`/plugin marketplace add ${PLUGIN_MARKETPLACE}`, `/plugin install ${id}`].join("\n");
120
145
  case "codex":
121
- return [`codex plugin marketplace add ${PLUGIN_MARKETPLACE}`, `codex plugin add ${PLUGIN_ID}`].join("\n");
146
+ return [`codex plugin marketplace add ${PLUGIN_MARKETPLACE}`, `codex plugin add ${id}`].join("\n");
122
147
  }
123
148
  }
149
+ /** The HQ plugin's two Claude Code lines, which work on every Claude Code version. */
150
+ export const HQ_INSTALL_LINES = pluginLines("claude-code-older", HQ_PLUGIN_NAME);
151
+ /**
152
+ * The two ways in, company first: who each plugin is for and what it does.
153
+ * Every page and tool that shows an install shows both, from here.
154
+ */
155
+ export const PLUGIN_PATHS = [
156
+ {
157
+ name: HQ_PLUGIN_NAME,
158
+ who: "For a company",
159
+ what: "Set up your company (organisation, how workers are paid, a reviewer, review billing), then post asks."
160
+ },
161
+ {
162
+ name: PLUGIN_NAME,
163
+ who: "For a worker or yourself",
164
+ what: "Find asks, answer them and get paid. Post asks of your own."
165
+ }
166
+ ];
124
167
  export const PLUGIN_WHERE = {
125
168
  "claude-code": `Claude Code ${CLAUDE_CODE_ONE_STEP} or newer, typed inside a session:`,
126
169
  "claude-code-older": "An older Claude Code, two lines inside a session:",
127
170
  codex: "Codex, in a terminal:"
128
171
  };
172
+ /** Both plugins as plain text, company first: who it is for, then each install's lines. */
173
+ export function pluginPathsText(installs = PLUGIN_INSTALLS) {
174
+ return PLUGIN_PATHS.map((path) => [`${path.who}: ${path.name}. ${path.what}`, ...installs.map((one) => `${PLUGIN_WHERE[one]}\n${pluginLines(one, path.name)}`)].join("\n\n"));
175
+ }
129
176
  /**
130
177
  * What the plugin brings and which network it starts on, said for the site at
131
178
  * `network`: on mainnet, how to get the test network instead; on the test
132
179
  * network, that the client has to be started for it.
133
180
  */
134
181
  export function pluginNetworkNote(network) {
135
- const what = "The plugin brings the server and its skill.";
136
- const codex = `Codex's plugin is always mainnet; for the test network there, use its config.toml lines.`;
182
+ const what = "Each plugin brings the server and its skill.";
183
+ const codex = `In Codex the plugins are always mainnet; for the test network there, use the config.toml lines.`;
137
184
  return network === PLUGIN_NETWORK_DEFAULT
138
- ? `${what} It starts on mainnet, where PAY is real money; for play money on the test network, start Claude Code with ${PLUGIN_NETWORK_ENV}=testnet set in its shell (${PLUGIN_NETWORK_ENV}=testnet claude). ${codex}`
139
- : `${what} This site is the test network, where PAY has no value, and the plugin starts on mainnet: start Claude Code with ${PLUGIN_NETWORK_ENV}=testnet (${PLUGIN_NETWORK_ENV}=testnet claude) so it matches. ${codex}`;
185
+ ? `${what} They start on mainnet, where rewards are paid in IXO or USDC. To try the test network, where coins have no value, start Claude Code with ${PLUGIN_NETWORK_ENV}=testnet set in its shell (${PLUGIN_NETWORK_ENV}=testnet claude). ${codex}`
186
+ : `${what} This site is the test network, where coins have no value, and the plugins start on mainnet: start Claude Code with ${PLUGIN_NETWORK_ENV}=testnet (${PLUGIN_NETWORK_ENV}=testnet claude) so it matches. ${codex}`;
140
187
  }
141
188
  /**
142
189
  * The hosted server, for a client that cannot run a local one. It reads the
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,14 @@
10
10
  export interface OracleInfo {
11
11
  address: string;
12
12
  name: string;
13
- /** The minimum evaluation leg, in base units of `denom`. */
13
+ /** The minimum evaluation leg, in base units of `denom`; under per-review billing, the price of one check. */
14
14
  priceBase: number;
15
15
  denom: string;
16
+ /**
17
+ * How the oracle is paid for a check (S3 contract 2026-10-14, `reviewBilling.mode`): "x402" bills each check to the
18
+ * payer's Console credits, so an ask carries an EMPTY evaluation leg; "escrow" (also: absent or malformed) is today's.
19
+ */
20
+ reviewBilling: "x402" | "escrow";
16
21
  }
17
22
  export type FetchJson = (url: string) => Promise<unknown>;
18
23
  /** Null when there is no oracle URL, it does not answer, or its answer names no price. */
@@ -1 +1 @@
1
- {"version":3,"file":"oracleInfo.d.ts","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAO1D,0FAA0F;AAC1F,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAqB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAezG"}
1
+ {"version":3,"file":"oracleInfo.d.ts","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,8GAA8G;IAC9G,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC;AAeD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAO1D,0FAA0F;AAC1F,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAqB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoBzG"}
@@ -7,6 +7,20 @@
7
7
  * the price the oracle will actually hold an ask to, rather than a number a
8
8
  * deployment typed once. Server-side only; a browser never calls the oracle.
9
9
  */
10
+ /** `reviewBilling` as published, strictly: `{mode: "x402", pricePerReview: {denom, amount} | null}`, else escrow. */
11
+ function reviewBillingOf(raw) {
12
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
13
+ return null;
14
+ const { mode, pricePerReview: price } = raw;
15
+ if (mode !== "x402")
16
+ return null;
17
+ if (price === null)
18
+ return { mode, price: null };
19
+ const { denom, amount } = (price ?? {});
20
+ if (typeof denom !== "string" || !denom || typeof amount !== "string" || !/^\d{1,20}$/.test(amount))
21
+ return null;
22
+ return { mode, price: { denom, amount: Number(amount) } };
23
+ }
10
24
  const TIMEOUT_MS = 5_000;
11
25
  const fetchJson = async (url) => {
12
26
  const response = await fetch(url, { signal: AbortSignal.timeout(TIMEOUT_MS), headers: { accept: "application/json" } });
@@ -26,10 +40,15 @@ export async function oracleInfo(baseUrl, read = fetchJson) {
26
40
  }
27
41
  const info = doc;
28
42
  const address = typeof info?.address === "string" ? info.address : "";
29
- const denom = typeof info?.pricing?.evaluation?.denom === "string" ? info.pricing.evaluation.denom : "";
30
- const amount = Number(info?.pricing?.evaluation?.minAmount);
43
+ const perReview = reviewBillingOf(info?.reviewBilling);
44
+ const raw = info?.pricing?.evaluation?.minAmount;
45
+ // Number(null) and Number("") are 0: an unpublished price must not read as a free one.
46
+ const leg = typeof raw === "string" && raw.trim() !== "" ? Number(raw) : typeof raw === "number" ? raw : NaN;
47
+ /* Per review, the price of one check is the one shown; else the evaluation leg the oracle holds an ask to. */
48
+ const denom = perReview?.price?.denom ?? (typeof info?.pricing?.evaluation?.denom === "string" ? info.pricing.evaluation.denom : "");
49
+ const amount = perReview?.price?.amount ?? leg;
31
50
  if (!address || !denom || !Number.isFinite(amount) || amount < 0)
32
51
  return null;
33
- return { address, name: typeof info?.name === "string" && info.name ? info.name : "oracle", priceBase: Math.round(amount), denom };
52
+ return { address, name: typeof info?.name === "string" && info.name ? info.name : "oracle", priceBase: Math.round(amount), denom, reviewBilling: perReview ? "x402" : "escrow" };
34
53
  }
35
54
  //# sourceMappingURL=oracleInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oracleInfo.js","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,UAAU,GAAG,KAAK,CAAC;AAIzB,MAAM,SAAS,GAAc,KAAK,EAAE,GAAG,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACxH,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAkB,SAAS;IAC3E,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAwH,CAAC;IACtI,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;AACrI,CAAC"}
1
+ {"version":3,"file":"oracleInfo.js","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,qHAAqH;AACrH,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,GAAmD,CAAC;IAC5F,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAC;IACjF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,GAAG,KAAK,CAAC;AAIzB,MAAM,SAAS,GAAc,KAAK,EAAE,GAAG,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACxH,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAkB,SAAS;IAC3E,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAiJ,CAAC;IAC/J,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;IACjD,uFAAuF;IACvF,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7G,8GAA8G;IAC9G,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrI,MAAM,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC;IAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACnL,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /** Server-side reads of the oracles on chain. Never imported by client code. */
2
2
  import { type CardService } from "../rubric/card.ts";
3
+ import type { CriterionKind } from "../rubric/terms.ts";
3
4
  /**
4
5
  * Who is offering to work, read from the chain rather than from a deploy.
5
6
  *
@@ -14,16 +15,54 @@ import { type CardService } from "../rubric/card.ts";
14
15
  */
15
16
  export interface Oracle {
16
17
  did: string;
17
- /** The account that actually signs — the entity's owner, and the grantee named on an ask. */
18
+ /**
19
+ * The account that signs, the grantee named on an ask: the runtime address the
20
+ * entity's `#orz` names, else the entity's owner (see `signingAddress`). Empty
21
+ * when `unavailable`.
22
+ */
18
23
  address: string;
24
+ /** Set when the entity has an `#orz` we could not read or believe: not hireable this read. */
25
+ unavailable?: string;
19
26
  name: string;
20
27
  description: string;
21
28
  services: CardService[];
22
- /** The cheapest service price in uixo, when the card names one. */
23
- priceUixo: number | null;
24
- /** Which criterion kinds it claims it can settle. */
25
- serves: ("measure" | "judge" | "attest")[];
29
+ /**
30
+ * The cheapest service price, in base units of the network's checker-fee denom (`checkerFeeDenom`: upay), read from the card's `{currency: "PAY"}` prices. Null when it names none.
31
+ */
32
+ priceBase: number | null;
33
+ /** Which criterion kinds it can settle, read from its service ids (`check-measure`, `check-judge`, `check-attest`; `check-openhands` settles measured and judged lines). */
34
+ serves: CriterionKind[];
35
+ /** It offers the Openhands check (a `check-openhands` service): listed and hired as an Openhands reviewer. */
36
+ openhands: boolean;
26
37
  }
38
+ type Resource = {
39
+ id: string;
40
+ type: string;
41
+ serviceEndpoint: string;
42
+ };
43
+ /** What a picker says for an oracle whose `#orz` could not be confirmed. */
44
+ export declare const UNCONFIRMED_SIGNER = "Couldn't confirm this oracle's signing wallet, try again";
45
+ export type Signer = {
46
+ address: string;
47
+ } | {
48
+ unavailable: string;
49
+ };
50
+ /**
51
+ * Which account signs for an oracle entity.
52
+ *
53
+ * The entity's owner is who minted it, not necessarily who signs: a company's
54
+ * oracle entity is owned by the company admin while the oracle runs from its own
55
+ * wallet. eval-oracle's `oracle init` anchors `{id}#orz` (type
56
+ * `oracleAuthZConfig`), a JSON doc whose `granteeAddress` is that runtime
57
+ * wallet, so that is the grantee an ask must name.
58
+ *
59
+ * No `#orz` (IXO's oracle, whose owner is its signer): the owner. An `#orz` we
60
+ * cannot read or believe (outage, too big, malformed, bad checksum) is NOT the
61
+ * owner: for a company oracle that grants the wrong account, so the oracle is
62
+ * unavailable for this read and nothing is granted. Accepted risk: a wallet
63
+ * rotated without re-anchoring `#orz` is still named here (stale grantee).
64
+ */
65
+ export declare function signingAddress(did: string, owner: string, resources: readonly Resource[]): Promise<Signer>;
27
66
  /**
28
67
  * Every oracle on the network that publishes a card.
29
68
  *
@@ -41,4 +80,22 @@ export declare function loadOracles(limit?: number): Promise<Oracle[]>;
41
80
  export declare function loadCheckers(limit?: number): Promise<Oracle[]>;
42
81
  /** One oracle by the address that signs for it. */
43
82
  export declare function oracleByAddress(address: string): Promise<Oracle | null>;
83
+ /** One row of the decision engine's public oracle directory (`GET /v1/oracle-directory`), only what this needs. */
84
+ export interface DirectoryEntry {
85
+ address?: string;
86
+ active?: boolean;
87
+ }
88
+ /**
89
+ * The signing addresses the engine says are switched off, pure. One address
90
+ * can sign for more than one oracle (devnet's pay-convert and a retired
91
+ * tunnel share one), so it is off only when every entry naming it is.
92
+ */
93
+ export declare function switchedOffAmong(entries: readonly DirectoryEntry[]): Set<string>;
94
+ /**
95
+ * The same, read from the engine. Empty when no engine is wired or the
96
+ * directory can't be read: a list that hides nothing is the old list, and a
97
+ * failed read must never empty it.
98
+ */
99
+ export declare function switchedOffOracles(baseUrl?: string): Promise<Set<string>>;
100
+ export {};
44
101
  //# sourceMappingURL=oracles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAKhF,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrF;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,6FAA6F;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,mEAAmE;IACnE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qDAAqD;IACrD,MAAM,EAAE,CAAC,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;CAC5C;AAoDD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuDhE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGjE;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI7E"}
1
+ {"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAKhF,OAAO,EAA8D,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4KAA4K;IAC5K,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8GAA8G;IAC9G,SAAS,EAAE,OAAO,CAAC;CACpB;AAuDD,KAAK,QAAQ,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAYtE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,6DAA6D,CAAC;AAE7F,MAAM,MAAM,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhH;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4DhE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIjE;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI7E;AAED,mHAAmH;AACnH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAGhF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,MAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAU5F"}
@@ -2,8 +2,10 @@
2
2
  /* Relative rather than the `@ixo/openhands-sdk/rubric` alias so this module also runs
3
3
  under plain Node type-stripping — the probe script and any future agent-side
4
4
  caller resolve it without Next's path mapping. */
5
- import { parseAgentCard } from "../rubric/card.js";
5
+ import { parseAgentCard, servesOf, servicePriceBase } from "../rubric/card.js";
6
+ import { fromBech32 } from "@cosmjs/encoding";
6
7
  import { clampText, fetchPublicJson } from "./outbound.js";
8
+ import { engineConfigured, engineUrl } from "./engineUrl.js";
7
9
  import { gql } from "./gql.js";
8
10
  const CARD_TIMEOUT_MS = 8000;
9
11
  /*
@@ -40,6 +42,47 @@ async function fetchCard(url) {
40
42
  }
41
43
  };
42
44
  }
45
+ /* An `#orz` doc is ~500 bytes; a few KB is generous and still bounded. */
46
+ const ORZ_MAX_BYTES = 4 * 1024;
47
+ const isAccount = (value) => {
48
+ if (typeof value !== "string" || !/^ixo1[a-z0-9]{38}$/.test(value))
49
+ return false;
50
+ try {
51
+ const decoded = fromBech32(value, 90);
52
+ return decoded.prefix === "ixo" && decoded.data.length === 20;
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ };
58
+ /** What a picker says for an oracle whose `#orz` could not be confirmed. */
59
+ export const UNCONFIRMED_SIGNER = "Couldn't confirm this oracle's signing wallet, try again";
60
+ /**
61
+ * Which account signs for an oracle entity.
62
+ *
63
+ * The entity's owner is who minted it, not necessarily who signs: a company's
64
+ * oracle entity is owned by the company admin while the oracle runs from its own
65
+ * wallet. eval-oracle's `oracle init` anchors `{id}#orz` (type
66
+ * `oracleAuthZConfig`), a JSON doc whose `granteeAddress` is that runtime
67
+ * wallet, so that is the grantee an ask must name.
68
+ *
69
+ * No `#orz` (IXO's oracle, whose owner is its signer): the owner. An `#orz` we
70
+ * cannot read or believe (outage, too big, malformed, bad checksum) is NOT the
71
+ * owner: for a company oracle that grants the wrong account, so the oracle is
72
+ * unavailable for this read and nothing is granted. Accepted risk: a wallet
73
+ * rotated without re-anchoring `#orz` is still named here (stale grantee).
74
+ */
75
+ export async function signingAddress(did, owner, resources) {
76
+ const orz = resources.find((resource) => resource.id.endsWith("#orz") || resource.type === "oracleAuthZConfig");
77
+ if (!orz)
78
+ return owner ? { address: owner } : { unavailable: "The oracle has no owner on chain" };
79
+ const doc = orz.serviceEndpoint ? await fetchPublicJson(orz.serviceEndpoint, { timeoutMs: CARD_TIMEOUT_MS, maxBytes: ORZ_MAX_BYTES, revalidate: 300 }) : null;
80
+ const grantee = doc && typeof doc === "object" ? doc.granteeAddress : undefined;
81
+ if (isAccount(grantee))
82
+ return { address: grantee };
83
+ console.warn(`oracle ${did}: #orz ${doc === null ? "could not be read (refused, failed, or too big)" : "names no valid ixo1 granteeAddress"}; not hireable this read`);
84
+ return { unavailable: UNCONFIRMED_SIGNER };
85
+ }
43
86
  /**
44
87
  * Every oracle on the network that publishes a card.
45
88
  *
@@ -70,26 +113,29 @@ export async function loadOracles(limit = 200) {
70
113
  const acard = (resources.get(entity.id) ?? []).find((resource) => resource.id.endsWith("#acard") || resource.type === "agentCard");
71
114
  if (!acard?.serviceEndpoint)
72
115
  return null;
73
- const card = await fetchCard(acard.serviceEndpoint);
116
+ const [card, signer] = await Promise.all([fetchCard(acard.serviceEndpoint), signingAddress(entity.id, owners.get(entity.id) ?? "", resources.get(entity.id) ?? [])]);
74
117
  if (!card)
75
118
  return null;
76
119
  const services = card.credentialSubject.services ?? [];
77
- const prices = services.map((service) => service.price?.amount).filter((amount) => typeof amount === "number" && amount > 0);
78
- const serves = new Set();
79
- for (const service of services)
80
- for (const kind of service.serves ?? ["measure"])
81
- serves.add(kind);
120
+ /* Legacy cards (a `uixo`/`upay` price, a `serves` field) are not migrated: their price reads as none, and what
121
+ they settle comes from the ids like any card's. IXO's own oracle card is that shape until S3 re-anchors it. */
122
+ const prices = services.map(servicePriceBase).filter((amount) => amount !== null);
123
+ const kinds = services.map((service) => servesOf(service.id));
124
+ const openhands = kinds.includes("openhands");
125
+ /* The Openhands check runs the engine: measured and judged lines (its catalog card says so). */
126
+ const serves = new Set([...kinds.filter((kind) => kind !== null && kind !== "openhands"), ...(openhands ? ["measure", "judge"] : [])]);
82
127
  return {
83
128
  did: entity.id,
84
- address: owners.get(entity.id) ?? "",
129
+ ...("address" in signer ? { address: signer.address } : { address: "", unavailable: signer.unavailable }),
85
130
  name: card.credentialSubject.name,
86
131
  description: card.credentialSubject.description,
87
132
  services,
88
- priceUixo: prices.length ? Math.min(...prices) : null,
89
- serves: [...serves]
133
+ priceBase: prices.length ? Math.min(...prices) : null,
134
+ serves: [...serves],
135
+ openhands
90
136
  };
91
137
  }));
92
- return cards.filter((oracle) => Boolean(oracle) && Boolean(oracle?.address));
138
+ return cards.filter((oracle) => Boolean(oracle && (oracle.address || oracle.unavailable)));
93
139
  }
94
140
  /**
95
141
  * The oracles that will rule on work. A checker must be able to settle machine-
@@ -98,7 +144,8 @@ export async function loadOracles(limit = 200) {
98
144
  */
99
145
  export async function loadCheckers(limit = 200) {
100
146
  const oracles = await loadOracles(limit);
101
- return oracles.filter((oracle) => oracle.serves.includes("measure") && oracle.services.some((service) => service.id.startsWith("check")));
147
+ /* A `check-measure` service, as before, or the Openhands check. */
148
+ return oracles.filter((oracle) => oracle.openhands || (oracle.serves.includes("measure") && oracle.services.some((service) => service.id.startsWith("check"))));
102
149
  }
103
150
  /** One oracle by the address that signs for it. */
104
151
  export async function oracleByAddress(address) {
@@ -107,4 +154,32 @@ export async function oracleByAddress(address) {
107
154
  const oracles = await loadOracles(200).catch(() => []);
108
155
  return oracles.find((oracle) => oracle.address === address) ?? null;
109
156
  }
157
+ /**
158
+ * The signing addresses the engine says are switched off, pure. One address
159
+ * can sign for more than one oracle (devnet's pay-convert and a retired
160
+ * tunnel share one), so it is off only when every entry naming it is.
161
+ */
162
+ export function switchedOffAmong(entries) {
163
+ const on = new Set(entries.filter((entry) => entry.address && entry.active !== false).map((entry) => entry.address));
164
+ return new Set(entries.filter((entry) => entry.address && entry.active === false && !on.has(entry.address)).map((entry) => entry.address));
165
+ }
166
+ /**
167
+ * The same, read from the engine. Empty when no engine is wired or the
168
+ * directory can't be read: a list that hides nothing is the old list, and a
169
+ * failed read must never empty it.
170
+ */
171
+ export async function switchedOffOracles(baseUrl = engineUrl()) {
172
+ if (!engineConfigured(baseUrl))
173
+ return new Set();
174
+ try {
175
+ const response = await fetch(`${baseUrl}/v1/oracle-directory`, { signal: AbortSignal.timeout(CARD_TIMEOUT_MS), next: { revalidate: 300 } });
176
+ if (!response.ok)
177
+ return new Set();
178
+ const body = (await response.json());
179
+ return switchedOffAmong(Array.isArray(body.oracles) ? body.oracles : []);
180
+ }
181
+ catch {
182
+ return new Set();
183
+ }
184
+ }
110
185
  //# sourceMappingURL=oracles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oracles.js","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oracles.js","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"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"}