@shivaedev/work-board 0.7.2 → 0.9.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 (277) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +110 -2
  3. package/assets/agent.js +37 -0
  4. package/assets/native.js +54 -25
  5. package/dist/board.d.ts +1 -0
  6. package/dist/board.d.ts.map +1 -1
  7. package/dist/board.js +15 -2
  8. package/dist/board.js.map +1 -1
  9. package/dist/browser/client.d.ts +19 -79
  10. package/dist/browser/client.d.ts.map +1 -1
  11. package/dist/browser/client.js +12 -1
  12. package/dist/browser/client.js.map +1 -1
  13. package/dist/browser/entry.d.ts +3 -0
  14. package/dist/browser/entry.d.ts.map +1 -0
  15. package/dist/browser/entry.js +7 -0
  16. package/dist/browser/entry.js.map +1 -0
  17. package/dist/browser/responses/Prompt.d.ts +10 -0
  18. package/dist/browser/responses/Prompt.d.ts.map +1 -0
  19. package/dist/browser/responses/Prompt.js +2 -0
  20. package/dist/browser/responses/Prompt.js.map +1 -0
  21. package/dist/browser/responses/answerBody.d.ts +4 -0
  22. package/dist/browser/responses/answerBody.d.ts.map +1 -0
  23. package/dist/browser/responses/answerBody.js +9 -0
  24. package/dist/browser/responses/answerBody.js.map +1 -0
  25. package/dist/browser/responses/draftSession.d.ts +8 -0
  26. package/dist/browser/responses/draftSession.d.ts.map +1 -0
  27. package/dist/browser/responses/draftSession.js +105 -0
  28. package/dist/browser/responses/draftSession.js.map +1 -0
  29. package/dist/browser/responses/drafts.d.ts +21 -0
  30. package/dist/browser/responses/drafts.d.ts.map +1 -0
  31. package/dist/browser/responses/drafts.js +68 -0
  32. package/dist/browser/responses/drafts.js.map +1 -0
  33. package/dist/browser/responses/preview.d.ts +4 -0
  34. package/dist/browser/responses/preview.d.ts.map +1 -0
  35. package/dist/browser/responses/preview.js +5 -0
  36. package/dist/browser/responses/preview.js.map +1 -0
  37. package/dist/browser/responses/questionnaireControls.d.ts +10 -0
  38. package/dist/browser/responses/questionnaireControls.d.ts.map +1 -0
  39. package/dist/browser/responses/questionnaireControls.js +68 -0
  40. package/dist/browser/responses/questionnaireControls.js.map +1 -0
  41. package/dist/browser/responses/schema.d.ts +168 -0
  42. package/dist/browser/responses/schema.d.ts.map +1 -0
  43. package/dist/browser/responses/schema.js +57 -0
  44. package/dist/browser/responses/schema.js.map +1 -0
  45. package/dist/browser/responses/setup.d.ts +2 -0
  46. package/dist/browser/responses/setup.d.ts.map +1 -0
  47. package/dist/browser/responses/setup.js +129 -0
  48. package/dist/browser/responses/setup.js.map +1 -0
  49. package/dist/browser/responses/submissionFields.d.ts +15 -0
  50. package/dist/browser/responses/submissionFields.d.ts.map +1 -0
  51. package/dist/browser/responses/submissionFields.js +14 -0
  52. package/dist/browser/responses/submissionFields.js.map +1 -0
  53. package/dist/browser/responses/submit.d.ts +4 -0
  54. package/dist/browser/responses/submit.d.ts.map +1 -0
  55. package/dist/browser/responses/submit.js +30 -0
  56. package/dist/browser/responses/submit.js.map +1 -0
  57. package/dist/browser/session.d.ts +1 -79
  58. package/dist/browser/session.d.ts.map +1 -1
  59. package/dist/cli.d.ts.map +1 -1
  60. package/dist/cli.js +24 -15
  61. package/dist/cli.js.map +1 -1
  62. package/dist/files/changes.d.ts +1 -0
  63. package/dist/files/changes.d.ts.map +1 -1
  64. package/dist/files/changes.js +1 -1
  65. package/dist/files/changes.js.map +1 -1
  66. package/dist/http/respond.d.ts.map +1 -1
  67. package/dist/http/respond.js +2 -0
  68. package/dist/http/respond.js.map +1 -1
  69. package/dist/metadata/backlinks.d.ts.map +1 -1
  70. package/dist/metadata/backlinks.js +5 -0
  71. package/dist/metadata/backlinks.js.map +1 -1
  72. package/dist/metadata/fields.d.ts +23 -1
  73. package/dist/metadata/fields.d.ts.map +1 -1
  74. package/dist/metadata/problems.d.ts.map +1 -1
  75. package/dist/metadata/problems.js +3 -0
  76. package/dist/metadata/problems.js.map +1 -1
  77. package/dist/metadata/schema.d.ts +23 -1
  78. package/dist/metadata/schema.d.ts.map +1 -1
  79. package/dist/metadata/schema.js +6 -2
  80. package/dist/metadata/schema.js.map +1 -1
  81. package/dist/page/attentionDetails.d.ts.map +1 -1
  82. package/dist/page/attentionDetails.js +2 -1
  83. package/dist/page/attentionDetails.js.map +1 -1
  84. package/dist/page/metadataDetails.d.ts.map +1 -1
  85. package/dist/page/metadataDetails.js +6 -0
  86. package/dist/page/metadataDetails.js.map +1 -1
  87. package/dist/page/navigationScript.js +1 -1
  88. package/dist/page/shell.d.ts +1 -1
  89. package/dist/page/shell.d.ts.map +1 -1
  90. package/dist/page/shell.js.map +1 -1
  91. package/dist/page/style.d.ts.map +1 -1
  92. package/dist/page/style.js +3 -1
  93. package/dist/page/style.js.map +1 -1
  94. package/dist/page/swap.d.ts +1 -1
  95. package/dist/page/swap.d.ts.map +1 -1
  96. package/dist/page/swap.js +3 -0
  97. package/dist/page/swap.js.map +1 -1
  98. package/dist/path/Identity.d.ts +3 -0
  99. package/dist/path/Identity.d.ts.map +1 -0
  100. package/dist/path/Identity.js +3 -0
  101. package/dist/path/Identity.js.map +1 -0
  102. package/dist/render/markdown.d.ts +1 -0
  103. package/dist/render/markdown.d.ts.map +1 -1
  104. package/dist/render/markdown.js +4 -2
  105. package/dist/render/markdown.js.map +1 -1
  106. package/dist/render/questionnaireDocuments.d.ts +3 -0
  107. package/dist/render/questionnaireDocuments.d.ts.map +1 -0
  108. package/dist/render/questionnaireDocuments.js +11 -0
  109. package/dist/render/questionnaireDocuments.js.map +1 -0
  110. package/dist/render/visualDocuments.d.ts.map +1 -1
  111. package/dist/render/visualDocuments.js +3 -0
  112. package/dist/render/visualDocuments.js.map +1 -1
  113. package/dist/responses/agent-cli.d.ts +2 -0
  114. package/dist/responses/agent-cli.d.ts.map +1 -0
  115. package/dist/responses/agent-cli.js +31 -0
  116. package/dist/responses/agent-cli.js.map +1 -0
  117. package/dist/responses/agent.d.ts +80 -0
  118. package/dist/responses/agent.d.ts.map +1 -0
  119. package/dist/responses/agent.js +49 -0
  120. package/dist/responses/agent.js.map +1 -0
  121. package/dist/responses/await.d.ts +39 -0
  122. package/dist/responses/await.d.ts.map +1 -0
  123. package/dist/responses/await.js +21 -0
  124. package/dist/responses/await.js.map +1 -0
  125. package/dist/responses/composerHtml.d.ts +27 -0
  126. package/dist/responses/composerHtml.d.ts.map +1 -0
  127. package/dist/responses/composerHtml.js +14 -0
  128. package/dist/responses/composerHtml.js.map +1 -0
  129. package/dist/responses/flags.d.ts +6 -0
  130. package/dist/responses/flags.d.ts.map +1 -0
  131. package/dist/responses/flags.js +23 -0
  132. package/dist/responses/flags.js.map +1 -0
  133. package/dist/responses/history.d.ts +20 -0
  134. package/dist/responses/history.d.ts.map +1 -0
  135. package/dist/responses/history.js +16 -0
  136. package/dist/responses/history.js.map +1 -0
  137. package/dist/responses/locate.d.ts +13 -0
  138. package/dist/responses/locate.d.ts.map +1 -0
  139. package/dist/responses/locate.js +55 -0
  140. package/dist/responses/locate.js.map +1 -0
  141. package/dist/responses/make.d.ts +3 -0
  142. package/dist/responses/make.d.ts.map +1 -0
  143. package/dist/responses/make.js +16 -0
  144. package/dist/responses/make.js.map +1 -0
  145. package/dist/responses/outcome.d.ts +71 -0
  146. package/dist/responses/outcome.d.ts.map +1 -0
  147. package/dist/responses/outcome.js +14 -0
  148. package/dist/responses/outcome.js.map +1 -0
  149. package/dist/responses/page.d.ts +6 -0
  150. package/dist/responses/page.d.ts.map +1 -0
  151. package/dist/responses/page.js +22 -0
  152. package/dist/responses/page.js.map +1 -0
  153. package/dist/responses/publish.d.ts +4 -0
  154. package/dist/responses/publish.d.ts.map +1 -0
  155. package/dist/responses/publish.js +56 -0
  156. package/dist/responses/publish.js.map +1 -0
  157. package/dist/responses/publishIn.d.ts +3 -0
  158. package/dist/responses/publishIn.d.ts.map +1 -0
  159. package/dist/responses/publishIn.js +69 -0
  160. package/dist/responses/publishIn.js.map +1 -0
  161. package/dist/responses/read.d.ts +36 -0
  162. package/dist/responses/read.d.ts.map +1 -0
  163. package/dist/responses/read.js +43 -0
  164. package/dist/responses/read.js.map +1 -0
  165. package/dist/responses/records.d.ts +12 -0
  166. package/dist/responses/records.d.ts.map +1 -0
  167. package/dist/responses/records.js +49 -0
  168. package/dist/responses/records.js.map +1 -0
  169. package/dist/responses/retry.d.ts +34 -0
  170. package/dist/responses/retry.d.ts.map +1 -0
  171. package/dist/responses/retry.js +14 -0
  172. package/dist/responses/retry.js.map +1 -0
  173. package/dist/responses/service.d.ts +142 -0
  174. package/dist/responses/service.d.ts.map +1 -0
  175. package/dist/responses/service.js +95 -0
  176. package/dist/responses/service.js.map +1 -0
  177. package/dist/responses/template.d.ts +7 -0
  178. package/dist/responses/template.d.ts.map +1 -0
  179. package/dist/responses/template.js +58 -0
  180. package/dist/responses/template.js.map +1 -0
  181. package/dist/responses/templateHtml.d.ts +7 -0
  182. package/dist/responses/templateHtml.d.ts.map +1 -0
  183. package/dist/responses/templateHtml.js +18 -0
  184. package/dist/responses/templateHtml.js.map +1 -0
  185. package/dist/responses/templateLinks.d.ts +3 -0
  186. package/dist/responses/templateLinks.d.ts.map +1 -0
  187. package/dist/responses/templateLinks.js +45 -0
  188. package/dist/responses/templateLinks.js.map +1 -0
  189. package/dist/responses/templateNodes.d.ts +17 -0
  190. package/dist/responses/templateNodes.d.ts.map +1 -0
  191. package/dist/responses/templateNodes.js +47 -0
  192. package/dist/responses/templateNodes.js.map +1 -0
  193. package/dist/responses/validateSupersedes.d.ts +5 -0
  194. package/dist/responses/validateSupersedes.d.ts.map +1 -0
  195. package/dist/responses/validateSupersedes.js +21 -0
  196. package/dist/responses/validateSupersedes.js.map +1 -0
  197. package/dist/responses/validatedInput.d.ts +3 -0
  198. package/dist/responses/validatedInput.d.ts.map +1 -0
  199. package/dist/responses/validatedInput.js +43 -0
  200. package/dist/responses/validatedInput.js.map +1 -0
  201. package/dist/responses/waitFor.d.ts +37 -0
  202. package/dist/responses/waitFor.d.ts.map +1 -0
  203. package/dist/responses/waitFor.js +47 -0
  204. package/dist/responses/waitFor.js.map +1 -0
  205. package/dist/rpc/contract.d.ts +125 -2
  206. package/dist/rpc/contract.d.ts.map +1 -1
  207. package/dist/rpc/contract.js +3 -2
  208. package/dist/rpc/contract.js.map +1 -1
  209. package/dist/rpc/responseContract.d.ts +260 -0
  210. package/dist/rpc/responseContract.d.ts.map +1 -0
  211. package/dist/rpc/responseContract.js +37 -0
  212. package/dist/rpc/responseContract.js.map +1 -0
  213. package/dist/rpc/server.d.ts +3 -1
  214. package/dist/rpc/server.d.ts.map +1 -1
  215. package/dist/rpc/server.js +6 -1
  216. package/dist/rpc/server.js.map +1 -1
  217. package/dist/serve-cli.d.ts +3 -0
  218. package/dist/serve-cli.d.ts.map +1 -0
  219. package/dist/serve-cli.js +20 -0
  220. package/dist/serve-cli.js.map +1 -0
  221. package/package.json +3 -3
  222. package/src/board.ts +16 -2
  223. package/src/browser/client.ts +30 -4
  224. package/src/browser/entry.ts +9 -0
  225. package/src/browser/responses/Prompt.ts +6 -0
  226. package/src/browser/responses/answerBody.ts +11 -0
  227. package/src/browser/responses/draftSession.ts +101 -0
  228. package/src/browser/responses/drafts.ts +82 -0
  229. package/src/browser/responses/preview.ts +7 -0
  230. package/src/browser/responses/questionnaireControls.ts +74 -0
  231. package/src/browser/responses/schema.ts +63 -0
  232. package/src/browser/responses/setup.ts +132 -0
  233. package/src/browser/responses/submissionFields.ts +15 -0
  234. package/src/browser/responses/submit.ts +33 -0
  235. package/src/cli.ts +14 -22
  236. package/src/files/changes.ts +2 -1
  237. package/src/http/respond.ts +2 -0
  238. package/src/metadata/backlinks.ts +5 -0
  239. package/src/metadata/problems.ts +3 -0
  240. package/src/metadata/schema.ts +6 -2
  241. package/src/page/attentionDetails.ts +2 -1
  242. package/src/page/metadataDetails.ts +6 -0
  243. package/src/page/navigationScript.ts +1 -1
  244. package/src/page/shell.ts +1 -1
  245. package/src/page/style.ts +3 -1
  246. package/src/page/swap.ts +3 -0
  247. package/src/path/Identity.ts +3 -0
  248. package/src/render/markdown.ts +5 -2
  249. package/src/render/questionnaireDocuments.ts +12 -0
  250. package/src/render/visualDocuments.ts +3 -0
  251. package/src/responses/agent-cli.ts +35 -0
  252. package/src/responses/agent.ts +59 -0
  253. package/src/responses/await.ts +21 -0
  254. package/src/responses/composerHtml.ts +28 -0
  255. package/src/responses/flags.ts +22 -0
  256. package/src/responses/history.ts +18 -0
  257. package/src/responses/locate.ts +60 -0
  258. package/src/responses/make.ts +17 -0
  259. package/src/responses/outcome.ts +15 -0
  260. package/src/responses/page.ts +30 -0
  261. package/src/responses/publish.ts +53 -0
  262. package/src/responses/publishIn.ts +64 -0
  263. package/src/responses/read.ts +45 -0
  264. package/src/responses/records.ts +55 -0
  265. package/src/responses/retry.ts +23 -0
  266. package/src/responses/service.ts +117 -0
  267. package/src/responses/template.ts +72 -0
  268. package/src/responses/templateHtml.ts +26 -0
  269. package/src/responses/templateLinks.ts +43 -0
  270. package/src/responses/templateNodes.ts +55 -0
  271. package/src/responses/validateSupersedes.ts +24 -0
  272. package/src/responses/validatedInput.ts +45 -0
  273. package/src/responses/waitFor.ts +58 -0
  274. package/src/rpc/contract.ts +3 -2
  275. package/src/rpc/responseContract.ts +46 -0
  276. package/src/rpc/server.ts +8 -1
  277. package/src/serve-cli.ts +37 -0
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/render/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAc,EAAE,UAAyB,EAAE;IACzH,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IACvC,MAAM,OAAO,GAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7C,GAAG,EAAE,KAAK,IAAI,EAAE,CACf,oBAAoB,CACnB,MAAM,aAAa,CAAC;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;YACvG,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,CAAC;SACtE,CAAC,CACF;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACb,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/render/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AASrE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAc,EAAE,UAAyB,EAAE;IACzH,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IACvC,MAAM,OAAO,GAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7C,GAAG,EAAE,KAAK,IAAI,EAAE,CACf,oBAAoB,CACnB,MAAM,aAAa,CAAC;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;YACvG,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,QAAQ,CAAC;YAC9F,QAAQ,EAAE,OAAO,CAAC,IAAI;SACtB,CAAC,CACF;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACb,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Root } from "mdast";
2
+ export declare function questionnaireDocuments(): (tree: Root) => void;
3
+ //# sourceMappingURL=questionnaireDocuments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questionnaireDocuments.d.ts","sourceRoot":"","sources":["../../src/render/questionnaireDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC,wBAAgB,sBAAsB,KAC7B,MAAM,IAAI,UAOlB"}
@@ -0,0 +1,11 @@
1
+ import { visit } from "unist-util-visit";
2
+ export function questionnaireDocuments() {
3
+ return (tree) => {
4
+ visit(tree, "containerDirective", (node) => {
5
+ if (node.name === "question" || node.name === "option") {
6
+ node.data = { hName: "section", hProperties: { className: ["questionnaire-reading", `questionnaire-${node.name}`] } };
7
+ }
8
+ });
9
+ };
10
+ }
11
+ //# sourceMappingURL=questionnaireDocuments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questionnaireDocuments.js","sourceRoot":"","sources":["../../src/render/questionnaireDocuments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,sBAAsB;IACrC,OAAO,CAAC,IAAU,EAAE,EAAE;QACrB,KAAK,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YACvH,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"visualDocuments.d.ts","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,OAAO,CAAC;AAsC/C,wBAAgB,eAAe,KACJ,MAAM,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,UA4BvE"}
1
+ {"version":3,"file":"visualDocuments.d.ts","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,OAAO,CAAC;AAsC/C,wBAAgB,eAAe,KACJ,MAAM,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,UA+BvE"}
@@ -36,6 +36,9 @@ export function visualDocuments() {
36
36
  if (!isDirective(directive) || index === undefined || parent === undefined) {
37
37
  return;
38
38
  }
39
+ if (directive.type === "containerDirective" && ["question", "option"].includes(directive.name)) {
40
+ return;
41
+ }
39
42
  const failure = failureOf(directive, source);
40
43
  if (failure === undefined) {
41
44
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"visualDocuments.js","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visualDocuments.js","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runAgent(args: readonly string[]): Promise<void>;
2
+ //# sourceMappingURL=agent-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-cli.d.ts","sourceRoot":"","sources":["../../src/responses/agent-cli.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,iBA8BrD"}
@@ -0,0 +1,31 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { agentRequest } from "./agent.js";
3
+ import { flags } from "./flags.js";
4
+ export async function runAgent(args) {
5
+ const [action, request, ...options] = args;
6
+ if ((action !== "wait" && action !== "response" && action !== "question") || !request) {
7
+ throw new Error("Usage: work-board question <item>/<request> | wait <question-id> [--after <response-id>] | response <question-id> [--port 4747]");
8
+ }
9
+ const parsed = flags(options);
10
+ const controller = new AbortController();
11
+ function cancel() {
12
+ controller.abort();
13
+ }
14
+ process.once("SIGINT", cancel);
15
+ process.once("SIGTERM", cancel);
16
+ try {
17
+ const result = await Effect.runPromise(agentRequest(action, { ...parsed, request }, (text) => process.stderr.write(`${text}\n`)).pipe(Effect.result), { signal: controller.signal });
18
+ if (result._tag === "Failure") {
19
+ if (result.failure instanceof Error && "code" in result.failure && result.failure.code === "Unanswered") {
20
+ process.exitCode = 2;
21
+ }
22
+ throw result.failure;
23
+ }
24
+ process.stdout.write(`${JSON.stringify(result.success)}\n`);
25
+ }
26
+ finally {
27
+ process.removeListener("SIGINT", cancel);
28
+ process.removeListener("SIGTERM", cancel);
29
+ }
30
+ }
31
+ //# sourceMappingURL=agent-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/responses/agent-cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAuB;IACrD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CACd,iIAAiI,CACjI,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,SAAS,MAAM;QACd,UAAU,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CACrC,YAAY,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7G,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC7B,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,OAAO,YAAY,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACzG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,MAAM,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC"}
@@ -0,0 +1,80 @@
1
+ import * as Effect from "effect/Effect";
2
+ export interface AgentOptions {
3
+ readonly after?: string | undefined;
4
+ readonly request: string;
5
+ readonly revision?: string | undefined;
6
+ readonly url: string;
7
+ }
8
+ export declare function agentRequest(action: "question" | "response" | "wait", options: AgentOptions, diagnostic?: (text: string) => void): Effect.Effect<{
9
+ readonly context: string;
10
+ readonly id: string;
11
+ readonly item: string;
12
+ readonly reason: string;
13
+ readonly request: string;
14
+ readonly reviewedRevision: string;
15
+ readonly source: string;
16
+ } | {
17
+ readonly question: {
18
+ readonly context: string;
19
+ readonly id: string;
20
+ readonly question: {
21
+ readonly deadline: number;
22
+ readonly item: string;
23
+ readonly reason: string;
24
+ readonly registeredAt: number;
25
+ readonly request: string;
26
+ readonly reviewedRevision: string;
27
+ readonly source: string;
28
+ };
29
+ };
30
+ readonly responses: readonly {
31
+ readonly body: string;
32
+ readonly id: string;
33
+ readonly response: {
34
+ readonly answers?: readonly {
35
+ readonly prompt: string;
36
+ readonly selected: readonly string[];
37
+ readonly text: string;
38
+ }[] | undefined;
39
+ readonly author: string;
40
+ readonly question: string;
41
+ readonly recordedAt: number;
42
+ readonly reviewedRevision: string;
43
+ readonly supersedes?: string | undefined;
44
+ readonly type: "answer" | "clarify" | "not_now";
45
+ };
46
+ }[];
47
+ } | {
48
+ readonly kind: "response";
49
+ readonly question: {
50
+ readonly context: string;
51
+ readonly id: string;
52
+ readonly question: {
53
+ readonly deadline: number;
54
+ readonly item: string;
55
+ readonly reason: string;
56
+ readonly registeredAt: number;
57
+ readonly request: string;
58
+ readonly reviewedRevision: string;
59
+ readonly source: string;
60
+ };
61
+ };
62
+ readonly response: {
63
+ readonly body: string;
64
+ readonly id: string;
65
+ readonly response: {
66
+ readonly answers?: readonly {
67
+ readonly prompt: string;
68
+ readonly selected: readonly string[];
69
+ readonly text: string;
70
+ }[] | undefined;
71
+ readonly author: string;
72
+ readonly question: string;
73
+ readonly recordedAt: number;
74
+ readonly reviewedRevision: string;
75
+ readonly supersedes?: string | undefined;
76
+ readonly type: "answer" | "clarify" | "not_now";
77
+ };
78
+ };
79
+ }, Error | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
80
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/responses/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAOxC,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AAmBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EA0BjJ"}
@@ -0,0 +1,49 @@
1
+ import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as RpcClient from "effect/unstable/rpc/RpcClient";
5
+ import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
6
+ import { responseContract } from "#rpc/responseContract.ts";
7
+ import { waitForResponse } from "./waitFor.js";
8
+ function protocol(url) {
9
+ return RpcClient.layerProtocolHttp({ url: `${url}/_board/rpc` }).pipe(Layer.provide([NodeHttpClient.layerNodeHttp, RpcSerialization.layerNdjson]));
10
+ }
11
+ function validate(url) {
12
+ const parsed = new URL(url);
13
+ if (parsed.protocol !== "http:"
14
+ || !["127.0.0.1", "localhost", "[::1]"].includes(parsed.hostname)
15
+ || parsed.username
16
+ || parsed.password
17
+ || parsed.pathname !== "/"
18
+ || parsed.search
19
+ || parsed.hash) {
20
+ throw new Error("Use a loopback Work Board URL, such as http://127.0.0.1:4747.");
21
+ }
22
+ return parsed.origin;
23
+ }
24
+ export function agentRequest(action, options, diagnostic = () => undefined) {
25
+ return Effect.scoped(Effect.gen(function* () {
26
+ const client = yield* RpcClient.make(responseContract, { flatten: true });
27
+ const [item, request, extra] = options.request.split("/");
28
+ if (action === "question") {
29
+ if (!(item && request) || extra) {
30
+ return yield* Effect.fail(new Error("Use question <item>/<request>."));
31
+ }
32
+ return yield* client("work-board.question", { item, request });
33
+ }
34
+ let id = options.request;
35
+ if (request !== undefined) {
36
+ if (action !== "wait" || !item || !request || extra || !options.revision) {
37
+ return yield* Effect.fail(new Error("Use wait <item>/<request> --revision <reviewed SHA-256>, or wait <registered-question-id>."));
38
+ }
39
+ const question = yield* client("work-board.registerQuestion", { item, request, revision: options.revision });
40
+ id = question.id;
41
+ diagnostic(`Registered ${id}; reattach with work-board wait ${id}. Deadline: ${new Date(question.question.deadline).toISOString()}`);
42
+ }
43
+ if (action === "response") {
44
+ return yield* client("work-board.responses", { question: id });
45
+ }
46
+ return yield* waitForResponse(() => client("work-board.awaitResponse", { after: options.after, question: id }), diagnostic);
47
+ })).pipe(Effect.provide(protocol(validate(options.url))));
48
+ }
49
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/responses/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Effect } from "effect";
2
+ import { type Reading, ResponseFailed } from "#browser/responses/schema.ts";
3
+ export declare function awaitResponse(read: (id: string) => Effect.Effect<Reading, ResponseFailed>): (input: {
4
+ readonly question: string;
5
+ readonly after?: string | undefined;
6
+ }) => Effect.Effect<{
7
+ expired: boolean;
8
+ question: {
9
+ readonly context: string;
10
+ readonly id: string;
11
+ readonly question: {
12
+ readonly deadline: number;
13
+ readonly item: string;
14
+ readonly reason: string;
15
+ readonly registeredAt: number;
16
+ readonly request: string;
17
+ readonly reviewedRevision: string;
18
+ readonly source: string;
19
+ };
20
+ };
21
+ response: {
22
+ readonly body: string;
23
+ readonly id: string;
24
+ readonly response: {
25
+ readonly answers?: readonly {
26
+ readonly prompt: string;
27
+ readonly selected: readonly string[];
28
+ readonly text: string;
29
+ }[] | undefined;
30
+ readonly author: string;
31
+ readonly question: string;
32
+ readonly recordedAt: number;
33
+ readonly reviewedRevision: string;
34
+ readonly supersedes?: string | undefined;
35
+ readonly type: "answer" | "clarify" | "not_now";
36
+ };
37
+ } | undefined;
38
+ }, ResponseFailed, never>;
39
+ //# sourceMappingURL=await.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"await.d.ts","sourceRoot":"","sources":["../../src/responses/await.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;uBACN,MAAM;qBAAmB,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAe9H"}
@@ -0,0 +1,21 @@
1
+ import { Clock, Effect } from "effect";
2
+ import { ResponseFailed } from "#browser/responses/schema.ts";
3
+ import { outcome } from "./outcome.js";
4
+ export function awaitResponse(read) {
5
+ return Effect.fn("WorkBoard.awaitResponse")(function* (input) {
6
+ const lease = (yield* Clock.currentTimeMillis) + 30_000;
7
+ while (true) {
8
+ const result = yield* read(input.question);
9
+ const now = yield* Clock.currentTimeMillis;
10
+ const state = outcome(result, input.after, now);
11
+ if (state.kind === "missing_cursor") {
12
+ return yield* Effect.fail(new ResponseFailed({ code: "Missing", message: "The next-response cursor is not recorded for this question." }));
13
+ }
14
+ if (state.kind !== "pending" || now >= lease) {
15
+ return { expired: state.kind === "unanswered", question: result.question, response: state.kind === "response" ? state.response : undefined };
16
+ }
17
+ yield* Effect.sleep("1 second");
18
+ }
19
+ });
20
+ }
21
+ //# sourceMappingURL=await.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"await.js","sourceRoot":"","sources":["../../src/responses/await.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAgB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,IAA4D;IACzF,OAAO,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAyE;QAC/H,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QACxD,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,6DAA6D,EAAE,CAAC,CAAC,CAAC;YAC5I,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9I,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Effect } from "effect";
2
+ export declare const composerHtml: (q: {
3
+ readonly context: string;
4
+ readonly id: string;
5
+ readonly item: string;
6
+ readonly reason: string;
7
+ readonly request: string;
8
+ readonly reviewedRevision: string;
9
+ readonly source: string;
10
+ }, records: readonly {
11
+ readonly body: string;
12
+ readonly id: string;
13
+ readonly response: {
14
+ readonly answers?: readonly {
15
+ readonly prompt: string;
16
+ readonly selected: readonly string[];
17
+ readonly text: string;
18
+ }[] | undefined;
19
+ readonly author: string;
20
+ readonly question: string;
21
+ readonly recordedAt: number;
22
+ readonly reviewedRevision: string;
23
+ readonly supersedes?: string | undefined;
24
+ readonly type: "answer" | "clarify" | "not_now";
25
+ };
26
+ }[], enabled: boolean) => Effect.Effect<string, import("../render/failed.ts").RenderFailed, import("../render/highlighter.ts").Highlighter>;
27
+ //# sourceMappingURL=composerHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composerHtml.d.ts","sourceRoot":"","sources":["../../src/responses/composerHtml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;2IAoBvB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Effect } from "effect";
2
+ import { fileUrl } from "#files/url.ts";
3
+ import { escapeHtml } from "#page/escape.ts";
4
+ import { renderMarkdown } from "#render/markdown.ts";
5
+ import { templateHtml } from "./templateHtml.js";
6
+ export const composerHtml = Effect.fn("WorkBoard.composerHtml")(function* (q, records, enabled) {
7
+ const template = yield* templateHtml(q.context, q.request, q.source);
8
+ const history = yield* Effect.forEach(records, (record) => Effect.map(renderMarkdown(record.body, { file: `responses/${record.id}.md`, safe: true }), (html) => `<article id="${escapeHtml(record.id)}"><h3><a href="/responses/${record.id}.md">${escapeHtml(record.response.author)} · ${record.response.type}</a></h3><p>${record.response.question === q.id ? "This reviewed revision" : "Earlier reviewed context — does not approve the current source"} · <code>${record.response.reviewedRevision}</code></p>${record.response.supersedes ? `<p>Explicitly supersedes <a href="/responses/${escapeHtml(record.response.supersedes)}.md">${escapeHtml(record.response.supersedes)}</a>.</p>` : ""}${html}</article>`));
9
+ const prior = records
10
+ .map((record) => `<option value="${escapeHtml(record.id)}">${escapeHtml(record.id)} · ${escapeHtml(record.response.author)} · ${record.response.reviewedRevision.slice(0, 12)}</option>`)
11
+ .join("");
12
+ return `<section class="response-panel"><h1>Respond to ${escapeHtml(q.item)} / ${escapeHtml(q.request)}</h1><p>${escapeHtml(q.reason)}</p><p><a href="${fileUrl(q.source)}">Source: ${escapeHtml(q.source)}</a> · Reviewed SHA-256: <code>${q.reviewedRevision}</code></p><p>Saved replies are authored feedback. They do not close the request or establish acceptance.</p><section class="response-context">${template.background}</section><details><summary>Exact source being reviewed</summary><pre>${escapeHtml(q.context)}</pre></details><form id="response-form" data-question="${q.id}" data-writable="${enabled}" data-item="${escapeHtml(q.item)}" data-request="${escapeHtml(q.request)}" data-revision="${q.reviewedRevision}"><label>Local author label <input name="author" maxlength="200" required></label><label>Response kind <select name="type"><option value="answer">Answer (including no)</option><option value="clarify">Ask back / clarify</option><option value="not_now">Not now</option></select></label>${template.controls}<label>${template.hasPrompts ? "Overall response / next action (optional)" : "Your response"}<textarea name="body" rows="8" maxlength="32768" ${template.hasPrompts ? "" : "required"}></textarea></label><label>Supersedes an earlier response (optional)<select name="supersedes"><option value="">Adds feedback; does not supersede</option>${prior}</select></label><pre id="response-draft-recovery" hidden></pre><p>Submit the whole packet together. Drafts stay in this browser for 30 days after the last edit, with a 2 MiB workspace limit. Saved responses are Markdown files in responses/.</p><button id="response-preview" type="button" disabled>Preview Markdown</button><pre id="response-preview-content" hidden></pre><button id="response-submit" type="submit" disabled>Record response</button><button id="response-clear" type="button" disabled>Clear workspace drafts</button><p id="response-status" role="status">${enabled ? "JavaScript is required to record a response." : "Read-only mode. Restart with --responses to explicitly enable local writes."}</p></form><section id="response-history"><h2>Recorded responses</h2>${history.join("") || "<p>No response is recorded for this source revision.</p>"}</section></section>`;
13
+ });
14
+ //# sourceMappingURL=composerHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composerHtml.js","sourceRoot":"","sources":["../../src/responses/composerHtml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function flags(args: readonly string[]): {
2
+ after: string | undefined;
3
+ revision: string | undefined;
4
+ url: string;
5
+ };
6
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/responses/flags.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;;;;EAqB5C"}
@@ -0,0 +1,23 @@
1
+ export function flags(args) {
2
+ const values = new Map();
3
+ for (let index = 0; index < args.length; index += 2) {
4
+ const name = args[index];
5
+ const value = args[index + 1];
6
+ if (!(name && value && ["--port", "--url", "--revision", "--after"].includes(name))) {
7
+ throw new Error("Use --port, --url, --revision or --after, each with a value.");
8
+ }
9
+ if (values.has(name)) {
10
+ throw new Error(`Repeated option ${name}`);
11
+ }
12
+ values.set(name, value);
13
+ }
14
+ const port = values.get("--port") ?? "4747";
15
+ if (/^\d{1,5}$/u.exec(port) === null || Number(port) > 65_535 || Number(port) < 1) {
16
+ throw new Error("Invalid port.");
17
+ }
18
+ if (values.has("--url") && values.has("--port")) {
19
+ throw new Error("Choose --url or --port.");
20
+ }
21
+ return { after: values.get("--after"), revision: values.get("--revision"), url: values.get("--url") ?? `http://127.0.0.1:${port}` };
22
+ }
23
+ //# sourceMappingURL=flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/responses/flags.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,IAAuB;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;AACrI,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { QuestionPreview } from "#browser/responses/schema.ts";
2
+ import type { Snapshot } from "#search/snapshot.ts";
3
+ export declare function responseHistory(data: Snapshot, preview: QuestionPreview): {
4
+ readonly body: string;
5
+ readonly id: string;
6
+ readonly response: {
7
+ readonly answers?: readonly {
8
+ readonly prompt: string;
9
+ readonly selected: readonly string[];
10
+ readonly text: string;
11
+ }[] | undefined;
12
+ readonly author: string;
13
+ readonly question: string;
14
+ readonly recordedAt: number;
15
+ readonly reviewedRevision: string;
16
+ readonly supersedes?: string | undefined;
17
+ readonly type: "answer" | "clarify" | "not_now";
18
+ };
19
+ }[];
20
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/responses/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;IAavE"}
@@ -0,0 +1,16 @@
1
+ import { malformedResponse, questionFrom, responsesFor } from "./records.js";
2
+ export function responseHistory(data, preview) {
3
+ if (data.unavailable.length > 0 || data.documents.some(malformedResponse)) {
4
+ throw new Error("Response history is incomplete or malformed.");
5
+ }
6
+ const questions = data.documents.flatMap((document) => {
7
+ const question = questionFrom(document);
8
+ return question && question.question.item === preview.item && question.question.request === preview.request ? [question] : [];
9
+ });
10
+ const responses = questions.flatMap((question) => responsesFor(data.documents, question).responses);
11
+ if ([...questions, ...responses].some((record) => data.model.ids.get(record.id)?.length !== 1)) {
12
+ throw new Error("Response history includes ambiguous identities.");
13
+ }
14
+ return responses.sort((a, b) => b.response.recordedAt - a.response.recordedAt);
15
+ }
16
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/responses/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7E,MAAM,UAAU,eAAe,CAAC,IAAc,EAAE,OAAwB;IACvE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/H,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Effect, type FileSystem } from "effect";
2
+ import { ResponseFailed } from "#browser/responses/schema.ts";
3
+ import type { Snapshot } from "#search/snapshot.ts";
4
+ export declare function locate(root: string, realRoot: string, snapshot: Effect.Effect<Snapshot, ResponseFailed>, fs: FileSystem.FileSystem): (item: string, request: string) => Effect.Effect<{
5
+ readonly context: string;
6
+ readonly id: string;
7
+ readonly item: string;
8
+ readonly reason: string;
9
+ readonly request: string;
10
+ readonly reviewedRevision: string;
11
+ readonly source: string;
12
+ }, ResponseFailed, FileSystem.FileSystem | import("effect/Path").Path>;
13
+ //# sourceMappingURL=locate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locate.d.ts","sourceRoot":"","sources":["../../src/responses/locate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAwB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAIpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,UAAU;;;;;;;;uEA8ClI"}
@@ -0,0 +1,55 @@
1
+ import { Effect } from "effect";
2
+ import { attentionRequests } from "#attention/requests.ts";
3
+ import { ResponseFailed } from "#browser/responses/schema.ts";
4
+ import { markdownPath } from "#files/markdownPath.ts";
5
+ import { metadataModel } from "#metadata/model.ts";
6
+ import { metadataParse } from "#metadata/parse.ts";
7
+ import { questionId, revisionOf } from "./records.js";
8
+ import { questionTemplate } from "./template.js";
9
+ function reject(code, message) {
10
+ return Effect.fail(new ResponseFailed({ code, message }));
11
+ }
12
+ export function locate(root, realRoot, snapshot, fs) {
13
+ return Effect.fn("WorkBoard.locate")(function* (item, request) {
14
+ const data = yield* snapshot;
15
+ const entry = attentionRequests(data).entries.find((candidate) => candidate.itemId === item && candidate.request.id === request);
16
+ if (!entry) {
17
+ return yield* reject("Missing", "The exact open attention request is missing, ambiguous or unavailable.");
18
+ }
19
+ const real = yield* markdownPath(root, realRoot, entry.document.file);
20
+ if (!real) {
21
+ return yield* reject("Missing", "The reviewed source moved or disappeared.");
22
+ }
23
+ const source = yield* fs.readFileString(real).pipe(Effect.catch(() => reject("Unavailable", "The source could not be read.")));
24
+ if (new TextEncoder().encode(source).length > 256 * 1024) {
25
+ return yield* reject("Unsupported", "Question context is limited to 256 KiB; use a focused source document.");
26
+ }
27
+ const parsed = metadataParse(source);
28
+ if (parsed.fields.id !== item
29
+ || parsed.fields.attention?.filter((candidate) => candidate.id === request && candidate.state === "open").length !== 1) {
30
+ return yield* reject("Stale", "The source request changed. Re-read the question before proceeding.");
31
+ }
32
+ const documents = [...data.documents.filter((document) => document.file !== entry.document.file), { file: entry.document.file, parsed }];
33
+ const model = metadataModel(documents, data.unavailable, data.model.rootFile);
34
+ const fresh = attentionRequests({ ...data, documents, model }).entries.find((candidate) => candidate.itemId === item && candidate.request.id === request)?.request;
35
+ if (!fresh) {
36
+ return yield* reject("Stale", "The current request or its references are invalid. Review the source diagnostics before registering it.");
37
+ }
38
+ const revision = revisionOf(source);
39
+ yield* Effect.try({
40
+ catch: (cause) => new ResponseFailed({ code: "Unsupported", message: `Invalid response template: ${String(cause)}` }),
41
+ try: () => questionTemplate(source, request),
42
+ });
43
+ const question = {
44
+ context: source,
45
+ id: questionId(item, request, revision, entry.document.file),
46
+ item,
47
+ reason: fresh.reason,
48
+ request,
49
+ reviewedRevision: revision,
50
+ source: entry.document.file,
51
+ };
52
+ return question;
53
+ });
54
+ }
55
+ //# sourceMappingURL=locate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locate.js","sourceRoot":"","sources":["../../src/responses/locate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DraftInput, Question, RecordedResponse } from "#browser/responses/schema.ts";
2
+ export declare function makeResponse(input: DraftInput, question: Question, recordedAt: number): RecordedResponse;
3
+ //# sourceMappingURL=make.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../src/responses/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE3F,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAcxG"}
@@ -0,0 +1,16 @@
1
+ export function makeResponse(input, question, recordedAt) {
2
+ return {
3
+ body: input.body,
4
+ id: input.id,
5
+ response: {
6
+ ...(input.answers === undefined ? {} : { answers: input.answers }),
7
+ ...(input.supersedes === undefined ? {} : { supersedes: input.supersedes }),
8
+ author: input.author,
9
+ question: input.question,
10
+ recordedAt,
11
+ reviewedRevision: question.question.reviewedRevision,
12
+ type: input.type,
13
+ },
14
+ };
15
+ }
16
+ //# sourceMappingURL=make.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make.js","sourceRoot":"","sources":["../../src/responses/make.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,QAAkB,EAAE,UAAkB;IACrF,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE;YACT,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3E,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU;YACV,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,gBAAgB;YACpD,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB;KACD,CAAC;AACH,CAAC"}