@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,121 @@
1
+ export * from "./inviteMessages.ts";
2
+ export declare const HANDLE: RegExp;
3
+ /** Words that are pages of the site, or would read as somebody else. */
4
+ export declare const RESERVED_HANDLES: Set<string>;
5
+ export declare const HAND_LIMITS: {
6
+ readonly name: 80;
7
+ readonly headline: 160;
8
+ readonly about: 2000;
9
+ readonly does: 6;
10
+ readonly links: 6;
11
+ readonly link: 2048;
12
+ readonly rate: 1000000;
13
+ readonly experience: 12;
14
+ readonly skills: 20;
15
+ readonly skill: 40;
16
+ readonly languages: 8;
17
+ readonly language: 40;
18
+ readonly education: 6;
19
+ readonly blocks: 6;
20
+ readonly location: 80;
21
+ readonly timezone: 64;
22
+ readonly title: 120;
23
+ readonly org: 120;
24
+ readonly where: 80;
25
+ readonly what: 600;
26
+ readonly year: 4;
27
+ readonly paragraphs: 8;
28
+ readonly paragraph: 1500;
29
+ readonly items: 6;
30
+ readonly alt: 300;
31
+ readonly caption: 300;
32
+ readonly fileName: 120;
33
+ readonly note: 300;
34
+ };
35
+ export declare const DOES: readonly ["look", "spot", "clean", "answer", "check", "make"];
36
+ export declare const RATE_UNITS: readonly ["hour", "day", "deliverable"];
37
+ export declare const RATE_COINS: readonly ["USDC", "IXO"];
38
+ export declare const AVAILABILITY: readonly ["open", "busy", "closed"];
39
+ /** One row of the person's experience: `from`/`to` as "YYYY" or "YYYY-MM"; `to` null is "now". */
40
+ export interface HandExperience {
41
+ title: string;
42
+ org: string;
43
+ from: string;
44
+ to: string | null;
45
+ where?: string;
46
+ what?: string;
47
+ }
48
+ export interface HandEducation {
49
+ title: string;
50
+ org: string;
51
+ year?: string;
52
+ }
53
+ /** The blocks a page may carry of the call page's canvas: a portfolio, files (a CV), paragraphs. */
54
+ export type HandBlock = {
55
+ kind: "story";
56
+ paragraphs: string[];
57
+ } | {
58
+ kind: "pictures";
59
+ items: {
60
+ url: string;
61
+ alt: string;
62
+ caption?: string;
63
+ }[];
64
+ } | {
65
+ kind: "files";
66
+ items: {
67
+ url: string;
68
+ name: string;
69
+ note?: string;
70
+ }[];
71
+ };
72
+ /**
73
+ * What a person publishes about themselves. Every field theirs; the worker
74
+ * renders nothing else. The CV fields (docs/verified-work-hands-page-brief.md)
75
+ * are all optional, so a page written before them still reads.
76
+ */
77
+ export interface HandProfile {
78
+ v: 1;
79
+ handle: string;
80
+ name: string;
81
+ headline?: string;
82
+ /** The summary; `about` was its older name and still reads. */
83
+ about?: string;
84
+ /** The board's activity words: what they do. */
85
+ does: (typeof DOES)[number][];
86
+ rate?: {
87
+ amount: number;
88
+ unit: (typeof RATE_UNITS)[number];
89
+ coin: (typeof RATE_COINS)[number];
90
+ } | null;
91
+ /** https links: a site, a portfolio, a profile. */
92
+ links: string[];
93
+ availability: (typeof AVAILABILITY)[number];
94
+ /** May a poster invite this person by handle? Off, only an address they gave out themselves invites them. */
95
+ invitable: boolean;
96
+ /** Pictures at https addresses, uploaded by their agent or anywhere public. */
97
+ avatar?: string;
98
+ banner?: string;
99
+ location?: string;
100
+ timezone?: string;
101
+ experience?: HandExperience[];
102
+ skills?: string[];
103
+ languages?: string[];
104
+ education?: HandEducation[];
105
+ blocks?: HandBlock[];
106
+ verificationServices?: import("../verification/profile.ts").VerificationService[];
107
+ verificationCredentials?: import("../verification/profile.ts").CredentialReference[];
108
+ }
109
+ /** A page off the wire, read field by field; a problem in words, or the page. Nothing is trimmed into shape silently but whitespace. */
110
+ export declare function readHandProfile(raw: unknown): {
111
+ profile: HandProfile;
112
+ } | {
113
+ problem: string;
114
+ };
115
+ /** One block of the page's canvas, read the way a call's is (terms.ts `blockOf`), for the three kinds a page may carry. */
116
+ export declare function readHandBlock(raw: unknown): {
117
+ block: HandBlock;
118
+ } | {
119
+ problem: string;
120
+ };
121
+ //# sourceMappingURL=inviteProof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inviteProof.d.ts","sourceRoot":"","sources":["../../../src/chain/inviteProof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,278 @@
1
+ export * from "./inviteMessages.js";
2
+ import { readVerificationProfile } from "../verification/profile.js";
3
+ export const HANDLE = /^[a-z][a-z0-9-]{2,29}$/;
4
+ /** Words that are pages of the site, or would read as somebody else. */
5
+ export const RESERVED_HANDLES = new Set([
6
+ "admin", "openhands", "ixo", "me", "board", "map", "ask", "asks", "opencall", "hands", "hand", "reviewers", "apps", "how", "connect",
7
+ "submit", "welcome", "youth", "api", "org", "help", "support", "staff", "official", "oracle", "checker", "agent", "agents", "new", "about"
8
+ ]);
9
+ export const HAND_LIMITS = {
10
+ name: 80,
11
+ headline: 160,
12
+ about: 2000,
13
+ does: 6,
14
+ links: 6,
15
+ link: 2048,
16
+ rate: 1_000_000,
17
+ /* The CV (docs/verified-work-hands-page-brief.md §7). */
18
+ experience: 12,
19
+ skills: 20,
20
+ skill: 40,
21
+ languages: 8,
22
+ language: 40,
23
+ education: 6,
24
+ blocks: 6,
25
+ location: 80,
26
+ timezone: 64,
27
+ title: 120,
28
+ org: 120,
29
+ where: 80,
30
+ what: 600,
31
+ year: 4,
32
+ paragraphs: 8,
33
+ paragraph: 1500,
34
+ items: 6,
35
+ alt: 300,
36
+ caption: 300,
37
+ fileName: 120,
38
+ note: 300
39
+ };
40
+ export const DOES = ["look", "spot", "clean", "answer", "check", "make"];
41
+ export const RATE_UNITS = ["hour", "day", "deliverable"];
42
+ export const RATE_COINS = ["USDC", "IXO"];
43
+ export const AVAILABILITY = ["open", "busy", "closed"];
44
+ const oneLine = (value, max) => {
45
+ if (typeof value !== "string")
46
+ return null;
47
+ const folded = value.replace(/\s+/g, " ").trim();
48
+ return folded && folded.length <= max ? folded : null;
49
+ };
50
+ const https = (value) => {
51
+ if (typeof value !== "string" || value.length > HAND_LIMITS.link || !value.startsWith("https://"))
52
+ return false;
53
+ try {
54
+ return new URL(value).protocol === "https:";
55
+ }
56
+ catch {
57
+ return false;
58
+ }
59
+ };
60
+ /** A page off the wire, read field by field; a problem in words, or the page. Nothing is trimmed into shape silently but whitespace. */
61
+ export function readHandProfile(raw) {
62
+ const it = raw;
63
+ if (!it || typeof it !== "object")
64
+ return { problem: "a page is an object" };
65
+ const verification = readVerificationProfile(it);
66
+ if ("problem" in verification)
67
+ return verification;
68
+ if (it.v !== 1)
69
+ return { problem: "a page says v: 1" };
70
+ const handle = typeof it.handle === "string" ? it.handle.trim().toLowerCase() : "";
71
+ if (!HANDLE.test(handle))
72
+ return { problem: "the handle is lowercase letters, digits and dashes, 3 to 30 long, starting with a letter" };
73
+ if (RESERVED_HANDLES.has(handle))
74
+ return { problem: `"${handle}" is a page of the site, not a person` };
75
+ const name = oneLine(it.name, HAND_LIMITS.name);
76
+ if (!name)
77
+ return { problem: `a name, up to ${HAND_LIMITS.name} characters` };
78
+ const headline = it.headline === undefined || it.headline === null || it.headline === "" ? undefined : oneLine(it.headline, HAND_LIMITS.headline);
79
+ if (headline === null)
80
+ return { problem: `the headline is one line, up to ${HAND_LIMITS.headline} characters` };
81
+ let about;
82
+ if (it.about !== undefined && it.about !== null && it.about !== "") {
83
+ if (typeof it.about !== "string" || it.about.length > HAND_LIMITS.about)
84
+ return { problem: `about is up to ${HAND_LIMITS.about} characters` };
85
+ about = it.about.replace(/\r\n?/g, "\n").trim();
86
+ }
87
+ const does = Array.isArray(it.does) ? it.does : [];
88
+ if (does.length > HAND_LIMITS.does || !does.every((one) => DOES.includes(one)))
89
+ return { problem: `does is up to ${HAND_LIMITS.does} of ${DOES.join(", ")}` };
90
+ let rate = null;
91
+ if (it.rate !== undefined && it.rate !== null) {
92
+ const r = it.rate;
93
+ if (typeof r.amount !== "number" || !(r.amount > 0) || r.amount > HAND_LIMITS.rate)
94
+ return { problem: "the rate's amount is a number above 0" };
95
+ if (!RATE_UNITS.includes(r.unit))
96
+ return { problem: `the rate's unit is ${RATE_UNITS.join(", ")}` };
97
+ if (!RATE_COINS.includes(r.coin))
98
+ return { problem: `the rate's coin is ${RATE_COINS.join(" or ")}` };
99
+ rate = { amount: Math.round(r.amount * 100) / 100, unit: r.unit, coin: r.coin };
100
+ }
101
+ const links = Array.isArray(it.links) ? it.links : [];
102
+ if (links.length > HAND_LIMITS.links || !links.every(https))
103
+ return { problem: `links are up to ${HAND_LIMITS.links} https addresses` };
104
+ const availability = it.availability === undefined ? "open" : it.availability;
105
+ if (!AVAILABILITY.includes(availability))
106
+ return { problem: `availability is ${AVAILABILITY.join(", ")}` };
107
+ const invitable = it.invitable === undefined ? true : it.invitable;
108
+ if (typeof invitable !== "boolean")
109
+ return { problem: "invitable is true or false" };
110
+ /* The CV. Each field whole or refused with its name; an absent field is simply absent. */
111
+ const L = HAND_LIMITS;
112
+ const pictureUrl = (value, what) => (value === undefined || value === null || value === "" ? undefined : https(value) ? value : { problem: `${what} is an https address` });
113
+ const avatar = pictureUrl(it.avatar, "avatar");
114
+ if (avatar && typeof avatar === "object")
115
+ return avatar;
116
+ const banner = pictureUrl(it.banner, "banner");
117
+ if (banner && typeof banner === "object")
118
+ return banner;
119
+ const location = it.location === undefined || it.location === null || it.location === "" ? undefined : oneLine(it.location, L.location);
120
+ if (location === null)
121
+ return { problem: `location is one line, up to ${L.location} characters` };
122
+ const timezone = it.timezone === undefined || it.timezone === null || it.timezone === "" ? undefined : oneLine(it.timezone, L.timezone);
123
+ if (timezone === null || (timezone && !/^[A-Za-z_+\-\/0-9: ]{1,64}$/.test(timezone)))
124
+ return { problem: "timezone is an IANA name, e.g. Europe/Ljubljana, or UTC+2" };
125
+ const when = (value) => typeof value === "string" && /^\d{4}(-(0[1-9]|1[0-2]))?$/.test(value);
126
+ const experience = [];
127
+ if (it.experience !== undefined && it.experience !== null) {
128
+ if (!Array.isArray(it.experience) || it.experience.length > L.experience)
129
+ return { problem: `experience is up to ${L.experience} rows` };
130
+ for (const [at, raw] of it.experience.entries()) {
131
+ const title = oneLine(raw?.title, L.title);
132
+ const org = oneLine(raw?.org, L.org);
133
+ if (!title || !org)
134
+ return { problem: `experience row ${at + 1} needs a title and an org` };
135
+ if (!when(raw?.from))
136
+ return { problem: `experience row ${at + 1}: from is "YYYY" or "YYYY-MM"` };
137
+ if (!(raw?.to === null || raw?.to === undefined || raw?.to === "" || when(raw?.to)))
138
+ return { problem: `experience row ${at + 1}: to is "YYYY", "YYYY-MM", or null for now` };
139
+ const where = raw?.where === undefined || raw?.where === null || raw?.where === "" ? undefined : oneLine(raw.where, L.where);
140
+ if (where === null)
141
+ return { problem: `experience row ${at + 1}: where is one line` };
142
+ let what;
143
+ if (raw?.what !== undefined && raw?.what !== null && raw?.what !== "") {
144
+ if (typeof raw.what !== "string" || raw.what.length > L.what)
145
+ return { problem: `experience row ${at + 1}: what is up to ${L.what} characters` };
146
+ what = raw.what.replace(/\s+/g, " ").trim();
147
+ }
148
+ experience.push({ title, org, from: raw.from, to: when(raw?.to) ? raw.to : null, ...(where ? { where } : {}), ...(what ? { what } : {}) });
149
+ }
150
+ }
151
+ const words = (value, max, each, what) => {
152
+ if (value === undefined || value === null)
153
+ return [];
154
+ if (!Array.isArray(value) || value.length > max)
155
+ return { problem: `${what} is up to ${max} entries` };
156
+ const out = [];
157
+ for (const one of value) {
158
+ const line = oneLine(one, each);
159
+ if (!line)
160
+ return { problem: `${what}: each entry is one line, up to ${each} characters` };
161
+ out.push(line);
162
+ }
163
+ return [...new Set(out)];
164
+ };
165
+ const skills = words(it.skills, L.skills, L.skill, "skills");
166
+ if (!Array.isArray(skills))
167
+ return skills;
168
+ const languages = words(it.languages, L.languages, L.language, "languages");
169
+ if (!Array.isArray(languages))
170
+ return languages;
171
+ const education = [];
172
+ if (it.education !== undefined && it.education !== null) {
173
+ if (!Array.isArray(it.education) || it.education.length > L.education)
174
+ return { problem: `education is up to ${L.education} rows` };
175
+ for (const [at, raw] of it.education.entries()) {
176
+ const title = oneLine(raw?.title, L.title);
177
+ const org = oneLine(raw?.org, L.org);
178
+ if (!title || !org)
179
+ return { problem: `education row ${at + 1} needs a title and an org` };
180
+ if (!(raw?.year === undefined || raw?.year === null || raw?.year === "" || (typeof raw?.year === "string" && /^\d{4}$/.test(raw.year))))
181
+ return { problem: `education row ${at + 1}: year is "YYYY"` };
182
+ education.push({ title, org, ...(typeof raw?.year === "string" && raw.year ? { year: raw.year } : {}) });
183
+ }
184
+ }
185
+ const blocks = [];
186
+ if (it.blocks !== undefined && it.blocks !== null) {
187
+ if (!Array.isArray(it.blocks) || it.blocks.length > L.blocks)
188
+ return { problem: `blocks is up to ${L.blocks}` };
189
+ for (const [at, raw] of it.blocks.entries()) {
190
+ const block = readHandBlock(raw);
191
+ if ("problem" in block)
192
+ return { problem: `block ${at + 1}: ${block.problem}` };
193
+ blocks.push(block.block);
194
+ }
195
+ }
196
+ return {
197
+ profile: {
198
+ v: 1,
199
+ handle,
200
+ name,
201
+ ...(headline ? { headline } : {}),
202
+ ...(about ? { about } : {}),
203
+ does: [...new Set(does)],
204
+ rate,
205
+ links: [...new Set(links)],
206
+ availability: availability,
207
+ invitable,
208
+ ...(avatar ? { avatar } : {}),
209
+ ...(banner ? { banner } : {}),
210
+ ...(location ? { location } : {}),
211
+ ...(timezone ? { timezone } : {}),
212
+ ...(experience.length ? { experience } : {}),
213
+ ...(skills.length ? { skills } : {}),
214
+ ...(languages.length ? { languages } : {}),
215
+ ...(education.length ? { education } : {}),
216
+ ...(blocks.length ? { blocks } : {}),
217
+ ...verification.data
218
+ }
219
+ };
220
+ }
221
+ /** One block of the page's canvas, read the way a call's is (terms.ts `blockOf`), for the three kinds a page may carry. */
222
+ export function readHandBlock(raw) {
223
+ const it = raw;
224
+ if (!it || typeof it !== "object")
225
+ return { problem: "a block is an object" };
226
+ const L = HAND_LIMITS;
227
+ switch (it.kind) {
228
+ case "story": {
229
+ if (!Array.isArray(it.paragraphs) || it.paragraphs.length === 0 || it.paragraphs.length > L.paragraphs)
230
+ return { problem: `a story is 1 to ${L.paragraphs} paragraphs` };
231
+ const paragraphs = [];
232
+ for (const one of it.paragraphs) {
233
+ const line = oneLine(one, L.paragraph);
234
+ if (!line)
235
+ return { problem: `a paragraph is one line, up to ${L.paragraph} characters` };
236
+ paragraphs.push(line);
237
+ }
238
+ return { block: { kind: "story", paragraphs } };
239
+ }
240
+ case "pictures": {
241
+ if (!Array.isArray(it.items) || it.items.length === 0 || it.items.length > L.items)
242
+ return { problem: `pictures are 1 to ${L.items}` };
243
+ const items = [];
244
+ for (const one of it.items) {
245
+ if (!https(one?.url))
246
+ return { problem: "a picture's url is an https address" };
247
+ const alt = oneLine(one?.alt, L.alt);
248
+ if (!alt)
249
+ return { problem: "a picture needs words (alt)" };
250
+ const caption = one?.caption === undefined || one?.caption === null || one?.caption === "" ? undefined : oneLine(one.caption, L.caption);
251
+ if (caption === null)
252
+ return { problem: "a caption is one line" };
253
+ items.push({ url: one.url, alt, ...(caption ? { caption } : {}) });
254
+ }
255
+ return { block: { kind: "pictures", items } };
256
+ }
257
+ case "files": {
258
+ if (!Array.isArray(it.items) || it.items.length === 0 || it.items.length > L.items)
259
+ return { problem: `files are 1 to ${L.items}` };
260
+ const items = [];
261
+ for (const one of it.items) {
262
+ if (!https(one?.url))
263
+ return { problem: "a file's url is an https address" };
264
+ const name = oneLine(one?.name, L.fileName);
265
+ if (!name)
266
+ return { problem: "a file needs a name" };
267
+ const note = one?.note === undefined || one?.note === null || one?.note === "" ? undefined : oneLine(one.note, L.note);
268
+ if (note === null)
269
+ return { problem: "a file's note is one line" };
270
+ items.push({ url: one.url, name, ...(note ? { note } : {}) });
271
+ }
272
+ return { block: { kind: "files", items } };
273
+ }
274
+ default:
275
+ return { problem: 'kind is "story", "pictures" or "files"' };
276
+ }
277
+ }
278
+ //# sourceMappingURL=inviteProof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inviteProof.js","sourceRoot":"","sources":["../../../src/chain/inviteProof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import type { Signer } from "./store.ts";
2
+ /**
3
+ * Private answers on the Vault's claims lane (docs/private-asks-vault-plan.md).
4
+ *
5
+ * A private ask's answer lives in `/.claims/<collectionId>/…` inside the ask's
6
+ * own entity namespace: never public, write-once, readable only by who the
7
+ * chain says (the author, the poster as controller, the checker). Every
8
+ * request carries a single-use invocation.
9
+ *
10
+ * Claude never holds the person's key. The person's browser signs Claude's
11
+ * `did:key` a **pass** for one ask (`signPass`: 1 hour to write, 24 hours to
12
+ * read, ended by expiry only), and Claude invokes under it (`laneInvocation`).
13
+ * The Vault sees the person as the actor and Claude as the invoker. The site,
14
+ * holding the person's own session key, needs no pass (`selfLaneInvocation`).
15
+ *
16
+ * `@ixo/ucan` is loaded on use, as in store.ts: no page pays for ucanto until
17
+ * it signs something.
18
+ */
19
+ export type LaneAbility = "fs/write" | "fs/read";
20
+ /** Claude's own Ed25519 key, derived from its existing key file. Never written anywhere. */
21
+ export interface AgentKey {
22
+ did: `did:key:${string}`;
23
+ sign(bytes: Uint8Array): Promise<Uint8Array>;
24
+ /** The ucanto signer behind `sign`, for invocations. */
25
+ signer: import("@ixo/ucan").Signer;
26
+ }
27
+ export interface PassRequest {
28
+ /** The person's session signer (store.ts `signerFromSession`). */
29
+ signer: Signer;
30
+ personDid: string;
31
+ agentDid: string;
32
+ entityDid: string;
33
+ collectionId: string;
34
+ can: LaneAbility;
35
+ ttlSeconds: number;
36
+ /**
37
+ * Proofs the signer's own access rests on: an approver's share from the poster, so the chain runs
38
+ * poster → approver → Claude and the Vault sees the poster (the controller) as the actor.
39
+ */
40
+ proofs?: string[];
41
+ }
42
+ export interface LaneInvocationRequest {
43
+ agent: AgentKey;
44
+ /** An encoded pass from `signPass`. */
45
+ pass: string;
46
+ vfsDid?: string;
47
+ entityDid: string;
48
+ collectionId: string;
49
+ can: LaneAbility;
50
+ ttlSeconds?: number;
51
+ }
52
+ export interface SelfLaneInvocationRequest {
53
+ signer: Signer;
54
+ /** An approver's share from the poster (`signShare`), when the signer reads by it. */
55
+ share?: string;
56
+ vfsDid?: string;
57
+ entityDid: string;
58
+ collectionId: string;
59
+ can: LaneAbility;
60
+ ttlSeconds?: number;
61
+ }
62
+ export interface LaneUpload {
63
+ bearer: string;
64
+ entityDid: string;
65
+ collectionId: string;
66
+ /** File name inside the ask's lane folder (may hold one `/`, e.g. `<address>/<file>`). */
67
+ name: string;
68
+ signal?: AbortSignal;
69
+ }
70
+ /** What a pass says, decoded: enough to tell whether it is the one this ask needs. */
71
+ export interface PassFacts {
72
+ issuer: string;
73
+ audience: string;
74
+ with: string;
75
+ can: string;
76
+ /** Seconds since the epoch; Infinity when the pass has none (refused by `passProblem`). */
77
+ expiration: number;
78
+ }
79
+ export declare const WRITE_PASS_SECONDS = 3600;
80
+ export declare const READ_PASS_SECONDS = 86400;
81
+ /** The engine binds claim content of at most 256 KiB. */
82
+ export declare const MAX_ENVELOPE_BYTES: number;
83
+ /** The Vault resource for one ask's lane. The entity must be lowercase (the Vault's scope rule). */
84
+ export declare const laneResource: (entityDid: string, collectionId: string) => string;
85
+ /**
86
+ * The lane folder is hidden in the entity namespace; a reader who is the entity's controller (the poster) only sees it
87
+ * when every link of the chain reveals it (Vault ucan.ts nb.hidden; auth.ts reveals it itself only for lane-grant
88
+ * readers). Harmless for everyone else.
89
+ */
90
+ export declare const laneReveal: (collectionId: string) => {
91
+ hidden: string[];
92
+ };
93
+ export { isPrivateTerms } from "../rubric/share.ts";
94
+ /** Claude's did:key: the same mnemonic always gives the same key, so nothing new is stored. */
95
+ export declare function agentDidKey(mnemonic: string): Promise<AgentKey>;
96
+ /** The person signs Claude a pass for one ask's lane (browser side). */
97
+ export declare function signPass(request: PassRequest): Promise<string>;
98
+ /** The longest an approver's share lasts, whatever the ask's dates say. */
99
+ export declare const MAX_SHARE_SECONDS: number;
100
+ /**
101
+ * The poster lets an approver who is not the poster read one ask's private answers (read only), until the ask's end
102
+ * plus its review window, never more than 90 days. Signed in the poster's browser; the worker keeps it beside the ask.
103
+ */
104
+ export declare function signShare(request: {
105
+ signer: Signer;
106
+ posterDid: string;
107
+ approverDid: string;
108
+ entityDid: string;
109
+ collectionId: string;
110
+ endsAt: number;
111
+ reviewSeconds?: number;
112
+ }): Promise<string>;
113
+ /** What a pass says, or null when it is not a pass at all. */
114
+ export declare function readPass(pass: string): Promise<PassFacts | null>;
115
+ /**
116
+ * Why this pass will not do for this ask, in plain words; null when it will.
117
+ * `minSeconds` is how long it must still last (an answer takes minutes).
118
+ */
119
+ export declare function passProblem(pass: string, want: {
120
+ agentDid: string;
121
+ personDid?: string;
122
+ entityDid: string;
123
+ collectionId: string;
124
+ can: LaneAbility;
125
+ minSeconds?: number;
126
+ }): Promise<string | null>;
127
+ /** A single-use invocation by Claude under the person's pass: one per HTTP request. */
128
+ export declare function laneInvocation(request: LaneInvocationRequest): Promise<string>;
129
+ /** A single-use invocation signed by the person's own session key (the site): actor and invoker are the person. */
130
+ export declare function selfLaneInvocation(request: SelfLaneInvocationRequest): Promise<string>;
131
+ /** Where a lane file is read by CID, with a token (never a public link). */
132
+ export declare const laneCidUrl: (cid: string) => string;
133
+ /** The Vault's refusal, kept so a caller can tell "not yet allowed" (retry) from anything else. */
134
+ export declare class LaneRefused extends Error {
135
+ readonly status: number;
136
+ constructor(status: number, message: string);
137
+ }
138
+ /** Store bytes in the ask's lane. Never `public`: the Vault refuses that for the lane, and so does this. */
139
+ export declare function uploadToLane(bytes: Uint8Array | Blob | string, contentType: string, args: LaneUpload): Promise<{
140
+ cid: string;
141
+ url: string;
142
+ }>;
143
+ /** Read a lane file's bytes by CID. */
144
+ export declare function readFromLane(cid: string, args: {
145
+ bearer: string;
146
+ signal?: AbortSignal;
147
+ }): Promise<Uint8Array>;
148
+ //# sourceMappingURL=lane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane.d.ts","sourceRoot":"","sources":["../../../src/chain/lane.ts"],"names":[],"mappings":"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"}