@ixo/openhands-sdk 0.4.0 → 0.5.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 (510) 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.d.ts.map +1 -1
  5. package/dist/cjs/campaign/funding.js +1 -1
  6. package/dist/cjs/campaign/funding.js.map +1 -1
  7. package/dist/cjs/campaign/pool.js +3 -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/spot.d.ts.map +1 -1
  13. package/dist/cjs/campaign/spot.js +2 -1
  14. package/dist/cjs/campaign/spot.js.map +1 -1
  15. package/dist/cjs/campaign/spots.js +4 -4
  16. package/dist/cjs/campaign/spots.js.map +1 -1
  17. package/dist/cjs/campaign/treasurySends.d.ts.map +1 -1
  18. package/dist/cjs/campaign/treasurySends.js +3 -3
  19. package/dist/cjs/campaign/treasurySends.js.map +1 -1
  20. package/dist/cjs/chain/ask.d.ts +17 -0
  21. package/dist/cjs/chain/ask.d.ts.map +1 -1
  22. package/dist/cjs/chain/ask.js +27 -10
  23. package/dist/cjs/chain/ask.js.map +1 -1
  24. package/dist/cjs/chain/broadcast.d.ts.map +1 -1
  25. package/dist/cjs/chain/broadcast.js +6 -4
  26. package/dist/cjs/chain/broadcast.js.map +1 -1
  27. package/dist/cjs/chain/claimVerdict.d.ts +26 -0
  28. package/dist/cjs/chain/claimVerdict.d.ts.map +1 -0
  29. package/dist/cjs/chain/claimVerdict.js +33 -0
  30. package/dist/cjs/chain/claimVerdict.js.map +1 -0
  31. package/dist/cjs/chain/delegate.d.ts +46 -3
  32. package/dist/cjs/chain/delegate.d.ts.map +1 -1
  33. package/dist/cjs/chain/delegate.js +68 -6
  34. package/dist/cjs/chain/delegate.js.map +1 -1
  35. package/dist/cjs/chain/entityShape.d.ts +6 -0
  36. package/dist/cjs/chain/entityShape.d.ts.map +1 -1
  37. package/dist/cjs/chain/entityShape.js +24 -4
  38. package/dist/cjs/chain/entityShape.js.map +1 -1
  39. package/dist/cjs/chain/env.d.ts +1 -0
  40. package/dist/cjs/chain/env.d.ts.map +1 -1
  41. package/dist/cjs/chain/env.js +9 -1
  42. package/dist/cjs/chain/env.js.map +1 -1
  43. package/dist/cjs/chain/inviteMessages.d.ts +183 -0
  44. package/dist/cjs/chain/inviteMessages.d.ts.map +1 -0
  45. package/dist/cjs/chain/inviteMessages.js +289 -0
  46. package/dist/cjs/chain/inviteMessages.js.map +1 -0
  47. package/dist/cjs/chain/inviteProof.d.ts +121 -0
  48. package/dist/cjs/chain/inviteProof.d.ts.map +1 -0
  49. package/dist/cjs/chain/inviteProof.js +297 -0
  50. package/dist/cjs/chain/inviteProof.js.map +1 -0
  51. package/dist/cjs/chain/lane.d.ts +148 -0
  52. package/dist/cjs/chain/lane.d.ts.map +1 -0
  53. package/dist/cjs/chain/lane.js +220 -0
  54. package/dist/cjs/chain/lane.js.map +1 -0
  55. package/dist/cjs/chain/money.d.ts +12 -4
  56. package/dist/cjs/chain/money.d.ts.map +1 -1
  57. package/dist/cjs/chain/money.js +20 -7
  58. package/dist/cjs/chain/money.js.map +1 -1
  59. package/dist/cjs/chain/oracle.d.ts +2 -0
  60. package/dist/cjs/chain/oracle.d.ts.map +1 -1
  61. package/dist/cjs/chain/oracle.js +1 -1
  62. package/dist/cjs/chain/oracle.js.map +1 -1
  63. package/dist/cjs/chain/orgReviewBilling.js +1 -1
  64. package/dist/cjs/chain/orgReviewBilling.js.map +1 -1
  65. package/dist/cjs/chain/payoutTerms.d.ts.map +1 -1
  66. package/dist/cjs/chain/payoutTerms.js +1 -1
  67. package/dist/cjs/chain/payoutTerms.js.map +1 -1
  68. package/dist/cjs/chain/personReview.d.ts +218 -0
  69. package/dist/cjs/chain/personReview.d.ts.map +1 -0
  70. package/dist/cjs/chain/personReview.js +379 -0
  71. package/dist/cjs/chain/personReview.js.map +1 -0
  72. package/dist/cjs/chain/postFee.d.ts +11 -0
  73. package/dist/cjs/chain/postFee.d.ts.map +1 -0
  74. package/dist/cjs/chain/postFee.js +14 -0
  75. package/dist/cjs/chain/postFee.js.map +1 -0
  76. package/dist/cjs/chain/query.d.ts +55 -2
  77. package/dist/cjs/chain/query.d.ts.map +1 -1
  78. package/dist/cjs/chain/query.js +144 -8
  79. package/dist/cjs/chain/query.js.map +1 -1
  80. package/dist/cjs/chain/reviewBilling.d.ts +3 -27
  81. package/dist/cjs/chain/reviewBilling.d.ts.map +1 -1
  82. package/dist/cjs/chain/reviewBilling.js +5 -112
  83. package/dist/cjs/chain/reviewBilling.js.map +1 -1
  84. package/dist/cjs/chain.d.ts +2 -2
  85. package/dist/cjs/chain.d.ts.map +1 -1
  86. package/dist/cjs/chain.js +7 -2
  87. package/dist/cjs/chain.js.map +1 -1
  88. package/dist/cjs/config.d.ts +11 -2
  89. package/dist/cjs/config.d.ts.map +1 -1
  90. package/dist/cjs/config.js +5 -1
  91. package/dist/cjs/config.js.map +1 -1
  92. package/dist/cjs/data/agent.d.ts +2 -0
  93. package/dist/cjs/data/agent.d.ts.map +1 -1
  94. package/dist/cjs/data/agent.js +1 -0
  95. package/dist/cjs/data/agent.js.map +1 -1
  96. package/dist/cjs/data/board/assemble.d.ts +7 -2
  97. package/dist/cjs/data/board/assemble.d.ts.map +1 -1
  98. package/dist/cjs/data/board/assemble.js +76 -10
  99. package/dist/cjs/data/board/assemble.js.map +1 -1
  100. package/dist/cjs/data/board/facts.d.ts +2 -0
  101. package/dist/cjs/data/board/facts.d.ts.map +1 -1
  102. package/dist/cjs/data/board/facts.js +2 -1
  103. package/dist/cjs/data/board/facts.js.map +1 -1
  104. package/dist/cjs/data/board/read.d.ts +27 -3
  105. package/dist/cjs/data/board/read.d.ts.map +1 -1
  106. package/dist/cjs/data/board/read.js +122 -8
  107. package/dist/cjs/data/board/read.js.map +1 -1
  108. package/dist/cjs/data/board/types.d.ts +77 -5
  109. package/dist/cjs/data/board/types.d.ts.map +1 -1
  110. package/dist/cjs/data/board/types.js +5 -3
  111. package/dist/cjs/data/board/types.js.map +1 -1
  112. package/dist/cjs/data/checkers.d.ts +169 -0
  113. package/dist/cjs/data/checkers.d.ts.map +1 -0
  114. package/dist/cjs/data/checkers.js +354 -0
  115. package/dist/cjs/data/checkers.js.map +1 -0
  116. package/dist/cjs/data/checkersRead.d.ts +58 -0
  117. package/dist/cjs/data/checkersRead.d.ts.map +1 -0
  118. package/dist/cjs/data/checkersRead.js +263 -0
  119. package/dist/cjs/data/checkersRead.js.map +1 -0
  120. package/dist/cjs/data/denoms.d.ts.map +1 -1
  121. package/dist/cjs/data/denoms.js +1 -0
  122. package/dist/cjs/data/denoms.js.map +1 -1
  123. package/dist/cjs/data/docUrls.d.ts +2 -0
  124. package/dist/cjs/data/docUrls.d.ts.map +1 -1
  125. package/dist/cjs/data/docUrls.js +4 -1
  126. package/dist/cjs/data/docUrls.js.map +1 -1
  127. package/dist/cjs/data/docs.d.ts +3 -1
  128. package/dist/cjs/data/docs.d.ts.map +1 -1
  129. package/dist/cjs/data/docs.js +15 -2
  130. package/dist/cjs/data/docs.js.map +1 -1
  131. package/dist/cjs/data/engine.d.ts.map +1 -1
  132. package/dist/cjs/data/engine.js +12 -5
  133. package/dist/cjs/data/engine.js.map +1 -1
  134. package/dist/cjs/data/engineUrl.js +1 -1
  135. package/dist/cjs/data/engineUrl.js.map +1 -1
  136. package/dist/cjs/data/envelope.d.ts +18 -0
  137. package/dist/cjs/data/envelope.d.ts.map +1 -1
  138. package/dist/cjs/data/envelope.js +16 -1
  139. package/dist/cjs/data/envelope.js.map +1 -1
  140. package/dist/cjs/data/format.d.ts +18 -0
  141. package/dist/cjs/data/format.d.ts.map +1 -1
  142. package/dist/cjs/data/format.js +32 -2
  143. package/dist/cjs/data/format.js.map +1 -1
  144. package/dist/cjs/data/index.d.ts +2 -2
  145. package/dist/cjs/data/index.d.ts.map +1 -1
  146. package/dist/cjs/data/index.js +2 -1
  147. package/dist/cjs/data/index.js.map +1 -1
  148. package/dist/cjs/data/install.d.ts +63 -33
  149. package/dist/cjs/data/install.d.ts.map +1 -1
  150. package/dist/cjs/data/install.js +88 -45
  151. package/dist/cjs/data/install.js.map +1 -1
  152. package/dist/cjs/data/openness.d.ts +14 -1
  153. package/dist/cjs/data/openness.d.ts.map +1 -1
  154. package/dist/cjs/data/openness.js +14 -26
  155. package/dist/cjs/data/openness.js.map +1 -1
  156. package/dist/cjs/data/queue.d.ts +26 -0
  157. package/dist/cjs/data/queue.d.ts.map +1 -1
  158. package/dist/cjs/data/queue.js +57 -12
  159. package/dist/cjs/data/queue.js.map +1 -1
  160. package/dist/cjs/data/receipt.d.ts +19 -0
  161. package/dist/cjs/data/receipt.d.ts.map +1 -1
  162. package/dist/cjs/data/receipt.js +22 -5
  163. package/dist/cjs/data/receipt.js.map +1 -1
  164. package/dist/cjs/data/threads.d.ts +2 -0
  165. package/dist/cjs/data/threads.d.ts.map +1 -1
  166. package/dist/cjs/data/threads.js +3 -1
  167. package/dist/cjs/data/threads.js.map +1 -1
  168. package/dist/cjs/data/traceWords.js +1 -1
  169. package/dist/cjs/data/traceWords.js.map +1 -1
  170. package/dist/cjs/data/types.d.ts +6 -1
  171. package/dist/cjs/data/types.d.ts.map +1 -1
  172. package/dist/cjs/data/types.js.map +1 -1
  173. package/dist/cjs/data/whyReceipt.d.ts.map +1 -1
  174. package/dist/cjs/data/whyReceipt.js +10 -1
  175. package/dist/cjs/data/whyReceipt.js.map +1 -1
  176. package/dist/cjs/data/work.d.ts +5 -0
  177. package/dist/cjs/data/work.d.ts.map +1 -1
  178. package/dist/cjs/data/work.js +11 -5
  179. package/dist/cjs/data/work.js.map +1 -1
  180. package/dist/cjs/discovery.d.ts +64 -0
  181. package/dist/cjs/discovery.d.ts.map +1 -0
  182. package/dist/cjs/discovery.js +85 -0
  183. package/dist/cjs/discovery.js.map +1 -0
  184. package/dist/cjs/envRead.d.ts +1 -1
  185. package/dist/cjs/envRead.d.ts.map +1 -1
  186. package/dist/cjs/envRead.js +2 -1
  187. package/dist/cjs/envRead.js.map +1 -1
  188. package/dist/cjs/given.d.ts +14 -0
  189. package/dist/cjs/given.d.ts.map +1 -1
  190. package/dist/cjs/given.js +14 -2
  191. package/dist/cjs/given.js.map +1 -1
  192. package/dist/cjs/network.d.ts +3 -1
  193. package/dist/cjs/network.d.ts.map +1 -1
  194. package/dist/cjs/network.js +11 -3
  195. package/dist/cjs/network.js.map +1 -1
  196. package/dist/cjs/rubric/bridge.d.ts +8 -0
  197. package/dist/cjs/rubric/bridge.d.ts.map +1 -1
  198. package/dist/cjs/rubric/bridge.js +107 -8
  199. package/dist/cjs/rubric/bridge.js.map +1 -1
  200. package/dist/cjs/rubric/call.d.ts +35 -8
  201. package/dist/cjs/rubric/call.d.ts.map +1 -1
  202. package/dist/cjs/rubric/call.js +62 -20
  203. package/dist/cjs/rubric/call.js.map +1 -1
  204. package/dist/cjs/rubric/callTag.d.ts +5 -0
  205. package/dist/cjs/rubric/callTag.d.ts.map +1 -0
  206. package/dist/cjs/rubric/callTag.js +17 -0
  207. package/dist/cjs/rubric/callTag.js.map +1 -0
  208. package/dist/cjs/rubric/compose.d.ts.map +1 -1
  209. package/dist/cjs/rubric/compose.js +5 -3
  210. package/dist/cjs/rubric/compose.js.map +1 -1
  211. package/dist/cjs/rubric/draft.d.ts +9 -1
  212. package/dist/cjs/rubric/draft.d.ts.map +1 -1
  213. package/dist/cjs/rubric/draft.js +24 -2
  214. package/dist/cjs/rubric/draft.js.map +1 -1
  215. package/dist/cjs/rubric/gateMet.d.ts +17 -0
  216. package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
  217. package/dist/cjs/rubric/gateMet.js +36 -3
  218. package/dist/cjs/rubric/gateMet.js.map +1 -1
  219. package/dist/cjs/rubric/leg.js +3 -3
  220. package/dist/cjs/rubric/leg.js.map +1 -1
  221. package/dist/cjs/rubric/marketPlan.d.ts +2 -0
  222. package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
  223. package/dist/cjs/rubric/marketPlan.js.map +1 -1
  224. package/dist/cjs/rubric/planAsk.d.ts +23 -0
  225. package/dist/cjs/rubric/planAsk.d.ts.map +1 -0
  226. package/dist/cjs/rubric/planAsk.js +24 -0
  227. package/dist/cjs/rubric/planAsk.js.map +1 -0
  228. package/dist/cjs/rubric/report.d.ts +208 -0
  229. package/dist/cjs/rubric/report.d.ts.map +1 -0
  230. package/dist/cjs/rubric/report.js +384 -0
  231. package/dist/cjs/rubric/report.js.map +1 -0
  232. package/dist/cjs/rubric/reportLine.d.ts +31 -0
  233. package/dist/cjs/rubric/reportLine.d.ts.map +1 -0
  234. package/dist/cjs/rubric/reportLine.js +45 -0
  235. package/dist/cjs/rubric/reportLine.js.map +1 -0
  236. package/dist/cjs/rubric/reportTemplate.d.ts +30 -0
  237. package/dist/cjs/rubric/reportTemplate.d.ts.map +1 -0
  238. package/dist/cjs/rubric/reportTemplate.js +78 -0
  239. package/dist/cjs/rubric/reportTemplate.js.map +1 -0
  240. package/dist/cjs/rubric/share.d.ts +46 -0
  241. package/dist/cjs/rubric/share.d.ts.map +1 -0
  242. package/dist/cjs/rubric/share.js +65 -0
  243. package/dist/cjs/rubric/share.js.map +1 -0
  244. package/dist/cjs/rubric/terms.d.ts +76 -2
  245. package/dist/cjs/rubric/terms.d.ts.map +1 -1
  246. package/dist/cjs/rubric/terms.js +84 -4
  247. package/dist/cjs/rubric/terms.js.map +1 -1
  248. package/dist/cjs/verification/profile.d.ts +28 -0
  249. package/dist/cjs/verification/profile.d.ts.map +1 -0
  250. package/dist/cjs/verification/profile.js +126 -0
  251. package/dist/cjs/verification/profile.js.map +1 -0
  252. package/dist/cjs/verification/schema.d.ts +54 -0
  253. package/dist/cjs/verification/schema.d.ts.map +1 -0
  254. package/dist/cjs/verification/schema.js +49 -0
  255. package/dist/cjs/verification/schema.js.map +1 -0
  256. package/dist/esm/campaign/cleanup.js +1 -1
  257. package/dist/esm/campaign/cleanup.js.map +1 -1
  258. package/dist/esm/campaign/funding.d.ts.map +1 -1
  259. package/dist/esm/campaign/funding.js +2 -2
  260. package/dist/esm/campaign/funding.js.map +1 -1
  261. package/dist/esm/campaign/pool.js +3 -3
  262. package/dist/esm/campaign/pool.js.map +1 -1
  263. package/dist/esm/campaign/record.d.ts.map +1 -1
  264. package/dist/esm/campaign/record.js +2 -2
  265. package/dist/esm/campaign/record.js.map +1 -1
  266. package/dist/esm/campaign/spot.d.ts.map +1 -1
  267. package/dist/esm/campaign/spot.js +2 -1
  268. package/dist/esm/campaign/spot.js.map +1 -1
  269. package/dist/esm/campaign/spots.js +4 -4
  270. package/dist/esm/campaign/spots.js.map +1 -1
  271. package/dist/esm/campaign/treasurySends.d.ts.map +1 -1
  272. package/dist/esm/campaign/treasurySends.js +4 -4
  273. package/dist/esm/campaign/treasurySends.js.map +1 -1
  274. package/dist/esm/chain/ask.d.ts +17 -0
  275. package/dist/esm/chain/ask.d.ts.map +1 -1
  276. package/dist/esm/chain/ask.js +29 -12
  277. package/dist/esm/chain/ask.js.map +1 -1
  278. package/dist/esm/chain/broadcast.d.ts.map +1 -1
  279. package/dist/esm/chain/broadcast.js +7 -5
  280. package/dist/esm/chain/broadcast.js.map +1 -1
  281. package/dist/esm/chain/claimVerdict.d.ts +26 -0
  282. package/dist/esm/chain/claimVerdict.d.ts.map +1 -0
  283. package/dist/esm/chain/claimVerdict.js +30 -0
  284. package/dist/esm/chain/claimVerdict.js.map +1 -0
  285. package/dist/esm/chain/delegate.d.ts +46 -3
  286. package/dist/esm/chain/delegate.d.ts.map +1 -1
  287. package/dist/esm/chain/delegate.js +60 -5
  288. package/dist/esm/chain/delegate.js.map +1 -1
  289. package/dist/esm/chain/entityShape.d.ts +6 -0
  290. package/dist/esm/chain/entityShape.d.ts.map +1 -1
  291. package/dist/esm/chain/entityShape.js +20 -3
  292. package/dist/esm/chain/entityShape.js.map +1 -1
  293. package/dist/esm/chain/env.d.ts +1 -0
  294. package/dist/esm/chain/env.d.ts.map +1 -1
  295. package/dist/esm/chain/env.js +7 -0
  296. package/dist/esm/chain/env.js.map +1 -1
  297. package/dist/esm/chain/inviteMessages.d.ts +183 -0
  298. package/dist/esm/chain/inviteMessages.d.ts.map +1 -0
  299. package/dist/esm/chain/inviteMessages.js +246 -0
  300. package/dist/esm/chain/inviteMessages.js.map +1 -0
  301. package/dist/esm/chain/inviteProof.d.ts +121 -0
  302. package/dist/esm/chain/inviteProof.d.ts.map +1 -0
  303. package/dist/esm/chain/inviteProof.js +278 -0
  304. package/dist/esm/chain/inviteProof.js.map +1 -0
  305. package/dist/esm/chain/lane.d.ts +148 -0
  306. package/dist/esm/chain/lane.d.ts.map +1 -0
  307. package/dist/esm/chain/lane.js +170 -0
  308. package/dist/esm/chain/lane.js.map +1 -0
  309. package/dist/esm/chain/money.d.ts +12 -4
  310. package/dist/esm/chain/money.d.ts.map +1 -1
  311. package/dist/esm/chain/money.js +19 -7
  312. package/dist/esm/chain/money.js.map +1 -1
  313. package/dist/esm/chain/oracle.d.ts +2 -0
  314. package/dist/esm/chain/oracle.d.ts.map +1 -1
  315. package/dist/esm/chain/oracle.js +1 -1
  316. package/dist/esm/chain/oracle.js.map +1 -1
  317. package/dist/esm/chain/orgReviewBilling.js +1 -1
  318. package/dist/esm/chain/orgReviewBilling.js.map +1 -1
  319. package/dist/esm/chain/payoutTerms.d.ts.map +1 -1
  320. package/dist/esm/chain/payoutTerms.js +1 -1
  321. package/dist/esm/chain/payoutTerms.js.map +1 -1
  322. package/dist/esm/chain/personReview.d.ts +218 -0
  323. package/dist/esm/chain/personReview.d.ts.map +1 -0
  324. package/dist/esm/chain/personReview.js +322 -0
  325. package/dist/esm/chain/personReview.js.map +1 -0
  326. package/dist/esm/chain/postFee.d.ts +11 -0
  327. package/dist/esm/chain/postFee.d.ts.map +1 -0
  328. package/dist/esm/chain/postFee.js +11 -0
  329. package/dist/esm/chain/postFee.js.map +1 -0
  330. package/dist/esm/chain/query.d.ts +55 -2
  331. package/dist/esm/chain/query.d.ts.map +1 -1
  332. package/dist/esm/chain/query.js +136 -8
  333. package/dist/esm/chain/query.js.map +1 -1
  334. package/dist/esm/chain/reviewBilling.d.ts +3 -27
  335. package/dist/esm/chain/reviewBilling.d.ts.map +1 -1
  336. package/dist/esm/chain/reviewBilling.js +5 -108
  337. package/dist/esm/chain/reviewBilling.js.map +1 -1
  338. package/dist/esm/chain.d.ts +2 -2
  339. package/dist/esm/chain.d.ts.map +1 -1
  340. package/dist/esm/chain.js +2 -2
  341. package/dist/esm/chain.js.map +1 -1
  342. package/dist/esm/config.d.ts +11 -2
  343. package/dist/esm/config.d.ts.map +1 -1
  344. package/dist/esm/config.js +6 -2
  345. package/dist/esm/config.js.map +1 -1
  346. package/dist/esm/data/agent.d.ts +2 -0
  347. package/dist/esm/data/agent.d.ts.map +1 -1
  348. package/dist/esm/data/agent.js +1 -0
  349. package/dist/esm/data/agent.js.map +1 -1
  350. package/dist/esm/data/board/assemble.d.ts +7 -2
  351. package/dist/esm/data/board/assemble.d.ts.map +1 -1
  352. package/dist/esm/data/board/assemble.js +73 -9
  353. package/dist/esm/data/board/assemble.js.map +1 -1
  354. package/dist/esm/data/board/facts.d.ts +2 -0
  355. package/dist/esm/data/board/facts.d.ts.map +1 -1
  356. package/dist/esm/data/board/facts.js +2 -1
  357. package/dist/esm/data/board/facts.js.map +1 -1
  358. package/dist/esm/data/board/read.d.ts +27 -3
  359. package/dist/esm/data/board/read.d.ts.map +1 -1
  360. package/dist/esm/data/board/read.js +123 -10
  361. package/dist/esm/data/board/read.js.map +1 -1
  362. package/dist/esm/data/board/types.d.ts +77 -5
  363. package/dist/esm/data/board/types.d.ts.map +1 -1
  364. package/dist/esm/data/board/types.js +5 -3
  365. package/dist/esm/data/board/types.js.map +1 -1
  366. package/dist/esm/data/checkers.d.ts +169 -0
  367. package/dist/esm/data/checkers.d.ts.map +1 -0
  368. package/dist/esm/data/checkers.js +304 -0
  369. package/dist/esm/data/checkers.js.map +1 -0
  370. package/dist/esm/data/checkersRead.d.ts +58 -0
  371. package/dist/esm/data/checkersRead.d.ts.map +1 -0
  372. package/dist/esm/data/checkersRead.js +252 -0
  373. package/dist/esm/data/checkersRead.js.map +1 -0
  374. package/dist/esm/data/denoms.d.ts.map +1 -1
  375. package/dist/esm/data/denoms.js +1 -0
  376. package/dist/esm/data/denoms.js.map +1 -1
  377. package/dist/esm/data/docUrls.d.ts +2 -0
  378. package/dist/esm/data/docUrls.d.ts.map +1 -1
  379. package/dist/esm/data/docUrls.js +2 -0
  380. package/dist/esm/data/docUrls.js.map +1 -1
  381. package/dist/esm/data/docs.d.ts +3 -1
  382. package/dist/esm/data/docs.d.ts.map +1 -1
  383. package/dist/esm/data/docs.js +15 -2
  384. package/dist/esm/data/docs.js.map +1 -1
  385. package/dist/esm/data/engine.d.ts.map +1 -1
  386. package/dist/esm/data/engine.js +12 -5
  387. package/dist/esm/data/engine.js.map +1 -1
  388. package/dist/esm/data/engineUrl.js +2 -2
  389. package/dist/esm/data/engineUrl.js.map +1 -1
  390. package/dist/esm/data/envelope.d.ts +18 -0
  391. package/dist/esm/data/envelope.d.ts.map +1 -1
  392. package/dist/esm/data/envelope.js +14 -0
  393. package/dist/esm/data/envelope.js.map +1 -1
  394. package/dist/esm/data/format.d.ts +18 -0
  395. package/dist/esm/data/format.d.ts.map +1 -1
  396. package/dist/esm/data/format.js +28 -1
  397. package/dist/esm/data/format.js.map +1 -1
  398. package/dist/esm/data/index.d.ts +2 -2
  399. package/dist/esm/data/index.d.ts.map +1 -1
  400. package/dist/esm/data/index.js +1 -1
  401. package/dist/esm/data/index.js.map +1 -1
  402. package/dist/esm/data/install.d.ts +63 -33
  403. package/dist/esm/data/install.d.ts.map +1 -1
  404. package/dist/esm/data/install.js +81 -44
  405. package/dist/esm/data/install.js.map +1 -1
  406. package/dist/esm/data/openness.d.ts +14 -1
  407. package/dist/esm/data/openness.d.ts.map +1 -1
  408. package/dist/esm/data/openness.js +14 -26
  409. package/dist/esm/data/openness.js.map +1 -1
  410. package/dist/esm/data/queue.d.ts +26 -0
  411. package/dist/esm/data/queue.d.ts.map +1 -1
  412. package/dist/esm/data/queue.js +50 -9
  413. package/dist/esm/data/queue.js.map +1 -1
  414. package/dist/esm/data/receipt.d.ts +19 -0
  415. package/dist/esm/data/receipt.d.ts.map +1 -1
  416. package/dist/esm/data/receipt.js +20 -4
  417. package/dist/esm/data/receipt.js.map +1 -1
  418. package/dist/esm/data/threads.d.ts +2 -0
  419. package/dist/esm/data/threads.d.ts.map +1 -1
  420. package/dist/esm/data/threads.js +3 -1
  421. package/dist/esm/data/threads.js.map +1 -1
  422. package/dist/esm/data/traceWords.js +1 -1
  423. package/dist/esm/data/traceWords.js.map +1 -1
  424. package/dist/esm/data/types.d.ts +6 -1
  425. package/dist/esm/data/types.d.ts.map +1 -1
  426. package/dist/esm/data/types.js.map +1 -1
  427. package/dist/esm/data/whyReceipt.d.ts.map +1 -1
  428. package/dist/esm/data/whyReceipt.js +10 -1
  429. package/dist/esm/data/whyReceipt.js.map +1 -1
  430. package/dist/esm/data/work.d.ts +5 -0
  431. package/dist/esm/data/work.d.ts.map +1 -1
  432. package/dist/esm/data/work.js +11 -5
  433. package/dist/esm/data/work.js.map +1 -1
  434. package/dist/esm/discovery.d.ts +64 -0
  435. package/dist/esm/discovery.d.ts.map +1 -0
  436. package/dist/esm/discovery.js +74 -0
  437. package/dist/esm/discovery.js.map +1 -0
  438. package/dist/esm/envRead.d.ts +1 -1
  439. package/dist/esm/envRead.d.ts.map +1 -1
  440. package/dist/esm/envRead.js +1 -1
  441. package/dist/esm/envRead.js.map +1 -1
  442. package/dist/esm/given.d.ts +14 -0
  443. package/dist/esm/given.d.ts.map +1 -1
  444. package/dist/esm/given.js +11 -1
  445. package/dist/esm/given.js.map +1 -1
  446. package/dist/esm/network.d.ts +3 -1
  447. package/dist/esm/network.d.ts.map +1 -1
  448. package/dist/esm/network.js +10 -3
  449. package/dist/esm/network.js.map +1 -1
  450. package/dist/esm/rubric/bridge.d.ts +8 -0
  451. package/dist/esm/rubric/bridge.d.ts.map +1 -1
  452. package/dist/esm/rubric/bridge.js +105 -7
  453. package/dist/esm/rubric/bridge.js.map +1 -1
  454. package/dist/esm/rubric/call.d.ts +35 -8
  455. package/dist/esm/rubric/call.d.ts.map +1 -1
  456. package/dist/esm/rubric/call.js +57 -16
  457. package/dist/esm/rubric/call.js.map +1 -1
  458. package/dist/esm/rubric/callTag.d.ts +5 -0
  459. package/dist/esm/rubric/callTag.d.ts.map +1 -0
  460. package/dist/esm/rubric/callTag.js +12 -0
  461. package/dist/esm/rubric/callTag.js.map +1 -0
  462. package/dist/esm/rubric/compose.d.ts.map +1 -1
  463. package/dist/esm/rubric/compose.js +5 -3
  464. package/dist/esm/rubric/compose.js.map +1 -1
  465. package/dist/esm/rubric/draft.d.ts +9 -1
  466. package/dist/esm/rubric/draft.d.ts.map +1 -1
  467. package/dist/esm/rubric/draft.js +23 -2
  468. package/dist/esm/rubric/draft.js.map +1 -1
  469. package/dist/esm/rubric/gateMet.d.ts +17 -0
  470. package/dist/esm/rubric/gateMet.d.ts.map +1 -1
  471. package/dist/esm/rubric/gateMet.js +34 -2
  472. package/dist/esm/rubric/gateMet.js.map +1 -1
  473. package/dist/esm/rubric/leg.js +4 -4
  474. package/dist/esm/rubric/leg.js.map +1 -1
  475. package/dist/esm/rubric/marketPlan.d.ts +2 -0
  476. package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
  477. package/dist/esm/rubric/marketPlan.js.map +1 -1
  478. package/dist/esm/rubric/planAsk.d.ts +23 -0
  479. package/dist/esm/rubric/planAsk.d.ts.map +1 -0
  480. package/dist/esm/rubric/planAsk.js +20 -0
  481. package/dist/esm/rubric/planAsk.js.map +1 -0
  482. package/dist/esm/rubric/report.d.ts +208 -0
  483. package/dist/esm/rubric/report.d.ts.map +1 -0
  484. package/dist/esm/rubric/report.js +371 -0
  485. package/dist/esm/rubric/report.js.map +1 -0
  486. package/dist/esm/rubric/reportLine.d.ts +31 -0
  487. package/dist/esm/rubric/reportLine.d.ts.map +1 -0
  488. package/dist/esm/rubric/reportLine.js +40 -0
  489. package/dist/esm/rubric/reportLine.js.map +1 -0
  490. package/dist/esm/rubric/reportTemplate.d.ts +30 -0
  491. package/dist/esm/rubric/reportTemplate.d.ts.map +1 -0
  492. package/dist/esm/rubric/reportTemplate.js +74 -0
  493. package/dist/esm/rubric/reportTemplate.js.map +1 -0
  494. package/dist/esm/rubric/share.d.ts +46 -0
  495. package/dist/esm/rubric/share.d.ts.map +1 -0
  496. package/dist/esm/rubric/share.js +58 -0
  497. package/dist/esm/rubric/share.js.map +1 -0
  498. package/dist/esm/rubric/terms.d.ts +76 -2
  499. package/dist/esm/rubric/terms.d.ts.map +1 -1
  500. package/dist/esm/rubric/terms.js +78 -3
  501. package/dist/esm/rubric/terms.js.map +1 -1
  502. package/dist/esm/verification/profile.d.ts +28 -0
  503. package/dist/esm/verification/profile.d.ts.map +1 -0
  504. package/dist/esm/verification/profile.js +122 -0
  505. package/dist/esm/verification/profile.js.map +1 -0
  506. package/dist/esm/verification/schema.d.ts +54 -0
  507. package/dist/esm/verification/schema.d.ts.map +1 -0
  508. package/dist/esm/verification/schema.js +46 -0
  509. package/dist/esm/verification/schema.js.map +1 -0
  510. package/package.json +22 -2
@@ -0,0 +1,183 @@
1
+ /**
2
+ * The words a person or their agent signs to touch an ask's list, apply to
3
+ * it, read their own invitations, or write their page — one moment, one
4
+ * address, one thing (docs/verified-work-private-calls-thinking.md, §5–§7).
5
+ *
6
+ * Shaped like the gate's own proof (`accountProof.ts` `submitProofMessage`):
7
+ * the worker checks the words first, then the signature, then that the key
8
+ * may act for the address. Pure, shared by the browser, the MCP and the
9
+ * worker, so no two of them can disagree on a colon.
10
+ */
11
+ /** What a poster (or the agent acting for them) may do to an ask's list. */
12
+ export declare const INVITE_OPS: readonly ["add", "list", "revoke", "applications", "decide", "share"];
13
+ export type InviteOp = (typeof INVITE_OPS)[number];
14
+ /** The acts that change the list: their words carry a digest of what they change (`inviteOpBody`), so a seen proof cannot be replayed for other rows. */
15
+ export declare const INVITE_WRITES: readonly InviteOp[];
16
+ /** What a poster's act changes, as its proof digests it: the items added, the row taken off, the decision. Reads name nothing. */
17
+ export declare const inviteOpBody: (op: InviteOp, body: Record<string, unknown>) => Record<string, unknown>;
18
+ /** `invites:<op>:<ask>:<issuer>:<now>`, and `:<digest>` for a write — the poster's side. */
19
+ export declare const inviteOpMessage: (op: InviteOp, collectionId: string, issuer: string, now?: number, digest?: string) => string;
20
+ /** The words for one act on the list, digest and all: what the browser and the MCP sign. */
21
+ export declare function inviteOpWords(op: InviteOp, collectionId: string, issuer: string, body: Record<string, unknown>, now?: number): Promise<string>;
22
+ /** `apply:<ask>:<address>:<now>` — somebody asking to enter. */
23
+ export declare const applyMessage: (collectionId: string, address: string, now?: number) => string;
24
+ /** `invited:<address>:<now>` — somebody reading which asks they were invited to. */
25
+ export declare const invitedMessage: (address: string, now?: number) => string;
26
+ /** `answers:<ask>:<address>:<now>` — somebody reading a private ask's answers. Its own words, bound to the one ask and short-lived (`READ_PROOF_MAX_AGE_MS`), so a proof seen once neither reads invitations nor lasts a day (review M1). */
27
+ export declare const answersMessage: (collectionId: string, address: string, now?: number) => string;
28
+ /** A read signed on the spot, like a staff act: minutes, not the day a phone's clock needs. */
29
+ export declare const READ_PROOF_MAX_AGE_MS: number;
30
+ /** How far ahead of the server a proof that orders rows (a vetting request) may be signed: clocks drift, but a request from tomorrow would block today's decisions (review L1). */
31
+ export declare const FUTURE_SKEW_MS: number;
32
+ /**
33
+ * The words MCP builds from before 2026-10-22 sign, which npx may keep cached: `vet-request:<address>:<now>` (no
34
+ * digest) and `invited:<address>:<now>` for reading one's own vetting. Accepted until this moment so those builds keep
35
+ * working while people refresh (review M2). Remove the legacy readers in `workers/src/invites/handle.ts` after it.
36
+ */
37
+ export declare const LEGACY_WORDS_UNTIL: number;
38
+ /** `calls:<address>:<now>` — a poster reading their own open calls that have a list, to invite somebody from a page. */
39
+ export declare const callsMessage: (address: string, now?: number) => string;
40
+ /** `notices:<address>:<now>` — somebody reading, or marking read, what reached them. */
41
+ export declare const noticesMessage: (address: string, now?: number) => string;
42
+ /** `tell:<ask>:<address>:<now>` — somebody asking to be told about one ask, on this phone. */
43
+ export declare const tellMessage: (collectionId: string, address: string, now?: number) => string;
44
+ /**
45
+ * What reaches a person (docs/verified-work-private-calls-thinking.md, the notices round): each one a row, read three ways.
46
+ * `ok-waiting` / `ok-reminder`: an answer (a review's report) waits for this person's final OK, and still waits days
47
+ * later (workers/src/invites/waiting.ts).
48
+ */
49
+ export declare const NOTICE_KINDS: readonly ["application", "link-opened", "admitted", "declined", "invited", "ok-waiting", "ok-reminder"];
50
+ /**
51
+ * `report-paid` / `report-declined`: this person's answer was approved and paid, or turned down; `new-report`: an answer
52
+ * arrived on this person's ask while someone else gives the final OK. Not choosable on a phone (types only, so the
53
+ * pages that list the kinds carry no more bytes): like a waiting answer, they reach every phone watching the ask.
54
+ */
55
+ export type NoticeKind = (typeof NOTICE_KINDS)[number] | "report-paid" | "report-declined" | "new-report";
56
+ /** `hands:<address>:<prefAt>:<digest>` — a person writing their own page; the digest is over the page's canonical JSON. */
57
+ export declare const handsMessage: (address: string, prefAt: number, digest: string) => string;
58
+ /** `vetting-mine:<address>:<now>` — a person reading where their own vetting stands. Its own words, so a proof made for another read unlocks nothing here (review M2). */
59
+ export declare const vettingMineMessage: (address: string, now?: number) => string;
60
+ /** `vetting-queue:<by>:<now>` — a vetter reading the staff queue. */
61
+ export declare const vettingQueueMessage: (by: string, now?: number) => string;
62
+ /** A staff act is signed on the spot, so its proof lives minutes, not the day a phone's clock needs. */
63
+ export declare const STAFF_PROOF_MAX_AGE_MS: number;
64
+ /** What a vetting request says, as its proof digests it. */
65
+ export declare const vetRequestBody: (body: Record<string, unknown>) => Record<string, unknown>;
66
+ /** `vet-request:<address>:<now>:<digest>` — a person asking IXO to vet their page; the digest covers the note (review L2). */
67
+ export declare const vetRequestMessage: (address: string, now?: number, digest?: string) => string;
68
+ /** The words a person signs to ask for vetting, digest and all. */
69
+ export declare function vetRequestWords(address: string, body: Record<string, unknown>, now?: number): Promise<string>;
70
+ /** What a vet decision says, as its proof digests it: the decision, the page (its signed moment) it is about, the note and the scope (review M1). */
71
+ export declare const vetBody: (body: Record<string, unknown>) => Record<string, unknown>;
72
+ /** `vet:<address>:<by>:<decision>:<now>:<digest>` — a vetter signing what they decided about one version of a page. */
73
+ export declare const vetMessage: (address: string, by: string, decision: "vetted" | "declined", now?: number, digest?: string) => string;
74
+ /** The words a vetter signs for a decision, digest and all: what the browser signs. */
75
+ export declare function vetWords(address: string, by: string, body: {
76
+ decision: "vetted" | "declined";
77
+ prefAt: number;
78
+ note?: string;
79
+ scope?: string;
80
+ }, now?: number): Promise<string>;
81
+ /** `hands-remove:<address>:<prefAt>` — a person taking their page down. The moment orders it against every write of the page, so an older page replayed cannot bring it back. */
82
+ export declare const handsRemoveMessage: (address: string, prefAt: number) => string;
83
+ export type ProofWords = "ok" | "mismatch" | "stale";
84
+ /**
85
+ * Independent checks of a profile (docs/independent-verification.md): a person asks a provider,
86
+ * the provider (or, for IXO, one of its approvers) decides, and the person may take a check off
87
+ * their page. One family of words, `checks:<act>:<signer>:<now>:<digest>`, the digest over every
88
+ * other field the request carries, so a proof seen once cannot carry other values.
89
+ */
90
+ export declare const CHECK_ACTS: readonly ["request", "mine", "queue", "decide", "upload", "remove", "given", "withdraw"];
91
+ export type CheckAct = (typeof CHECK_ACTS)[number];
92
+ /** The fields a check proof digests: everything but the signer and the proof itself (`onBehalfOf` is signed, so a proof cannot be replayed as another principal). */
93
+ export declare const checkBody: (body: Record<string, unknown>) => Record<string, unknown>;
94
+ /**
95
+ * What an approver read, as one digest (`seen` on an approve): who it is about, the offer, the one line,
96
+ * the links and the request's version, which goes up on every edit. The worker refuses an approve whose
97
+ * `seen` is not the request as it is now, so a request changed after it was opened is never signed.
98
+ */
99
+ export declare const checkSeen: (row: {
100
+ subject: string;
101
+ offer_id: string;
102
+ claim_kind: string;
103
+ statement: string;
104
+ evidence: string[];
105
+ version: number;
106
+ }) => Promise<string>;
107
+ export declare const checkMessage: (act: CheckAct, signer: string, now?: number, digest?: string) => string;
108
+ /** The words to sign for a check act, digest and all. */
109
+ export declare function checkWords(act: CheckAct, signer: string, body: Record<string, unknown>, now?: number): Promise<string>;
110
+ /** Signed on the spot, like a staff act: minutes, not a day. */
111
+ export declare function readCheckMessage(message: string, expected: {
112
+ act: CheckAct;
113
+ signer: string;
114
+ digest: string;
115
+ }, now?: number, maxAgeMs?: number): ProofWords;
116
+ /** The four shapes read back: the right words, about the right thing, fresh. */
117
+ export declare function readInviteOpMessage(message: string, expected: {
118
+ op: InviteOp;
119
+ collectionId: string;
120
+ issuer: string;
121
+ digest?: string;
122
+ }, now?: number, maxAgeMs?: number): ProofWords;
123
+ export declare function readApplyMessage(message: string, expected: {
124
+ collectionId: string;
125
+ address: string;
126
+ }, now?: number, maxAgeMs?: number): ProofWords;
127
+ export declare function readInvitedMessage(message: string, expected: {
128
+ address: string;
129
+ }, now?: number, maxAgeMs?: number): ProofWords;
130
+ export declare function readAnswersMessage(message: string, expected: {
131
+ collectionId: string;
132
+ address: string;
133
+ }, now?: number, maxAgeMs?: number): ProofWords;
134
+ /** The old, digest-less `vet-request:<address>:<now>` (see `LEGACY_WORDS_UNTIL`): "mismatch" once the window closes. */
135
+ export declare function readLegacyVetRequestMessage(message: string, expected: {
136
+ address: string;
137
+ }, now?: number, maxAgeMs?: number): ProofWords;
138
+ export declare function readCallsMessage(message: string, expected: {
139
+ address: string;
140
+ }, now?: number, maxAgeMs?: number): ProofWords;
141
+ export declare function readNoticesMessage(message: string, expected: {
142
+ address: string;
143
+ }, now?: number, maxAgeMs?: number): ProofWords;
144
+ export declare function readTellMessage(message: string, expected: {
145
+ collectionId: string;
146
+ address: string;
147
+ }, now?: number, maxAgeMs?: number): ProofWords;
148
+ /** A page's proof names its moment (`prefAt`) and its bytes; newest wins, so an old one replayed changes nothing. */
149
+ export declare function readHandsMessage(message: string, expected: {
150
+ address: string;
151
+ prefAt: number;
152
+ digest: string;
153
+ }): "ok" | "mismatch";
154
+ export declare function readVettingMineMessage(message: string, expected: {
155
+ address: string;
156
+ }, now?: number, maxAgeMs?: number): ProofWords;
157
+ export declare function readVettingQueueMessage(message: string, expected: {
158
+ by: string;
159
+ }, now?: number, maxAgeMs?: number): ProofWords;
160
+ export declare function readVetRequestMessage(message: string, expected: {
161
+ address: string;
162
+ digest: string;
163
+ }, now?: number, maxAgeMs?: number): ProofWords;
164
+ export declare function readVetMessage(message: string, expected: {
165
+ address: string;
166
+ by: string;
167
+ decision: "vetted" | "declined";
168
+ digest: string;
169
+ }, now?: number, maxAgeMs?: number): ProofWords;
170
+ /** A removal's proof names whose page and the moment; like a page's, the store decides by the moment, not by the clock. */
171
+ export declare function readHandsRemoveMessage(message: string, expected: {
172
+ address: string;
173
+ prefAt: number;
174
+ }): "ok" | "mismatch";
175
+ /**
176
+ * JSON with its keys in order at every depth, so the same page gives the same
177
+ * bytes wherever it is written — the digest a page's proof signs is over this.
178
+ */
179
+ export declare function canonicalJson(value: unknown): string;
180
+ /** sha256 of the canonical JSON, hex. Web Crypto, so the browser, the MCP and the worker agree. */
181
+ export declare function digestOf(value: unknown): Promise<string>;
182
+ /** A handle: lowercase letters, digits and dashes, 3 to 30 long, starting with a letter. */
183
+ //# sourceMappingURL=inviteMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inviteMessages.d.ts","sourceRoot":"","sources":["../../../src/chain/inviteMessages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,246 @@
1
+ /**
2
+ * The words a person or their agent signs to touch an ask's list, apply to
3
+ * it, read their own invitations, or write their page — one moment, one
4
+ * address, one thing (docs/verified-work-private-calls-thinking.md, §5–§7).
5
+ *
6
+ * Shaped like the gate's own proof (`accountProof.ts` `submitProofMessage`):
7
+ * the worker checks the words first, then the signature, then that the key
8
+ * may act for the address. Pure, shared by the browser, the MCP and the
9
+ * worker, so no two of them can disagree on a colon.
10
+ */
11
+ /**
12
+ * The same window as a submission proof (`accountProof.ts` `PROOF_MAX_AGE_MS`):
13
+ * a day, for phones whose clocks run hours wrong. Restated here rather than
14
+ * imported, because that module carries `@cosmjs/crypto` and this one is read
15
+ * by client islands on the call pages, which sit under a first-load ceiling.
16
+ */
17
+ const PROOF_MAX_AGE_MS = 24 * 3_600_000;
18
+ /** What a poster (or the agent acting for them) may do to an ask's list. */
19
+ export const INVITE_OPS = ["add", "list", "revoke", "applications", "decide", "share"];
20
+ /** The acts that change the list: their words carry a digest of what they change (`inviteOpBody`), so a seen proof cannot be replayed for other rows. */
21
+ export const INVITE_WRITES = ["add", "revoke", "decide", "share"];
22
+ /** What a poster's act changes, as its proof digests it: the items added, the row taken off, the decision. Reads name nothing. */
23
+ export const inviteOpBody = (op, body) => op === "add"
24
+ ? { items: body["items"] ?? null, note: body["note"] ?? null }
25
+ : op === "revoke"
26
+ ? { id: body["id"] ?? null, address: body["address"] ?? null }
27
+ : op === "decide"
28
+ ? { address: body["address"] ?? null, decision: body["decision"] ?? null }
29
+ : op === "share"
30
+ ? { audience: body["audience"] ?? null, delegation: body["delegation"] ?? null }
31
+ : {};
32
+ /** `invites:<op>:<ask>:<issuer>:<now>`, and `:<digest>` for a write — the poster's side. */
33
+ export const inviteOpMessage = (op, collectionId, issuer, now = Date.now(), digest) => `invites:${op}:${collectionId}:${issuer}:${now}${digest ? `:${digest}` : ""}`;
34
+ /** The words for one act on the list, digest and all: what the browser and the MCP sign. */
35
+ export async function inviteOpWords(op, collectionId, issuer, body, now = Date.now()) {
36
+ return inviteOpMessage(op, collectionId, issuer, now, INVITE_WRITES.includes(op) ? await digestOf(inviteOpBody(op, body)) : undefined);
37
+ }
38
+ /** `apply:<ask>:<address>:<now>` — somebody asking to enter. */
39
+ export const applyMessage = (collectionId, address, now = Date.now()) => `apply:${collectionId}:${address}:${now}`;
40
+ /** `invited:<address>:<now>` — somebody reading which asks they were invited to. */
41
+ export const invitedMessage = (address, now = Date.now()) => `invited:${address}:${now}`;
42
+ /** `answers:<ask>:<address>:<now>` — somebody reading a private ask's answers. Its own words, bound to the one ask and short-lived (`READ_PROOF_MAX_AGE_MS`), so a proof seen once neither reads invitations nor lasts a day (review M1). */
43
+ export const answersMessage = (collectionId, address, now = Date.now()) => `answers:${collectionId}:${address}:${now}`;
44
+ /** A read signed on the spot, like a staff act: minutes, not the day a phone's clock needs. */
45
+ export const READ_PROOF_MAX_AGE_MS = 15 * 60_000;
46
+ /** How far ahead of the server a proof that orders rows (a vetting request) may be signed: clocks drift, but a request from tomorrow would block today's decisions (review L1). */
47
+ export const FUTURE_SKEW_MS = 5 * 60_000;
48
+ /**
49
+ * The words MCP builds from before 2026-10-22 sign, which npx may keep cached: `vet-request:<address>:<now>` (no
50
+ * digest) and `invited:<address>:<now>` for reading one's own vetting. Accepted until this moment so those builds keep
51
+ * working while people refresh (review M2). Remove the legacy readers in `workers/src/invites/handle.ts` after it.
52
+ */
53
+ export const LEGACY_WORDS_UNTIL = Date.parse("2026-11-05T00:00:00Z");
54
+ /** `calls:<address>:<now>` — a poster reading their own open calls that have a list, to invite somebody from a page. */
55
+ export const callsMessage = (address, now = Date.now()) => `calls:${address}:${now}`;
56
+ /** `notices:<address>:<now>` — somebody reading, or marking read, what reached them. */
57
+ export const noticesMessage = (address, now = Date.now()) => `notices:${address}:${now}`;
58
+ /** `tell:<ask>:<address>:<now>` — somebody asking to be told about one ask, on this phone. */
59
+ export const tellMessage = (collectionId, address, now = Date.now()) => `tell:${collectionId}:${address}:${now}`;
60
+ /**
61
+ * What reaches a person (docs/verified-work-private-calls-thinking.md, the notices round): each one a row, read three ways.
62
+ * `ok-waiting` / `ok-reminder`: an answer (a review's report) waits for this person's final OK, and still waits days
63
+ * later (workers/src/invites/waiting.ts).
64
+ */
65
+ export const NOTICE_KINDS = ["application", "link-opened", "admitted", "declined", "invited", "ok-waiting", "ok-reminder"];
66
+ /** `hands:<address>:<prefAt>:<digest>` — a person writing their own page; the digest is over the page's canonical JSON. */
67
+ export const handsMessage = (address, prefAt, digest) => `hands:${address}:${prefAt}:${digest}`;
68
+ /** `vetting-mine:<address>:<now>` — a person reading where their own vetting stands. Its own words, so a proof made for another read unlocks nothing here (review M2). */
69
+ export const vettingMineMessage = (address, now = Date.now()) => `vetting-mine:${address}:${now}`;
70
+ /** `vetting-queue:<by>:<now>` — a vetter reading the staff queue. */
71
+ export const vettingQueueMessage = (by, now = Date.now()) => `vetting-queue:${by}:${now}`;
72
+ /** A staff act is signed on the spot, so its proof lives minutes, not the day a phone's clock needs. */
73
+ export const STAFF_PROOF_MAX_AGE_MS = 15 * 60_000;
74
+ /** What a vetting request says, as its proof digests it. */
75
+ export const vetRequestBody = (body) => ({ note: body["note"] ?? null });
76
+ /** `vet-request:<address>:<now>:<digest>` — a person asking IXO to vet their page; the digest covers the note (review L2). */
77
+ export const vetRequestMessage = (address, now = Date.now(), digest = "") => `vet-request:${address}:${now}:${digest}`;
78
+ /** The words a person signs to ask for vetting, digest and all. */
79
+ export async function vetRequestWords(address, body, now = Date.now()) {
80
+ return vetRequestMessage(address, now, await digestOf(vetRequestBody(body)));
81
+ }
82
+ /** What a vet decision says, as its proof digests it: the decision, the page (its signed moment) it is about, the note and the scope (review M1). */
83
+ export const vetBody = (body) => ({ decision: body["decision"] ?? null, prefAt: body["prefAt"] ?? null, note: body["note"] ?? null, scope: body["scope"] ?? null });
84
+ /** `vet:<address>:<by>:<decision>:<now>:<digest>` — a vetter signing what they decided about one version of a page. */
85
+ export const vetMessage = (address, by, decision, now = Date.now(), digest = "") => `vet:${address}:${by}:${decision}:${now}:${digest}`;
86
+ /** The words a vetter signs for a decision, digest and all: what the browser signs. */
87
+ export async function vetWords(address, by, body, now = Date.now()) {
88
+ return vetMessage(address, by, body.decision, now, await digestOf(vetBody(body)));
89
+ }
90
+ /** `hands-remove:<address>:<prefAt>` — a person taking their page down. The moment orders it against every write of the page, so an older page replayed cannot bring it back. */
91
+ export const handsRemoveMessage = (address, prefAt) => `hands-remove:${address}:${prefAt}`;
92
+ /**
93
+ * Independent checks of a profile (docs/independent-verification.md): a person asks a provider,
94
+ * the provider (or, for IXO, one of its approvers) decides, and the person may take a check off
95
+ * their page. One family of words, `checks:<act>:<signer>:<now>:<digest>`, the digest over every
96
+ * other field the request carries, so a proof seen once cannot carry other values.
97
+ */
98
+ export const CHECK_ACTS = ["request", "mine", "queue", "decide", "upload", "remove", "given", "withdraw"];
99
+ /** The fields a check proof digests: everything but the signer and the proof itself (`onBehalfOf` is signed, so a proof cannot be replayed as another principal). */
100
+ export const checkBody = (body) => {
101
+ const { address: _address, by: _by, proof: _proof, ...rest } = body;
102
+ return rest;
103
+ };
104
+ /**
105
+ * What an approver read, as one digest (`seen` on an approve): who it is about, the offer, the one line,
106
+ * the links and the request's version, which goes up on every edit. The worker refuses an approve whose
107
+ * `seen` is not the request as it is now, so a request changed after it was opened is never signed.
108
+ */
109
+ export const checkSeen = (row) => digestOf({ subject: row.subject, offer: row.offer_id, claimKind: row.claim_kind, statement: row.statement, evidence: row.evidence, version: row.version });
110
+ export const checkMessage = (act, signer, now = Date.now(), digest = "") => `checks:${act}:${signer}:${now}:${digest}`;
111
+ /** The words to sign for a check act, digest and all. */
112
+ export async function checkWords(act, signer, body, now = Date.now()) {
113
+ return checkMessage(act, signer, now, await digestOf(checkBody(body)));
114
+ }
115
+ /** Signed on the spot, like a staff act: minutes, not a day. */
116
+ export function readCheckMessage(message, expected, now = Date.now(), maxAgeMs = STAFF_PROOF_MAX_AGE_MS) {
117
+ const parts = message.split(":");
118
+ if (parts.length !== 5 || parts[0] !== "checks" || parts[1] !== expected.act || parts[2] !== expected.signer || parts[4] !== expected.digest)
119
+ return "mismatch";
120
+ return fresh(parts[3], now, maxAgeMs);
121
+ }
122
+ /** The four shapes read back: the right words, about the right thing, fresh. */
123
+ export function readInviteOpMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
124
+ const parts = message.split(":");
125
+ if (parts.length !== (expected.digest ? 6 : 5) || parts[0] !== "invites")
126
+ return "mismatch";
127
+ if (parts[1] !== expected.op || parts[2] !== expected.collectionId || parts[3] !== expected.issuer)
128
+ return "mismatch";
129
+ if (expected.digest && parts[5] !== expected.digest)
130
+ return "mismatch";
131
+ return fresh(parts[4], now, maxAgeMs);
132
+ }
133
+ export function readApplyMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
134
+ const parts = message.split(":");
135
+ if (parts.length !== 4 || parts[0] !== "apply" || parts[1] !== expected.collectionId || parts[2] !== expected.address)
136
+ return "mismatch";
137
+ return fresh(parts[3], now, maxAgeMs);
138
+ }
139
+ export function readInvitedMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
140
+ const parts = message.split(":");
141
+ if (parts.length !== 3 || parts[0] !== "invited" || parts[1] !== expected.address)
142
+ return "mismatch";
143
+ return fresh(parts[2], now, maxAgeMs);
144
+ }
145
+ export function readAnswersMessage(message, expected, now = Date.now(), maxAgeMs = READ_PROOF_MAX_AGE_MS) {
146
+ const parts = message.split(":");
147
+ if (parts.length !== 4 || parts[0] !== "answers" || parts[1] !== expected.collectionId || parts[2] !== expected.address)
148
+ return "mismatch";
149
+ return fresh(parts[3], now, maxAgeMs);
150
+ }
151
+ /** The old, digest-less `vet-request:<address>:<now>` (see `LEGACY_WORDS_UNTIL`): "mismatch" once the window closes. */
152
+ export function readLegacyVetRequestMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
153
+ const parts = message.split(":");
154
+ if (now >= LEGACY_WORDS_UNTIL || parts.length !== 3 || parts[0] !== "vet-request" || parts[1] !== expected.address)
155
+ return "mismatch";
156
+ return fresh(parts[2], now, maxAgeMs);
157
+ }
158
+ export function readCallsMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
159
+ const parts = message.split(":");
160
+ if (parts.length !== 3 || parts[0] !== "calls" || parts[1] !== expected.address)
161
+ return "mismatch";
162
+ return fresh(parts[2], now, maxAgeMs);
163
+ }
164
+ export function readNoticesMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
165
+ const parts = message.split(":");
166
+ if (parts.length !== 3 || parts[0] !== "notices" || parts[1] !== expected.address)
167
+ return "mismatch";
168
+ return fresh(parts[2], now, maxAgeMs);
169
+ }
170
+ export function readTellMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
171
+ const parts = message.split(":");
172
+ if (parts.length !== 4 || parts[0] !== "tell" || parts[1] !== expected.collectionId || parts[2] !== expected.address)
173
+ return "mismatch";
174
+ return fresh(parts[3], now, maxAgeMs);
175
+ }
176
+ /** A page's proof names its moment (`prefAt`) and its bytes; newest wins, so an old one replayed changes nothing. */
177
+ export function readHandsMessage(message, expected) {
178
+ const parts = message.split(":");
179
+ if (parts.length !== 4 || parts[0] !== "hands" || parts[1] !== expected.address)
180
+ return "mismatch";
181
+ return Number(parts[2]) === expected.prefAt && parts[3] === expected.digest ? "ok" : "mismatch";
182
+ }
183
+ export function readVettingMineMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
184
+ const parts = message.split(":");
185
+ if (parts.length !== 3 || parts[0] !== "vetting-mine" || parts[1] !== expected.address)
186
+ return "mismatch";
187
+ return fresh(parts[2], now, maxAgeMs);
188
+ }
189
+ export function readVettingQueueMessage(message, expected, now = Date.now(), maxAgeMs = STAFF_PROOF_MAX_AGE_MS) {
190
+ const parts = message.split(":");
191
+ if (parts.length !== 3 || parts[0] !== "vetting-queue" || parts[1] !== expected.by)
192
+ return "mismatch";
193
+ return fresh(parts[2], now, maxAgeMs);
194
+ }
195
+ export function readVetRequestMessage(message, expected, now = Date.now(), maxAgeMs = PROOF_MAX_AGE_MS) {
196
+ const parts = message.split(":");
197
+ if (parts.length !== 4 || parts[0] !== "vet-request" || parts[1] !== expected.address || parts[3] !== expected.digest)
198
+ return "mismatch";
199
+ return fresh(parts[2], now, maxAgeMs);
200
+ }
201
+ export function readVetMessage(message, expected, now = Date.now(), maxAgeMs = STAFF_PROOF_MAX_AGE_MS) {
202
+ const parts = message.split(":");
203
+ if (parts.length !== 6 || parts[0] !== "vet" || parts[1] !== expected.address || parts[2] !== expected.by || parts[3] !== expected.decision || parts[5] !== expected.digest)
204
+ return "mismatch";
205
+ return fresh(parts[4], now, maxAgeMs);
206
+ }
207
+ /** A removal's proof names whose page and the moment; like a page's, the store decides by the moment, not by the clock. */
208
+ export function readHandsRemoveMessage(message, expected) {
209
+ const parts = message.split(":");
210
+ if (parts.length !== 3 || parts[0] !== "hands-remove" || parts[1] !== expected.address)
211
+ return "mismatch";
212
+ return Number(parts[2]) === expected.prefAt ? "ok" : "mismatch";
213
+ }
214
+ function fresh(said, now, maxAgeMs) {
215
+ const at = Number(said);
216
+ if (!Number.isFinite(at))
217
+ return "mismatch";
218
+ /* The same window as a submission proof: a day, for phones whose clocks run hours wrong. */
219
+ return Math.abs(now - at) <= maxAgeMs ? "ok" : "stale";
220
+ }
221
+ /**
222
+ * JSON with its keys in order at every depth, so the same page gives the same
223
+ * bytes wherever it is written — the digest a page's proof signs is over this.
224
+ */
225
+ export function canonicalJson(value) {
226
+ const sort = (one) => {
227
+ if (Array.isArray(one))
228
+ return one.map(sort);
229
+ if (one && typeof one === "object") {
230
+ return Object.fromEntries(Object.keys(one)
231
+ .sort()
232
+ .filter((key) => one[key] !== undefined)
233
+ .map((key) => [key, sort(one[key])]));
234
+ }
235
+ return one;
236
+ };
237
+ return JSON.stringify(sort(value));
238
+ }
239
+ /** sha256 of the canonical JSON, hex. Web Crypto, so the browser, the MCP and the worker agree. */
240
+ export async function digestOf(value) {
241
+ const bytes = new Uint8Array(await crypto.subtle.digest("SHA-256", new TextEncoder().encode(canonicalJson(value))));
242
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
243
+ }
244
+ // ── a person's page ───────────────────────────────────────────────────────
245
+ /** A handle: lowercase letters, digits and dashes, 3 to 30 long, starting with a letter. */
246
+ //# sourceMappingURL=inviteMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inviteMessages.js","sourceRoot":"","sources":["../../../src/chain/inviteMessages.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,EAAE,GAAG,SAAS,CAAC;AAExC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAGhG,yJAAyJ;AACzJ,MAAM,CAAC,MAAM,aAAa,GAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEvF,kIAAkI;AAClI,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAY,EAAE,IAA6B,EAA2B,EAAE,CACnG,EAAE,KAAK,KAAK;IACV,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;IAC9D,CAAC,CAAC,EAAE,KAAK,QAAQ;QACf,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE;QAC9D,CAAC,CAAC,EAAE,KAAK,QAAQ;YACf,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;YAC1E,CAAC,CAAC,EAAE,KAAK,OAAO;gBACd,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;gBAChF,CAAC,CAAC,EAAE,CAAC;AAEf,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAY,EAAE,YAAoB,EAAE,MAAc,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,MAAe,EAAU,EAAE,CAC/H,WAAW,EAAE,IAAI,YAAY,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAEhF,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,YAAoB,EAAE,MAAc,EAAE,IAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACrI,OAAO,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACzI,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAAoB,EAAE,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,SAAS,YAAY,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;AAE3I,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,WAAW,OAAO,IAAI,GAAG,EAAE,CAAC;AAEzG,6OAA6O;AAC7O,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,WAAW,YAAY,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;AAE/I,+FAA+F;AAC/F,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAC;AAEjD,mLAAmL;AACnL,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAErE,wHAAwH;AACxH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,SAAS,OAAO,IAAI,GAAG,EAAE,CAAC;AAErG,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,WAAW,OAAO,IAAI,GAAG,EAAE,CAAC;AAEzG,8FAA8F;AAC9F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAE,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,QAAQ,YAAY,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;AAEzI;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAU,CAAC;AAQpI,2HAA2H;AAC3H,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,MAAc,EAAE,MAAc,EAAU,EAAE,CAAC,SAAS,OAAO,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhI,0KAA0K;AAC1K,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,gBAAgB,OAAO,IAAI,GAAG,EAAE,CAAC;AAElH,qEAAqE;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CAAC,iBAAiB,EAAE,IAAI,GAAG,EAAE,CAAC;AAE1G,wGAAwG;AACxG,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAC;AAElD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAA6B,EAA2B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAE3H,8HAA8H;AAC9H,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAU,EAAE,CAAC,eAAe,OAAO,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;AAEvI,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,IAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACpG,OAAO,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,qJAAqJ;AACrJ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAA6B,EAA2B,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAEtN,uHAAuH;AACvH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAU,EAAE,QAA+B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAU,EAAE,CAAC,OAAO,OAAO,IAAI,EAAE,IAAI,QAAQ,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;AAEvL,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe,EAAE,EAAU,EAAE,IAAwF,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACpK,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,iLAAiL;AACjL,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,MAAc,EAAU,EAAE,CAAC,gBAAgB,OAAO,IAAI,MAAM,EAAE,CAAC;AAInH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAGnH,qKAAqK;AACrK,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAA6B,EAA2B,EAAE;IAClF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAsH,EAAmB,EAAE,CACnK,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAE7J,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAa,EAAE,MAAc,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAU,EAAE,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;AAEjJ,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAa,EAAE,MAAc,EAAE,IAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC7G,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAA2D,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,sBAAsB;IAChK,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IAChK,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,QAAiF,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IACnL,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC5F,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IACtH,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IACvE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAmD,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IAClJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACzI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IAC9H,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACrG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAmD,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,qBAAqB;IACzJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAC3I,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,2BAA2B,CAAC,OAAe,EAAE,QAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IACvI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,GAAG,IAAI,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACtI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IAC5H,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACnG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IAC9H,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACrG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,QAAmD,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IACjJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACxI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAA6D;IAC7G,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IACnG,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IAClI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAC1G,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,QAAwB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,sBAAsB;IACpI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,QAA6C,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,gBAAgB;IACjJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IACzI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,QAA0F,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,sBAAsB;IAC7L,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IAC/L,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,2HAA2H;AAC3H,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAA6C;IACnG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAC1G,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAClE,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,GAAW,EAAE,QAAgB;IACxD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5C,4FAA4F;IAC5F,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,IAAI,GAAG,CAAC,GAAY,EAAW,EAAE;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC;iBACxC,IAAI,EAAE;iBACN,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,GAA+B,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;iBACpE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAc;IAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,6EAA6E;AAE7E,4FAA4F"}
@@ -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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"}