@xopcai/xopc 0.0.180 → 0.0.188

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 (838) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/demo-memory/src/index.js +1 -0
  5. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -3
  6. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
  7. package/dist/extensions/telegram/src/draft-stream.d.ts +0 -4
  8. package/dist/extensions/telegram/src/draft-stream.js +1 -53
  9. package/dist/extensions/telegram/xopc.extension.json +1 -1
  10. package/dist/gateway/static/root/assets/{activity-store-DFKtQDgE.js → activity-store--QoUGhiS.js} +1 -1
  11. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CcTvB_4W.js → agent-avatar-dicebear-B0yweLNQ.js} +1 -1
  12. package/dist/gateway/static/root/assets/agents-C6OV-gMm.js +2 -0
  13. package/dist/gateway/static/root/assets/{api-CUClAvuL.js → api-5laWqfiE.js} +1 -1
  14. package/dist/gateway/static/root/assets/{app-management-settings-panel-Ib-cWKHM.js → app-management-settings-panel-BXJ8Jiv_.js} +1 -1
  15. package/dist/gateway/static/root/assets/{appearance-settings-CRSN8WuA.js → appearance-settings-DG9n9D1M.js} +1 -1
  16. package/dist/gateway/static/root/assets/apps-page-Ci14lDeO.js +1 -0
  17. package/dist/gateway/static/root/assets/{archive-plugin-BBF9zspN.js → archive-plugin-Ceh5qrZf.js} +1 -1
  18. package/dist/gateway/static/root/assets/{attachment-load-D3QQfA7w.js → attachment-load-jFW7uYf7.js} +1 -1
  19. package/dist/gateway/static/root/assets/automations-page-Q1xmb4Rh.js +6 -0
  20. package/dist/gateway/static/root/assets/{binary-plugins-D78XOjJ3.js → binary-plugins-XDlkI1r4.js} +1 -1
  21. package/dist/gateway/static/root/assets/{block-editor-D_VVXlYX.js → block-editor-kyKc2IhE.js} +46 -46
  22. package/dist/gateway/static/root/assets/browser-settings-page-DbowrHXD.js +8 -0
  23. package/dist/gateway/static/root/assets/browser-workflow-inputs-BJa5Iz_v.js +1 -0
  24. package/dist/gateway/static/root/assets/{browser-workflows-page-58DBMXgG.js → browser-workflows-page-CTQQOsn5.js} +2 -2
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-DoZPFdKF.js +7 -0
  26. package/dist/gateway/static/root/assets/capability-presets-api-Dn-7MMEo.js +1 -0
  27. package/dist/gateway/static/root/assets/capability-presets-settings-panel-Bt8Hnx0h.js +1 -0
  28. package/dist/gateway/static/root/assets/{channel-recipient-api-DYtoNV5A.js → channel-recipient-api-BgIkWq01.js} +1 -1
  29. package/dist/gateway/static/root/assets/channels-settings-Bpsebsru.js +1 -0
  30. package/dist/gateway/static/root/assets/channels-status-swr-DFmdYRE5.js +1 -0
  31. package/dist/gateway/static/root/assets/{connector-logo-CxIXnifA.js → connector-logo-TRr9ybf6.js} +1 -1
  32. package/dist/gateway/static/root/assets/connectors-page-Tg5kl22i.js +2 -0
  33. package/dist/gateway/static/root/assets/desktop-pet-CSwd00CV.js +1 -0
  34. package/dist/gateway/static/root/assets/{desktop-pet-settings-BOIp4q0Z.js → desktop-pet-settings-CuNQvHGu.js} +1 -1
  35. package/dist/gateway/static/root/assets/{directory-picker-path-field-C8_lsW6S.js → directory-picker-path-field-ct0n5Rje.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-debug-page-CMNnSJP6.js → extension-debug-page-BeRBuMUU.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-page-t0pJqLvM.js → extension-page-DbK-Cwao.js} +1 -1
  38. package/dist/gateway/static/root/assets/{extension-settings-page-aiR-tKnW.js → extension-settings-page-C9ag5tb5.js} +1 -1
  39. package/dist/gateway/static/root/assets/{gateway-config-api-CkyQBD6r.js → gateway-config-api-CC7EvEFp.js} +1 -1
  40. package/dist/gateway/static/root/assets/{gateway-settings-BIZfAgfB.js → gateway-settings-9g8uIry9.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-startup-retry-CSU7UvzG.js → gateway-startup-retry-B2DmdlwO.js} +1 -1
  42. package/dist/gateway/static/root/assets/heartbeat-settings-fl1oC_-5.js +1 -0
  43. package/dist/gateway/static/root/assets/home-page-Bao9jq_z.js +3 -0
  44. package/dist/gateway/static/root/assets/{image-generation-api-BR6Kb77X.js → image-generation-api-GMTaS6eI.js} +1 -1
  45. package/dist/gateway/static/root/assets/index-Cl5n1f_U.css +1 -0
  46. package/dist/gateway/static/root/assets/index-OJgiMh07.js +223 -0
  47. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D76uYKeQ.js → keyboard-shortcuts-settings-DhGYddbI.js} +1 -1
  48. package/dist/gateway/static/root/assets/local-app-workbench-page-B69NvtvH.js +2 -0
  49. package/dist/gateway/static/root/assets/{local-apps-page-BsLnojTh.js → local-apps-page-CmnrBmWi.js} +1 -1
  50. package/dist/gateway/static/root/assets/{locale-store-BNC8HUCI.js → locale-store-D6hs74o5.js} +1 -1
  51. package/dist/gateway/static/root/assets/logs-page-Cq3cABqg.js +7 -0
  52. package/dist/gateway/static/root/assets/{markdown-split-D6smTQWD.js → markdown-split-CZaBPOVn.js} +1 -1
  53. package/dist/gateway/static/root/assets/{media-plugins-D1TmMF0A.js → media-plugins-CiKvSgCv.js} +1 -1
  54. package/dist/gateway/static/root/assets/messages-D02NNLCZ.js +3 -0
  55. package/dist/gateway/static/root/assets/{notes-page-Vt-diFf0.js → notes-page-Bisbzqlz.js} +1 -1
  56. package/dist/gateway/static/root/assets/notes-workbench-BOZfJFhE.js +4 -0
  57. package/dist/gateway/static/root/assets/{page-tabs-BnSzIjH0.js → page-tabs-BxlwhAbH.js} +1 -1
  58. package/dist/gateway/static/root/assets/{preview-open-alternatives-CF12Eqi4.js → preview-open-alternatives-RM8wXxfT.js} +1 -1
  59. package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +1 -0
  60. package/dist/gateway/static/root/assets/{product-open-page-Du0TE_CU.js → product-open-page-DdBlibek.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-TSKFb2tN.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-BokeBrTT.js +1 -0
  63. package/dist/gateway/static/root/assets/remote-access-hub-C56anxCX.js +1 -0
  64. package/dist/gateway/static/root/assets/{schema-form-BKvpxqof.js → schema-form-BDKbpmXv.js} +1 -1
  65. package/dist/gateway/static/root/assets/sessions-page-C7TQADrD.js +1 -0
  66. package/dist/gateway/static/root/assets/settings-advanced-gate-BDOPKeAX.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-form-section-kt6GIS32.js → settings-form-section-zxo5ZGOu.js} +1 -1
  68. package/dist/gateway/static/root/assets/{settings-loading-skeleton-85eUPcKz.js → settings-loading-skeleton-DgIp8_S6.js} +1 -1
  69. package/dist/gateway/static/root/assets/settings-page-BUPSIa9P.js +1 -0
  70. package/dist/gateway/static/root/assets/{settings-page-layout-CkkCee_x.js → settings-page-layout-97LmwrzC.js} +1 -1
  71. package/dist/gateway/static/root/assets/setup-status-panel-BRg766eW.js +1 -0
  72. package/dist/gateway/static/root/assets/{share-preview-page-BtLEstaI.js → share-preview-page-BH7i3g1S.js} +1 -1
  73. package/dist/gateway/static/root/assets/shares-settings-DhEAviQ_.js +1 -0
  74. package/dist/gateway/static/root/assets/skill-reload-api-Ct7AV8ls.js +1 -0
  75. package/dist/gateway/static/root/assets/skills-page-DoVuprZm.js +2 -0
  76. package/dist/gateway/static/root/assets/{skills-page.utils-C2SHvq8V.js → skills-page.utils-s-a5WV9j.js} +1 -1
  77. package/dist/gateway/static/root/assets/system-settings-panel-BxjeMT5k.js +1 -0
  78. package/dist/gateway/static/root/assets/task-detail-page-BahycnfW.js +1 -0
  79. package/dist/gateway/static/root/assets/{theme-store-ClDa_Bci.js → theme-store-BRxdsmic.js} +1 -1
  80. package/dist/gateway/static/root/assets/time-picker-BGk_Tbsj.js +1 -0
  81. package/dist/gateway/static/root/assets/{typed-models-lib-GsmwmB40.js → typed-models-lib-39MjwPSq.js} +1 -1
  82. package/dist/gateway/static/root/assets/use-save-bar-registration-5aVSjTjO.js +1 -0
  83. package/dist/gateway/static/root/assets/user-context-page-B9K41qmy.js +1 -0
  84. package/dist/gateway/static/root/assets/{voice-api-key-field-Blaxsbb3.js → voice-api-key-field-XU-7sBSg.js} +1 -1
  85. package/dist/gateway/static/root/assets/work-discovery-overlay-CJqu8UHq.js +1 -0
  86. package/dist/gateway/static/root/assets/work-discovery-page-BBVnRHju.js +1 -0
  87. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CTG4RpRE.js → workflow-run-setup-panel-DXtg8Qxl.js} +2 -2
  88. package/dist/gateway/static/root/assets/workflows-page-Bs_tYfst.js +11 -0
  89. package/dist/gateway/static/root/index.html +8 -8
  90. package/dist/package.js +1 -1
  91. package/dist/packages/gateway-contract/src/product-delivery.js +1 -3
  92. package/dist/packages/gateway-contract/src/project-monitoring.js +31 -0
  93. package/dist/packages/gateway-contract/src/task-lifecycle.js +67 -0
  94. package/dist/packages/gateway-contract/src/task-runs.js +80 -0
  95. package/dist/packages/gateway-contract/src/tasks.js +353 -0
  96. package/dist/packages/gateway-contract/src/tool-activity.js +223 -0
  97. package/dist/src/activity/types.d.ts +2 -2
  98. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  99. package/dist/src/agent/agent-manager.d.ts +3 -3
  100. package/dist/src/agent/agent-manager.js +25 -30
  101. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  102. package/dist/src/agent/child-agent-factory.d.ts +1 -2
  103. package/dist/src/agent/child-agent-factory.js +4 -10
  104. package/dist/src/agent/code-intelligence/binary.js +1 -1
  105. package/dist/src/agent/context/execution-scope.d.ts +2 -2
  106. package/dist/src/agent/context/execution-scope.js +17 -20
  107. package/dist/src/agent/context/project-context.d.ts +6 -2
  108. package/dist/src/agent/context/project-context.js +17 -25
  109. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  110. package/dist/src/agent/embedded/model-runtime.js +1 -1
  111. package/dist/src/agent/embedded/run-for-session.d.ts +0 -2
  112. package/dist/src/agent/embedded/run-for-session.js +99 -112
  113. package/dist/src/agent/embedded/run-turn.js +2 -0
  114. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
  115. package/dist/src/agent/embedded/session-tool-result-guard.js +16 -4
  116. package/dist/src/agent/external-tools/composio-provider.d.ts +29 -0
  117. package/dist/src/agent/external-tools/composio-provider.js +307 -0
  118. package/dist/src/agent/external-tools/extension-provider.d.ts +20 -0
  119. package/dist/src/agent/external-tools/extension-provider.js +68 -0
  120. package/dist/src/agent/external-tools/gateway-tools.d.ts +8 -0
  121. package/dist/src/agent/external-tools/gateway-tools.js +89 -0
  122. package/dist/src/agent/external-tools/index.d.ts +24 -0
  123. package/dist/src/agent/external-tools/index.js +40 -0
  124. package/dist/src/agent/external-tools/mcp-provider.d.ts +29 -0
  125. package/dist/src/agent/external-tools/mcp-provider.js +118 -0
  126. package/dist/src/agent/external-tools/memory-provider.d.ts +21 -0
  127. package/dist/src/agent/external-tools/memory-provider.js +56 -0
  128. package/dist/src/agent/external-tools/refs.d.ts +5 -0
  129. package/dist/src/agent/external-tools/refs.js +18 -0
  130. package/dist/src/agent/external-tools/service.d.ts +26 -0
  131. package/dist/src/agent/external-tools/service.js +117 -0
  132. package/dist/src/agent/external-tools/types.d.ts +28 -0
  133. package/dist/src/agent/external-tools/types.js +9 -0
  134. package/dist/src/agent/image/tool-model-config.js +1 -1
  135. package/dist/src/agent/inbound/inbound-loop.d.ts +0 -2
  136. package/dist/src/agent/inbound/inbound-loop.js +1 -4
  137. package/dist/src/agent/inbound/turn-dispatcher.js +1 -1
  138. package/dist/src/agent/ipc/inbox.js +1 -1
  139. package/dist/src/agent/mcp/{bundle-mcp-materialize.d.ts → bundle-mcp-gateway.d.ts} +1 -19
  140. package/dist/src/agent/mcp/bundle-mcp-gateway.js +60 -0
  141. package/dist/src/agent/mcp/bundle-mcp-names.d.ts +0 -8
  142. package/dist/src/agent/mcp/bundle-mcp-names.js +2 -29
  143. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +5 -10
  144. package/dist/src/agent/mcp/bundle-mcp-policy.js +6 -17
  145. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  146. package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +1 -2
  147. package/dist/src/agent/mcp/bundle-mcp-tools.js +1 -2
  148. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +0 -5
  149. package/dist/src/agent/mcp/index.d.ts +0 -2
  150. package/dist/src/agent/mcp/index.js +2 -5
  151. package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
  152. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  153. package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
  154. package/dist/src/agent/memory/builtin-provider.js +75 -229
  155. package/dist/src/agent/memory/compaction.js +1 -1
  156. package/dist/src/agent/memory/context/planner.d.ts +4 -0
  157. package/dist/src/agent/memory/context/planner.js +53 -17
  158. package/dist/src/agent/memory/context/types.d.ts +6 -0
  159. package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
  160. package/dist/src/agent/memory/create-memory-manager.js +4 -4
  161. package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
  162. package/dist/src/agent/memory/dreaming/config.js +47 -40
  163. package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
  164. package/dist/src/agent/memory/dreaming/constants.js +6 -24
  165. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
  166. package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
  167. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
  168. package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
  169. package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
  170. package/dist/src/agent/memory/dreaming/preview.js +34 -77
  171. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
  172. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
  173. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
  174. package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
  175. package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
  176. package/dist/src/agent/memory/dreaming/runner.js +78 -0
  177. package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
  178. package/dist/src/agent/memory/dreaming/schedule.js +38 -0
  179. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
  180. package/dist/src/agent/memory/dreaming/scope.js +21 -13
  181. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
  182. package/dist/src/agent/memory/dreaming/utils.js +4 -112
  183. package/dist/src/agent/memory/index.d.ts +1 -3
  184. package/dist/src/agent/memory/index.js +2 -3
  185. package/dist/src/agent/memory/manager.d.ts +5 -6
  186. package/dist/src/agent/memory/manager.js +6 -29
  187. package/dist/src/agent/memory/memory-config.d.ts +1 -6
  188. package/dist/src/agent/memory/memory-config.js +2 -23
  189. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  190. package/dist/src/agent/memory/types.d.ts +7 -48
  191. package/dist/src/agent/memory/understanding/service.js +1 -2
  192. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  193. package/dist/src/agent/memory/user-context-coordinator.js +32 -14
  194. package/dist/src/agent/messaging/command-handler.d.ts +1 -9
  195. package/dist/src/agent/messaging/command-handler.js +0 -8
  196. package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
  197. package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
  198. package/dist/src/agent/messaging/stream-manager.d.ts +2 -14
  199. package/dist/src/agent/messaging/stream-manager.js +0 -12
  200. package/dist/src/agent/middleware/index.d.ts +1 -1
  201. package/dist/src/agent/middleware/self-verify.d.ts +2 -2
  202. package/dist/src/agent/middleware/self-verify.js +7 -7
  203. package/dist/src/agent/orchestration/agent-event-handler.d.ts +1 -3
  204. package/dist/src/agent/orchestration/agent-event-handler.js +0 -36
  205. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -5
  206. package/dist/src/agent/orchestration/agent-orchestrator.js +16 -71
  207. package/dist/src/agent/prompt/response-language.d.ts +3 -0
  208. package/dist/src/agent/prompt/response-language.js +11 -0
  209. package/dist/src/agent/prompt/sections/behavior.js +8 -6
  210. package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
  211. package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
  212. package/dist/src/agent/prompt/sections/response-language.js +13 -0
  213. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  214. package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
  215. package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
  216. package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
  217. package/dist/src/agent/prompt/subagent-context.js +1 -0
  218. package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
  219. package/dist/src/agent/prompt/system-prompt.js +10 -2
  220. package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -2
  221. package/dist/src/agent/service/direct-turn-helpers.js +8 -5
  222. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  223. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  224. package/dist/src/agent/service.d.ts +6 -12
  225. package/dist/src/agent/service.js +31 -53
  226. package/dist/src/agent/service.types.d.ts +2 -18
  227. package/dist/src/agent/session/index.d.ts +1 -1
  228. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  229. package/dist/src/agent/session/session-config-service.js +14 -0
  230. package/dist/src/agent/session/session-inspector.js +1 -1
  231. package/dist/src/agent/session/session-state-bag.d.ts +8 -8
  232. package/dist/src/agent/session/session-state-bag.js +10 -10
  233. package/dist/src/agent/skills/hub-lock.js +1 -1
  234. package/dist/src/agent/skills/hub-pull.js +1 -1
  235. package/dist/src/agent/source-context/types.d.ts +1 -1
  236. package/dist/src/agent/source-context/types.js +1 -1
  237. package/dist/src/agent/starter-agents.js +3 -3
  238. package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
  239. package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
  240. package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
  241. package/dist/src/agent/tasks/task-judge-service.js +183 -0
  242. package/dist/src/agent/tool-manuals/index.js +1 -1
  243. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  244. package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
  245. package/dist/src/agent/tools/apply-patch.d.ts +1 -5
  246. package/dist/src/agent/tools/apply-patch.js +1 -12
  247. package/dist/src/agent/tools/clarify-tool.js +1 -1
  248. package/dist/src/agent/tools/delegate-tool.js +9 -5
  249. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
  250. package/dist/src/agent/tools/dreaming-tool.js +48 -80
  251. package/dist/src/agent/tools/exec-command.d.ts +0 -2
  252. package/dist/src/agent/tools/exec-command.js +2 -19
  253. package/dist/src/agent/tools/executor.js +1 -1
  254. package/dist/src/agent/tools/factory.d.ts +4 -5
  255. package/dist/src/agent/tools/factory.js +24 -51
  256. package/dist/src/agent/tools/index.d.ts +0 -3
  257. package/dist/src/agent/tools/index.js +1 -4
  258. package/dist/src/agent/tools/managed-job-tool.js +1 -1
  259. package/dist/src/agent/tools/memory-tool.d.ts +0 -3
  260. package/dist/src/agent/tools/memory-tool.js +14 -36
  261. package/dist/src/agent/tools/tool-manual-tool.js +1 -1
  262. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  263. package/dist/src/agent/tools/workflow-tool.js +4 -4
  264. package/dist/src/agent/tools/write.d.ts +0 -2
  265. package/dist/src/agent/tools/write.js +0 -11
  266. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
  267. package/dist/src/agent/tools/xopc-use-tool.js +987 -143
  268. package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
  269. package/dist/src/agent/workflow/builtins/index.js +2 -2
  270. package/dist/src/agent/workflow/index.js +2 -2
  271. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  272. package/dist/src/agent/workflow/workflow-child-tools.js +7 -4
  273. package/dist/src/agent/workspace-runtime/registry.d.ts +2 -4
  274. package/dist/src/agent/workspace-runtime/registry.js +1 -2
  275. package/dist/src/agent-manifest/index.js +3 -3
  276. package/dist/src/agent-manifest/resolver.d.ts +20 -1
  277. package/dist/src/agent-manifest/resolver.js +47 -20
  278. package/dist/src/agent-manifest/schema.d.ts +128 -52
  279. package/dist/src/agent-manifest/schema.js +46 -8
  280. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  281. package/dist/src/ai-assist/text-assist.js +4 -4
  282. package/dist/src/auth/credentials.js +2 -2
  283. package/dist/src/auth/profiles/store.js +1 -1
  284. package/dist/src/auth/sync-provider-auth.js +2 -2
  285. package/dist/src/automations/domain/defaults.js +1 -1
  286. package/dist/src/automations/domain/types.d.ts +15 -1
  287. package/dist/src/automations/domain/validation.d.ts +336 -12
  288. package/dist/src/automations/domain/validation.js +6 -0
  289. package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
  290. package/dist/src/automations/draft/automation-draft-validator.d.ts +62 -1
  291. package/dist/src/automations/draft/automation-draft-validator.js +1 -0
  292. package/dist/src/automations/index.js +1 -1
  293. package/dist/src/automations/service/action-executor.d.ts +2 -2
  294. package/dist/src/automations/service/action-executor.js +21 -1
  295. package/dist/src/automations/service/automation-service.js +21 -21
  296. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  297. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  298. package/dist/src/channels/channel-domain.d.ts +0 -4
  299. package/dist/src/channels/plugin-types.d.ts +0 -2
  300. package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
  301. package/dist/src/chat-commands/builtins/understanding.js +91 -0
  302. package/dist/src/chat-commands/context.d.ts +0 -3
  303. package/dist/src/chat-commands/context.js +0 -2
  304. package/dist/src/chat-commands/index.d.ts +1 -2
  305. package/dist/src/chat-commands/index.js +3 -5
  306. package/dist/src/chat-commands/types.d.ts +0 -3
  307. package/dist/src/cli/command-catalog.js +0 -43
  308. package/dist/src/cli/command-loaders.js +0 -1
  309. package/dist/src/cli/command-manifest.js +0 -4
  310. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  311. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  312. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  313. package/dist/src/cli/commands/gateway/lifecycle-core.js +1 -1
  314. package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
  315. package/dist/src/cli/commands/gateway/restart-health.js +3 -3
  316. package/dist/src/cli/commands/gateway/service.js +4 -4
  317. package/dist/src/cli/commands/models.js +1 -1
  318. package/dist/src/cli/commands/onboard/gateway.js +1 -1
  319. package/dist/src/cli/commands/project.js +12 -33
  320. package/dist/src/cli/commands/providers.d.ts +4 -4
  321. package/dist/src/cli/commands/providers.js +16 -16
  322. package/dist/src/cli/commands/search.js +7 -7
  323. package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
  324. package/dist/src/cli/commands/setup-shared/index.js +2 -2
  325. package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
  326. package/dist/src/cli/commands/setup-shared/output.js +26 -26
  327. package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
  328. package/dist/src/cli/commands/setup-shared/runner.js +9 -9
  329. package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
  330. package/dist/src/cli/commands/skills.d.ts +7 -0
  331. package/dist/src/cli/commands/skills.js +16 -16
  332. package/dist/src/cli/commands/update.js +1 -1
  333. package/dist/src/cli/commands/voice.d.ts +1 -1
  334. package/dist/src/cli/commands/voice.js +6 -6
  335. package/dist/src/cli/templates.js +1 -1
  336. package/dist/src/commands/agents.config.js +2 -18
  337. package/dist/src/config/agent-profile.d.ts +1 -1
  338. package/dist/src/config/agent-profile.js +1 -1
  339. package/dist/src/config/index.js +7 -7
  340. package/dist/src/config/loader.js +1 -1
  341. package/dist/src/config/models-json.js +1 -1
  342. package/dist/src/config/paths.d.ts +0 -3
  343. package/dist/src/config/paths.js +2 -7
  344. package/dist/src/config/schema.d.ts +160 -258
  345. package/dist/src/config/schema.js +8 -114
  346. package/dist/src/config/web-patch.d.ts +0 -29
  347. package/dist/src/config/web-patch.js +2 -69
  348. package/dist/src/connectors/composio-catalog.js +7 -20
  349. package/dist/src/connectors/composio-sessions.js +14 -4
  350. package/dist/src/connectors/composio.d.ts +7 -2
  351. package/dist/src/connectors/composio.js +49 -40
  352. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  353. package/dist/src/connectors/connected-source-normalizers.js +5 -5
  354. package/dist/src/connectors/connector-identity.d.ts +2 -0
  355. package/dist/src/connectors/connector-identity.js +64 -1
  356. package/dist/src/connectors/health.js +1 -1
  357. package/dist/src/connectors/learning-coordinator.js +34 -15
  358. package/dist/src/connectors/learning-recipes.d.ts +2 -0
  359. package/dist/src/connectors/learning-recipes.js +11 -1
  360. package/dist/src/connectors/source-change-publisher.js +5 -4
  361. package/dist/src/connectors/types.d.ts +16 -0
  362. package/dist/src/daemon/launchd.js +2 -2
  363. package/dist/src/daemon/schtasks.js +1 -1
  364. package/dist/src/daemon/service.js +3 -3
  365. package/dist/src/daemon/systemd.js +1 -1
  366. package/dist/src/daemon/types.d.ts +5 -5
  367. package/dist/src/discussions/analyzer.d.ts +6 -6
  368. package/dist/src/discussions/analyzer.js +32 -22
  369. package/dist/src/discussions/index.d.ts +3 -2
  370. package/dist/src/discussions/index.js +5 -4
  371. package/dist/src/discussions/live-worker.d.ts +5 -3
  372. package/dist/src/discussions/live-worker.js +24 -12
  373. package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
  374. package/dist/src/discussions/organizer-worker.js +58 -0
  375. package/dist/src/discussions/organizer.d.ts +22 -0
  376. package/dist/src/discussions/organizer.js +92 -0
  377. package/dist/src/discussions/repository.d.ts +16 -5
  378. package/dist/src/discussions/repository.js +159 -135
  379. package/dist/src/discussions/sealer.d.ts +25 -0
  380. package/dist/src/discussions/sealer.js +116 -0
  381. package/dist/src/discussions/service.d.ts +2 -1
  382. package/dist/src/discussions/service.js +70 -60
  383. package/dist/src/discussions/transcript.js +1 -1
  384. package/dist/src/discussions/types.d.ts +45 -20
  385. package/dist/src/discussions/types.js +4 -2
  386. package/dist/src/extensions/extension-registry-impl.d.ts +3 -1
  387. package/dist/src/extensions/extension-registry-impl.js +7 -1
  388. package/dist/src/extensions/loader.js +1 -1
  389. package/dist/src/extensions/lockfile.js +1 -1
  390. package/dist/src/extensions/types/core.d.ts +5 -4
  391. package/dist/src/extensions/types/tui.d.ts +2 -2
  392. package/dist/src/extensions/update.d.ts +3 -3
  393. package/dist/src/extensions/update.js +14 -14
  394. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  395. package/dist/src/gateway/agent-builtin-tools.js +5 -3
  396. package/dist/src/gateway/agent-run-relay.d.ts +1 -1
  397. package/dist/src/gateway/agents-admin.js +17 -19
  398. package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
  399. package/dist/src/gateway/capability-presets-admin.js +59 -2
  400. package/dist/src/gateway/chat-limits.d.ts +6 -2
  401. package/dist/src/gateway/chat-limits.js +17 -3
  402. package/dist/src/gateway/chat-stream/mapper.js +16 -1
  403. package/dist/src/gateway/chat-stream/protocol.d.ts +4 -0
  404. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
  405. package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
  406. package/dist/src/gateway/file-path-classifier.js +1 -1
  407. package/dist/src/gateway/file-reference-errors.d.ts +6 -0
  408. package/dist/src/gateway/file-reference-errors.js +21 -0
  409. package/dist/src/gateway/hono/app.js +9 -10
  410. package/dist/src/gateway/hono/index.d.ts +1 -1
  411. package/dist/src/gateway/hono/index.js +2 -2
  412. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
  413. package/dist/src/gateway/hono/lib/config-payload.js +7 -5
  414. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  415. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
  416. package/dist/src/gateway/hono/routes/activity.js +1 -2
  417. package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
  418. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  419. package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
  420. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  421. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  422. package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -7
  423. package/dist/src/gateway/hono/routes/connectors.js +35 -30
  424. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  425. package/dist/src/gateway/hono/routes/discussions.js +13 -3
  426. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  427. package/dist/src/gateway/hono/routes/home.js +2 -2
  428. package/dist/src/gateway/hono/routes/index.js +2 -4
  429. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
  430. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  431. package/dist/src/gateway/hono/routes/media.js +9 -3
  432. package/dist/src/gateway/hono/routes/memory.js +38 -113
  433. package/dist/src/gateway/hono/routes/models.js +1 -1
  434. package/dist/src/gateway/hono/routes/projects.js +254 -601
  435. package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
  436. package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
  437. package/dist/src/gateway/hono/routes/tasks.js +343 -0
  438. package/dist/src/gateway/hono/routes/workflows.js +8 -9
  439. package/dist/src/gateway/hono/routes/workspace.js +34 -13
  440. package/dist/src/gateway/hono/routes/you.d.ts +1 -1
  441. package/dist/src/gateway/hono/routes/you.js +252 -80
  442. package/dist/src/gateway/hono/sse.d.ts +1 -16
  443. package/dist/src/gateway/hono/sse.js +4 -161
  444. package/dist/src/gateway/index.js +2 -2
  445. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  446. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  447. package/dist/src/gateway/security/csp.d.ts +2 -0
  448. package/dist/src/gateway/security/csp.js +4 -0
  449. package/dist/src/gateway/service/agent-runner.d.ts +32 -13
  450. package/dist/src/gateway/service/agent-runner.js +97 -46
  451. package/dist/src/gateway/service/config-coordinator.js +2 -2
  452. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
  453. package/dist/src/gateway/service/run-gateway-agent.js +31 -43
  454. package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
  455. package/dist/src/gateway/service/session-input-coordinator.js +183 -0
  456. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  457. package/dist/src/gateway/service.d.ts +28 -16
  458. package/dist/src/gateway/service.js +154 -137
  459. package/dist/src/gateway/session-reset-service.js +6 -6
  460. package/dist/src/gateway/user-turn-input.d.ts +0 -1
  461. package/dist/src/i18n/index.d.ts +0 -1
  462. package/dist/src/i18n/index.js +1 -2
  463. package/dist/src/i18n/language-consistency.d.ts +10 -0
  464. package/dist/src/i18n/language-consistency.js +34 -0
  465. package/dist/src/i18n/response-language.d.ts +8 -0
  466. package/dist/src/i18n/response-language.js +17 -0
  467. package/dist/src/i18n/share-tool-bundle.js +2 -2
  468. package/dist/src/infra/update-runner.js +1 -1
  469. package/dist/src/mcp/channel-bridge.js +5 -3
  470. package/dist/src/media/store.js +1 -1
  471. package/dist/src/media/types.d.ts +1 -1
  472. package/dist/src/media/uri.js +1 -2
  473. package/dist/src/media-understanding/runner.d.ts +1 -1
  474. package/dist/src/media-understanding/runner.js +9 -9
  475. package/dist/src/media-understanding/types.d.ts +4 -4
  476. package/dist/src/mobile/notification-service.js +16 -21
  477. package/dist/src/mobile/notification-types.d.ts +2 -2
  478. package/dist/src/notes/types.d.ts +0 -1
  479. package/dist/src/proactive/events/product-event-bridge.js +17 -14
  480. package/dist/src/proactive/execution/context.js +45 -28
  481. package/dist/src/proactive/execution/insight.js +1 -1
  482. package/dist/src/proactive/temporal/worker.js +2 -2
  483. package/dist/src/projects/index.d.ts +0 -1
  484. package/dist/src/projects/index.js +1 -2
  485. package/dist/src/projects/project-loop.d.ts +16 -8
  486. package/dist/src/projects/project-loop.js +41 -48
  487. package/dist/src/projects/project-service.d.ts +14 -4
  488. package/dist/src/projects/project-service.js +18 -10
  489. package/dist/src/projects/project-store.d.ts +36 -3
  490. package/dist/src/projects/project-store.js +116 -14
  491. package/dist/src/projects/types.d.ts +50 -3
  492. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  493. package/dist/src/providers/index.js +2 -2
  494. package/dist/src/providers/model-registry.js +1 -1
  495. package/dist/src/providers/model-response.d.ts +4 -0
  496. package/dist/src/providers/model-response.js +28 -0
  497. package/dist/src/providers/register-runtime-providers.js +1 -1
  498. package/dist/src/session/config-types.d.ts +3 -0
  499. package/dist/src/session/index.d.ts +0 -1
  500. package/dist/src/session/index.js +1 -2
  501. package/dist/src/session/init-session-turn.js +6 -6
  502. package/dist/src/session/store.js +4 -4
  503. package/dist/src/session/types.d.ts +1 -6
  504. package/dist/src/share/share-zip.js +1 -1
  505. package/dist/src/share/site-proxy.js +1 -1
  506. package/dist/src/storage/sqlite/config-repository.js +7 -4
  507. package/dist/src/storage/sqlite/connection.js +1 -1
  508. package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
  509. package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
  510. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
  511. package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
  512. package/dist/src/storage/sqlite/connector-repository.js +12 -3
  513. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
  514. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
  515. package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
  516. package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
  517. package/dist/src/storage/sqlite/index.d.ts +6 -4
  518. package/dist/src/storage/sqlite/index.js +7 -5
  519. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
  520. package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
  521. package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
  522. package/dist/src/storage/sqlite/memory-records-repository.js +112 -139
  523. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
  524. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
  525. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
  526. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
  527. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
  528. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
  529. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
  530. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
  531. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
  532. package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
  533. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
  534. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
  535. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
  536. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
  537. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
  538. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
  539. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
  540. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
  541. package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +18 -0
  542. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  543. package/dist/src/storage/sqlite/migrations/runner.js +37 -5
  544. package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
  545. package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
  546. package/dist/src/storage/sqlite/migrations/types.ts +2 -0
  547. package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
  548. package/dist/src/storage/sqlite/row-mappers.js +2 -2
  549. package/dist/src/storage/sqlite/schema.d.ts +3 -1
  550. package/dist/src/storage/sqlite/schema.js +5 -2
  551. package/dist/src/storage/sqlite/schema.sql +76 -61
  552. package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
  553. package/dist/src/storage/sqlite/session-input-repository.js +147 -0
  554. package/dist/src/storage/sqlite/session-repository.js +5 -6
  555. package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
  556. package/dist/src/{work → tasks}/attention-governor.js +3 -4
  557. package/dist/src/tasks/execution-context.d.ts +23 -0
  558. package/dist/src/{work → tasks}/execution-context.js +7 -20
  559. package/dist/src/{work → tasks}/home-query-service.d.ts +16 -28
  560. package/dist/src/{work → tasks}/home-query-service.js +56 -126
  561. package/dist/src/tasks/index.d.ts +20 -0
  562. package/dist/src/tasks/index.js +21 -0
  563. package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
  564. package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
  565. package/dist/src/tasks/project-operating-view-service.js +77 -0
  566. package/dist/src/tasks/task-application-service.d.ts +35 -0
  567. package/dist/src/tasks/task-application-service.js +423 -0
  568. package/dist/src/tasks/task-context-assembler.d.ts +36 -0
  569. package/dist/src/tasks/task-context-assembler.js +125 -0
  570. package/dist/src/tasks/task-context-repository.d.ts +52 -0
  571. package/dist/src/tasks/task-context-repository.js +97 -0
  572. package/dist/src/tasks/task-contract-definition.d.ts +10 -0
  573. package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
  574. package/dist/src/tasks/task-contract-planner.d.ts +17 -0
  575. package/dist/src/tasks/task-contract-planner.js +87 -0
  576. package/dist/src/tasks/task-dependency-service.d.ts +21 -0
  577. package/dist/src/tasks/task-dependency-service.js +81 -0
  578. package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
  579. package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
  580. package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
  581. package/dist/src/tasks/task-read-model-projector.js +93 -0
  582. package/dist/src/tasks/task-repository.d.ts +82 -0
  583. package/dist/src/tasks/task-repository.js +185 -0
  584. package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
  585. package/dist/src/tasks/task-run-coordinator.js +130 -0
  586. package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
  587. package/dist/src/tasks/task-run-dispatcher.js +90 -0
  588. package/dist/src/tasks/task-run-repository.d.ts +102 -0
  589. package/dist/src/tasks/task-run-repository.js +312 -0
  590. package/dist/src/tasks/task-signal-service.d.ts +8 -0
  591. package/dist/src/tasks/task-signal-service.js +72 -0
  592. package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
  593. package/dist/src/tasks/task-value-metrics-service.js +78 -0
  594. package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
  595. package/dist/src/tasks/task-workflow-coordinator.js +54 -0
  596. package/dist/src/tui/backends/embedded-backend.d.ts +11 -1
  597. package/dist/src/tui/backends/embedded-backend.js +29 -3
  598. package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
  599. package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
  600. package/dist/src/tui/components/settings-selector.js +0 -20
  601. package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
  602. package/dist/src/tui/components/tui-bottom-bar.js +4 -9
  603. package/dist/src/tui/extension-host/runtime-context.js +1 -1
  604. package/dist/src/tui/tool-summary.d.ts +1 -2
  605. package/dist/src/tui/tool-summary.js +2 -18
  606. package/dist/src/tui/tui-backend.d.ts +13 -1
  607. package/dist/src/tui/tui-backend.js +10 -1
  608. package/dist/src/tui/tui-command-formatters.js +1 -2
  609. package/dist/src/tui/tui-commands.js +8 -19
  610. package/dist/src/tui/tui-session-actions.js +0 -2
  611. package/dist/src/tui/tui-settings.d.ts +0 -6
  612. package/dist/src/tui/tui-settings.js +0 -10
  613. package/dist/src/tui/tui-startup-resources.js +1 -1
  614. package/dist/src/tui/tui-types.d.ts +1 -4
  615. package/dist/src/tui/tui-types.js +1 -2
  616. package/dist/src/tui/tui.js +90 -73
  617. package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
  618. package/dist/src/tui/xopc-tui-keybindings.js +0 -5
  619. package/dist/src/tunnel/frpc-binary.js +1 -1
  620. package/dist/src/tunnel/frpc-extract.js +1 -1
  621. package/dist/src/user-context/config.d.ts +165 -16
  622. package/dist/src/user-context/config.js +74 -14
  623. package/dist/src/user-context/context-compiler.d.ts +4 -8
  624. package/dist/src/user-context/context-compiler.js +7 -10
  625. package/dist/src/user-context/interaction-state.js +8 -4
  626. package/dist/src/user-context/manual-understanding.d.ts +19 -0
  627. package/dist/src/user-context/manual-understanding.js +69 -0
  628. package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
  629. package/dist/src/user-context/memory-episode-evaluator.js +35 -0
  630. package/dist/src/user-context/memory-readiness.d.ts +33 -0
  631. package/dist/src/user-context/memory-readiness.js +41 -0
  632. package/dist/src/user-context/memory-use-audit.js +3 -2
  633. package/dist/src/user-context/projection.d.ts +14 -0
  634. package/dist/src/user-context/projection.js +15 -3
  635. package/dist/src/user-context/relationship-continuity.js +1 -1
  636. package/dist/src/user-context/runtime.d.ts +0 -2
  637. package/dist/src/user-context/runtime.js +1 -10
  638. package/dist/src/user-context/source-recommendations.d.ts +5 -5
  639. package/dist/src/user-context/source-recommendations.js +9 -8
  640. package/dist/src/voice/local/model-files.js +1 -1
  641. package/dist/src/voice/stt/transcribe-core.js +3 -3
  642. package/dist/src/voice/stt/types.d.ts +2 -2
  643. package/dist/src/voice/tts/speak-core.js +4 -4
  644. package/dist/src/voice/tts/types.d.ts +2 -2
  645. package/dist/src/work-discovery/analyzer.js +5 -5
  646. package/dist/src/work-discovery/service.d.ts +1 -10
  647. package/dist/src/work-discovery/service.js +4 -6
  648. package/dist/src/work-discovery/types.d.ts +1 -1
  649. package/dist/src/workflows/domain/run.d.ts +3 -4
  650. package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
  651. package/dist/src/workflows/index.js +1 -1
  652. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  653. package/dist/src/workflows/service/workflow-run-service.js +105 -35
  654. package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -2
  655. package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
  656. package/dist/src/workflows/store/run-index-store.d.ts +1 -1
  657. package/dist/src/workflows/store/run-index-store.js +10 -8
  658. package/dist/src/workflows/store/run-store.d.ts +1 -1
  659. package/dist/src/workflows/store/run-store.js +2 -2
  660. package/package.json +5 -5
  661. package/dist/gateway/static/root/assets/agents-DgGj9bu6.js +0 -2
  662. package/dist/gateway/static/root/assets/apps-page-B5xahuT-.js +0 -1
  663. package/dist/gateway/static/root/assets/automations-page-BUYrvMmD.js +0 -6
  664. package/dist/gateway/static/root/assets/browser-settings-page-Cjw07q9h.js +0 -8
  665. package/dist/gateway/static/root/assets/browser-workflow-inputs-_gu08MA4.js +0 -1
  666. package/dist/gateway/static/root/assets/capabilities-settings-panel-D_dfVxHY.js +0 -7
  667. package/dist/gateway/static/root/assets/capability-presets-api-DhCn9rPv.js +0 -1
  668. package/dist/gateway/static/root/assets/capability-presets-settings-panel-LWWIYUT7.js +0 -1
  669. package/dist/gateway/static/root/assets/channels-settings-Cyj5OunL.js +0 -1
  670. package/dist/gateway/static/root/assets/channels-status-swr-TEFnV0IG.js +0 -1
  671. package/dist/gateway/static/root/assets/connectors-page-0TobCpBB.js +0 -2
  672. package/dist/gateway/static/root/assets/desktop-pet-CwVSLL6N.js +0 -1
  673. package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
  674. package/dist/gateway/static/root/assets/dreaming-settings-Da9FeWQl.js +0 -3
  675. package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
  676. package/dist/gateway/static/root/assets/goals-settings-Dx9uTyWF.js +0 -1
  677. package/dist/gateway/static/root/assets/heartbeat-settings-Cnr5ORXL.js +0 -1
  678. package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
  679. package/dist/gateway/static/root/assets/index-BA56bQ68.js +0 -224
  680. package/dist/gateway/static/root/assets/local-app-workbench-page-DSUNtLHg.js +0 -2
  681. package/dist/gateway/static/root/assets/logs-page-yI8kpQtO.js +0 -7
  682. package/dist/gateway/static/root/assets/messages-H_iJjnEM.js +0 -3
  683. package/dist/gateway/static/root/assets/notes-workbench-BD297EZt.js +0 -4
  684. package/dist/gateway/static/root/assets/outcome-detail-page-C5i_ZR9a.js +0 -1
  685. package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
  686. package/dist/gateway/static/root/assets/project-detail-page-D1HGz7Dy.js +0 -1
  687. package/dist/gateway/static/root/assets/projects-page-CqP2TnW-.js +0 -1
  688. package/dist/gateway/static/root/assets/remote-access-hub-BXdVJLS3.js +0 -1
  689. package/dist/gateway/static/root/assets/save-bar-controls-B53UNtDM.js +0 -1
  690. package/dist/gateway/static/root/assets/schedule-field-C3dIMN5q.js +0 -1
  691. package/dist/gateway/static/root/assets/sessions-page-CPAwDdl5.js +0 -1
  692. package/dist/gateway/static/root/assets/settings-advanced-gate-C-jGsoft.js +0 -1
  693. package/dist/gateway/static/root/assets/settings-page-Di5x6Xrc.js +0 -1
  694. package/dist/gateway/static/root/assets/setup-status-panel-uxEE6gAB.js +0 -1
  695. package/dist/gateway/static/root/assets/shares-settings-2mcsMWgn.js +0 -1
  696. package/dist/gateway/static/root/assets/skill-reload-api-ocDwsrEt.js +0 -1
  697. package/dist/gateway/static/root/assets/skills-page-9_jfsFU5.js +0 -2
  698. package/dist/gateway/static/root/assets/system-settings-panel-CIJ66cUy.js +0 -1
  699. package/dist/gateway/static/root/assets/time-picker-D0zAsHOo.js +0 -1
  700. package/dist/gateway/static/root/assets/use-channel-catalog-BQz3K7xj.js +0 -1
  701. package/dist/gateway/static/root/assets/user-context-page-Bn4BLg4W.js +0 -1
  702. package/dist/gateway/static/root/assets/work-copy-Cwyan9Sn.js +0 -1
  703. package/dist/gateway/static/root/assets/work-discovery-page-iJ9RBSpu.js +0 -1
  704. package/dist/gateway/static/root/assets/work-item-detail-page-CqTH7PQX.js +0 -1
  705. package/dist/gateway/static/root/assets/work-page-H3m99ccS.js +0 -3
  706. package/dist/gateway/static/root/assets/workflows-page-BxZSKMfv.js +0 -11
  707. package/dist/packages/gateway-contract/src/outcomes.js +0 -137
  708. package/dist/packages/gateway-contract/src/work-intake.js +0 -85
  709. package/dist/src/agent/feedback/feedback-coordinator.d.ts +0 -73
  710. package/dist/src/agent/feedback/feedback-coordinator.js +0 -156
  711. package/dist/src/agent/feedback/index.d.ts +0 -4
  712. package/dist/src/agent/feedback/index.js +0 -2
  713. package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
  714. package/dist/src/agent/goals/checklist-judge.js +0 -237
  715. package/dist/src/agent/goals/checklist-types.d.ts +0 -21
  716. package/dist/src/agent/goals/checklist-types.js +0 -24
  717. package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
  718. package/dist/src/agent/goals/evaluate-turn.js +0 -209
  719. package/dist/src/agent/goals/goal-locale.d.ts +0 -26
  720. package/dist/src/agent/goals/goal-locale.js +0 -61
  721. package/dist/src/agent/goals/judge.d.ts +0 -41
  722. package/dist/src/agent/goals/judge.js +0 -176
  723. package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
  724. package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
  725. package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
  726. package/dist/src/agent/goals/persistent-goal-service.js +0 -128
  727. package/dist/src/agent/goals/post-turn.d.ts +0 -28
  728. package/dist/src/agent/goals/post-turn.js +0 -187
  729. package/dist/src/agent/goals/state.d.ts +0 -46
  730. package/dist/src/agent/goals/state.js +0 -80
  731. package/dist/src/agent/lifecycle/progress.d.ts +0 -90
  732. package/dist/src/agent/lifecycle/progress.js +0 -340
  733. package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -183
  734. package/dist/src/agent/mcp/mcp-tool-meta.d.ts +0 -8
  735. package/dist/src/agent/mcp/mcp-tool-meta.js +0 -13
  736. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.d.ts +0 -14
  737. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -49
  738. package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
  739. package/dist/src/agent/memory/builtin-memory-store.js +0 -315
  740. package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
  741. package/dist/src/agent/memory/dreaming/events.js +0 -42
  742. package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
  743. package/dist/src/agent/memory/dreaming/last-run.js +0 -96
  744. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
  745. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
  746. package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
  747. package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
  748. package/dist/src/agent/prompt/memory/index.d.ts +0 -23
  749. package/dist/src/agent/prompt/memory/index.js +0 -101
  750. package/dist/src/agent/tools/composio-tool.d.ts +0 -21
  751. package/dist/src/agent/tools/composio-tool.js +0 -261
  752. package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
  753. package/dist/src/agent/tools/curated-memory-tool.js +0 -174
  754. package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
  755. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
  756. package/dist/src/agent/tools/goal-tool.d.ts +0 -29
  757. package/dist/src/agent/tools/goal-tool.js +0 -136
  758. package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
  759. package/dist/src/chat-commands/builtins/goal.js +0 -122
  760. package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
  761. package/dist/src/chat-commands/builtins/subgoal.js +0 -117
  762. package/dist/src/cli/commands/goal.d.ts +0 -4
  763. package/dist/src/cli/commands/goal.js +0 -235
  764. package/dist/src/discussions/pipeline.d.ts +0 -33
  765. package/dist/src/discussions/pipeline.js +0 -205
  766. package/dist/src/discussions/worker.js +0 -74
  767. package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
  768. package/dist/src/gateway/hono/routes/dreaming.js +0 -323
  769. package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
  770. package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
  771. package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
  772. package/dist/src/gateway/hono/routes/goals.js +0 -786
  773. package/dist/src/gateway/hono/routes/work.js +0 -207
  774. package/dist/src/goals/goal-notifications.d.ts +0 -31
  775. package/dist/src/goals/goal-notifications.js +0 -157
  776. package/dist/src/goals/goal-queue-store.d.ts +0 -18
  777. package/dist/src/goals/goal-queue-store.js +0 -133
  778. package/dist/src/goals/goal-queue-types.d.ts +0 -42
  779. package/dist/src/goals/goal-queue-types.js +0 -1
  780. package/dist/src/goals/goal-runner.d.ts +0 -17
  781. package/dist/src/goals/goal-runner.js +0 -153
  782. package/dist/src/goals/goal-service.d.ts +0 -87
  783. package/dist/src/goals/goal-service.js +0 -323
  784. package/dist/src/goals/goal-store.d.ts +0 -44
  785. package/dist/src/goals/goal-store.js +0 -472
  786. package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
  787. package/dist/src/goals/goal-workflow-judge.js +0 -145
  788. package/dist/src/goals/index.d.ts +0 -10
  789. package/dist/src/goals/index.js +0 -7
  790. package/dist/src/goals/types.d.ts +0 -136
  791. package/dist/src/goals/types.js +0 -1
  792. package/dist/src/i18n/goals-bundle.d.ts +0 -35
  793. package/dist/src/i18n/goals-bundle.js +0 -61
  794. package/dist/src/i18n/locales/goals.en.js +0 -36
  795. package/dist/src/i18n/locales/goals.zh.js +0 -35
  796. package/dist/src/projects/goal-bind.d.ts +0 -4
  797. package/dist/src/projects/goal-bind.js +0 -38
  798. package/dist/src/session/abort-cutoff.d.ts +0 -6
  799. package/dist/src/session/abort-cutoff.js +0 -8
  800. package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
  801. package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
  802. package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
  803. package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
  804. package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
  805. package/dist/src/tui/tui-follow-up-queue.js +0 -16
  806. package/dist/src/work/execution-context.d.ts +0 -16
  807. package/dist/src/work/index.d.ts +0 -14
  808. package/dist/src/work/index.js +0 -15
  809. package/dist/src/work/outcome-contract-definition.d.ts +0 -8
  810. package/dist/src/work/outcome-execution-service.d.ts +0 -27
  811. package/dist/src/work/outcome-execution-service.js +0 -60
  812. package/dist/src/work/outcome-projection-service.d.ts +0 -7
  813. package/dist/src/work/outcome-projection-service.js +0 -51
  814. package/dist/src/work/outcome-receipt-service.d.ts +0 -13
  815. package/dist/src/work/outcome-receipt-service.js +0 -55
  816. package/dist/src/work/outcome-repository.d.ts +0 -50
  817. package/dist/src/work/outcome-repository.js +0 -112
  818. package/dist/src/work/outcome-run-coordinator.js +0 -117
  819. package/dist/src/work/project-operating-view-service.js +0 -46
  820. package/dist/src/work/work-intake-repository.d.ts +0 -49
  821. package/dist/src/work/work-intake-repository.js +0 -97
  822. package/dist/src/work/work-intake-service.d.ts +0 -26
  823. package/dist/src/work/work-intake-service.js +0 -171
  824. package/dist/src/work/work-value-metrics-service.d.ts +0 -4
  825. package/dist/src/work/work-value-metrics-service.js +0 -88
  826. package/dist/src/work-items/agent-context.d.ts +0 -7
  827. package/dist/src/work-items/agent-context.js +0 -73
  828. package/dist/src/work-items/index.d.ts +0 -5
  829. package/dist/src/work-items/index.js +0 -5
  830. package/dist/src/work-items/types.d.ts +0 -112
  831. package/dist/src/work-items/types.js +0 -1
  832. package/dist/src/work-items/work-item-service.d.ts +0 -36
  833. package/dist/src/work-items/work-item-service.js +0 -281
  834. package/dist/src/work-items/work-item-store.d.ts +0 -22
  835. package/dist/src/work-items/work-item-store.js +0 -313
  836. package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
  837. package/dist/src/work-items/work-item-workflow-judge.js +0 -48
  838. /package/dist/src/{work → tasks}/project-monitoring-service.d.ts +0 -0
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/block-editor-D_VVXlYX.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-BA56bQ68.js","assets/preload-helper-zJ_50EbN.js","assets/Combination-14nmIgxH.js","assets/vendor-react-BOUWij0V.js","assets/dist-CxGUk8J-.js","assets/dist-C230izr8.js","assets/chunk-KS7C4IRE-BMhrPKJC.js","assets/vendor-swr-BIWyz7Rc.js","assets/createLucideIcon-DPHK1VkS.js","assets/check-DUBLcKHA.js","assets/middleware-Pd0e8Igk.js","assets/locale-store-BNC8HUCI.js","assets/messages-H_iJjnEM.js","assets/cn-JdwAhgNB.js","assets/schemas-C6onAggk.js","assets/product-delivery-BVG-eWQO.js","assets/config-reload-event-Bjh2zoKp.js","assets/copy-to-clipboard-HOJ79TWv.js","assets/gateway-startup-retry-CSU7UvzG.js","assets/activity-store-DFKtQDgE.js","assets/theme-store-ClDa_Bci.js","assets/index-B0Tdge_q.css","assets/vendor-codemirror--gTq3YAI.js","assets/with-selector-aYPsXwdl.js","assets/block-editor-D4ZIVQbk.css","assets/markdown-editor-BvUebh3C.js","assets/code-editor-D4_k-6QN.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./preload-helper-zJ_50EbN.js";import{l as a}from"./chunk-KS7C4IRE-BMhrPKJC.js";import{t as o}from"./cn-JdwAhgNB.js";import{t as s}from"./messages-H_iJjnEM.js";import{l as c,n as l}from"./locale-store-BNC8HUCI.js";import{i as u}from"./theme-store-ClDa_Bci.js";import{i as d}from"./vendor-swr-BIWyz7Rc.js";import{$c as f,B as p,Ci as m,Cl as h,Cr as g,Do as _,Du as v,Ei as y,Er as b,Fc as x,Go as S,Gs as C,Ho as w,Hu as T,Ic as E,Iu as D,Js as O,Ko as k,Lc as A,Mu as j,Nc as M,Ps as N,Qn as P,Ru as F,Si as I,Ti as L,Uo as ee,Vc as te,Vo as ne,Wl as R,Wo as re,Xn as z,Xs as ie,Yc as B,Yo as ae,Ys as V,Zn as oe,_ as H,_c as U,_r as W,ac as G,ar as se,as as ce,b as le,bl as ue,br as K,cc as de,cr as fe,dl as pe,dr as q,fr as me,g as he,gl as ge,gr as _e,hr as J,ir as Y,is as ve,iu as ye,jc as be,js as xe,jt as Se,lr as Ce,mr as we,mu as Te,nc as Ee,nl as X,nr as De,or as Oe,pr as ke,ql as Ae,qo as je,ro as Me,rr as Ne,sc as Pe,sr as Fe,tu as Ie,ur as Le,v as Re,vc as ze,vr as Be,wc as Ve,wi as He,wl as Ue,wr as We,xi as Ge,xl as Ke,xr as qe,y as Je,yr as Ye,zc as Xe,zl as Ze,zu as Qe}from"./index-BA56bQ68.js";var Z=n(),Q=e(t(),1),$=r(),$e=(0,Q.createContext)(null);function et(){let e=(0,Z.c)(1),t=(0,Q.useContext)($e);if(!t){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={openImage:tt},e[0]=t):t=e[0],t}return t}function tt(){}function nt(e){let t=(0,Z.c)(22),{children:n,closeLabel:r}=e,i=r===void 0?`Close`:r,[a,s]=(0,Q.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(e,t)=>{s({src:e,alt:t})},t[0]=c):c=t[0];let l=c,u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u={openImage:l},t[1]=u):u=t[1];let d=u,f=a!==null,p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>{e||s(null)},t[2]=p):p=t[2];let m;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(S,{className:`fixed inset-0 z-[70] bg-scrim/90 backdrop-blur-sm`}),t[3]=m):m=t[3];let h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=o(`fixed inset-0 z-[71] flex items-center justify-center p-4 outline-none`,`data-[state=open]:animate-in data-[state=closed]:animate-out`),t[4]=h):h=t[4];let g=a?.alt||`Image preview`,_;t[5]===g?_=t[6]:(_=(0,$.jsx)(je,{className:`sr-only`,children:g}),t[5]=g,t[6]=_);let v;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(N,{className:`size-5`,"aria-hidden":!0}),t[7]=v):v=t[7];let y;t[8]===i?y=t[9]:(y=(0,$.jsx)(w,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":i,className:`absolute right-4 top-4 z-10 rounded-lg bg-surface-panel/80 p-2 text-fg-muted backdrop-blur transition-colors hover:bg-surface-hover hover:text-fg`,children:v})}),t[8]=i,t[9]=y);let b;t[10]===a?b=t[11]:(b=a?(0,$.jsx)(`img`,{src:a.src,alt:a.alt??``,className:`max-h-[min(90vh,900px)] max-w-[min(95vw,1200px)] rounded-lg object-contain shadow-lg`}):null,t[10]=a,t[11]=b);let x;t[12]!==y||t[13]!==b||t[14]!==_?(x=(0,$.jsxs)(k,{children:[m,(0,$.jsxs)(ee,{className:h,"aria-describedby":void 0,children:[_,y,b]})]}),t[12]=y,t[13]=b,t[14]=_,t[15]=x):x=t[15];let C;t[16]!==x||t[17]!==f?(C=(0,$.jsx)(ne,{open:f,onOpenChange:p,children:x}),t[16]=x,t[17]=f,t[18]=C):C=t[18];let T;return t[19]!==n||t[20]!==C?(T=(0,$.jsxs)($e.Provider,{value:d,children:[n,C]}),t[19]=n,t[20]=C,t[21]=T):T=t[21],T}function rt(e){let t=(0,Z.c)(15),{noteId:n,attachmentId:r,className:i}=e,[a,s]=(0,Q.useState)(!1),c;t[0]!==r||t[1]!==n?(c=b(n,r),t[0]=r,t[1]=n,t[2]=c):c=t[2];let l=c;if(a){let e;t[3]===i?e=t[4]:(e=o(`flex size-12 shrink-0 items-center justify-center rounded-lg border border-edge-subtle bg-surface-hover text-fg-muted`,i),t[3]=i,t[4]=e);let n;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(h,{className:`size-4`}),t[5]=n):n=t[5];let r;return t[6]===e?r=t[7]:(r=(0,$.jsx)(`div`,{className:e,"aria-hidden":!0,children:n}),t[6]=e,t[7]=r),r}let u;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>s(!0),t[8]=u):u=t[8];let d;t[9]===i?d=t[10]:(d=o(`size-12 shrink-0 rounded-lg border border-edge-subtle bg-surface-hover object-cover`,i),t[9]=i,t[10]=d);let f;return t[11]!==n||t[12]!==l||t[13]!==d?(f=(0,$.jsx)(We,{src:l,expectedNoteId:n,alt:``,loading:`lazy`,draggable:!1,onLoadFailed:u,className:d}),t[11]=n,t[12]=l,t[13]=d,t[14]=f):f=t[14],f}var it=6e4,at=36e5,ot=864e5;function st(e){let t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function ct(e,t,n){let r=t-e;if(r<it)return n.justNow;if(r<at){let e=Math.floor(r/it);return n.minutesAgo.replace(`{{n}}`,String(e))}let i=st(t);if(e>=i)return n.today+` `+new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});if(e>=i-ot)return n.yesterday+` `+new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});if(r<7*ot){let e=Math.floor(r/ot);return n.daysAgo.replace(`{{n}}`,String(e))}return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function lt(e,t,n){let r=st(t);if(e>=r)return n.today;if(e>=r-ot)return n.yesterday;let i=new Date(e),a=new Date(t);return i.getFullYear()===a.getFullYear()?i.toLocaleDateString(void 0,{month:`long`,day:`numeric`}):i.toLocaleDateString(void 0,{year:`numeric`,month:`long`,day:`numeric`})}function ut(e){let t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function dt(e){if(!Number.isFinite(e)||e<0)return`0:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${String(n).padStart(2,`0`)}`}function ft(e){let t=(0,Z.c)(38),{noteId:n,attachmentId:r,durationSec:i,className:a}=e,{playing:s,loading:c,currentTime:l,duration:u,noteId:d,attachmentId:f}=P(),p=P(mt),m=d===n&&f===r,h=m&&s,g=m&&c,_=m?l:0,v=m&&u>0?u:i??0,y=v>0?Math.min(_/v*100,100):0,b;t[0]!==r||t[1]!==i||t[2]!==n||t[3]!==p?(b=e=>{e.stopPropagation(),p(n,r,i)},t[0]=r,t[1]=i,t[2]=n,t[3]=p,t[4]=b):b=t[4];let x=b,S;t[5]!==r||t[6]!==i||t[7]!==n||t[8]!==p?(S=e=>{(e.key===`Enter`||e.key===` `)&&(e.stopPropagation(),e.preventDefault(),p(n,r,i))},t[5]=r,t[6]=i,t[7]=n,t[8]=p,t[9]=S):S=t[9];let C=S,w;t[10]===a?w=t[11]:(w=o(`flex items-center gap-2`,a),t[10]=a,t[11]=w);let T=h?`bg-accent text-white`:`bg-accent/10 text-accent hover:bg-accent/20`,E;t[12]===T?E=t[13]:(E=o(`flex size-7 shrink-0 items-center justify-center rounded-full transition-colors`,T),t[12]=T,t[13]=E);let D=h?`Pause`:`Play`,O;t[14]!==g||t[15]!==h?(O=g?(0,$.jsx)(X,{className:`size-3.5 animate-spin`}):h?(0,$.jsx)(Xe,{className:`size-3.5`}):(0,$.jsx)(M,{className:`size-3.5 ml-0.5`}),t[14]=g,t[15]=h,t[16]=O):O=t[16];let k;t[17]!==x||t[18]!==C||t[19]!==E||t[20]!==D||t[21]!==O?(k=(0,$.jsx)(`button`,{type:`button`,onClick:x,onKeyDown:C,className:E,"aria-label":D,children:O}),t[17]=x,t[18]=C,t[19]=E,t[20]=D,t[21]=O,t[22]=k):k=t[22];let A=`${y}%`,j;t[23]===A?j=t[24]:(j=(0,$.jsx)(`div`,{className:`h-1 w-full overflow-hidden rounded-full bg-accent/10`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-[width] duration-200 ease-linear`,style:{width:A}})}),t[23]=A,t[24]=j);let N;t[25]!==v||t[26]!==m||t[27]!==_?(N=dt(m&&_>0?_:v),t[25]=v,t[26]=m,t[27]=_,t[28]=N):N=t[28];let F;t[29]===N?F=t[30]:(F=(0,$.jsx)(`span`,{className:`text-[10px] tabular-nums text-fg-muted`,children:N}),t[29]=N,t[30]=F);let I;t[31]!==j||t[32]!==F?(I=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[j,F]}),t[31]=j,t[32]=F,t[33]=I):I=t[33];let L;return t[34]!==I||t[35]!==w||t[36]!==k?(L=(0,$.jsxs)(`div`,{className:w,onClick:pt,children:[k,I]}),t[34]=I,t[35]=w,t[36]=k,t[37]=L):L=t[37],L}function pt(e){return e.stopPropagation()}function mt(e){return e.toggle}function ht(e,t){return e.snippet?.trim()?e.snippet:e.coverAttachmentId?t.imageNote:t.noText}function gt(e){let t=(0,Z.c)(80),{note:n,selected:r,onPress:i,onPin:a,onArchive:s,onDelete:c,labels:l,timeLabels:u}=e,d=r===void 0?!1:r,f;t[0]!==l||t[1]!==n?(f=ht(n,l),t[0]=l,t[1]=n,t[2]=f):f=t[2];let p=f,h=!n.snippet?.trim(),[g]=(0,Q.useState)(bt),_;t[3]!==n.createdAt||t[4]!==g||t[5]!==u?(_=ct(n.createdAt,g,u),t[3]=n.createdAt,t[4]=g,t[5]=u,t[6]=_):_=t[6];let v=_,b,S;t[7]!==n.id||t[8]!==i?(b=()=>i(n.id),S=e=>{(e.key===`Enter`||e.key===` `)&&i(n.id)},t[7]=n.id,t[8]=i,t[9]=b,t[10]=S):(b=t[9],S=t[10]);let C=d?`bg-surface-active hover:bg-surface-active`:`bg-surface-base hover:bg-surface-hover`,w;t[11]===C?w=t[12]:(w=o(`group relative flex cursor-pointer flex-col gap-2 rounded-lg px-3 py-2.5`,`transition-colors duration-150 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,C),t[11]=C,t[12]=w);let T=d?`true`:void 0,D;t[13]!==n.coverAttachmentId||t[14]!==n.id||t[15]!==n.kind||t[16]!==n.voiceAttachmentId||t[17]!==n.voiceDurationSec?(D=n.coverAttachmentId?(0,$.jsx)(rt,{noteId:n.id,attachmentId:n.coverAttachmentId}):n.kind===`voice`&&n.voiceAttachmentId?(0,$.jsx)(ft,{noteId:n.id,attachmentId:n.voiceAttachmentId,durationSec:n.voiceDurationSec,className:`mt-0.5 w-28 shrink-0`}):null,t[13]=n.coverAttachmentId,t[14]=n.id,t[15]=n.kind,t[16]=n.voiceAttachmentId,t[17]=n.voiceDurationSec,t[18]=D):D=t[18];let k;t[19]===n.title?k=t[20]:(k=n.title&&(0,$.jsx)(`h3`,{className:`mb-0.5 truncate text-sm font-semibold text-fg`,children:n.title}),t[19]=n.title,t[20]=k);let A=n.title?`text-fg-muted`:h?`italic text-fg-muted`:`text-fg`,j;t[21]===A?j=t[22]:(j=o(`truncate text-sm leading-5`,A),t[21]=A,t[22]=j);let M;t[23]!==p||t[24]!==j?(M=(0,$.jsx)(`p`,{className:j,children:p}),t[23]=p,t[24]=j,t[25]=M):M=t[25];let N;t[26]!==k||t[27]!==M?(N=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[k,M]}),t[26]=k,t[27]=M,t[28]=N):N=t[28];let P;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,$.jsx)(y,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,onClick:yt,className:`shrink-0 rounded-md p-1 text-fg-muted opacity-0 transition-opacity group-hover:opacity-100 hover:bg-surface-panel focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":`Actions`,children:(0,$.jsx)(Ae,{className:`size-4`})})}),t[29]=P):P=t[29];let F;t[30]!==n.id||t[31]!==n.pinned||t[32]!==a?(F=()=>a(n.id,!n.pinned),t[30]=n.id,t[31]=n.pinned,t[32]=a,t[33]=F):F=t[33];let ee;t[34]===n.pinned?ee=t[35]:(ee=n.pinned?(0,$.jsx)(x,{className:`size-4`}):(0,$.jsx)(E,{className:`size-4`}),t[34]=n.pinned,t[35]=ee);let te=n.pinned?l.unpin:l.pin,ne;t[36]!==F||t[37]!==ee||t[38]!==te?(ne=(0,$.jsxs)(I,{className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:F,children:[ee,te]}),t[36]=F,t[37]=ee,t[38]=te,t[39]=ne):ne=t[39];let R;t[40]!==n.id||t[41]!==s?(R=()=>s(n.id),t[40]=n.id,t[41]=s,t[42]=R):R=t[42];let re;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,$.jsx)(Qe,{className:`size-4`}),t[43]=re):re=t[43];let z;t[44]!==l.archive||t[45]!==R?(z=(0,$.jsxs)(I,{className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:R,children:[re,l.archive]}),t[44]=l.archive,t[45]=R,t[46]=z):z=t[46];let ie;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,$.jsx)(L,{className:`my-1 h-px bg-edge-subtle`}),t[47]=ie):ie=t[47];let B;t[48]!==n.id||t[49]!==c?(B=()=>c(n.id),t[48]=n.id,t[49]=c,t[50]=B):B=t[50];let ae;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,$.jsx)(O,{className:`size-4`}),t[51]=ae):ae=t[51];let V;t[52]!==l.delete||t[53]!==B?(V=(0,$.jsxs)(I,{className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-red-500 outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:B,children:[ae,l.delete]}),t[52]=l.delete,t[53]=B,t[54]=V):V=t[54];let oe;t[55]!==ne||t[56]!==z||t[57]!==V?(oe=(0,$.jsxs)(He,{children:[P,(0,$.jsx)(m,{children:(0,$.jsxs)(Ge,{className:`z-50 min-w-[140px] rounded-xl border border-edge bg-surface-panel p-1 shadow-lg`,sideOffset:4,align:`end`,onClick:vt,children:[ne,z,ie,V]})})]}),t[55]=ne,t[56]=z,t[57]=V,t[58]=oe):oe=t[58];let H;t[59]!==N||t[60]!==oe||t[61]!==D?(H=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[D,N,oe]}),t[59]=N,t[60]=oe,t[61]=D,t[62]=H):H=t[62];let U;t[63]===n.pinned?U=t[64]:(U=n.pinned&&(0,$.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-accent/10 px-1.5 py-0.5 text-xs font-medium text-accent`,children:(0,$.jsx)(E,{className:`size-3`})}),t[63]=n.pinned,t[64]=U);let W;t[65]===n.tags?W=t[66]:(W=n.tags?.slice(0,2).map(_t),t[65]=n.tags,t[66]=W);let G;t[67]===v?G=t[68]:(G=(0,$.jsx)(`span`,{className:`ml-auto text-xs text-fg-muted`,children:v}),t[67]=v,t[68]=G);let se;t[69]!==U||t[70]!==W||t[71]!==G?(se=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[U,W,G]}),t[69]=U,t[70]=W,t[71]=G,t[72]=se):se=t[72];let ce;return t[73]!==H||t[74]!==se||t[75]!==b||t[76]!==S||t[77]!==w||t[78]!==T?(ce=(0,$.jsxs)(`article`,{role:`button`,tabIndex:0,onClick:b,onKeyDown:S,className:w,"aria-current":T,children:[H,se]}),t[73]=H,t[74]=se,t[75]=b,t[76]=S,t[77]=w,t[78]=T,t[79]=ce):ce=t[79],ce}function _t(e){return(0,$.jsx)(`span`,{className:`max-w-24 truncate rounded-md bg-surface-hover px-1.5 py-0.5 text-xs text-fg-muted`,children:e},e)}function vt(e){return e.stopPropagation()}function yt(e){return e.stopPropagation()}function bt(){return Date.now()}function xt(e){let t=(0,Z.c)(45),{title:n,description:r,prompt:i,coverage:c,className:u,variant:f}=e,p=f===void 0?`card`:f,m=l(wt),h=s(m).automations.suggestions,g=s(m).automations,_=a(),v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v={revalidateOnFocus:!1,refreshInterval:15e3},t[0]=v):v=t[0];let{data:y}=d(c?`automation-suggestion-coverage`:null,Ct,v),b=c?y?.automations.find(e=>Je(e,c)):void 0,x=b?H(b,g):[];if(p===`titleAction`){if(b){let e;t[1]===u?e=t[2]:(e=o(`flex min-w-0 items-center gap-2 rounded-lg border border-emerald-500/25 bg-emerald-500/10 px-2.5 py-1.5`,u),t[1]=u,t[2]=e);let n;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(Te,{className:`size-3.5 shrink-0 text-emerald-700 dark:text-emerald-300`,"aria-hidden":!0}),t[3]=n):n=t[3];let r;return t[4]===_?r=t[5]:(r=()=>_(`/automations`),t[4]=_,t[5]=r),(0,$.jsxs)(`section`,{className:e,children:[n,(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs font-medium text-fg`,children:h.coveredTitle}),(0,$.jsx)(xe,{variant:`ghost`,className:`h-7 shrink-0 rounded-md px-2 text-xs`,onClick:r,children:h.manage})]})}let e;t[6]===u?e=t[7]:(e=o(`flex min-w-0 items-center gap-2 rounded-lg bg-surface-panel px-2.5 py-1.5 shadow-surface`,u),t[6]=u,t[7]=e);let a;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(pe,{className:`size-3.5 shrink-0 text-accent`,"aria-hidden":!0}),t[8]=a):a=t[8];let s;t[9]!==r||t[10]!==n?(s=(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs font-medium text-fg`,title:r,children:n}),t[9]=r,t[10]=n,t[11]=s):s=t[11];let c;t[12]!==_||t[13]!==i?(c=()=>{_(`/automations?${new URLSearchParams({draft:i,autogenerate:`1`}).toString()}`)},t[12]=_,t[13]=i,t[14]=c):c=t[14];let l;return t[15]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(de,{className:`size-3.5`,"aria-hidden":!0}),t[15]=l):l=t[15],(0,$.jsxs)(`section`,{className:e,children:[a,s,(0,$.jsxs)(xe,{variant:`secondary`,className:`h-7 shrink-0 rounded-md px-2 text-xs`,onClick:c,children:[l,h.create]})]})}if(b){let e;t[16]===u?e=t[17]:(e=o(`rounded-lg border border-emerald-500/25 bg-emerald-500/10 p-3`,u),t[16]=u,t[17]=e);let n;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(Te,{className:`mt-0.5 size-4 shrink-0 text-emerald-700 dark:text-emerald-300`,"aria-hidden":!0}),t[18]=n):n=t[18];let r;t[19]===_?r=t[20]:(r=()=>_(`/automations`),t[19]=_,t[20]=r);let i;return t[21]!==h||t[22]!==r?(i=(0,$.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,$.jsx)(xe,{variant:`ghost`,className:`h-8 rounded-md px-2.5 text-xs`,onClick:r,children:h.manage})}),t[21]=h,t[22]=r,t[23]=i):i=t[23],(0,$.jsxs)(`section`,{className:e,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:h.coveredTitle}),(0,$.jsx)(`p`,{className:`mt-1 break-words text-xs leading-5 text-fg-muted`,children:Re(h.coveredDescription,{name:b.name})})]})]}),(0,$.jsxs)(`div`,{className:`mt-2 rounded-md bg-surface-base/55 px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg`,children:g.explain.whyCovered}),(0,$.jsx)(`div`,{className:`mt-1 flex flex-wrap gap-1.5`,children:x.map(St)})]}),i]})}let S;t[24]===u?S=t[25]:(S=o(`rounded-lg bg-surface-panel p-3 shadow-surface`,u),t[24]=u,t[25]=S);let C;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(pe,{className:`mt-0.5 size-4 shrink-0 text-accent`,"aria-hidden":!0}),t[26]=C):C=t[26];let w;t[27]===n?w=t[28]:(w=(0,$.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:n}),t[27]=n,t[28]=w);let T;t[29]===r?T=t[30]:(T=(0,$.jsx)(`p`,{className:`mt-1 break-words text-xs leading-5 text-fg-muted`,children:r}),t[29]=r,t[30]=T);let E;t[31]!==w||t[32]!==T?(E=(0,$.jsxs)(`div`,{className:`flex items-start gap-2`,children:[C,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[w,T]})]}),t[31]=w,t[32]=T,t[33]=E):E=t[33];let D;t[34]!==_||t[35]!==i?(D=()=>{_(`/automations?${new URLSearchParams({draft:i,autogenerate:`1`}).toString()}`)},t[34]=_,t[35]=i,t[36]=D):D=t[36];let O;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(de,{className:`size-3.5`,"aria-hidden":!0}),t[37]=O):O=t[37];let k;t[38]!==h.create||t[39]!==D?(k=(0,$.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,$.jsxs)(xe,{variant:`secondary`,className:`h-8 rounded-md px-2.5 text-xs`,onClick:D,children:[O,h.create]})}),t[38]=h.create,t[39]=D,t[40]=k):k=t[40];let A;return t[41]!==k||t[42]!==S||t[43]!==E?(A=(0,$.jsxs)(`section`,{className:S,children:[E,k]}),t[41]=k,t[42]=S,t[43]=E,t[44]=A):A=t[44],A}function St(e){return(0,$.jsx)(`span`,{className:`rounded-full bg-surface-panel px-2 py-0.5 text-xs text-fg-muted`,children:e},e)}function Ct(){return le.list()}function wt(e){return e.language}function Tt(e){let t=(0,Z.c)(31),{noteId:n}=e,r=l(Dt),i;t[0]===r?i=t[1]:(i=s(r),t[0]=r,t[1]=i);let a=i.notes.discussionCapture,o,c;t[2]===n?(o=t[3],c=t[4]):(o=[`note-discussion`,n],c=()=>De(n),t[2]=n,t[3]=o,t[4]=c);let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u={refreshInterval:5e3},t[5]=u):u=t[5];let{data:f,mutate:p}=d(o,c,u),m=f?.discussion,h=m?.status===`recording`||m?.status===`finalizing`,g=h?m.id:null,_;t[6]===g?_=t[7]:(_=g?[`note-discussion-transcript`,g]:null,t[6]=g,t[7]=_);let v=h?5e3:0,y;t[8]===v?y=t[9]:(y={refreshInterval:v},t[8]=v,t[9]=y);let{data:b,mutate:x}=d(_,Et,y),S,w;if(t[10]!==g||t[11]!==p||t[12]!==x?(S=()=>{if(!g)return;let e=()=>{p(),x()};return window.addEventListener(`discussion-updated`,e),window.addEventListener(`discussion-transcript-updated`,e),()=>{window.removeEventListener(`discussion-updated`,e),window.removeEventListener(`discussion-transcript-updated`,e)}},w=[g,p,x],t[10]=g,t[11]=p,t[12]=x,t[13]=S,t[14]=w):(S=t[13],w=t[14]),(0,Q.useEffect)(S,w),!h||!m)return null;let T=m.projectId&&m.projectInferenceSource!==`context`,E;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(B,{className:`size-4`,"aria-hidden":!0}),t[15]=E):E=t[15];let D=m.status===`recording`?a.draftTranscript:a.finalizing,O;t[16]===D?O=t[17]:(O=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-accent-fg`,children:[E,D]}),t[16]=D,t[17]=O);let k;t[18]!==a.undo||t[19]!==m.id||t[20]!==T||t[21]!==p?(k=T?(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1 text-xs font-medium text-accent-fg`,onClick:async()=>p(await Y(m.id),{revalidate:!1}),children:[(0,$.jsx)(C,{className:`size-3`,"aria-hidden":!0}),a.undo]}):null,t[18]=a.undo,t[19]=m.id,t[20]=T,t[21]=p,t[22]=k):k=t[22];let A;t[23]!==O||t[24]!==k?(A=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[O,k]}),t[23]=O,t[24]=k,t[25]=A):A=t[25];let j=b?.text||a.waitingTranscript,M;t[26]===j?M=t[27]:(M=(0,$.jsx)(`p`,{className:`mt-2 max-h-36 overflow-y-auto whitespace-pre-wrap text-sm leading-6 text-fg`,children:j}),t[26]=j,t[27]=M);let N;return t[28]!==A||t[29]!==M?(N=(0,$.jsxs)(`section`,{className:`mb-3 shrink-0 rounded-xl border border-accent/25 bg-accent-soft px-4 py-3`,children:[A,M]}),t[28]=A,t[29]=M,t[30]=N):N=t[30],N}function Et(e){let[,t]=e;return Ne(t)}function Dt(e){return e.language}var Ot={edit:A,ai_edit:de,sync:Ve,restore:F};function kt(e,t){return{edit:t.triggerEdit,ai_edit:t.triggerAiEdit,sync:t.triggerSync,restore:t.triggerRestore}[e]??e}function At({noteId:e,activeTimestamp:t,onSelect:n,onClose:r,onRestored:i}){let a=s(l(e=>e.language)).notes,c=a,{data:u}=d(e?[`note-history`,e]:null,()=>q(e)),[f,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(null),g=(0,Q.useCallback)(async t=>{p(!0);try{await K(e,t),h(null),i()}catch{ae({type:`error`,title:a.restoreFailed})}finally{p(!1)}},[e,a.restoreSuccess,a.restoreFailed,i]),_=Date.now();return(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-edge px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,$.jsx)(Ue,{className:`size-4`,"aria-hidden":!0}),a.history]}),(0,$.jsx)(`button`,{type:`button`,onClick:r,className:`rounded-lg p-1 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg`,children:(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:u?.length?(0,$.jsx)(`ul`,{className:`divide-y divide-edge`,children:u.map(e=>{let r=Ot[e.trigger]??A,i=t===e.timestamp,s=m===e.timestamp;return(0,$.jsxs)(`li`,{children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:o(`w-full px-4 py-3 text-left transition-colors`,i?`bg-accent/10`:`hover:bg-surface-hover`),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(r,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:kt(e.trigger,a)}),(0,$.jsx)(`span`,{className:`ml-auto text-xs text-fg-muted`,children:ct(e.timestamp,_,c)})]}),e.snippet&&(0,$.jsx)(`p`,{className:`mt-1 truncate text-xs text-fg-muted/60`,children:e.snippet})]}),i&&(0,$.jsx)(`div`,{className:`border-t border-edge/50 px-4 py-2`,children:s?(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs text-fg-muted`,children:a.restoreConfirm}),(0,$.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),g(e.timestamp)},disabled:f,className:`shrink-0 rounded-lg bg-accent px-3 py-1 text-xs font-medium text-on-accent transition-colors hover:bg-accent/90 disabled:opacity-50`,children:f?`...`:a.restore}),(0,$.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),h(null)},className:`shrink-0 rounded-lg px-2 py-1 text-xs text-fg-muted hover:bg-surface-hover`,children:`Cancel`})]}):(0,$.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),h(e.timestamp)},className:`rounded-lg bg-surface-hover px-3 py-1 text-xs font-medium text-fg transition-colors hover:bg-accent hover:text-on-accent`,children:a.restore})})]},e.timestamp)})}):(0,$.jsxs)(`div`,{className:`px-4 py-8 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg-muted`,children:a.historyEmpty}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted/60`,children:a.historyEmptyDescription})]})})]})}function jt(e){let t=(0,Z.c)(10),{noteId:n,note:r,catalyzing:i,onCatalyze:c,onClose:u,noteThreads:p,openingChat:m,onOpenChat:h,onOpenNewChat:g}=e,_=s(l(Rt)).notes,v=a(),y=r?.aiDeep?.catalysis,b=y?.report??null,x;t[0]===n?x=t[1]:(x=n?[`note-agent-context-status`,n]:null,t[0]=n,t[1]=x);let S;t[2]===n?S=t[3]:(S=()=>Ce(n),t[2]=n,t[3]=S);let C;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(C={revalidateOnFocus:!1},t[4]=C):C=t[4];let{data:w,mutate:T,isLoading:E}=d(x,S,C),O;t[5]===n?O=t[6]:(O=async e=>{try{await Ye(n,e)}catch{}},t[5]=n,t[6]=O);let k=O,A;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(de,{className:`size-4 text-accent`,"aria-hidden":!0}),t[7]=A):A=t[7];let j;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(D,{className:`size-4 rotate-180`,"aria-hidden":!0}),t[8]=j):j=t[8];let M;return t[9]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsx)(f,{className:`size-4 text-accent`,"aria-hidden":!0}),t[9]=M):M=t[9],(0,$.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-b border-edge-subtle px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[A,(0,$.jsx)(`span`,{className:`text-sm font-semibold text-fg`,children:_.catalysisSectionTitle})]}),(0,$.jsx)(`button`,{type:`button`,onClick:u,"aria-label":_.lightboxClose,className:`rounded-lg p-1.5 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg`,children:j})]}),(0,$.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:[(0,$.jsx)(`p`,{className:`mb-4 text-xs leading-relaxed text-fg-muted`,children:_.catalysisSectionDescription}),w?(0,$.jsxs)(`section`,{className:`mb-4 rounded-xl bg-surface-base p-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.contextStatusTitle}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>void T(()=>Be(n),{revalidate:!1}),disabled:E,className:`rounded-md px-1.5 py-0.5 text-[11px] font-medium text-accent transition-colors hover:bg-accent/10 disabled:cursor-not-allowed disabled:opacity-50`,children:_.contextRebuild}),(0,$.jsx)(`span`,{className:o(`rounded-full px-2 py-0.5 text-[11px] font-medium`,w.status===`ready`?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-300`:w.status===`partial`?`bg-amber-500/10 text-amber-600 dark:text-amber-300`:`bg-red-500/10 text-red-600 dark:text-red-300`),children:w.status})]}),(0,$.jsx)(`div`,{className:`mt-2 text-xs leading-relaxed text-fg-muted`,children:_.contextStatusDetail.replace(`{{attachments}}`,String(w.attachments.length)).replace(`{{tokens}}`,String(w.tokenEstimate??0))}),w.attachments.length>0?(0,$.jsx)(`div`,{className:`mt-3 space-y-1.5`,children:w.attachments.slice(0,5).map(Lt)}):null]}):null,(0,$.jsx)(`button`,{type:`button`,onClick:c,disabled:i,className:`w-full rounded-lg bg-accent px-2.5 py-1.5 text-xs font-medium text-white transition-colors hover:bg-accent/90 disabled:cursor-not-allowed disabled:opacity-50`,children:i?_.processing:b?_.recatalyze:_.catalyzeAction}),b?(0,$.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.valueHypothesis}),(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg`,children:b.valueHypothesis})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.targetUsers}),(0,$.jsx)(`div`,{className:`mt-1 flex flex-wrap gap-1.5`,children:b.targetUsers.slice(0,5).map(It)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.keyQuestions}),(0,$.jsx)(`ul`,{className:`mt-1 space-y-1 text-sm leading-relaxed text-fg`,children:b.keyQuestions.slice(0,3).map(Ft)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.mvpPathLabel}),(0,$.jsx)(`ol`,{className:`mt-1 space-y-1 text-sm leading-relaxed text-fg`,children:b.mvpPath.slice(0,3).map(Pt)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.risks}),(0,$.jsx)(`ul`,{className:`mt-1 space-y-1 text-sm leading-relaxed text-fg`,children:b.risks.slice(0,3).map(Nt)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:_.nextActions}),(0,$.jsx)(`ul`,{className:`mt-1 space-y-1 text-sm leading-relaxed text-fg`,children:b.nextActions.slice(0,4).map(Mt)})]}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-t border-edge-subtle pt-3`,children:[(0,$.jsx)(`span`,{className:`text-xs text-fg-muted`,children:_.confidenceLabel.replace(`{{percent}}`,String(Math.round(b.confidence*100)))}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:()=>void k(`helpful`),className:o(`rounded-lg p-1.5 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg`,y?.feedback===`helpful`&&`bg-accent/10 text-accent`),"aria-label":_.feedbackHelpfulAria,children:(0,$.jsx)(V,{className:`size-3.5`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>void k(`not_helpful`),className:o(`rounded-lg p-1.5 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg`,y?.feedback===`not_helpful`&&`bg-accent/10 text-accent`),"aria-label":_.feedbackNotHelpfulAria,children:(0,$.jsx)(ie,{className:`size-3.5`,"aria-hidden":!0})})]})]})]}):(0,$.jsx)(`div`,{className:`mt-4 rounded-lg border border-dashed border-edge-subtle px-3 py-6 text-center text-sm text-fg-muted`,children:_.noCatalysisReportHint}),(0,$.jsxs)(`section`,{className:`mt-6 rounded-xl bg-surface-base p-4`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-semibold text-fg`,children:[M,_.relatedThreadsTitle]}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:_.relatedThreadsDescription})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:h,disabled:m,className:`rounded-lg border border-edge px-2.5 py-1.5 text-xs font-medium text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg disabled:cursor-not-allowed disabled:opacity-50`,children:m?_.openingChat:_.openThread}),(0,$.jsx)(`button`,{type:`button`,onClick:g,disabled:m,className:`rounded-lg bg-accent px-2.5 py-1.5 text-xs font-medium text-white transition-colors hover:bg-accent/90 disabled:cursor-not-allowed disabled:opacity-50`,children:_.newThread})]})]}),p.length>0?(0,$.jsx)(`div`,{className:`space-y-2`,children:p.slice(0,5).map(e=>(0,$.jsxs)(`button`,{type:`button`,onClick:()=>v(`/chat/${encodeURIComponent(e.key)}`),className:`w-full rounded-lg border border-edge-subtle px-3 py-2 text-left transition-colors hover:bg-surface-hover`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-medium text-fg`,children:e.name||_.noteDiscussionFallback}),(0,$.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-muted`,children:_.messageCount.replace(`{{count}}`,String(e.messageCount??0))})]},e.key))}):(0,$.jsx)(`div`,{className:`rounded-lg border border-dashed border-edge-subtle px-3 py-5 text-center text-sm text-fg-muted`,children:_.noThreads})]})]})]})}function Mt(e){return(0,$.jsxs)(`li`,{className:`flex gap-2`,children:[(0,$.jsx)(`span`,{className:`rounded bg-accent/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-accent`,children:e.kind}),(0,$.jsx)(`span`,{children:e.text})]},`${e.kind}:${e.text}`)}function Nt(e){return(0,$.jsxs)(`li`,{className:`flex gap-2`,children:[(0,$.jsx)(`span`,{className:`mt-2 size-1 shrink-0 rounded-full bg-fg-muted`}),(0,$.jsx)(`span`,{children:e})]},e)}function Pt(e,t){return(0,$.jsxs)(`li`,{className:`flex gap-2`,children:[(0,$.jsxs)(`span`,{className:`text-fg-muted`,children:[t+1,`.`]}),(0,$.jsx)(`span`,{children:e})]},e)}function Ft(e){return(0,$.jsxs)(`li`,{className:`flex gap-2`,children:[(0,$.jsx)(`span`,{className:`mt-2 size-1 shrink-0 rounded-full bg-accent`}),(0,$.jsx)(`span`,{children:e})]},e)}function It(e){return(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg`,children:e},e)}function Lt(e){return(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 rounded-lg bg-surface-hover px-2 py-1.5 text-xs`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate text-fg`,children:e.fileName}),(0,$.jsx)(`span`,{className:`shrink-0 text-fg-muted`,children:e.status})]},e.attachmentId)}function Rt(e){return e.language}var zt=()=>i(()=>import(`./block-editor-D_VVXlYX.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26])),Bt=()=>i(()=>import(`./markdown-editor-BvUebh3C.js`).then(e=>e.n),__vite__mapDeps([27,1,3,24,5,28])),Vt=(0,Q.lazy)(()=>zt().then(e=>({default:e.BlockEditor}))),Ht=(0,Q.lazy)(()=>Bt().then(e=>({default:e.MarkdownEditor})));function Ut(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col px-6 py-4`,"aria-busy":!0,children:[(0,$.jsx)(`div`,{className:`h-8 w-56 max-w-full animate-pulse rounded-md bg-surface-hover`}),(0,$.jsx)(`div`,{className:`mt-6 h-4 w-11/12 animate-pulse rounded bg-surface-hover`}),(0,$.jsx)(`div`,{className:`mt-3 h-4 w-9/12 animate-pulse rounded bg-surface-hover`}),(0,$.jsx)(`div`,{className:`mt-3 h-4 w-10/12 animate-pulse rounded bg-surface-hover`})]}),e[0]=t):t=e[0],t}function Wt(e){let t=(0,Z.c)(14),{mode:n,onModeChange:r,labels:i}=e,a;t[0]===i.edit?a=t[1]:(a={id:`wysiwyg`,label:i.edit,Icon:Ze},t[0]=i.edit,t[1]=a);let s;t[2]===i.source?s=t[3]:(s={id:`source`,label:i.source,Icon:Ie},t[2]=i.source,t[3]=s);let c;t[4]===i.preview?c=t[5]:(c={id:`preview`,label:i.preview,Icon:R},t[4]=i.preview,t[5]=c);let l;t[6]!==a||t[7]!==s||t[8]!==c?(l=[a,s,c],t[6]=a,t[7]=s,t[8]=c,t[9]=l):l=t[9];let u=l,d;return t[10]!==n||t[11]!==u||t[12]!==r?(d=(0,$.jsx)(`div`,{className:`flex items-center gap-0.5 rounded-lg border border-edge p-0.5`,children:u.map(e=>{let{id:t,label:i,Icon:a}=e;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>r(t),onMouseEnter:()=>{t===`wysiwyg`&&zt(),t===`source`&&Bt()},onFocus:()=>{t===`wysiwyg`&&zt(),t===`source`&&Bt()},className:o(`inline-flex items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium transition-colors`,n===t?`bg-surface-hover text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[(0,$.jsx)(a,{className:`size-3.5`,"aria-hidden":!0}),i]},t)})}),t[10]=n,t[11]=u,t[12]=r,t[13]=d):d=t[13],d}function Gt(e){let t=(0,Z.c)(15),{noteId:n,onBack:r,onSaved:i,showBackButton:a,backButtonClassName:o,clearHeaderOnCleanup:c,onOpenSearch:u,autoFocus:d,onAutoFocusConsumed:f}=e,p=a===void 0?!0:a,m=c===void 0?!0:c,h=d===void 0?!1:d,g=l(Kt),_;t[0]===g?_=t[1]:(_=s(g),t[0]=g,t[1]=_);let v=_.notes.lightboxClose,y;t[2]!==h||t[3]!==o||t[4]!==m||t[5]!==n||t[6]!==f||t[7]!==r||t[8]!==u||t[9]!==i||t[10]!==p?(y=(0,$.jsx)(qt,{noteId:n,onBack:r,onSaved:i,showBackButton:p,backButtonClassName:o,clearHeaderOnCleanup:m,onOpenSearch:u,autoFocus:h,onAutoFocusConsumed:f}),t[2]=h,t[3]=o,t[4]=m,t[5]=n,t[6]=f,t[7]=r,t[8]=u,t[9]=i,t[10]=p,t[11]=y):y=t[11];let b;return t[12]!==v||t[13]!==y?(b=(0,$.jsx)(nt,{closeLabel:v,children:y}),t[12]=v,t[13]=y,t[14]=b):b=t[14],b}function Kt(e){return e.language}function qt({noteId:e,onBack:t,onSaved:n,showBackButton:r=!0,backButtonClassName:i,clearHeaderOnCleanup:c=!0,onOpenSearch:m,autoFocus:h=!1,onAutoFocusConsumed:v}){let y=l(e=>e.language),b=s(y).notes,x=s(y).automations.suggestions,S=a(),C=u(e=>e.resolved)===`dark`,{openImage:w}=et(),[E,O]=(0,Q.useState)(`wysiwyg`),[k,A]=(0,Q.useState)(null),[j,M]=(0,Q.useState)(null),[N,P]=(0,Q.useState)(!1),[F,I]=(0,Q.useState)(``),[L,ee]=(0,Q.useState)(360),[te,ne]=(0,Q.useState)(!1),[R,re]=(0,Q.useState)(!1),[ie,B]=(0,Q.useState)(!1),V=(0,Q.useRef)(!1),H=(0,Q.useRef)(!1),U=(0,Q.useRef)(null),W=(0,Q.useRef)(null),G=(0,Q.useRef)(null),ce=(0,Q.useRef)(null),le=(0,Q.useRef)(null),ue=(0,Q.useRef)(null),K=(0,Q.useRef)(null),pe=(0,Q.useRef)(null),q=(0,Q.useRef)(null),ge=_(e=>e.setPageHeader),_e=_(e=>e.clearPageHeader),{data:J,mutate:Y}=d(e?[`note-detail`,e]:null,()=>fe(e)),{data:ve=[],mutate:ye}=d(e?[`note-threads`,e]:null,()=>me(e),{revalidateOnFocus:!1}),be=j!==null;(0,Q.useEffect)(()=>{if(!e)return;let t=t=>{t.detail?.noteId===e&&Y()};return window.addEventListener(`note-updated`,t),()=>window.removeEventListener(`note-updated`,t)},[Y,e]),(0,Q.useEffect)(()=>{V.current=!1,I(``),M(null),A(null),H.current=!1,q.current=null},[e]),(0,Q.useEffect)(()=>{!J||V.current||(I(J.title??``),V.current=!0)},[J]),(0,Q.useEffect)(()=>{if(!h||!J||be||q.current===e)return;let t=window.requestAnimationFrame(()=>{pe.current?.focus(),v?.()});return q.current=e,()=>window.cancelAnimationFrame(t)},[h,be,J,e,v]);let xe=J?new Date(J.createdAt).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}):``,Se=(0,Q.useMemo)(()=>r?(0,$.jsx)(`button`,{type:`button`,onClick:t,"aria-label":b.back,className:o(`rounded-lg p-1.5 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg`,T,i),children:(0,$.jsx)(D,{className:`size-4`,"aria-hidden":!0})}):null,[i,b.back,t,r]),Ce=(0,Q.useCallback)(t=>{I(t),e&&(ce.current=t,W.current&&clearTimeout(W.current),W.current=setTimeout(async()=>{let t=ce.current;if(ce.current=null,t!==null){P(!0);try{await qe(e,{title:t}),await Y(),n?.()}catch{}finally{P(!1)}}},600))},[e,Y,n]),Te=(0,Q.useMemo)(()=>(0,$.jsxs)(`div`,{className:o(`flex min-w-0 items-center gap-2`,T),children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,title:F||xe||void 0,children:F||xe}),N?(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted opacity-60`,children:b.saving}):null]}),[b.saving,N,xe,F]),Ee=(0,Q.useCallback)(async(t=!1)=>{B(!0);try{let n=await we(e,{forceNew:t});await Y(),await ye(),S(`/chat/${encodeURIComponent(n.sessionKey)}`)}catch(e){ae({type:`error`,title:b.chatOpenFailedTitle,message:e instanceof Error?e.message:b.chatOpenFailedMessage})}finally{B(!1)}},[Y,ye,S,e,b.chatOpenFailedMessage,b.chatOpenFailedTitle]),X=(0,Q.useCallback)(async()=>{re(!0);try{await se(e),await Y()}catch(e){ae({type:`error`,title:b.catalysisFailed,message:e instanceof Error?e.message:b.chatOpenFailedMessage})}finally{re(!1)}},[Y,e]),De=(0,Q.useCallback)(()=>{A(k===`breakdown`?null:`breakdown`),!J?.aiDeep?.catalysis?.report&&!R&&X()},[k,R,X,J?.aiDeep?.catalysis?.report]),Oe=(0,Q.useCallback)(()=>{let t=j?.markdown??G.current??J?.markdown??``,n=j?.title??F,r=z([n,t].filter(Boolean).join(`
3
-
4
- `));return{source:{type:`note`,id:e,title:n||b.titlePlaceholder},text:r,language:oe(r,y)}},[y,b.titlePlaceholder,J?.markdown,e,j,F]),ke=(0,Q.useMemo)(()=>(0,$.jsxs)(`div`,{className:o(`flex items-center gap-2`,T),children:[m?(0,$.jsx)(`button`,{type:`button`,onClick:m,"aria-label":b.searchDialogTitle,className:`rounded-lg p-1.5 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:(0,$.jsx)(ze,{className:`size-4`,"aria-hidden":!0})}):null,(0,$.jsx)(p,{input:Oe,labels:{read:b.readAloud,preparing:b.readAloudPreparing,pause:b.readAloudPause,resume:b.readAloudResume,retry:b.readAloudRetry},showLabel:!0}),(0,$.jsxs)(`button`,{type:`button`,onClick:De,disabled:R,"aria-label":b.catalysisSectionTitle,className:o(`inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50`,k===`breakdown`?`bg-accent/10 text-accent`:`bg-accent/10 text-fg hover:bg-accent/15`),children:[(0,$.jsx)(de,{className:`size-3.5`,"aria-hidden":!0}),R?b.catalyzing:b.catalyzeButton]}),(0,$.jsxs)(`button`,{type:`button`,onClick:()=>Ee(!1),disabled:ie,className:o(`inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-colors`,`border border-edge text-fg-muted hover:bg-surface-hover hover:text-fg disabled:cursor-not-allowed disabled:opacity-50`),children:[(0,$.jsx)(f,{className:`size-3.5`,"aria-hidden":!0}),ie?b.openingChat:b.openChatButton]}),(0,$.jsx)(Wt,{mode:E,onModeChange:O,labels:{edit:b.modeEdit,source:b.modeSource,preview:b.modePreview}}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>A(k===`history`?null:`history`),"aria-label":b.history,className:o(`rounded-lg p-1.5 transition-colors`,k===`history`?`bg-accent/10 text-accent`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:(0,$.jsx)(Ue,{className:`size-4`,"aria-hidden":!0})})]}),[R,De,Ee,E,b.history,b.modeEdit,b.modePreview,b.modeSource,ie,k,m,b.searchDialogTitle,b.readAloud,b.readAloudPause,b.readAloudPreparing,b.readAloudResume,b.readAloudRetry,Oe]);(0,Q.useLayoutEffect)(()=>(ge({startExtra:Se,main:J?Te:null,end:J?ke:null}),()=>{c&&_e()}),[c,_e,ke,Te,Se,J,ge]);let Ae=(0,Q.useCallback)(t=>{e&&(G.current=t,U.current&&clearTimeout(U.current),U.current=setTimeout(async()=>{let t=G.current;if(G.current=null,t!==null){P(!0);try{await qe(e,{markdown:t}),await Y(),n?.()}catch(e){ae({type:`error`,title:b.saveFailed,message:e instanceof Error?e.message:b.saveFailedHint})}finally{P(!1)}}},600))},[e,Y,b.saveFailed,b.saveFailedHint,n]),je=(0,Q.useCallback)(t=>{Le(e,t.timestamp).then(e=>{e&&M(e)})},[e]),Me=(0,Q.useCallback)(()=>{A(null),M(null)},[]),Ne=(0,Q.useCallback)(()=>{A(null),M(null),Y(),n?.()},[Y,n]);if((0,Q.useEffect)(()=>()=>{U.current&&clearTimeout(U.current),W.current&&clearTimeout(W.current);let t=G.current,n=ce.current;G.current=null,ce.current=null;let r={};t!==null&&(r.markdown=t),n!==null&&(r.title=n),Object.keys(r).length>0&&qe(e,r)},[e]),J===void 0)return(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,$.jsx)(`div`,{className:`size-6 animate-spin rounded-full border-2 border-accent border-t-transparent`})});if(J===null)return(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 text-center`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:b.notFoundTitle}),(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:b.notFoundDescription}),(0,$.jsx)(`button`,{type:`button`,onClick:t,className:`rounded-lg border border-edge px-3 py-1.5 text-sm font-medium text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg`,children:b.back})]});let Pe=be?j.title??``:F,Fe=be?j.markdown??``:J.markdown??``,Ie=new Date(J.createdAt).getTime(),Re=Number.isFinite(Ie)&&Date.now()-Ie<3600*1e3?(0,$.jsx)(xt,{title:x.noteCreatedTitle,description:x.noteCreatedDescription,prompt:x.noteCreatedPrompt,coverage:{eventType:`note.created`,source:`notes`,eventPayload:{noteId:e}},variant:`titleAction`,className:`ml-3 hidden max-w-[18rem] shrink-0 md:flex`}):null;return(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 gap-3 p-4 sm:px-5`,children:[(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,$.jsx)(Tt,{noteId:e}),(0,$.jsx)(he,{eventType:`note.created`,source:`notes`,payloadKey:`noteId`,payloadValue:e,className:`mb-3 shrink-0`}),(0,$.jsx)(he,{eventType:`note.updated`,source:`notes`,payloadKey:`noteId`,payloadValue:e,className:`mb-3 shrink-0`}),(0,$.jsx)(`div`,{ref:le,className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-edge-subtle bg-surface-panel`,children:be?(0,$.jsxs)(`div`,{className:`h-full overflow-y-auto px-6 py-4`,children:[Pe&&(0,$.jsx)(`h1`,{className:`mb-4 text-2xl font-bold text-fg/70`,children:Pe}),Fe?(0,$.jsx)(g,{noteId:e,content:Fe,className:`opacity-80`}):(0,$.jsx)(`p`,{className:`italic text-fg-muted`,children:b.emptyPreview})]}):(0,$.jsxs)($.Fragment,{children:[E===`wysiwyg`&&(0,$.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start px-6 pt-4`,children:[(0,$.jsx)(`input`,{ref:pe,type:`text`,value:F,onChange:e=>Ce(e.target.value),onCompositionStart:()=>{H.current=!0},onCompositionEnd:()=>{H.current=!1},onKeyDown:e=>{let t=e.nativeEvent;e.key===`Enter`&&!H.current&&!t.isComposing&&(e.preventDefault(),(le.current?.querySelector(`.ProseMirror`))?.focus())},placeholder:b.titlePlaceholder,className:`min-w-0 flex-1 border-none bg-transparent text-2xl font-bold text-fg placeholder:text-fg-muted/40 focus:outline-none`}),Re]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(Ut,{}),children:(0,$.jsx)(Vt,{initialContent:J.markdown??``,onChange:Ae,noteId:e},`wysiwyg-${e}`)})})]}),E===`source`&&(0,$.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start px-6 pt-4`,children:[(0,$.jsx)(`input`,{ref:pe,type:`text`,value:F,onChange:e=>Ce(e.target.value),placeholder:b.titlePlaceholder,className:`min-w-0 flex-1 border-none bg-transparent text-2xl font-bold text-fg placeholder:text-fg-muted/40 focus:outline-none`}),Re]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(Ut,{}),children:(0,$.jsx)(Ht,{initialContent:J.markdown??``,onChange:Ae,isDark:C},`source-${e}`)})})]}),E===`preview`&&(0,$.jsxs)(`div`,{className:`h-full overflow-y-auto px-6 py-4`,onClick:e=>{let t=e.target;t instanceof HTMLImageElement&&w(t.currentSrc||t.src,t.alt)},children:[F&&(0,$.jsx)(`h1`,{className:`mb-4 text-2xl font-bold text-fg`,children:F}),J.markdown?(0,$.jsx)(g,{noteId:e,content:J.markdown,className:`[&_img]:cursor-zoom-in`}):(0,$.jsx)(`p`,{className:`italic text-fg-muted`,children:b.emptyPreview})]})]})})]}),(0,$.jsx)(`div`,{ref:ue,className:o(`relative flex min-h-0 shrink-0 flex-col overflow-hidden`,!te&&`transition-[width] duration-300 ease-in-out`),style:{width:k?L:0},children:(0,$.jsxs)(`div`,{ref:K,className:`flex min-h-0 flex-1 flex-col`,style:{width:L},children:[(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,onPointerDown:e=>{e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId),ne(!0);let n=e.clientX,r=L,i=e.pointerId,a=0,o=L,s=L,c=()=>{a=0,s=o,k&&ue.current?.style.setProperty(`width`,`${s}px`),K.current?.style.setProperty(`width`,`${s}px`)},l=e=>{let t=r-(e.clientX-n);o=Math.max(280,Math.min(600,Math.round(t))),a===0&&(a=window.requestAnimationFrame(c))},u=()=>{a!==0&&(window.cancelAnimationFrame(a),c());try{t.releasePointerCapture(i)}catch{}ne(!1),ee(s),window.removeEventListener(`pointermove`,l),window.removeEventListener(`pointerup`,u),window.removeEventListener(`pointercancel`,u)};window.addEventListener(`pointermove`,l),window.addEventListener(`pointerup`,u),window.addEventListener(`pointercancel`,u)},className:o(`absolute left-0 top-0 z-10 h-full w-2 -translate-x-1/2 cursor-col-resize`,`before:content-[''] before:pointer-events-none before:absolute before:left-1/2 before:top-0 before:h-full before:w-px before:-translate-x-1/2`,`before:bg-transparent before:transition-[background-color] before:duration-150`,`hover:before:bg-edge/65 dark:hover:before:bg-edge/75`,te&&`before:!bg-edge/80 dark:before:!bg-edge/85`,`touch-none select-none`)}),(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-edge-subtle bg-surface-panel`,children:k===`history`?(0,$.jsx)(At,{noteId:e,activeTimestamp:j?.timestamp??null,onSelect:je,onClose:Me,onRestored:Ne}):k===`breakdown`?(0,$.jsx)(jt,{noteId:e,note:J??null,catalyzing:R,onCatalyze:X,onClose:()=>A(null),noteThreads:ve,openingChat:ie,onOpenChat:()=>Ee(!1),onOpenNewChat:()=>Ee(!0)}):null})]})})]})}var Jt=3e4;function Yt(){if(!(typeof MediaRecorder>`u`))return[`audio/webm;codecs=opus`,`audio/webm`,`audio/mp4`,`audio/ogg;codecs=opus`].find(e=>MediaRecorder.isTypeSupported(e))}function Xt({placeholder:e,sendLabel:t,onCapture:n,onImagePick:r,onVoiceCapture:i,recordingLabel:a=`Recording…`,imageDisabled:s=!1,voiceDisabled:c=!1,onDiscussionCapture:l,discussionCaptureLabel:u=`Record discussion`}){let[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(!1),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(0),[y,b]=(0,Q.useState)(!1),x=(0,Q.useRef)(null),S=(0,Q.useRef)(null),C=(0,Q.useRef)(null),w=(0,Q.useRef)([]),T=(0,Q.useRef)(0),E=(0,Q.useRef)(null),D=(0,Q.useRef)(null),O=(0,Q.useCallback)(()=>{E.current&&=(clearInterval(E.current),null),D.current&&=(clearTimeout(D.current),null),C.current?.getTracks().forEach(e=>e.stop()),C.current=null,S.current=null,w.current=[],g(!1),v(0)},[]);(0,Q.useEffect)(()=>()=>O(),[O]);let k=(0,Q.useCallback)(async()=>{let e=S.current;if(!e||e.state!==`recording`)return;b(!0),await new Promise(t=>{e.addEventListener(`stop`,()=>t(),{once:!0}),e.stop()});let t=Math.max(1,Math.round((Date.now()-T.current)/1e3)),n=e.mimeType||Yt()||`audio/webm`,r=new Blob(w.current,{type:n});if(O(),r.size>0&&i){let e=n.includes(`mp4`)?`m4a`:n.includes(`ogg`)?`ogg`:`webm`,a=new File([r],`voice-${Date.now()}.${e}`,{type:n});try{await i(a,t)}finally{b(!1)}return}b(!1)},[O,i]),A=(0,Q.useCallback)(async()=>{if(!(!i||y||h)&&!(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`))try{let e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=Yt(),n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e);C.current=e,S.current=n,w.current=[],T.current=Date.now(),n.ondataavailable=e=>{e.data.size>0&&w.current.push(e.data)},n.start(),g(!0),v(0),E.current=setInterval(()=>{v(Math.round((Date.now()-T.current)/1e3))},250),D.current=setTimeout(()=>{k()},Jt)}catch{O()}},[O,i,h,k,y]),M=(0,Q.useCallback)(()=>{if(h){k();return}A()},[h,A,k]),N=(0,Q.useCallback)(async e=>{let t=d.trim();if(!(!t||p)){m(!0),f(``);try{await n(t,e)}catch{f(t)}finally{m(!1),x.current?.focus()}}},[d,p,n]),P=(0,Q.useCallback)(e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),N()),e.key===`Enter`&&e.shiftKey&&(e.preventDefault(),N({navigate:!1}))},[N]),F=p||y;return(0,$.jsxs)(`div`,{className:o(`flex items-center gap-1.5 rounded-2xl border border-edge bg-surface-panel p-2 shadow-float dark:shadow-elevated`,`focus-within:border-accent focus-within:ring-1 focus-within:ring-accent`,h&&`border-danger ring-1 ring-danger/40`),children:[r&&(0,$.jsx)(`button`,{type:`button`,onClick:r,disabled:F||s||h,className:`shrink-0 rounded-lg p-2 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Image`,children:(0,$.jsx)(Ke,{className:`size-4`})}),i&&(0,$.jsx)(`button`,{type:`button`,onClick:M,disabled:F||c||p,className:o(`shrink-0 rounded-lg p-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,h?`bg-danger-soft text-danger hover:bg-danger-soft`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),"aria-label":h?`Stop recording`:`Voice`,"aria-pressed":h,children:h?(0,$.jsx)(G,{className:`size-4 fill-current`}):(0,$.jsx)(B,{className:`size-4`})}),l&&!h?(0,$.jsx)(`button`,{type:`button`,onClick:l,disabled:F,className:`shrink-0 rounded-lg p-2 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":u,title:u,children:(0,$.jsx)(j,{className:`size-4`,"aria-hidden":!0})}):null,h?(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate py-1.5 text-sm text-danger`,children:a.replace(`{{seconds}}`,String(_))}):(0,$.jsx)(`textarea`,{ref:x,value:d,onChange:e=>f(e.target.value),onKeyDown:P,placeholder:e,rows:1,disabled:F,className:`min-h-8 flex-1 resize-none bg-transparent py-1.5 text-sm leading-5 text-fg placeholder:text-fg-muted focus:outline-none disabled:opacity-60`,style:{fieldSizing:`content`}}),(0,$.jsx)(`button`,{type:`button`,disabled:!d.trim()||F||h,onClick:e=>void N({navigate:!e.shiftKey}),"aria-label":t,className:o(`shrink-0 rounded-lg p-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,d.trim()&&!F&&!h?`text-accent hover:bg-accent-soft`:`text-fg-disabled`),children:(0,$.jsx)(U,{className:`size-4`})})]})}var Zt={statusFilter:`all`,kindFilter:`all`,pinnedOnly:!1},Qt=240,$t=320,en=520,tn=560;function nn(e){if(globalThis.localStorage===void 0)return $t;try{let t=globalThis.localStorage.getItem(e);if(!t)return $t;let n=Number(t);return Number.isFinite(n)?n:$t}catch{return $t}}function rn(e,t){if(globalThis.localStorage!==void 0)try{globalThis.localStorage.setItem(e,String(Math.round(t)))}catch{}}var an={thought:Ee,todo:Pe,voice:B,media:Ke,bookmark:v,mixed:Ee,task:Pe};function on(e,t){return e.snippet?.trim()?e.snippet:e.coverAttachmentId?t.imageNote:t.noText}function sn(e,t){return e.statusFilter===t.patch.statusFilter&&e.kindFilter===t.patch.kindFilter&&e.pinnedOnly===t.patch.pinnedOnly}function cn(e,t){return`${e.replace(/\/$/,``)}/${encodeURIComponent(t)}`}function ln({selectedNoteId:e,basePath:t,managePageHeader:n=!1,showLibrary:r=!0,allowMediaCapture:i=!0,projectId:u,listTitle:f,listDescription:p,emptyText:m,emptyDescription:h,listWidthStorageKey:g=`xopc.notes.listWidth`}){let y=s(l(e=>e.language)).notes,b=!!c(e=>e.token),[x,C]=(0,Q.useReducer)(Se,Zt),[D,O]=(0,Q.useState)(!1),[A,j]=(0,Q.useState)(``),[M,P]=(0,Q.useState)(0),[F,I]=(0,Q.useState)(()=>nn(g)),[L,R]=(0,Q.useState)(!1),[z,ie]=(0,Q.useState)(!1),[V,oe]=(0,Q.useState)(!1),[H,U]=(0,Q.useState)(null),G=(0,Q.useRef)(null),se=(0,Q.useRef)(null),[le]=(0,Q.useState)(()=>Date.now()),K=a(),de=(0,Q.useCallback)(e=>{let t=G.current?.clientWidth??window.innerWidth,n=Math.max(Qt,t-tn);return Math.max(Qt,Math.min(Math.min(en,n),e))},[]),fe=(0,Q.useCallback)(e=>{let t=de(e);I(t),rn(g,t)},[de,g]);(0,Q.useLayoutEffect)(()=>{I(e=>de(e))},[de]);let{data:pe,mutate:q,isLoading:me}=d((0,Q.useMemo)(()=>b?[`notes-list`,u,x.statusFilter,x.kindFilter,x.pinnedOnly]:null,[b,u,x.statusFilter,x.kindFilter,x.pinnedOnly]),()=>ke({status:x.statusFilter===`all`?void 0:x.statusFilter,kind:x.kindFilter===`all`?void 0:x.kindFilter,projectId:u,pinned:x.pinnedOnly?!0:void 0,limit:100,sortBy:`createdAt`,sortOrder:`desc`}),{keepPreviousData:!0}),he=me&&!pe,Y=pe?.items??[],xe=pe?.total??0,Ce=A.trim(),{data:we,isLoading:Te}=d(b&&D&&Ce?[`notes-search`,u,Ce]:null,()=>ke({search:Ce,projectId:u,limit:30,sortBy:`updatedAt`,sortOrder:`desc`})),X=we?.items??[],De=e?Y.some(t=>t.id===e):!0;(0,Q.useEffect)(()=>{P(0)},[Ce]),(0,Q.useEffect)(()=>{M>=X.length&&P(Math.max(0,X.length-1))},[M,X.length]),(0,Q.useEffect)(()=>{let e=()=>{q()};return window.addEventListener(`note-updated`,e),()=>window.removeEventListener(`note-updated`,e)},[q]);let Ae=_(e=>e.setPageHeader),Ne=_(e=>e.clearPageHeader),Ie=xe>0?y.noteCount.replace(`{{count}}`,String(xe)):null,Le=y.searchDialogTitle,Re=y.searchClose,Be=y.searchClear,Ve=(0,Q.useMemo)(()=>(0,$.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),className:o(`inline-flex h-9 items-center gap-2 rounded-lg border border-edge bg-surface-base px-3 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,T),"aria-label":Le,children:[(0,$.jsx)(ze,{className:`size-4`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:Le})]}),[Le]);(0,Q.useLayoutEffect)(()=>{if(n)return b?(Ae({startExtra:null,main:(0,$.jsxs)(`div`,{className:o(`flex min-w-0 items-center gap-2`,T),children:[(0,$.jsx)(`h1`,{className:`min-w-0 truncate text-base font-semibold tracking-tight text-fg`,children:f??y.title}),Ie?(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:Ie}):null]}),end:Ve}),()=>Ne()):(Ne(),()=>Ne())},[Ne,b,Ve,f,n,y.title,Ie,e,Ae]);let He=(0,Q.useMemo)(()=>({justNow:y.justNow,minutesAgo:y.minutesAgo,today:y.today,yesterday:y.yesterday,daysAgo:y.daysAgo}),[y.justNow,y.minutesAgo,y.today,y.yesterday,y.daysAgo]),Ue=(0,Q.useMemo)(()=>[{id:`recent`,label:y.viewRecent,description:y.viewRecentDescription,icon:ye,patch:{statusFilter:`all`,kindFilter:`all`,pinnedOnly:!1}},{id:`inbox`,label:y.filterInbox,description:y.viewInboxDescription,icon:ue,patch:{statusFilter:`inbox`,kindFilter:`all`,pinnedOnly:!1}},{id:`pinned`,label:y.pinned,description:y.viewPinnedDescription,icon:E,patch:{statusFilter:`all`,kindFilter:`all`,pinnedOnly:!0}},{id:`tasks`,label:y.viewTasks,description:y.viewTasksDescription,icon:Pe,patch:{statusFilter:`all`,kindFilter:`todo`,pinnedOnly:!1}},{id:`voice`,label:y.kindVoice,description:y.viewVoiceDescription,icon:B,patch:{statusFilter:`all`,kindFilter:`voice`,pinnedOnly:!1}},{id:`media`,label:y.kindMedia,description:y.viewMediaDescription,icon:Ke,patch:{statusFilter:`all`,kindFilter:`media`,pinnedOnly:!1}},{id:`bookmarks`,label:y.kindBookmark,description:y.viewBookmarksDescription,icon:v,patch:{statusFilter:`all`,kindFilter:`bookmark`,pinnedOnly:!1}},{id:`processed`,label:y.filterProcessed,description:y.viewProcessedDescription,icon:ge,patch:{statusFilter:`processed`,kindFilter:`all`,pinnedOnly:!1}},{id:`archive`,label:y.filterArchived,description:y.viewArchiveDescription,icon:Qe,patch:{statusFilter:`archived`,kindFilter:`all`,pinnedOnly:!1}}],[y.filterArchived,y.filterInbox,y.filterProcessed,y.kindBookmark,y.kindMedia,y.kindVoice,y.pinned,y.viewArchiveDescription,y.viewBookmarksDescription,y.viewInboxDescription,y.viewMediaDescription,y.viewPinnedDescription,y.viewProcessedDescription,y.viewRecent,y.viewRecentDescription,y.viewTasks,y.viewTasksDescription,y.viewVoiceDescription]),We=Ue.find(e=>sn(x,e))??Ue[0],Ge=f??We.label,Je=p??We.description,Ye=(0,Q.useCallback)(async(e,n)=>{let r=u?await Oe({markdown:e,kind:`thought`,projectId:u,channel:`web`}):await J(e,`web`);await q(),n?.navigate!==!1&&K(cn(t,r.id))},[t,q,K,u]),Xe=(0,Q.useCallback)(async()=>{if(!V){oe(!0);try{let e=await Oe({markdown:``,kind:`thought`,projectId:u,channel:`web`});C({type:`patch`,patch:Zt}),await q(),U(e.id),K(cn(t,e.id))}catch(e){ae({type:`error`,title:y.createBlankFailed,message:e instanceof Error?e.message:y.createBlankFailedHint})}finally{oe(!1)}}},[t,V,q,y.createBlankFailed,y.createBlankFailedHint,K,u]),Ze=(0,Q.useCallback)(()=>{let e=document.createElement(`input`);e.type=`file`,e.accept=`image/*`,e.onchange=async()=>{let t=e.files?.[0];if(t)try{await _e(t,`web`),await q()}catch(e){ae({type:`error`,title:y.imageUploadFailed,message:e instanceof Error?e.message:y.imageUploadFailedHint})}},e.click()},[q,y.imageUploadFailed,y.imageUploadFailedHint]),Z=(0,Q.useCallback)(async(e,t)=>{try{await W(e,t,`web`),await q()}catch(e){ae({type:`error`,title:y.voiceUploadFailed,message:e instanceof Error?e.message:y.voiceUploadFailedHint})}},[q,y.voiceUploadFailed,y.voiceUploadFailedHint]),$e=(0,Q.useCallback)(async(e,t)=>{await qe(e,{pinned:t}),await q()},[q]),et=(0,Q.useCallback)(async e=>{await qe(e,{status:`archived`}),await q()},[q]),tt=(0,Q.useCallback)(async e=>{await Fe(e),await q()},[q]),nt=(0,Q.useCallback)(e=>{K(cn(t,e))},[t,K]),rt=(0,Q.useCallback)(e=>{K(cn(t,e)),O(!1)},[t,K]),it=(0,Q.useCallback)(e=>{if(X.length){if(e.key===`ArrowDown`)e.preventDefault(),P(e=>Math.min(X.length-1,e+1));else if(e.key===`ArrowUp`)e.preventDefault(),P(e=>Math.max(0,e-1));else if(e.key===`Enter`){e.preventDefault();let t=X[M]??X[0];t&&rt(t.id)}}},[M,rt,X]),at=(0,Q.useCallback)(e=>{e.preventDefault();let t=e.currentTarget,n=se.current;t.setPointerCapture(e.pointerId),R(!0);let r=G.current?.clientWidth??window.innerWidth,i=Math.max(Qt,r-tn),a=Math.min(en,i),o=e=>Math.max(Qt,Math.min(a,e)),s=e.clientX,c=o(F),l=e.pointerId,u=0,d=c,f=c;n&&(n.style.transition=`none`,n.style.width=`${c}px`);let p=()=>{u=0,f=d,n&&(n.style.width=`${f}px`)},m=e=>{d=o(c+e.clientX-s),u===0&&(u=window.requestAnimationFrame(p))},h=()=>{u!==0&&(window.cancelAnimationFrame(u),p());try{t.releasePointerCapture(l)}catch{}R(!1),G.current?.style.setProperty(`--notes-list-width`,`${f}px`),n&&(n.style.removeProperty(`transition`),n.style.removeProperty(`width`)),I(f),rn(g,f),window.removeEventListener(`pointermove`,m),window.removeEventListener(`pointerup`,h),window.removeEventListener(`pointercancel`,h)};window.addEventListener(`pointermove`,m),window.addEventListener(`pointerup`,h),window.addEventListener(`pointercancel`,h)},[g,F]);(0,Q.useEffect)(()=>{let e=e=>{e.defaultPrevented||e.repeat||e.key.toLowerCase()!==`n`||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey||(e.preventDefault(),Xe())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Xe]);let ot=(0,Q.useCallback)(e=>{e.key===`ArrowLeft`?(e.preventDefault(),fe(F-16)):e.key===`ArrowRight`?(e.preventDefault(),fe(F+16)):e.key===`Home`?(e.preventDefault(),fe(Qt)):e.key===`End`&&(e.preventDefault(),fe(en))},[fe,F]);return b?(0,$.jsxs)(`div`,{ref:G,className:`flex h-full min-h-0 w-full flex-1 overflow-hidden bg-surface-panel`,style:{"--notes-list-width":`${F}px`},children:[(0,$.jsxs)(`section`,{ref:se,className:o(`relative flex min-h-0 w-full shrink-0 flex-col overflow-hidden bg-surface-panel`,!L&&`lg:transition-[width] lg:duration-[280ms] lg:ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:lg:transition-none`,z?`lg:w-0 lg:min-w-0 lg:max-w-0 lg:pointer-events-none`:`lg:w-[var(--notes-list-width)]`,e&&`hidden lg:flex`),"aria-hidden":z?!0:void 0,children:[(0,$.jsx)(`div`,{className:`shrink-0 border-b border-edge-subtle p-3`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[r?(0,$.jsx)(ve,{value:We.id,onChange:e=>{let t=Ue.find(t=>t.id===e.target.value);t&&C({type:`patch`,patch:t.patch})},className:`-ml-1 block max-w-44 truncate rounded-lg border border-transparent bg-transparent px-1 py-0.5 text-sm font-semibold text-fg transition-colors hover:border-edge hover:bg-surface-base focus:border-accent focus:bg-surface-base focus:outline-none focus:ring-1 focus:ring-accent`,"aria-label":y.libraryTitle,children:Ue.map(e=>(0,$.jsx)(ce,{value:e.id,children:e.label},e.id))}):(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:Ge}),(0,$.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:Ie??Je})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:()=>ie(!0),className:`hidden size-8 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent lg:inline-flex`,"aria-label":y.collapseNotesList,title:y.collapseNotesList,children:(0,$.jsx)(te,{className:`size-4`,strokeWidth:1.5,"aria-hidden":!0})}),(0,$.jsx)(`button`,{type:`button`,onClick:Xe,disabled:V,className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":y.createBlankNote,title:y.createBlankShortcut,children:(0,$.jsx)(be,{className:`size-4`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>O(!0),className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":y.searchDialogTitle,children:(0,$.jsx)(ze,{className:`size-4`,"aria-hidden":!0})})]})]})}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 py-3 [scrollbar-gutter:stable]`,children:he?(0,$.jsx)(`div`,{className:`flex flex-col gap-2`,children:[1,2,3,4].map(e=>(0,$.jsx)(`div`,{className:`h-20 animate-pulse rounded-lg bg-surface-hover`},e))}):Y.length===0?(0,$.jsxs)(`div`,{className:`flex min-h-[min(40vh,20rem)] flex-col items-center justify-center gap-2 px-6 py-16 text-center`,children:[(0,$.jsx)(Ee,{className:`size-8 text-fg-muted`}),(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg-muted`,children:e&&!De?y.noteOutsideCurrentView:m??y.noNotes}),e&&!De?null:(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:h??y.noNotesDescription})]}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e&&!De?(0,$.jsx)(`div`,{className:`mb-2 rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 text-xs leading-5 text-fg-muted`,children:y.noteOutsideCurrentView}):null,Y.map((t,n)=>{let r=n>0?ut(Y[n-1].createdAt):null;return(0,$.jsxs)(`div`,{children:[ut(t.createdAt)!==r&&(0,$.jsx)(`div`,{className:o(`px-3 pb-1.5 pt-2 text-xs font-medium text-fg-muted`,n===0&&`pt-0`),children:lt(t.createdAt,le,He)}),(0,$.jsx)(gt,{note:t,selected:t.id===e,onPress:nt,onPin:$e,onArchive:et,onDelete:tt,timeLabels:He,labels:{pin:y.pin,unpin:y.unpin,archive:y.archive,delete:y.delete,imageNote:y.imageNote,noText:y.noText}})]},t.id)})]})}),(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge-subtle p-3`,children:(0,$.jsx)(Xt,{placeholder:y.quickCapturePlaceholder,sendLabel:y.send,onCapture:Ye,onImagePick:i?Ze:void 0,onVoiceCapture:i?Z:void 0,recordingLabel:y.recording,discussionCaptureLabel:y.discussionCapture.title,onDiscussionCapture:()=>Me(u)})})]}),(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":y.resizeNotesList,"aria-valuemin":Qt,"aria-valuemax":en,"aria-valuenow":Math.round(F),tabIndex:0,onPointerDown:at,onDoubleClick:()=>fe($t),onKeyDown:ot,title:y.resizeNotesList,className:o(`group relative hidden shrink-0 cursor-col-resize touch-none select-none items-center justify-center lg:flex`,`lg:transition-[width,opacity] lg:duration-[280ms] lg:ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:lg:transition-none`,z?`lg:w-0 lg:opacity-0 lg:pointer-events-none`:`lg:w-3 lg:opacity-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-0`),children:(0,$.jsx)(`span`,{"aria-hidden":!0,className:o(`h-8 w-1 rounded-pill opacity-0 transition-[background-color,opacity,transform] duration-150`,`bg-edge-strong/55 group-hover:opacity-100 group-focus-visible:opacity-100`,`group-hover:scale-y-110 group-focus-visible:scale-y-110`,L&&`bg-accent opacity-100 scale-y-125`)})}),(0,$.jsxs)(`section`,{className:o(`relative min-w-0 flex-1 bg-surface-panel`,!e&&`hidden lg:flex`),children:[z?(0,$.jsx)(`button`,{type:`button`,onClick:()=>ie(!1),className:`absolute left-3 top-3 z-10 hidden size-8 items-center justify-center rounded-lg border border-edge bg-surface-base text-fg-muted shadow-surface transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent lg:inline-flex`,"aria-label":y.expandNotesList,title:y.expandNotesList,children:(0,$.jsx)(te,{className:`size-4`,strokeWidth:1.5,"aria-hidden":!0})}):null,e?(0,$.jsx)(Gt,{noteId:e,onBack:()=>K(t),onSaved:()=>void q(),backButtonClassName:`lg:hidden`,clearHeaderOnCleanup:!1,onOpenSearch:()=>O(!0),autoFocus:e===H,onAutoFocusConsumed:()=>U(null)}):(0,$.jsx)(`div`,{className:`flex h-full min-h-0 flex-1 items-center justify-center px-8 text-center`,children:(0,$.jsxs)(`div`,{className:`max-w-sm`,children:[(0,$.jsx)(Ee,{className:`mx-auto size-9 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`h2`,{className:`mt-4 text-base font-semibold text-fg`,children:y.emptyEditorTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:y.emptyEditorDescription}),(0,$.jsxs)(`button`,{type:`button`,onClick:Xe,disabled:V,className:`mt-5 inline-flex items-center gap-2 rounded-lg bg-accent px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,children:[(0,$.jsx)(be,{className:`size-4`,"aria-hidden":!0}),V?y.creatingBlankNote:y.createBlankNote]})]})})]}),(0,$.jsx)(ne,{open:D,onOpenChange:O,children:(0,$.jsxs)(k,{children:[(0,$.jsx)(S,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,$.jsxs)(ee,{className:`fixed left-1/2 top-24 z-[90] w-[min(36rem,calc(100vw-2rem))] -translate-x-1/2 overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,$.jsx)(je,{className:`text-sm font-semibold text-fg`,children:Le}),(0,$.jsx)(re,{className:`sr-only`,children:y.searchPlaceholder}),(0,$.jsx)(w,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":Re,children:(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0})})})]}),(0,$.jsxs)(`div`,{className:`p-4`,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(ze,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`input`,{type:`search`,value:A,onChange:e=>j(e.target.value),onKeyDown:it,placeholder:y.searchPlaceholder,className:`w-full rounded-lg border border-edge bg-surface-base py-2 pl-9 pr-10 text-sm text-fg placeholder:text-fg-muted focus:border-accent focus:outline-none focus:ring-1 focus:ring-accent`}),A?(0,$.jsx)(`button`,{type:`button`,onClick:()=>j(``),className:`absolute right-2 top-1/2 inline-flex size-7 -translate-y-1/2 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":Be,children:(0,$.jsx)(N,{className:`size-3.5`,"aria-hidden":!0})}):null]}),(0,$.jsx)(`div`,{className:`mt-4 max-h-[min(28rem,calc(100vh-14rem))] overflow-y-auto [scrollbar-gutter:stable]`,children:Ce?Te&&!we?(0,$.jsx)(`div`,{className:`flex flex-col gap-2`,children:[1,2,3].map(e=>(0,$.jsx)(`div`,{className:`h-16 animate-pulse rounded-lg bg-surface-hover`},e))}):X.length===0?(0,$.jsxs)(`div`,{className:`flex min-h-40 flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,$.jsx)(Ee,{className:`size-7 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:y.searchNoResults}),(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:y.searchNoResultsDescription})]}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`p`,{className:`px-2 pb-1 text-xs text-fg-muted`,children:y.searchResultsCount.replace(`{{count}}`,String(we?.total??X.length))}),X.map((e,t)=>{let n=an[e.kind]||Ee,r=on(e,{imageNote:y.imageNote,noText:y.noText});return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>rt(e.id),onMouseEnter:()=>P(t),className:o(`flex w-full items-start gap-3 rounded-lg px-3 py-2.5 text-left transition-colors`,t===M?`bg-surface-active`:`hover:bg-surface-hover`),children:[(0,$.jsx)(n,{className:`mt-0.5 size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.title||r}),(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:ct(e.updatedAt,le,He)})]}),e.title?(0,$.jsx)(`span`,{className:`mt-0.5 block line-clamp-2 text-xs leading-5 text-fg-muted`,children:r}):null,e.tags?.length?(0,$.jsx)(`span`,{className:`mt-1 flex min-w-0 flex-wrap gap-1`,children:e.tags.slice(0,3).map(e=>(0,$.jsx)(`span`,{className:`max-w-24 truncate rounded-md bg-surface-hover px-1.5 py-0.5 text-xs text-fg-muted`,children:e},e))}):null]})]},e.id)})]}):(0,$.jsxs)(`div`,{className:`flex min-h-40 flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,$.jsx)(ze,{className:`size-7 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:y.searchEmptyTitle}),(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:y.searchEmptyDescription})]})})]})]})]})})]}):(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,$.jsx)(Ee,{className:`size-10 text-fg-muted`}),(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:y.needToken})]})}export{et as n,ln as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{d as i,t as a}from"./chunk-KS7C4IRE-BMhrPKJC.js";import{n as o}from"./locale-store-BNC8HUCI.js";import{o as s,r as c,t as l}from"./work-copy-Cwyan9Sn.js";import{Do as u,Hl as d,Iu as f,eo as p,fc as m,ht as h,js as g,mu as _}from"./index-BA56bQ68.js";var v=n(),y=e(t(),1),b=r();function x(){let e=(0,v.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,b.jsxs)(`div`,{className:`space-y-4`,"aria-busy":!0,children:[(0,b.jsx)(p,{className:`h-28 rounded-2xl`}),(0,b.jsx)(p,{className:`h-52 rounded-2xl`}),(0,b.jsx)(p,{className:`h-40 rounded-2xl`})]}),e[0]=t):t=e[0],t}function S(e){let t=(0,v.c)(6),{items:n,empty:r}=e;if(n.length===0){let e;return t[0]===r?e=t[1]:(e=(0,b.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:r}),t[0]=r,t[1]=e),e}let i;t[2]===n?i=t[3]:(i=n.map(C),t[2]=n,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,b.jsx)(`ul`,{className:`space-y-2`,children:i}),t[4]=i,t[5]=a),a}function C(e){return(0,b.jsxs)(`li`,{className:`flex gap-2 text-sm leading-6 text-fg`,children:[(0,b.jsx)(_,{className:`mt-1 size-4 shrink-0 text-success`,"aria-hidden":!0}),(0,b.jsx)(`span`,{children:e})]},e)}function w(){let{outcomeId:e=``}=i(),t=o(e=>e.language),n=(0,y.useMemo)(()=>l(t),[t]),r=u(e=>e.setPageHeader),p=u(e=>e.clearPageHeader),[_,v]=(0,y.useState)(null),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(!1),D=async()=>{v(await s(e))};(0,y.useEffect)(()=>{let t=!0;return w(null),s(e).then(e=>{t&&v(e)}).catch(()=>{t&&w(n.outcomeNotFound)}),()=>{t=!1}},[n.outcomeNotFound,e]);let O=async t=>{E(!0),w(null);try{await c(e,t),await D()}catch{w(n.actionFailed)}finally{E(!1)}};return(0,y.useLayoutEffect)(()=>(r({startExtra:(0,b.jsx)(a,{to:`/work`,className:`flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":n.backToWork,children:(0,b.jsx)(f,{className:`size-4`,"aria-hidden":!0})}),main:_?(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:_.outcome.objective}),(0,b.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.outcomeStatuses[_.outcome.userStatus]})]}):null,end:null}),()=>p()),[p,n.backToWork,n.outcomeStatuses,_,r]),(0,b.jsx)(`main`,{className:`mx-auto flex w-full max-w-4xl flex-1 flex-col gap-5 px-4 py-7 sm:px-6 lg:py-9`,children:C?(0,b.jsx)(`div`,{className:`rounded-xl border border-danger/25 bg-danger-soft px-4 py-3 text-sm text-danger`,children:C}):_?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-panel p-5`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:n.outcomeStatuses[_.outcome.userStatus]}),(0,b.jsx)(`h2`,{className:`mt-2 text-xl font-semibold tracking-tight text-fg`,children:_.outcome.objective})]}),(0,b.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2.5 py-1 text-xs font-medium text-accent-fg`,children:n.outcomeStatuses[_.outcome.userStatus]})]}),_.outcome.internalStatus!==`completed`&&_.outcome.internalStatus!==`cancelled`?(0,b.jsxs)(`div`,{className:`mt-5 flex flex-wrap gap-2 border-t border-edge-subtle pt-4`,children:[_.outcome.internalStatus===`paused`?(0,b.jsx)(g,{type:`button`,variant:`primary`,disabled:T,onClick:()=>void O(`resume`),children:n.resumeOutcome}):_.outcome.internalStatus===`captured`?(0,b.jsx)(g,{type:`button`,variant:`primary`,disabled:T,onClick:()=>void O(`run`),children:n.runOutcome}):(0,b.jsx)(g,{type:`button`,variant:`secondary`,disabled:T,onClick:()=>void O(`pause`),children:n.pauseOutcome}),(0,b.jsx)(g,{type:`button`,variant:`ghost`,disabled:T,onClick:()=>void O(`cancel`),children:n.cancelOutcome})]}):null]}),(0,b.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-panel p-5`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(m,{className:`size-4 text-accent`,"aria-hidden":!0}),(0,b.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:n.successDefinition})]}),(0,b.jsxs)(`div`,{className:`mt-5 grid gap-6 md:grid-cols-2`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`h3`,{className:`mb-3 text-xs font-medium text-fg-subtle`,children:n.successDefinition}),(0,b.jsx)(S,{items:_.outcome.contract?.acceptanceCriteria??[],empty:n.noDefinition})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`h3`,{className:`mb-3 text-xs font-medium text-fg-subtle`,children:n.deliverables}),(0,b.jsx)(S,{items:_.outcome.contract?.deliverables??[],empty:n.noDefinition})]}),(_.outcome.contract?.constraints.length??0)>0?(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`h3`,{className:`mb-3 text-xs font-medium text-fg-subtle`,children:n.constraints}),(0,b.jsx)(S,{items:_.outcome.contract?.constraints??[],empty:n.noDefinition})]}):null,(_.outcome.contract?.approvalRequired.length??0)>0?(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`h3`,{className:`mb-3 text-xs font-medium text-fg-subtle`,children:n.approvalRequired}),(0,b.jsx)(S,{items:_.outcome.contract?.approvalRequired??[],empty:n.noDefinition})]}):null]})]}),(0,b.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-panel p-5`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(d,{className:`size-4 text-success`,"aria-hidden":!0}),(0,b.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:n.executionReceipts})]}),_.receipts.length===0?(0,b.jsx)(`p`,{className:`mt-4 text-sm text-fg-muted`,children:n.noReceipts}):(0,b.jsx)(`div`,{className:`mt-4 divide-y divide-edge-subtle`,children:_.receipts.map(e=>(0,b.jsx)(`article`,{className:`py-4 first:pt-0 last:pb-0`,children:(0,b.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:e.summary}),(0,b.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:e.completedAt?h(new Date(e.completedAt)):n.outcomeStatuses.running})]}),(0,b.jsx)(`span`,{className:`shrink-0 text-xs font-medium text-fg-subtle`,children:n.verificationStatuses[e.verification.status]})]})},e.runId))})]})]}):(0,b.jsx)(x,{})})}export{w as OutcomeDetailPage};
@@ -1 +0,0 @@
1
- import{a as e,l as t,n,s as r,t as i}from"./schemas-C6onAggk.js";var a=i([`outcome`,`project`,`note`,`work_item`,`goal`,`workflow_definition`,`workflow_run`,`automation`,`local_app`,`file`,`session`,`settings`]),o=i([`open`,`preview`,`edit`,`continue_in_chat`,`run`,`pause`,`resume`,`share`,`reveal`,`configure`]),s=r({kind:a,id:t().min(1),title:t().min(1),summary:t().optional(),status:t().optional(),revision:t().optional(),projectId:t().optional(),capabilities:n(o).default([])}),c=i([`created`,`updated`,`opened`,`started`,`completed`,`failed`]),l=r({version:e(1),operation:c,primary:s.optional(),related:n(s).optional()});function u(e){let t=l.safeParse(e);return t.success?t.data:null}var d=`xopc-product-delivery:`;function f(e){let t=e.split(/\s+/).find(e=>e.startsWith(d));if(!t)return null;try{return u(JSON.parse(decodeURIComponent(t.slice(22))))}catch{return null}}function p(e){let t=encodeURIComponent(e.id);switch(e.kind){case`outcome`:return`/work/${t}`;case`project`:return`/projects/${t}`;case`note`:return`/notes/${t}`;case`work_item`:return`/work-items/${t}`;case`goal`:return`/goals/${t}`;case`workflow_definition`:return`/workflows/${t}`;case`workflow_run`:return`/workflows/runs/${t}`;case`automation`:return`/automations?automation=${t}`;case`local_app`:return`/local-apps/${t}`;case`session`:return`/chat/${t}`;case`settings`:return`/settings/${e.id.replace(/^\/+/,``).split(`/`).map(encodeURIComponent).join(`/`)}`;case`file`:return null}}function m(e){return e.kind===`local_app`?`/open?${new URLSearchParams({kind:e.kind,id:e.id}).toString()}`:p(e)}function h(e){try{let t=new URL(e);if(t.protocol!==`xopc:`||t.hostname!==`open`)return null;let n=a.safeParse(t.searchParams.get(`kind`)),r=t.searchParams.get(`id`)?.trim();return n.success&&r?{kind:n.data,id:r}:null}catch{return null}}export{p as a,m as i,f as n,h as r,u as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{d as i,f as a,l as o,t as s}from"./chunk-KS7C4IRE-BMhrPKJC.js";import{t as c}from"./check-DUBLcKHA.js";import{t as l}from"./cn-JdwAhgNB.js";import{t as u}from"./copy-to-clipboard-HOJ79TWv.js";import{t as d}from"./messages-H_iJjnEM.js";import{l as f,n as p,o as m,r as h,s as g}from"./locale-store-BNC8HUCI.js";import{$i as _,A as v,Aa as y,Ba as b,Bc as x,Do as S,Dt as C,Et as w,Fa as T,Fc as E,Ga as D,Gl as O,Go as k,Gr as A,Ha as j,Ho as M,Ia as N,Ic as P,Iu as F,Ja as I,Js as L,Kl as R,Ko as z,La as B,Ma as V,N as H,Na as U,Nc as W,Nl as G,Ns as ee,O as te,Oi as ne,Pa as re,Pl as ie,Ps as ae,Q as oe,Qi as se,Ql as ce,Ra as le,Rl as ue,Rr as de,S as fe,Sc as pe,Tt as me,Ua as he,Uo as ge,Us as _e,Va as ve,Vo as ye,Wa as be,Wo as xe,Ya as Se,Yl as Ce,Zc as we,Zi as Te,_s as Ee,_u as De,a as Oe,aa as ke,ac as Ae,as as je,b as Me,bc as Ne,cc as Pe,d as Fe,ea as Ie,eo as Le,er as Re,gs as ze,gu as Be,hl as Ve,hs as He,ht as Ue,i as We,ia as Ge,is as Ke,ja as qe,jc as Je,jl as Ye,js as K,ka as Xe,l as Ze,ll as Qe,m as $e,mc as et,ms as tt,mu as nt,na as rt,o as it,oa as at,p as ot,ps as st,qo as ct,ra as lt,ru as ut,s as dt,sa as ft,ta as pt,tc as mt,u as ht,vc as gt,vu as _t,wl as vt,yu as yt,za as bt,zc as xt,zl as St,zu as Ct}from"./index-BA56bQ68.js";import{t as wt}from"./notes-workbench-BD297EZt.js";import{t as Tt}from"./page-tabs-BnSzIjH0.js";import{t as Et}from"./directory-picker-path-field-C8_lsW6S.js";import{f as Dt,o as Ot,r as kt}from"./skills-page.utils-C2SHvq8V.js";var q=e(t(),1),J=n();function At(e){return g(h(`/api/projects/${encodeURIComponent(e)}/skills`))}function jt(e,t){return g(h(`/api/projects/${encodeURIComponent(e)}/skills/${encodeURIComponent(t)}`))}function Mt(e,t){let n=new FormData;return n.set(`file`,t),g(h(`/api/projects/${encodeURIComponent(e)}/skills/upload`),{method:`POST`,body:n})}function Nt(e,t,n={}){return g(h(`/api/projects/${encodeURIComponent(e)}/skills/marketplace/install`),{method:`POST`,body:JSON.stringify({name:t,...n})})}function Pt(e,t){return g(h(`/api/projects/${encodeURIComponent(e)}/skills/source/install`),{method:`POST`,body:JSON.stringify({source:t})})}function Ft(e,t){return g(h(`/api/projects/${encodeURIComponent(e)}/skills/${encodeURIComponent(t)}`),{method:`DELETE`})}var Y=r();function It({projectId:e,copy:t}){let[n,r]=(0,q.useState)([]),[i,a]=(0,q.useState)(``),[o,s]=(0,q.useState)(!0),[c,u]=(0,q.useState)(!1),[d,f]=(0,q.useState)(``),[p,m]=(0,q.useState)(null),[h,g]=(0,q.useState)(null),[_,v]=(0,q.useState)(``),[y,b]=(0,q.useState)(1),[x,S]=(0,q.useState)(null),[C,w]=(0,q.useState)(!1),[T,E]=(0,q.useState)(``),[D,A]=(0,q.useState)(``),j=(0,q.useRef)(null),N=(0,q.useCallback)(async()=>{s(!0),f(``);try{let t=await At(e);r(t.items),a(t.skillsRoot)}catch(e){f(e instanceof Error?e.message:String(e))}finally{s(!1)}},[e]);(0,q.useEffect)(()=>{N()},[N]),(0,q.useEffect)(()=>{if(p!==`marketplace`)return;let e=new AbortController,t=window.setTimeout(()=>{w(!0),E(``),Dt({q:_,page:y,pageSize:8,sort:`downloads`,signal:e.signal}).then(S).catch(t=>{e.signal.aborted||E(t instanceof Error?t.message:String(t))}).finally(()=>{e.signal.aborted||w(!1)})},250);return()=>{window.clearTimeout(t),e.abort()}},[p,y,_]);async function P(e){u(!0),f(``);try{await e(),m(null),A(``),await N()}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}}async function F(t){f(``);try{g((await jt(e,t)).skill)}catch(e){f(e instanceof Error?e.message:String(e))}}async function I(n){if(window.confirm(t.removeConfirm.replace(`{{name}}`,n.name))){u(!0);try{await Ft(e,n.id),await N()}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}}}return(0,Y.jsxs)(`section`,{id:`project-panel-skills`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-skills`,className:`grid content-start gap-4`,children:[(0,Y.jsxs)(`div`,{className:`rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.title}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:t.description})]}),(0,Y.jsxs)(ze,{children:[(0,Y.jsx)(Ee,{asChild:!0,children:(0,Y.jsxs)(K,{type:`button`,children:[(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0}),t.add,(0,Y.jsx)(yt,{className:`size-3.5`,"aria-hidden":!0})]})}),(0,Y.jsx)(He,{children:(0,Y.jsxs)(tt,{align:`end`,sideOffset:8,className:`z-50 w-72 rounded-lg border border-edge bg-surface-panel p-1.5 shadow-xl`,children:[(0,Y.jsx)(Lt,{icon:mt,title:t.marketplace,hint:t.marketplaceHint,onClick:()=>m(`marketplace`)}),(0,Y.jsx)(Lt,{icon:Ye,title:t.source,hint:t.sourceHint,onClick:()=>m(`source`)}),(0,Y.jsx)(Lt,{icon:_e,title:t.upload,hint:t.uploadHint,onClick:()=>j.current?.click()})]})})]}),(0,Y.jsx)(`input`,{ref:j,type:`file`,accept:`.zip,application/zip`,className:`hidden`,onChange:t=>{let n=t.target.files?.[0];n&&P(()=>Mt(e,n)),t.target.value=``}})]}),i?(0,Y.jsxs)(`p`,{className:`mt-3 break-all font-mono text-xs text-fg-subtle`,children:[t.path,`: `,i]}):null]}),d?(0,Y.jsx)(`p`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:d}):null,o?(0,Y.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:[0,1,2].map(e=>(0,Y.jsx)(Le,{className:`h-36 rounded-lg`},e))}):n.length?(0,Y.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:n.map(e=>(0,Y.jsxs)(`article`,{className:`flex min-h-36 flex-col rounded-lg border border-edge bg-surface-panel p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Ct,{className:`size-4 text-accent-fg`,"aria-hidden":!0}),(0,Y.jsx)(`h3`,{className:`min-w-0 truncate text-sm font-semibold text-fg`,children:e.name})]}),(0,Y.jsx)(`p`,{className:`mt-2 line-clamp-2 flex-1 text-sm leading-5 text-fg-muted`,children:e.description||e.id}),(0,Y.jsxs)(`div`,{className:`mt-3 flex items-center justify-between gap-2`,children:[(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,onClick:()=>void F(e.id),children:[(0,Y.jsx)(O,{className:`size-3.5`,"aria-hidden":!0}),t.view]}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs text-red-600`,disabled:c,onClick:()=>void I(e),children:[(0,Y.jsx)(L,{className:`size-3.5`,"aria-hidden":!0}),t.remove]})]})]},e.id))}):(0,Y.jsxs)(`div`,{className:`rounded-lg border border-dashed border-edge bg-surface-panel px-6 py-12 text-center`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:t.empty}),(0,Y.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:t.emptyHint})]}),(0,Y.jsx)(ye,{open:p!==null,onOpenChange:e=>{e||m(null)},children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-50 bg-black/45`}),(0,Y.jsxs)(ge,{className:l(`fixed left-1/2 top-1/2 z-50 flex -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-xl`,p===`marketplace`?`h-[min(46rem,calc(100vh-2rem))] w-[min(58rem,calc(100vw-2rem))]`:`h-[min(22rem,calc(100vh-2rem))] w-[min(36rem,calc(100vw-2rem))]`),children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-edge px-5 py-4`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:p===`marketplace`?t.marketplace:t.source}),(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`size-9 p-0`,children:(0,Y.jsx)(ae,{className:`size-4`})})})]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:p===`marketplace`?(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:t.marketplace}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:t.marketplaceHint}),(0,Y.jsxs)(`div`,{className:`relative mt-3`,children:[(0,Y.jsx)(gt,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{className:`h-10 w-full rounded-md border border-edge bg-surface-base pl-9 pr-3 text-sm outline-none focus:border-accent`,value:_,onChange:e=>{v(e.target.value),b(1)},placeholder:t.marketplacePlaceholder,autoFocus:!0})]}),T?(0,Y.jsx)(`p`,{className:`mt-3 text-sm text-red-600 dark:text-red-300`,children:T}):null,C&&!x?(0,Y.jsx)(`div`,{className:`mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[0,1,2,3].map(e=>(0,Y.jsx)(Le,{className:`h-32 rounded-lg`},e))}):x?.items.length?(0,Y.jsx)(`div`,{className:`mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2`,children:x.items.map(r=>{let i=r.providerId??x.provider,a=kt(r,i),o=n.some(e=>e.id===r.id||e.id===a||e.name===r.name);return(0,Y.jsxs)(`article`,{className:`group flex min-h-32 gap-3 rounded-lg border border-edge bg-surface-base p-3`,children:[(0,Y.jsx)(Ot,{name:r.name,className:`size-10`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`h4`,{className:`truncate text-sm font-semibold text-fg`,children:r.name}),(0,Y.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:r.description||`—`}),(0,Y.jsxs)(`div`,{className:`mt-auto flex items-end justify-between gap-2 pt-2`,children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-fg-subtle`,children:[(0,Y.jsx)(Ce,{className:`size-3.5`,"aria-hidden":!0}),t.marketplaceDownloads,` `,r.downloads]}),(0,Y.jsx)(K,{type:`button`,className:`h-8 px-2.5 text-xs`,variant:o?`secondary`:`primary`,disabled:c||o,onClick:()=>void P(()=>Nt(e,a,{provider:i})),children:o?t.marketplaceInstalled:c?t.installing:t.install})]})]})]},`${i??`default`}:${r.id}`)})}):C?null:(0,Y.jsx)(`p`,{className:`mt-6 text-center text-sm text-fg-muted`,children:t.marketplaceEmpty}),x&&x.meta.totalPages>1?(0,Y.jsxs)(`div`,{className:`mt-3 flex items-center justify-between border-t border-edge-subtle pt-3`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t.marketplacePage.replace(`{{page}}`,String(x.meta.page)).replace(`{{total}}`,String(x.meta.totalPages))}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,disabled:C||y<=1,onClick:()=>b(e=>Math.max(1,e-1)),children:[(0,Y.jsx)(_t,{className:`size-4`}),t.marketplacePrevious]}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,disabled:C||y>=x.meta.totalPages,onClick:()=>b(e=>e+1),children:[t.marketplaceNext,(0,Y.jsx)(De,{className:`size-4`})]})]})]}):null]}):(0,Y.jsxs)(`section`,{className:`flex h-full flex-col`,children:[(0,Y.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:t.sourceHint}),(0,Y.jsx)(`input`,{className:`mt-4 h-10 w-full rounded-md border border-edge bg-surface-base px-3 text-sm outline-none focus:border-accent`,value:D,onChange:e=>A(e.target.value),placeholder:t.sourcePlaceholder,autoFocus:!0}),(0,Y.jsxs)(`div`,{className:`mt-auto flex justify-end gap-2 border-t border-edge pt-4`,children:[(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(K,{type:`button`,variant:`secondary`,children:t.close})}),(0,Y.jsx)(K,{type:`button`,disabled:c||!D.trim(),onClick:()=>void P(()=>Pt(e,D.trim())),children:c?t.installing:t.install})]})]})})]})]})}),(0,Y.jsx)(ye,{open:!!h,onOpenChange:e=>{e||g(null)},children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-50 bg-black/45`}),(0,Y.jsxs)(ge,{className:`fixed left-1/2 top-1/2 z-50 flex h-[min(42rem,calc(100vh-2rem))] w-[min(48rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-xl`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-edge px-5 py-4`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:h?.name}),(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`size-9 p-0`,children:(0,Y.jsx)(ae,{className:`size-4`})})})]}),(0,Y.jsx)(`pre`,{className:`min-h-0 flex-1 overflow-auto whitespace-pre-wrap p-5 text-sm leading-6 text-fg-muted`,children:h?.bodyMarkdown})]})]})})]})}function Lt(e){let t=(0,J.c)(13),{icon:n,title:r,hint:i,onClick:a}=e,o;t[0]===n?o=t[1]:(o=(0,Y.jsx)(n,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,Y.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:r}),t[2]=r,t[3]=s);let c;t[4]===i?c=t[5]:(c=(0,Y.jsx)(`span`,{className:`mt-0.5 block text-xs leading-5 text-fg-muted`,children:i}),t[4]=i,t[5]=c);let l;t[6]!==s||t[7]!==c?(l=(0,Y.jsxs)(`span`,{className:`min-w-0`,children:[s,c]}),t[6]=s,t[7]=c,t[8]=l):l=t[8];let u;return t[9]!==a||t[10]!==o||t[11]!==l?(u=(0,Y.jsx)(st,{asChild:!0,children:(0,Y.jsxs)(`button`,{type:`button`,className:`flex w-full items-start gap-3 rounded-md px-3 py-2.5 text-left hover:bg-surface-hover`,onClick:a,children:[o,l]})}),t[9]=a,t[10]=o,t[11]=l,t[12]=u):u=t[12],u}var Rt=`application/x-xopc-work-item`,zt=[`backlog`,`todo`,`in_progress`,`blocked`,`needs_input`,`in_review`,`done`],Bt=[`low`,`normal`,`high`,`urgent`];function Vt(e){return e===`done`||e===`in_review`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`blocked`||e===`needs_input`?`bg-red-500/10 text-red-700 dark:text-red-300`:e===`in_progress`?`bg-accent-soft text-accent-fg`:e===`backlog`||e===`todo`?`bg-amber-500/10 text-amber-700 dark:text-amber-300`:`bg-surface-muted text-fg-subtle`}function Ht(e){return e?Ue(new Date(e)):``}function Ut(e){return!Number.isFinite(e)||e<=0?`0 B`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(+(e<10*1024))} KB`:`${(e/(1024*1024)).toFixed(+(e<10*1024*1024))} MB`}function Wt(e){return`${e.name}:${e.size}:${e.lastModified}`}function Gt(e,t){return Te(e,t)!==`unsupported`}function Kt(e,t){return e.startsWith(`image/`)?`image`:e.startsWith(`audio/`)?`audio`:t===`image`||t===`audio`||t===`video`?t:`document`}function qt(e,t){return{id:e.id,name:e.fileName,type:Kt(e.mimeType,e.type),mimeType:e.mimeType,size:e.size,...t?{content:t,preview:e.mimeType.startsWith(`image/`)?t:void 0}:{}}}async function Jt(e,t){let n=_(e.name||`upload`,e.type||`application/octet-stream`),r=I(await e.arrayBuffer());return{id:t,name:e.name||`upload`,type:Kt(n),mimeType:n,size:e.size,content:r,preview:n.startsWith(`image/`)?r:void 0}}function Yt(e){let t=(0,J.c)(3),[n,r]=(0,q.useState)(``),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e){r(``);return}let t=URL.createObjectURL(e);return r(t),()=>URL.revokeObjectURL(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,q.useEffect)(i,a),n}function Xt(e,t){let n=(0,J.c)(5),[r,i]=(0,q.useState)(``),a,o;return n[0]!==t.id||n[1]!==t.mimeType||n[2]!==e?(a=()=>{if(!e||!t.mimeType.startsWith(`image/`)){i(``);return}let n=!1,r=``;return(async()=>{let a=await m($e(e,t.id));if(!a.ok||n)return;let o=await a.blob();n||(r=URL.createObjectURL(o),i(r))})().catch(()=>{n||i(``)}),()=>{n=!0,r&&URL.revokeObjectURL(r)}},o=[t.id,t.mimeType,e],n[0]=t.id,n[1]=t.mimeType,n[2]=e,n[3]=a,n[4]=o):(a=n[3],o=n[4]),(0,q.useEffect)(a,o),r}function Zt(e){let t=(0,J.c)(11),{name:n,mimeType:r,thumbnailUrl:i,previewable:a,disabled:o,onOpen:s}=e,c;t[0]===r?c=t[1]:(c=r.startsWith(`image/`),t[0]=r,t[1]=c);let l=c,u;t[2]!==l||t[3]!==n||t[4]!==i?(u=l&&i?(0,Y.jsx)(`img`,{src:i,alt:n,className:`size-10 rounded-md object-cover`}):(0,Y.jsx)(`span`,{className:`inline-flex size-10 items-center justify-center rounded-md border border-edge bg-surface-muted`,children:(0,Y.jsx)(St,{className:`size-4 text-fg-muted`,"aria-hidden":!0})}),t[2]=l,t[3]=n,t[4]=i,t[5]=u):u=t[5];let d=u;if(!a)return d;let f;return t[6]!==d||t[7]!==o||t[8]!==n||t[9]!==s?(f=(0,Y.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel disabled:cursor-wait disabled:opacity-70`,title:n,"aria-label":n,disabled:o,onClick:s,children:d}),t[6]=d,t[7]=o,t[8]=n,t[9]=s,t[10]=f):f=t[10],f}function X(e){return e.kind===`chat`?`/chat/${encodeURIComponent(e.targetId)}`:e.kind===`workflow_run`?`/workflows?run=${encodeURIComponent(e.targetId)}`:e.kind===`automation`?`/automations?automationId=${encodeURIComponent(e.targetId)}`:`#`}function Qt(e){return e instanceof Element?!!e.closest(`a,button,input,select,textarea,[contenteditable="true"],[draggable="true"],[data-board-pan-skip="true"]`):!0}function $t(e,t){return e.nextAction||e.blockedReason||e.description||t.noNextAction}function en(e){let t=(0,J.c)(66),{item:n,detailReturnTo:r,dragging:i,onOpen:a,onToggleDone:o,onDragStart:c,onDragEnd:u,t:d}=e,f=n.status===`done`,p;t[0]!==n||t[1]!==c?(p=e=>c(n,e),t[0]=n,t[1]=c,t[2]=p):p=t[2];let m=d.dragToUpdate,h=i&&`opacity-50`,g;t[3]===h?g=t[4]:(g=l(`flex min-h-24 w-full min-w-0 max-w-full cursor-grab flex-col overflow-hidden rounded-lg bg-surface-panel p-3 shadow-surface transition-colors hover:bg-surface-hover active:cursor-grabbing`,h),t[3]=h,t[4]=g);let _=f?`border-success bg-success text-white`:`border-edge bg-surface-base hover:border-accent/50`,v;t[5]===_?v=t[6]:(v=l(`mt-0.5 inline-flex size-3.5 shrink-0 items-center justify-center rounded border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,_),t[5]=_,t[6]=v);let y=f?d.markTodo:d.markDone,b=f?d.markTodo:d.markDone,S;t[7]!==n||t[8]!==o?(S=()=>o(n),t[7]=n,t[8]=o,t[9]=S):S=t[9];let w;t[10]===f?w=t[11]:(w=f?(0,Y.jsx)(nt,{className:`size-3`,"aria-hidden":!0}):null,t[10]=f,t[11]=w);let T;t[12]!==w||t[13]!==v||t[14]!==y||t[15]!==b||t[16]!==S?(T=(0,Y.jsx)(`button`,{type:`button`,className:v,"aria-label":y,title:b,onClick:S,children:w}),t[12]=w,t[13]=v,t[14]=y,t[15]=b,t[16]=S,t[17]=T):T=t[17];let E;t[18]!==n||t[19]!==a?(E=()=>a(n),t[18]=n,t[19]=a,t[20]=E):E=t[20];let D;t[21]===n.title?D=t[22]:(D=(0,Y.jsx)(`h4`,{className:`min-w-0 flex-1 basis-0 text-sm font-medium leading-5 text-fg line-clamp-2`,children:n.title}),t[21]=n.title,t[22]=D);let k;t[23]!==n||t[24]!==d?(k=$t(n,d),t[23]=n,t[24]=d,t[25]=k):k=t[25];let A;t[26]===k?A=t[27]:(A=(0,Y.jsx)(`p`,{className:`mt-2 max-w-full break-words text-xs leading-5 text-fg-muted line-clamp-1`,children:k}),t[26]=k,t[27]=A);let j;t[28]!==E||t[29]!==D||t[30]!==A?(j=(0,Y.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 text-left`,onClick:E,children:[D,A]}),t[28]=E,t[29]=D,t[30]=A,t[31]=j):j=t[31];let M;t[32]!==T||t[33]!==j?(M=(0,Y.jsxs)(`div`,{className:`flex min-w-0 max-w-full items-start gap-2`,children:[T,j]}),t[32]=T,t[33]=j,t[34]=M):M=t[34];let N;t[35]===n.status?N=t[36]:(N=l(`rounded-full px-2 py-0.5 text-[11px] font-medium`,Vt(n.status)),t[35]=n.status,t[36]=N);let P=d.statuses[n.status],F;t[37]!==N||t[38]!==P?(F=(0,Y.jsx)(`span`,{className:N,children:P}),t[37]=N,t[38]=P,t[39]=F):F=t[39];let I=d.priorities[n.priority],L;t[40]===I?L=t[41]:(L=(0,Y.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-[11px] text-fg-muted`,children:I}),t[40]=I,t[41]=L);let R;t[42]===n.attachments?R=t[43]:(R=n.attachments?.length?(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-surface-muted px-2 py-0.5 text-[11px] text-fg-muted`,children:[(0,Y.jsx)(x,{className:`size-3`,"aria-hidden":!0}),n.attachments.length]}):null,t[42]=n.attachments,t[43]=R);let z;t[44]===n.links?z=t[45]:(z=n.links?.length?(0,Y.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-[11px] text-fg-muted`,children:n.links.length}):null,t[44]=n.links,t[45]=z);let B=`/work-items/${encodeURIComponent(n.id)}`,V;t[46]!==r||t[47]!==B?(V=C(B,r),t[46]=r,t[47]=B,t[48]=V):V=t[48];let H;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,Y.jsx)(O,{className:`size-3`,"aria-hidden":!0}),t[49]=H):H=t[49];let U;t[50]!==d.detail.openItem||t[51]!==V?(U=(0,Y.jsxs)(s,{to:V,className:`ml-auto inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium text-accent hover:bg-accent-soft hover:text-accent-fg`,children:[d.detail.openItem,H]}),t[50]=d.detail.openItem,t[51]=V,t[52]=U):U=t[52];let W;t[53]!==F||t[54]!==L||t[55]!==R||t[56]!==z||t[57]!==U?(W=(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:[F,L,R,z,U]}),t[53]=F,t[54]=L,t[55]=R,t[56]=z,t[57]=U,t[58]=W):W=t[58];let G;return t[59]!==u||t[60]!==d.dragToUpdate||t[61]!==p||t[62]!==M||t[63]!==W||t[64]!==g?(G=(0,Y.jsxs)(`article`,{draggable:!0,onDragStart:p,onDragEnd:u,title:m,className:g,children:[M,W]}),t[59]=u,t[60]=d.dragToUpdate,t[61]=p,t[62]=M,t[63]=W,t[64]=g,t[65]=G):G=t[65],G}function tn(){let e=(0,J.c)(3),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`size-3.5 shrink-0 rounded-full bg-surface-muted`}),(0,Y.jsx)(`div`,{className:`h-3 w-36 rounded bg-surface-muted`})]}),n=(0,Y.jsx)(`div`,{className:`mt-3 h-3 w-48 rounded bg-surface-muted`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Y.jsxs)(`article`,{className:`flex h-24 w-full min-w-0 max-w-full flex-col overflow-hidden rounded-lg bg-surface-panel px-3 pt-3 pb-0 shadow-surface`,children:[t,n,(0,Y.jsxs)(`div`,{className:`mt-3 flex gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`h-5 w-16 rounded-full bg-surface-muted`}),(0,Y.jsx)(`div`,{className:`h-5 w-10 rounded-full bg-surface-muted`})]})]}),e[2]=r):r=e[2],r}function nn(e){let t=(0,J.c)(44),{file:n,index:r,busy:i,previewBusy:a,t:o,onOpen:s,onRemove:c}=e,u,d,f,p;t[0]===n?(u=t[1],d=t[2],f=t[3],p=t[4]):(u=_(n.name||`upload`,n.type||`application/octet-stream`),d=Gt(n.name||`upload`,u),f=Yt,p=u.startsWith(`image/`)?n:null,t[0]=n,t[1]=u,t[2]=d,t[3]=f,t[4]=p);let m=f(p),h=n.name||`upload`,g=i||a,v;t[5]!==n||t[6]!==s?(v=()=>s(n),t[5]=n,t[6]=s,t[7]=v):v=t[7];let y;t[8]!==u||t[9]!==d||t[10]!==h||t[11]!==g||t[12]!==v||t[13]!==m?(y=(0,Y.jsx)(Zt,{name:h,mimeType:u,thumbnailUrl:m,previewable:d,disabled:g,onOpen:v}),t[8]=u,t[9]=d,t[10]=h,t[11]=g,t[12]=v,t[13]=m,t[14]=y):y=t[14];let b=d?`rounded-md hover:text-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`:`cursor-default`,x;t[15]===b?x=t[16]:(x=l(`min-w-0 flex-1 text-left`,b),t[15]=b,t[16]=x);let S=!d||i||a,C;t[17]!==n||t[18]!==s?(C=()=>s(n),t[17]=n,t[18]=s,t[19]=C):C=t[19];let w=n.name||`upload`,T;t[20]===w?T=t[21]:(T=(0,Y.jsx)(`div`,{className:`truncate font-medium text-fg`,children:w}),t[20]=w,t[21]=T);let E;t[22]===n.size?E=t[23]:(E=Ut(n.size),t[22]=n.size,t[23]=E);let D;t[24]===E?D=t[25]:(D=(0,Y.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:E}),t[24]=E,t[25]=D);let O;t[26]!==C||t[27]!==T||t[28]!==D||t[29]!==x||t[30]!==S?(O=(0,Y.jsxs)(`button`,{type:`button`,className:x,disabled:S,onClick:C,children:[T,D]}),t[26]=C,t[27]=T,t[28]=D,t[29]=x,t[30]=S,t[31]=O):O=t[31];let k;t[32]!==r||t[33]!==c?(k=()=>c(r),t[32]=r,t[33]=c,t[34]=k):k=t[34];let A;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Y.jsx)(ae,{className:`size-3.5`,"aria-hidden":!0}),t[35]=A):A=t[35];let j;t[36]!==i||t[37]!==o.attachments.remove||t[38]!==k?(j=(0,Y.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,title:o.attachments.remove,"aria-label":o.attachments.remove,disabled:i,onClick:k,children:A}),t[36]=i,t[37]=o.attachments.remove,t[38]=k,t[39]=j):j=t[39];let M;return t[40]!==O||t[41]!==j||t[42]!==y?(M=(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-edge bg-surface-panel p-2 text-sm`,children:[y,O,j]}),t[40]=O,t[41]=j,t[42]=y,t[43]=M):M=t[43],M}function rn(e){let t=(0,J.c)(56),{item:n,attachment:r,busy:i,previewBusy:a,t:o,onOpen:s,onDownload:c,onRemove:u}=e,d;t[0]!==r.fileName||t[1]!==r.mimeType?(d=Gt(r.fileName,r.mimeType),t[0]=r.fileName,t[1]=r.mimeType,t[2]=d):d=t[2];let f=d,p=Xt(n.id,r),m=i||a,h;t[3]!==r||t[4]!==n||t[5]!==s?(h=()=>s(n,r),t[3]=r,t[4]=n,t[5]=s,t[6]=h):h=t[6];let g;t[7]!==r.fileName||t[8]!==r.mimeType||t[9]!==f||t[10]!==m||t[11]!==h||t[12]!==p?(g=(0,Y.jsx)(Zt,{name:r.fileName,mimeType:r.mimeType,thumbnailUrl:p,previewable:f,disabled:m,onOpen:h}),t[7]=r.fileName,t[8]=r.mimeType,t[9]=f,t[10]=m,t[11]=h,t[12]=p,t[13]=g):g=t[13];let _=f?`rounded-md hover:text-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`:`cursor-default`,v;t[14]===_?v=t[15]:(v=l(`min-w-0 flex-1 text-left`,_),t[14]=_,t[15]=v);let y=!f||i||a,b;t[16]!==r||t[17]!==n||t[18]!==s?(b=()=>s(n,r),t[16]=r,t[17]=n,t[18]=s,t[19]=b):b=t[19];let x;t[20]===r.fileName?x=t[21]:(x=(0,Y.jsx)(`div`,{className:`truncate font-medium text-fg`,children:r.fileName}),t[20]=r.fileName,t[21]=x);let S=r.mimeType,C;t[22]===r.size?C=t[23]:(C=Ut(r.size),t[22]=r.size,t[23]=C);let w;t[24]!==r.mimeType||t[25]!==C?(w=(0,Y.jsxs)(`div`,{className:`truncate text-xs text-fg-subtle`,children:[S,` · `,C]}),t[24]=r.mimeType,t[25]=C,t[26]=w):w=t[26];let T;t[27]!==w||t[28]!==v||t[29]!==y||t[30]!==b||t[31]!==x?(T=(0,Y.jsxs)(`button`,{type:`button`,className:v,disabled:y,onClick:b,children:[x,w]}),t[27]=w,t[28]=v,t[29]=y,t[30]=b,t[31]=x,t[32]=T):T=t[32];let E;t[33]!==r||t[34]!==n||t[35]!==c?(E=()=>c(n,r),t[33]=r,t[34]=n,t[35]=c,t[36]=E):E=t[36];let D;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Y.jsx)(Ce,{className:`size-3.5`,"aria-hidden":!0}),t[37]=D):D=t[37];let O;t[38]!==i||t[39]!==o.attachments.download||t[40]!==E?(O=(0,Y.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,title:o.attachments.download,"aria-label":o.attachments.download,disabled:i,onClick:E,children:D}),t[38]=i,t[39]=o.attachments.download,t[40]=E,t[41]=O):O=t[41];let k;t[42]!==r||t[43]!==n||t[44]!==u?(k=()=>u(n,r),t[42]=r,t[43]=n,t[44]=u,t[45]=k):k=t[45];let A;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Y.jsx)(L,{className:`size-3.5`,"aria-hidden":!0}),t[46]=A):A=t[46];let j;t[47]!==i||t[48]!==o.attachments.remove||t[49]!==k?(j=(0,Y.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-danger`,title:o.attachments.remove,"aria-label":o.attachments.remove,disabled:i,onClick:k,children:A}),t[47]=i,t[48]=o.attachments.remove,t[49]=k,t[50]=j):j=t[50];let M;return t[51]!==T||t[52]!==O||t[53]!==j||t[54]!==g?(M=(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-edge bg-surface-panel p-2 text-sm`,children:[g,T,O,j]}),t[51]=T,t[52]=O,t[53]=j,t[54]=g,t[55]=M):M=t[55],M}function an({mode:e,item:t,pendingFiles:n,busy:r,t:i,onPendingFilesChange:a,onUpload:o,onRemove:s,onDownload:c,onPreviewError:u}){let d=(0,q.useRef)(null),[p,h]=(0,q.useState)(!1),[g,_]=(0,q.useState)(!1),[v,y]=(0,q.useState)(null),[b,S]=(0,q.useState)(null),C=f(e=>e.token),w=t?.attachments??[];function T(r){if(!r.length)return;if(e===`detail`&&t){o(t,r);return}let i=new Set(n.map(Wt)),s=[...n];for(let e of r){let t=Wt(e);i.has(t)||(i.add(t),s.push(e))}a(s)}function E(e){a(n.filter((t,n)=>n!==e))}async function D(e){let t=Wt(e);S(`pending:${t}`);try{y(await Jt(e,`pending:${t}`)),_(!0)}catch(e){u(e instanceof Error?e.message:String(e))}finally{S(null)}}async function O(e,t){S(`saved:${t.id}`);try{let n=await m($e(e.id,t.id));if(!n.ok)throw Error(`HTTP ${n.status}`);y(qt(t,I(await n.arrayBuffer()))),_(!0)}catch(e){u(e instanceof Error?e.message:String(e))}finally{S(null)}}return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`section`,{className:l(`grid gap-3 rounded-lg border border-edge bg-surface-base p-3`,p&&`border-accent bg-accent-soft/40`),onDragOver:e=>{e.preventDefault(),h(!0)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||h(!1)},onDrop:e=>{e.preventDefault(),h(!1),T(Array.from(e.dataTransfer.files))},children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`h3`,{className:`inline-flex min-w-0 items-center gap-2 text-sm font-semibold text-fg`,children:[(0,Y.jsx)(x,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate`,children:i.attachments.title})]}),(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:r,onClick:()=>d.current?.click(),children:[(0,Y.jsx)(Je,{className:`size-3.5`,"aria-hidden":!0}),i.attachments.add]}),(0,Y.jsx)(`input`,{ref:d,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{T(Array.from(e.target.files??[])),e.currentTarget.value=``}})]}),n.length?(0,Y.jsx)(`div`,{className:`grid gap-2`,children:n.map((e,t)=>(0,Y.jsx)(nn,{file:e,index:t,busy:r,previewBusy:b===`pending:${Wt(e)}`,t:i,onOpen:e=>void D(e),onRemove:E},Wt(e)))}):null,t&&w.length?(0,Y.jsx)(`div`,{className:`grid gap-2`,children:w.map(e=>(0,Y.jsx)(rn,{item:t,attachment:e,busy:r,previewBusy:b===`saved:${e.id}`,t:i,onOpen:(e,t)=>void O(e,t),onDownload:c,onRemove:s},e.id))}):null,!n.length&&!w.length?(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:i.attachments.empty}):null]}),(0,Y.jsx)(me,{open:g,attachment:v,authToken:C,layerClassName:`z-[100]`,onClose:()=>{_(!1),y(null)}})]})}function on(e){let t=(0,J.c)(168),{mode:n,item:r,detailReturnTo:i,initialStatus:a,events:o,busy:c,error:u,notice:d,t:f,onClose:p,onCreate:m,onSave:h,onStartChat:g,onAddAttachments:_,onRemoveAttachment:v,onDownloadAttachment:y,onPreviewError:b}=e,x=n!==null,[S,w]=(0,q.useState)(``),[T,E]=(0,q.useState)(``),[D,A]=(0,q.useState)(`todo`),[j,N]=(0,q.useState)(`normal`),[P,F]=(0,q.useState)(``),[I,L]=(0,q.useState)(``),R;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(R=[],t[0]=R):R=t[0];let[B,V]=(0,q.useState)(R),H,U;t[1]!==a||t[2]!==r||t[3]!==n?(H=()=>{if(n===`create`){w(``),E(``),A(a),N(`normal`),F(``),L(``),V([]);return}n===`detail`&&r&&(w(r.title),E(r.description??``),A(r.status),N(r.priority),F(r.nextAction??``),L(r.blockedReason??``),V([]))},U=[a,r,n],t[1]=a,t[2]=r,t[3]=n,t[4]=H,t[5]=U):(H=t[4],U=t[5]),(0,q.useEffect)(H,U);let W;t[6]!==I||t[7]!==T||t[8]!==r||t[9]!==n||t[10]!==P||t[11]!==m||t[12]!==h||t[13]!==B||t[14]!==j||t[15]!==D||t[16]!==S?(W=function(e){e.preventDefault();let t=S.trim();if(t){if(n===`create`){m({title:t,description:T.trim()||void 0,priority:j,status:D,nextAction:P.trim()||void 0,blockedReason:I.trim()||void 0,attachments:B});return}r&&h(r,{title:t,description:T.trim()||null,status:D,priority:j,nextAction:P.trim()||null,blockedReason:I.trim()||null})}},t[6]=I,t[7]=T,t[8]=r,t[9]=n,t[10]=P,t[11]=m,t[12]=h,t[13]=B,t[14]=j,t[15]=D,t[16]=S,t[17]=W):W=t[17];let G=W,ee;t[18]===p?ee=t[19]:(ee=e=>!e&&p(),t[18]=p,t[19]=ee);let te;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,Y.jsx)(k,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),t[20]=te):te=t[20];let ne=n===`create`?f.create.title:r?.title||f.title,re;t[21]===ne?re=t[22]:(re=(0,Y.jsx)(ct,{className:`truncate text-base font-semibold text-fg`,children:ne}),t[21]=ne,t[22]=re);let ie;t[23]===f.detail.description?ie=t[24]:(ie=(0,Y.jsx)(xe,{className:`mt-1 text-sm text-fg-muted`,children:f.detail.description}),t[23]=f.detail.description,t[24]=ie);let oe;t[25]!==re||t[26]!==ie?(oe=(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[re,ie]}),t[25]=re,t[26]=ie,t[27]=oe):oe=t[27];let se;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,Y.jsx)(ae,{className:`size-4`,"aria-hidden":!0}),t[28]=se):se=t[28];let ce;t[29]===c?ce=t[30]:(ce=(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(`button`,{type:`button`,className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,disabled:c,children:se})}),t[29]=c,t[30]=ce);let le;t[31]!==oe||t[32]!==ce?(le=(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-edge px-5 py-4`,children:[oe,ce]}),t[31]=oe,t[32]=ce,t[33]=le):le=t[33];let ue;t[34]===u?ue=t[35]:(ue=u?(0,Y.jsx)(`div`,{className:`rounded-lg border border-danger/30 bg-danger-soft px-3 py-2 text-sm text-danger`,children:u}):null,t[34]=u,t[35]=ue);let de;t[36]!==u||t[37]!==d?(de=!u&&d?(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-success/30 bg-success-soft px-3 py-2 text-sm text-fg`,role:`status`,"aria-live":`polite`,children:[(0,Y.jsx)(nt,{className:`mt-0.5 size-4 shrink-0 text-success`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-success`,children:d.title}),(0,Y.jsx)(`div`,{className:`mt-1 text-fg-muted`,children:d.message})]})]}):null,t[36]=u,t[37]=d,t[38]=de):de=t[38];let fe;t[39]===f.create.titleLabel?fe=t[40]:(fe=(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:f.create.titleLabel}),t[39]=f.create.titleLabel,t[40]=fe);let pe;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(pe=e=>w(e.target.value),t[41]=pe):pe=t[41];let me;t[42]===S?me=t[43]:(me=(0,Y.jsx)(`input`,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,value:S,onChange:pe}),t[42]=S,t[43]=me);let he;t[44]!==fe||t[45]!==me?(he=(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[fe,me]}),t[44]=fe,t[45]=me,t[46]=he):he=t[46];let _e;t[47]===f.detail.status?_e=t[48]:(_e=(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:f.detail.status}),t[47]=f.detail.status,t[48]=_e);let ve;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(ve=e=>A(e.target.value),t[49]=ve):ve=t[49];let be;t[50]===f.statuses?be=t[51]:(be=zt.map(e=>(0,Y.jsx)(je,{value:e,children:f.statuses[e]},e)),t[50]=f.statuses,t[51]=be);let Se;t[52]!==D||t[53]!==be?(Se=(0,Y.jsx)(Ke,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,value:D,onChange:ve,children:be}),t[52]=D,t[53]=be,t[54]=Se):Se=t[54];let Ce;t[55]!==_e||t[56]!==Se?(Ce=(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[_e,Se]}),t[55]=_e,t[56]=Se,t[57]=Ce):Ce=t[57];let Te;t[58]===f.create.priorityLabel?Te=t[59]:(Te=(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:f.create.priorityLabel}),t[58]=f.create.priorityLabel,t[59]=Te);let Ee;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=e=>N(e.target.value),t[60]=Ee):Ee=t[60];let De;t[61]===f.priorities?De=t[62]:(De=Bt.map(e=>(0,Y.jsx)(je,{value:e,children:f.priorities[e]},e)),t[61]=f.priorities,t[62]=De);let Oe;t[63]!==j||t[64]!==De?(Oe=(0,Y.jsx)(Ke,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,value:j,onChange:Ee,children:De}),t[63]=j,t[64]=De,t[65]=Oe):Oe=t[65];let ke;t[66]!==Te||t[67]!==Oe?(ke=(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[Te,Oe]}),t[66]=Te,t[67]=Oe,t[68]=ke):ke=t[68];let Ae;t[69]!==Ce||t[70]!==ke?(Ae=(0,Y.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[Ce,ke]}),t[69]=Ce,t[70]=ke,t[71]=Ae):Ae=t[71];let Me;t[72]===f.create.descriptionLabel?Me=t[73]:(Me=(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:f.create.descriptionLabel}),t[72]=f.create.descriptionLabel,t[73]=Me);let Ne;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=e=>E(e.target.value),t[74]=Ne):Ne=t[74];let Pe;t[75]===T?Pe=t[76]:(Pe=(0,Y.jsx)(`textarea`,{className:`min-h-28 rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent`,value:T,onChange:Ne}),t[75]=T,t[76]=Pe);let Fe;t[77]!==Me||t[78]!==Pe?(Fe=(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[Me,Pe]}),t[77]=Me,t[78]=Pe,t[79]=Fe):Fe=t[79];let Ie;t[80]!==c||t[81]!==r||t[82]!==n||t[83]!==_||t[84]!==y||t[85]!==b||t[86]!==v||t[87]!==B||t[88]!==f?(Ie=(0,Y.jsx)(an,{mode:n,item:r,pendingFiles:B,busy:c,t:f,onPendingFilesChange:V,onUpload:_,onRemove:v,onDownload:y,onPreviewError:b}),t[80]=c,t[81]=r,t[82]=n,t[83]=_,t[84]=y,t[85]=b,t[86]=v,t[87]=B,t[88]=f,t[89]=Ie):Ie=t[89];let Le;t[90]!==I||t[91]!==n||t[92]!==P||t[93]!==D||t[94]!==f.blockedReason||t[95]!==f.nextAction?(Le=n===`detail`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:f.nextAction}),(0,Y.jsx)(`textarea`,{className:`min-h-20 rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent`,value:P,onChange:e=>F(e.target.value)})]}),(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Y.jsx)(`span`,{className:l(`font-medium`,D===`blocked`||D===`needs_input`?`text-red-700 dark:text-red-300`:`text-fg-muted`),children:f.blockedReason}),(0,Y.jsx)(`textarea`,{className:l(`min-h-20 rounded-lg border bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent`,D===`blocked`||D===`needs_input`?`border-red-500/40`:`border-edge`),value:I,onChange:e=>L(e.target.value)})]})]}):null,t[90]=I,t[91]=n,t[92]=P,t[93]=D,t[94]=f.blockedReason,t[95]=f.nextAction,t[96]=Le):Le=t[96];let Re;t[97]!==ue||t[98]!==de||t[99]!==he||t[100]!==Ae||t[101]!==Fe||t[102]!==Ie||t[103]!==Le?(Re=(0,Y.jsxs)(`div`,{className:`grid content-start gap-4`,children:[ue,de,he,Ae,Fe,Ie,Le]}),t[97]=ue,t[98]=de,t[99]=he,t[100]=Ae,t[101]=Fe,t[102]=Ie,t[103]=Le,t[104]=Re):Re=t[104];let ze;t[105]!==c||t[106]!==i||t[107]!==r||t[108]!==n||t[109]!==g||t[110]!==f.detail.actions||t[111]!==f.detail.openItem||t[112]!==f.detail.startChat?(ze=n===`detail`&&r?(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:f.detail.actions}),(0,Y.jsxs)(`div`,{className:`mt-2 grid gap-2`,children:[(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,className:`justify-start rounded-lg`,disabled:c,onClick:()=>g(r),children:[(0,Y.jsx)(we,{className:`size-4`,"aria-hidden":!0}),f.detail.startChat]}),(0,Y.jsx)(K,{asChild:!0,variant:`secondary`,className:`justify-start rounded-lg`,children:(0,Y.jsxs)(s,{to:C(`/work-items/${encodeURIComponent(r.id)}`,i),children:[(0,Y.jsx)(O,{className:`size-4`,"aria-hidden":!0}),f.detail.openItem]})})]})]}):null,t[105]=c,t[106]=i,t[107]=r,t[108]=n,t[109]=g,t[110]=f.detail.actions,t[111]=f.detail.openItem,t[112]=f.detail.startChat,t[113]=ze):ze=t[113];let Be;t[114]===f.detail.links?Be=t[115]:(Be=(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:f.detail.links}),t[114]=f.detail.links,t[115]=Be);let Ve;t[116]!==r||t[117]!==f.detail.noLinks||t[118]!==f.linkKinds?(Ve=r?.links?.length?r.links.slice(0,6).map(e=>(0,Y.jsxs)(s,{to:X(e),className:`flex min-w-0 items-center justify-between gap-3 rounded-md px-2 py-1.5 hover:bg-surface-hover`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-fg`,children:e.title||e.targetId}),(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 text-xs text-fg-muted`,children:[f.linkKinds[e.kind],(0,Y.jsx)(O,{className:`size-3.5`,"aria-hidden":!0})]})]},e.id)):(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f.detail.noLinks}),t[116]=r,t[117]=f.detail.noLinks,t[118]=f.linkKinds,t[119]=Ve):Ve=t[119];let He;t[120]===Ve?He=t[121]:(He=(0,Y.jsx)(`div`,{className:`mt-2 grid gap-2 text-sm`,children:Ve}),t[120]=Ve,t[121]=He);let Ue;t[122]!==Be||t[123]!==He?(Ue=(0,Y.jsxs)(`section`,{children:[Be,He]}),t[122]=Be,t[123]=He,t[124]=Ue):Ue=t[124];let We;t[125]===f.detail.activity?We=t[126]:(We=(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:f.detail.activity}),t[125]=f.detail.activity,t[126]=We);let Ge;t[127]!==o||t[128]!==f.detail.noActivity||t[129]!==f.eventTypes?(Ge=o.length?o.slice(0,5).map(e=>(0,Y.jsxs)(`div`,{className:`text-sm`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-fg`,children:f.eventTypes[e.type]??e.type}),(0,Y.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-subtle`,children:Ht(e.createdAt)})]},e.id)):(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f.detail.noActivity}),t[127]=o,t[128]=f.detail.noActivity,t[129]=f.eventTypes,t[130]=Ge):Ge=t[130];let qe;t[131]===Ge?qe=t[132]:(qe=(0,Y.jsx)(`div`,{className:`mt-2 grid gap-2`,children:Ge}),t[131]=Ge,t[132]=qe);let Ye;t[133]!==We||t[134]!==qe?(Ye=(0,Y.jsxs)(`section`,{children:[We,qe]}),t[133]=We,t[134]=qe,t[135]=Ye):Ye=t[135];let Xe;t[136]!==ze||t[137]!==Ue||t[138]!==Ye?(Xe=(0,Y.jsxs)(`aside`,{className:`grid content-start gap-5`,children:[ze,Ue,Ye]}),t[136]=ze,t[137]=Ue,t[138]=Ye,t[139]=Xe):Xe=t[139];let Ze;t[140]!==Re||t[141]!==Xe?(Ze=(0,Y.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-6 overflow-y-auto px-5 py-4 lg:grid-cols-[minmax(0,1fr)_16rem]`,children:[Re,Xe]}),t[140]=Re,t[141]=Xe,t[142]=Ze):Ze=t[142];let Qe;t[143]!==c||t[144]!==p||t[145]!==f.create.cancel?(Qe=(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:p,disabled:c,children:f.create.cancel}),t[143]=c,t[144]=p,t[145]=f.create.cancel,t[146]=Qe):Qe=t[146];let $e;t[147]!==c||t[148]!==S?($e=c||!S.trim(),t[147]=c,t[148]=S,t[149]=$e):$e=t[149];let et;t[150]===n?et=t[151]:(et=n===`create`?(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0}):null,t[150]=n,t[151]=et);let tt=n===`create`?f.create.submit:f.detail.save,rt;t[152]!==$e||t[153]!==et||t[154]!==tt?(rt=(0,Y.jsxs)(K,{type:`submit`,variant:`primary`,className:`rounded-lg`,disabled:$e,children:[et,tt]}),t[152]=$e,t[153]=et,t[154]=tt,t[155]=rt):rt=t[155];let it;t[156]!==Qe||t[157]!==rt?(it=(0,Y.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[Qe,rt]}),t[156]=Qe,t[157]=rt,t[158]=it):it=t[158];let at;t[159]!==G||t[160]!==le||t[161]!==Ze||t[162]!==it?(at=(0,Y.jsxs)(z,{children:[te,(0,Y.jsx)(ge,{className:`fixed left-1/2 top-1/2 z-[90] flex h-[min(86dvh,48rem)] w-[min(60rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:(0,Y.jsxs)(`form`,{onSubmit:G,className:`flex min-h-0 flex-1 flex-col`,children:[le,Ze,it]})})]}),t[159]=G,t[160]=le,t[161]=Ze,t[162]=it,t[163]=at):at=t[163];let ot;return t[164]!==x||t[165]!==ee||t[166]!==at?(ot=(0,Y.jsx)(ye,{open:x,onOpenChange:ee,children:at}),t[164]=x,t[165]=ee,t[166]=at,t[167]=ot):ot=t[167],ot}function sn({projectId:e,createRequestKey:t=0,detailReturnTo:n}){let r=o(),i=d(p(e=>e.language)).projectDetailPage.workItems,a=(0,q.useRef)(null),s=(0,q.useRef)(null),[c,u]=(0,q.useState)([]),[f,m]=(0,q.useState)(!0),[h,g]=(0,q.useState)(null),[_,v]=(0,q.useState)(null),[y,b]=(0,q.useState)(!1),[x,S]=(0,q.useState)(null),[C,w]=(0,q.useState)(null),[T,E]=(0,q.useState)(!1),[D,O]=(0,q.useState)(!1),[k,A]=(0,q.useState)(!1),[j,M]=(0,q.useState)(`todo`),[N,P]=(0,q.useState)(null),[F,I]=(0,q.useState)([]),L=(0,q.useCallback)(async(t=`replace`,n=0)=>{m(!0),g(null);try{let r=await dt(e,{limit:100,offset:n});u(e=>t===`append`?[...e,...r.items]:r.items),O(r.hasMore)}catch(e){g(e instanceof Error?e.message:String(e))}finally{m(!1)}},[e]);(0,q.useEffect)(()=>{L(`replace`,0)},[L]),(0,q.useEffect)(()=>{t&&(P(null),I([]),g(null),v(null),M(`todo`),A(!0))},[t]);let z=(0,q.useMemo)(()=>zt.map(e=>({status:e,title:i.statuses[e],items:c.filter(t=>t.status===e)})),[c,i.statuses]),B=(0,q.useCallback)(e=>{u(t=>t.map(t=>t.id===e.id?e:t)),P(t=>t?.id===e.id?e:t)},[]),V=(0,q.useCallback)(async(e,t)=>{b(!0),g(null),v(null);try{let n=await ht(e.id,t);n.item.archivedAt?(u(e=>e.filter(e=>e.id!==n.item.id)),P(null)):(B(n.item),v({title:i.feedback.savedTitle,message:i.feedback.savedNext}))}catch(e){g(e instanceof Error?e.message:String(e))}finally{b(!1)}},[i.feedback.savedNext,i.feedback.savedTitle,B]),H=(0,q.useCallback)(async e=>{P(e),I([]),g(null),v(null);let t=await Ze(e.id).catch(()=>null);t&&I(t.events)},[]),U=(0,q.useCallback)(async t=>{b(!0),g(null),v(null);try{let n=await We(e,t);u(e=>[n.item,...e]),A(!1),P(n.item),I((await Ze(n.item.id).catch(()=>({events:[]}))).events),v({title:i.feedback.createdTitle,message:i.feedback.createdNext})}catch(e){g(e instanceof Error?e.message:String(e))}finally{b(!1)}},[e,i.feedback.createdNext,i.feedback.createdTitle]),W=(0,q.useCallback)(async(e,t)=>{if(t.length){b(!0),g(null),v(null);try{let n=await ot(e.id,t);B(n.item),I((await Ze(n.item.id).catch(()=>({events:[]}))).events)}catch(e){g(e instanceof Error?e.message:String(e))}finally{b(!1)}}},[B]),G=(0,q.useCallback)(async(e,t)=>{b(!0),g(null),v(null);try{let n=await Oe(e.id,t.id);B(n.item),I((await Ze(n.item.id).catch(()=>({events:[]}))).events)}catch(e){g(e instanceof Error?e.message:String(e))}finally{b(!1)}},[B]),ee=(0,q.useCallback)(async(e,t)=>{g(null),v(null);try{await it(e.id,t)}catch(e){g(e instanceof Error?e.message:String(e))}},[]),te=(0,q.useCallback)(async e=>{b(!0),g(null),v(null);try{let t=await Fe(e.id);B(t.item),await H(t.item),r(`/chat/${encodeURIComponent(t.session.key)}`)}catch(e){g(e instanceof Error?e.message:String(e))}finally{b(!1)}},[r,H,B]),ne=(0,q.useCallback)((e,t)=>{t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(Rt,e.id),S(e.id)},[]),re=(0,q.useCallback)((e,t)=>{t.preventDefault();let n=t.dataTransfer.getData(Rt)||x;w(null),S(null);let r=c.find(e=>e.id===n);!r||r.status===e||V(r,{status:e})},[x,c,V]),ie=(0,q.useCallback)(e=>{V(e,{status:e.status===`done`?`todo`:`done`})},[V]),ae=(0,q.useCallback)(e=>{P(null),I([]),g(null),v(null),M(e),A(!0)},[]),oe=(0,q.useCallback)(e=>{let t=s.current;!t||t.pointerId!==e.pointerId||(s.current=null,E(!1),e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),se=(0,q.useCallback)(e=>{if(e.button!==0||x||Qt(e.target))return;let t=a.current;t&&(s.current={pointerId:e.pointerId,startX:e.clientX,scrollLeft:t.scrollLeft,active:!1},e.currentTarget.setPointerCapture(e.pointerId))},[x]),ce=(0,q.useCallback)(e=>{let t=s.current,n=a.current;if(!t||!n||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX;!t.active&&Math.abs(r)<5||(t.active||(t.active=!0,E(!0)),e.preventDefault(),n.scrollLeft=t.scrollLeft-r)},[]);return(0,Y.jsxs)(`section`,{id:`project-panel-work-items`,role:`tabpanel`,"aria-labelledby":`project-tab-work-items`,className:`flex h-full min-h-0 flex-col`,children:[h?(0,Y.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:h}):null,(0,Y.jsx)(`section`,{ref:a,className:l(`min-h-0 flex-1 overflow-x-auto rounded-lg p-2 transition-opacity`,f&&`opacity-60`,T?`cursor-grabbing select-none`:`cursor-grab`),"aria-label":i.boardAria,"aria-busy":f,onPointerDown:se,onPointerMove:ce,onPointerUp:oe,onPointerCancel:oe,onLostPointerCapture:e=>{s.current?.pointerId===e.pointerId&&(s.current=null,E(!1))},children:(0,Y.jsx)(`div`,{className:`flex min-h-full min-w-max items-start gap-3 pr-4`,children:z.map(e=>(0,Y.jsxs)(`section`,{className:l(`flex max-h-full w-72 min-w-72 max-w-72 shrink-0 flex-col overflow-y-auto rounded-lg bg-surface-base shadow-surface`,C===e.status&&`bg-surface-active`),"aria-label":e.title,onDragOver:t=>{x&&(t.preventDefault(),t.dataTransfer.dropEffect=`move`,w(e.status))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||w(null)},onDrop:t=>re(e.status,t),children:[(0,Y.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 p-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Y.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:e.title}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:e.items.length})]}),(0,Y.jsx)(R,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0})]}),(0,Y.jsxs)(`div`,{className:`mx-2 mt-3 grid min-h-0 min-w-0 content-start gap-2 pb-2 pr-1 [scrollbar-gutter:stable]`,children:[e.items.length?e.items.map(e=>(0,Y.jsx)(en,{item:e,detailReturnTo:n,dragging:x===e.id,onOpen:H,onToggleDone:ie,onDragStart:ne,onDragEnd:()=>{S(null),w(null)},t:i},e.id)):f?(0,Y.jsxs)(`div`,{className:`grid gap-2 animate-pulse motion-reduce:animate-none`,children:[(0,Y.jsx)(tn,{}),(0,Y.jsx)(tn,{})]}):(0,Y.jsx)(`div`,{className:`rounded-lg bg-surface-panel/70 px-3 py-6 text-center text-xs text-fg-subtle`,children:i.emptyColumn}),f?null:(0,Y.jsx)(`button`,{type:`button`,className:`inline-flex h-8 w-full items-center justify-center rounded-lg bg-surface-panel/85 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-muted`,"aria-label":i.create.addToColumn.replace(`{{status}}`,e.title),title:i.create.addToColumn.replace(`{{status}}`,e.title),onClick:()=>ae(e.status),children:(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0})})]})]},e.status))})}),!f&&D?(0,Y.jsx)(K,{type:`button`,variant:`secondary`,className:`justify-self-center`,onClick:()=>void L(`append`,c.length),children:i.loadMore}):null,(0,Y.jsx)(on,{mode:k?`create`:N?`detail`:null,item:N,detailReturnTo:n,initialStatus:j,events:F,busy:y,error:h,notice:_,t:i,onClose:()=>{A(!1),P(null),I([]),g(null),v(null)},onCreate:U,onSave:(e,t)=>void V(e,t),onStartChat:te,onAddAttachments:(e,t)=>void W(e,t),onRemoveAttachment:(e,t)=>void G(e,t),onDownloadAttachment:(e,t)=>void ee(e,t),onPreviewError:e=>{v(null),g(e)}})]})}var cn=[{id:`overview`,icon:Ve},{id:`work-items`,icon:Qe},{id:`sessions`,icon:we},{id:`workflows`,icon:W},{id:`files`,icon:G},{id:`activity`,icon:vt},{id:`automations`,icon:ee},{id:`notes`,icon:ue},{id:`skills`,icon:Pe},{id:`settings`,icon:et}],ln=new Set([`work-items`,`workflows`,`automations`]),un=new Set(cn.map(e=>e.id)),dn=`xopc.projectFiles.panelWidthPx`,fn=320,pn=220,mn=560;function hn(e){return Math.min(mn,Math.max(pn,Math.round(e)))}function gn(){try{let e=window.localStorage.getItem(dn);if(e==null)return fn;let t=Number.parseInt(e,10);return Number.isFinite(t)?hn(t):fn}catch{return fn}}function _n(e){try{window.localStorage.setItem(dn,String(hn(e)))}catch{}}function vn(e){return!!(e&&un.has(e))}function yn(e){return ln.has(e)}function bn(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function xn(e,t=``){if(!e)return t;let n=new Date(e);return Number.isNaN(n.getTime())?String(e):Ue(n)}function Sn(e){return e===`active`?`bg-accent-soft text-accent-fg`:e===`done`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`paused`?`bg-amber-500/10 text-amber-700 dark:text-amber-300`:e===`archived`?`bg-surface-muted text-fg-subtle`:`bg-surface-hover text-fg-muted`}function Cn(e){return e===`succeeded`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`failed`||e===`timeout`||e===`cancelled`?`bg-red-500/10 text-red-700 dark:text-red-300`:e===`running`||e===`queued`?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-muted`}function wn(e){let t=(0,J.c)(8),{label:n,hint:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=r?(0,Y.jsx)(`span`,{className:`text-xs leading-5 text-fg-subtle`,children:r}):null,t[2]=r,t[3]=o);let s;return t[4]!==i||t[5]!==a||t[6]!==o?(s=(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[a,i,o]}),t[4]=i,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function Tn(e=!1){return l(`w-full rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,e?`min-h-24 py-2 leading-5`:`min-h-10`)}function En(e){let t=(0,J.c)(10),{label:n,value:r,mono:i}=e,a=i===void 0?!1:i,o;t[0]===n?o=t[1]:(o=(0,Y.jsx)(`div`,{className:`text-xs font-medium text-fg-subtle`,children:n}),t[0]=n,t[1]=o);let s=a&&`font-mono text-xs`,c;t[2]===s?c=t[3]:(c=l(`mt-1 min-w-0 truncate text-sm text-fg`,s),t[2]=s,t[3]=c);let u;t[4]!==c||t[5]!==r?(u=(0,Y.jsx)(`div`,{className:c,title:r,children:r}),t[4]=c,t[5]=r,t[6]=u):u=t[6];let d;return t[7]!==o||t[8]!==u?(d=(0,Y.jsxs)(`div`,{className:`min-w-0 rounded-md bg-surface-base px-3 py-2`,children:[o,u]}),t[7]=o,t[8]=u,t[9]=d):d=t[9],d}function Dn(e){return[e.name,e.slug,e.workspaceRoot,e.description,e.brief].filter(Boolean).join(` `).toLowerCase()}function On(e){let t=e.lastActiveAt??e.updatedAt??e.createdAt,n=t?new Date(t).getTime():0;return Number.isFinite(n)?n:0}function kn(e){return e.trim().replace(/[\\/]+$/,``).split(/[\\/]/).filter(Boolean).pop()??``}function An(e){let t=e?.body;return t?.code===`workspace_root_missing`&&t.workspaceRoot?t.workspaceRoot:null}function jn(e){let t=e.actor;return t.name?t.name:t.agentId?t.agentId:t.id?t.id:t.sessionKey?t.sessionKey:t.kind}function Mn(e){return e.primaryObject.title?.trim()||e.primaryObject.id}function Nn(e){let t=e.source;return t.toolCallId?`${t.kind} · ${t.toolCallId}`:t.runId?`${t.kind} · ${t.runId}`:t.requestId?`${t.kind} · ${t.requestId}`:t.kind}function Pn(e){let t=e.sourceChannel?.trim();if(t)return Fn(t);let n=e.key.split(`:`).filter(Boolean),r=(n[0]?.toLowerCase()===`agent`?n.slice(2).join(`:`):e.key).split(`:`)[0]?.split(/[-_]/)[0]?.trim();return Fn(r||``)}function Fn(e){let t=e.trim().toLowerCase();return t?t===`tui`?`TUI`:t===`acp`?`ACP`:t===`webchat`?`Webchat`:t:``}function In(e){let t=e.payload.changes;if(Array.isArray(t)&&t.length)return t.filter(e=>typeof e==`string`).join(`, `);let n=e.payload.contentPreview;if(typeof n==`string`&&n.trim())return n.trim();let r=e.payload.title??e.payload.name;return typeof r==`string`&&r.trim()?r.trim():``}function Ln(e){return e.map(e=>({name:e.name,path:e.path,absolutePath:e.absolutePath,isDirectory:e.type===`directory`,children:e.type===`directory`?[]:void 0}))}function Rn(e,t,n){return e.map(e=>e.path===t?{...e,children:n}:e.isDirectory&&e.children?.length?{...e,children:Rn(e.children,t,n)}:e)}function zn({currentProject:e,pm:t,projectsText:n,wd:r}){let i=o(),[a,s]=(0,q.useState)(!1),[u,d]=(0,q.useState)([e]),[f,p]=(0,q.useState)(``),[m,h]=(0,q.useState)(!1),[g,_]=(0,q.useState)(null),[v,b]=(0,q.useState)(!1),[x,S]=(0,q.useState)(`new`),[C,w]=(0,q.useState)(``),[T,E]=(0,q.useState)(``),[D,O]=(0,q.useState)(!1),[A,j]=(0,q.useState)(null),[N,P]=(0,q.useState)(null),F=(0,q.useCallback)(async()=>{h(!0),_(null);try{let t=await bt({limit:100});d(n=>{let r=new Map;r.set(e.id,e);for(let e of n)r.set(e.id,e);for(let e of t.items)r.set(e.id,e);return Array.from(r.values())})}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}},[e]);(0,q.useEffect)(()=>{d(t=>[e,...t.filter(t=>t.id!==e.id)])},[e]),(0,q.useEffect)(()=>{a&&F()},[F,a]);let I=(0,q.useMemo)(()=>{let t=f.trim().toLowerCase().split(/\s+/).filter(Boolean);return u.filter(t=>t.id!==e.id).filter(e=>{if(t.length===0)return!0;let n=Dn(e);return t.every(e=>n.includes(e))}).sort((e,t)=>On(t)-On(e))},[e.id,u,f]),L=e=>t.statuses[e.status]??e.status,R=e=>e.workspaceRoot||e.effectiveWorkspaceRoot||e.description||e.brief||t.common.defaultWorkspace,B=e=>{S(e),w(``),E(``),j(null),b(!0),s(!1)},V=(0,q.useCallback)(async(e={})=>{let t=T.trim(),n=C.trim()||(x===`directory`?kn(t):``);if(n){O(!0),j(null),P(null);try{let r=await y({name:n,...t?{workspaceRoot:t}:{},...e.createWorkspaceRoot?{createWorkspaceRoot:!0}:{}});b(!1),w(``),E(``),d(e=>[r,...e.filter(e=>e.id!==r.id)]),i(`/projects/${encodeURIComponent(r.id)}`)}catch(e){let t=An(e);t?(P(t),b(!1)):j(e instanceof Error?e.message:String(e))}finally{O(!1)}}},[x,C,i,T]),H=(0,q.useCallback)(e=>{e.preventDefault(),V()},[V]),U=(0,q.useCallback)(()=>{V({createWorkspaceRoot:!0})},[V]),W=(0,q.useCallback)(()=>{P(null),b(!0)},[]),ee=e=>{E(e),x===`directory`&&!C.trim()&&w(kn(e))},te=(e,t)=>(0,Y.jsxs)(`button`,{type:`button`,className:l(`grid w-full grid-cols-[1rem_minmax(0,1fr)_auto] items-center gap-2 rounded-md p-2 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,t&&`bg-accent-soft/55 hover:bg-accent-soft/70`),onClick:()=>{s(!1),t||i(`/projects/${encodeURIComponent(e.id)}`)},children:[(0,Y.jsx)(c,{className:l(`size-4 text-accent-fg`,!t&&`invisible`),"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`min-w-0`,children:[(0,Y.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:e.name}),(0,Y.jsx)(`span`,{className:`block truncate text-xs text-fg-muted`,children:R(e)})]}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium`,Sn(e.status)),children:L(e)})]},e.id);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(ze,{open:a,onOpenChange:s,children:[(0,Y.jsx)(Ee,{asChild:!0,children:(0,Y.jsxs)(`button`,{type:`button`,className:`group flex max-w-full min-w-0 items-center gap-2 rounded-lg px-2 py-1 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":t.projectSwitcher.switchProject,title:t.projectSwitcher.switchProject,children:[(0,Y.jsxs)(`span`,{className:`min-w-0`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:e.name}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium`,Sn(e.status)),children:L(e)})]}),(0,Y.jsx)(`span`,{className:`block truncate text-xs text-fg-muted`,children:R(e)})]}),(0,Y.jsx)(yt,{className:`size-4 shrink-0 text-fg-subtle transition-transform group-data-[state=open]:rotate-180`,"aria-hidden":!0})]})}),(0,Y.jsx)(He,{children:(0,Y.jsxs)(tt,{side:`bottom`,align:`start`,sideOffset:6,className:`z-[70] w-[min(26rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-edge bg-surface-panel p-1.5 shadow-popover outline-none`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Y.jsxs)(`label`,{className:`relative block`,children:[(0,Y.jsx)(gt,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{type:`search`,className:`h-9 w-full rounded-lg border border-edge bg-surface-base pl-9 pr-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:f,onChange:e=>p(e.target.value),placeholder:t.projectSwitcher.searchPlaceholder,"aria-label":t.projectSwitcher.searchPlaceholder})]}),(0,Y.jsxs)(`div`,{className:`mt-1 max-h-[min(54vh,24rem)] overflow-y-auto pr-0.5 [scrollbar-gutter:stable]`,children:[(0,Y.jsx)(`div`,{className:`px-2 pb-1 pt-2 text-[11px] font-semibold uppercase tracking-wide text-fg-subtle`,children:t.projectSwitcher.current}),te(e,!0),(0,Y.jsx)(`div`,{className:`px-2 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-wide text-fg-subtle`,children:t.projectSwitcher.recent}),g?(0,Y.jsx)(`div`,{className:`p-2 text-xs text-red-600 dark:text-red-400`,children:g}):null,m&&I.length===0?(0,Y.jsx)(`div`,{className:`px-2 py-3 text-center text-xs text-fg-muted`,children:t.projectSwitcher.loading}):null,!m&&I.length===0?(0,Y.jsx)(`div`,{className:`px-2 py-3 text-center text-xs text-fg-muted`,children:t.projectSwitcher.noMatches}):null,I.map(e=>te(e,!1))]}),(0,Y.jsxs)(`div`,{className:`mt-1 border-t border-edge-subtle pt-1`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm text-fg hover:bg-surface-hover`,onClick:()=>B(`new`),children:[(0,Y.jsx)(Je,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:t.projectSwitcher.newProject})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm text-fg hover:bg-surface-hover`,onClick:()=>B(`directory`),children:[(0,Y.jsx)(G,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:t.projectSwitcher.openDirectory})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm text-fg hover:bg-surface-hover`,onClick:()=>{s(!1),i(`/projects`)},children:[(0,Y.jsx)(et,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:t.projectSwitcher.manageProjects})]})]})]})})]}),(0,Y.jsx)(ye,{open:v,onOpenChange:e=>!D&&b(e),children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Y.jsxs)(ge,{className:`fixed left-1/2 top-1/2 z-[90] flex h-[min(32rem,calc(100vh-2rem))] w-[min(40rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Y.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:x===`directory`?t.projectSwitcher.createFromDirectoryTitle:n.createTitle}),(0,Y.jsx)(xe,{className:`mt-1 text-sm text-fg-muted`,children:x===`directory`?t.projectSwitcher.createFromDirectoryDescription:n.createDescription})]}),(0,Y.jsxs)(`form`,{onSubmit:H,className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[A?(0,Y.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:A}):null,(0,Y.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:n.projectName}),(0,Y.jsx)(`input`,{className:`min-h-10 rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:C,onChange:e=>w(e.target.value),placeholder:`xopc`})]}),(0,Y.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:n.workspaceRoot}),(0,Y.jsx)(Et,{value:T,onChange:ee,disabled:D,wd:r,placeholder:n.workspacePlaceholder,inputClassName:`min-h-10 rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`}),(0,Y.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.workspaceHint})]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:D,children:n.cancel})}),(0,Y.jsxs)(K,{type:`submit`,variant:`primary`,className:`rounded-lg`,disabled:D||!(C.trim()||x===`directory`&&kn(T)),children:[(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0}),n.create]})]})]})]})]})}),(0,Y.jsx)(ye,{open:!!N,onOpenChange:e=>{e||P(null)},children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-[100] bg-scrim backdrop-blur-[2px]`}),(0,Y.jsxs)(ge,{className:`fixed left-1/2 top-1/2 z-[110] flex w-[min(30rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Y.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:n.workspaceMissingTitle}),(0,Y.jsx)(xe,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:N?bn(n.workspaceMissingDescription,{workspace:N}):null})]}),N?(0,Y.jsx)(`div`,{className:`px-5 py-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-surface-muted px-3 py-2 text-sm text-fg-muted`,children:[(0,Y.jsx)(G,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:N})]})}):null,(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:W,disabled:D,children:n.workspaceMissingBack}),(0,Y.jsxs)(K,{type:`button`,variant:`primary`,className:`rounded-lg`,onClick:U,disabled:D,children:[(0,Y.jsx)(ie,{className:`size-4`,"aria-hidden":!0}),n.workspaceMissingCreate]})]})]})]})})]})}function Bn(){let{projectId:e=``,tabId:t,noteId:n}=i(),r=o(),[c]=a(),f=d(p(e=>e.language)),m=f.chat.workingDirectory,h=f.projectDetailPage,g=f.projectsPage,_=S(e=>e.setPageHeader),y=S(e=>e.clearPageHeader),[x,O]=(0,q.useState)(null),[I,R]=(0,q.useState)(null),[me,_e]=(0,q.useState)([]),[Ce,Ee]=(0,q.useState)(``),[De,Oe]=(0,q.useState)([]),[Fe,ze]=(0,q.useState)([]),[He,Ue]=(0,q.useState)([]),[We,Ye]=(0,q.useState)([]),[Ze,$e]=(0,q.useState)(!1),[tt,nt]=(0,q.useState)(null),[it,ot]=(0,q.useState)([]),[st,dt]=(0,q.useState)(0),[mt,ht]=(0,q.useState)(!1),[_t,yt]=(0,q.useState)(!1),[bt,St]=(0,q.useState)(!1),[Dt,Ot]=(0,q.useState)([]),kt=(0,q.useRef)(new Set),[J,At]=(0,q.useState)(null),[jt,Mt]=(0,q.useState)(gn),[Nt,Pt]=(0,q.useState)(!1),[Ft,Lt]=(0,q.useState)(!1),[Rt,zt]=(0,q.useState)(``),[Bt,Vt]=(0,q.useState)([]),[Ht,Ut]=(0,q.useState)(!1),[Wt,Gt]=(0,q.useState)(null),[Kt,qt]=(0,q.useState)(!1),[Jt,Yt]=(0,q.useState)(null),[Xt,Zt]=(0,q.useState)([]),[X,Qt]=(0,q.useState)(``),[$t,en]=(0,q.useState)(!0),[tn,nn]=(0,q.useState)(!1),[rn,an]=(0,q.useState)(!1),[on,cn]=(0,q.useState)(null),[ln,un]=(0,q.useState)(!1),[dn,fn]=(0,q.useState)(`fixed`),[pn,mn]=(0,q.useState)(``),[Dn,On]=(0,q.useState)(null),[kn,Fn]=(0,q.useState)(!1),[Bn,Vn]=(0,q.useState)(!1),[Hn,Un]=(0,q.useState)(0),[Wn,Gn]=(0,q.useState)(!1),[Kn,qn]=(0,q.useState)(null),[Jn,Yn]=(0,q.useState)(!1),[Xn,Z]=(0,q.useState)(null),[Zn,Qn]=(0,q.useState)({title:``,reason:``}),[Q,$n]=(0,q.useState)({name:``,description:``,status:`active`,defaultAgentId:``,workspaceRoot:``,brief:``,instructions:``}),er=`overview`,$=n?`notes`:vn(t)?t:er,tr=(0,q.useMemo)(()=>w(c.get(`returnTo`),`/projects`,[`/chat`]),[c]),nr=(0,q.useCallback)(t=>{if(!e)return`/projects`;let n=`/projects/${encodeURIComponent(e)}/${t}`;return tr===`/projects`?n:C(n,tr)},[tr,e]),rr=(0,q.useCallback)(t=>{e&&r(nr(t))},[r,e,nr]),ir=(0,q.useCallback)(t=>{e&&r(nr(t),{replace:!0})},[r,e,nr]),ar=(0,q.useCallback)((e,t)=>{ir(e),r(t)},[r,ir]),or=(0,q.useCallback)(e=>t=>{t.defaultPrevented||t.button!==0||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||ir(e)},[ir]),sr=(0,q.useCallback)(e=>e.startsWith(`/chat/`)?`sessions`:e.startsWith(`/workflows`)?`workflows`:e.startsWith(`/automations`)?`automations`:e.startsWith(`/notes`)?`notes`:$,[$]);(0,q.useEffect)(()=>{!e||!t||vn(t)||r(nr(er),{replace:!0})},[er,r,e,nr,t]),(0,q.useEffect)(()=>{if(!e)return;let t=!1;return en(!0),Z(null),Promise.all([re(e),B(e),le(e),A().catch(()=>null)]).then(([e,n,r,i])=>{t||(O(e),R(n),_e(r),Zt(i?.agents??[]),Qt(e.defaultAgentId??``),$n({name:e.name,description:e.description??``,status:e.status,defaultAgentId:e.defaultAgentId??``,workspaceRoot:e.workspaceRoot??``,brief:e.brief??``,instructions:e.instructions??``}))}).catch(e=>{t||Z(e instanceof Error?e.message:String(e))}).finally(()=>{t||en(!1)}),()=>{t=!0}},[e]);let cr=(0,q.useCallback)(async()=>{if(x){Gn(!0),Z(null);try{let[e,t]=await Promise.all([te(),v(100,{ownerAgentId:X||void 0,projectId:x.id})]);Oe(e),ze(t)}catch(e){Z(e instanceof Error?e.message:String(e))}finally{Gn(!1)}}},[x,X]);(0,q.useEffect)(()=>{x&&cr()},[x,cr]);let lr=(0,q.useCallback)(async()=>{if(x){$e(!0),Z(null);try{let[e,t]=await Promise.all([Me.list({projectId:x.id}),Me.runs(50,void 0,{projectId:x.id})]);Ue(e.automations),Ye(t.runs)}catch(e){Z(e instanceof Error?e.message:String(e))}finally{$e(!1)}}},[x]);(0,q.useEffect)(()=>{$===`automations`&&lr()},[lr,$]);let ur=(0,q.useCallback)(async()=>{if(x){ht(!0),Z(null);try{let e=await T(x.id,{includeRelated:_t,limit:100});ot(e.items),dt(e.total)}catch(e){Z(e instanceof Error?e.message:String(e))}finally{ht(!1)}}},[x,_t]);(0,q.useEffect)(()=>{$===`activity`&&ur()},[ur,$]);let dr=(0,q.useCallback)(async e=>{nt(`run:${e.id}`),Z(null);try{await Me.runNow(e.id),await lr()}catch(e){Z(e instanceof Error?e.message:String(e))}finally{nt(null)}},[lr]),fr=(0,q.useCallback)(async e=>{nt(`toggle:${e.id}`),Z(null);try{e.enabled?await Me.pause(e.id):await Me.resume(e.id),await lr()}catch(e){Z(e instanceof Error?e.message:String(e))}finally{nt(null)}},[lr]),pr=(0,q.useCallback)(async()=>{if(!x?.effectiveWorkspaceRoot?.trim()){Ot([]),kt.current.clear(),Yt(null);return}qt(!0),Yt(null),kt.current.clear();try{Ot(Ln((await N(x.id,``)).entries)),kt.current.add(``)}catch(e){Ot([]),kt.current.clear(),Yt(e instanceof Error?e.message:String(e))}finally{qt(!1)}},[x]),mr=(0,q.useCallback)(async e=>{if(!(!x?.effectiveWorkspaceRoot?.trim()||kt.current.has(e))){kt.current.add(e),Yt(null);try{let t=await N(x.id,e);Ot(n=>Rn(n,e,Ln(t.entries)))}catch(t){kt.current.delete(e),Yt(t instanceof Error?t.message:String(t))}}},[x]);(0,q.useEffect)(()=>{$===`files`&&pr()},[pr,$]);let hr=Rt.trim();(0,q.useEffect)(()=>{if($!==`files`||!x||!Ft||!hr){Vt([]),Ut(!1),Gt(null);return}let e=!1;Ut(!0),Gt(null),Vt([]);let t=window.setTimeout(()=>{he(x.id,hr,50).then(t=>{e||Vt(t)}).catch(t=>{e||Gt(t instanceof Error?t.message:String(t))}).finally(()=>{e||Ut(!1)})},180);return()=>{e=!0,window.clearTimeout(t)}},[hr,x,Ft,$]);let gr=(0,q.useCallback)(async()=>{if(x){Vn(!0),Z(null);try{let e=await V(x.id);ar(`sessions`,`/chat/${encodeURIComponent(e.key)}`)}catch(e){Z(e instanceof Error?e.message:String(e))}finally{Vn(!1)}}},[ar,x]),_r=(0,q.useCallback)(()=>{rr(`work-items`),Un(e=>e+1)},[rr]),vr=(0,q.useCallback)(async()=>{if(!x)return;let[e,t]=await Promise.all([re(x.id),B(x.id)]);R(t),O(e)},[x]),yr=(0,q.useCallback)(async e=>{if(e.preventDefault(),!(!x||!Zn.title.trim())){Yn(!0),Z(null);try{await qe(x.id,{title:Zn.title.trim(),reason:Zn.reason.trim()||void 0}),Qn({title:``,reason:``}),await vr()}catch(e){Z(e instanceof Error?e.message:String(e))}finally{Yn(!1)}}},[Zn.reason,Zn.title,x,vr]),br=(0,q.useCallback)(async e=>{if(x){qn(`retry:${e.id}`),Z(null);try{let t=await H(e.id,{ownerAgentId:X||e.metadata?.agentId,projectId:e.metadata?.projectId||x.id});await cr(),ar(`workflows`,oe(t.runId,{ownerAgentId:X||e.metadata?.agentId||x.defaultAgentId}))}catch(e){Z(e instanceof Error?e.message:String(e))}finally{qn(null)}}},[ar,x,cr,X]),xr=(0,q.useCallback)(async e=>{qn(`cancel:${e.id}`),Z(null);try{await fe(e.id,{ownerAgentId:X||e.metadata?.agentId}),await cr()}catch(e){Z(e instanceof Error?e.message:String(e))}finally{qn(null)}},[cr,X]),Sr=(0,q.useMemo)(()=>(0,Y.jsx)(s,{to:tr,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":tr===`/projects`?h.backToProjects:f.sidebar.back,children:(0,Y.jsx)(F,{className:`size-4`,"aria-hidden":!0})}),[tr,f.sidebar.back,h.backToProjects]),Cr=(0,q.useMemo)(()=>x?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(K,{variant:`secondary`,className:`h-9 rounded-lg`,onClick:_r,children:[(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0}),h.workItems.create.header]}),(0,Y.jsxs)(K,{variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>void gr(),disabled:Bn,children:[(0,Y.jsx)(we,{className:`size-4`,"aria-hidden":!0}),h.common.newChat]})]}):null,[_r,h.common.newChat,h.workItems.create.header,x,gr,Bn]);(0,q.useLayoutEffect)(()=>(_({startExtra:Sr,main:x?(0,Y.jsx)(zn,{currentProject:x,pm:h,projectsText:g,wd:m}):(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:h.fallbackTitle}),(0,Y.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:h.fallbackContext})]}),end:Cr}),()=>y()),[y,Cr,Sr,h,x,g,_,m]);function wr(e){O(t=>t?{...t,...e}:null),Qt(e.defaultAgentId??``),$n(t=>({...t,name:e.name,description:e.description??``,status:e.status,defaultAgentId:e.defaultAgentId??``,workspaceRoot:e.workspaceRoot??``,brief:e.brief??``,instructions:e.instructions??``})),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}async function Tr(){if(!(!x||!Q.name.trim())){nn(!0),Z(null),cn(null);try{wr(await D(x.id,{name:Q.name.trim(),status:Q.status,description:Q.description,defaultAgentId:Q.defaultAgentId,brief:Q.brief,instructions:Q.instructions}))}catch(e){let t=An(e);t?cn(t):Z(e instanceof Error?e.message:String(e))}finally{nn(!1)}}}function Er(e){e.preventDefault(),Tr()}let Dr=(0,q.useCallback)(()=>{if(!x)return;let e=x.workspaceRoot?.trim()??``;fn(e?`fixed`:`follow`),mn(e||x.effectiveWorkspaceRoot||``),un(!0)},[x]);async function Or(e={}){if(!x)return;let t=dn===`fixed`?pn.trim():``;if(!(dn===`fixed`&&!t)){nn(!0),Z(null),cn(null);try{wr(await D(x.id,{workspaceRoot:t,...e.createWorkspaceRoot?{createWorkspaceRoot:!0}:{}})),un(!1),cn(null)}catch(e){let t=An(e);t?(cn(t),un(!1)):Z(e instanceof Error?e.message:String(e))}finally{nn(!1)}}}async function kr(){if(!(!x||Dn)){On(`pin`),Z(null);try{wr(x.pinnedAt?await be(x.id):await b(x.id))}catch(e){Z(e instanceof Error?e.message:String(e))}finally{On(null)}}}async function Ar(){if(!(!x||Dn)){On(`archive`),Z(null);try{wr(x.status===`archived`?await ve(x.id):await Xe(x.id))}catch(e){Z(e instanceof Error?e.message:String(e))}finally{On(null)}}}async function jr(){if(x){Fn(!0),Z(null);try{await U(x.id),an(!1),r(`/projects`)}catch(e){Z(e instanceof Error?e.message:String(e))}finally{Fn(!1)}}}async function Mr(){if(!(!x||bt)){St(!0),Z(null);try{await j(x.id)}catch(e){Z(e instanceof Error?e.message:String(e))}finally{St(!1)}}}let Nr=(0,q.useCallback)(e=>{At(e)},[]),Pr=(0,q.useCallback)((e,t)=>{t||At(e)},[]),Fr=(0,q.useCallback)(async(e,t,n)=>{let r=x?.id;if(r)switch(e){case`preview`:t.isDirectory||At(t.path);break;case`download`:if(t.isDirectory)return;try{let e=se(t.path);if(Ie(Te(e))!==`text`){let n=await lt(t.path,{projectId:r}),i=Se(e)??`application/octet-stream`;pt(e,await n.arrayBuffer(),i)}else{let{content:n}=await Ge(t.path,{projectId:r});rt(e,n)}}catch(e){ft(`warning`,e instanceof Error?e.message:String(e),void 0,{duration:4e3})}break;case`copyPath`:try{await u(t.absolutePath??t.path)&&ft(`success`,f.workspace.pathCopied,void 0,{duration:2500})}catch{ft(`warning`,f.clipboard.copyFailed,void 0,{duration:4e3})}break;case`openDefault`:if(!t.absolutePath||!window.electronAPI?.shell?.openPath)return;await window.electronAPI.shell.openPath(t.absolutePath);break;case`openWith`:if(!t.absolutePath||!window.electronAPI?.shell?.chooseAppAndOpenPath)return;await window.electronAPI.shell.chooseAppAndOpenPath(t.absolutePath);break;case`openWithApp`:if(!t.absolutePath||!n||!window.electronAPI?.shell?.openPathWithApp)return;await window.electronAPI.shell.openPathWithApp(t.absolutePath,n);break;case`revealInFolder`:if(!t.absolutePath||!window.electronAPI?.shell?.showItemInFolder)return;await window.electronAPI.shell.showItemInFolder(t.absolutePath);break;default:break}},[f.clipboard.copyFailed,f.workspace.pathCopied,x?.id]),Ir=(0,q.useCallback)(e=>{if(!window.matchMedia(`(min-width: 1024px)`).matches)return;e.preventDefault();let t=e.currentTarget,n=t.closest(`[data-project-files-grid]`);if(!n)return;t.setPointerCapture(e.pointerId),Pt(!0);let r=e.clientX,i=jt,a=e.pointerId,o=0,s=i,c=i,l=()=>{o=0,c=s,n.style.setProperty(`--project-files-panel-width`,`${c}px`)},u=e=>{s=hn(i+(e.clientX-r)),o===0&&(o=window.requestAnimationFrame(l))},d=()=>{o!==0&&(window.cancelAnimationFrame(o),l());try{t.releasePointerCapture(a)}catch{}Pt(!1),Mt(c),_n(c),window.removeEventListener(`pointermove`,u),window.removeEventListener(`pointerup`,d),window.removeEventListener(`pointercancel`,d)};window.addEventListener(`pointermove`,u),window.addEventListener(`pointerup`,d),window.addEventListener(`pointercancel`,d)},[jt]);if((0,q.useEffect)(()=>{$!==`files`&&At(null)},[e,$]),$t)return(0,Y.jsx)(`main`,{className:`w-full flex-1 p-3 text-sm text-fg-muted sm:px-5 sm:py-4 xl:px-6`,children:h.loading});if(!x)return(0,Y.jsxs)(`main`,{className:`w-full flex-1 p-3 sm:px-5 sm:py-4 xl:px-6`,children:[(0,Y.jsxs)(s,{to:tr,className:`inline-flex items-center gap-2 text-sm text-accent-fg hover:underline`,children:[(0,Y.jsx)(F,{className:`size-4`,"aria-hidden":!0}),tr===`/projects`?h.backToProjects:f.sidebar.back]}),(0,Y.jsx)(`p`,{className:`mt-6 rounded-lg bg-surface-panel p-4 shadow-surface text-sm text-fg-muted`,children:Xn||h.notFound})]});let Lr=me.slice(0,6),Rr=I?.blockers??[],zr=I?.currentActions??[],Br=e=>h.statuses[e]??e,Vr=e=>bn(h.common.messages,{count:e}),Hr=Ce.trim().toLowerCase(),Ur=Hr?me.filter(e=>{let t=xn(e.updatedAt),n=e.routing?.agentId||e.agentId||h.common.agent,r=e.name?.trim()||h.sessions.fallbackTitle,i=Vr(e.messageCount??0),a=Pn(e);return[r,e.key,n,a,t,i].filter(Boolean).join(` `).toLowerCase().includes(Hr)}):me,Wr=me.length>0&&Ur.length===0,Gr=Xt.find(e=>e.id===Q.defaultAgentId)?.name||Q.defaultAgentId||h.settings.globalDefaultAgent,Kr=Xt.find(e=>e.id===Q.defaultAgentId),qr=x.workspaceRoot?.trim()||``,Jr=x.status===`archived`,Yr=!!x.pinnedAt,Xr=!qr,Zr=qr||Kr?.workspace||x.effectiveWorkspaceRoot||h.common.defaultWorkspace,Qr=dn===`fixed`?pn.trim()||h.settings.workspacePlaceholder:Kr?.workspace||x.effectiveWorkspaceRoot||h.common.defaultWorkspace,$r=(dn===`fixed`?pn.trim():``)!==qr&&(dn===`follow`||!!pn.trim()),ei=[{id:`overview`,icon:Ve,label:h.tabs.overview},{id:`work`,icon:Qe,label:h.tabs.work},{id:`files`,icon:G,label:h.tabs.files},{id:`notes`,icon:ue,label:h.tabs.notes},{id:`skills`,icon:Pe,label:h.tabs.skills},{id:`sessions`,icon:we,label:h.tabs.sessions},{id:`activity`,icon:vt,label:h.tabs.activity}],ti=[{id:`work-items`,icon:Qe,label:h.tabs.workItems},{id:`workflows`,icon:W,label:h.tabs.workflows},{id:`automations`,icon:ee,label:h.tabs.automations}],ni=yn($)?`work`:$;async function ri(){if(!Zr)return;let e=await u(Zr);ft(e?`success`:`warning`,e?f.workspace.pathCopied:f.clipboard.copyFailed,void 0,{duration:e?2500:4e3})}function ii(){cn(null),un(!0)}return(0,Y.jsxs)(`main`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden p-3 sm:px-5 sm:py-4 xl:px-6`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3`,children:[(0,Y.jsx)(Tt,{items:ei,activeTab:ni,onChange:e=>rr(e===`work`?`work-items`:e),ariaLabel:h.navAria,tabIdPrefix:`project-primary-tab`,className:`min-w-0 flex-1`}),(0,Y.jsxs)(K,{id:`project-primary-tab-settings`,type:`button`,variant:$===`settings`?`secondary`:`ghost`,className:`h-9 shrink-0 rounded-lg px-3`,"aria-current":$===`settings`?`page`:void 0,onClick:()=>rr(`settings`),children:[(0,Y.jsx)(et,{className:`size-4`,"aria-hidden":!0}),h.tabs.settings]})]}),Xn?(0,Y.jsx)(`p`,{className:`mt-3 shrink-0 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:Xn}):null,yn($)?(0,Y.jsx)(`div`,{className:`mt-3 shrink-0 rounded-xl border border-edge-subtle bg-surface-panel px-2 py-1 shadow-surface`,children:(0,Y.jsx)(Tt,{items:ti,activeTab:$,onChange:rr,ariaLabel:h.workNavAria,tabIdPrefix:`project-work-tab`,panelIdPrefix:`project-panel`,buttonClassName:`h-8 px-2.5 py-1.5 text-xs`})}):null,(0,Y.jsxs)(`div`,{className:l(`mt-3 min-h-0 flex-1`,$===`work-items`?`-mx-3 -mb-3 overflow-hidden sm:-mx-5 sm:-mb-4 xl:-mx-6`:$===`overview`?`overflow-y-auto pr-1 [scrollbar-gutter:stable] xl:overflow-hidden xl:pr-0`:`overflow-y-auto pr-1 [scrollbar-gutter:stable]`),children:[$===`overview`?(0,Y.jsxs)(`section`,{id:`project-panel-overview`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-overview`,className:`grid min-h-full gap-4 xl:h-full xl:min-h-0 xl:grid-cols-[minmax(0,1fr)_20rem] xl:overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`grid min-w-0 content-start gap-4 xl:min-h-0 xl:overflow-y-auto xl:pr-1 xl:[scrollbar-gutter:stable]`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 rounded-lg bg-surface-panel p-4 shadow-surface`,children:(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.overview.directionTitle}),(0,Y.jsx)(`p`,{className:`mt-1 max-w-3xl text-sm leading-6 text-fg-muted`,children:I?.digest.summary||x.description||x.brief||h.overview.directionFallback}),I?.digest.recommendedAction?(0,Y.jsx)(`p`,{className:`mt-2 max-w-3xl text-sm font-medium leading-6 text-fg`,children:bn(h.overview.recommendedNext,{action:I.digest.recommendedAction})}):null]}),(0,Y.jsx)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,onClick:()=>void Mr(),disabled:bt,children:[(0,Y.jsx)(Ne,{className:`size-4`,"aria-hidden":!0}),bt?h.overview.savingDigest:h.overview.saveDigest]})})]})}),(0,Y.jsxs)(`div`,{className:`min-w-0 rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.overview.nextActions}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2 py-1 text-xs`,onClick:_r,children:[(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0}),h.workItems.create.header]})]}),(0,Y.jsx)(`div`,{className:`divide-y divide-edge`,children:zr.length?zr.map(e=>(0,Y.jsxs)(s,{to:C(`/work-items/${encodeURIComponent(e.id)}`,nr(`overview`)),onClick:or(`work-items`),className:`block px-4 py-3 hover:bg-surface-hover`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.title}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-xs font-medium`,Sn(e.status)),children:Br(e.status)})]}),(0,Y.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm leading-5 text-fg-muted`,children:e.nextAction})]},e.id)):(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.overview.noNextActions})})]}),I?.recentReceipts.length?(0,Y.jsxs)(`div`,{className:`min-w-0 rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsx)(`div`,{className:`border-b border-edge px-4 py-3`,children:(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.overview.recentResults})}),(0,Y.jsx)(`div`,{className:`divide-y divide-edge`,children:I.recentReceipts.slice(0,5).map(e=>(0,Y.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.objective}),(0,Y.jsx)(`span`,{className:`shrink-0 rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg-muted`,children:h.overview.resultStatuses[e.status]??e.status})]}),(0,Y.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm leading-5 text-fg-muted`,children:e.summary})]},e.runId))})]}):null]}),(0,Y.jsxs)(`aside`,{className:`grid min-w-0 content-start gap-4 xl:min-h-0 xl:overflow-y-auto xl:pr-1 xl:[scrollbar-gutter:stable]`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.overview.attention}),Rr.length?(0,Y.jsx)(`div`,{className:`mt-3 grid gap-3`,children:Rr.map(e=>{let t=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(Be,{className:`size-4 text-amber-600 dark:text-amber-300`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.title})]}),(0,Y.jsxs)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:[h.overview.attentionKinds[e.kind]??e.kind,e.detail?` · ${e.detail}`:e.status?` · ${Br(e.status)}`:``]})]});return e.href?(0,Y.jsx)(s,{to:e.href,onClick:or(sr(e.href)),className:`min-w-0 rounded-md bg-surface-base p-3 hover:bg-surface-hover`,children:t},e.id):(0,Y.jsx)(`div`,{className:`min-w-0 rounded-md bg-surface-base p-3`,children:t},e.id)})}):(0,Y.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:h.overview.noBlockedGoals}),(0,Y.jsxs)(`form`,{onSubmit:yr,className:`mt-4 flex gap-2 border-t border-edge pt-4`,children:[(0,Y.jsx)(`input`,{className:`min-h-9 min-w-0 flex-1 rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,value:Zn.title,onChange:e=>Qn(t=>({...t,title:e.target.value})),placeholder:h.overview.blockerTitlePlaceholder}),(0,Y.jsx)(K,{type:`submit`,variant:`secondary`,className:`shrink-0 rounded-lg px-3`,disabled:Jn||!Zn.title.trim(),"aria-label":Jn?h.overview.addingBlocker:h.overview.addBlocker,title:Jn?h.overview.addingBlocker:h.overview.addBlocker,children:(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0})})]})]}),(0,Y.jsxs)(`div`,{className:`min-w-0 rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(ut,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsx)(`h2`,{className:`min-w-0 truncate text-sm font-semibold text-fg`,children:h.overview.recentSessions})]}),(0,Y.jsx)(`button`,{type:`button`,className:`shrink-0 text-xs font-medium text-accent-fg hover:underline`,onClick:()=>rr(`sessions`),children:h.common.viewAll})]}),(0,Y.jsx)(`div`,{className:`divide-y divide-edge`,children:Lr.length?Lr.map(e=>(0,Y.jsxs)(s,{to:`/chat/${encodeURIComponent(e.key)}`,onClick:or(`sessions`),className:`block px-4 py-3 hover:bg-surface-hover`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.name||e.key}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:xn(e.updatedAt)})]}),(0,Y.jsx)(`p`,{className:`mt-1 truncate text-xs text-fg-muted`,children:e.agentId||h.common.agent})]},e.key)):(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.overview.noSessions})})]})]})]}):null,$===`work-items`?(0,Y.jsx)(`section`,{id:`project-panel-work-items`,className:`flex h-full min-h-0 flex-col`,role:`tabpanel`,"aria-labelledby":`project-work-tab-work-items`,children:(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(sn,{projectId:x.id,createRequestKey:Hn,detailReturnTo:nr(`work-items`)})})}):null,$===`workflows`?(0,Y.jsxs)(`section`,{id:`project-panel-workflows`,role:`tabpanel`,"aria-labelledby":`project-work-tab-workflows`,className:`grid h-full min-h-[28rem] gap-4 xl:grid-cols-[minmax(0,1fr)_22rem]`,children:[(0,Y.jsx)(`div`,{className:`min-h-0`,children:(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.workflows.runsTitle}),(0,Y.jsx)(`p`,{className:`text-xs text-fg-muted`,children:h.workflows.runsHint})]}),(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,className:`h-9 rounded-lg`,onClick:()=>void cr(),disabled:Wn,children:[(0,Y.jsx)(pe,{className:`size-4`,"aria-hidden":!0}),h.common.refresh]})]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 divide-y divide-edge overflow-y-auto`,children:Wn&&Fe.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.workflows.loadingRuns}):Fe.length?Fe.map(e=>{let t=e.status===`queued`||e.status===`running`,n=e.status===`failed`||e.status===`timeout`||e.status===`cancelled`;return(0,Y.jsxs)(`div`,{className:`grid gap-2 px-4 py-3 hover:bg-surface-hover`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`min-w-0 truncate text-left text-sm font-medium text-fg hover:text-accent-fg`,onClick:()=>ar(`workflows`,oe(e.id,{ownerAgentId:X||e.metadata?.agentId||x.defaultAgentId})),children:e.title||e.definitionId}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-xs font-medium`,Cn(e.status)),children:Br(e.status)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate text-xs text-fg-muted`,children:bn(h.workflows.runMeta,{definitionId:e.definitionId,done:e.metrics.doneAgentCount,total:e.metrics.agentCount,time:xn(e.createdAtMs)})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2 py-1 text-xs`,onClick:()=>ar(`workflows`,oe(e.id,{ownerAgentId:X||e.metadata?.agentId||x.defaultAgentId})),children:h.common.open}),n?(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2 py-1 text-xs`,disabled:Kn===`retry:${e.id}`,onClick:()=>void br(e),children:[(0,Y.jsx)(pe,{className:`size-3.5`,"aria-hidden":!0}),h.common.retry]}):null,t?(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2 py-1 text-xs`,disabled:Kn===`cancel:${e.id}`,onClick:()=>void xr(e),children:[(0,Y.jsx)(Ae,{className:`size-3.5`,"aria-hidden":!0}),h.common.cancel]}):null]})]})]},e.id)}):(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.workflows.emptyRuns})})]})}),(0,Y.jsx)(`aside`,{className:`min-h-0`,children:(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.workflows.startTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:h.workflows.startHint})]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:(0,Y.jsx)(`div`,{className:`grid gap-2`,children:De.length?De.map(e=>(0,Y.jsxs)(`button`,{type:`button`,className:`grid gap-1 rounded-md bg-surface-base p-3 text-left hover:bg-surface-hover focus:outline-none focus:ring-2 focus:ring-accent/30`,onClick:()=>r(`/workflows/${e.id}?projectId=${encodeURIComponent(x.id)}${X?`&agentId=${encodeURIComponent(X)}`:``}`),children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,Y.jsx)(W,{className:`size-4 text-accent-fg`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:e.title})]}),(0,Y.jsx)(`span`,{className:`line-clamp-2 text-xs leading-5 text-fg-muted`,children:e.description||e.metadata.whenToUse||e.name})]},e.id)):(0,Y.jsx)(`div`,{className:`px-1 py-3 text-sm text-fg-muted`,children:h.workflows.emptyDefinitions})})})]})})]}):null,$===`automations`?(0,Y.jsxs)(`section`,{id:`project-panel-automations`,role:`tabpanel`,"aria-labelledby":`project-work-tab-automations`,className:`grid h-full min-h-[28rem] overflow-hidden gap-4 xl:grid-cols-[minmax(0,1fr)_22rem]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.automations.title}),(0,Y.jsx)(`p`,{className:`text-xs text-fg-muted`,children:h.automations.hint})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,className:`h-9 rounded-lg`,onClick:()=>void lr(),disabled:Ze,children:[(0,Y.jsx)(pe,{className:`size-4`,"aria-hidden":!0}),h.common.refresh]}),(0,Y.jsxs)(K,{type:`button`,variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>ar(`automations`,`/automations?projectId=${encodeURIComponent(x.id)}&action=create`),children:[(0,Y.jsx)(Je,{className:`size-4`,"aria-hidden":!0}),h.common.new]})]})]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 divide-y divide-edge overflow-y-auto`,children:Ze&&He.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.automations.loading}):He.length?He.map(e=>{let t=We.find(t=>t.automationId===e.id),n=e.state.runningRunId?We.find(t=>t.id===e.state.runningRunId):null;return(0,Y.jsxs)(`div`,{className:`grid gap-2 px-4 py-3 hover:bg-surface-hover`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`min-w-0 truncate text-left text-sm font-medium text-fg hover:text-accent-fg`,onClick:()=>ar(`automations`,`/automations?automation=${encodeURIComponent(e.id)}`),children:e.name}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-xs font-medium`,e.enabled?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:`bg-surface-hover text-fg-muted`),children:e.enabled?h.automations.enabled:h.automations.paused})]}),(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm leading-5 text-fg-muted`,children:e.description||e.action.kind}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate text-xs text-fg-muted`,children:bn(h.common.lastRun,{trigger:e.trigger.kind,action:e.action.kind,time:t?xn(t.createdAtMs):h.common.never})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2 py-1 text-xs`,disabled:tt===`run:${e.id}`||!!n,onClick:()=>void dr(e),children:[(0,Y.jsx)(W,{className:`size-3.5`,"aria-hidden":!0}),h.automations.run]}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2 py-1 text-xs`,disabled:tt===`toggle:${e.id}`,onClick:()=>void fr(e),children:[e.enabled?(0,Y.jsx)(xt,{className:`size-3.5`,"aria-hidden":!0}):(0,Y.jsx)(W,{className:`size-3.5`,"aria-hidden":!0}),e.enabled?h.automations.pause:h.automations.resume]})]})]})]},e.id)}):(0,Y.jsxs)(`div`,{className:`grid gap-3 px-4 py-6 text-sm text-fg-muted`,children:[(0,Y.jsx)(`p`,{children:h.automations.empty}),(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,className:`rounded-lg`,onClick:()=>ar(`automations`,`/automations?projectId=${encodeURIComponent(x.id)}&action=create`),children:[(0,Y.jsx)(ee,{className:`size-4`,"aria-hidden":!0}),h.automations.create]})})]})})]}),(0,Y.jsxs)(`aside`,{className:`grid min-h-0 min-w-0 content-start gap-4 overflow-y-auto pr-1 [scrollbar-gutter:stable]`,children:[(0,Y.jsxs)(`div`,{className:`rounded-lg bg-surface-panel shadow-surface`,children:[(0,Y.jsx)(`div`,{className:`border-b border-edge px-4 py-3`,children:(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.automations.recentRuns})}),(0,Y.jsx)(`div`,{className:`divide-y divide-edge`,children:We.length?We.slice(0,8).map(e=>(0,Y.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.automationName}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-xs font-medium`,Cn(e.status)),children:Br(e.status)})]}),(0,Y.jsx)(`p`,{className:`mt-1 truncate text-xs text-fg-muted`,children:xn(e.createdAtMs)})]},e.id)):(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.automations.emptyRuns})})]}),(0,Y.jsxs)(`div`,{className:`rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.automations.contextTitle}),(0,Y.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:h.automations.contextHint}),(0,Y.jsx)(`p`,{className:`mt-3 break-all text-xs text-fg-subtle`,children:x.workspaceRoot||x.effectiveWorkspaceRoot||h.common.defaultWorkspace})]})]})]}):null,$===`notes`?(0,Y.jsx)(`section`,{id:`project-panel-notes`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-notes`,className:`flex h-full min-h-[28rem] overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:(0,Y.jsx)(wt,{selectedNoteId:n,basePath:`/projects/${encodeURIComponent(x.id)}/notes`,showLibrary:!1,allowMediaCapture:!1,projectId:x.id,listTitle:h.notes.title,listDescription:h.notes.hint,emptyText:h.notes.emptyTitle,emptyDescription:h.notes.emptyDescription,listWidthStorageKey:`xopc.projectNotes.listWidth.${x.id}`})}):null,$===`skills`?(0,Y.jsx)(It,{projectId:x.id,copy:h.skills}):null,$===`files`?(0,Y.jsx)(`section`,{id:`project-panel-files`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-files`,className:`flex h-full min-h-[28rem] flex-col`,children:(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:x.effectiveWorkspaceRoot?(0,Y.jsxs)(`div`,{"data-project-files-grid":!0,className:l(`grid min-h-0 flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[var(--project-files-panel-width)_6px_minmax(0,1fr)]`,Nt&&`cursor-col-resize select-none`),style:{"--project-files-panel-width":`${jt}px`},children:[(0,Y.jsxs)(`aside`,{className:`flex min-h-0 flex-col border-b border-edge lg:border-b-0 lg:border-r`,children:[(0,Y.jsxs)(`div`,{className:`flex h-11 items-center gap-1 border-b border-edge bg-surface-muted/50 px-3 text-sm`,children:[(0,Y.jsx)(ne,{workspacePath:Zr}),(0,Y.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(`button`,{type:`button`,className:l(`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,Ft&&`bg-surface-hover text-fg`),onClick:()=>Lt(!0),"aria-label":h.files.search,title:h.files.search,"aria-pressed":Ft,children:(0,Y.jsx)(gt,{className:`size-3.5`,"aria-hidden":!0})}),(0,Y.jsx)(at,{className:`size-7 shrink-0 rounded-md p-0`,loading:Kt,label:f.cron.refresh,onClick:()=>void pr()})]})]}),Ft?(0,Y.jsx)(`div`,{className:`shrink-0 border-b border-edge bg-surface-muted/40 px-3 py-2`,children:(0,Y.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-md border border-edge bg-surface-panel px-2 focus-within:border-accent focus-within:ring-2 focus-within:ring-accent/20`,children:[(0,Y.jsx)(gt,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{type:`text`,role:`searchbox`,value:Rt,onChange:e=>zt(e.target.value),placeholder:h.files.searchPlaceholder,"aria-label":h.files.searchPlaceholder,className:`min-w-0 flex-1 bg-transparent text-xs text-fg outline-none placeholder:text-fg-subtle`}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-6 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":h.files.clearSearch,title:h.files.clearSearch,onClick:()=>{zt(``),Lt(!1)},children:(0,Y.jsx)(ae,{className:`size-3.5`,"aria-hidden":!0})})]})}):null,Jt?(0,Y.jsx)(`div`,{className:`border-b border-edge bg-red-500/10 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:Jt}):null,hr?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-2`,children:Ht?(0,Y.jsxs)(`div`,{className:`space-y-2 px-3 py-1`,children:[(0,Y.jsx)(Le,{className:`h-11 w-full`}),(0,Y.jsx)(Le,{className:`h-11 w-full`}),(0,Y.jsx)(Le,{className:`h-11 w-full`})]}):Wt?(0,Y.jsxs)(`p`,{className:`px-3 py-2 text-xs text-red-600 dark:text-red-400`,children:[f.workspace.loadError,`: `,Wt]}):Bt.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-2 text-xs text-fg-muted`,children:h.files.noSearchResults}):Bt.map(e=>(0,Y.jsxs)(`button`,{type:`button`,className:l(`flex w-full min-w-0 items-center gap-2 px-3 py-2 text-left hover:bg-surface-hover`,J===e.path&&`bg-accent-soft text-accent-fg`),onClick:()=>At(e.path),title:e.path,children:[(0,Y.jsx)(ue,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block truncate text-sm text-fg`,children:e.name}),(0,Y.jsx)(`span`,{className:`block truncate text-xs text-fg-subtle`,children:e.path})]})]},e.path))}):Kt&&Dt.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:h.files.loading}):(0,Y.jsx)(ke,{tree:Dt,selectedPath:J,onSelectFile:Nr,onSelectEntry:Pr,onExpandDir:e=>void mr(e),onAction:Fr,actionLabels:{preview:f.workspace.preview,download:f.workspace.download,copyPath:f.workspace.copyPath,openDefault:f.workspace.openSystemApp,openWith:f.workspace.openWith,revealInFolder:f.workspace.revealInFolder,recommendedApps:f.workspace.recommendedApps},emptyHint:h.files.emptyDirectory})]}),(0,Y.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":h.files.resizeHandle,className:l(`hidden cursor-col-resize touch-none items-stretch justify-center bg-surface-panel transition-colors hover:bg-surface-hover lg:flex`,Nt&&`bg-surface-hover`),onPointerDown:Ir,children:(0,Y.jsx)(`div`,{className:`my-3 w-px rounded-full bg-edge-strong/70`})}),(0,Y.jsx)(`div`,{className:`min-h-0 min-w-0 overflow-hidden bg-surface-base`,children:J?(0,Y.jsx)(Re,{filePath:J,projectId:x.id,agentId:x.defaultAgentId||X||void 0,onClose:()=>At(null)}):(0,Y.jsx)(`div`,{className:`flex h-full min-h-[18rem] items-center justify-center px-6 text-center`,children:(0,Y.jsxs)(`div`,{className:`max-w-sm`,children:[(0,Y.jsx)(G,{className:`mx-auto size-8 text-fg-subtle`,"aria-hidden":!0}),(0,Y.jsx)(`p`,{className:`mt-3 text-sm font-medium text-fg`,children:h.files.previewEmptyTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:h.files.previewEmptyDescription})]})})})]}):(0,Y.jsxs)(`div`,{className:`grid gap-3 px-4 py-8 text-sm text-fg-muted`,children:[(0,Y.jsx)(`p`,{children:h.files.needWorkspace}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(K,{type:`button`,variant:`secondary`,className:`rounded-lg`,onClick:()=>rr(`settings`),children:h.files.openSettings})})]})})}):null,$===`sessions`?(0,Y.jsxs)(`section`,{id:`project-panel-sessions`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-sessions`,className:`grid min-h-full content-start gap-3`,children:[me.length?(0,Y.jsxs)(`label`,{className:`relative flex min-h-9 w-full max-w-lg cursor-text items-center rounded-lg bg-surface-panel py-1.5 pl-9 pr-9 shadow-surface`,children:[(0,Y.jsx)(gt,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{type:`search`,enterKeyHint:`search`,value:Ce,onChange:e=>Ee(e.currentTarget.value),placeholder:h.sessions.searchPlaceholder,"aria-label":h.sessions.searchPlaceholder,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`}),Ce?(0,Y.jsx)(`button`,{type:`button`,className:`absolute right-2 top-1/2 inline-flex size-6 -translate-y-1/2 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":h.sessions.clearSearch,onClick:()=>Ee(``),children:(0,Y.jsx)(ae,{className:`size-3.5`,"aria-hidden":!0})}):null]}):null,Ur.length?(0,Y.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:Ur.map(e=>{let t=xn(e.updatedAt),n=e.routing?.agentId||e.agentId||h.common.agent,r=Pn(e),i=e.name?.trim()||h.sessions.fallbackTitle,a=Vr(e.messageCount??0);return(0,Y.jsxs)(s,{to:`/chat/${encodeURIComponent(e.key)}`,onClick:or(`sessions`),className:`group flex min-h-[8.75rem] min-w-0 flex-col rounded-lg bg-surface-panel p-4 shadow-surface transition-colors hover:bg-surface-hover/45 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-base text-fg-muted`,children:(0,Y.jsx)(we,{className:`size-4`,"aria-hidden":!0})}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`h3`,{className:`min-w-0 flex-1 truncate text-sm font-semibold text-fg`,children:i}),r?(0,Y.jsx)(`span`,{className:`shrink-0 rounded-md bg-surface-base px-2 py-0.5 text-[11px] font-medium leading-5 text-fg-muted`,children:r}):null]})})]}),(0,Y.jsxs)(`div`,{className:`mt-auto grid gap-2 pt-4 text-xs text-fg-muted`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Y.jsxs)(`span`,{className:`min-w-0 max-w-full truncate rounded-md bg-surface-base px-2 py-1`,children:[h.sessions.agent,`: `,n]}),(0,Y.jsx)(`span`,{className:`rounded-md bg-surface-base px-2 py-1`,children:a})]}),t?(0,Y.jsxs)(`span`,{className:`truncate rounded-md bg-surface-base px-2 py-1`,children:[h.sessions.updated,`: `,t]}):null]})]},e.key)})}):Wr?(0,Y.jsx)(`div`,{className:`grid gap-1 rounded-lg bg-surface-panel px-4 py-8 text-center shadow-surface`,children:(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:h.sessions.noMatches})}):(0,Y.jsx)(`div`,{className:`grid gap-1 rounded-lg bg-surface-panel px-4 py-8 text-center shadow-surface`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:h.sessions.emptyTitle}),(0,Y.jsx)(`p`,{className:`mx-auto mt-1 max-w-md text-sm leading-6 text-fg-muted`,children:h.sessions.emptyDescription})]})})]}):null,$===`activity`?(0,Y.jsxs)(`section`,{id:`project-panel-activity`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-activity`,className:`grid min-h-full content-start gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.activity.title}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:bn(h.activity.count,{count:st})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsxs)(`label`,{className:`inline-flex min-h-9 items-center gap-2 rounded-lg bg-surface-panel px-3 text-sm text-fg-muted shadow-surface`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:_t,onChange:e=>yt(e.currentTarget.checked),className:`size-4 rounded border-edge text-accent focus:ring-accent/30`}),h.activity.includeRelated]}),(0,Y.jsxs)(K,{type:`button`,variant:`secondary`,className:`h-9 rounded-lg px-3`,onClick:()=>void ur(),disabled:mt,children:[(0,Y.jsx)(pe,{className:l(`size-4`,mt&&`animate-spin`),"aria-hidden":!0}),h.common.refresh]})]})]}),(0,Y.jsx)(`div`,{className:`overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:mt&&it.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-8 text-sm text-fg-muted`,children:h.activity.loading}):it.length?(0,Y.jsx)(`div`,{className:`divide-y divide-edge`,children:it.map(e=>{let t=h.activity.types[e.type]??e.type,n=h.activity.objectKinds[e.primaryObject.kind]??e.primaryObject.kind,r=In(e),i=e.relatedProjects.length>0&&!e.scopes.some(e=>e.scopeKind===`project`&&e.scopeId===x.id);return(0,Y.jsxs)(`article`,{className:`grid gap-2 px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:t}),i?(0,Y.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-xs font-medium text-fg-muted`,children:h.activity.related}):null]}),(0,Y.jsxs)(`p`,{className:`mt-1 min-w-0 truncate text-sm text-fg-muted`,children:[n,`: `,Mn(e)]})]}),(0,Y.jsx)(`time`,{className:`shrink-0 text-xs text-fg-subtle`,dateTime:new Date(e.createdAt).toISOString(),children:xn(e.createdAt)})]}),r?(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm leading-5 text-fg-muted`,children:r}):null,(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2 text-xs text-fg-subtle`,children:[(0,Y.jsxs)(`span`,{className:`rounded-md bg-surface-base px-2 py-1`,children:[h.activity.actor,`: `,jn(e)]}),(0,Y.jsxs)(`span`,{className:`max-w-full truncate rounded-md bg-surface-base px-2 py-1`,children:[h.activity.source,`: `,Nn(e)]})]})]},e.id)})}):(0,Y.jsx)(`div`,{className:`px-4 py-8 text-sm text-fg-muted`,children:h.activity.empty})})]}):null,$===`settings`?(0,Y.jsxs)(`form`,{id:`project-panel-settings`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-settings`,onSubmit:Er,className:`grid min-h-full content-start gap-4`,children:[(0,Y.jsxs)(`section`,{className:`grid gap-3 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.settings.summaryTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:h.settings.summaryHint})]}),(0,Y.jsx)(`span`,{className:l(`shrink-0 rounded-full px-2 py-0.5 text-xs font-medium`,Sn(Q.status)),children:h.settings.statuses[Q.status]})]}),(0,Y.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-5`,children:[(0,Y.jsx)(En,{label:h.settings.workspaceRoot,value:Zr,mono:!0}),(0,Y.jsx)(En,{label:h.settings.defaultAgent,value:Gr}),(0,Y.jsx)(En,{label:h.settings.pinState,value:Yr?h.settings.pinned:h.settings.notPinned}),(0,Y.jsx)(En,{label:h.settings.createdAt,value:xn(x.createdAt)||h.common.never}),(0,Y.jsx)(En,{label:h.settings.updatedAt,value:xn(x.updatedAt)||h.common.never})]})]}),(0,Y.jsxs)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsx)(`div`,{children:(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.settings.detailsTitle})}),(0,Y.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,Y.jsx)(wn,{label:h.settings.name,children:(0,Y.jsx)(`input`,{className:Tn(),value:Q.name,onChange:e=>$n(t=>({...t,name:e.target.value}))})}),(0,Y.jsx)(wn,{label:h.settings.defaultAgent,children:(0,Y.jsxs)(Ke,{className:Tn(),value:Q.defaultAgentId,onChange:e=>$n(t=>({...t,defaultAgentId:e.target.value})),children:[(0,Y.jsx)(je,{value:``,children:h.settings.globalDefaultAgent}),Xt.map(e=>(0,Y.jsx)(je,{value:e.id,children:de(e,f.agentsSettings)},e.id))]})}),(0,Y.jsx)(wn,{label:h.settings.status,children:Jr?(0,Y.jsx)(`div`,{className:`grid min-h-10 content-center rounded-md border border-edge bg-surface-muted px-3 text-sm text-fg-muted`,children:h.settings.statuses.archived}):(0,Y.jsxs)(Ke,{className:Tn(),value:Q.status===`archived`?`active`:Q.status,onChange:e=>$n(t=>({...t,status:e.target.value})),children:[(0,Y.jsx)(je,{value:`active`,children:h.settings.statuses.active}),(0,Y.jsx)(je,{value:`paused`,children:h.settings.statuses.paused})]})}),(0,Y.jsx)(wn,{label:h.settings.description,hint:h.settings.descriptionHint,children:(0,Y.jsx)(`textarea`,{className:Tn(!0),value:Q.description,onChange:e=>$n(t=>({...t,description:e.target.value}))})})]})]}),(0,Y.jsx)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:(0,Y.jsxs)(`div`,{className:`grid gap-2 text-sm`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:h.settings.workspaceRoot}),(0,Y.jsxs)(`div`,{className:`grid gap-3 rounded-md border border-edge bg-surface-base p-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 md:flex-row md:items-start md:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:(0,Y.jsx)(`span`,{className:`rounded-md bg-surface-muted px-2 py-0.5 text-xs font-medium text-fg-muted`,children:Xr?h.settings.workspaceModeFollow:h.settings.workspaceModeFixed})}),(0,Y.jsx)(`div`,{className:`mt-2 break-all font-mono text-xs leading-5 text-fg`,title:Zr,children:Zr})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:()=>void ri(),children:[(0,Y.jsx)(ce,{className:`size-4`,"aria-hidden":!0}),h.settings.copyWorkspacePath]}),(0,Y.jsx)(ne,{workspacePath:Zr}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:Dr,children:[(0,Y.jsx)(ie,{className:`size-4`,"aria-hidden":!0}),h.settings.migrateWorkspace]})]})]}),(0,Y.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:h.settings.workspaceMigrationHint})]})]})}),(0,Y.jsxs)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.settings.projectGuidanceTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:h.settings.projectGuidanceHint})]}),(0,Y.jsx)(wn,{label:h.settings.brief,hint:h.settings.briefHint,children:(0,Y.jsx)(`textarea`,{className:Tn(!0),value:Q.brief,onChange:e=>$n(t=>({...t,brief:e.target.value}))})}),(0,Y.jsx)(wn,{label:h.settings.instructions,hint:h.settings.instructionsHint,children:(0,Y.jsx)(`textarea`,{className:Tn(!0),value:Q.instructions,onChange:e=>$n(t=>({...t,instructions:e.target.value}))})})]}),(0,Y.jsxs)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:h.settings.managementTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:h.settings.managementHint})]}),(0,Y.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,Y.jsxs)(`div`,{className:`grid gap-3 rounded-md border border-edge bg-surface-base p-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:Yr?h.settings.pinnedTitle:h.settings.pinTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:h.settings.pinHint})]}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`w-fit rounded-lg`,disabled:Dn===`pin`,onClick:()=>void kr(),children:[Yr?(0,Y.jsx)(E,{className:`size-4`,"aria-hidden":!0}):(0,Y.jsx)(P,{className:`size-4`,"aria-hidden":!0}),Yr?h.settings.unpinProject:h.settings.pinProject]})]}),(0,Y.jsxs)(`div`,{className:`grid gap-3 rounded-md border border-edge bg-surface-base p-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:Jr?h.settings.restoreTitle:h.settings.archiveTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:Jr?h.settings.restoreHint:h.settings.archiveHint})]}),(0,Y.jsxs)(K,{type:`button`,variant:Jr?`primary`:`ghost`,className:`w-fit rounded-lg`,disabled:Dn===`archive`,onClick:()=>void Ar(),children:[Jr?(0,Y.jsx)(pe,{className:`size-4`,"aria-hidden":!0}):(0,Y.jsx)(Ct,{className:`size-4`,"aria-hidden":!0}),Jr?h.settings.restoreProject:h.settings.archiveProject]})]})]})]}),(0,Y.jsxs)(`section`,{className:`grid gap-3 rounded-lg border border-red-500/20 bg-red-500/5 p-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-red-700 dark:text-red-300`,children:h.settings.dangerTitle}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-red-700/80 dark:text-red-200/80`,children:h.settings.dangerHint})]}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`w-fit text-red-600 hover:bg-red-500/10 hover:text-red-700 focus-visible:ring-red-500 dark:text-red-400 dark:hover:text-red-300`,onClick:()=>an(!0),children:[(0,Y.jsx)(L,{className:`size-4`,"aria-hidden":!0}),h.settings.deleteConfirmAction]})]}),(0,Y.jsx)(`div`,{className:`flex flex-wrap justify-end gap-2 border-t border-edge pt-4`,children:(0,Y.jsxs)(K,{type:`submit`,variant:`primary`,disabled:tn||!Q.name.trim(),children:[(0,Y.jsx)(Ne,{className:`size-4`,"aria-hidden":!0}),h.common.save]})})]}):null]}),(0,Y.jsx)(ye,{open:rn,onOpenChange:e=>{kn||an(e)},children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Y.jsxs)(ge,{className:`fixed left-1/2 top-1/2 z-[90] w-[min(28rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-panel p-5 shadow-float focus:outline-none`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-lg bg-red-500/10 text-red-600 dark:text-red-400`,children:(0,Y.jsx)(Be,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:h.settings.deleteConfirmTitle}),(0,Y.jsx)(xe,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:x?bn(h.settings.deleteConfirm,{name:x.name}):h.settings.deleteConfirmFallback})]})]}),(0,Y.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:kn,children:h.common.cancel})}),(0,Y.jsxs)(K,{type:`button`,variant:`ghost`,className:`rounded-lg text-red-600 hover:bg-red-500/10 hover:text-red-700 focus-visible:ring-red-500 dark:text-red-400 dark:hover:text-red-300`,disabled:kn||!x,onClick:()=>void jr(),children:[(0,Y.jsx)(L,{className:`size-4`,"aria-hidden":!0}),h.settings.deleteConfirmAction]})]})]})]})}),(0,Y.jsx)(ye,{open:ln,onOpenChange:e=>{tn||un(e)},children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Y.jsxs)(ge,{className:`fixed left-1/2 top-1/2 z-[90] flex h-[min(34rem,calc(100vh-2rem))] w-[min(36rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Y.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:h.settings.workspaceMigrationTitle}),(0,Y.jsx)(xe,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:h.settings.workspaceMigrationDescription})]}),(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,Y.jsxs)(`div`,{className:`grid gap-2 text-sm`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-fg-muted`,children:h.settings.workspaceMode}),(0,Y.jsxs)(`div`,{className:`grid gap-2 md:grid-cols-2`,children:[(0,Y.jsxs)(`label`,{className:l(`flex min-h-10 items-start gap-2 rounded-md border px-3 py-2`,dn===`fixed`?`border-accent bg-accent-soft/40 text-fg`:`border-edge bg-surface-base text-fg-muted`),children:[(0,Y.jsx)(`input`,{type:`radio`,className:`mt-0.5 size-4`,checked:dn===`fixed`,onChange:()=>fn(`fixed`),disabled:tn}),(0,Y.jsxs)(`span`,{className:`min-w-0`,children:[(0,Y.jsx)(`span`,{className:`block font-medium`,children:h.settings.workspaceModeFixed}),(0,Y.jsx)(`span`,{className:`block text-xs leading-5 text-fg-subtle`,children:h.settings.workspaceMigrationFixedHint})]})]}),(0,Y.jsxs)(`label`,{className:l(`flex min-h-10 items-start gap-2 rounded-md border px-3 py-2`,dn===`follow`?`border-accent bg-accent-soft/40 text-fg`:`border-edge bg-surface-base text-fg-muted`),children:[(0,Y.jsx)(`input`,{type:`radio`,className:`mt-0.5 size-4`,checked:dn===`follow`,onChange:()=>fn(`follow`),disabled:tn}),(0,Y.jsxs)(`span`,{className:`min-w-0`,children:[(0,Y.jsx)(`span`,{className:`block font-medium`,children:h.settings.workspaceModeFollow}),(0,Y.jsx)(`span`,{className:`block text-xs leading-5 text-fg-subtle`,children:h.settings.workspaceHint})]})]})]})]}),dn===`fixed`?(0,Y.jsx)(Et,{value:pn,onChange:mn,disabled:tn,wd:m,placeholder:h.settings.workspacePlaceholder,inputClassName:Tn(),autoFocus:!0}):null,(0,Y.jsx)(`div`,{className:`rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm leading-6 text-amber-800 dark:text-amber-200`,children:h.settings.workspaceMigrationImpact}),(0,Y.jsx)(`div`,{className:`rounded-lg bg-surface-muted px-3 py-2 text-xs leading-5 text-fg-subtle`,children:bn(h.settings.workspaceCurrent,{workspace:Qr})})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Y.jsx)(M,{asChild:!0,children:(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:tn,children:h.common.cancel})}),(0,Y.jsxs)(K,{type:`button`,variant:`primary`,className:`rounded-lg`,disabled:tn||!$r,onClick:()=>void Or(),children:[(0,Y.jsx)(ie,{className:`size-4`,"aria-hidden":!0}),h.settings.workspaceMigrationConfirm]})]})]})]})}),(0,Y.jsx)(ye,{open:!!on,onOpenChange:e=>{e||cn(null)},children:(0,Y.jsxs)(z,{children:[(0,Y.jsx)(k,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Y.jsxs)(ge,{className:`fixed left-1/2 top-1/2 z-[90] flex w-[min(30rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Y.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,Y.jsx)(ct,{className:`text-base font-semibold text-fg`,children:h.settings.workspaceMissingTitle}),(0,Y.jsx)(xe,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:on?bn(h.settings.workspaceMissingDescription,{workspace:on}):null})]}),on?(0,Y.jsx)(`div`,{className:`px-5 py-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-surface-muted px-3 py-2 text-sm text-fg-muted`,children:[(0,Y.jsx)(G,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:on})]})}):null,(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Y.jsx)(K,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:ii,disabled:tn,children:h.settings.workspaceMissingBack}),(0,Y.jsxs)(K,{type:`button`,variant:`primary`,className:`rounded-lg`,onClick:()=>void Or({createWorkspaceRoot:!0}),disabled:tn,children:[(0,Y.jsx)(ie,{className:`size-4`,"aria-hidden":!0}),h.settings.workspaceMissingCreate]})]})]})]})})]})}export{Bn as ProjectDetailPage};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-BMhrPKJC.js";import{t as a}from"./cn-JdwAhgNB.js";import{t as o}from"./messages-H_iJjnEM.js";import{n as s}from"./locale-store-BNC8HUCI.js";import{Aa as c,Ba as l,Do as u,Fc as d,Fl as f,Fu as p,Go as m,Ho as h,Ic as g,Il as _,Ko as v,Mt as y,Ot as b,Sc as ee,Uo as x,Va as S,Vo as C,Wa as w,Wo as T,eo as E,jc as D,js as O,ka as k,mt as A,nl as j,qo as M,vc as N,za as P,zu as F}from"./index-BA56bQ68.js";var I=n(),L=e(t(),1),R=r();function z(e,t){if(e==null)return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:A(n)}function te(e){return[...e].sort((e,t)=>{let n=Number(!!t.pinnedAt)-Number(!!e.pinnedAt);return n===0?new Date(t.lastActiveAt??t.updatedAt).getTime()-new Date(e.lastActiveAt??e.updatedAt).getTime():n})}function ne(){let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,"aria-busy":!0,children:Array.from({length:6},B)}),e[0]=t):t=e[0],t}function B(e,t){return(0,R.jsx)(E,{className:`h-40 rounded-xl`},t)}function re(e){let t=(0,I.c)(59),{project:n,busy:r,onTogglePin:a,onToggleArchive:c}=e,l=s(ie),u,f,m,h,v,y,b,x;if(t[0]!==l||t[1]!==n.brief||t[2]!==n.description||t[3]!==n.id||t[4]!==n.lastActiveAt||t[5]!==n.name||t[6]!==n.status||t[7]!==n.updatedAt||t[8]!==n.workspaceRoot){let e=o(l).projectsPage;u=e.management,b=`flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`;let r;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent`,children:(0,R.jsx)(_,{className:`size-4`,"aria-hidden":!0})}),t[17]=r):r=t[17];let a;t[18]===n.name?a=t[19]:(a=(0,R.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:n.name}),t[18]=n.name,t[19]=a);let s=(0,R.jsxs)(`div`,{className:`min-w-0`,children:[a,(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.statuses[n.status]})]}),c;t[20]===s?c=t[21]:(c=(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[r,s]}),t[20]=s,t[21]=c);let d;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,R.jsx)(p,{className:`mt-2 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0}),t[22]=d):d=t[22];let g;t[23]===c?g=t[24]:(g=(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[c,d]}),t[23]=c,t[24]=g),x=(0,R.jsxs)(i,{to:`/projects/${encodeURIComponent(n.id)}`,className:`group flex min-w-0 flex-1 flex-col rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[g,(0,R.jsx)(`p`,{className:`mt-3 line-clamp-2 min-h-10 text-xs leading-5 text-fg-muted`,children:n.description||n.brief||e.noDescription})]}),y=`mt-3 flex shrink-0 items-end justify-between gap-3 border-t border-edge-subtle pt-3`,h=`min-w-0 text-[11px] text-fg-subtle`,v=(0,R.jsx)(`p`,{className:`truncate`,children:n.workspaceRoot||e.agentDefault}),f=`mt-1`,m=z(n.lastActiveAt??n.updatedAt,e.never),t[0]=l,t[1]=n.brief,t[2]=n.description,t[3]=n.id,t[4]=n.lastActiveAt,t[5]=n.name,t[6]=n.status,t[7]=n.updatedAt,t[8]=n.workspaceRoot,t[9]=u,t[10]=f,t[11]=m,t[12]=h,t[13]=v,t[14]=y,t[15]=b,t[16]=x}else u=t[9],f=t[10],m=t[11],h=t[12],v=t[13],y=t[14],b=t[15],x=t[16];let S;t[25]!==f||t[26]!==m?(S=(0,R.jsx)(`p`,{className:f,children:m}),t[25]=f,t[26]=m,t[27]=S):S=t[27];let C;t[28]!==h||t[29]!==v||t[30]!==S?(C=(0,R.jsxs)(`div`,{className:h,children:[v,S]}),t[28]=h,t[29]=v,t[30]=S,t[31]=C):C=t[31];let w=n.pinnedAt?u.unpin:u.pin,T=n.pinnedAt?u.unpin:u.pin,E;t[32]===n.pinnedAt?E=t[33]:(E=n.pinnedAt?(0,R.jsx)(d,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(g,{className:`size-4`,"aria-hidden":!0}),t[32]=n.pinnedAt,t[33]=E);let D;t[34]!==r||t[35]!==a||t[36]!==w||t[37]!==T||t[38]!==E?(D=(0,R.jsx)(O,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:a,"aria-label":w,title:T,children:E}),t[34]=r,t[35]=a,t[36]=w,t[37]=T,t[38]=E,t[39]=D):D=t[39];let k=n.status===`archived`?u.restore:u.archive,A=n.status===`archived`?u.restore:u.archive,j;t[40]===n.status?j=t[41]:(j=n.status===`archived`?(0,R.jsx)(ee,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(F,{className:`size-4`,"aria-hidden":!0}),t[40]=n.status,t[41]=j);let M;t[42]!==r||t[43]!==c||t[44]!==k||t[45]!==A||t[46]!==j?(M=(0,R.jsx)(O,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:c,"aria-label":k,title:A,children:j}),t[42]=r,t[43]=c,t[44]=k,t[45]=A,t[46]=j,t[47]=M):M=t[47];let N;t[48]!==D||t[49]!==M?(N=(0,R.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[D,M]}),t[48]=D,t[49]=M,t[50]=N):N=t[50];let P;t[51]!==N||t[52]!==y||t[53]!==C?(P=(0,R.jsxs)(`div`,{className:y,children:[C,N]}),t[51]=N,t[52]=y,t[53]=C,t[54]=P):P=t[54];let L;return t[55]!==P||t[56]!==b||t[57]!==x?(L=(0,R.jsxs)(`article`,{className:b,children:[x,P]}),t[55]=P,t[56]=b,t[57]=x,t[58]=L):L=t[58],L}function ie(e){return e.language}function ae(){let e=o(s(e=>e.language)),t=e.projectsPage,n=t.management,r=e.chat.workingDirectory,i=u(e=>e.setPageHeader),d=u(e=>e.clearPageHeader),[p,g]=(0,L.useState)([]),[ee,E]=(0,L.useState)(!0),[A,F]=(0,L.useState)(null),[I,z]=(0,L.useState)(``),[B,ie]=(0,L.useState)(`active`),[ae,oe]=(0,L.useState)(null),[se,V]=(0,L.useState)(!1),[H,U]=(0,L.useState)(null),[W,G]=(0,L.useState)(!1),[K,q]=(0,L.useState)(``),[J,Y]=(0,L.useState)(``),[X,Z]=(0,L.useState)(``),Q=y({initialPath:X,onPicked:Z}),$=(0,L.useCallback)(async()=>{E(!0),F(null);try{g(te((await P({limit:100,sortBy:`updatedAt`,sortOrder:`desc`})).items))}catch(e){F(e instanceof Error?e.message:String(e))}finally{E(!1)}},[]);(0,L.useEffect)(()=>{$()},[$]);let ce=(0,L.useMemo)(()=>{let e=I.trim().toLocaleLowerCase();return p.filter(e=>B===`all`||e.status===B).filter(t=>!e||[t.name,t.description,t.brief,t.workspaceRoot].filter(Boolean).some(t=>t.toLocaleLowerCase().includes(e)))},[B,p,I]),le=(0,L.useMemo)(()=>(0,R.jsxs)(O,{type:`button`,variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>V(!0),children:[(0,R.jsx)(D,{className:`size-4`,"aria-hidden":!0}),t.create]}),[t.create]);(0,L.useLayoutEffect)(()=>(i({startExtra:null,main:(0,R.jsxs)(`div`,{className:`min-w-0`,children:[(0,R.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:n.title}),(0,R.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:n.subtitle})]}),end:le}),()=>d()),[d,le,n.subtitle,n.title,i]);let ue=(0,L.useCallback)(async e=>{e.preventDefault();let t=K.trim(),n=X.trim();if(!(!t||!n||W)){G(!0),U(null);try{let e=await c({name:t,...J.trim()?{description:J.trim()}:{},workspaceRoot:n});g(t=>[e,...t.filter(t=>t.id!==e.id)]),q(``),Y(``),Z(``),V(!1),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){U(e instanceof Error?e.message:String(e))}finally{G(!1)}}},[W,J,K,X]),de=(0,L.useCallback)(async(e,t)=>{oe(e.id),F(null);try{let n;n=t===`pin`?e.pinnedAt?await w(e.id):await l(e.id):e.status===`archived`?await S(e.id):await k(e.id),g(e=>e.map(e=>e.id===n.id?n:e)),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){F(e instanceof Error?e.message:String(e))}finally{oe(null)}},[]),fe=[{id:`active`,label:t.statuses.active},{id:`paused`,label:t.statuses.paused},{id:`archived`,label:t.statuses.archived},{id:`all`,label:t.all}];return(0,R.jsxs)(`main`,{className:`flex w-full flex-1 flex-col gap-5 px-3 py-6 sm:px-5 xl:px-6`,children:[(0,R.jsx)(C,{open:se,onOpenChange:e=>{V(e),e||U(null)},children:(0,R.jsxs)(v,{children:[(0,R.jsx)(m,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,R.jsxs)(x,{className:`fixed left-1/2 top-1/2 z-[90] flex h-[min(34rem,calc(100vh-2rem))] w-[min(38rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,R.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,R.jsx)(M,{className:`text-base font-semibold text-fg`,children:t.createTitle}),(0,R.jsx)(T,{className:`mt-1 text-sm text-fg-muted`,children:t.createDescription})]}),(0,R.jsxs)(`form`,{onSubmit:ue,className:`flex min-h-0 flex-1 flex-col`,children:[(0,R.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,R.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[t.projectName,(0,R.jsx)(`input`,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 font-normal outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:K,onChange:e=>q(e.target.value),maxLength:160})]}),(0,R.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[n.descriptionLabel,(0,R.jsx)(`textarea`,{className:`min-h-28 resize-none rounded-lg border border-edge bg-surface-base px-3 py-2 font-normal leading-6 outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:J,onChange:e=>Y(e.target.value),maxLength:2e3,placeholder:n.descriptionPlaceholder})]}),(0,R.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,R.jsx)(`span`,{className:`font-medium text-fg`,children:t.workspaceRoot}),(0,R.jsxs)(`button`,{type:`button`,className:`flex min-h-12 w-full items-center gap-3 rounded-lg border border-edge bg-surface-base px-3 py-2 text-left outline-none transition-colors hover:bg-surface-hover focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/20 disabled:cursor-not-allowed disabled:opacity-60`,onClick:Q.pick,disabled:W||Q.picking,children:[Q.picking?(0,R.jsx)(j,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,R.jsx)(f,{className:`size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,R.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:X?r.chooseFolder:r.selectWorkingDirectory}),(0,R.jsx)(`span`,{className:a(`mt-0.5 block truncate font-mono text-xs font-normal`,X?`text-fg-muted`:`text-fg-subtle`),title:X||void 0,children:X||t.workspaceSelectionPlaceholder})]})]}),(0,R.jsx)(`p`,{className:`text-xs font-normal text-fg-subtle`,children:t.workspaceSelectionHint})]}),H?(0,R.jsx)(`p`,{className:`rounded-lg bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:H}):null]}),(0,R.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,R.jsx)(h,{asChild:!0,children:(0,R.jsx)(O,{type:`button`,variant:`ghost`,children:t.cancel})}),(0,R.jsx)(O,{type:`submit`,variant:`primary`,disabled:W||!K.trim()||!X.trim(),children:W?t.workHome.creating:t.create})]})]})]})]})}),Q.hasNativePicker?null:(0,R.jsx)(b,{open:Q.modalOpen,onOpenChange:Q.setModalOpen,initialAbsolutePath:X||void 0,onConfirm:Q.confirmPick,wd:r}),(0,R.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-xl border border-edge-subtle bg-surface-base p-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1`,"aria-label":n.filterLabel,children:fe.map(e=>(0,R.jsx)(`button`,{type:`button`,className:a(`rounded-lg px-3 py-1.5 text-xs font-medium transition-colors`,B===e.id?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),onClick:()=>ie(e.id),children:e.label},e.id))}),(0,R.jsxs)(`label`,{className:`relative block min-w-0 sm:w-64`,children:[(0,R.jsx)(N,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,R.jsx)(`input`,{className:`h-9 w-full rounded-lg border border-edge bg-surface-panel pl-9 pr-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:I,onChange:e=>z(e.target.value),placeholder:t.searchPlaceholder,"aria-label":t.searchPlaceholder})]})]}),A?(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl border border-danger/25 bg-danger-soft px-4 py-3 text-sm text-danger`,role:`alert`,children:[(0,R.jsx)(`span`,{children:A}),(0,R.jsx)(O,{type:`button`,variant:`ghost`,className:`h-8 px-2`,onClick:()=>void $(),children:t.workHome.retry})]}):null,ee?(0,R.jsx)(ne,{}):ce.length?(0,R.jsx)(`section`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:ce.map(e=>(0,R.jsx)(re,{project:e,busy:ae===e.id,onTogglePin:()=>void de(e,`pin`),onToggleArchive:()=>void de(e,`archive`)},e.id))}):(0,R.jsxs)(`section`,{className:`rounded-xl border border-dashed border-edge p-10 text-center`,children:[(0,R.jsx)(_,{className:`mx-auto size-7 text-fg-subtle`,"aria-hidden":!0}),(0,R.jsx)(`h2`,{className:`mt-3 text-sm font-semibold text-fg`,children:n.emptyTitle}),(0,R.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:n.emptyHint})]})]})}export{ae as ProjectsPage};