@shivaedev/work-board 0.17.0 → 0.18.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 (304) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +27 -25
  3. package/assets/react.css +1 -1
  4. package/assets/react.js +37 -36
  5. package/dist/browser/responses/cardContext.d.ts +8 -1
  6. package/dist/browser/responses/cardContext.d.ts.map +1 -1
  7. package/dist/browser/responses/cardContext.js +12 -7
  8. package/dist/browser/responses/cardContext.js.map +1 -1
  9. package/dist/browser/views/now.d.ts +5 -0
  10. package/dist/browser/views/now.d.ts.map +1 -1
  11. package/dist/browser/views/now.js +38 -2
  12. package/dist/browser/views/now.js.map +1 -1
  13. package/dist/browser/views/schema.d.ts +11 -0
  14. package/dist/browser/views/schema.d.ts.map +1 -1
  15. package/dist/browser/views/schema.js +1 -0
  16. package/dist/browser/views/schema.js.map +1 -1
  17. package/dist/client/document/View.js +1 -1
  18. package/dist/client/document/View.js.map +1 -1
  19. package/dist/client/formStatus.d.ts +2 -2
  20. package/dist/client/formStatus.d.ts.map +1 -1
  21. package/dist/client/formStatus.js +2 -2
  22. package/dist/client/formStatus.js.map +1 -1
  23. package/dist/client/react/AnswerContext.d.ts.map +1 -1
  24. package/dist/client/react/AnswerContext.js +5 -2
  25. package/dist/client/react/AnswerContext.js.map +1 -1
  26. package/dist/client/react/AnswerForm.d.ts.map +1 -1
  27. package/dist/client/react/AnswerForm.js +6 -2
  28. package/dist/client/react/AnswerForm.js.map +1 -1
  29. package/dist/client/react/AnswerMarkdown.d.ts +6 -0
  30. package/dist/client/react/AnswerMarkdown.d.ts.map +1 -0
  31. package/dist/client/react/AnswerMarkdown.js +7 -0
  32. package/dist/client/react/AnswerMarkdown.js.map +1 -0
  33. package/dist/client/react/AnswerMore.d.ts.map +1 -1
  34. package/dist/client/react/AnswerMore.js +2 -1
  35. package/dist/client/react/AnswerMore.js.map +1 -1
  36. package/dist/client/react/AnswerPanel.d.ts.map +1 -1
  37. package/dist/client/react/AnswerPanel.js +3 -2
  38. package/dist/client/react/AnswerPanel.js.map +1 -1
  39. package/dist/client/react/AnswerPrompts.d.ts.map +1 -1
  40. package/dist/client/react/AnswerPrompts.js +16 -10
  41. package/dist/client/react/AnswerPrompts.js.map +1 -1
  42. package/dist/client/react/BoardShell.js +2 -2
  43. package/dist/client/react/BoardShell.js.map +1 -1
  44. package/dist/client/react/DocumentMain.d.ts.map +1 -1
  45. package/dist/client/react/DocumentMain.js +2 -2
  46. package/dist/client/react/DocumentMain.js.map +1 -1
  47. package/dist/client/react/FleetMain.js +1 -1
  48. package/dist/client/react/FleetMain.js.map +1 -1
  49. package/dist/client/react/FormField.js +1 -1
  50. package/dist/client/react/FormField.js.map +1 -1
  51. package/dist/client/react/GoalPage.js +2 -2
  52. package/dist/client/react/GoalPage.js.map +1 -1
  53. package/dist/client/react/GoalProgressHeader.js +2 -2
  54. package/dist/client/react/GoalProgressHeader.js.map +1 -1
  55. package/dist/client/react/Header.d.ts.map +1 -1
  56. package/dist/client/react/Header.js +3 -2
  57. package/dist/client/react/Header.js.map +1 -1
  58. package/dist/client/react/LibraryContents.js +1 -1
  59. package/dist/client/react/LibraryContents.js.map +1 -1
  60. package/dist/client/react/LibraryMain.d.ts.map +1 -1
  61. package/dist/client/react/LibraryMain.js +1 -1
  62. package/dist/client/react/LibraryMain.js.map +1 -1
  63. package/dist/client/react/LibraryPage.js +2 -2
  64. package/dist/client/react/LibraryPage.js.map +1 -1
  65. package/dist/client/react/LiveControls.js +1 -1
  66. package/dist/client/react/LiveControls.js.map +1 -1
  67. package/dist/client/react/ProjectionMain.d.ts.map +1 -1
  68. package/dist/client/react/ProjectionMain.js +1 -1
  69. package/dist/client/react/ProjectionMain.js.map +1 -1
  70. package/dist/client/react/PromptOption.d.ts.map +1 -1
  71. package/dist/client/react/PromptOption.js +7 -5
  72. package/dist/client/react/PromptOption.js.map +1 -1
  73. package/dist/client/react/ReadingHistory.js +1 -1
  74. package/dist/client/react/ReadingHistory.js.map +1 -1
  75. package/dist/client/react/RemainingMain.d.ts.map +1 -1
  76. package/dist/client/react/RemainingMain.js +1 -1
  77. package/dist/client/react/RemainingMain.js.map +1 -1
  78. package/dist/client/react/ResponseHistory.d.ts.map +1 -1
  79. package/dist/client/react/ResponseHistory.js +11 -5
  80. package/dist/client/react/ResponseHistory.js.map +1 -1
  81. package/dist/client/react/SearchPalette.js +1 -1
  82. package/dist/client/react/SearchPalette.js.map +1 -1
  83. package/dist/client/react/Sidebar.d.ts.map +1 -1
  84. package/dist/client/react/Sidebar.js +9 -2
  85. package/dist/client/react/Sidebar.js.map +1 -1
  86. package/dist/client/react/SystemFleetLane.d.ts.map +1 -1
  87. package/dist/client/react/SystemFleetLane.js +2 -1
  88. package/dist/client/react/SystemFleetLane.js.map +1 -1
  89. package/dist/client/react/SystemHealth.d.ts +2 -1
  90. package/dist/client/react/SystemHealth.d.ts.map +1 -1
  91. package/dist/client/react/SystemHealth.js +3 -2
  92. package/dist/client/react/SystemHealth.js.map +1 -1
  93. package/dist/client/react/SystemMain.d.ts.map +1 -1
  94. package/dist/client/react/SystemMain.js +6 -2
  95. package/dist/client/react/SystemMain.js.map +1 -1
  96. package/dist/client/react/SystemPage.d.ts +2 -1
  97. package/dist/client/react/SystemPage.d.ts.map +1 -1
  98. package/dist/client/react/SystemPage.js +2 -2
  99. package/dist/client/react/SystemPage.js.map +1 -1
  100. package/dist/client/react/TodayNeeds.d.ts +5 -0
  101. package/dist/client/react/TodayNeeds.d.ts.map +1 -1
  102. package/dist/client/react/TodayNeeds.js +6 -3
  103. package/dist/client/react/TodayNeeds.js.map +1 -1
  104. package/dist/client/react/TodayOptionButton.d.ts +14 -0
  105. package/dist/client/react/TodayOptionButton.d.ts.map +1 -0
  106. package/dist/client/react/TodayOptionButton.js +10 -0
  107. package/dist/client/react/TodayOptionButton.js.map +1 -0
  108. package/dist/client/react/TodayOptions.d.ts.map +1 -1
  109. package/dist/client/react/TodayOptions.js +18 -14
  110. package/dist/client/react/TodayOptions.js.map +1 -1
  111. package/dist/client/react/TodayPage.d.ts.map +1 -1
  112. package/dist/client/react/TodayPage.js +20 -5
  113. package/dist/client/react/TodayPage.js.map +1 -1
  114. package/dist/client/react/WorkCard.d.ts.map +1 -1
  115. package/dist/client/react/WorkCard.js +7 -2
  116. package/dist/client/react/WorkCard.js.map +1 -1
  117. package/dist/client/react/WorkLane.d.ts.map +1 -1
  118. package/dist/client/react/WorkLane.js +1 -1
  119. package/dist/client/react/WorkLane.js.map +1 -1
  120. package/dist/client/react/WorkNow.js +1 -1
  121. package/dist/client/react/WorkNow.js.map +1 -1
  122. package/dist/client/react/activeRead.js +1 -1
  123. package/dist/client/react/activeRead.js.map +1 -1
  124. package/dist/client/react/destinationName.d.ts +2 -0
  125. package/dist/client/react/destinationName.d.ts.map +1 -0
  126. package/dist/client/react/destinationName.js +4 -0
  127. package/dist/client/react/destinationName.js.map +1 -0
  128. package/dist/client/react/loadBoardPage.d.ts.map +1 -1
  129. package/dist/client/react/loadBoardPage.js +2 -2
  130. package/dist/client/react/loadBoardPage.js.map +1 -1
  131. package/dist/client/react/loadProjection.d.ts +135 -135
  132. package/dist/client/react/loadProjection.d.ts.map +1 -1
  133. package/dist/client/react/loadProjection.js +2 -2
  134. package/dist/client/react/loadProjection.js.map +1 -1
  135. package/dist/client/react/loadRemaining.d.ts +184 -184
  136. package/dist/client/react/loadRemaining.d.ts.map +1 -1
  137. package/dist/client/react/loadRemaining.js +2 -2
  138. package/dist/client/react/loadRemaining.js.map +1 -1
  139. package/dist/client/react/pageQueries.js +1 -1
  140. package/dist/client/react/pageQueries.js.map +1 -1
  141. package/dist/client/react/resolvedDocumentFailure.d.ts.map +1 -0
  142. package/dist/client/react/resolvedDocumentFailure.js.map +1 -0
  143. package/dist/client/react/routeQuery.d.ts.map +1 -0
  144. package/dist/client/react/routeQuery.js.map +1 -0
  145. package/dist/client/react/useHandoffForm.js +1 -1
  146. package/dist/client/react/useHandoffForm.js.map +1 -1
  147. package/dist/client/react/useProjectionData.d.ts +1 -1
  148. package/dist/client/react/useProjectionData.js +1 -1
  149. package/dist/client/react/useProjectionData.js.map +1 -1
  150. package/dist/client/react/useResponseForm.d.ts.map +1 -1
  151. package/dist/client/react/useResponseForm.js +3 -3
  152. package/dist/client/react/useResponseForm.js.map +1 -1
  153. package/dist/client/responses/summary.d.ts +1 -0
  154. package/dist/client/responses/summary.d.ts.map +1 -1
  155. package/dist/client/responses/summary.js +12 -1
  156. package/dist/client/responses/summary.js.map +1 -1
  157. package/dist/diagnostics/source.js +1 -1
  158. package/dist/diagnostics/source.js.map +1 -1
  159. package/dist/rpc/contract.d.ts +1951 -1918
  160. package/dist/rpc/contract.d.ts.map +1 -1
  161. package/dist/server/Responses.js +2 -2
  162. package/dist/server/Responses.js.map +1 -1
  163. package/dist/server/attention/inbox.d.ts +13 -2
  164. package/dist/server/attention/inbox.d.ts.map +1 -1
  165. package/dist/server/attention/inbox.js +44 -27
  166. package/dist/server/attention/inbox.js.map +1 -1
  167. package/dist/server/attention/managedRequestReceipt.d.ts +10 -0
  168. package/dist/server/attention/managedRequestReceipt.d.ts.map +1 -1
  169. package/dist/server/attention/managedRequestReceipt.js +29 -10
  170. package/dist/server/attention/managedRequestReceipt.js.map +1 -1
  171. package/dist/server/attention/projection.d.ts.map +1 -1
  172. package/dist/server/attention/projection.js +2 -1
  173. package/dist/server/attention/projection.js.map +1 -1
  174. package/dist/server/attention/requestInbox.d.ts +3 -3
  175. package/dist/server/attention/requestInbox.js +2 -2
  176. package/dist/server/attention/requestInbox.js.map +1 -1
  177. package/dist/server/attention/requests.d.ts +1 -0
  178. package/dist/server/attention/requests.d.ts.map +1 -1
  179. package/dist/server/attention/requests.js +7 -3
  180. package/dist/server/attention/requests.js.map +1 -1
  181. package/dist/server/board.js +1 -1
  182. package/dist/server/board.js.map +1 -1
  183. package/dist/server/document/answerBody.d.ts.map +1 -1
  184. package/dist/server/document/answerBody.js +9 -1
  185. package/dist/server/document/answerBody.js.map +1 -1
  186. package/dist/server/document/reviewedWork.d.ts +3 -0
  187. package/dist/server/document/reviewedWork.d.ts.map +1 -0
  188. package/dist/server/document/reviewedWork.js +23 -0
  189. package/dist/server/document/reviewedWork.js.map +1 -0
  190. package/dist/server/files/changes.d.ts.map +1 -1
  191. package/dist/server/files/changes.js +1 -1
  192. package/dist/server/files/changes.js.map +1 -1
  193. package/dist/server/files/watchDirectories.d.ts +1 -1
  194. package/dist/server/files/watchDirectories.d.ts.map +1 -1
  195. package/dist/server/files/watchDirectories.js +71 -12
  196. package/dist/server/files/watchDirectories.js.map +1 -1
  197. package/dist/server/handoffs/Service.js +2 -2
  198. package/dist/server/handoffs/Service.js.map +1 -1
  199. package/dist/server/handoffs/source.js +1 -1
  200. package/dist/server/handoffs/source.js.map +1 -1
  201. package/dist/server/http/boardRoutes.js +1 -1
  202. package/dist/server/http/boardRoutes.js.map +1 -1
  203. package/dist/server/mcp/client.d.ts +11 -0
  204. package/dist/server/mcp/client.d.ts.map +1 -1
  205. package/dist/server/mcp/queries.d.ts +2851 -2818
  206. package/dist/server/mcp/queries.d.ts.map +1 -1
  207. package/dist/server/packageInfo.d.ts +1 -1
  208. package/dist/server/packageInfo.js +1 -1
  209. package/dist/server/render/Highlighter.js +1 -1
  210. package/dist/server/render/Highlighter.js.map +1 -1
  211. package/dist/server/responses/locate.js +1 -1
  212. package/dist/server/responses/locate.js.map +1 -1
  213. package/dist/server/rpc/handlers.js +2 -2
  214. package/dist/server/rpc/handlers.js.map +1 -1
  215. package/dist/server/serve.js +1 -1
  216. package/dist/server/serve.js.map +1 -1
  217. package/dist/server/views/projectionQueries.d.ts +11 -0
  218. package/dist/server/views/projectionQueries.d.ts.map +1 -1
  219. package/dist/server/workspace.js +1 -1
  220. package/dist/server/workspace.js.map +1 -1
  221. package/docs/delivery/README.md +2 -2
  222. package/package.json +18 -362
  223. package/src/browser/responses/cardContext.ts +13 -7
  224. package/src/browser/views/now.ts +42 -2
  225. package/src/browser/views/schema.ts +1 -0
  226. package/src/client/document/View.ts +1 -1
  227. package/src/client/formStatus.ts +3 -3
  228. package/src/client/react/AnswerContext.tsx +9 -4
  229. package/src/client/react/AnswerForm.tsx +25 -6
  230. package/src/client/react/AnswerMarkdown.tsx +15 -0
  231. package/src/client/react/AnswerMore.tsx +58 -46
  232. package/src/client/react/AnswerPanel.tsx +14 -8
  233. package/src/client/react/AnswerPrompts.tsx +33 -18
  234. package/src/client/react/BoardShell.tsx +2 -2
  235. package/src/client/react/DocumentMain.tsx +2 -2
  236. package/src/client/react/FleetMain.tsx +1 -1
  237. package/src/client/react/FormField.tsx +1 -1
  238. package/src/client/react/GoalPage.tsx +2 -2
  239. package/src/client/react/GoalProgressHeader.tsx +2 -2
  240. package/src/client/react/Header.tsx +3 -2
  241. package/src/client/react/LibraryContents.tsx +1 -1
  242. package/src/client/react/LibraryMain.tsx +1 -1
  243. package/src/client/react/LibraryPage.tsx +2 -2
  244. package/src/client/react/LiveControls.tsx +1 -1
  245. package/src/client/react/ProjectionMain.tsx +1 -1
  246. package/src/client/react/PromptOption.tsx +39 -24
  247. package/src/client/react/ReadingHistory.tsx +1 -1
  248. package/src/client/react/RemainingMain.tsx +1 -1
  249. package/src/client/react/ResponseHistory.tsx +53 -14
  250. package/src/client/react/SearchPalette.tsx +1 -1
  251. package/src/client/react/Sidebar.tsx +10 -2
  252. package/src/client/react/SystemFleetLane.tsx +2 -1
  253. package/src/client/react/SystemHealth.tsx +24 -4
  254. package/src/client/react/SystemMain.tsx +6 -2
  255. package/src/client/react/SystemPage.tsx +8 -2
  256. package/src/client/react/TodayNeeds.tsx +21 -6
  257. package/src/client/react/TodayOptionButton.tsx +35 -0
  258. package/src/client/react/TodayOptions.tsx +42 -33
  259. package/src/client/react/TodayPage.tsx +36 -7
  260. package/src/client/react/WorkCard.tsx +16 -8
  261. package/src/client/react/WorkLane.tsx +8 -2
  262. package/src/client/react/WorkNow.tsx +1 -1
  263. package/src/client/react/activeRead.ts +1 -1
  264. package/src/client/react/destinationName.ts +3 -0
  265. package/src/client/react/entry.css +0 -6
  266. package/src/client/react/loadBoardPage.ts +2 -2
  267. package/src/client/react/loadProjection.ts +2 -2
  268. package/src/client/react/loadRemaining.ts +2 -2
  269. package/src/client/react/pageQueries.ts +1 -1
  270. package/src/client/react/useHandoffForm.ts +1 -1
  271. package/src/client/react/useProjectionData.ts +1 -1
  272. package/src/client/react/useResponseForm.ts +5 -3
  273. package/src/client/responses/summary.ts +13 -1
  274. package/src/diagnostics/source.ts +1 -1
  275. package/src/server/Responses.ts +2 -2
  276. package/src/server/attention/inbox.ts +51 -27
  277. package/src/server/attention/managedRequestReceipt.ts +41 -10
  278. package/src/server/attention/projection.ts +5 -2
  279. package/src/server/attention/requestInbox.ts +2 -2
  280. package/src/server/attention/requests.ts +7 -2
  281. package/src/server/board.ts +1 -1
  282. package/src/server/document/answerBody.ts +10 -1
  283. package/src/server/document/reviewedWork.ts +24 -0
  284. package/src/server/files/changes.ts +1 -0
  285. package/src/server/files/watchDirectories.ts +90 -27
  286. package/src/server/handoffs/Service.ts +2 -2
  287. package/src/server/handoffs/source.ts +1 -1
  288. package/src/server/http/boardRoutes.ts +1 -1
  289. package/src/server/packageInfo.ts +1 -1
  290. package/src/server/render/Highlighter.ts +1 -1
  291. package/src/server/responses/locate.ts +1 -1
  292. package/src/server/rpc/handlers.ts +2 -2
  293. package/src/server/serve.ts +1 -1
  294. package/src/server/workspace.ts +1 -1
  295. package/dist/client/page/resolvedDocumentFailure.d.ts.map +0 -1
  296. package/dist/client/page/resolvedDocumentFailure.js.map +0 -1
  297. package/dist/client/page/routeQuery.d.ts.map +0 -1
  298. package/dist/client/page/routeQuery.js.map +0 -1
  299. /package/dist/client/{page → react}/resolvedDocumentFailure.d.ts +0 -0
  300. /package/dist/client/{page → react}/resolvedDocumentFailure.js +0 -0
  301. /package/dist/client/{page → react}/routeQuery.d.ts +0 -0
  302. /package/dist/client/{page → react}/routeQuery.js +0 -0
  303. /package/src/client/{page → react}/resolvedDocumentFailure.ts +0 -0
  304. /package/src/client/{page → react}/routeQuery.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SearchPalette.js","sourceRoot":"","sources":["../../../src/client/react/SearchPalette.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchPalette.js","sourceRoot":"","sources":["../../../src/client/react/SearchPalette.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/client/react/Sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,wBAAgB,OAAO,CAAC,EACvB,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,WAAW,GACX,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;CACjC,+BAsEA"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/client/react/Sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,wBAAgB,OAAO,CAAC,EACvB,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,WAAW,GACX,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;CACjC,+BA6EA"}
@@ -2,9 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Option } from "effect";
3
3
  import { PanelsTopLeft } from "lucide-react";
4
4
  import { useContext, useEffect } from "react";
5
- import { useQuery } from "@shivaedev/effect-react/result-state.ts";
5
+ import { useQuery } from "@shivaedev/effect-react/client/resultState.ts";
6
6
  import { Badge } from "#client/react/components/ui/Badge.tsx";
7
7
  import { buttonVariants } from "#client/react/components/ui/buttonVariants.ts";
8
+ import { destinationName } from "#client/react/destinationName.ts";
8
9
  import { GoalProgress } from "#client/react/GoalProgress.tsx";
9
10
  import { InboxCount } from "#client/react/Header.tsx";
10
11
  import { LibraryContext } from "#client/react/LibraryContext.ts";
@@ -20,6 +21,12 @@ export function Sidebar({ api, data, main, home, controls, openLibrary, }) {
20
21
  today: data?.inboxCount,
21
22
  work: data?.counts.now,
22
23
  };
24
+ function name(view, label) {
25
+ if (view === "today") {
26
+ return destinationName(label, counts.today, "need you");
27
+ }
28
+ return view === "work" ? destinationName(label, counts.work, "open tasks") : label;
29
+ }
23
30
  useEffect(() => {
24
31
  const sidebar = document.getElementById(shellIds.sidebar);
25
32
  if (controls.narrow && controls.open) {
@@ -29,7 +36,7 @@ export function Sidebar({ api, data, main, home, controls, openLibrary, }) {
29
36
  sidebar?.removeAttribute("aria-modal");
30
37
  }
31
38
  }, [controls.narrow, controls.open]);
32
- return (_jsxs("aside", { "aria-label": "Workspace navigation", className: "sticky top-0 flex h-dvh flex-col gap-5 overflow-y-auto border-r bg-card p-4 text-card-foreground max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-40 max-md:w-[min(320px,calc(100vw-48px))] print:hidden", hidden: !controls.open, id: shellIds.sidebar, role: controls.narrow && controls.open ? "dialog" : undefined, children: [_jsxs("a", { "aria-current": home ? "page" : undefined, className: "flex items-center gap-2 px-2 py-3 font-semibold text-lg text-primary no-underline", href: "/", children: [_jsx(PanelsTopLeft, { "aria-hidden": "true", className: "size-5" }), "work board"] }), _jsx("nav", { "aria-label": "Workspace", className: "grid shrink-0 gap-1", "data-inbox-count": String(data?.inboxCount ?? "?"), id: shellIds.primaryNavigation, children: workspaceDestinations.map(({ label, href, view, id }) => (_jsxs("a", { "aria-current": (view === "today" ? home : main.view === view) ? "page" : undefined, className: cn(buttonVariants({ variant: "ghost" }), "justify-between no-underline", (view === "today" ? home : main.view === view) && "bg-accent"), href: href, id: id, children: [_jsx("span", { children: label }), view === "today" && _jsx(InboxCount, { count: counts.today ?? null, id: shellIds.inboxCount }), view === "work" && _jsx(Badge, { children: counts.work ?? "?" })] }, view))) }), _jsx(ReadingSection, { current: main.file, items: reading.favorites, title: "Pinned" }), _jsxs("section", { "aria-label": "Active goals", children: [_jsx("h2", { className: "mb-2 px-2 font-semibold text-muted-foreground text-xs", children: "Active goals" }), goals?.length === 0 && _jsx("p", { className: "px-2 text-muted-foreground text-xs", children: "No active goals." }), goals?.map((goal) => (_jsxs("div", { className: "mb-3 px-2", children: [_jsx("a", { className: "block truncate text-sm", href: `/_board/item/${encodeURIComponent(goal.id)}/`, children: goal.title }), _jsx(GoalProgress, { compact: true, counts: goal.counts, title: goal.title })] }, goal.id)))] }), _jsx(ReadingSection, { current: main.file, items: reading.recents.slice(0, 5), title: "Recent" }), _jsx("button", { className: "mt-auto text-left text-muted-foreground text-xs", id: shellIds.libraryOpen, onClick: () => openLibrary(), type: "button", children: "Reading history" })] }));
39
+ return (_jsxs("aside", { "aria-label": "Workspace navigation", className: "sticky top-0 flex h-dvh flex-col gap-5 overflow-y-auto border-r bg-card p-4 text-card-foreground max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-40 max-md:w-[min(320px,calc(100vw-48px))] print:hidden", hidden: !controls.open, id: shellIds.sidebar, role: controls.narrow && controls.open ? "dialog" : undefined, children: [_jsxs("a", { "aria-current": home ? "page" : undefined, className: "flex items-center gap-2 px-2 py-3 font-semibold text-lg text-primary no-underline", href: "/", children: [_jsx(PanelsTopLeft, { "aria-hidden": "true", className: "size-5" }), "work board"] }), _jsx("nav", { "aria-label": "Workspace", className: "grid shrink-0 gap-1", "data-inbox-count": String(data?.inboxCount ?? "?"), id: shellIds.primaryNavigation, children: workspaceDestinations.map(({ label, href, view, id }) => (_jsxs("a", { "aria-current": (view === "today" ? home : main.view === view) ? "page" : undefined, "aria-label": name(view, label), className: cn(buttonVariants({ variant: "ghost" }), "justify-between no-underline", (view === "today" ? home : main.view === view) && "bg-accent"), href: href, id: id, children: [_jsx("span", { children: label }), view === "today" && _jsx(InboxCount, { count: counts.today ?? null, id: shellIds.inboxCount }), view === "work" && counts.work !== undefined && _jsx(Badge, { "aria-hidden": "true", children: counts.work })] }, view))) }), _jsx(ReadingSection, { current: main.file, items: reading.favorites, title: "Pinned" }), _jsxs("section", { "aria-label": "Active goals", children: [_jsx("h2", { className: "mb-2 px-2 font-semibold text-muted-foreground text-xs", children: "Active goals" }), goals?.length === 0 && _jsx("p", { className: "px-2 text-muted-foreground text-xs", children: "No active goals." }), goals?.map((goal) => (_jsxs("div", { className: "mb-3 px-2", children: [_jsx("a", { className: "block truncate text-sm", href: `/_board/item/${encodeURIComponent(goal.id)}/`, children: goal.title }), _jsx(GoalProgress, { compact: true, counts: goal.counts, title: goal.title })] }, goal.id)))] }), _jsx(ReadingSection, { current: main.file, items: reading.recents.slice(0, 5), title: "Recent" }), _jsx("button", { className: "mt-auto text-left text-muted-foreground text-xs", id: shellIds.libraryOpen, onClick: () => openLibrary(), type: "button", children: "Reading history" })] }));
33
40
  }
34
41
  function ReadingSection({ title, items, current }) {
35
42
  return (_jsxs("section", { "aria-label": title, children: [_jsx("h2", { className: "mb-2 px-2 font-semibold text-muted-foreground text-xs", children: title }), _jsx("ul", { className: "m-0 grid list-none gap-2 p-0", children: items.map((item) => (_jsx("li", { className: "min-w-0 px-2 text-sm", children: _jsx("a", { "aria-current": item.file === current ? "page" : undefined, className: "block truncate", href: fileUrl(item.file), title: item.title, children: item.title }) }, item.file))) }), items.length === 0 && (_jsx("p", { className: "px-2 text-muted-foreground text-xs", children: title === "Pinned" ? "Pin a document to keep it here." : "No recent documents." }))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/client/react/Sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/client/react/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SystemFleetLane.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAInF,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,CAAA;CAAE,+BAgB5F"}
1
+ {"version":3,"file":"SystemFleetLane.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAKnF,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,CAAA;CAAE,+BAgB5F"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { fleetHolder } from "#browser/views/now.ts";
2
3
  import { Badge } from "#client/react/components/ui/Badge.tsx";
3
4
  import { Card } from "#client/react/components/ui/Card.tsx";
4
5
  export function SystemFleetLane({ data }) {
@@ -7,6 +8,6 @@ export function SystemFleetLane({ data }) {
7
8
  }
8
9
  function FleetRow({ item }) {
9
10
  const title = item.document?.title ?? item.workId;
10
- return (_jsxs("li", { className: "flex min-w-0 flex-wrap items-center gap-2 py-3", "data-fleet-id": item.workId, children: [_jsx("a", { className: "min-w-0 flex-1 basis-40 font-medium text-sm [overflow-wrap:anywhere]", href: `/_board/item/${encodeURIComponent(item.workId)}/`, children: title }), _jsx(Badge, { variant: "outline", children: item.stage }), Boolean(item.attentionOwner) && _jsxs("span", { className: "text-muted-foreground text-xs", children: ["Waiting on ", item.attentionOwner] }), Boolean(item.prUrl) && (_jsx("a", { "aria-label": `Pull request for ${title}`, className: "text-sm underline", href: item.prUrl, children: "PR \u2197" }))] }));
11
+ return (_jsxs("li", { className: "flex min-w-0 flex-wrap items-center gap-2 py-3", "data-fleet-id": item.workId, children: [_jsx("a", { className: "min-w-0 flex-1 basis-40 font-medium text-sm [overflow-wrap:anywhere]", href: `/_board/item/${encodeURIComponent(item.workId)}/`, children: title }), _jsx(Badge, { variant: "outline", children: item.stage }), _jsx("span", { className: "text-muted-foreground text-xs", children: fleetHolder(item) }), Boolean(item.prUrl) && (_jsx("a", { "aria-label": `Pull request for ${title}`, className: "text-sm underline", href: item.prUrl, children: "PR \u2197" }))] }));
11
12
  }
12
13
  //# sourceMappingURL=SystemFleetLane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemFleetLane.js","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAuD;IAC5F,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,OAAO,CACN,MAAC,IAAI,kBAAY,YAAY,EAAC,SAAS,EAAC,mBAAmB,aAC1D,aAAI,SAAS,EAAC,uBAAuB,2BAAgB,EACpD,KAAK,KAAK,SAAS,IAAI,YAAG,IAAI,EAAC,QAAQ,YAAE,IAAI,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,qBAAqB,GAAK,EAC9I,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,YAAG,SAAS,EAAC,+BAA+B,kDAAsC,EACzG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7B,aAAI,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,IAAO,IAAI,CAAC,MAAM,CAAI,CAC1C,CAAC,GACE,CACL,IACK,CACP,CAAC;AACH,CAAC;AAGD,SAAS,QAAQ,CAAC,EAAE,IAAI,EAA2B;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IAClD,OAAO,CACN,cAAI,SAAS,EAAC,gDAAgD,mBAAgB,IAAI,CAAC,MAAM,aACxF,YAAG,SAAS,EAAC,sEAAsE,EAAC,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAC1I,KAAK,GACH,EACJ,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAS,EAC5C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,gBAAM,SAAS,EAAC,+BAA+B,4BAAa,IAAI,CAAC,cAAc,IAAQ,EACvH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvB,0BAAe,oBAAoB,KAAK,EAAE,EAAE,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,0BAEtF,CACJ,IACG,CACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"SystemFleetLane.js","sourceRoot":"","sources":["../../../src/client/react/SystemFleetLane.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAuD;IAC5F,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,OAAO,CACN,MAAC,IAAI,kBAAY,YAAY,EAAC,SAAS,EAAC,mBAAmB,aAC1D,aAAI,SAAS,EAAC,uBAAuB,2BAAgB,EACpD,KAAK,KAAK,SAAS,IAAI,YAAG,IAAI,EAAC,QAAQ,YAAE,IAAI,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,qBAAqB,GAAK,EAC9I,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,YAAG,SAAS,EAAC,+BAA+B,kDAAsC,EACzG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7B,aAAI,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,IAAO,IAAI,CAAC,MAAM,CAAI,CAC1C,CAAC,GACE,CACL,IACK,CACP,CAAC;AACH,CAAC;AAGD,SAAS,QAAQ,CAAC,EAAE,IAAI,EAA2B;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IAClD,OAAO,CACN,cAAI,SAAS,EAAC,gDAAgD,mBAAgB,IAAI,CAAC,MAAM,aACxF,YAAG,SAAS,EAAC,sEAAsE,EAAC,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAC1I,KAAK,GACH,EACJ,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAS,EAC7C,eAAM,SAAS,EAAC,+BAA+B,YAAE,WAAW,CAAC,IAAI,CAAC,GAAQ,EACzE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACvB,0BAAe,oBAAoB,KAAK,EAAE,EAAE,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,0BAEtF,CACJ,IACG,CACL,CAAC;AACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { FleetHealth } from "#diagnostics/health.ts";
2
- export declare function SystemHealth({ value, now }: {
2
+ export declare function SystemHealth({ value, now, needsYou, }: {
3
3
  readonly value: FleetHealth;
4
4
  readonly now: number;
5
+ readonly needsYou?: number | null | undefined;
5
6
  }): import("react").JSX.Element;
6
7
  //# sourceMappingURL=SystemHealth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemHealth.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,+BAiDjG"}
1
+ {"version":3,"file":"SystemHealth.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK1D,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9C,+BA0DA"}
@@ -1,6 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ObservedTime } from "./diagnosticsValues.js";
3
- export function SystemHealth({ value, now }) {
3
+ const waitingOn = { automation: "Waiting on Fleet agents", orchestrator: "Waiting on the orchestrator" };
4
+ export function SystemHealth({ value, now, needsYou, }) {
4
5
  let freshness = "Current snapshot";
5
6
  if (now < value.observedAt) {
6
7
  freshness = "Publisher clock is ahead";
@@ -8,7 +9,7 @@ export function SystemHealth({ value, now }) {
8
9
  else if (now - value.observedAt > value.staleAfterMs) {
9
10
  freshness = "Stale snapshot — Fleet has not refreshed its health";
10
11
  }
11
- return (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-muted-foreground text-xs", children: freshness }), _jsxs("dl", { className: "grid gap-4 text-sm [&_dt]:text-muted-foreground", children: [_jsxs("div", { children: [_jsx("dt", { children: "Running / concurrency cap" }), _jsx("dd", { children: _jsxs("strong", { children: [value.running, " / ", value.concurrency] }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Queued" }), _jsx("dd", { children: _jsx("strong", { children: value.queued }) })] }), Object.entries(value.waiting).map(([owner, count]) => (_jsxs("div", { children: [_jsxs("dt", { children: ["Waiting on ", owner] }), _jsx("dd", { children: _jsx("strong", { children: count }) })] }, owner))), _jsxs("div", { children: [_jsx("dt", { children: "Last scheduler pass" }), _jsx("dd", { children: _jsx(ObservedTime, { at: value.lastSchedulerPass }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Last provider capacity rejection" }), _jsx("dd", { children: _jsx(CapacityRejection, { value: value.lastCapacityRejection }) })] })] })] }));
12
+ return (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-muted-foreground text-xs", children: freshness }), _jsxs("dl", { className: "grid gap-4 text-sm [&_dt]:text-muted-foreground", children: [_jsxs("div", { children: [_jsx("dt", { children: "Running / concurrency cap" }), _jsx("dd", { children: _jsxs("strong", { children: [value.running, " / ", value.concurrency] }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Queued" }), _jsx("dd", { children: _jsx("strong", { children: value.queued }) })] }), _jsxs("div", { "data-needs-you": true, children: [_jsx("dt", { children: "Needs you" }), _jsxs("dd", { className: "flex flex-wrap items-baseline gap-2", children: [_jsx("strong", { children: needsYou ?? "Unavailable" }), _jsx("a", { className: "text-xs", href: "/#needs-you", children: "Open Today" })] })] }), ["orchestrator", "automation"].map((owner) => (_jsxs("div", { children: [_jsx("dt", { children: waitingOn[owner] }), _jsx("dd", { children: _jsx("strong", { children: value.waiting[owner] }) })] }, owner))), _jsxs("div", { children: [_jsx("dt", { children: "Last scheduler pass" }), _jsx("dd", { children: _jsx(ObservedTime, { at: value.lastSchedulerPass }) })] }), _jsxs("div", { children: [_jsx("dt", { children: "Last provider capacity rejection" }), _jsx("dd", { children: _jsx(CapacityRejection, { value: value.lastCapacityRejection }) })] })] })] }));
12
13
  }
13
14
  function CapacityRejection({ value }) {
14
15
  return value === null ? ("None observed") : (_jsxs(_Fragment, { children: [value.cause, _jsx("br", {}), _jsx(ObservedTime, { at: value.at })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SystemHealth.js","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAyB,CAAC;AACvD,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyD;IACjG,IAAI,SAAS,GAAG,kBAAkB,CAAC;IACnC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC5B,SAAS,GAAG,0BAA0B,CAAC;IACxC,CAAC;SAAM,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACxD,SAAS,GAAG,qDAAqD,CAAC;IACnE,CAAC;IAED,OAAO,CACN,8BACC,YAAG,SAAS,EAAC,+BAA+B,YAAE,SAAS,GAAK,EAC5D,cAAI,SAAS,EAAC,iDAAiD,aAC9D,0BACC,qDAAkC,EAClC,uBACC,6BACE,KAAK,CAAC,OAAO,SAAK,KAAK,CAAC,WAAW,IAC5B,GACL,IACA,EACN,0BACC,kCAAe,EACf,uBACC,2BAAS,KAAK,CAAC,MAAM,GAAU,GAC3B,IACA,EACL,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACtD,0BACC,wCAAgB,KAAK,IAAM,EAC3B,uBACC,2BAAS,KAAK,GAAU,GACpB,KAJI,KAAK,CAKT,CACN,CAAC,EACF,0BACC,+CAA4B,EAC5B,uBACC,KAAC,YAAY,IAAC,EAAE,EAAE,KAAK,CAAC,iBAAiB,GAAI,GACzC,IACA,EACN,0BACC,4DAAyC,EACzC,uBACC,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,CAAC,qBAAqB,GAAI,GACrD,IACA,IACF,IACH,CACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAA4D;IAC7F,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACvB,eAAe,CACf,CAAC,CAAC,CAAC,CACH,8BACE,KAAK,CAAC,KAAK,EACZ,cAAM,EACN,KAAC,YAAY,IAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,IAC5B,CACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"SystemHealth.js","sourceRoot":"","sources":["../../../src/client/react/SystemHealth.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAyB,CAAC;AAEvD,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAAY,EAAE,6BAA6B,EAAW,CAAC;AAElH,MAAM,UAAU,YAAY,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,QAAQ,GAKR;IACA,IAAI,SAAS,GAAG,kBAAkB,CAAC;IACnC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC5B,SAAS,GAAG,0BAA0B,CAAC;IACxC,CAAC;SAAM,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACxD,SAAS,GAAG,qDAAqD,CAAC;IACnE,CAAC;IAED,OAAO,CACN,8BACC,YAAG,SAAS,EAAC,+BAA+B,YAAE,SAAS,GAAK,EAC5D,cAAI,SAAS,EAAC,iDAAiD,aAC9D,0BACC,qDAAkC,EAClC,uBACC,6BACE,KAAK,CAAC,OAAO,SAAK,KAAK,CAAC,WAAW,IAC5B,GACL,IACA,EACN,0BACC,kCAAe,EACf,uBACC,2BAAS,KAAK,CAAC,MAAM,GAAU,GAC3B,IACA,EACN,kDACC,qCAAkB,EAClB,cAAI,SAAS,EAAC,qCAAqC,aAClD,2BAAS,QAAQ,IAAI,aAAa,GAAU,EAC5C,YAAG,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,2BAErC,IACA,IACA,EACJ,CAAC,cAAc,EAAE,YAAY,CAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACzD,0BACC,uBAAK,SAAS,CAAC,KAAK,CAAC,GAAM,EAC3B,uBACC,2BAAS,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAU,GACnC,KAJI,KAAK,CAKT,CACN,CAAC,EACF,0BACC,+CAA4B,EAC5B,uBACC,KAAC,YAAY,IAAC,EAAE,EAAE,KAAK,CAAC,iBAAiB,GAAI,GACzC,IACA,EACN,0BACC,4DAAyC,EACzC,uBACC,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,CAAC,qBAAqB,GAAI,GACrD,IACA,IACF,IACH,CACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAA4D;IAC7F,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACvB,eAAe,CACf,CAAC,CAAC,CAAC,CACH,8BACE,KAAK,CAAC,KAAK,EACZ,cAAM,EACN,KAAC,YAAY,IAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,IAC5B,CACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SystemMain.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,wBAAgB,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BAaA"}
1
+ {"version":3,"file":"SystemMain.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,wBAAgB,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BAeA"}
@@ -1,13 +1,17 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Option } from "effect";
2
3
  import { useContext } from "react";
3
- import { routeQueryOptions } from "#client/page/routeQuery.ts";
4
+ import { useQuery } from "@shivaedev/effect-react/client/resultState.ts";
4
5
  import { ProjectionFrame } from "./ProjectionFrame.js";
6
+ import { navigationQuery, routeQueryOptions } from "./routeQuery.js";
5
7
  import { SessionContext } from "./SessionContext.js";
6
8
  import { SystemPage } from "./SystemPage.js";
7
9
  import { useDiagnosticsPolling } from "./useDiagnosticsPolling.js";
8
10
  export function SystemMain({ api, onPage, url, }) {
9
11
  const atom = api.diagnostics.query(undefined, routeQueryOptions);
10
12
  useDiagnosticsPolling(useContext(SessionContext), atom, api.fleetItems.query(undefined, routeQueryOptions));
11
- return (_jsx(ProjectionFrame, { atom: atom, location: () => ({ file: "System", status: 200, view: "system" }), onPage: onPage, render: (data) => _jsx(SystemPage, { data: data }), route: "system", url: url }));
13
+ const navigation = useQuery(navigationQuery(api), { keepPreviousData: true });
14
+ const needsYou = Option.getOrUndefined(navigation.data)?.inboxCount;
15
+ return (_jsx(ProjectionFrame, { atom: atom, location: () => ({ file: "System", status: 200, view: "system" }), onPage: onPage, render: (data) => _jsx(SystemPage, { data: data, needsYou: needsYou }), route: "system", url: url }));
12
16
  }
13
17
  //# sourceMappingURL=SystemMain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemMain.js","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GAKH;IACA,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACjE,qBAAqB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC5G,OAAO,CACN,KAAC,eAAe,IACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EACjE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,EAC5C,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,GAAG,GACP,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"SystemMain.js","sourceRoot":"","sources":["../../../src/client/react/SystemMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,UAAU,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,GAAG,GAKH;IACA,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACjE,qBAAqB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC5G,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IACpE,OAAO,CACN,KAAC,eAAe,IACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EACjE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAChE,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,GAAG,GACP,CACF,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { DiagnosticsProjection } from "#browser/views/remaining.ts";
2
- export declare function SystemPage({ data: { sources: data, now } }: {
2
+ export declare function SystemPage({ data: { sources: data, now }, needsYou, }: {
3
3
  readonly data: DiagnosticsProjection;
4
+ readonly needsYou?: number | null | undefined;
4
5
  }): import("react").JSX.Element;
5
6
  //# sourceMappingURL=SystemPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemPage.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAOzE,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,+BAuCpG"}
1
+ {"version":3,"file":"SystemPage.d.ts","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAOzE,wBAAgB,UAAU,CAAC,EAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAC5B,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9C,+BAuCA"}
@@ -6,14 +6,14 @@ import { FleetItemsContext } from "./FleetItemsContext.js";
6
6
  import { githubLimited } from "./githubLimited.js";
7
7
  import { SystemFleetLane } from "./SystemFleetLane.js";
8
8
  import { SystemHealth } from "./SystemHealth.js";
9
- export function SystemPage({ data: { sources: data, now } }) {
9
+ export function SystemPage({ data: { sources: data, now }, needsYou, }) {
10
10
  const items = useContext(FleetItemsContext);
11
11
  const fleet = data.fleet.state === "ready" ? { ...data.fleet, observedAt: data.fleet.value.observedAt } : data.fleet;
12
12
  return (_jsxs("div", { className: "space-y-6", children: [_jsx("h1", { className: "font-semibold text-2xl", children: "System" }), _jsx("p", { children: "Agent usage and Fleet health. Refreshes every 15 seconds while this view is visible; Pause updates holds the current view." }), _jsxs("div", { className: "grid gap-4 lg:grid-cols-2", children: [_jsx(Card, { attention: data.codex.state === "ready"
13
13
  && [data.codex.value.primary, data.codex.value.secondary].some((window) => window !== null && window.usedPercent >= 90), name: "Codex", render: (value) => _jsx(DiagnosticsWindows, { now: now, value: value }), source: data.codex }), _jsx(Card, { attention: data.github.state === "ready" && data.github.value.some((window) => githubLimited(window, now)), name: "GitHub", render: (value) => _jsx(DiagnosticsGithub, { now: now, value: value }), source: data.github }), _jsx(Card, { attention: fleet.state === "ready"
14
14
  && (fleet.value.running >= fleet.value.concurrency
15
15
  || Object.values(fleet.value.waiting).some((count) => count > 0)
16
- || now < fleet.value.observedAt), name: "Fleet", render: (value) => _jsx(SystemHealth, { now: now, value: value }), source: fleet, stale: fleet.state === "ready" && now - fleet.value.observedAt > fleet.value.staleAfterMs })] }), _jsx(SystemFleetLane, { data: items })] }));
16
+ || now < fleet.value.observedAt), name: "Fleet", render: (value) => _jsx(SystemHealth, { needsYou: needsYou, now: now, value: value }), source: fleet, stale: fleet.state === "ready" && now - fleet.value.observedAt > fleet.value.staleAfterMs })] }), _jsx(SystemFleetLane, { data: items })] }));
17
17
  }
18
18
  function Card({ name, source, attention, stale, render, }) {
19
19
  let state = source.state;
@@ -1 +1 @@
1
- {"version":3,"file":"SystemPage.js","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SystemPage.js","sourceRoot":"","sources":["../../../src/client/react/SystemPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAyB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAClD,MAAM,UAAU,UAAU,CAAC,EAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAC5B,QAAQ,GAIR;IACA,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACrH,OAAO,CACN,eAAK,SAAS,EAAC,WAAW,aACzB,aAAI,SAAS,EAAC,wBAAwB,uBAAY,EAClD,qJAAiI,EACjI,eAAK,SAAS,EAAC,2BAA2B,aACzC,KAAC,IAAI,IACJ,SAAS,EACR,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO;+BACzB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAExH,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,EACjE,MAAM,EAAE,IAAI,CAAC,KAAK,GACjB,EACF,KAAC,IAAI,IACJ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC1G,IAAI,EAAC,QAAQ,EACb,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,iBAAiB,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,EAChE,MAAM,EAAE,IAAI,CAAC,MAAM,GAClB,EACF,KAAC,IAAI,IACJ,SAAS,EACR,KAAK,CAAC,KAAK,KAAK,OAAO;+BACpB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW;mCAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;mCAC7D,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAElC,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,EAC/E,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GACxF,IACG,EACN,KAAC,eAAe,IAAC,IAAI,EAAE,KAAK,GAAI,IAC3B,CACN,CAAC;AACH,CAAC;AACD,SAAS,IAAI,CAAI,EAChB,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,GAON;IACA,IAAI,KAAK,GAAoD,MAAM,CAAC,KAAK,CAAC;IAC1E,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC;QAC3C,KAAK,GAAG,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,EAAE,CAAC;QACvC,KAAK,GAAG,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACpJ,OAAO,CACN,MAAC,OAAO,uBACU,eAAe,IAAI,CAAC,WAAW,EAAE,EAAE,EACpD,SAAS,EAAC,4CAA4C,iBACzC,IAAI,CAAC,WAAW,EAAE,gBACnB,KAAK,aAEjB,kBAAQ,SAAS,EAAC,mDAAmD,aACpE,aAAI,SAAS,EAAC,uBAAuB,EAAC,EAAE,EAAE,eAAe,IAAI,CAAC,WAAW,EAAE,EAAE,YAC3E,IAAI,GACD,EACL,eAAM,SAAS,EAAC,yCAAyC,YAAE,KAAK,GAAQ,IAChE,EACR,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAG,IAAI,EAAC,QAAQ,YAAE,MAAM,CAAC,KAAK,GAAK,EACtF,aAAG,SAAS,EAAC,+BAA+B,0BAClC,KAAC,YAAY,IAAC,EAAE,EAAE,MAAM,CAAC,UAAU,GAAI,IAC7C,IACK,CACV,CAAC;AACH,CAAC"}
@@ -1,7 +1,12 @@
1
1
  import type { InboxProjection } from "#browser/views/schema.ts";
2
2
  import type { ShellApi } from "./ShellApi.ts";
3
+ type Item = InboxProjection["you"][number];
3
4
  export declare function TodayNeeds({ api, data }: {
4
5
  readonly api: ShellApi;
5
6
  readonly data: InboxProjection;
6
7
  }): import("react").JSX.Element;
8
+ export declare function TodayLater({ items }: {
9
+ readonly items: readonly Item[];
10
+ }): import("react").JSX.Element;
11
+ export {};
7
12
  //# sourceMappingURL=TodayNeeds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TodayNeeds.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayNeeds.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,+BAenG"}
1
+ {"version":3,"file":"TodayNeeds.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayNeeds.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,KAAK,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,+BAiBnG;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;CAAE,+BAUxE"}
@@ -6,9 +6,12 @@ export function TodayNeeds({ api, data }) {
6
6
  if (!data.complete) {
7
7
  return _jsx("p", { role: "status", children: "Workspace incomplete. Needs-you membership and counts are unavailable." });
8
8
  }
9
- return data.you.length > 0 ? (_jsx("ul", { "aria-label": "Needs you", className: "m-0 list-none divide-y rounded-lg border border-border p-0", children: data.you.map((item) => (_jsx("li", { className: "h-12 max-h-12", "data-attention-id": item.id, children: _jsx(TodayRow, { api: api, item: item }) }, `${item.file}:${item.href}`))) })) : (_jsx("p", { className: "text-muted-foreground text-sm", children: "All quiet \u2014 nothing needs you." }));
9
+ return data.you.length > 0 ? (_jsx("ul", { "aria-label": "Needs you", className: "m-0 list-none divide-y rounded-lg border border-border p-0", children: data.you.map((item) => (_jsx("li", { className: "h-12 max-h-12", "data-attention-id": item.id, children: _jsx(TodayRow, { item: item, status: "needs-you", children: _jsx(TodayOptions, { api: api, item: item }) }) }, `${item.file}:${item.href}`))) })) : (_jsx("p", { className: "text-muted-foreground text-sm", children: "All quiet \u2014 nothing needs you." }));
10
10
  }
11
- function TodayRow({ api, item }) {
12
- return (_jsxs("div", { className: "today-row flex h-full min-w-0 items-center gap-2 px-2", "data-attention-row": true, children: [_jsx(StatusChip, { "aria-label": "Needs you", className: "shrink-0 max-sm:size-6 max-sm:justify-center max-sm:gap-0 max-sm:px-1 max-sm:text-[0px] max-sm:[&_svg]:shrink-0", status: "needs-you" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex min-w-0 items-baseline gap-2", children: [_jsx("a", { className: "truncate font-medium text-sm", href: item.href, title: item.title, children: item.title }), _jsx("span", { className: "shrink-0 font-mono text-[10px] text-muted-foreground max-sm:hidden", children: item.id })] }), _jsxs("p", { className: "m-0 truncate text-muted-foreground text-xs", title: item.problem ?? item.reason, children: [_jsx("span", { className: "inline-block max-w-24 truncate align-bottom font-mono text-[10px] sm:hidden", title: item.id, children: item.id }), _jsx("span", { className: "sm:hidden", children: " \u00B7 " }), item.problem ?? item.reason] })] }), _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground tabular-nums", children: item.modified === undefined ? "Age ?" : _jsx(Age, { modified: item.modified, short: true }) }), _jsx(TodayOptions, { api: api, item: item })] }));
11
+ export function TodayLater({ items }) {
12
+ return (_jsx("ul", { "aria-label": "Later", className: "m-0 list-none divide-y rounded-lg border border-border p-0", children: items.map((item) => (_jsx("li", { className: "h-12 max-h-12", children: _jsx(TodayRow, { item: item, status: "deferred" }) }, item.file))) }));
13
+ }
14
+ function TodayRow({ children, item, status }) {
15
+ return (_jsxs("div", { className: "today-row flex h-full min-w-0 items-center gap-2 px-2", "data-attention-row": status === "needs-you" ? "" : undefined, children: [_jsx(StatusChip, { "aria-label": status === "needs-you" ? "Needs you" : "Deferred", className: "shrink-0 max-sm:size-6 max-sm:justify-center max-sm:gap-0 max-sm:px-1 max-sm:text-[0px] max-sm:[&_svg]:shrink-0", status: status }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex min-w-0 items-baseline gap-2", children: [_jsx("a", { className: "truncate font-medium text-sm", href: item.href, title: item.title, children: item.title }), _jsx("span", { className: "shrink-0 font-mono text-[10px] text-muted-foreground max-sm:hidden", children: item.id })] }), _jsxs("p", { className: "m-0 truncate text-muted-foreground text-xs", title: item.problem ?? item.reason, children: [_jsx("span", { className: "inline-block max-w-24 truncate align-bottom font-mono text-[10px] sm:hidden", title: item.id, children: item.id }), _jsx("span", { className: "sm:hidden", children: " \u00B7 " }), item.problem ?? item.reason] })] }), _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground tabular-nums", children: item.modified === undefined ? "Age ?" : _jsx(Age, { modified: item.modified, short: true }) }), children] }));
13
16
  }
14
17
  //# sourceMappingURL=TodayNeeds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TodayNeeds.js","sourceRoot":"","sources":["../../../src/client/react/TodayNeeds.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAW,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAGlD,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAA8D;IACnG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,YAAG,IAAI,EAAC,QAAQ,uFAA2E,CAAC;IACpG,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5B,2BAAe,WAAW,EAAC,SAAS,EAAC,4DAA4D,YAC/F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,aAAI,SAAS,EAAC,eAAe,uBAAoB,IAAI,CAAC,EAAE,YACvD,KAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAI,IAD4B,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAErF,CACL,CAAC,GACE,CACL,CAAC,CAAC,CAAC,CACH,YAAG,SAAS,EAAC,+BAA+B,oDAAmC,CAC/E,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAmD;IAC/E,OAAO,CACN,eAAK,SAAS,EAAC,uDAAuD,yCACrE,KAAC,UAAU,kBACC,WAAW,EACtB,SAAS,EAAC,iHAAiH,EAC3H,MAAM,EAAC,WAAW,GACjB,EACF,eAAK,SAAS,EAAC,gBAAgB,aAC9B,eAAK,SAAS,EAAC,mCAAmC,aACjD,YAAG,SAAS,EAAC,8BAA8B,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,YAC5E,IAAI,CAAC,KAAK,GACR,EACJ,eAAM,SAAS,EAAC,oEAAoE,YAAE,IAAI,CAAC,EAAE,GAAQ,IAChG,EACN,aAAG,SAAS,EAAC,4CAA4C,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,aAC3F,eAAM,SAAS,EAAC,6EAA6E,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,YAC1G,IAAI,CAAC,EAAE,GACF,EACP,eAAM,SAAS,EAAC,WAAW,yBAAW,EACrC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IACzB,IACC,EACN,eAAM,SAAS,EAAC,yDAAyD,YACvE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAG,GACzE,EACP,KAAC,YAAY,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAI,IACjC,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"TodayNeeds.js","sourceRoot":"","sources":["../../../src/client/react/TodayNeeds.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAW,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAGlD,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAA8D;IACnG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,YAAG,IAAI,EAAC,QAAQ,uFAA2E,CAAC;IACpG,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5B,2BAAe,WAAW,EAAC,SAAS,EAAC,4DAA4D,YAC/F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,aAAI,SAAS,EAAC,eAAe,uBAAoB,IAAI,CAAC,EAAE,YACvD,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,WAAW,YACvC,KAAC,YAAY,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAI,GAC5B,IAHmD,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAIrF,CACL,CAAC,GACE,CACL,CAAC,CAAC,CAAC,CACH,YAAG,SAAS,EAAC,+BAA+B,oDAAmC,CAC/E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAuC;IACxE,OAAO,CACN,2BAAe,OAAO,EAAC,SAAS,EAAC,4DAA4D,YAC3F,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,aAAI,SAAS,EAAC,eAAe,YAC5B,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,UAAU,GAAG,IADR,IAAI,CAAC,IAAI,CAEvC,CACL,CAAC,GACE,CACL,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAqG;IAC9I,OAAO,CACN,eAAK,SAAS,EAAC,uDAAuD,wBAAqB,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aACjI,KAAC,UAAU,kBACE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAC7D,SAAS,EAAC,iHAAiH,EAC3H,MAAM,EAAE,MAAM,GACb,EACF,eAAK,SAAS,EAAC,gBAAgB,aAC9B,eAAK,SAAS,EAAC,mCAAmC,aACjD,YAAG,SAAS,EAAC,8BAA8B,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,YAC5E,IAAI,CAAC,KAAK,GACR,EACJ,eAAM,SAAS,EAAC,oEAAoE,YAAE,IAAI,CAAC,EAAE,GAAQ,IAChG,EACN,aAAG,SAAS,EAAC,4CAA4C,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,aAC3F,eAAM,SAAS,EAAC,6EAA6E,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,YAC1G,IAAI,CAAC,EAAE,GACF,EACP,eAAM,SAAS,EAAC,WAAW,yBAAW,EACrC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IACzB,IACC,EACN,eAAM,SAAS,EAAC,yDAAyD,YACvE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,GAAG,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAG,GACzE,EACN,QAAQ,IACJ,CACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare function TodayOptionButton({ disabled, onChoose, option, recommended, source, }: {
2
+ readonly disabled: boolean;
3
+ readonly onChoose: () => void;
4
+ readonly option: {
5
+ readonly id: string;
6
+ readonly source: string;
7
+ };
8
+ readonly recommended: string | undefined;
9
+ readonly source: {
10
+ readonly label: string;
11
+ readonly description: string;
12
+ } | undefined;
13
+ }): import("react").JSX.Element;
14
+ //# sourceMappingURL=TodayOptionButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TodayOptionButton.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptionButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,MAAM,GACN,EAAE;IACF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACtF,+BAmBA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { optionText } from "#browser/responses/cardContext.ts";
3
+ import { Button } from "#client/react/components/ui/Button.tsx";
4
+ export function TodayOptionButton({ disabled, onChoose, option, recommended, source, }) {
5
+ const authored = optionText(option.id, option.source);
6
+ const text = source?.label ?? authored.label;
7
+ const description = source?.description ?? authored.description;
8
+ return (_jsxs(Button, { className: "h-auto w-full flex-col items-start gap-0.5 whitespace-normal px-3 py-2 text-left", disabled: disabled, onClick: onChoose, size: "sm", variant: "outline", children: [_jsxs("span", { children: [text, recommended === text ? " · Recommended" : null] }), description ? _jsx("span", { className: "font-normal text-muted-foreground text-xs", children: description }) : null] }));
9
+ }
10
+ //# sourceMappingURL=TodayOptionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TodayOptionButton.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptionButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAEhE,MAAM,UAAU,iBAAiB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,MAAM,GAON;IACA,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;IAChE,OAAO,CACN,MAAC,MAAM,IACN,SAAS,EAAC,kFAAkF,EAC5F,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,aAEjB,2BACE,IAAI,EACJ,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IACzC,EACN,WAAW,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,2CAA2C,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC9F,CACT,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TodayOptions.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAUhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,+BAsBpH"}
1
+ {"version":3,"file":"TodayOptions.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAUhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,+BAsBpH"}
@@ -1,19 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { RegistryContext } from "@effect/atom-react";
3
3
  import { Cause, Effect, Option } from "effect";
4
- import { useContext, useMemo, useState } from "react";
5
- import { useAction, useQuery } from "@shivaedev/effect-react/result-state.ts";
4
+ import { useContext, useMemo, useRef, useState } from "react";
5
+ import { useAction, useQuery } from "@shivaedev/effect-react/client/resultState.ts";
6
6
  import { answerBody } from "#browser/responses/answerBody.ts";
7
- import { optionLabel } from "#browser/responses/cardContext.ts";
8
- import { documentQuery, navigationQuery, routeQueryOptions } from "#client/page/routeQuery.ts";
9
- import { Button } from "#client/react/components/ui/Button.tsx";
7
+ import { promptHeading } from "#browser/responses/cardContext.ts";
8
+ import { reasonMarkdown } from "#browser/responses/reasonMarkdown.ts";
10
9
  import { Popover } from "#client/react/components/ui/Popover.tsx";
11
10
  import { authorLabel } from "#client/responses/authorLabel.ts";
11
+ import { chosenLabels } from "#client/responses/summary.ts";
12
12
  import { saveFailure } from "#client/saveFailure.ts";
13
13
  import { fileUrl } from "#files/url.ts";
14
14
  import { responseUrl } from "#responses/url.ts";
15
15
  import { createResponse } from "./createResponse.js";
16
16
  import { useFormClient } from "./FormContext.js";
17
+ import { documentQuery, navigationQuery, routeQueryOptions } from "./routeQuery.js";
18
+ import { TodayOptionButton } from "./TodayOptionButton.js";
17
19
  export function TodayOptions({ api, item }) {
18
20
  const query = useQuery(documentQuery(api, fileUrl(item.file)), { keepPreviousData: true });
19
21
  const data = Option.getOrUndefined(query.data);
@@ -24,16 +26,18 @@ export function TodayOptions({ api, item }) {
24
26
  && !request.unavailable
25
27
  && !request.promptUnavailable
26
28
  && request.prompts?.length === 1
27
- && request.prompts[0]?.mode === "one" ? (_jsxs(Popover, { label: `Answer ${item.title}`, trigger: "Answer", triggerClassName: "h-8 w-auto px-1 text-xs", children: [_jsx("a", { className: "mb-3 block text-xs", href: item.href, children: "Open full question" }), _jsx(InlineOptions, { api: api, document: data, request: request }, request.preview.reviewedRevision)] })) : (_jsx("a", { "aria-label": `Answer ${item.title}`, className: "shrink-0 text-xs", href: item.href, children: "Answer" }));
29
+ && request.prompts[0]?.mode === "one" ? (_jsxs(Popover, { className: "w-80", label: `Answer ${item.title}`, trigger: "Answer", triggerClassName: "h-8 w-auto px-1 text-xs", children: [_jsx(InlineOptions, { api: api, document: data, request: request }, request.preview.reviewedRevision), _jsx("a", { className: "mt-3 block border-t px-2 pt-2 text-muted-foreground text-xs hover:text-foreground", href: item.href, children: "Open the full question with its context \u2192" })] })) : (_jsx("a", { "aria-label": `Answer ${item.title}`, className: "shrink-0 text-xs", href: item.href, children: "Answer" }));
28
30
  }
29
31
  function InlineOptions({ api, document: data, request }) {
30
32
  const registry = useContext(RegistryContext);
33
+ const requestRef = useRef(request);
34
+ requestRef.current = request;
31
35
  const client = useFormClient();
32
36
  const [label] = useState(() => authorLabel(() => localStorage, document.documentElement.dataset.workspace));
33
37
  const [author, setAuthor] = useState(() => label.read("") || "maintainer");
34
38
  const actionAtom = useMemo(() => client.runtime.fn(Effect.fn("Board.answerOption")(function* (choice) {
35
- const preview = request.preview;
36
- const prompt = request.prompts?.[0];
39
+ const preview = requestRef.current.preview;
40
+ const prompt = requestRef.current.prompts?.[0];
37
41
  if (!(preview && prompt && author.trim())) {
38
42
  return yield* Effect.fail("Add your local author label.");
39
43
  }
@@ -53,11 +57,13 @@ function InlineOptions({ api, document: data, request }) {
53
57
  registry.refresh(navigationQuery(api));
54
58
  registry.refresh(documentQuery(api, fileUrl(data.file)));
55
59
  return saved;
56
- })), [client, api, registry, request, author, data.file, label.save]);
60
+ })), [client, api, registry, author, data.file, label.save]);
57
61
  const action = useAction(actionAtom);
58
62
  const failure = Option.getOrUndefined(Option.flatMap(action.cause, Cause.findErrorOption));
59
63
  const saved = Option.getOrUndefined(action.data);
60
- let status = saved ? `Saved: responses/${saved.id}.md. This records feedback, not acceptance.` : "";
64
+ let status = saved
65
+ ? `Saved: your answer “${chosenLabels(request.prompts ?? [], saved.answers)}” is recorded. The agent reads it the next time it checks.`
66
+ : "";
61
67
  if (failure) {
62
68
  status = typeof failure === "string" ? failure : saveFailure(failure, "response").text;
63
69
  }
@@ -65,9 +71,7 @@ function InlineOptions({ api, document: data, request }) {
65
71
  status = "Pending: registering reviewed context, then recording response…";
66
72
  }
67
73
  const prompt = request.prompts?.[0];
68
- return (_jsxs("fieldset", { "aria-label": `Options for ${data.identity}`, className: "m-0 min-w-0 space-y-2 border-0 px-2 pb-2", children: [_jsx("div", { className: "flex flex-wrap gap-2", children: prompt?.options.map((option, index) => {
69
- const text = data.metadata.options?.[index]?.label ?? optionLabel(option.id, option.source, request.preview?.reason ?? "");
70
- return (_jsxs(Button, { disabled: !(data.writable && author.trim()) || action.pending || Boolean(saved), onClick: () => action.dispatch(option.id), size: "sm", variant: "outline", children: [text, data.metadata.recommended === text && " · Recommended"] }, option.id));
71
- }) }), _jsxs("details", { className: "text-muted-foreground text-xs", children: [_jsxs("summary", { className: "cursor-pointer", children: ["Answer as ", author || "…"] }), _jsxs("label", { children: ["Local author label", " ", _jsx("input", { className: "rounded border px-2 py-1", maxLength: 200, onChange: (event) => setAuthor(event.currentTarget.value), value: author })] })] }), !data.writable && _jsx("p", { className: "m-0 text-muted-foreground text-xs", children: "Read-only. Enable responses to record an answer." }), Boolean(status) && (_jsx("p", { className: "m-0 text-xs", role: "status", children: status }))] }));
74
+ const reason = reasonMarkdown(request.preview?.reason ?? "").split("\n")[0];
75
+ return (_jsxs("fieldset", { "aria-label": `Options for ${data.identity}`, className: "m-0 min-w-0 space-y-3 border-0 px-2 pb-1", children: [Boolean(reason) && _jsx("p", { className: "m-0 font-medium text-sm", children: reason }), prompt ? _jsx("p", { className: "m-0 text-muted-foreground text-xs", children: promptHeading(prompt.source).title ?? "Choose one option." }) : null, _jsx("div", { className: "grid gap-2", children: prompt?.options.map((option, index) => (_jsx(TodayOptionButton, { disabled: !(data.writable && author.trim()) || action.pending || Boolean(saved), onChoose: () => action.dispatch(option.id), option: option, recommended: data.metadata.recommended, source: data.metadata.options?.[index] }, option.id))) }), _jsxs("details", { className: "text-muted-foreground text-xs", children: [_jsxs("summary", { className: "cursor-pointer", children: ["Answer as ", author || "…"] }), _jsxs("label", { className: "mt-2 flex items-center gap-2", children: ["Local author label", " ", _jsx("input", { className: "rounded border bg-background px-2 py-1", maxLength: 200, onChange: (event) => setAuthor(event.currentTarget.value), value: author })] })] }), !data.writable && _jsx("p", { className: "m-0 text-muted-foreground text-xs", children: "This Board is read-only. Start it with --responses to record answers." }), Boolean(status) && (_jsx("p", { className: "m-0 text-xs", role: "status", children: status }))] }));
72
76
  }
73
77
  //# sourceMappingURL=TodayOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TodayOptions.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TodayOptions.js","sourceRoot":"","sources":["../../../src/client/react/TodayOptions.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TodayPage.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAO9C,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,+BAyClG"}
1
+ {"version":3,"file":"TodayPage.d.ts","sourceRoot":"","sources":["../../../src/client/react/TodayPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAO9C,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,+BA0ClG"}
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Option } from "effect";
3
- import { useQuery } from "@shivaedev/effect-react/result-state.ts";
4
- import { navigationQuery, routeQueryOptions } from "#client/page/routeQuery.ts";
3
+ import { useQuery } from "@shivaedev/effect-react/client/resultState.ts";
5
4
  import { fileUrl } from "#files/url.ts";
6
5
  import { inProgressItems } from "./inProgressItems.js";
6
+ import { navigationQuery, routeQueryOptions } from "./routeQuery.js";
7
7
  import { TodayGoals } from "./TodayGoals.js";
8
- import { TodayNeeds } from "./TodayNeeds.js";
8
+ import { TodayLater, TodayNeeds } from "./TodayNeeds.js";
9
9
  import { TodayProgress } from "./TodayProgress.js";
10
- const todayIds = { goals: "today-goals", needs: "needs-you", progress: "in-progress" };
10
+ const todayIds = { goals: "today-goals", later: "later", needs: "needs-you", progress: "in-progress" };
11
11
  export function TodayPage({ api, data }) {
12
12
  const query = useQuery(api.goals.query(undefined, routeQueryOptions), { keepPreviousData: true });
13
13
  const goals = Option.getOrUndefined(query.data);
@@ -16,9 +16,24 @@ export function TodayPage({ api, data }) {
16
16
  const progress = inProgressItems(fleet);
17
17
  const navigation = useQuery(navigationQuery(api), { keepPreviousData: true });
18
18
  const home = Option.getOrUndefined(navigation.data)?.home;
19
- return (_jsxs("div", { className: "today-page min-w-0 space-y-3 md:space-y-6", children: [_jsxs("header", { className: "flex items-center justify-between gap-3", children: [_jsx("h1", { className: "m-0 font-semibold text-2xl", children: "Today" }), home !== undefined && (_jsx("a", { className: "text-sm", href: fileUrl(home.file), children: "Workspace notes" }))] }), _jsxs("nav", { "aria-label": "Today summary", className: "today-strip flex items-center gap-1 whitespace-nowrap text-xs tabular-nums sm:gap-2 sm:text-sm", children: [_jsxs("a", { href: `#${todayIds.needs}`, children: [data.complete ? data.you.length : "?", " need you"] }), _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsxs("a", { href: `#${todayIds.progress}`, children: [progress?.length ?? "?", " in progress"] }), _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsxs("a", { href: `#${todayIds.goals}`, children: [goals?.goals.length ?? "?", " active goals"] })] }), _jsxs("div", { className: "today-grid grid min-w-0 gap-6 xl:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]", children: [_jsxs("div", { className: "min-w-0 space-y-6", children: [_jsx(NeedsYou, { api: api, data: data }), _jsxs("section", { className: "min-w-0", id: todayIds.progress, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "In progress" }), _jsx(TodayProgress, { data: fleet, failed: Option.isSome(fleetQuery.cause) })] })] }), _jsxs("section", { className: "min-w-0", id: todayIds.goals, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "Goals" }), goals ? _jsx(TodayGoals, { data: goals }) : _jsx("p", { role: "status", children: Option.isSome(query.cause) ? "Goals unavailable." : "Loading goals…" }), goals && Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Goal refresh failed. Displayed goals are retained." })] })] })] }));
19
+ return (_jsxs("div", { className: "today-page min-w-0 space-y-3 md:space-y-6", children: [_jsxs("header", { className: "flex items-center justify-between gap-3", children: [_jsx("h1", { className: "m-0 font-semibold text-2xl", children: "Today" }), home !== undefined && (_jsx("a", { className: "text-sm", href: fileUrl(home.file), children: "Workspace notes" }))] }), _jsxs("nav", { "aria-label": "Today summary", className: "today-strip flex items-center gap-1 whitespace-nowrap text-xs tabular-nums sm:gap-2 sm:text-sm", children: [_jsx("a", { href: `#${todayIds.needs}`, children: data.complete ? `${data.you.length} need you` : "Needs you unavailable" }), _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsx("a", { href: `#${todayIds.progress}`, children: progressSummary(progress?.length, fleet?.state === "unavailable" || Option.isSome(fleetQuery.cause)) }), _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsx("a", { href: `#${todayIds.goals}`, children: goalsSummary(goals?.goals.length, Option.isSome(query.cause)) })] }), _jsxs("div", { className: "today-grid grid min-w-0 gap-6 xl:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]", children: [_jsxs("div", { className: "min-w-0 space-y-6", children: [_jsx(NeedsYou, { api: api, data: data }), _jsxs("section", { className: "min-w-0", id: todayIds.progress, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "In progress" }), _jsx(TodayProgress, { data: fleet, failed: Option.isSome(fleetQuery.cause) })] }), data.complete && data.later.length > 0 && _jsx(Later, { items: data.later })] }), _jsxs("section", { className: "min-w-0", id: todayIds.goals, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "Goals" }), goals ? _jsx(TodayGoals, { data: goals }) : _jsx("p", { role: "status", children: Option.isSome(query.cause) ? "Goals unavailable." : "Loading goals…" }), goals && Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Goal refresh failed. Displayed goals are retained." })] })] })] }));
20
20
  }
21
21
  function NeedsYou({ api, data }) {
22
22
  return (_jsxs("section", { className: "min-w-0", id: todayIds.needs, children: [_jsx("h2", { className: "mt-0 mb-3 font-semibold text-lg", children: "Needs you" }), _jsx(TodayNeeds, { api: api, data: data }), data.complete && data.you.length === 0 && (_jsx("a", { className: "text-sm", href: "/_board/start", children: "Getting started" }))] }));
23
23
  }
24
+ function Later({ items }) {
25
+ return (_jsx("section", { className: "min-w-0", id: todayIds.later, children: _jsxs("details", { children: [_jsxs("summary", { className: "mb-3 cursor-pointer", children: [_jsx("h2", { className: "m-0 inline font-semibold text-lg", children: "Later" }), _jsx("span", { className: "ml-2 text-muted-foreground text-sm tabular-nums", children: items.length })] }), _jsx(TodayLater, { items: items })] }) }));
26
+ }
27
+ function progressSummary(count, unavailable) {
28
+ if (count !== undefined) {
29
+ return `${count} in progress`;
30
+ }
31
+ return unavailable ? "Fleet unavailable" : "Loading Fleet…";
32
+ }
33
+ function goalsSummary(count, failed) {
34
+ if (count !== undefined) {
35
+ return `${count} active goals`;
36
+ }
37
+ return failed ? "Goals unavailable" : "Loading goals…";
38
+ }
24
39
  //# sourceMappingURL=TodayPage.js.map