@ixo/openhands-sdk 0.6.0 → 0.8.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 (550) hide show
  1. package/README.md +6 -7
  2. package/dist/cjs/campaign/spots.js +3 -3
  3. package/dist/cjs/chain/allowance.d.ts +6 -2
  4. package/dist/cjs/chain/allowance.d.ts.map +1 -1
  5. package/dist/cjs/chain/allowance.js +47 -19
  6. package/dist/cjs/chain/allowance.js.map +1 -1
  7. package/dist/cjs/chain/ask.d.ts +6 -1
  8. package/dist/cjs/chain/ask.d.ts.map +1 -1
  9. package/dist/cjs/chain/ask.js +13 -6
  10. package/dist/cjs/chain/ask.js.map +1 -1
  11. package/dist/cjs/chain/askyBase.d.ts +36 -0
  12. package/dist/cjs/chain/askyBase.d.ts.map +1 -0
  13. package/dist/cjs/chain/askyBase.js +56 -0
  14. package/dist/cjs/chain/askyBase.js.map +1 -0
  15. package/dist/cjs/chain/assist.d.ts +52 -0
  16. package/dist/cjs/chain/assist.d.ts.map +1 -0
  17. package/dist/cjs/chain/assist.js +99 -0
  18. package/dist/cjs/chain/assist.js.map +1 -0
  19. package/dist/cjs/chain/campaignMint.d.ts +92 -0
  20. package/dist/cjs/chain/campaignMint.d.ts.map +1 -0
  21. package/dist/cjs/chain/campaignMint.js +136 -0
  22. package/dist/cjs/chain/campaignMint.js.map +1 -0
  23. package/dist/cjs/chain/claimIncentives.d.ts +17 -0
  24. package/dist/cjs/chain/claimIncentives.d.ts.map +1 -0
  25. package/dist/cjs/chain/claimIncentives.js +22 -0
  26. package/dist/cjs/chain/claimIncentives.js.map +1 -0
  27. package/dist/cjs/chain/draftMessages.d.ts +12 -0
  28. package/dist/cjs/chain/draftMessages.d.ts.map +1 -0
  29. package/dist/cjs/chain/draftMessages.js +85 -0
  30. package/dist/cjs/chain/draftMessages.js.map +1 -0
  31. package/dist/cjs/chain/entityShape.d.ts +1 -1
  32. package/dist/cjs/chain/entityShape.d.ts.map +1 -1
  33. package/dist/cjs/chain/entityShape.js +5 -5
  34. package/dist/cjs/chain/entityShape.js.map +1 -1
  35. package/dist/cjs/chain/env.js +1 -1
  36. package/dist/cjs/chain/env.js.map +1 -1
  37. package/dist/cjs/chain/gate.d.ts +7 -0
  38. package/dist/cjs/chain/gate.d.ts.map +1 -1
  39. package/dist/cjs/chain/gate.js +26 -10
  40. package/dist/cjs/chain/gate.js.map +1 -1
  41. package/dist/cjs/chain/guest.d.ts +10 -0
  42. package/dist/cjs/chain/guest.d.ts.map +1 -1
  43. package/dist/cjs/chain/guest.js +3 -2
  44. package/dist/cjs/chain/guest.js.map +1 -1
  45. package/dist/cjs/chain/inviteAnswer.d.ts +32 -0
  46. package/dist/cjs/chain/inviteAnswer.d.ts.map +1 -0
  47. package/dist/cjs/chain/inviteAnswer.js +36 -0
  48. package/dist/cjs/chain/inviteAnswer.js.map +1 -0
  49. package/dist/cjs/chain/inviteMessages.d.ts +65 -32
  50. package/dist/cjs/chain/inviteMessages.d.ts.map +1 -1
  51. package/dist/cjs/chain/inviteMessages.js +84 -30
  52. package/dist/cjs/chain/inviteMessages.js.map +1 -1
  53. package/dist/cjs/chain/inviteProof.d.ts +16 -1
  54. package/dist/cjs/chain/inviteProof.d.ts.map +1 -1
  55. package/dist/cjs/chain/inviteProof.js +19 -1
  56. package/dist/cjs/chain/inviteProof.js.map +1 -1
  57. package/dist/cjs/chain/lane.d.ts +16 -0
  58. package/dist/cjs/chain/lane.d.ts.map +1 -1
  59. package/dist/cjs/chain/lane.js +25 -1
  60. package/dist/cjs/chain/lane.js.map +1 -1
  61. package/dist/cjs/chain/orgReviewBilling.js +1 -1
  62. package/dist/cjs/chain/orgReviewBilling.js.map +1 -1
  63. package/dist/cjs/chain/personReview.d.ts.map +1 -1
  64. package/dist/cjs/chain/personReview.js +18 -11
  65. package/dist/cjs/chain/personReview.js.map +1 -1
  66. package/dist/cjs/chain/reviewBilling.d.ts.map +1 -1
  67. package/dist/cjs/chain/reviewBilling.js +1 -1
  68. package/dist/cjs/chain/reviewBilling.js.map +1 -1
  69. package/dist/cjs/chain/session.d.ts +9 -1
  70. package/dist/cjs/chain/session.d.ts.map +1 -1
  71. package/dist/cjs/chain/session.js +13 -15
  72. package/dist/cjs/chain/session.js.map +1 -1
  73. package/dist/cjs/chain/sessionEvents.d.ts +4 -0
  74. package/dist/cjs/chain/sessionEvents.d.ts.map +1 -0
  75. package/dist/cjs/chain/sessionEvents.js +15 -0
  76. package/dist/cjs/chain/sessionEvents.js.map +1 -0
  77. package/dist/cjs/chain/takeBack.d.ts +32 -0
  78. package/dist/cjs/chain/takeBack.d.ts.map +1 -1
  79. package/dist/cjs/chain/takeBack.js +89 -12
  80. package/dist/cjs/chain/takeBack.js.map +1 -1
  81. package/dist/cjs/chain/union.js +1 -1
  82. package/dist/cjs/chain/why.d.ts +6 -2
  83. package/dist/cjs/chain/why.d.ts.map +1 -1
  84. package/dist/cjs/chain/why.js +11 -2
  85. package/dist/cjs/chain/why.js.map +1 -1
  86. package/dist/cjs/chain.d.ts +1 -0
  87. package/dist/cjs/chain.d.ts.map +1 -1
  88. package/dist/cjs/chain.js +3 -1
  89. package/dist/cjs/chain.js.map +1 -1
  90. package/dist/cjs/config.d.ts +7 -1
  91. package/dist/cjs/config.d.ts.map +1 -1
  92. package/dist/cjs/config.js +4 -1
  93. package/dist/cjs/config.js.map +1 -1
  94. package/dist/cjs/data/actionDraft.d.ts +304 -0
  95. package/dist/cjs/data/actionDraft.d.ts.map +1 -0
  96. package/dist/cjs/data/actionDraft.js +470 -0
  97. package/dist/cjs/data/actionDraft.js.map +1 -0
  98. package/dist/cjs/data/actionDraftWords.d.ts +37 -0
  99. package/dist/cjs/data/actionDraftWords.d.ts.map +1 -0
  100. package/dist/cjs/data/actionDraftWords.js +55 -0
  101. package/dist/cjs/data/actionDraftWords.js.map +1 -0
  102. package/dist/cjs/data/agent.d.ts.map +1 -1
  103. package/dist/cjs/data/agent.js +36 -1
  104. package/dist/cjs/data/agent.js.map +1 -1
  105. package/dist/cjs/data/askyProtocol.d.ts +13 -0
  106. package/dist/cjs/data/askyProtocol.d.ts.map +1 -0
  107. package/dist/cjs/data/askyProtocol.js +19 -0
  108. package/dist/cjs/data/askyProtocol.js.map +1 -0
  109. package/dist/cjs/data/board/answer.d.ts +12 -0
  110. package/dist/cjs/data/board/answer.d.ts.map +1 -0
  111. package/dist/cjs/data/board/answer.js +41 -0
  112. package/dist/cjs/data/board/answer.js.map +1 -0
  113. package/dist/cjs/data/board/assemble.js +2 -2
  114. package/dist/cjs/data/board/facts.d.ts +1 -1
  115. package/dist/cjs/data/board/facts.d.ts.map +1 -1
  116. package/dist/cjs/data/board/facts.js +6 -2
  117. package/dist/cjs/data/board/facts.js.map +1 -1
  118. package/dist/cjs/data/board/fixtures.d.ts.map +1 -1
  119. package/dist/cjs/data/board/fixtures.js +2 -1
  120. package/dist/cjs/data/board/fixtures.js.map +1 -1
  121. package/dist/cjs/data/board/read.d.ts +2 -0
  122. package/dist/cjs/data/board/read.d.ts.map +1 -1
  123. package/dist/cjs/data/board/read.js +24 -10
  124. package/dist/cjs/data/board/read.js.map +1 -1
  125. package/dist/cjs/data/board/types.d.ts +16 -0
  126. package/dist/cjs/data/board/types.d.ts.map +1 -1
  127. package/dist/cjs/data/board/types.js +9 -1
  128. package/dist/cjs/data/board/types.js.map +1 -1
  129. package/dist/cjs/data/checkers.d.ts +33 -7
  130. package/dist/cjs/data/checkers.d.ts.map +1 -1
  131. package/dist/cjs/data/checkers.js +165 -55
  132. package/dist/cjs/data/checkers.js.map +1 -1
  133. package/dist/cjs/data/decisionIdentity.d.ts +10 -0
  134. package/dist/cjs/data/decisionIdentity.d.ts.map +1 -0
  135. package/dist/cjs/data/decisionIdentity.js +19 -0
  136. package/dist/cjs/data/decisionIdentity.js.map +1 -0
  137. package/dist/cjs/data/displayNames.d.ts +7 -1
  138. package/dist/cjs/data/displayNames.d.ts.map +1 -1
  139. package/dist/cjs/data/displayNames.js +7 -1
  140. package/dist/cjs/data/displayNames.js.map +1 -1
  141. package/dist/cjs/data/docUrls.d.ts +5 -0
  142. package/dist/cjs/data/docUrls.d.ts.map +1 -1
  143. package/dist/cjs/data/docUrls.js +18 -1
  144. package/dist/cjs/data/docUrls.js.map +1 -1
  145. package/dist/cjs/data/draftUploads.d.ts +145 -0
  146. package/dist/cjs/data/draftUploads.d.ts.map +1 -0
  147. package/dist/cjs/data/draftUploads.js +293 -0
  148. package/dist/cjs/data/draftUploads.js.map +1 -0
  149. package/dist/cjs/data/emailKinds.d.ts +56 -0
  150. package/dist/cjs/data/emailKinds.d.ts.map +1 -0
  151. package/dist/cjs/data/emailKinds.js +39 -0
  152. package/dist/cjs/data/emailKinds.js.map +1 -0
  153. package/dist/cjs/data/engine.js +1 -1
  154. package/dist/cjs/data/engine.js.map +1 -1
  155. package/dist/cjs/data/engineUrl.d.ts +5 -4
  156. package/dist/cjs/data/engineUrl.d.ts.map +1 -1
  157. package/dist/cjs/data/engineUrl.js +12 -6
  158. package/dist/cjs/data/engineUrl.js.map +1 -1
  159. package/dist/cjs/data/envelope.d.ts +9 -2
  160. package/dist/cjs/data/envelope.d.ts.map +1 -1
  161. package/dist/cjs/data/envelope.js +10 -3
  162. package/dist/cjs/data/envelope.js.map +1 -1
  163. package/dist/cjs/data/format.d.ts +10 -0
  164. package/dist/cjs/data/format.d.ts.map +1 -1
  165. package/dist/cjs/data/format.js +8 -1
  166. package/dist/cjs/data/format.js.map +1 -1
  167. package/dist/cjs/data/install.d.ts +57 -131
  168. package/dist/cjs/data/install.d.ts.map +1 -1
  169. package/dist/cjs/data/install.js +95 -182
  170. package/dist/cjs/data/install.js.map +1 -1
  171. package/dist/cjs/data/onAsks.d.ts +57 -0
  172. package/dist/cjs/data/onAsks.d.ts.map +1 -0
  173. package/dist/cjs/data/onAsks.js +78 -0
  174. package/dist/cjs/data/onAsks.js.map +1 -0
  175. package/dist/cjs/data/openness.d.ts +3 -0
  176. package/dist/cjs/data/openness.d.ts.map +1 -1
  177. package/dist/cjs/data/openness.js +19 -7
  178. package/dist/cjs/data/openness.js.map +1 -1
  179. package/dist/cjs/data/orgPayouts.d.ts +1 -0
  180. package/dist/cjs/data/orgPayouts.d.ts.map +1 -1
  181. package/dist/cjs/data/orgPayouts.js +4 -2
  182. package/dist/cjs/data/orgPayouts.js.map +1 -1
  183. package/dist/cjs/data/payoutObservation.d.ts +30 -0
  184. package/dist/cjs/data/payoutObservation.d.ts.map +1 -0
  185. package/dist/cjs/data/payoutObservation.js +219 -0
  186. package/dist/cjs/data/payoutObservation.js.map +1 -0
  187. package/dist/cjs/data/profiles.d.ts +37 -2
  188. package/dist/cjs/data/profiles.d.ts.map +1 -1
  189. package/dist/cjs/data/profiles.js +121 -16
  190. package/dist/cjs/data/profiles.js.map +1 -1
  191. package/dist/cjs/data/queue.d.ts.map +1 -1
  192. package/dist/cjs/data/queue.js +36 -1
  193. package/dist/cjs/data/queue.js.map +1 -1
  194. package/dist/cjs/data/receipt.d.ts +4 -0
  195. package/dist/cjs/data/receipt.d.ts.map +1 -1
  196. package/dist/cjs/data/receipt.js +5 -2
  197. package/dist/cjs/data/receipt.js.map +1 -1
  198. package/dist/cjs/data/threads.d.ts +9 -1
  199. package/dist/cjs/data/threads.d.ts.map +1 -1
  200. package/dist/cjs/data/threads.js +5 -3
  201. package/dist/cjs/data/threads.js.map +1 -1
  202. package/dist/cjs/data/trace.d.ts +1 -0
  203. package/dist/cjs/data/trace.d.ts.map +1 -1
  204. package/dist/cjs/data/trace.js +4 -2
  205. package/dist/cjs/data/trace.js.map +1 -1
  206. package/dist/cjs/data/traceWords.d.ts +5 -1
  207. package/dist/cjs/data/traceWords.d.ts.map +1 -1
  208. package/dist/cjs/data/traceWords.js +20 -5
  209. package/dist/cjs/data/traceWords.js.map +1 -1
  210. package/dist/cjs/data/types.js +1 -1
  211. package/dist/cjs/data/types.js.map +1 -1
  212. package/dist/cjs/discovery.d.ts.map +1 -1
  213. package/dist/cjs/discovery.js +3 -1
  214. package/dist/cjs/discovery.js.map +1 -1
  215. package/dist/cjs/names/client.d.ts +10 -0
  216. package/dist/cjs/names/client.d.ts.map +1 -0
  217. package/dist/cjs/names/client.js +757 -0
  218. package/dist/cjs/names/client.js.map +7 -0
  219. package/dist/cjs/names/names.d.ts +93 -0
  220. package/dist/cjs/names/names.d.ts.map +1 -0
  221. package/dist/cjs/names/names.js +154 -0
  222. package/dist/cjs/names/names.js.map +1 -0
  223. package/dist/cjs/names.d.ts +14 -0
  224. package/dist/cjs/names.d.ts.map +1 -0
  225. package/dist/cjs/names.js +30 -0
  226. package/dist/cjs/names.js.map +1 -0
  227. package/dist/cjs/rubric/askyRubric.d.ts +70 -0
  228. package/dist/cjs/rubric/askyRubric.d.ts.map +1 -0
  229. package/dist/cjs/rubric/askyRubric.js +163 -0
  230. package/dist/cjs/rubric/askyRubric.js.map +1 -0
  231. package/dist/cjs/rubric/bridge.js +2 -2
  232. package/dist/cjs/rubric/bridge.js.map +1 -1
  233. package/dist/cjs/rubric/call.d.ts +5 -0
  234. package/dist/cjs/rubric/call.d.ts.map +1 -1
  235. package/dist/cjs/rubric/call.js +10 -2
  236. package/dist/cjs/rubric/call.js.map +1 -1
  237. package/dist/cjs/rubric/callChecks.d.ts +2 -0
  238. package/dist/cjs/rubric/callChecks.d.ts.map +1 -1
  239. package/dist/cjs/rubric/callChecks.js +7 -2
  240. package/dist/cjs/rubric/callChecks.js.map +1 -1
  241. package/dist/cjs/rubric/callLimits.js +2 -2
  242. package/dist/cjs/rubric/callPrompt.d.ts +7 -0
  243. package/dist/cjs/rubric/callPrompt.d.ts.map +1 -0
  244. package/dist/cjs/rubric/callPrompt.js +9 -0
  245. package/dist/cjs/rubric/callPrompt.js.map +1 -0
  246. package/dist/cjs/rubric/draft.d.ts +1 -1
  247. package/dist/cjs/rubric/draft.d.ts.map +1 -1
  248. package/dist/cjs/rubric/draft.js +1 -1
  249. package/dist/cjs/rubric/feeLine.d.ts +12 -3
  250. package/dist/cjs/rubric/feeLine.d.ts.map +1 -1
  251. package/dist/cjs/rubric/feeLine.js +19 -8
  252. package/dist/cjs/rubric/feeLine.js.map +1 -1
  253. package/dist/cjs/rubric/leg.d.ts +5 -7
  254. package/dist/cjs/rubric/leg.d.ts.map +1 -1
  255. package/dist/cjs/rubric/leg.js +7 -33
  256. package/dist/cjs/rubric/leg.js.map +1 -1
  257. package/dist/cjs/rubric/marketPlan.js +7 -7
  258. package/dist/cjs/rubric/marketPlan.js.map +1 -1
  259. package/dist/cjs/rubric/report.d.ts.map +1 -1
  260. package/dist/cjs/rubric/report.js +4 -4
  261. package/dist/cjs/rubric/report.js.map +1 -1
  262. package/dist/cjs/rubric/reportTemplate.d.ts +12 -2
  263. package/dist/cjs/rubric/reportTemplate.d.ts.map +1 -1
  264. package/dist/cjs/rubric/reportTemplate.js +33 -18
  265. package/dist/cjs/rubric/reportTemplate.js.map +1 -1
  266. package/dist/cjs/rubric/survey.js +2 -2
  267. package/dist/cjs/rubric/survey.js.map +1 -1
  268. package/dist/cjs/rubric/terms.d.ts +9 -6
  269. package/dist/cjs/rubric/terms.d.ts.map +1 -1
  270. package/dist/cjs/rubric/terms.js +7 -8
  271. package/dist/cjs/rubric/terms.js.map +1 -1
  272. package/dist/esm/campaign/spots.js +3 -3
  273. package/dist/esm/chain/allowance.d.ts +6 -2
  274. package/dist/esm/chain/allowance.d.ts.map +1 -1
  275. package/dist/esm/chain/allowance.js +45 -19
  276. package/dist/esm/chain/allowance.js.map +1 -1
  277. package/dist/esm/chain/ask.d.ts +6 -1
  278. package/dist/esm/chain/ask.d.ts.map +1 -1
  279. package/dist/esm/chain/ask.js +14 -7
  280. package/dist/esm/chain/ask.js.map +1 -1
  281. package/dist/esm/chain/askyBase.d.ts +36 -0
  282. package/dist/esm/chain/askyBase.d.ts.map +1 -0
  283. package/dist/esm/chain/askyBase.js +51 -0
  284. package/dist/esm/chain/askyBase.js.map +1 -0
  285. package/dist/esm/chain/assist.d.ts +52 -0
  286. package/dist/esm/chain/assist.d.ts.map +1 -0
  287. package/dist/esm/chain/assist.js +89 -0
  288. package/dist/esm/chain/assist.js.map +1 -0
  289. package/dist/esm/chain/campaignMint.d.ts +92 -0
  290. package/dist/esm/chain/campaignMint.d.ts.map +1 -0
  291. package/dist/esm/chain/campaignMint.js +127 -0
  292. package/dist/esm/chain/campaignMint.js.map +1 -0
  293. package/dist/esm/chain/claimIncentives.d.ts +17 -0
  294. package/dist/esm/chain/claimIncentives.d.ts.map +1 -0
  295. package/dist/esm/chain/claimIncentives.js +19 -0
  296. package/dist/esm/chain/claimIncentives.js.map +1 -0
  297. package/dist/esm/chain/draftMessages.d.ts +12 -0
  298. package/dist/esm/chain/draftMessages.d.ts.map +1 -0
  299. package/dist/esm/chain/draftMessages.js +47 -0
  300. package/dist/esm/chain/draftMessages.js.map +1 -0
  301. package/dist/esm/chain/entityShape.d.ts +1 -1
  302. package/dist/esm/chain/entityShape.d.ts.map +1 -1
  303. package/dist/esm/chain/entityShape.js +5 -5
  304. package/dist/esm/chain/entityShape.js.map +1 -1
  305. package/dist/esm/chain/env.js +1 -1
  306. package/dist/esm/chain/env.js.map +1 -1
  307. package/dist/esm/chain/gate.d.ts +7 -0
  308. package/dist/esm/chain/gate.d.ts.map +1 -1
  309. package/dist/esm/chain/gate.js +24 -10
  310. package/dist/esm/chain/gate.js.map +1 -1
  311. package/dist/esm/chain/guest.d.ts +10 -0
  312. package/dist/esm/chain/guest.d.ts.map +1 -1
  313. package/dist/esm/chain/guest.js +3 -2
  314. package/dist/esm/chain/guest.js.map +1 -1
  315. package/dist/esm/chain/inviteAnswer.d.ts +32 -0
  316. package/dist/esm/chain/inviteAnswer.d.ts.map +1 -0
  317. package/dist/esm/chain/inviteAnswer.js +28 -0
  318. package/dist/esm/chain/inviteAnswer.js.map +1 -0
  319. package/dist/esm/chain/inviteMessages.d.ts +65 -32
  320. package/dist/esm/chain/inviteMessages.d.ts.map +1 -1
  321. package/dist/esm/chain/inviteMessages.js +69 -25
  322. package/dist/esm/chain/inviteMessages.js.map +1 -1
  323. package/dist/esm/chain/inviteProof.d.ts +16 -1
  324. package/dist/esm/chain/inviteProof.d.ts.map +1 -1
  325. package/dist/esm/chain/inviteProof.js +16 -0
  326. package/dist/esm/chain/inviteProof.js.map +1 -1
  327. package/dist/esm/chain/lane.d.ts +16 -0
  328. package/dist/esm/chain/lane.d.ts.map +1 -1
  329. package/dist/esm/chain/lane.js +22 -0
  330. package/dist/esm/chain/lane.js.map +1 -1
  331. package/dist/esm/chain/orgReviewBilling.js +1 -1
  332. package/dist/esm/chain/orgReviewBilling.js.map +1 -1
  333. package/dist/esm/chain/personReview.d.ts.map +1 -1
  334. package/dist/esm/chain/personReview.js +18 -11
  335. package/dist/esm/chain/personReview.js.map +1 -1
  336. package/dist/esm/chain/reviewBilling.d.ts.map +1 -1
  337. package/dist/esm/chain/reviewBilling.js +1 -1
  338. package/dist/esm/chain/reviewBilling.js.map +1 -1
  339. package/dist/esm/chain/session.d.ts +9 -1
  340. package/dist/esm/chain/session.d.ts.map +1 -1
  341. package/dist/esm/chain/session.js +11 -13
  342. package/dist/esm/chain/session.js.map +1 -1
  343. package/dist/esm/chain/sessionEvents.d.ts +4 -0
  344. package/dist/esm/chain/sessionEvents.d.ts.map +1 -0
  345. package/dist/esm/chain/sessionEvents.js +11 -0
  346. package/dist/esm/chain/sessionEvents.js.map +1 -0
  347. package/dist/esm/chain/takeBack.d.ts +32 -0
  348. package/dist/esm/chain/takeBack.d.ts.map +1 -1
  349. package/dist/esm/chain/takeBack.js +86 -12
  350. package/dist/esm/chain/takeBack.js.map +1 -1
  351. package/dist/esm/chain/union.js +1 -1
  352. package/dist/esm/chain/why.d.ts +6 -2
  353. package/dist/esm/chain/why.d.ts.map +1 -1
  354. package/dist/esm/chain/why.js +12 -3
  355. package/dist/esm/chain/why.js.map +1 -1
  356. package/dist/esm/chain.d.ts +1 -0
  357. package/dist/esm/chain.d.ts.map +1 -1
  358. package/dist/esm/chain.js +1 -0
  359. package/dist/esm/chain.js.map +1 -1
  360. package/dist/esm/config.d.ts +7 -1
  361. package/dist/esm/config.d.ts.map +1 -1
  362. package/dist/esm/config.js +4 -1
  363. package/dist/esm/config.js.map +1 -1
  364. package/dist/esm/data/actionDraft.d.ts +304 -0
  365. package/dist/esm/data/actionDraft.d.ts.map +1 -0
  366. package/dist/esm/data/actionDraft.js +450 -0
  367. package/dist/esm/data/actionDraft.js.map +1 -0
  368. package/dist/esm/data/actionDraftWords.d.ts +37 -0
  369. package/dist/esm/data/actionDraftWords.d.ts.map +1 -0
  370. package/dist/esm/data/actionDraftWords.js +47 -0
  371. package/dist/esm/data/actionDraftWords.js.map +1 -0
  372. package/dist/esm/data/agent.d.ts.map +1 -1
  373. package/dist/esm/data/agent.js +4 -2
  374. package/dist/esm/data/agent.js.map +1 -1
  375. package/dist/esm/data/askyProtocol.d.ts +13 -0
  376. package/dist/esm/data/askyProtocol.d.ts.map +1 -0
  377. package/dist/esm/data/askyProtocol.js +14 -0
  378. package/dist/esm/data/askyProtocol.js.map +1 -0
  379. package/dist/esm/data/board/answer.d.ts +12 -0
  380. package/dist/esm/data/board/answer.d.ts.map +1 -0
  381. package/dist/esm/data/board/answer.js +36 -0
  382. package/dist/esm/data/board/answer.js.map +1 -0
  383. package/dist/esm/data/board/assemble.js +2 -2
  384. package/dist/esm/data/board/facts.d.ts +1 -1
  385. package/dist/esm/data/board/facts.d.ts.map +1 -1
  386. package/dist/esm/data/board/facts.js +6 -2
  387. package/dist/esm/data/board/facts.js.map +1 -1
  388. package/dist/esm/data/board/fixtures.d.ts.map +1 -1
  389. package/dist/esm/data/board/fixtures.js +2 -1
  390. package/dist/esm/data/board/fixtures.js.map +1 -1
  391. package/dist/esm/data/board/read.d.ts +2 -0
  392. package/dist/esm/data/board/read.d.ts.map +1 -1
  393. package/dist/esm/data/board/read.js +25 -11
  394. package/dist/esm/data/board/read.js.map +1 -1
  395. package/dist/esm/data/board/types.d.ts +16 -0
  396. package/dist/esm/data/board/types.d.ts.map +1 -1
  397. package/dist/esm/data/board/types.js +7 -0
  398. package/dist/esm/data/board/types.js.map +1 -1
  399. package/dist/esm/data/checkers.d.ts +33 -7
  400. package/dist/esm/data/checkers.d.ts.map +1 -1
  401. package/dist/esm/data/checkers.js +159 -54
  402. package/dist/esm/data/checkers.js.map +1 -1
  403. package/dist/esm/data/decisionIdentity.d.ts +10 -0
  404. package/dist/esm/data/decisionIdentity.d.ts.map +1 -0
  405. package/dist/esm/data/decisionIdentity.js +15 -0
  406. package/dist/esm/data/decisionIdentity.js.map +1 -0
  407. package/dist/esm/data/displayNames.d.ts +7 -1
  408. package/dist/esm/data/displayNames.d.ts.map +1 -1
  409. package/dist/esm/data/displayNames.js +7 -1
  410. package/dist/esm/data/displayNames.js.map +1 -1
  411. package/dist/esm/data/docUrls.d.ts +5 -0
  412. package/dist/esm/data/docUrls.d.ts.map +1 -1
  413. package/dist/esm/data/docUrls.js +16 -0
  414. package/dist/esm/data/docUrls.js.map +1 -1
  415. package/dist/esm/data/draftUploads.d.ts +145 -0
  416. package/dist/esm/data/draftUploads.d.ts.map +1 -0
  417. package/dist/esm/data/draftUploads.js +272 -0
  418. package/dist/esm/data/draftUploads.js.map +1 -0
  419. package/dist/esm/data/emailKinds.d.ts +56 -0
  420. package/dist/esm/data/emailKinds.d.ts.map +1 -0
  421. package/dist/esm/data/emailKinds.js +32 -0
  422. package/dist/esm/data/emailKinds.js.map +1 -0
  423. package/dist/esm/data/engine.js +1 -1
  424. package/dist/esm/data/engine.js.map +1 -1
  425. package/dist/esm/data/engineUrl.d.ts +5 -4
  426. package/dist/esm/data/engineUrl.d.ts.map +1 -1
  427. package/dist/esm/data/engineUrl.js +11 -5
  428. package/dist/esm/data/engineUrl.js.map +1 -1
  429. package/dist/esm/data/envelope.d.ts +9 -2
  430. package/dist/esm/data/envelope.d.ts.map +1 -1
  431. package/dist/esm/data/envelope.js +10 -3
  432. package/dist/esm/data/envelope.js.map +1 -1
  433. package/dist/esm/data/format.d.ts +10 -0
  434. package/dist/esm/data/format.d.ts.map +1 -1
  435. package/dist/esm/data/format.js +6 -0
  436. package/dist/esm/data/format.js.map +1 -1
  437. package/dist/esm/data/install.d.ts +57 -131
  438. package/dist/esm/data/install.d.ts.map +1 -1
  439. package/dist/esm/data/install.js +88 -173
  440. package/dist/esm/data/install.js.map +1 -1
  441. package/dist/esm/data/onAsks.d.ts +57 -0
  442. package/dist/esm/data/onAsks.d.ts.map +1 -0
  443. package/dist/esm/data/onAsks.js +73 -0
  444. package/dist/esm/data/onAsks.js.map +1 -0
  445. package/dist/esm/data/openness.d.ts +3 -0
  446. package/dist/esm/data/openness.d.ts.map +1 -1
  447. package/dist/esm/data/openness.js +18 -7
  448. package/dist/esm/data/openness.js.map +1 -1
  449. package/dist/esm/data/orgPayouts.d.ts +1 -0
  450. package/dist/esm/data/orgPayouts.d.ts.map +1 -1
  451. package/dist/esm/data/orgPayouts.js +4 -2
  452. package/dist/esm/data/orgPayouts.js.map +1 -1
  453. package/dist/esm/data/payoutObservation.d.ts +30 -0
  454. package/dist/esm/data/payoutObservation.d.ts.map +1 -0
  455. package/dist/esm/data/payoutObservation.js +213 -0
  456. package/dist/esm/data/payoutObservation.js.map +1 -0
  457. package/dist/esm/data/profiles.d.ts +37 -2
  458. package/dist/esm/data/profiles.d.ts.map +1 -1
  459. package/dist/esm/data/profiles.js +120 -16
  460. package/dist/esm/data/profiles.js.map +1 -1
  461. package/dist/esm/data/queue.d.ts.map +1 -1
  462. package/dist/esm/data/queue.js +4 -2
  463. package/dist/esm/data/queue.js.map +1 -1
  464. package/dist/esm/data/receipt.d.ts +4 -0
  465. package/dist/esm/data/receipt.d.ts.map +1 -1
  466. package/dist/esm/data/receipt.js +5 -2
  467. package/dist/esm/data/receipt.js.map +1 -1
  468. package/dist/esm/data/threads.d.ts +9 -1
  469. package/dist/esm/data/threads.d.ts.map +1 -1
  470. package/dist/esm/data/threads.js +6 -4
  471. package/dist/esm/data/threads.js.map +1 -1
  472. package/dist/esm/data/trace.d.ts +1 -0
  473. package/dist/esm/data/trace.d.ts.map +1 -1
  474. package/dist/esm/data/trace.js +4 -2
  475. package/dist/esm/data/trace.js.map +1 -1
  476. package/dist/esm/data/traceWords.d.ts +5 -1
  477. package/dist/esm/data/traceWords.d.ts.map +1 -1
  478. package/dist/esm/data/traceWords.js +19 -5
  479. package/dist/esm/data/traceWords.js.map +1 -1
  480. package/dist/esm/data/types.js +1 -1
  481. package/dist/esm/data/types.js.map +1 -1
  482. package/dist/esm/discovery.d.ts.map +1 -1
  483. package/dist/esm/discovery.js +3 -1
  484. package/dist/esm/discovery.js.map +1 -1
  485. package/dist/esm/names/client.d.ts +10 -0
  486. package/dist/esm/names/client.d.ts.map +1 -0
  487. package/dist/esm/names/client.js +10 -0
  488. package/dist/esm/names/client.js.map +1 -0
  489. package/dist/esm/names/names.d.ts +93 -0
  490. package/dist/esm/names/names.d.ts.map +1 -0
  491. package/dist/esm/names/names.js +142 -0
  492. package/dist/esm/names/names.js.map +1 -0
  493. package/dist/esm/names.d.ts +14 -0
  494. package/dist/esm/names.d.ts.map +1 -0
  495. package/dist/esm/names.js +14 -0
  496. package/dist/esm/names.js.map +1 -0
  497. package/dist/esm/rubric/askyRubric.d.ts +70 -0
  498. package/dist/esm/rubric/askyRubric.d.ts.map +1 -0
  499. package/dist/esm/rubric/askyRubric.js +155 -0
  500. package/dist/esm/rubric/askyRubric.js.map +1 -0
  501. package/dist/esm/rubric/bridge.js +2 -2
  502. package/dist/esm/rubric/bridge.js.map +1 -1
  503. package/dist/esm/rubric/call.d.ts +5 -0
  504. package/dist/esm/rubric/call.d.ts.map +1 -1
  505. package/dist/esm/rubric/call.js +8 -1
  506. package/dist/esm/rubric/call.js.map +1 -1
  507. package/dist/esm/rubric/callChecks.d.ts +2 -0
  508. package/dist/esm/rubric/callChecks.d.ts.map +1 -1
  509. package/dist/esm/rubric/callChecks.js +5 -1
  510. package/dist/esm/rubric/callChecks.js.map +1 -1
  511. package/dist/esm/rubric/callLimits.js +2 -2
  512. package/dist/esm/rubric/callPrompt.d.ts +7 -0
  513. package/dist/esm/rubric/callPrompt.d.ts.map +1 -0
  514. package/dist/esm/rubric/callPrompt.js +6 -0
  515. package/dist/esm/rubric/callPrompt.js.map +1 -0
  516. package/dist/esm/rubric/draft.d.ts +1 -1
  517. package/dist/esm/rubric/draft.d.ts.map +1 -1
  518. package/dist/esm/rubric/draft.js +1 -1
  519. package/dist/esm/rubric/feeLine.d.ts +12 -3
  520. package/dist/esm/rubric/feeLine.d.ts.map +1 -1
  521. package/dist/esm/rubric/feeLine.js +16 -7
  522. package/dist/esm/rubric/feeLine.js.map +1 -1
  523. package/dist/esm/rubric/leg.d.ts +5 -7
  524. package/dist/esm/rubric/leg.d.ts.map +1 -1
  525. package/dist/esm/rubric/leg.js +7 -33
  526. package/dist/esm/rubric/leg.js.map +1 -1
  527. package/dist/esm/rubric/marketPlan.js +7 -7
  528. package/dist/esm/rubric/marketPlan.js.map +1 -1
  529. package/dist/esm/rubric/report.d.ts.map +1 -1
  530. package/dist/esm/rubric/report.js +4 -4
  531. package/dist/esm/rubric/report.js.map +1 -1
  532. package/dist/esm/rubric/reportTemplate.d.ts +12 -2
  533. package/dist/esm/rubric/reportTemplate.d.ts.map +1 -1
  534. package/dist/esm/rubric/reportTemplate.js +30 -17
  535. package/dist/esm/rubric/reportTemplate.js.map +1 -1
  536. package/dist/esm/rubric/survey.js +2 -2
  537. package/dist/esm/rubric/survey.js.map +1 -1
  538. package/dist/esm/rubric/terms.d.ts +9 -6
  539. package/dist/esm/rubric/terms.d.ts.map +1 -1
  540. package/dist/esm/rubric/terms.js +7 -8
  541. package/dist/esm/rubric/terms.js.map +1 -1
  542. package/package.json +24 -3
  543. package/dist/cjs/data/sponsors.d.ts +0 -94
  544. package/dist/cjs/data/sponsors.d.ts.map +0 -1
  545. package/dist/cjs/data/sponsors.js +0 -147
  546. package/dist/cjs/data/sponsors.js.map +0 -1
  547. package/dist/esm/data/sponsors.d.ts +0 -94
  548. package/dist/esm/data/sponsors.d.ts.map +0 -1
  549. package/dist/esm/data/sponsors.js +0 -137
  550. package/dist/esm/data/sponsors.js.map +0 -1
@@ -1,201 +1,116 @@
1
1
  /**
2
- * How an MCP client is told to connect to asks.world.
2
+ * How an assistant is told to connect to asks.world: add the hosted connector.
3
3
  *
4
- * One table, several renderings: the server's own `get_config_help` and the
5
- * hosted `where_to_act`, the install block (`/`, `/connect`, `/mcp`), the
6
- * agent page and its `/mcp.md` twin, and the hosted server's description all
7
- * print these lines from here, so
8
- * they cannot disagree — which they did, for a month, when the page said
9
- * `/path/to/asks-mcp` and the server printed whatever path it happened
10
- * to be running from.
4
+ * One table, several renderings: the install block, the agent page (`/mcp`
5
+ * and its `/mcp.md` twin), the agent page `/for-agents`, `/llms.txt` and the
6
+ * hosted server's description all print these lines from here, so they cannot
7
+ * disagree.
8
+ *
9
+ * Where an app takes plugins (claude.ai, Claude Code, Codex) the main way in is the asks plugin (`pluginLines`): the
10
+ * same connector plus the skills that teach the AI how to use Asks. The bare connector stays as the smaller fallback,
11
+ * and the only way in for ChatGPT, Cursor and VS Code.
12
+ *
13
+ * The connector is the asks.world MCP server
14
+ * served by the site itself (`/v1/mcp`, docs/MCP.md). A person adds that one
15
+ * address to claude.ai, ChatGPT, Claude Code or Codex, signs in with Google
16
+ * when it asks (every request needs the sign-in), and it then acts as them: it
17
+ * does what needs no money and no signature in the chat, and hands everything
18
+ * else to one tap on an asks.world page.
11
19
  *
12
20
  * Pure and dependency-free, like `app/lib/networks.ts`: the app, the MCP
13
21
  * server and `node --test` all read it the same way.
14
- *
15
- * **Why `openhands-network` and not `openhands`.** OpenHands is All-Hands-AI's
16
- * coding agent; they own the `@openhands` scope on npm and the GitHub org, and
17
- * third parties already publish "OpenHands MCP" packages. A client with both
18
- * installed would show two servers called `openhands`. The domain is the honest
19
- * anchor, so the server, the package and the plugin all carry its name.
20
22
  */
21
- /** The npm package the bundled server ships as (the plugin plan's A2). */
22
- export const MCP_PACKAGE = "@ixo/asks-mcp";
23
23
  /** The name a client registers the server under; tools appear as `mcp__asks__*`. */
24
24
  export const MCP_SERVER = "asks";
25
25
  /**
26
- * The dist-tag an install follows (owner, 2026-10-26): `latest`, the newest release from main, majors
27
- * included. The plugin (ixoworld/ixo-plugins) uses the same.
26
+ * The connector's path on every deployment's own origin, the one address a
27
+ * person adds: it asks them to sign in with Google, then acts as them, and the
28
+ * `/v1/` prefix versions it (docs/MCP.md). `https://asks.world/v1/mcp`,
29
+ * `https://test.asks.world/v1/mcp`.
28
30
  */
29
- export const MCP_TAG = "latest";
30
- /** What `npx` is told to run. */
31
- export const MCP_SPEC = `${MCP_PACKAGE}@${MCP_TAG}`;
32
- /** A site's network is the test network unless it is mainnet (testnet, devnet). */
33
- const isTest = (network) => network !== "mainnet";
31
+ export const MCP_HOSTED_PATH = "/v1/mcp";
32
+ const trimmed = (origin) => origin.replace(/\/+$/, "");
33
+ /** The connector's URL on a deployment's origin. */
34
+ export const hostedUrl = (origin) => `${trimmed(origin)}${MCP_HOSTED_PATH}`;
34
35
  /**
35
- * What that spec actually runs is whatever build the npx cache holds for it.
36
- * npx keeps one install per spec string and reuses it without asking the
37
- * registry, so a machine that installed in September keeps September's
38
- * server until the cache is cleared — on 2026-10-20 `@1` ran 1.1.0 on a Mac
39
- * while 1.4.1 was latest, and 1.1.0 refused post_call for want of variables
40
- * 1.4 reads from the site. The plugin's `.mcp.json` uses the same spec. Said
41
- * beside the version wherever an install is printed, with the one line that
42
- * refreshes it.
36
+ * The connector's address on a deployment's origin: the one a person adds. A request with no sign-in is answered
37
+ * with the sign-in challenge, which is what makes claude.ai, ChatGPT, Claude Code and Codex open the asks.world
38
+ * sign-in page. The same address as `hostedUrl`: there is no second, signed-out one.
43
39
  */
44
- export const NPX_CACHE_NOTE = `npx keeps the build it first installed for "${MCP_SPEC}" and reuses it without asking npm, so after a release an older server can keep running on your machine.`;
45
- /** The one line that makes the next start install the newest release: npx's own cache, found through npm's config so the path is right on every machine. */
46
- export const NPX_REFRESH_LINE = 'rm -rf "$(npm config get cache)/_npx"';
47
- /** The note and the line, as text: what get_config_help and the install pages print. */
48
- export const npxCacheLines = () => [`${NPX_CACHE_NOTE} To refresh it, run this once, then start the client again:\n${NPX_REFRESH_LINE}`];
40
+ export const connectorUrl = hostedUrl;
41
+ /** The assistants a person adds the connector to, in the order the pages show them. */
42
+ export const CONNECTOR_CLIENTS = ["claude-ai", "chatgpt", "claude-code", "codex"];
43
+ /** Each assistant's name, the heading above its steps. */
44
+ export const CONNECTOR_WHERE = {
45
+ "claude-ai": "Claude (claude.ai, the desktop app and the phone app)",
46
+ chatgpt: "ChatGPT",
47
+ "claude-code": "Claude Code",
48
+ codex: "Codex"
49
+ };
50
+ /** Where each chat app adds a connector (claude.ai moved connectors under Customize; ChatGPT calls them plugins), checked 2026-11-04. */
51
+ export const CLAUDE_CONNECTORS_URL = "https://claude.ai/customize/connectors";
52
+ export const CHATGPT_PLUGINS_URL = "https://chatgpt.com/plugins";
53
+ /** The name the one-click installs register the connector under, as a person sees it in Cursor or VS Code. */
54
+ const INSTALL_NAME = "Asks";
49
55
  /**
50
- * The hosted server's path on every deployment's own origin: read-only,
51
- * unauthenticated, and the protocol surface the `/v1/` prefix versions
52
- * (docs/MCP.md). `https://asks.world/v1/mcp` and
53
- * `https://test.asks.world/v1/mcp`.
56
+ * Cursor's one-click install (cursor.com/docs/context/mcp/install-links): `name`, and `config` = base64 of the server's
57
+ * mcp.json entry, which for a remote server is just `{"url": …}`. The cursor.com web page opens the
58
+ * `cursor://anysphere.cursor-deeplink/mcp/install` deeplink, and says what to do when Cursor is not installed.
54
59
  */
55
- export const MCP_HOSTED_PATH = "/v1/mcp";
56
- /** The hosted server's URL on a deployment's origin. */
57
- export const hostedUrl = (origin) => `${origin.replace(/\/+$/, "")}${MCP_HOSTED_PATH}`;
58
- export const INSTALL_CLIENTS = ["claude-code", "codex", "cursor", "vscode"];
59
- const PACKAGE_ENTRY = { kind: "package" };
60
- /** The command and its arguments, as every client wants them. */
61
- function command(entry) {
62
- return entry.kind === "package"
63
- ? { command: "npx", args: ["-y", MCP_SPEC], env: {} }
64
- : { command: "node", args: ["--experimental-strip-types", entry.path], env: {} };
65
- }
66
- const envOf = (options) => ({
67
- ...command(options.entry ?? PACKAGE_ENTRY).env,
68
- NEXT_PUBLIC_CHAIN_NETWORK: options.network
69
- });
70
- /** One client's install text, ready to paste. */
71
- export function installLines(client, options) {
72
- const run = command(options.entry ?? PACKAGE_ENTRY);
73
- const env = envOf(options);
74
- /* A plugin install does not replace a hand-added server (Claude Code names plugin servers `plugin:<plugin>:<server>`), so the guide says to remove it, or every tool is listed twice (final review M3). */
75
- const name = MCP_SERVER;
60
+ export const cursorInstallUrl = (origin) => `https://cursor.com/install-mcp?name=${INSTALL_NAME}&config=${encodeURIComponent(btoa(JSON.stringify({ url: connectorUrl(origin) })))}`;
61
+ /**
62
+ * VS Code's install link (code.visualstudio.com/docs/copilot/guides/mcp-developer-guide): `vscode:mcp/install?` and the
63
+ * URL-encoded JSON `{name, type: "http", url}`, behind vscode.dev/redirect so a web page can open it.
64
+ */
65
+ export const vscodeInstallUrl = (origin) => `https://vscode.dev/redirect?url=${encodeURIComponent(`vscode:mcp/install?${encodeURIComponent(JSON.stringify({ name: INSTALL_NAME, type: "http", url: connectorUrl(origin) }))}`)}`;
66
+ /** One assistant's steps, ready to follow: plain words for the apps, the commands for the terminals. */
67
+ export function connectorLines(client, origin) {
68
+ const url = connectorUrl(origin);
76
69
  switch (client) {
77
- case "claude-code": {
78
- const flags = Object.entries(env)
79
- .map(([key, value]) => `--env ${key}=${value}`)
80
- .join(" ");
81
- return `claude mcp add ${name} ${flags} -- ${run.command} ${run.args.join(" ")}`;
82
- }
83
- case "codex": {
84
- const table = Object.entries(env)
85
- .map(([key, value]) => `${key} = "${value}"`)
86
- .join(", ");
87
- return [`[mcp_servers.${name}]`, `command = "${run.command}"`, `args = ${JSON.stringify(run.args)}`, `env = { ${table} }`].join("\n");
88
- }
89
- case "cursor":
90
- return JSON.stringify({ mcpServers: { [name]: { command: run.command, args: run.args, env } } }, null, 2);
91
- case "vscode":
92
- return `vscode:mcp/install?${encodeURIComponent(JSON.stringify({ name, command: run.command, args: run.args, env }))}`;
70
+ case "claude-ai":
71
+ return `Open Settings, then Customize, then Connectors (or go to ${CLAUDE_CONNECTORS_URL}). Tap + Add, then Add custom connector. Name it Asks, paste ${url} and tap Continue. Then sign in with Google.`;
72
+ case "chatgpt":
73
+ return `Open Plugins in the sidebar (or go to ${CHATGPT_PLUGINS_URL}), then Add, then Add custom MCP server. Name it Asks, paste ${url} as the Server URL and keep Authentication on OAuth. Tick "I understand and want to continue", tap Create as a plugin, then sign in with Google.`;
74
+ case "claude-code":
75
+ return `claude mcp add --transport http ${MCP_SERVER} ${url}\nThen type /mcp in Claude Code, pick ${MCP_SERVER} and sign in with Google.`;
76
+ case "codex":
77
+ return `codex mcp add ${MCP_SERVER} --url ${url}\ncodex mcp login ${MCP_SERVER}\nThe second line opens the sign-in: sign in with Google.`;
93
78
  }
94
79
  }
95
- /** Where each client keeps it — the sentence above the block. */
96
- export const INSTALL_WHERE = {
97
- "claude-code": "Claude Code, in a terminal:",
98
- codex: "Codex, in ~/.codex/config.toml:",
99
- cursor: "Cursor, in ~/.cursor/mcp.json (or a project's .cursor/mcp.json):",
100
- vscode: "VS Code, open this link (or paste the Cursor block into .vscode/mcp.json):"
101
- };
102
- /**
103
- * The plugin: the local server with its skill, from the ixo plugin
104
- * marketplace, and the first way in for Claude Code and Codex. It launches the
105
- * same package (`npx -y` {@link MCP_SPEC}), so it works exactly when the
106
- * package does.
107
- */
80
+ /** The one command a person copies into a terminal: Claude Code's, which the install block leads with. */
81
+ export const connectorCommand = (origin) => `claude mcp add --transport http ${MCP_SERVER} ${connectorUrl(origin)}`;
82
+ /** The plugin marketplace's public repository: the Asks skills and the company tools. */
108
83
  export const PLUGIN_MARKETPLACE = "ixoworld/ixo-plugins";
109
- export const PLUGIN_NAME = "asks";
110
- export const PLUGIN_ID = `${PLUGIN_NAME}@ixo-plugins`;
111
- /** The plugin marketplace's public repository: every plugin's skill, README and version. */
112
84
  export const PLUGIN_MARKETPLACE_URL = `https://github.com/${PLUGIN_MARKETPLACE}`;
85
+ /** Where claude.ai lists plugins (Customize, then Plugins). */
86
+ export const CLAUDE_PLUGINS_URL = "https://claude.ai/customize/plugins";
87
+ /** The apps that take the asks plugin: the connector plus the skills that teach the AI how to use Asks. The rest take the bare connector. */
88
+ export const PLUGIN_CLIENTS = ["claude-ai", "claude-code", "codex"];
89
+ /** The plugin, and the server it registers, per network: `asks` talks to asks.world, `asks-testnet` to the sandbox, `asks-devnet` to dev.asks.world. */
90
+ export const pluginName = (network) => (network === "mainnet" ? "asks" : network === "devnet" ? "asks-devnet" : "asks-testnet");
91
+ /** One app's plugin steps on a network: plain words for claude.ai, the lines to type for Claude Code and Codex. */
92
+ export function pluginLines(client, network) {
93
+ const plugin = pluginName(network);
94
+ const id = `${plugin}@${PLUGIN_MARKETPLACE.split("/")[1]}`;
95
+ switch (client) {
96
+ case "claude-ai":
97
+ return `Open Customize, then Plugins (or go to ${CLAUDE_PLUGINS_URL}). Tap Add, then Add marketplace, and enter ${PLUGIN_MARKETPLACE}. Then open ${plugin} and turn it on. It asks you to sign in with Google the first time you use it.`;
98
+ case "claude-code":
99
+ return `/plugin marketplace add ${PLUGIN_MARKETPLACE}\n/plugin install ${id}\nThen type /mcp in Claude Code, pick ${plugin} and sign in with Google.`;
100
+ case "codex":
101
+ return `codex plugin marketplace add ${PLUGIN_MARKETPLACE}\ncodex plugin add ${id}\nCodex asks you to sign in with Google. If it does not, run codex mcp login ${plugin}.`;
102
+ }
103
+ }
113
104
  /** An npm package's page, where its latest version is. */
114
105
  export const npmUrl = (name) => `https://www.npmjs.com/package/${name}`;
115
106
  /**
116
- * The packages the plugins run, each with the version range an install pins (npx takes the newest inside it). The
117
- * guides (/llms.txt, /mcp.md) list these; bump a range here when a plugin's skill moves to a new one.
107
+ * The packages a company runs for itself (its verifier, its payouts service), each with the version range an
108
+ * install pins. The guides (/llms.txt, /mcp.md) list these. The Asks tools themselves are the connector, not a package.
118
109
  */
119
110
  export const RESOURCE_PACKAGES = [
120
- { name: MCP_PACKAGE, range: MCP_TAG, what: `the asks.world tools the plugin runs (server name ${MCP_SERVER})` },
121
- { name: "@ixo/decision-oracle", range: "0.2", what: `company setup: the organisation, its verifier and Pay for reviews (used by ${PLUGIN_NAME})` },
122
- { name: "@ixo/payouts-facilitator", range: "0.1", what: `a company's own payouts service, for paying workers in USD Coin on Base (used by ${PLUGIN_NAME})` }
111
+ { name: "@ixo/decision-oracle", range: "0.2", what: "company setup: the organisation, its verifier and Pay for reviews" },
112
+ { name: "@ixo/payouts-facilitator", range: "0.1", what: "a company's own payouts service, for paying workers in USD Coin on Base" }
123
113
  ];
124
114
  /** One line per package: name@range, what it is, its npm page. */
125
115
  export const resourceLines = () => RESOURCE_PACKAGES.map((one) => `${one.name}@${one.range}: ${one.what}. ${npmUrl(one.name)}`);
126
- /**
127
- * The hosted MCP (claude.ai, ChatGPT) only reads. Everything that signs runs in
128
- * Claude Code with the local MCP / HQ plugin, where keys and data stay on the
129
- * user's machine (owner ruling 2026-10-15). One wording, said everywhere.
130
- */
131
- export const READ_ONLY_LINE = "This connector holds no key: it reads, and posts an ask only as a pay link (post_ask with pay_by \"card\"), where the person pays by card and posts it on asks.world. To post from your own money, set up payouts, pay for reviews or get paid, use Claude Code with an asks.world plugin (asks): it runs on your computer, so your keys and data stay with you.";
132
- /** The first Claude Code that installs from a marketplace in one step, with `--marketplace`. */
133
- export const CLAUDE_CODE_ONE_STEP = "2.1.275";
134
- export const PLUGIN_CLIENTS = ["claude-code", "codex"];
135
- /**
136
- * Every plugin install, in the order to show them: Claude Code in one step,
137
- * the two steps an older Claude Code needs, then Codex.
138
- */
139
- export const PLUGIN_INSTALLS = ["claude-code", "claude-code-older", "codex"];
140
- /** One plugin install, a command per line: the worker plugin unless `name` says which. */
141
- export function pluginLines(install, name = PLUGIN_NAME) {
142
- const id = `${name}@ixo-plugins`;
143
- switch (install) {
144
- case "claude-code":
145
- return `/plugin install ${name} --marketplace ${PLUGIN_MARKETPLACE}`;
146
- case "claude-code-older":
147
- return [`/plugin marketplace add ${PLUGIN_MARKETPLACE}`, `/plugin install ${id}`].join("\n");
148
- case "codex":
149
- return [`codex plugin marketplace add ${PLUGIN_MARKETPLACE}`, `codex plugin add ${id}`].join("\n");
150
- }
151
- }
152
- /** The Claude Code install as shell commands, said on one line: for an agent that cannot type a /plugin command but can run `claude`. */
153
- export const pluginShellLine = (name) => `claude plugin marketplace add ${PLUGIN_MARKETPLACE} then claude plugin install ${name}@ixo-plugins`;
154
- /**
155
- * The Claude app (desktop or claude.ai, paid plans): a person adds the plugin by hand, and its server, which runs on
156
- * their computer, works where Claude can run things on it: the Code tab, or a chat with a folder connected (the former Cowork); not a plain chat (support.claude.com, "Use plugins in Claude").
157
- */
158
- export const claudeAppPluginSteps = (names) => `In the Claude app (paid plans) your user adds it themselves: Customize, then Plugins, then Add, then Add marketplace, then Add from a repository, and enter ${PLUGIN_MARKETPLACE}; then on the Discover tab pick ${names} and tap Add. It runs on their computer, so they use it in the app's Code tab or in a chat with a folder connected, not in a plain chat.`;
159
- /** The one plugin, for a company or a worker: what it does, said once. Every page and tool that shows an install shows it, from here. */
160
- export const PLUGIN_PATHS = [
161
- {
162
- name: PLUGIN_NAME,
163
- who: "For a company or yourself",
164
- what: "Find asks, answer them and get paid, post asks of your own, and set up your company (organisation, how workers are paid, a verifier, review billing). A report ask is answered with Claude (the report and screenshots, which you approve before anything is sent) or on the website."
165
- }
166
- ];
167
- /** The plugin's commands (ixoworld/ixo-plugins), said once: `/asks` works out what the person wants, the rest go straight to one job. */
168
- export const PLUGIN_COMMANDS_LINE = `Once installed, type /asks and say what you want, or go straight to one job: /asks:create (post an ask or a review, set up a company), /asks:jobs (find work), /asks:invite, /asks:manage, /asks:report (write a review report), /asks:profile, /asks:account, /asks:connect, /asks:help.`;
169
- export const PLUGIN_WHERE = {
170
- "claude-code": `Claude Code ${CLAUDE_CODE_ONE_STEP} or newer, typed inside a session:`,
171
- "claude-code-older": "An older Claude Code, two lines inside a session:",
172
- codex: "Codex, in a terminal:"
173
- };
174
- /** The plugin as plain text: who it is for, then each install's lines. */
175
- export function pluginPathsText(installs = PLUGIN_INSTALLS) {
176
- return PLUGIN_PATHS.map((path) => [`${path.who}: ${path.name}. ${path.what}`, ...installs.map((one) => `${PLUGIN_WHERE[one]}\n${pluginLines(one, path.name)}`)].join("\n\n"));
177
- }
178
- /**
179
- * What the plugin brings and which network to use, said for the site at `network`. One server serves both: every
180
- * tool takes `network`, so there is nothing to set at install.
181
- */
182
- export function pluginNetworkNote(network) {
183
- const what = "The plugin brings the server and its skill, for both networks. Every action names one: the real network (`mainnet`) or the sandbox (`testnet`, a dry run with play money).";
184
- return isTest(network) ? `This site is the sandbox. Install ${PLUGIN_NAME}. ${what} Here, use it with \`testnet\` (a dry run, play money).` : what;
185
- }
186
- /**
187
- * The hosted server, for a client that cannot run a local one. It reads the
188
- * board and hands every action back to the site or the local server, so a
189
- * connector needs no key and no sign-in.
190
- */
191
- export const HOSTED_CLIENTS = ["connector", "claude-code"];
192
- /** One hosted install, for the deployment at `origin`. */
193
- export function hostedLines(client, origin) {
194
- const url = hostedUrl(origin);
195
- return client === "claude-code" ? `claude mcp add --transport http ${MCP_SERVER} ${url}` : url;
196
- }
197
- export const HOSTED_WHERE = {
198
- connector: "Claude.ai, Claude Desktop or ChatGPT: add a custom connector with this URL. It reads the board; posting and answering need the local server.",
199
- "claude-code": "Claude Code, the hosted server instead of a local one (read-only):"
200
- };
201
116
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Money on a person's asks: every ask they posted that still holds money or
3
+ * still takes answers, with what it holds and what its open spots are owed.
4
+ *
5
+ * One read for both sides of the account, so they say one figure: /me's "On
6
+ * your asks" and the MCP's `my_status`. What sits on an ask is the person's
7
+ * until it is paid out or taken back; it is not Available, and it is never
8
+ * counted twice.
9
+ *
10
+ * Read from the index (the entities an address owns and their claim
11
+ * collections) and the chain's REST gateway (what each ask's own account
12
+ * holds, which the index does not know). Both endpoints are passed in, so the
13
+ * browser, the MCP and a test stub each point it where they read.
14
+ *
15
+ * shortcut: the 60 owned entities the index returns first and the first 100
16
+ * collections under them; a poster past that loses their oldest asks from the
17
+ * sum. upgrade to a server read if posters outgrow it.
18
+ */
19
+ export interface AskMoney {
20
+ collectionId: string;
21
+ entityDid: string;
22
+ /** The ask's own account, which holds its money. */
23
+ admin: string;
24
+ /** The entity's `alsoKnownAs`, the ask's name as posted (askTitle reads it). */
25
+ name: string;
26
+ /** Still taking answers: open on chain, before its end date, spots left. */
27
+ open: boolean;
28
+ /** Base units of dollars the ask's account holds now, every dollar coin together. */
29
+ held: number;
30
+ /** The reward's coin. */
31
+ denom: string;
32
+ /** What the ask is missing to pay every open spot (reward × spots not yet approved, less what it holds), base units. */
33
+ short: number;
34
+ /** One more answer: its reward plus the check fee paid from the ask, base units. */
35
+ each: number;
36
+ /** Its spots on chain; 0 is unlimited, which has no count to raise. */
37
+ quota: number;
38
+ }
39
+ export interface OnAsksOptions {
40
+ /** The index's GraphQL endpoint. */
41
+ graphqlUrl: string;
42
+ /** The chain's REST gateway. */
43
+ restUrl: string;
44
+ fetchImpl?: typeof fetch;
45
+ now?: number;
46
+ }
47
+ /**
48
+ * The asks `address` owns that hold money or take answers, newest first. An
49
+ * ask that ended with nothing on it is done and is left out; one that ended
50
+ * with money still on it is listed, because that money is still the poster's
51
+ * to take back. Throws when the index or the gateway does not answer: a sum
52
+ * missing one ask would be a wrong figure, said as if it were right.
53
+ */
54
+ export declare function asksHolding(address: string, options: OnAsksOptions): Promise<AskMoney[]>;
55
+ /** Base units of dollars on every ask listed: the one figure "On your asks" says. */
56
+ export declare const heldOnAsks: (asks: readonly AskMoney[]) => number;
57
+ //# sourceMappingURL=onAsks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onAsks.d.ts","sourceRoot":"","sources":["../../../src/data/onAsks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wHAAwH;IACxH,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAqBD,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgD9F;AAED,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,QAAQ,EAAE,KAAG,MAA0D,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Money on a person's asks: every ask they posted that still holds money or
3
+ * still takes answers, with what it holds and what its open spots are owed.
4
+ *
5
+ * One read for both sides of the account, so they say one figure: /me's "On
6
+ * your asks" and the MCP's `my_status`. What sits on an ask is the person's
7
+ * until it is paid out or taken back; it is not Available, and it is never
8
+ * counted twice.
9
+ *
10
+ * Read from the index (the entities an address owns and their claim
11
+ * collections) and the chain's REST gateway (what each ask's own account
12
+ * holds, which the index does not know). Both endpoints are passed in, so the
13
+ * browser, the MCP and a test stub each point it where they read.
14
+ *
15
+ * shortcut: the 60 owned entities the index returns first and the first 100
16
+ * collections under them; a poster past that loses their oldest asks from the
17
+ * sum. upgrade to a server read if posters outgrow it.
18
+ */
19
+ import { gqlAt } from "./gql.js";
20
+ import { DOLLAR_DENOMS } from "./money.js";
21
+ const sum = (coins, denom) => coins?.filter((coin) => coin.denom === denom).reduce((total, coin) => total + Number(coin.amount), 0) ?? 0;
22
+ /* The index writes a timestamp without its zone; read as UTC either way. */
23
+ const endsAt = (endDate) => (endDate ? Date.parse(`${endDate}Z`.replace(/ZZ$/, "Z")) : Number.POSITIVE_INFINITY);
24
+ /**
25
+ * The asks `address` owns that hold money or take answers, newest first. An
26
+ * ask that ended with nothing on it is done and is left out; one that ended
27
+ * with money still on it is listed, because that money is still the poster's
28
+ * to take back. Throws when the index or the gateway does not answer: a sum
29
+ * missing one ask would be a wrong figure, said as if it were right.
30
+ */
31
+ export async function asksHolding(address, options) {
32
+ const { graphqlUrl, restUrl, fetchImpl = fetch, now = Date.now() } = options;
33
+ const owned = await gqlAt(graphqlUrl, `query { entities(filter: {owner: {equalTo: ${JSON.stringify(address)}}}, first: 60) { nodes { id alsoKnownAs } } }`, { fetchImpl });
34
+ const names = new Map(owned.entities.nodes.map((one) => [one.id, one.alsoKnownAs ?? ""]));
35
+ if (names.size === 0)
36
+ return [];
37
+ const rows = await gqlAt(graphqlUrl, `query { claimCollections(filter: {entity: {in: ${JSON.stringify([...names.keys()])}}}, first: 100) { nodes { id entity admin state quota count approved endDate payments } } }`, { fetchImpl });
38
+ const rest = restUrl.replace(/\/$/, "");
39
+ const read = (admin) => fetchImpl(`${rest}/cosmos/bank/v1beta1/balances/${encodeURIComponent(admin)}`, { signal: AbortSignal.timeout(10_000) })
40
+ .then((response) => (response.ok ? response.json() : Promise.reject(new Error(`balances ${response.status}`))))
41
+ .then((body) => body.balances ?? []);
42
+ const held = await Promise.all(rows.claimCollections.nodes.map((row) => read(row.admin)));
43
+ return rows.claimCollections.nodes
44
+ .map((row, index) => {
45
+ const coins = held[index];
46
+ const denom = row.payments?.approval?.amount?.[0]?.denom ?? "upay";
47
+ const reward = sum(row.payments?.approval?.amount, denom);
48
+ const evaluation = row.payments?.evaluation;
49
+ const fee = !evaluation?.account || evaluation.account === row.admin ? sum(evaluation?.amount, denom) : 0;
50
+ const quota = Number(row.quota);
51
+ const filled = quota > 0 && Number(row.count ?? 0) >= quota;
52
+ const open = (row.state === 0 || row.state === "0" || row.state === "OPEN") && endsAt(row.endDate) > now && !filled;
53
+ const owed = reward * Math.max(0, quota - Number(row.approved));
54
+ return {
55
+ collectionId: String(row.id),
56
+ entityDid: row.entity,
57
+ admin: row.admin,
58
+ name: names.get(row.entity) ?? "",
59
+ open,
60
+ held: coins.filter((coin) => DOLLAR_DENOMS.has(coin.denom)).reduce((total, coin) => total + Number(coin.amount), 0),
61
+ denom,
62
+ short: open ? Math.max(0, owed - sum(coins, denom)) : 0,
63
+ each: reward + fee,
64
+ quota
65
+ };
66
+ })
67
+ /* Done is done: ended, and nothing left on it. An open ask with no reward in dollars (paid off chain, or in the network's own coin) holds nothing here either. */
68
+ .filter((ask) => ask.held > 0 || (ask.open && ask.each > 0 && DOLLAR_DENOMS.has(ask.denom)))
69
+ .sort((a, b) => Number(b.collectionId) - Number(a.collectionId));
70
+ }
71
+ /** Base units of dollars on every ask listed: the one figure "On your asks" says. */
72
+ export const heldOnAsks = (asks) => asks.reduce((total, ask) => total + ask.held, 0);
73
+ //# sourceMappingURL=onAsks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onAsks.js","sourceRoot":"","sources":["../../../src/data/onAsks.ts"],"names":[],"mappings":"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"}
@@ -38,10 +38,13 @@ export declare function askOpenness(ask: AskWindow, now?: Date): Openness;
38
38
  * Why there is no door, including the reason that is not about this ask at
39
39
  * all: it belongs to another application.
40
40
  */
41
+ export type SubmissionConstraint = "not-configured" | "account-missing" | "not-authorized" | "permission-unreadable";
41
42
  export type AskDoor = Openness | {
42
43
  open: false;
43
44
  why: "elsewhere";
45
+ constraint?: SubmissionConstraint;
44
46
  };
47
+ export declare function submissionConstraintWords(constraint: SubmissionConstraint | undefined): string;
45
48
  /**
46
49
  * Whether **this deployment** can take an answer to this ask — which is the
47
50
  * question a submit button is really asking, and a strictly harder one than
@@ -1 +1 @@
1
- {"version":3,"file":"openness.d.ts","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;AAChB;+EAC+E;GAC7E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC;AAEnE,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,QAAQ,CAsC5E;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAExI,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAMpI;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,QAAQ,GAAE,YAA+B,GAAG,MAAM,CA0D9J"}
1
+ {"version":3,"file":"openness.d.ts","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;AAChB;+EAC+E;GAC7E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC;AAEnE,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,QAAQ,CAsC5E;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AACrH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEtG,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAM9F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAExI,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAMpI;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,QAAQ,GAAE,YAA+B,GAAG,MAAM,CA0D9J"}
@@ -39,6 +39,17 @@ export function askOpenness(ask, now = new Date()) {
39
39
  return { open: false, why: "ended" };
40
40
  return { open: true };
41
41
  }
42
+ export function submissionConstraintWords(constraint) {
43
+ if (constraint === "not-configured")
44
+ return "This site can't take completions yet.";
45
+ if (constraint === "account-missing")
46
+ return "This ask can't take completions here: its details are incomplete.";
47
+ if (constraint === "permission-unreadable")
48
+ return "We couldn't check whether this ask is taking completions. Try again shortly.";
49
+ if (constraint === "not-authorized")
50
+ return "This ask isn't taking completions on this site.";
51
+ return "We couldn't confirm this ask is taking completions here yet.";
52
+ }
42
53
  export function askDoor(ask, authorized, now = new Date()) {
43
54
  /* The chain's own word and the clock first: an ask that is closed is closed
44
55
  whoever posted it, and "closed" is the more useful thing to be told. */
@@ -71,18 +82,18 @@ export function standingLine(ask, openness = askOpenness(ask)) {
71
82
  * still pay" while the gate refused every entrant).
72
83
  */
73
84
  if (openness.why === "refused")
74
- return openness.reason ? `${openness.reason} This ask takes no answers here.` : "Openhands Network doesn't carry this ask, so it takes no answers here.";
85
+ return openness.reason ? `${openness.reason} This ask takes no completions here.` : "Openhands Network doesn't carry this ask, so it takes no completions here.";
75
86
  if (openness.why === "held")
76
- return `This ask is being looked at before it takes answers.${openness.reason ? ` ${openness.reason}` : ""}`;
87
+ return `This ask is being looked at before it takes completions.${openness.reason ? ` ${openness.reason}` : ""}`;
77
88
  if (openness.why === "unfunded")
78
- return "Waiting for payment to arrive. It takes answers once its reward is in.";
89
+ return "Waiting for payment to arrive. It takes completions once its reward is in.";
79
90
  /*
80
91
  * The one reason that is not about this ask running out of anything. An
81
92
  * ask posted by another application is still open, still paying, still
82
93
  * collecting answers — just not through this door.
83
94
  */
84
95
  if (openness.why === "elsewhere")
85
- return "Posted somewhere else. It takes answers there, not here.";
96
+ return submissionConstraintWords(openness.constraint);
86
97
  /*
87
98
  * "Filled" is two different facts and a worker deserves the right one.
88
99
  *
@@ -96,10 +107,10 @@ export function standingLine(ask, openness = askOpenness(ask)) {
96
107
  /* Answers still undecided on an ask a person gives the final OK on are held for them, not refused. */
97
108
  const held = ask.count - ask.approved - ask.rejected;
98
109
  if (held > 0 && ask.approver)
99
- return `This ask has taken all the answers it can. ${held === 1 ? "One is" : `${held} are`} waiting for the poster's OK.`;
110
+ return `This ask has taken all the completions it can. ${held === 1 ? "One is" : `${held} are`} waiting for the poster's OK.`;
100
111
  return ask.approved > 0
101
112
  ? "Every payout on this ask has been made."
102
- : "This ask has taken all the answers it can, and none was approved.";
113
+ : "This ask has taken all the completions it can, and none was approved.";
103
114
  }
104
115
  if (openness.why === "ended")
105
116
  return "This ask ended before being filled.";
@@ -124,7 +135,7 @@ export function standingLine(ask, openness = askOpenness(ask)) {
124
135
  if (spotsLeft !== null && limit <= 25)
125
136
  return `${others}${spotsLeft} of ${limit} spots still pay`;
126
137
  if (spotsLeft !== null)
127
- return `${others}open to more answers`;
138
+ return `${others}open to more completions`;
128
139
  return others.replace(/ · $/, "");
129
140
  }
130
141
  //# sourceMappingURL=openness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openness.js","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openness.js","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ type IidNode = {
10
10
  }[] | null;
11
11
  linkedResource?: {
12
12
  id?: string;
13
+ type?: string;
13
14
  proof?: string;
14
15
  }[] | null;
15
16
  };