@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,7 +1,13 @@
1
1
  /**
2
2
  * Short account names for a batch of addresses, read from our homeserver.
3
3
  *
4
- * The leaderboard's fold uses this, and only for people who switched the
4
+ * Since 2026-10-31 this repo's leaderboard reads names from the IXO Names
5
+ * worker instead (workers/src/fold/live.ts `liveNames`: one batched request,
6
+ * the same `shortName`, the same three states). This module stays because it
7
+ * is a published subpath (`@ixo/openhands-sdk/data/displayNames`) for hosts
8
+ * that read their own homeserver; nothing in this repo calls it.
9
+ *
10
+ * It was the leaderboard's reader, and only for people who switched the
5
11
  * account name on: it asks `@did-ixo-<address>:<server>` for a display name,
6
12
  * shortens it with `shortName`, and returns the short form or a state. The
7
13
  * full display name never leaves this function, and neither does the Matrix
@@ -1 +1 @@
1
- {"version":3,"file":"displayNames.d.ts","sourceRoot":"","sources":["../../../src/data/displayNames.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAE5G,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAID;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,KAAG,MAM7D,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAiDzK"}
1
+ {"version":3,"file":"displayNames.d.ts","sourceRoot":"","sources":["../../../src/data/displayNames.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAE5G,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAID;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,KAAG,MAM7D,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAiDzK"}
@@ -2,7 +2,13 @@
2
2
  /**
3
3
  * Short account names for a batch of addresses, read from our homeserver.
4
4
  *
5
- * The leaderboard's fold uses this, and only for people who switched the
5
+ * Since 2026-10-31 this repo's leaderboard reads names from the IXO Names
6
+ * worker instead (workers/src/fold/live.ts `liveNames`: one batched request,
7
+ * the same `shortName`, the same three states). This module stays because it
8
+ * is a published subpath (`@ixo/openhands-sdk/data/displayNames`) for hosts
9
+ * that read their own homeserver; nothing in this repo calls it.
10
+ *
11
+ * It was the leaderboard's reader, and only for people who switched the
6
12
  * account name on: it asks `@did-ixo-<address>:<server>` for a display name,
7
13
  * shortens it with `shortName`, and returns the short form or a state. The
8
14
  * full display name never leaves this function, and neither does the Matrix
@@ -1 +1 @@
1
- {"version":3,"file":"displayNames.js","sourceRoot":"","sources":["../../../src/data/displayNames.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAuCH,4CAiDC;AAtFD,iDAA2C;AAuB3C,MAAM,OAAO,GAAG,uBAAuB,CAAC;AAExC;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CAAC,UAAkB,EAAU,EAAE;IACrE,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC;AAEK,KAAK,UAAU,gBAAgB,CAAC,MAAyB,EAAE,SAA4B,EAAE,UAA8B,EAAE;IAC9H,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,KAAK,EAAE,OAAe,EAA8B,EAAE;QACpE,uEAAuE;QACvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,YAAY,OAAO,IAAI,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,8BAA8B,kBAAkB,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC1G,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;gBACxE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACvD,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAA8B,CAAC;YAChE,MAAM,IAAI,GAAG,IAAA,wBAAS,EAAC,OAAO,IAAI,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxF,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,CAAC,CAAC;YACV,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO;YACnC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"displayNames.js","sourceRoot":"","sources":["../../../src/data/displayNames.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,11 @@ import { type Network, network } from "../network.ts";
11
11
  export * from "./docPath.ts";
12
12
  export { network };
13
13
  export declare const vfsUrlFor: (net: Network) => string;
14
+ /**
15
+ * The origin clients are handed for the worker: empty when none is configured (the feature is off), the configured one
16
+ * when it is a local `wrangler dev`, else the network's public API origin whatever host the deployment calls the worker by.
17
+ */
18
+ export declare const clientApiOrigin: (net: Network, configured: string | undefined) => string;
14
19
  export declare const subscriptionsUrlFor: (net: Network) => string;
15
20
  export declare const DEFAULT_IPFS_GATEWAY_URL = "https://ipfs.gateway.ixo.world";
16
21
  /** The filesystem worker for this network. Override with `NEXT_PUBLIC_VFS_URL` (local `wrangler dev`) or `configure({ vfsUrl })`. */
@@ -1 +1 @@
1
- {"version":3,"file":"docUrls.d.ts","sourceRoot":"","sources":["../../../src/data/docUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,OAAO,EAAE,CAAC;AASnB,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,MAA6B,CAAC;AASvE,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,KAAG,MAAuC,CAAC;AAE3F,eAAO,MAAM,wBAAwB,mCAAmC,CAAC;AAEzE,qIAAqI;AACrI,eAAO,MAAM,MAAM,QAAO,MACqH,CAAC;AAEhJ,iLAAiL;AACjL,eAAO,MAAM,UAAU,QAAO,MAAmH,CAAC;AAElJ,uGAAuG;AACvG,eAAO,MAAM,cAAc,QAAO,MAC6H,CAAC;AAEhK,mFAAmF;AACnF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAyC,CAAC;AAElF,0CAA0C;AAC1C,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,MAA2C,CAAC;AAErF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,aAAa,MAAM,KAAG,MAAqF,CAAC;AAEtJ,uEAAuE;AACvE,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAGrE,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,QAAQ,QAAO,MAAM,EAA8D,CAAC"}
1
+ {"version":3,"file":"docUrls.d.ts","sourceRoot":"","sources":["../../../src/data/docUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,OAAO,EAAE,CAAC;AASnB,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,MAA6B,CAAC;AAgBvE;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,EAAE,YAAY,MAAM,GAAG,SAAS,KAAG,MAI9E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,KAAG,MAAuC,CAAC;AAE3F,eAAO,MAAM,wBAAwB,mCAAmC,CAAC;AAEzE,qIAAqI;AACrI,eAAO,MAAM,MAAM,QAAO,MACqH,CAAC;AAEhJ,iLAAiL;AACjL,eAAO,MAAM,UAAU,QAAO,MAAmH,CAAC;AAElJ,uGAAuG;AACvG,eAAO,MAAM,cAAc,QAAO,MAC6H,CAAC;AAEhK,mFAAmF;AACnF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAyC,CAAC;AAElF,0CAA0C;AAC1C,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,MAA2C,CAAC;AAErF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,aAAa,MAAM,KAAG,MAAqF,CAAC;AAEtJ,uEAAuE;AACvE,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAGrE,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,QAAQ,QAAO,MAAM,EAA8D,CAAC"}
@@ -23,7 +23,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
23
23
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.docHosts = exports.docUrls = exports.docUrlBeside = exports.ipfsDocUrl = exports.vfsDocUrl = exports.ipfsGatewayUrl = exports.laneVfsUrl = exports.vfsUrl = exports.DEFAULT_IPFS_GATEWAY_URL = exports.subscriptionsUrlFor = exports.vfsUrlFor = exports.network = void 0;
26
+ exports.docHosts = exports.docUrls = exports.docUrlBeside = exports.ipfsDocUrl = exports.vfsDocUrl = exports.ipfsGatewayUrl = exports.laneVfsUrl = exports.vfsUrl = exports.DEFAULT_IPFS_GATEWAY_URL = exports.subscriptionsUrlFor = exports.clientApiOrigin = exports.vfsUrlFor = exports.network = void 0;
27
27
  const given_ts_1 = require("../given.js");
28
28
  const network_ts_1 = require("../network.js");
29
29
  Object.defineProperty(exports, "network", { enumerable: true, get: function () { return network_ts_1.network; } });
@@ -43,6 +43,23 @@ const SUBSCRIPTIONS_BY_NETWORK = {
43
43
  testnet: "https://subscriptions-api-testnet.ixo-api.workers.dev",
44
44
  mainnet: "https://subscriptions-api-mainnet.ixo-api.workers.dev"
45
45
  };
46
+ /** The public API origin each network's worker answers on: what clients (and sandbox allow-lists) see, never the workers.dev host. */
47
+ const API_ORIGIN_BY_NETWORK = {
48
+ devnet: "https://dev.api.asks.world",
49
+ testnet: "https://test.api.asks.world",
50
+ mainnet: "https://api.asks.world"
51
+ };
52
+ /**
53
+ * The origin clients are handed for the worker: empty when none is configured (the feature is off), the configured one
54
+ * when it is a local `wrangler dev`, else the network's public API origin whatever host the deployment calls the worker by.
55
+ */
56
+ const clientApiOrigin = (net, configured) => {
57
+ const set = (configured || "").trim().replace(/\/+$/, "");
58
+ if (!set)
59
+ return "";
60
+ return /^https?:\/\/(localhost|127\.0\.0\.1)(:|\/|$)/.test(set) ? set : API_ORIGIN_BY_NETWORK[net];
61
+ };
62
+ exports.clientApiOrigin = clientApiOrigin;
46
63
  const subscriptionsUrlFor = (net) => SUBSCRIPTIONS_BY_NETWORK[net];
47
64
  exports.subscriptionsUrlFor = subscriptionsUrlFor;
48
65
  exports.DEFAULT_IPFS_GATEWAY_URL = "https://ipfs.gateway.ixo.world";
@@ -1 +1 @@
1
- {"version":3,"file":"docUrls.js","sourceRoot":"","sources":["../../../src/data/docUrls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docUrls.js","sourceRoot":"","sources":["../../../src/data/docUrls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Files attached to a submit_work draft before the person opens it (docs/MCP.md "Files from the chat"; migration
3
+ * 0059). The add-on to the one-tap answer: submit_work saves a draft as always, and beside its link hands an agent
4
+ * that can make HTTP requests (Companion, Claude Code, Codex, claude.ai with code execution) one upload address for
5
+ * that draft. At the address the agent states each file's name, type and size and gets a signed R2 URL to PUT it
6
+ * to; the worker then checks what landed. The ask's own answer page (`/submit/<n>?draft=…`) opens with the files in
7
+ * place, and sends them on its own rails when the person taps Send, signed as themselves. Without an upload, nothing
8
+ * changes: the person adds the files on the page, as before.
9
+ *
10
+ * The rules every side shares (the worker's store, the connector, the page), so no two can disagree on a type, a
11
+ * size or a name. Pure; nothing a phone's first load pays for.
12
+ */
13
+ /** An upload address's secret: `du_` and 256 random bits, base64url. Kept on the worker only as its sha256. */
14
+ export declare const UPLOAD_TOKEN: RegExp;
15
+ /** An upload address works for an hour from when submit_work made it, and never past its draft. */
16
+ export declare const UPLOAD_TTL_MS: number;
17
+ /** Files go a day after their draft was sent or expired (the scheduled prune, workers/src/draftUploads.ts). */
18
+ export declare const UPLOAD_PURGE_AFTER_MS: number;
19
+ /** A signed PUT URL works for 10 minutes (and binds the file's stated type and size). */
20
+ export declare const UPLOAD_URL_TTL_S = 600;
21
+ /** Per file. Under the answer page's own ceiling (`MAX_PROOF_BYTES`), so a file from the chat always fits the page. */
22
+ export declare const MAX_UPLOAD_BYTES = 5000000;
23
+ /** Per draft (under the report form's own `MAX_FILES`, app/submit/[id]/ReviewForm.tsx). */
24
+ export declare const MAX_UPLOAD_FILES = 10;
25
+ /** Per draft, all files together. */
26
+ export declare const MAX_DRAFT_UPLOAD_BYTES = 25000000;
27
+ /** Per person, across every draft whose files are still kept. */
28
+ export declare const MAX_OWNER_UPLOAD_BYTES = 50000000;
29
+ /** A words answer takes one file on its page (the photo beside the words, or the ask's file): no more are kept for it. */
30
+ export declare const MAX_WORDS_UPLOADS = 1;
31
+ export declare const UPLOAD_TYPES: readonly ["png", "jpg", "webp", "pdf"];
32
+ export type UploadType = (typeof UPLOAD_TYPES)[number];
33
+ export declare const UPLOAD_MEDIA: Readonly<Record<UploadType, string>>;
34
+ /** In words, for a refusal or the tool's answer. */
35
+ export declare const UPLOAD_TYPE_WORDS: Readonly<Record<UploadType, string>>;
36
+ /**
37
+ * What the bytes are, by their own first bytes, never by a name or a header: PNG's signature, JPEG's start of image,
38
+ * RIFF…WEBP, `%PDF-`. Anything else is null, whatever it is called.
39
+ */
40
+ export declare function sniffUpload(bytes: Uint8Array): UploadType | null;
41
+ /** The longest file id: the same on every side (an evidence id, `uploadIdOf`, rubric/report.ts `FILE_ID`). */
42
+ export declare const MAX_FILE_ID = 64;
43
+ /** The type a name says it is, or null for a name an upload refuses. */
44
+ export declare function uploadTypeOfName(name: string): UploadType | null;
45
+ /**
46
+ * A file's id, the one rule every side uses (submit_work's `files`, this upload address, the answer page's forms):
47
+ * its name without the folder or the extension, in an evidence id's letters (rubric/report.ts `FILE_ID`), spaces and
48
+ * punctuation as dashes. At most `MAX_FILE_ID` letters, the same as every evidence id (`FILE_ID`), so a long id still
49
+ * names its own file.
50
+ */
51
+ export declare function uploadIdOf(path: string): string;
52
+ /** A file's name or an evidence id as matching reads it: no folder, extension or copy mark (" (1)", " copy"), lower case, one dash between words. */
53
+ export declare const evidenceKey: (name: string) => string;
54
+ /**
55
+ * The one file a step's or a finding's evidence means, the one forgiving rule every side uses (the send page, the
56
+ * upload address, the report's check and its viewer): the file with that exact id first; else the one whose id or
57
+ * name reads the same by `evidenceKey` ("Login Error.png", "login_error.PNG", "login-error (1).png" for
58
+ * "login-error"); else the one that holds it as whole words ("screenshot-login-error.png"). None, or two that fit
59
+ * as well, is no match. What is stored keeps the file's own id.
60
+ */
61
+ export declare function evidenceFileOf<F extends {
62
+ id: string;
63
+ name?: string;
64
+ }>(cited: string, files: readonly F[]): F | undefined;
65
+ /** `evidenceFileOf` over bare ids: the held id a cited one means, or undefined. */
66
+ export declare const evidenceIdIn: (cited: string, ids: Iterable<string>) => string | undefined;
67
+ /**
68
+ * Every `evidence` list at any depth, each id as the file `held` it means (`evidenceIdIn`), so what is stored names the
69
+ * file's own id; an id with no file (a removed one, or one restored with none) is dropped.
70
+ */
71
+ export declare function keepHeldEvidence<T>(value: T, held: Iterable<string>): T;
72
+ /** Hex sha256 of bytes or text (the upload secret's stored hash; the report form's evidence hashes). */
73
+ export declare function sha256Hex(data: Uint8Array | string): Promise<string>;
74
+ /** The type a stated Content-Type names, or null ("image/jpg" is a JPG too). */
75
+ export declare function uploadTypeOfMedia(contentType: string): UploadType | null;
76
+ /** Which of the four a form question's `accept` takes (`image/*`, `image/png`, `.pdf`…); none said is all four. */
77
+ export declare function uploadTypesOfAccept(accept?: string): UploadType[];
78
+ /** A form question, as far as the chat's files care. */
79
+ export interface FileQuestion {
80
+ name: string;
81
+ type: string;
82
+ accept?: string;
83
+ multiple?: boolean;
84
+ }
85
+ /**
86
+ * The one question of a verifier's form the chat's files go on: its `evidence` file question, else its first file
87
+ * question; null for a form with none. The connector sizes the upload address by it and the page places files on it.
88
+ */
89
+ export declare const chatFileQuestion: <Q extends FileQuestion>(fields: readonly Q[]) => Q | null;
90
+ /**
91
+ * What one draft's address takes, decided by submit_work from the answer it drafted and kept with the address:
92
+ *
93
+ * - `expect`: the file ids the answer names (a report's or a form's evidence, and submit_work's `files`). A file
94
+ * whose id is one of them is taken.
95
+ * - `extra`: how many files with other names it takes besides (a words answer's one file; 0 for a report or a form,
96
+ * which take only the names they expect).
97
+ * - `types`: what the page can take for this answer (a words-only ask's photo is a JPG or PNG; otherwise all four).
98
+ */
99
+ export interface UploadSpec {
100
+ expect: string[];
101
+ extra: number;
102
+ types: UploadType[];
103
+ }
104
+ /** set_my_page's photo (the `set_page_photo` draft): one image, any name, never a PDF. The worker keeps this spec whatever the connector sent. */
105
+ export declare const PHOTO_UPLOAD_SPEC: UploadSpec;
106
+ /** The drafts an upload address can be opened on. */
107
+ export declare const UPLOAD_ACTIONS: readonly string[];
108
+ /** Why a spec is not one the store keeps, or null. */
109
+ export declare function uploadSpecProblem(raw: unknown): string | null;
110
+ /**
111
+ * Whether a file with this id may be kept, given the ids already kept: one the answer expects, a re-upload of one
112
+ * already kept (it replaces it), or a new one while the extras last. The code names what is wrong.
113
+ */
114
+ /** The id an uploaded file is kept under: the one id the answer names that means it (`evidenceIdIn`: "Login Error.png" for "login-error"), else its own. */
115
+ export declare function uploadIdFor(spec: UploadSpec, name: string): string;
116
+ export declare function uploadNameAllowed(spec: UploadSpec, id: string, kept: readonly string[]): "ok" | "unexpected-name" | "too-many-files";
117
+ /** What an upload refusal says, in plain words for the agent that tried. */
118
+ export declare function uploadRefusalWords(code: string, spec?: UploadSpec | null): string;
119
+ /** Why a file that came was not kept, in a few words: for link_status, the agent's list and the answer page. */
120
+ export declare const UPLOAD_REFUSAL_SHORT: Readonly<Record<string, string>>;
121
+ export declare const uploadRefusalShort: (code: string) => string;
122
+ /** What is attached to a draft, as its owner's status and its page read it. */
123
+ export interface DraftFiles {
124
+ /** How many files are kept for it now (checked: the right size and type). */
125
+ attached: number;
126
+ names: string[];
127
+ /** Files that came and were deleted, and why (a code of `UPLOAD_REFUSAL_SHORT`). */
128
+ refused?: {
129
+ name: string;
130
+ code: string;
131
+ }[];
132
+ /** The ids the answer names that have no file yet: only once the agent has used the address (else nothing is said). */
133
+ missing: string[];
134
+ /** Files with an upload URL issued but not yet checked; they may not have arrived. */
135
+ waiting?: string[];
136
+ /** Whether the address still takes uploads. */
137
+ open: boolean;
138
+ /** When the address stops taking uploads. */
139
+ expiresAt: number;
140
+ }
141
+ /** "2 files attached (login.png, crash.pdf); not received: settings." for link_status and the report page. */
142
+ export declare function draftFilesWords(files: DraftFiles): string;
143
+ /** The evidence ids an answer names: every string in an `evidence` list, at any depth (a report's steps and findings, a form's rows). */
144
+ export declare function evidenceIdsOf(value: unknown, found?: Set<string>, depth?: number): string[];
145
+ //# sourceMappingURL=draftUploads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftUploads.d.ts","sourceRoot":"","sources":["../../../src/data/draftUploads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+ /**
3
+ * Files attached to a submit_work draft before the person opens it (docs/MCP.md "Files from the chat"; migration
4
+ * 0059). The add-on to the one-tap answer: submit_work saves a draft as always, and beside its link hands an agent
5
+ * that can make HTTP requests (Companion, Claude Code, Codex, claude.ai with code execution) one upload address for
6
+ * that draft. At the address the agent states each file's name, type and size and gets a signed R2 URL to PUT it
7
+ * to; the worker then checks what landed. The ask's own answer page (`/submit/<n>?draft=…`) opens with the files in
8
+ * place, and sends them on its own rails when the person taps Send, signed as themselves. Without an upload, nothing
9
+ * changes: the person adds the files on the page, as before.
10
+ *
11
+ * The rules every side shares (the worker's store, the connector, the page), so no two can disagree on a type, a
12
+ * size or a name. Pure; nothing a phone's first load pays for.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.uploadRefusalShort = exports.UPLOAD_REFUSAL_SHORT = exports.UPLOAD_ACTIONS = exports.PHOTO_UPLOAD_SPEC = exports.chatFileQuestion = exports.evidenceIdIn = exports.evidenceKey = exports.MAX_FILE_ID = exports.UPLOAD_TYPE_WORDS = exports.UPLOAD_MEDIA = exports.UPLOAD_TYPES = exports.MAX_WORDS_UPLOADS = exports.MAX_OWNER_UPLOAD_BYTES = exports.MAX_DRAFT_UPLOAD_BYTES = exports.MAX_UPLOAD_FILES = exports.MAX_UPLOAD_BYTES = exports.UPLOAD_URL_TTL_S = exports.UPLOAD_PURGE_AFTER_MS = exports.UPLOAD_TTL_MS = exports.UPLOAD_TOKEN = void 0;
16
+ exports.sniffUpload = sniffUpload;
17
+ exports.uploadTypeOfName = uploadTypeOfName;
18
+ exports.uploadIdOf = uploadIdOf;
19
+ exports.evidenceFileOf = evidenceFileOf;
20
+ exports.keepHeldEvidence = keepHeldEvidence;
21
+ exports.sha256Hex = sha256Hex;
22
+ exports.uploadTypeOfMedia = uploadTypeOfMedia;
23
+ exports.uploadTypesOfAccept = uploadTypesOfAccept;
24
+ exports.uploadSpecProblem = uploadSpecProblem;
25
+ exports.uploadIdFor = uploadIdFor;
26
+ exports.uploadNameAllowed = uploadNameAllowed;
27
+ exports.uploadRefusalWords = uploadRefusalWords;
28
+ exports.draftFilesWords = draftFilesWords;
29
+ exports.evidenceIdsOf = evidenceIdsOf;
30
+ /** An upload address's secret: `du_` and 256 random bits, base64url. Kept on the worker only as its sha256. */
31
+ exports.UPLOAD_TOKEN = /^du_[A-Za-z0-9_-]{43}$/;
32
+ /** An upload address works for an hour from when submit_work made it, and never past its draft. */
33
+ exports.UPLOAD_TTL_MS = 60 * 60_000;
34
+ /** Files go a day after their draft was sent or expired (the scheduled prune, workers/src/draftUploads.ts). */
35
+ exports.UPLOAD_PURGE_AFTER_MS = 24 * 60 * 60_000;
36
+ /** A signed PUT URL works for 10 minutes (and binds the file's stated type and size). */
37
+ exports.UPLOAD_URL_TTL_S = 600;
38
+ /** Per file. Under the answer page's own ceiling (`MAX_PROOF_BYTES`), so a file from the chat always fits the page. */
39
+ exports.MAX_UPLOAD_BYTES = 5_000_000;
40
+ /** Per draft (under the report form's own `MAX_FILES`, app/submit/[id]/ReviewForm.tsx). */
41
+ exports.MAX_UPLOAD_FILES = 10;
42
+ /** Per draft, all files together. */
43
+ exports.MAX_DRAFT_UPLOAD_BYTES = 25_000_000;
44
+ /** Per person, across every draft whose files are still kept. */
45
+ exports.MAX_OWNER_UPLOAD_BYTES = 50_000_000;
46
+ /** A words answer takes one file on its page (the photo beside the words, or the ask's file): no more are kept for it. */
47
+ exports.MAX_WORDS_UPLOADS = 1;
48
+ exports.UPLOAD_TYPES = ["png", "jpg", "webp", "pdf"];
49
+ exports.UPLOAD_MEDIA = { png: "image/png", jpg: "image/jpeg", webp: "image/webp", pdf: "application/pdf" };
50
+ /** In words, for a refusal or the tool's answer. */
51
+ exports.UPLOAD_TYPE_WORDS = { png: "PNG", jpg: "JPG", webp: "WebP", pdf: "PDF" };
52
+ const EXTENSIONS = { png: "png", jpg: "jpg", jpeg: "jpg", webp: "webp", pdf: "pdf" };
53
+ /**
54
+ * What the bytes are, by their own first bytes, never by a name or a header: PNG's signature, JPEG's start of image,
55
+ * RIFF…WEBP, `%PDF-`. Anything else is null, whatever it is called.
56
+ */
57
+ function sniffUpload(bytes) {
58
+ const at = (index, ...values) => values.every((value, offset) => bytes[index + offset] === value);
59
+ if (bytes.length >= 8 && at(0, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a))
60
+ return "png";
61
+ if (bytes.length >= 3 && at(0, 0xff, 0xd8, 0xff))
62
+ return "jpg";
63
+ if (bytes.length >= 12 && at(0, 0x52, 0x49, 0x46, 0x46) && at(8, 0x57, 0x45, 0x42, 0x50))
64
+ return "webp";
65
+ if (bytes.length >= 5 && at(0, 0x25, 0x50, 0x44, 0x46, 0x2d))
66
+ return "pdf";
67
+ return null;
68
+ }
69
+ /** The longest file id: the same on every side (an evidence id, `uploadIdOf`, rubric/report.ts `FILE_ID`). */
70
+ exports.MAX_FILE_ID = 64;
71
+ /** A file's name as an upload takes it: letters, digits, `_ - . ` and a space, ending in .png, .jpg, .jpeg, .webp or .pdf. */
72
+ const NAME = /^[A-Za-z0-9][A-Za-z0-9_. -]{0,95}\.([A-Za-z]{3,4})$/;
73
+ /** The type a name says it is, or null for a name an upload refuses. */
74
+ function uploadTypeOfName(name) {
75
+ const found = NAME.exec(name);
76
+ return found ? (EXTENSIONS[found[1].toLowerCase()] ?? null) : null;
77
+ }
78
+ /**
79
+ * A file's id, the one rule every side uses (submit_work's `files`, this upload address, the answer page's forms):
80
+ * its name without the folder or the extension, in an evidence id's letters (rubric/report.ts `FILE_ID`), spaces and
81
+ * punctuation as dashes. At most `MAX_FILE_ID` letters, the same as every evidence id (`FILE_ID`), so a long id still
82
+ * names its own file.
83
+ */
84
+ function uploadIdOf(path) {
85
+ return ((path.split(/[\\/]/).pop() ?? path)
86
+ .replace(/\.[^.]*$/, "")
87
+ .replace(/[^A-Za-z0-9_-]+/g, "-")
88
+ .replace(/^-+|-+$/g, "")
89
+ .slice(0, exports.MAX_FILE_ID) || "file");
90
+ }
91
+ /** A file's name or an evidence id as matching reads it: no folder, extension or copy mark (" (1)", " copy"), lower case, one dash between words. */
92
+ const evidenceKey = (name) => uploadIdOf(name.replace(/(\s*\(\d+\)|[\s_-]+copy)(?=\.[A-Za-z0-9]{1,5}$|$)/i, ""))
93
+ .toLowerCase()
94
+ .replace(/[-_]+/g, "-");
95
+ exports.evidenceKey = evidenceKey;
96
+ /**
97
+ * The one file a step's or a finding's evidence means, the one forgiving rule every side uses (the send page, the
98
+ * upload address, the report's check and its viewer): the file with that exact id first; else the one whose id or
99
+ * name reads the same by `evidenceKey` ("Login Error.png", "login_error.PNG", "login-error (1).png" for
100
+ * "login-error"); else the one that holds it as whole words ("screenshot-login-error.png"). None, or two that fit
101
+ * as well, is no match. What is stored keeps the file's own id.
102
+ */
103
+ function evidenceFileOf(cited, files) {
104
+ const exact = files.find((one) => one.id === cited);
105
+ if (exact || !cited.trim())
106
+ return exact;
107
+ const key = (0, exports.evidenceKey)(cited);
108
+ const keys = (one) => [one.id, ...(one.name ? [one.name] : [])].map(exports.evidenceKey);
109
+ const only = (fit) => (fit.length === 1 ? fit[0] : undefined);
110
+ const same = files.filter((one) => keys(one).includes(key));
111
+ if (same.length)
112
+ return only(same);
113
+ return only(files.filter((one) => keys(one).some((held) => `-${held}-`.includes(`-${key}-`))));
114
+ }
115
+ /** `evidenceFileOf` over bare ids: the held id a cited one means, or undefined. */
116
+ const evidenceIdIn = (cited, ids) => evidenceFileOf(cited, [...ids].map((id) => ({ id })))?.id;
117
+ exports.evidenceIdIn = evidenceIdIn;
118
+ /**
119
+ * Every `evidence` list at any depth, each id as the file `held` it means (`evidenceIdIn`), so what is stored names the
120
+ * file's own id; an id with no file (a removed one, or one restored with none) is dropped.
121
+ */
122
+ function keepHeldEvidence(value, held) {
123
+ const ids = [...held];
124
+ const keep = (inner) => {
125
+ if (Array.isArray(inner))
126
+ return inner.map(keep);
127
+ if (!inner || typeof inner !== "object")
128
+ return inner;
129
+ return Object.fromEntries(Object.entries(inner).map(([key, one]) => [
130
+ key,
131
+ key === "evidence" && Array.isArray(one) ? [...new Set(one.map((id) => (typeof id === "string" ? (0, exports.evidenceIdIn)(id, ids) : id)).filter((id) => id !== undefined))] : keep(one)
132
+ ]));
133
+ };
134
+ return keep(value);
135
+ }
136
+ /** Hex sha256 of bytes or text (the upload secret's stored hash; the report form's evidence hashes). */
137
+ async function sha256Hex(data) {
138
+ const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
139
+ const digest = await crypto.subtle.digest("SHA-256", bytes);
140
+ return [...new Uint8Array(digest)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
141
+ }
142
+ /** The type a stated Content-Type names, or null ("image/jpg" is a JPG too). */
143
+ function uploadTypeOfMedia(contentType) {
144
+ const type = contentType.split(";")[0].trim().toLowerCase();
145
+ if (type === "image/jpg")
146
+ return "jpg";
147
+ return exports.UPLOAD_TYPES.find((one) => exports.UPLOAD_MEDIA[one] === type) ?? null;
148
+ }
149
+ /** Which of the four a form question's `accept` takes (`image/*`, `image/png`, `.pdf`…); none said is all four. */
150
+ function uploadTypesOfAccept(accept) {
151
+ const tokens = (accept ?? "").split(",").map((one) => one.trim().toLowerCase()).filter(Boolean);
152
+ if (!tokens.length)
153
+ return [...exports.UPLOAD_TYPES];
154
+ return exports.UPLOAD_TYPES.filter((type) => tokens.some((token) => (token.startsWith(".") ? EXTENSIONS[token.slice(1)] === type : token.endsWith("/*") ? exports.UPLOAD_MEDIA[type].startsWith(token.slice(0, -1)) : uploadTypeOfMedia(token) === type)));
155
+ }
156
+ /**
157
+ * The one question of a verifier's form the chat's files go on: its `evidence` file question, else its first file
158
+ * question; null for a form with none. The connector sizes the upload address by it and the page places files on it.
159
+ */
160
+ const chatFileQuestion = (fields) => fields.find((one) => one.type === "file" && one.name === "evidence") ?? fields.find((one) => one.type === "file") ?? null;
161
+ exports.chatFileQuestion = chatFileQuestion;
162
+ /** set_my_page's photo (the `set_page_photo` draft): one image, any name, never a PDF. The worker keeps this spec whatever the connector sent. */
163
+ exports.PHOTO_UPLOAD_SPEC = { expect: [], extra: 1, types: ["png", "jpg", "webp"] };
164
+ /** The drafts an upload address can be opened on. */
165
+ exports.UPLOAD_ACTIONS = ["submit_work", "set_page_photo"];
166
+ const FILE_ID = new RegExp(`^[A-Za-z0-9_-]{1,${exports.MAX_FILE_ID}}$`);
167
+ /** Why a spec is not one the store keeps, or null. */
168
+ function uploadSpecProblem(raw) {
169
+ const spec = raw && typeof raw === "object" && !Array.isArray(raw) ? raw : null;
170
+ if (!spec)
171
+ return "bad-spec";
172
+ if (!Array.isArray(spec.expect) || spec.expect.length > exports.MAX_UPLOAD_FILES || spec.expect.some((one) => typeof one !== "string" || !FILE_ID.test(one)))
173
+ return "bad-spec";
174
+ if (new Set(spec.expect).size !== spec.expect.length)
175
+ return "bad-spec";
176
+ if (!Number.isInteger(spec.extra) || spec.extra < 0 || spec.extra > exports.MAX_UPLOAD_FILES)
177
+ return "bad-spec";
178
+ if (spec.expect.length + spec.extra === 0 || spec.expect.length + spec.extra > exports.MAX_UPLOAD_FILES)
179
+ return "bad-spec";
180
+ if (!Array.isArray(spec.types) || spec.types.length === 0 || spec.types.some((one) => !exports.UPLOAD_TYPES.includes(one)))
181
+ return "bad-spec";
182
+ return null;
183
+ }
184
+ /**
185
+ * Whether a file with this id may be kept, given the ids already kept: one the answer expects, a re-upload of one
186
+ * already kept (it replaces it), or a new one while the extras last. The code names what is wrong.
187
+ */
188
+ /** The id an uploaded file is kept under: the one id the answer names that means it (`evidenceIdIn`: "Login Error.png" for "login-error"), else its own. */
189
+ function uploadIdFor(spec, name) {
190
+ const own = uploadIdOf(name);
191
+ if (spec.expect.includes(own))
192
+ return own;
193
+ const fits = spec.expect.filter((id) => (0, exports.evidenceIdIn)(id, [own]));
194
+ return fits.length === 1 ? fits[0] : own;
195
+ }
196
+ function uploadNameAllowed(spec, id, kept) {
197
+ if (spec.expect.includes(id) || kept.includes(id))
198
+ return "ok";
199
+ if (spec.extra === 0)
200
+ return "unexpected-name";
201
+ const extras = kept.filter((one) => !spec.expect.includes(one)).length;
202
+ return extras < spec.extra ? "ok" : "too-many-files";
203
+ }
204
+ /** What an upload refusal says, in plain words for the agent that tried. */
205
+ function uploadRefusalWords(code, spec) {
206
+ const types = (spec?.types ?? [...exports.UPLOAD_TYPES]).map((one) => exports.UPLOAD_TYPE_WORDS[one]).join(", ");
207
+ switch (code) {
208
+ case "bad-name":
209
+ return `That name isn't one this address takes. Name the file with letters, digits, dashes or dots, ending in .png, .jpg, .webp or .pdf.`;
210
+ case "unexpected-name":
211
+ return `This answer doesn't name that file. It takes: ${(spec?.expect ?? []).map((one) => `${one}.<png|jpg|webp|pdf>`).join(", ") || "nothing by that name"}.`;
212
+ case "too-many-files":
213
+ return `This answer takes ${spec ? spec.expect.length + spec.extra : exports.MAX_UPLOAD_FILES} file${spec && spec.expect.length + spec.extra === 1 ? "" : "s"} at most. Upload again under a name already sent to replace it.`;
214
+ case "not-a-file-type":
215
+ return `Those bytes aren't a ${types} file, whatever the name says. Nothing was kept.`;
216
+ case "type-not-taken":
217
+ return `This answer's page takes ${types} only. Nothing was kept.`;
218
+ case "type-mismatch":
219
+ return "The file's name or Content-Type says one type and its bytes another. Nothing was kept.";
220
+ case "too-big":
221
+ return `A file may be ${exports.MAX_UPLOAD_BYTES / 1_000_000} MB at most. Nothing was kept.`;
222
+ case "bad-size":
223
+ return `Say the file's exact size in bytes ("bytes": 12345) and its type ("type": "image/png") to get a signed URL for it.`;
224
+ case "size-mismatch":
225
+ return "What landed is not the size the URL was signed for. It was deleted; ask for a new URL with the file's exact size.";
226
+ case "not-arrived":
227
+ return "Nothing arrived at the signed URL before the person opened the page. They add it there.";
228
+ case "sign-first":
229
+ return `Ask for a signed URL first: POST {"type": "image/png", "bytes": <size>} to this address and the file's name, then PUT the file to the url it gives, with the headers it gives.`;
230
+ case "too-many":
231
+ return `One request signs at most ${exports.MAX_UPLOAD_FILES} files, and no answer takes more. This one was not signed.`;
232
+ case "draft-full":
233
+ return `This answer's files may come to ${exports.MAX_DRAFT_UPLOAD_BYTES / 1_000_000} MB together. Nothing was kept.`;
234
+ case "owner-full":
235
+ return "You have too many files waiting on answers right now. Send or drop one first. Nothing was kept.";
236
+ case "empty":
237
+ return `A file can't be 0 bytes. Ask for a signed URL first with the file's exact size: POST {"type": "image/png", "bytes": <exact size in bytes>} to this address and the file's name, then PUT the file to the url it gives.`;
238
+ case "closed":
239
+ return "This upload address is closed: the person has opened the answer page or sent it. They add any more files there, or you call submit_work again for a new link with a new address.";
240
+ case "expired":
241
+ return "This upload address has expired. Call submit_work again for a new one, or the person adds the files on the page.";
242
+ case "changed":
243
+ return "This file was sent again after it was checked, so it was not kept. Send it again, or the person adds it on the page.";
244
+ case "rate-limited":
245
+ return "Too many uploads at once. Wait a minute and try again.";
246
+ default:
247
+ return "That upload couldn't be kept just now. Try again in a minute, or the person adds the file on the page.";
248
+ }
249
+ }
250
+ /** Why a file that came was not kept, in a few words: for link_status, the agent's list and the answer page. */
251
+ exports.UPLOAD_REFUSAL_SHORT = {
252
+ "too-big": `over ${exports.MAX_UPLOAD_BYTES / 1_000_000} MB`,
253
+ "size-mismatch": "not the size it was signed for",
254
+ "not-a-file-type": "not a PNG, JPG, WebP or PDF",
255
+ "type-mismatch": "its bytes are another type than it said",
256
+ "draft-full": `over the answer's ${exports.MAX_DRAFT_UPLOAD_BYTES / 1_000_000} MB`,
257
+ "owner-full": `over the ${exports.MAX_OWNER_UPLOAD_BYTES / 1_000_000} MB of files one person may have waiting`,
258
+ "not-arrived": "it never arrived",
259
+ changed: "it was changed after it was checked"
260
+ };
261
+ const uploadRefusalShort = (code) => exports.UPLOAD_REFUSAL_SHORT[code] ?? "it couldn't be kept";
262
+ exports.uploadRefusalShort = uploadRefusalShort;
263
+ /** "2 files attached (login.png, crash.pdf); not received: settings." for link_status and the report page. */
264
+ function draftFilesWords(files) {
265
+ const attached = files.attached === 0 ? (files.waiting?.length ? "No files checked yet" : "No files attached yet") : `${files.attached} file${files.attached === 1 ? "" : "s"} attached (${files.names.join(", ")})`;
266
+ const waiting = files.waiting?.length ? `; upload requested, not checked: ${files.waiting.join(", ")}` : "";
267
+ const missing = files.missing.length ? `; not received: ${files.missing.join(", ")}` : "";
268
+ const refused = files.refused?.length ? `; not kept: ${files.refused.map((one) => `${one.name} (${(0, exports.uploadRefusalShort)(one.code)})`).join(", ")}` : "";
269
+ const closed = files.open ? "" : ". The upload address is closed; check the next screen for available attachment options";
270
+ return `${attached}${waiting}${missing}${refused}${closed}.`;
271
+ }
272
+ /** The evidence ids an answer names: every string in an `evidence` list, at any depth (a report's steps and findings, a form's rows). */
273
+ function evidenceIdsOf(value, found = new Set(), depth = 0) {
274
+ if (depth > 8 || !value || typeof value !== "object")
275
+ return [...found];
276
+ if (Array.isArray(value)) {
277
+ for (const one of value)
278
+ evidenceIdsOf(one, found, depth + 1);
279
+ return [...found];
280
+ }
281
+ for (const [key, inner] of Object.entries(value)) {
282
+ if (key === "evidence" && Array.isArray(inner)) {
283
+ for (const id of inner)
284
+ if (typeof id === "string" && FILE_ID.test(id))
285
+ found.add(id);
286
+ }
287
+ else {
288
+ evidenceIdsOf(inner, found, depth + 1);
289
+ }
290
+ }
291
+ return [...found];
292
+ }
293
+ //# sourceMappingURL=draftUploads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftUploads.js","sourceRoot":"","sources":["../../../src/data/draftUploads.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AA2CH,kCAOC;AASD,4CAGC;AAQD,gCAQC;AAeD,wCASC;AASD,4CAaC;AAGD,8BAIC;AAGD,8CAIC;AAGD,kDAMC;AAyCD,8CASC;AAOD,kCAKC;AAED,8CAKC;AAGD,gDA4CC;AAkCD,0CAOC;AAGD,sCAcC;AA/TD,+GAA+G;AAClG,QAAA,YAAY,GAAG,wBAAwB,CAAC;AAErD,mGAAmG;AACtF,QAAA,aAAa,GAAG,EAAE,GAAG,MAAM,CAAC;AAEzC,+GAA+G;AAClG,QAAA,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AAEtD,yFAAyF;AAC5E,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC,uHAAuH;AAC1G,QAAA,gBAAgB,GAAG,SAAS,CAAC;AAE1C,2FAA2F;AAC9E,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,qCAAqC;AACxB,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAEjD,iEAAiE;AACpD,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAEjD,0HAA0H;AAC7G,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEtB,QAAA,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAGtD,QAAA,YAAY,GAAyC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;AAEtJ,oDAAoD;AACvC,QAAA,iBAAiB,GAAyC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAE5H,MAAM,UAAU,GAAyC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAE3H;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAiB;IAC3C,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,GAAG,MAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;IACpH,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACxG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8GAA8G;AACjG,QAAA,WAAW,GAAG,EAAE,CAAC;AAE9B,8HAA8H;AAC9H,MAAM,IAAI,GAAG,qDAAqD,CAAC;AAEnE,wEAAwE;AACxE,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;SAChC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,mBAAW,CAAC,IAAI,MAAM,CACnC,CAAC;AACJ,CAAC;AAED,qJAAqJ;AAC9I,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAClD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;KAC/E,WAAW,EAAE;KACb,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAHf,QAAA,WAAW,eAGI;AAE5B;;;;;;GAMG;AACH,SAAgB,cAAc,CAA0C,KAAa,EAAE,KAAmB;IACxG,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,GAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAW,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,mFAAmF;AAC5E,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,GAAqB,EAAsB,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAAvI,QAAA,YAAY,gBAA2H;AAEpJ;;;GAGG;AACH,SAAgB,gBAAgB,CAAI,KAAQ,EAAE,IAAsB;IAClE,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,CAAC,KAAc,EAAW,EAAE;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YACxC,GAAG;YACH,GAAG,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC7K,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAM,CAAC;AAC1B,CAAC;AAED,wGAAwG;AACjG,KAAK,UAAU,SAAS,CAAC,IAAyB;IACvD,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAgC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,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;AAChG,CAAC;AAED,gFAAgF;AAChF,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,oBAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAY,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AACxE,CAAC;AAED,mHAAmH;AACnH,SAAgB,mBAAmB,CAAC,MAAe;IACjD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChG,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,oBAAY,CAAC,CAAC;IAC7C,OAAO,oBAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAY,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CACrM,CAAC;AACJ,CAAC;AAUD;;;GAGG;AACI,MAAM,gBAAgB,GAAG,CAAyB,MAAoB,EAAY,EAAE,CACzF,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;AAD/G,QAAA,gBAAgB,oBAC+F;AAiB5H,kJAAkJ;AACrI,QAAA,iBAAiB,GAAe,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;AAErG,qDAAqD;AACxC,QAAA,cAAc,GAAsB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAEnF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,oBAAoB,mBAAW,IAAI,CAAC,CAAC;AAEhE,sDAAsD;AACtD,SAAgB,iBAAiB,CAAC,GAAY;IAC5C,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7G,IAAI,CAAC,IAAI;QAAE,OAAO,UAAU,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,wBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IACxK,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAK,IAAI,CAAC,KAAgB,GAAG,CAAC,IAAK,IAAI,CAAC,KAAgB,GAAG,wBAAgB;QAAE,OAAO,UAAU,CAAC;IAChI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAI,IAAI,CAAC,KAAgB,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAI,IAAI,CAAC,KAAgB,GAAG,wBAAgB;QAAE,OAAO,UAAU,CAAC;IAC3I,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,oBAAmC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9J,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,4JAA4J;AAC5J,SAAgB,WAAW,CAAC,IAAgB,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAgB,EAAE,EAAU,EAAE,IAAuB;IACrF,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACvE,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACvD,CAAC;AAED,4EAA4E;AAC5E,SAAgB,kBAAkB,CAAC,IAAY,EAAE,IAAwB;IACvE,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,oBAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,kIAAkI,CAAC;QAC5I,KAAK,iBAAiB;YACpB,OAAO,iDAAiD,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,GAAG,CAAC;QACjK,KAAK,gBAAgB;YACnB,OAAO,qBAAqB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAgB,QAAQ,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iEAAiE,CAAC;QACzN,KAAK,iBAAiB;YACpB,OAAO,wBAAwB,KAAK,kDAAkD,CAAC;QACzF,KAAK,gBAAgB;YACnB,OAAO,4BAA4B,KAAK,0BAA0B,CAAC;QACrE,KAAK,eAAe;YAClB,OAAO,wFAAwF,CAAC;QAClG,KAAK,SAAS;YACZ,OAAO,iBAAiB,wBAAgB,GAAG,SAAS,gCAAgC,CAAC;QACvF,KAAK,UAAU;YACb,OAAO,oHAAoH,CAAC;QAC9H,KAAK,eAAe;YAClB,OAAO,mHAAmH,CAAC;QAC7H,KAAK,aAAa;YAChB,OAAO,yFAAyF,CAAC;QACnG,KAAK,YAAY;YACf,OAAO,gLAAgL,CAAC;QAC1L,KAAK,UAAU;YACb,OAAO,6BAA6B,wBAAgB,4DAA4D,CAAC;QACnH,KAAK,YAAY;YACf,OAAO,mCAAmC,8BAAsB,GAAG,SAAS,iCAAiC,CAAC;QAChH,KAAK,YAAY;YACf,OAAO,iGAAiG,CAAC;QAC3G,KAAK,OAAO;YACV,OAAO,wNAAwN,CAAC;QAClO,KAAK,QAAQ;YACX,OAAO,kLAAkL,CAAC;QAC5L,KAAK,SAAS;YACZ,OAAO,kHAAkH,CAAC;QAC5H,KAAK,SAAS;YACZ,OAAO,sHAAsH,CAAC;QAChI,KAAK,cAAc;YACjB,OAAO,wDAAwD,CAAC;QAClE;YACE,OAAO,wGAAwG,CAAC;IACpH,CAAC;AACH,CAAC;AAED,gHAAgH;AACnG,QAAA,oBAAoB,GAAqC;IACpE,SAAS,EAAE,QAAQ,wBAAgB,GAAG,SAAS,KAAK;IACpD,eAAe,EAAE,gCAAgC;IACjD,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,yCAAyC;IAC1D,YAAY,EAAE,qBAAqB,8BAAsB,GAAG,SAAS,KAAK;IAC1E,YAAY,EAAE,YAAY,8BAAsB,GAAG,SAAS,0CAA0C;IACtG,aAAa,EAAE,kBAAkB;IACjC,OAAO,EAAE,qCAAqC;CAC/C,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,4BAAoB,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC;AAAnG,QAAA,kBAAkB,sBAAiF;AAmBhH,8GAA8G;AAC9G,SAAgB,eAAe,CAAC,KAAiB;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,QAAQ,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrN,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,IAAA,0BAAkB,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrJ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wFAAwF,CAAC;IAC1H,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,CAAC;AAC/D,CAAC;AAED,yIAAyI;AACzI,SAAgB,aAAa,CAAC,KAAc,EAAE,QAAqB,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC;IACrF,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,KAAK;YAAE,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,IAAI,GAAG,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,KAAK;gBAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC"}