maestro-flow 0.3.15 → 0.3.17

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 (390) hide show
  1. package/.claude/agents/workflow-planner.md +24 -8
  2. package/.claude/commands/maestro-amend.md +300 -0
  3. package/.claude/commands/maestro-analyze.md +1 -49
  4. package/.claude/commands/maestro-execute.md +2 -56
  5. package/.claude/commands/maestro-fork.md +3 -50
  6. package/.claude/commands/maestro-merge.md +2 -26
  7. package/.claude/commands/maestro-milestone-audit.md +1 -5
  8. package/.claude/commands/maestro-milestone-complete.md +1 -7
  9. package/.claude/commands/maestro-plan.md +6 -127
  10. package/.claude/commands/maestro-roadmap.md +3 -101
  11. package/.claude/commands/maestro-spec-generate.md +1 -25
  12. package/.claude/commands/maestro-ui-design.md +14 -73
  13. package/.claude/commands/maestro-verify.md +1 -32
  14. package/.claude/commands/maestro.md +13 -30
  15. package/.claude/commands/manage-harvest.md +7 -44
  16. package/.claude/commands/manage-knowhow-capture.md +193 -0
  17. package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
  18. package/.claude/commands/manage-learn.md +3 -28
  19. package/.claude/commands/manage-status.md +1 -20
  20. package/.claude/commands/manage-wiki.md +1 -1
  21. package/.claude/commands/quality-business-test.md +1 -1
  22. package/.claude/commands/quality-debug.md +3 -18
  23. package/.claude/commands/quality-integration-test.md +3 -23
  24. package/.claude/commands/quality-retrospective.md +1 -28
  25. package/.claude/commands/quality-review.md +3 -52
  26. package/.claude/commands/quality-test-gen.md +1 -10
  27. package/.claude/commands/quality-test.md +3 -25
  28. package/.claude/commands/spec-add.md +1 -21
  29. package/.claude/commands/spec-load.md +1 -16
  30. package/.claude/commands/wiki-connect.md +2 -112
  31. package/.claude/commands/wiki-digest.md +2 -141
  32. package/.codex/skills/learn-decompose/SKILL.md +2 -8
  33. package/.codex/skills/maestro/SKILL.md +60 -146
  34. package/.codex/skills/maestro-analyze/SKILL.md +52 -150
  35. package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
  36. package/.codex/skills/maestro-composer/SKILL.md +4 -76
  37. package/.codex/skills/maestro-execute/SKILL.md +46 -177
  38. package/.codex/skills/maestro-init/SKILL.md +7 -51
  39. package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
  40. package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
  41. package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
  42. package/.codex/skills/maestro-overlay/SKILL.md +23 -92
  43. package/.codex/skills/maestro-plan/SKILL.md +70 -166
  44. package/.codex/skills/maestro-player/SKILL.md +24 -149
  45. package/.codex/skills/maestro-quick/SKILL.md +5 -48
  46. package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
  47. package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
  48. package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
  49. package/.codex/skills/maestro-verify/SKILL.md +39 -136
  50. package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
  51. package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
  52. package/.codex/skills/manage-issue/SKILL.md +1 -6
  53. package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
  54. package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
  55. package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
  56. package/.codex/skills/manage-learn/SKILL.md +17 -71
  57. package/.codex/skills/manage-status/SKILL.md +4 -35
  58. package/.codex/skills/manage-wiki/SKILL.md +1 -1
  59. package/.codex/skills/quality-business-test/SKILL.md +2 -14
  60. package/.codex/skills/quality-debug/SKILL.md +41 -133
  61. package/.codex/skills/quality-integration-test/SKILL.md +36 -145
  62. package/.codex/skills/quality-refactor/SKILL.md +6 -59
  63. package/.codex/skills/quality-retrospective/SKILL.md +292 -531
  64. package/.codex/skills/quality-review/SKILL.md +30 -65
  65. package/.codex/skills/quality-sync/SKILL.md +2 -11
  66. package/.codex/skills/quality-test/SKILL.md +4 -45
  67. package/.codex/skills/quality-test-gen/SKILL.md +33 -121
  68. package/.codex/skills/spec-add/SKILL.md +2 -9
  69. package/.codex/skills/spec-load/SKILL.md +4 -14
  70. package/.codex/skills/spec-map/SKILL.md +4 -37
  71. package/.codex/skills/spec-remove/SKILL.md +3 -35
  72. package/.codex/skills/spec-setup/SKILL.md +2 -19
  73. package/.codex/skills/team-coordinate/SKILL.md +20 -132
  74. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
  75. package/.codex/skills/team-executor/SKILL.md +7 -66
  76. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
  77. package/.codex/skills/team-executor/specs/session-schema.md +22 -56
  78. package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
  79. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
  80. package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
  81. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
  82. package/.codex/skills/team-review/SKILL.md +12 -86
  83. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
  84. package/.codex/skills/team-tech-debt/SKILL.md +11 -50
  85. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
  86. package/.codex/skills/team-testing/SKILL.md +14 -99
  87. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
  88. package/.codex/skills/wiki-connect/SKILL.md +2 -5
  89. package/README.md +6 -0
  90. package/README.zh-CN.md +6 -0
  91. package/chains/_intent-map.json +7 -7
  92. package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
  93. package/chains/singles/{memory.json → knowhow.json} +6 -6
  94. package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
  95. package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
  96. package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
  97. package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
  98. package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
  99. package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
  100. package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
  101. package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
  102. package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
  103. package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
  104. package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
  105. package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
  106. package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
  107. package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
  108. package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
  109. package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
  110. package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
  111. package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
  112. package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
  113. package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
  114. package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
  115. package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
  116. package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
  117. package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
  118. package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
  119. package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
  120. package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
  121. package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
  122. package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
  123. package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
  124. package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
  125. package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
  126. package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
  127. package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
  128. package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
  129. package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
  130. package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
  131. package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
  132. package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
  133. package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
  134. package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
  135. package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
  136. package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
  137. package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
  138. package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
  139. package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
  140. package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
  141. package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
  142. package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
  143. package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
  144. package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
  145. package/dashboard/dist/index.html +2 -2
  146. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
  147. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
  148. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  149. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
  150. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
  151. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
  152. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
  153. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  154. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
  155. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
  156. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
  157. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  158. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
  159. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
  160. package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
  161. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  162. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
  163. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
  164. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
  165. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
  166. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
  167. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
  168. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
  169. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
  170. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
  171. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
  172. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
  173. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
  174. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
  175. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
  176. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
  177. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
  178. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
  179. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
  180. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
  181. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
  182. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
  183. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
  184. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
  185. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
  186. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
  187. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
  188. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
  189. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
  190. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
  191. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
  192. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
  193. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
  194. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
  195. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
  196. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
  197. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
  198. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
  199. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
  200. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
  201. package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
  202. package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
  203. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
  204. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
  205. package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
  206. package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
  207. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  208. package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
  209. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  210. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
  211. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
  212. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
  213. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
  214. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
  215. package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
  216. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
  217. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
  218. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
  219. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  220. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
  221. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  222. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
  223. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
  224. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  225. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
  226. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  227. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
  228. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  229. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
  230. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  231. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
  232. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
  233. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  234. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
  235. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
  236. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  237. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
  238. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
  239. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
  240. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
  241. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
  242. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
  243. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
  244. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
  245. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
  246. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
  247. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
  248. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
  249. package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
  250. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  251. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
  252. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
  253. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
  254. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
  255. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  256. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
  257. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
  258. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  259. package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
  260. package/dashboard/dist-server/src/commands/delegate.js +11 -8
  261. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  262. package/dist/shared/agent-types.d.ts +2 -0
  263. package/dist/shared/agent-types.d.ts.map +1 -1
  264. package/dist/src/cli.js +2 -2
  265. package/dist/src/cli.js.map +1 -1
  266. package/dist/src/commands/delegate.d.ts.map +1 -1
  267. package/dist/src/commands/delegate.js +11 -8
  268. package/dist/src/commands/delegate.js.map +1 -1
  269. package/dist/src/commands/install-backend.d.ts +1 -1
  270. package/dist/src/commands/install-backend.d.ts.map +1 -1
  271. package/dist/src/commands/install-backend.js +1 -1
  272. package/dist/src/commands/install-backend.js.map +1 -1
  273. package/dist/src/commands/install-ui/ExecutionView.d.ts.map +1 -1
  274. package/dist/src/commands/install-ui/ExecutionView.js +4 -1
  275. package/dist/src/commands/install-ui/ExecutionView.js.map +1 -1
  276. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  277. package/dist/src/commands/install-ui/InstallExecution.js +4 -1
  278. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  279. package/dist/src/commands/install.js +5 -5
  280. package/dist/src/commands/install.js.map +1 -1
  281. package/dist/src/commands/knowhow.d.ts +10 -0
  282. package/dist/src/commands/knowhow.d.ts.map +1 -0
  283. package/dist/src/commands/knowhow.js +217 -0
  284. package/dist/src/commands/knowhow.js.map +1 -0
  285. package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
  286. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
  287. package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
  288. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
  289. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
  290. package/dist/src/commands/overlay-ui/index.js +70 -44
  291. package/dist/src/commands/overlay-ui/index.js.map +1 -1
  292. package/dist/src/commands/overlay.d.ts.map +1 -1
  293. package/dist/src/commands/overlay.js +4 -3
  294. package/dist/src/commands/overlay.js.map +1 -1
  295. package/dist/src/commands/update.d.ts.map +1 -1
  296. package/dist/src/commands/update.js +31 -21
  297. package/dist/src/commands/update.js.map +1 -1
  298. package/dist/src/core/manifest.d.ts +8 -1
  299. package/dist/src/core/manifest.d.ts.map +1 -1
  300. package/dist/src/core/manifest.js +3 -1
  301. package/dist/src/core/manifest.js.map +1 -1
  302. package/dist/src/core/overlay/applier.d.ts +1 -1
  303. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  304. package/dist/src/core/overlay/applier.js +40 -13
  305. package/dist/src/core/overlay/applier.js.map +1 -1
  306. package/dist/src/core/overlay/loader.d.ts.map +1 -1
  307. package/dist/src/core/overlay/loader.js +6 -0
  308. package/dist/src/core/overlay/loader.js.map +1 -1
  309. package/dist/src/core/overlay/types.d.ts +5 -1
  310. package/dist/src/core/overlay/types.d.ts.map +1 -1
  311. package/dist/src/core/overlay/types.js +1 -1
  312. package/dist/src/core/overlay/types.js.map +1 -1
  313. package/dist/src/hooks/context-monitor.js +1 -1
  314. package/dist/src/hooks/context-monitor.js.map +1 -1
  315. package/dist/src/hooks/skill-context.js +1 -1
  316. package/dist/src/hooks/skill-context.js.map +1 -1
  317. package/dist/src/mcp/delegate-channel-relay.d.ts +4 -0
  318. package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
  319. package/dist/src/mcp/delegate-channel-relay.js +73 -4
  320. package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
  321. package/dist/src/tools/index.js +2 -2
  322. package/dist/src/tools/index.js.map +1 -1
  323. package/dist/src/tools/store-knowhow.d.ts +21 -0
  324. package/dist/src/tools/store-knowhow.d.ts.map +1 -0
  325. package/dist/src/tools/store-knowhow.js +295 -0
  326. package/dist/src/tools/store-knowhow.js.map +1 -0
  327. package/package.json +1 -1
  328. package/shared/agent-types.ts +2 -0
  329. package/workflows/analyze.md +61 -185
  330. package/workflows/brainstorm.md +3 -23
  331. package/workflows/codebase-rebuild.md +79 -191
  332. package/workflows/codebase-refresh.md +26 -124
  333. package/workflows/debug.md +21 -141
  334. package/workflows/execute.md +183 -350
  335. package/workflows/fork.md +72 -230
  336. package/workflows/harvest.md +12 -79
  337. package/workflows/init.md +3 -17
  338. package/workflows/integration-test.md +21 -190
  339. package/workflows/issue-analyze.md +35 -153
  340. package/workflows/issue-discover.md +88 -263
  341. package/workflows/issue-execute.md +29 -208
  342. package/workflows/issue-plan.md +33 -154
  343. package/workflows/issue.md +44 -202
  344. package/workflows/knowhow.md +374 -0
  345. package/workflows/learn.md +30 -177
  346. package/workflows/maestro-coordinate.codex.md +77 -362
  347. package/workflows/maestro-link-coordinate.md +12 -61
  348. package/workflows/maestro.codex.md +124 -457
  349. package/workflows/maestro.md +562 -976
  350. package/workflows/map.md +16 -53
  351. package/workflows/merge.md +42 -197
  352. package/workflows/milestone-audit.md +5 -43
  353. package/workflows/milestone-complete.md +11 -60
  354. package/workflows/plan.md +188 -387
  355. package/workflows/quick.md +25 -174
  356. package/workflows/refactor.md +28 -221
  357. package/workflows/retrospective.md +104 -443
  358. package/workflows/review.md +87 -299
  359. package/workflows/roadmap.md +117 -97
  360. package/workflows/spec-generate.md +22 -118
  361. package/workflows/specs-add.md +5 -25
  362. package/workflows/specs-load.md +1 -5
  363. package/workflows/specs-remove.md +0 -11
  364. package/workflows/specs-setup.md +11 -47
  365. package/workflows/status.md +58 -200
  366. package/workflows/sync.md +28 -141
  367. package/workflows/test-gen.md +23 -100
  368. package/workflows/test.md +15 -125
  369. package/workflows/ui-design.md +139 -465
  370. package/workflows/ui-style.md +36 -228
  371. package/workflows/verify.md +52 -273
  372. package/workflows/wiki-connect.md +9 -46
  373. package/workflows/wiki-digest.md +7 -50
  374. package/workflows/wiki-manage.md +11 -108
  375. package/.claude/commands/maestro-coordinate.md +0 -63
  376. package/.claude/commands/manage-memory-capture.md +0 -59
  377. package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
  378. package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
  379. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
  380. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
  381. package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
  382. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
  383. package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
  384. package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
  385. package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
  386. package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
  387. package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
  388. package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
  389. package/workflows/maestro-coordinate.md +0 -582
  390. package/workflows/memory.md +0 -451
@@ -0,0 +1,85 @@
1
+ import{d as k,r as c,ak as h,k as z,j as e,s as _,X as ee,R as te,P as se,O as ae,f as re,T as ne,h as H,i as C,ae as oe,l as ie,a as le,M as ce}from"./index-uIqUCT8y.js";import{T as de}from"./terminal-CzogW4cl.js";import{A as T,S as xe}from"./team-types-BPeOvVdA.js";import{A as me}from"./arrow-left-NCUOENvg.js";import{A as P}from"./index-DIoMBMbv.js";import{m as E}from"./proxy-Dtx5p6IO.js";import{E as pe}from"./index-DLBN_7fb.js";import{R as ue}from"./rows-2-GR1dZtRu.js";import"./zap-DhiYlgyZ.js";import"./MarkdownRenderer-cYFfe1uX.js";import"./chevron-right-BXySK2fn.js";import"./circle-alert-DcSBokh4.js";/**
2
+ * @license lucide-react v0.577.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const he=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],fe=k("at-sign",he);/**
7
+ * @license lucide-react v0.577.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const ge=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Q=k("columns-2",ge);/**
12
+ * @license lucide-react v0.577.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const ye=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],ve=k("grid-3x3",ye);/**
17
+ * @license lucide-react v0.577.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const be=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],je=k("maximize-2",be);/**
22
+ * @license lucide-react v0.577.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */const Ne=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],ke=k("minimize-2",Ne);/**
27
+ * @license lucide-react v0.577.0 - ISC
28
+ *
29
+ * This source code is licensed under the ISC license.
30
+ * See the LICENSE file in the root directory of this source tree.
31
+ */const we=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Ce=k("radio",we);/**
32
+ * @license lucide-react v0.577.0 - ISC
33
+ *
34
+ * This source code is licensed under the ISC license.
35
+ * See the LICENSE file in the root directory of this source tree.
36
+ */const Te=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],Se=k("square",Te);/**
37
+ * @license lucide-react v0.577.0 - ISC
38
+ *
39
+ * This source code is licensed under the ISC license.
40
+ * See the LICENSE file in the root directory of this source tree.
41
+ */const Me=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],_e=k("user-plus",Me);/**
42
+ * @license lucide-react v0.577.0 - ISC
43
+ *
44
+ * This source code is licensed under the ISC license.
45
+ * See the LICENSE file in the root directory of this source tree.
46
+ */const Re=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Ae=k("user",Re),ze=new Set(["user_message","assistant_message"]);function O(s,n){const a=n.find(r=>r.role===s);return a?T[a.status]??T.idle:T.idle}function Ee(s,n){const a=n.map(o=>o.role);if(a.length===0)return s;const r=new RegExp(`(@(?:${a.join("|")}))\\b`,"g"),p=[];let m=0,l;for(;(l=r.exec(s))!==null;){l.index>m&&p.push(s.slice(m,l.index));const o=l[1].slice(1),x=O(o,n);p.push(e.jsx("span",{className:"font-semibold px-0.5 rounded",style:{color:x,backgroundColor:`${x}18`},children:l[1]},l.index)),m=r.lastIndex}return m<s.length&&p.push(s.slice(m)),p.length>0?p:s}function Ie(s){return s.type==="assistant_message"||s.type==="user_message"?s.content??"":""}function K(){const s=c.useRef(null),n=h(o=>o.agents),a=h(o=>o.messages),r=z(o=>o.entries),p=c.useMemo(()=>{const o=new Map;for(const x of n)x.processId&&o.set(x.processId,x.role);return o},[n]),m=c.useMemo(()=>{const o=[];for(const x of a)o.push({kind:"message",message:x,ts:new Date(x.createdAt).getTime()});for(const[x,i]of p){const b=r[x];if(b)for(const f of b)ze.has(f.type)&&o.push({kind:"reply",entry:f,role:i,processId:x,ts:new Date(f.timestamp).getTime()})}return o.sort((x,i)=>x.ts-i.ts),o},[a,r,p]),l=c.useRef(0);return c.useEffect(()=>{if(m.length>l.current){const o=s.current;o&&(o.scrollTop=o.scrollHeight)}l.current=m.length},[m.length]),n.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)] italic",children:"No agents connected..."}):m.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)] italic",children:"Waiting for activity..."}):e.jsx("div",{ref:s,className:"flex-1 overflow-y-auto flex flex-col gap-1 p-3",children:e.jsx(P,{initial:!1,children:m.map(o=>{if(o.kind==="message"){const v=o.message,w=v.to==="*"||v.to==="all",u=O(v.from,n),N=v.from==="user";return e.jsx(E.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.15,ease:"easeOut"},className:"mt-1",children:e.jsxs("div",{className:`flex items-start gap-2 ${N?"flex-row-reverse":""}`,children:[e.jsx("span",{className:"shrink-0 text-[9px] font-semibold px-1.5 py-0.5 rounded-full mt-0.5 whitespace-nowrap",style:{background:N?"var(--color-accent-muted)":`${u}18`,color:N?"var(--color-text-on-accent, #fff)":u},children:v.from}),e.jsxs("div",{className:`flex flex-col gap-0.5 max-w-[80%] ${N?"items-end":"items-start"}`,children:[w?e.jsx("span",{className:"text-[8px] text-text-placeholder",children:"broadcast"}):e.jsxs("span",{className:"text-[8px] text-text-placeholder",children:["to @",v.to]}),e.jsx("div",{className:["text-[12px] px-3 py-2 rounded-xl leading-relaxed shadow-sm",N?"bg-[var(--color-accent-muted)] text-text-primary border border-[var(--color-accent-muted)]":"bg-bg-secondary text-text-primary border border-border-divider"].join(" "),children:Ee(v.content,n)}),e.jsx("span",{className:"text-[8px] text-text-placeholder",children:new Date(v.createdAt).toLocaleTimeString()})]})]})},`msg-${v.id}`)}const{entry:x,role:i,processId:b}=o,f=O(i,n),j=Ie(x),d=x.type==="user_message";return e.jsx(E.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.15,ease:"easeOut"},className:"mt-1",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"shrink-0 text-[9px] font-semibold px-1.5 py-0.5 rounded-full mt-0.5 whitespace-nowrap",style:{background:d?"var(--color-bg-hover)":`${f}18`,color:d?"var(--color-text-secondary)":f},children:d?"prompt":i}),e.jsxs("div",{className:"flex flex-col gap-0.5 max-w-[80%] items-start",children:[!d&&e.jsx("span",{className:"text-[8px] text-text-placeholder font-mono",children:b.slice(0,8)}),e.jsx("div",{className:["text-[12px] px-3 py-2 rounded-xl leading-relaxed whitespace-pre-wrap shadow-sm",d?"bg-bg-secondary text-text-secondary border border-border-divider italic":"bg-bg-secondary text-text-primary border border-border-divider"].join(" "),children:j}),e.jsx("span",{className:"text-[8px] text-text-placeholder",children:new Date(x.timestamp).toLocaleTimeString()})]})]})},x.id)})})})}const Pe=[{mode:"single",icon:Se,label:"Single"},{mode:"split-h",icon:Q,label:"Split Horizontal"},{mode:"split-v",icon:ue,label:"Split Vertical"},{mode:"grid-2x2",icon:ve,label:"Grid 2x2"}];function Le(s,n){const a=Math.min(n,s==="single"?1:s==="grid-2x2"?4:2);switch(s){case"single":return{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"1fr"};case"split-h":return{display:"grid",gridTemplateColumns:a>1?"1fr 1fr":"1fr",gridTemplateRows:"1fr"};case"split-v":return{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:a>1?"1fr 1fr":"1fr"};case"grid-2x2":return{display:"grid",gridTemplateColumns:a>1?"1fr 1fr":"1fr",gridTemplateRows:a>2?"1fr 1fr":"1fr"};default:return{display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"1fr"}}}const X=[];function $e({role:s,processId:n}){const a=z(d=>n?d.entries[n]??X:X),r=z(d=>n?d.processStreaming[n]??!1:!1),p=h(d=>d.agents),m=h(d=>d.expandedTerminals),l=h(d=>d.expandTerminal),o=h(d=>d.collapseTerminal),x=c.useRef(null),i=p.find(d=>d.role===s),b=T[(i==null?void 0:i.status)??"offline"],f=m.includes(s),j=c.useRef(0);return c.useEffect(()=>{if(a.length>j.current||r){const d=x.current;d&&(d.scrollTop=d.scrollHeight)}j.current=a.length},[a.length,a,r]),e.jsxs("div",{className:"flex flex-col h-full rounded-lg border border-border-divider bg-bg-primary overflow-hidden",style:f?{gridColumn:"1 / -1",gridRow:"1 / -1"}:void 0,children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-border-divider bg-bg-secondary shrink-0",children:[e.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:b}}),e.jsx("span",{className:"text-[11px] font-semibold text-text-primary",children:s}),e.jsx("span",{className:"text-[9px] text-text-tertiary",children:(i==null?void 0:i.status)??"offline"}),e.jsx("div",{className:"flex-1"}),r&&e.jsx("span",{className:"text-[9px] text-accent-muted animate-pulse",children:"streaming"}),e.jsx("button",{type:"button",onClick:()=>f?o(s):l(s),className:"w-5 h-5 flex items-center justify-center rounded text-text-tertiary hover:text-text-primary hover:bg-bg-hover transition-colors",title:f?"Collapse":"Expand",children:f?e.jsx(ke,{size:11}):e.jsx(je,{size:11})})]}),e.jsxs("div",{ref:x,className:"flex-1 overflow-y-auto p-2 flex flex-col gap-0.5 min-h-0",children:[!n&&e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[10px] italic",children:"Connecting..."}),n&&a.length===0&&e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[10px] italic",children:"Waiting for output..."}),a.map(d=>e.jsx("div",{className:"text-[11px]",children:e.jsx(pe,{entry:d})},d.id))]})]})}function V(){const s=h(l=>l.agents),n=h(l=>l.terminalLayoutMode),a=h(l=>l.setTerminalLayoutMode),r=h(l=>l.expandedTerminals),p=c.useMemo(()=>{if(r.length>0)return s.filter(o=>r.includes(o.role));const l=n==="single"?1:n==="grid-2x2"?4:2;return s.slice(0,l)},[s,n,r]),m=Le(n,p.length);return s.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)] italic",children:"No agents in room"}):e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-center gap-1 px-2 py-1.5 border-b border-border-divider bg-bg-secondary shrink-0",children:[e.jsx("span",{className:"text-[10px] text-text-tertiary mr-1",children:"Layout:"}),Pe.map(({mode:l,icon:o,label:x})=>e.jsx("button",{type:"button",onClick:()=>a(l),className:["w-6 h-6 flex items-center justify-center rounded transition-colors",n===l?"bg-bg-hover text-text-primary":"text-text-tertiary hover:text-text-primary hover:bg-bg-hover"].join(" "),title:x,children:e.jsx(o,{size:12})},l)),e.jsxs("span",{className:"text-[9px] text-text-placeholder ml-auto",children:[s.length," agent",s.length!==1?"s":""]})]}),e.jsx("div",{className:"flex-1 min-h-0 p-2 gap-2",style:m,children:e.jsx(P,{mode:"popLayout",children:p.map(l=>e.jsx(E.div,{layout:!0,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.2},className:"min-h-0 overflow-hidden h-full",children:e.jsx($e,{role:l.role,processId:l.processId})},l.role))})})]})}const De={idle:"Idle",active:"Active",busy:"Busy",error:"Error",offline:"Offline"};function Oe({role:s,status:n,onRemove:a}){const r=T[n];return e.jsxs("div",{className:"group inline-flex items-center gap-1.5 px-2 py-1 rounded-md bg-bg-secondary",children:[e.jsx("div",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{backgroundColor:r}}),e.jsx("span",{className:"text-[10px] font-semibold text-text-primary",children:s}),e.jsx(P,{mode:"wait",children:e.jsx(E.span,{className:"text-[8px] font-semibold px-1 py-0.5 rounded-full whitespace-nowrap",style:{background:`${r}18`,color:r},initial:{opacity:0,y:4,scale:.9},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.9},transition:{duration:.15,ease:"easeOut"},children:De[n]},n)}),a&&e.jsx("button",{type:"button",onClick:p=>{p.stopPropagation(),a()},className:"hidden group-hover:flex w-3.5 h-3.5 items-center justify-center rounded-full text-text-tertiary hover:text-red-500 hover:bg-red-500/10 transition-colors",title:`Remove ${s}`,children:e.jsx(ee,{size:9})})]})}function Be(){const s=h(r=>r.agents),n=h(r=>r.sessionId),a=h(r=>r.sessionStatus);return e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-t border-border-divider bg-bg-secondary shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mr-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:a==="active"?"#5A9E78":a==="paused"?"#B89540":"#C46555"}}),e.jsx("span",{className:"text-[9px] text-text-tertiary font-medium uppercase tracking-wider",children:a??"unknown"})]}),e.jsx("div",{className:"w-px h-4 bg-border-divider"}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-1 overflow-x-auto",children:[e.jsx(P,{children:s.map(r=>e.jsx(E.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15},children:e.jsx(Oe,{role:r.role,status:r.status,onRemove:n?()=>{_({action:"room:remove_agent",sessionId:n,role:r.role}),r.processId&&_({action:"stop",processId:r.processId})}:void 0})},r.role))}),s.length===0&&e.jsx("span",{className:"text-[10px] text-text-placeholder italic",children:"No agents connected"})]}),e.jsxs("span",{className:"text-[9px] text-text-tertiary shrink-0",children:[s.length," agent",s.length!==1?"s":""]})]})}const D=200;function Ue({chatPanel:s,terminalPanel:n}){const a=h(i=>i.splitRatio),r=h(i=>i.setSplitRatio),p=c.useRef(null),m=c.useRef(!1),l=c.useCallback(i=>{i.preventDefault(),i.currentTarget.setPointerCapture(i.pointerId),m.current=!0},[]),o=c.useCallback(i=>{if(!m.current||!p.current)return;const b=p.current.getBoundingClientRect(),f=b.width;if(f===0)return;const j=i.clientX-b.left,d=D/f*100,v=100-d,w=j/f*100,u=Math.max(d,Math.min(v,w));r(Math.round(u))},[r]),x=c.useCallback(i=>{m.current=!1,i.currentTarget.releasePointerCapture(i.pointerId)},[]);return e.jsxs("div",{ref:p,className:"flex flex-1 min-h-0 overflow-hidden",style:{"--split-ratio":`${a}%`},children:[e.jsx("div",{className:"overflow-hidden flex flex-col",style:{width:"var(--split-ratio)",minWidth:`${D}px`},children:s}),e.jsx("div",{className:"shrink-0 w-1 cursor-col-resize flex items-center justify-center group hover:bg-accent-muted/20 transition-colors",onPointerDown:l,onPointerMove:o,onPointerUp:x,role:"separator","aria-orientation":"vertical","aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0,children:e.jsx("div",{className:"w-0.5 h-8 rounded-full bg-border-divider group-hover:bg-accent-muted transition-colors"})}),e.jsx("div",{className:"overflow-hidden flex flex-col flex-1",style:{minWidth:`${D}px`},children:n})]})}const qe=`You are the LEADER of a multi-agent meeting room. Your job is to coordinate the team to accomplish the user's goal.
47
+
48
+ ## Your MCP Tools
49
+
50
+ You have 8 coordination tools available:
51
+
52
+ ### Communication
53
+ - **team_send_message** — Send a message to a specific agent by role name
54
+ - **team_read_messages** — Read your unread messages from other agents
55
+
56
+ ### Task Management
57
+ - **team_create_task** — Create a task and assign it to an agent (supports dependency chains)
58
+ - **team_update_task** — Update task status (pending → in_progress → completed)
59
+ - **team_list_tasks** — List all tasks and their status
60
+
61
+ ### Team Management
62
+ - **team_get_agents** — See all agents in the room and their status
63
+ - **team_spawn_agent** — Add a new agent to the room (leader-only)
64
+ - **team_shutdown_agent** — Remove an agent from the room (leader-only)
65
+
66
+ ## Coordination Strategy
67
+
68
+ 1. Break the user's goal into tasks using team_create_task
69
+ 2. Assign each task to the most suitable agent
70
+ 3. Use team_send_message to give instructions to agents
71
+ 4. Monitor progress with team_list_tasks and team_read_messages
72
+ 5. Synthesize results and report back to the user
73
+
74
+ ## Rules
75
+ - Always check team_get_agents before assigning work
76
+ - Use team_read_messages regularly to stay updated
77
+ - Create tasks with clear descriptions and ownership
78
+ - Report progress and final results in your messages
79
+ `,We=[{value:"gemini",label:"Gemini"},{value:"claude-code",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"qwen",label:"Qwen"},{value:"opencode",label:"OpenCode"}],A=C("w-full px-[var(--spacing-3)] py-[var(--spacing-2)]","rounded-[var(--radius-default)] border border-border","bg-bg-secondary text-text-primary","text-[length:var(--font-size-sm)]","focus:outline-none focus:shadow-[var(--shadow-focus-ring)]","transition-shadow duration-[var(--duration-fast)]"),I="block text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-secondary mb-[var(--spacing-1)]";function Ye({open:s,onOpenChange:n}){const a=h(u=>u.sessionId),[r,p]=c.useState(""),[m,l]=c.useState("claude-code"),[o,x]=c.useState(""),[i,b]=c.useState(!1),[f,j]=c.useState(""),[d,v]=c.useState(!1);c.useEffect(()=>{s||(p(""),l("gemini"),x(""),b(!1),j(""),v(!1))},[s]);const w=c.useCallback(()=>{if(!a||!f.trim())return;const u=i?"leader":r.trim();if(!u)return;v(!0);const N=i?`${qe}
80
+
81
+ ---
82
+
83
+ User Task:
84
+ ${f.trim()}`:f.trim();_({action:"spawn",config:{type:m,prompt:N,workDir:".",model:o.trim()||void 0,interactive:m==="claude-code"?!0:void 0,approvalMode:i?"auto":void 0,metadata:{roomSessionId:a,roomRole:u}}}),n(!1)},[a,r,m,o,i,f,n]);return e.jsx(te,{open:s,onOpenChange:n,children:e.jsxs(se,{children:[e.jsx(ae,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),e.jsxs(re,{className:C("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[520px] max-w-[95vw] max-h-[85vh]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-lg","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[e.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-6)] py-[var(--spacing-4)] border-b border-border shrink-0",children:[e.jsx(ne,{className:"text-[length:var(--font-size-lg)] font-[var(--font-weight-semibold)] text-text-primary",children:"Add Agent"}),e.jsx(H,{className:C("w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)]","text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"),"aria-label":"Close",children:e.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-6)] space-y-[var(--spacing-4)]",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:i,onChange:u=>b(u.target.checked),className:"w-4 h-4 rounded border-border accent-accent-blue"}),e.jsx("span",{className:"text-[length:var(--font-size-sm)] font-medium text-text-primary",children:"Leader Agent"}),e.jsx("span",{className:"text-[10px] text-text-placeholder",children:"(coordinates the team via MCP tools)"})]}),e.jsxs("div",{className:"flex gap-[var(--spacing-4)]",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{htmlFor:"agent-role",className:I,children:"Role"}),i?e.jsx("input",{id:"agent-role",type:"text",value:"leader",disabled:!0,className:C(A,"opacity-50 cursor-not-allowed")}):e.jsx("input",{id:"agent-role",type:"text",value:r,onChange:u=>p(u.target.value),placeholder:"e.g. researcher, coder",className:A,autoFocus:!0})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{htmlFor:"agent-type",className:I,children:"Agent Type"}),e.jsx("select",{id:"agent-type",value:m,onChange:u=>l(u.target.value),className:A,children:We.map(u=>e.jsx("option",{value:u.value,children:u.label},u.value))})]})]}),e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"agent-model",className:I,children:["Model ",e.jsx("span",{className:"text-text-placeholder",children:"(optional)"})]}),e.jsx("input",{id:"agent-model",type:"text",value:o,onChange:u=>x(u.target.value),placeholder:"Default model for selected type",className:A})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"agent-prompt",className:I,children:i?"Task for the team":"Initial Prompt"}),e.jsx("textarea",{id:"agent-prompt",value:f,onChange:u=>j(u.target.value),placeholder:i?"Describe the goal for the team to accomplish...":"What should this agent do?",rows:5,className:C(A,"resize-y min-h-[100px]")})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 px-[var(--spacing-6)] py-[var(--spacing-4)] border-t border-border",children:[e.jsx(H,{className:C("px-3 py-1.5 rounded-[var(--radius-default)]","text-[length:var(--font-size-sm)] text-text-secondary","hover:bg-bg-hover transition-colors"),children:"Cancel"}),e.jsx("button",{type:"button",onClick:w,disabled:d||!f.trim()||!i&&!r.trim(),className:C("px-4 py-1.5 rounded-[var(--radius-default)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","bg-accent-blue text-white","hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed","transition-opacity"),children:d?"Spawning...":"Add Agent"})]})]})]})})}const Fe=[{mode:"chat",icon:ce,label:"Chat"},{mode:"terminal",icon:de,label:"Terminal"},{mode:"split",icon:Q,label:"Split"}];function rt(){const{sessionId:s}=oe(),n=ie(),[a,r]=c.useState(""),[p,m]=c.useState(!1),[l,o]=c.useState(""),[x,i]=c.useState(0),[b,f]=c.useState(!1),[j,d]=c.useState(!1),v=c.useRef(null),w=h(t=>t.setSessionId),u=h(t=>t.layoutMode),N=h(t=>t.setLayoutMode),R=h(t=>t.inputTarget),B=h(t=>t.setInputTarget),U=h(t=>t.sendMessage),S=h(t=>t.agents);h(t=>t.sessionStatus);const q=h(t=>t.reset),W=le(t=>t.connected),M=c.useMemo(()=>{if(!p)return[];const t=l.toLowerCase();return S.filter(g=>g.role.toLowerCase().startsWith(t))},[S,p,l]);c.useEffect(()=>(s&&w(s),()=>{q()}),[s,w,q]),c.useEffect(()=>{if(!s||!W)return;d(!1),_({action:"room:subscribe",sessionId:s}),_({action:"room:snapshot",sessionId:s});const t=setTimeout(()=>{h.getState().sessionStatus||d(!0)},2e3);return()=>{clearTimeout(t),_({action:"room:unsubscribe",sessionId:s})}},[s,W]);const Y=z(t=>t.setEntries);c.useEffect(()=>{if(S.length)for(const t of S){if(!t.processId)continue;const g=z.getState().entries[t.processId];g!=null&&g.length||fetch(`/api/agents/${t.processId}/entries`).then(y=>y.ok?y.json():[]).then(y=>{y.length&&Y(t.processId,y)}).catch(()=>{})}},[S,Y]);const L=c.useCallback(t=>{var y;const g=a.lastIndexOf("@");g>=0?r(a.slice(0,g)+`@${t} `):r(a+`@${t} `),m(!1),o(""),i(0),(y=v.current)==null||y.focus()},[a]),$=c.useCallback(()=>{const t=a.trim();t&&(U(t),r(""),m(!1))},[a,U]),J=c.useCallback(t=>{const g=t.target.value;r(g);const y=g.lastIndexOf("@");if(y>=0){const F=g.slice(y+1),G=y===0?"":g[y-1];if((y===0||G===" "||G===`
85
+ `)&&!/\s/.test(F)){m(!0),o(F),i(0);return}}m(!1),o("")},[]),Z=c.useCallback(t=>{if(p&&M.length>0){if(t.key==="ArrowDown"){t.preventDefault(),i(g=>Math.min(g+1,M.length-1));return}if(t.key==="ArrowUp"){t.preventDefault(),i(g=>Math.max(g-1,0));return}if(t.key==="Tab"||t.key==="Enter"&&!t.shiftKey){t.preventDefault(),L(M[x].role);return}if(t.key==="Escape"){t.preventDefault(),m(!1);return}}t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),$())},[$,p,M,x,L]);return s?j?e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[e.jsxs("span",{className:"text-text-tertiary text-[length:var(--font-size-sm)]",children:['Room "',s,'" not found']}),e.jsx("button",{type:"button",onClick:()=>n("/rooms"),className:"px-3 py-1.5 text-[length:var(--font-size-sm)] bg-bg-accent text-text-on-accent rounded hover:opacity-90 transition-opacity",children:"Back to Rooms"})]}):e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1 border-b border-border-divider bg-bg-secondary shrink-0",children:[e.jsx("button",{type:"button",onClick:()=>n("/rooms"),className:"w-5 h-5 rounded flex items-center justify-center text-text-tertiary hover:text-text-primary hover:bg-bg-hover transition-colors",title:"Back to rooms",children:e.jsx(me,{size:12})}),e.jsx("span",{className:"text-[12px] font-semibold text-text-primary",children:"Meeting Room"}),e.jsx("span",{className:"text-[10px] text-text-tertiary font-mono",children:s}),e.jsx("div",{className:"flex-1"}),e.jsxs("button",{type:"button",onClick:()=>f(!0),className:"inline-flex items-center gap-1 px-2 py-1 rounded-md text-[10px] text-text-tertiary hover:text-text-primary hover:bg-bg-hover transition-colors",title:"Add agent to room",children:[e.jsx(_e,{size:12}),e.jsx("span",{children:"Add Agent"})]}),e.jsx("div",{className:"flex items-center gap-0.5 bg-bg-primary rounded-lg p-0.5",children:Fe.map(({mode:t,icon:g,label:y})=>e.jsxs("button",{type:"button",onClick:()=>N(t),className:["flex items-center gap-1 px-2 py-1 rounded-md text-[10px] transition-colors",u===t?"bg-bg-hover text-text-primary font-medium":"text-text-tertiary hover:text-text-primary"].join(" "),title:y,children:[e.jsx(g,{size:12}),e.jsx("span",{children:y})]},t))})]}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:[u==="chat"&&e.jsx("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col",children:e.jsx(K,{})}),u==="terminal"&&e.jsx("div",{className:"flex-1 min-h-0 overflow-hidden",children:e.jsx(V,{})}),u==="split"&&e.jsx(Ue,{chatPanel:e.jsx(K,{}),terminalPanel:e.jsx(V,{})})]}),e.jsxs("div",{className:"flex items-end gap-2 px-3 py-1.5 border-t border-border-divider bg-bg-secondary shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsxs("button",{type:"button",onClick:()=>B({mode:"broadcast"}),className:["flex items-center gap-1 px-2 py-1.5 rounded-md text-[10px] transition-colors",R.mode==="broadcast"?"bg-bg-hover text-text-primary font-medium":"text-text-tertiary hover:text-text-primary"].join(" "),title:"Broadcast to all agents",children:[e.jsx(Ce,{size:11}),e.jsx("span",{children:"All"})]}),S.map(t=>e.jsxs("button",{type:"button",onClick:()=>B({mode:"direct",role:t.role}),className:["flex items-center gap-1 px-2 py-1.5 rounded-md text-[10px] transition-colors",R.mode==="direct"&&R.role===t.role?"bg-bg-hover text-text-primary font-medium":"text-text-tertiary hover:text-text-primary"].join(" "),title:`Send to ${t.role}`,children:[e.jsx(Ae,{size:11}),e.jsx("span",{children:t.role})]},t.role))]}),e.jsxs("div",{className:"flex-1 relative",children:[p&&M.length>0&&e.jsxs("div",{className:"absolute bottom-full left-0 mb-1 w-48 bg-bg-primary border border-border-divider rounded-lg shadow-lg overflow-hidden z-50",children:[e.jsxs("div",{className:"px-2 py-1 text-[9px] text-text-placeholder border-b border-border-divider",children:[e.jsx(fe,{size:9,className:"inline mr-1"}),"Mention agent"]}),M.map((t,g)=>{const y=T[t.status]??T.idle;return e.jsxs("button",{type:"button",onClick:()=>L(t.role),className:["w-full flex items-center gap-2 px-2 py-1.5 text-left text-[11px] transition-colors",g===x?"bg-bg-hover text-text-primary":"text-text-secondary hover:bg-bg-hover"].join(" "),children:[e.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:y}}),e.jsx("span",{className:"font-medium",children:t.role}),e.jsx("span",{className:"text-[9px] text-text-placeholder ml-auto",children:t.status})]},t.role)})]}),e.jsx("textarea",{ref:v,value:a,onChange:J,onKeyDown:Z,placeholder:R.mode==="broadcast"?"Broadcast to all agents... (type @ to mention)":`Message ${R.role}...`,rows:1,className:"w-full resize-none rounded-lg border border-border bg-bg-primary px-3 py-1.5 text-[12px] text-text-primary placeholder:text-text-placeholder focus:outline-none focus:border-accent-muted transition-colors"})]}),e.jsx("button",{type:"button",onClick:$,disabled:!a.trim(),className:"w-7 h-7 rounded-lg flex items-center justify-center text-text-tertiary hover:text-text-primary hover:bg-bg-hover disabled:opacity-30 disabled:cursor-not-allowed transition-all shrink-0",title:"Send",children:e.jsx(xe,{size:14,strokeWidth:2})})]}),e.jsx(Be,{}),e.jsx(Ye,{open:b,onOpenChange:f})]}):e.jsx("div",{className:"flex items-center justify-center h-full text-text-tertiary text-[length:var(--font-size-sm)]",children:"No session ID provided"})}export{rt as MeetingRoomPage};
@@ -1 +1 @@
1
- import{k as i,j as a}from"./index-C2Mcb4TJ.js";function o(e){switch(e.type){case"assistant_message":case"user_message":case"thinking":return e.content;case"error":return e.message;case"command_exec":return`${e.command}${e.output?`: ${e.output}`:""}`;case"file_change":return`[${e.action}] ${e.path}`;case"tool_use":return`${e.name}(${JSON.stringify(e.input).slice(0,80)})`;case"status_change":return`Status: ${e.status}`;case"token_usage":return`Tokens: +${e.inputTokens}/${e.outputTokens}`;case"approval_request":return`Approval: ${e.toolName}`;case"approval_response":return`Approval ${e.allowed?"granted":"denied"}`;default:return""}}function l(){const e=i(t=>t.entries),s=Object.values(e).flat().sort((t,n)=>t.timestamp.localeCompare(n.timestamp)).slice(-1e3);return s.length===0?a.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-xs)]",children:"No output yet."}):a.jsx("div",{role:"log","aria-live":"polite",className:"h-full overflow-y-auto p-[var(--spacing-2)] font-mono text-[11px] leading-[1.5] text-text-secondary",children:s.map((t,n)=>{const r=o(t);return r?a.jsxs("div",{className:"flex gap-[var(--spacing-2)]",children:[a.jsx("span",{className:"text-text-secondary/50 shrink-0",children:u(t.timestamp)}),a.jsx("span",{className:"break-all",children:r})]},t.id??n):null})})}function u(e){const s=new Date(e);return isNaN(s.getTime())?"":s.toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}export{l as OutputPanel};
1
+ import{k as i,j as a}from"./index-uIqUCT8y.js";function o(e){switch(e.type){case"assistant_message":case"user_message":case"thinking":return e.content;case"error":return e.message;case"command_exec":return`${e.command}${e.output?`: ${e.output}`:""}`;case"file_change":return`[${e.action}] ${e.path}`;case"tool_use":return`${e.name}(${JSON.stringify(e.input).slice(0,80)})`;case"status_change":return`Status: ${e.status}`;case"token_usage":return`Tokens: +${e.inputTokens}/${e.outputTokens}`;case"approval_request":return`Approval: ${e.toolName}`;case"approval_response":return`Approval ${e.allowed?"granted":"denied"}`;default:return""}}function l(){const e=i(t=>t.entries),s=Object.values(e).flat().sort((t,n)=>t.timestamp.localeCompare(n.timestamp)).slice(-1e3);return s.length===0?a.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-xs)]",children:"No output yet."}):a.jsx("div",{role:"log","aria-live":"polite",className:"h-full overflow-y-auto p-[var(--spacing-2)] font-mono text-[11px] leading-[1.5] text-text-secondary",children:s.map((t,n)=>{const r=o(t);return r?a.jsxs("div",{className:"flex gap-[var(--spacing-2)]",children:[a.jsx("span",{className:"text-text-secondary/50 shrink-0",children:u(t.timestamp)}),a.jsx("span",{className:"break-all",children:r})]},t.id??n):null})})}function u(e){const s=new Date(e);return isNaN(s.getTime())?"":s.toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}export{l as OutputPanel};
@@ -1 +1 @@
1
- import{k as a,j as e}from"./index-C2Mcb4TJ.js";function l(){const s=a(r=>r.entries),o=Object.entries(s).flatMap(([r,i])=>i.filter(t=>t.type==="error").map(t=>({id:t.id,severity:"error",message:t.message,source:r,timestamp:t.timestamp})));return o.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-xs)]",children:"No problems detected."}):e.jsx("div",{className:"h-full overflow-y-auto",children:e.jsxs("table",{className:"w-full text-[11px]",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border text-text-secondary text-left",children:[e.jsx("th",{className:"p-[var(--spacing-1)] w-[24px]"}),e.jsx("th",{className:"p-[var(--spacing-1)]",children:"Message"}),e.jsx("th",{className:"p-[var(--spacing-1)] w-[140px]",children:"Source"})]})}),e.jsx("tbody",{children:o.map(r=>e.jsxs("tr",{className:"border-b border-border hover:bg-bg-hover cursor-pointer transition-colors duration-[var(--duration-fast)]",children:[e.jsx("td",{className:"p-[var(--spacing-1)] text-center",children:e.jsx(c,{severity:r.severity})}),e.jsx("td",{className:"p-[var(--spacing-1)] text-text-primary break-all",children:r.message}),e.jsx("td",{className:"p-[var(--spacing-1)] text-text-secondary truncate",children:r.source})]},r.id))})]})})}function c({severity:s}){return s==="error"?e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor",className:"text-status-blocked",children:[e.jsx("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),e.jsx("line",{x1:"8",y1:"4.5",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),e.jsx("circle",{cx:"8",cy:"11.5",r:"1"})]}):e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor",className:"text-status-exploring",children:[e.jsx("path",{d:"M8 1.5L14.5 13H1.5L8 1.5Z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),e.jsx("line",{x1:"8",y1:"6",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),e.jsx("circle",{cx:"8",cy:"11",r:"1"})]})}export{l as ProblemsPanel};
1
+ import{k as a,j as e}from"./index-uIqUCT8y.js";function l(){const s=a(r=>r.entries),o=Object.entries(s).flatMap(([r,i])=>i.filter(t=>t.type==="error").map(t=>({id:t.id,severity:"error",message:t.message,source:r,timestamp:t.timestamp})));return o.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-xs)]",children:"No problems detected."}):e.jsx("div",{className:"h-full overflow-y-auto",children:e.jsxs("table",{className:"w-full text-[11px]",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border text-text-secondary text-left",children:[e.jsx("th",{className:"p-[var(--spacing-1)] w-[24px]"}),e.jsx("th",{className:"p-[var(--spacing-1)]",children:"Message"}),e.jsx("th",{className:"p-[var(--spacing-1)] w-[140px]",children:"Source"})]})}),e.jsx("tbody",{children:o.map(r=>e.jsxs("tr",{className:"border-b border-border hover:bg-bg-hover cursor-pointer transition-colors duration-[var(--duration-fast)]",children:[e.jsx("td",{className:"p-[var(--spacing-1)] text-center",children:e.jsx(c,{severity:r.severity})}),e.jsx("td",{className:"p-[var(--spacing-1)] text-text-primary break-all",children:r.message}),e.jsx("td",{className:"p-[var(--spacing-1)] text-text-secondary truncate",children:r.source})]},r.id))})]})})}function c({severity:s}){return s==="error"?e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor",className:"text-status-blocked",children:[e.jsx("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),e.jsx("line",{x1:"8",y1:"4.5",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),e.jsx("circle",{cx:"8",cy:"11.5",r:"1"})]}):e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor",className:"text-status-exploring",children:[e.jsx("path",{d:"M8 1.5L14.5 13H1.5L8 1.5Z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),e.jsx("line",{x1:"8",y1:"6",x2:"8",y2:"9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),e.jsx("circle",{cx:"8",cy:"11",r:"1"})]})}export{l as ProblemsPanel};
@@ -1,6 +1,6 @@
1
- import{d as b,af as z,ae as g,j as e,ag as S,c as w,r as d,ah as v}from"./index-C2Mcb4TJ.js";import{C as f}from"./circle-Qfgy4LB_.js";import{A as I,L as y}from"./loader-B5F6PzFT.js";import{M as h}from"./minus-Lp_BfctG.js";import{C as j}from"./circle-check-big-3JB8zRYj.js";/**
1
+ import{d as b,ae as z,ad as f,j as e,af as S,c as w,r as d,ag as v}from"./index-uIqUCT8y.js";import{C as g}from"./circle-cooAwnAR.js";import{L as y}from"./loader-NHtB6Mdn.js";import{M as h}from"./minus-BjMxRTET.js";import{A as I}from"./arrow-left-NCUOENvg.js";import{C as j}from"./circle-check-big-BN7Mdp4i.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const k=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],C=b("circle-x",k),p={open:"var(--color-text-tertiary)",registered:"var(--color-accent-blue)",in_progress:"var(--color-accent-blue)",resolved:"var(--color-accent-green)",closed:"var(--color-accent-green)",deferred:"var(--color-text-tertiary)"};function q({status:s}){switch(s){case"resolved":case"closed":return e.jsx(j,{size:14,style:{color:p[s]}});case"in_progress":return e.jsx(y,{size:14,className:"animate-spin",style:{color:p[s]}});case"open":case"registered":return e.jsx(f,{size:14,style:{color:p[s]}});case"deferred":default:return e.jsx(h,{size:14,style:{color:"var(--color-text-tertiary)"}})}}function R({issue:s}){const t={low:"bg-green-500/15 text-green-400",medium:"bg-yellow-500/15 text-yellow-400",high:"bg-orange-500/15 text-orange-400",urgent:"bg-red-500/15 text-red-400"};return e.jsxs("div",{className:"p-[var(--spacing-3)] rounded-[var(--radius-sm)] flex flex-col gap-[var(--spacing-2)]",style:{background:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"},children:[e.jsxs("div",{className:"flex items-start gap-[var(--spacing-2)]",children:[e.jsx(q,{status:s.status}),e.jsx("span",{className:"flex-1 text-[length:var(--font-size-sm)] font-medium",style:{color:"var(--color-text-primary)"},children:s.title}),e.jsx("span",{className:"shrink-0 text-[length:var(--font-size-xs)] text-text-tertiary",children:s.type})]}),s.description&&e.jsx("p",{className:"text-[length:var(--font-size-xs)] line-clamp-2",style:{color:"var(--color-text-secondary)"},children:s.description}),e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx("span",{className:`px-2 py-0.5 rounded text-[length:var(--font-size-xs)] ${t[s.priority]??""}`,children:s.priority}),e.jsx("span",{className:"text-[length:var(--font-size-xs)]",style:{color:"var(--color-text-secondary)"},children:s.status})]})]})}function N({status:s}){switch(s){case"running":return e.jsx(y,{size:14,className:"animate-spin",style:{color:"var(--color-accent-blue)"}});case"completed":return e.jsx(j,{size:14,style:{color:"var(--color-accent-green)"}});case"failed":return e.jsx(C,{size:14,style:{color:"var(--color-accent-red)"}});case"skipped":return e.jsx(h,{size:14,style:{color:"var(--color-text-tertiary)"}});case"pending":default:return e.jsx(f,{size:14,style:{color:"var(--color-text-tertiary)"}})}}function M({step:s,isSelected:t,onSelect:n}){return e.jsxs("button",{type:"button",onClick:n,className:"w-full flex items-center gap-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)] text-left transition-colors",style:{background:t?"var(--color-bg-tertiary)":"transparent"},children:[e.jsx(N,{status:s.status}),e.jsxs("span",{className:"flex-1 text-[length:var(--font-size-sm)] truncate",style:{color:"var(--color-text-primary)"},children:[s.cmd,s.args?` ${s.args}`:""]}),s.summary&&e.jsx("span",{className:"text-[length:var(--font-size-xs)] shrink-0",style:{color:"var(--color-text-secondary)"},children:s.summary})]})}function B({issueIds:s}){const{issues:t,fetchIssues:n,loading:c}=w();d.useEffect(()=>{n()},[n]);const l=d.useMemo(()=>t.filter(a=>s.includes(a.id)),[t,s]),i=d.useMemo(()=>{const a={};for(const o of l)a[o.status]=(a[o.status]??0)+1;return a},[l]);return c&&l.length===0?e.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-8)]",style:{color:"var(--color-text-tertiary)"},children:"Loading issues..."}):e.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)] p-[var(--spacing-4)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-4)]",children:[e.jsxs("span",{className:"text-[length:var(--font-size-sm)] font-medium",style:{color:"var(--color-text-primary)"},children:[l.length," Issues"]}),Object.entries(i).map(([a,o])=>e.jsxs("span",{className:"text-[length:var(--font-size-xs)]",style:{color:"var(--color-text-secondary)"},children:[a,": ",o]},a))]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[var(--spacing-3)]",children:l.map(a=>e.jsx(R,{issue:a},a.id))}),l.length===0&&e.jsx("div",{className:"text-[length:var(--font-size-sm)] text-center py-[var(--spacing-8)]",style:{color:"var(--color-text-tertiary)"},children:"No issues found for this requirement."})]})}function L({sessionId:s}){const t=v(r=>r.session),n=v(r=>r.selectStep);v(r=>r.selectedStepIndex);const[c,l]=d.useState(null),i=(t==null?void 0:t.sessionId)===s,a=i?t.steps:[],o=d.useMemo(()=>c!=null?a.find(r=>r.index===c)??null:null,[a,c]),u=d.useCallback(r=>{l(m=>m===r?null:r),i&&n(r)},[i,n]),x=d.useMemo(()=>{const r={completed:0,running:0,failed:0,pending:0,skipped:0};for(const m of a)r[m.status]=(r[m.status]??0)+1;return r},[a]);return i?e.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[e.jsxs("div",{className:"w-[280px] shrink-0 flex flex-col overflow-y-auto",style:{borderRight:"1px solid var(--color-border)"},children:[e.jsxs("div",{className:"px-[var(--spacing-4)] py-[var(--spacing-3)] shrink-0",style:{borderBottom:"1px solid var(--color-border)"},children:[e.jsx("div",{className:"text-[length:var(--font-size-sm)] font-medium",style:{color:"var(--color-text-primary)"},children:t.chainName??"Session Steps"}),e.jsxs("div",{className:"text-[length:var(--font-size-xs)] mt-[var(--spacing-1)]",style:{color:"var(--color-text-secondary)"},children:["Step ",t.currentStep+1," / ",a.length||"?"," | ",x.completed," done",x.failed>0&&`, ${x.failed} failed`,t.avgQuality!=null&&` | Quality: ${t.avgQuality}`]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-2)]",children:a.map(r=>e.jsx(M,{step:r,isSelected:c===r.index,onSelect:()=>u(r.index)},r.index))})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-4)]",children:o?e.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx(N,{status:o.status}),e.jsx("span",{className:"text-[length:var(--font-size-base)] font-medium",style:{color:"var(--color-text-primary)"},children:o.cmd}),o.args&&e.jsx("span",{className:"text-[length:var(--font-size-sm)]",style:{color:"var(--color-text-secondary)"},children:o.args})]}),o.summary&&e.jsxs("div",{children:[e.jsx("div",{className:"text-[length:var(--font-size-xs)] font-medium mb-[var(--spacing-1)]",style:{color:"var(--color-text-secondary)"},children:"Summary"}),e.jsx("div",{className:"text-[length:var(--font-size-sm)] rounded-[var(--radius-sm)] p-[var(--spacing-3)]",style:{color:"var(--color-text-primary)",background:"var(--color-bg-secondary)"},children:o.summary})]}),o.analysis&&e.jsxs("div",{children:[e.jsx("div",{className:"text-[length:var(--font-size-xs)] font-medium mb-[var(--spacing-1)]",style:{color:"var(--color-text-secondary)"},children:"Analysis"}),e.jsx("pre",{className:"text-[length:var(--font-size-xs)] rounded-[var(--radius-sm)] p-[var(--spacing-3)] overflow-x-auto whitespace-pre-wrap",style:{color:"var(--color-text-primary)",background:"var(--color-bg-secondary)"},children:o.analysis})]})]}):e.jsx("div",{className:"text-[length:var(--font-size-sm)] text-center py-[var(--spacing-6)]",style:{color:"var(--color-text-tertiary)"},children:"Select a step to view details"})})]}):e.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-8)]",style:{color:"var(--color-text-tertiary)"},children:e.jsxs("span",{className:"text-[length:var(--font-size-sm)]",children:["Coordinate session not active. Session: ",s]})})}function Q(){const{id:s}=z(),t=g(r=>r.currentRequirement),n=g(r=>r.committedResult),c=n!=null&&n.requirementId===s,l=c?n.mode:null,i=c?n.issueIds??[]:[],a=c?n.coordinateSessionId??"":"",o=t!=null&&t.id===s,u=o?t.title:`Requirement ${s??""}`,x=o?t.summary:null;return e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsxs("div",{className:"shrink-0 flex items-center gap-[var(--spacing-3)] px-[var(--spacing-4)] py-[var(--spacing-3)]",style:{borderBottom:"1px solid var(--color-border)"},children:[e.jsx("a",{href:"/requirement",className:"flex items-center justify-center w-7 h-7 rounded-[var(--radius-sm)] transition-colors",style:{color:"var(--color-text-secondary)"},title:"Back to Requirements",children:e.jsx(I,{size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h1",{className:"text-[length:var(--font-size-base)] font-semibold truncate",style:{color:"var(--color-text-primary)"},children:u}),x&&e.jsx("p",{className:"text-[length:var(--font-size-xs)] truncate mt-[var(--spacing-0-5)]",style:{color:"var(--color-text-secondary)"},children:x})]}),l&&e.jsx("span",{className:"shrink-0 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)] font-medium",style:{background:l==="issues"?"var(--color-accent-blue)":"var(--color-accent-green)",color:"#fff"},children:l==="issues"?"Issues":"Coordinate"})]}),e.jsxs("div",{className:"flex-1 overflow-hidden",children:[!l&&e.jsx("div",{className:"flex items-center justify-center h-full",style:{color:"var(--color-text-tertiary)"},children:e.jsx("span",{className:"text-[length:var(--font-size-sm)]",children:"No board data available for this requirement."})}),l==="issues"&&e.jsx(B,{issueIds:i}),l==="coordinate"&&e.jsx(L,{sessionId:a})]}),e.jsx(S,{})]})}export{Q as RequirementBoardPage};
6
+ */const k=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],C=b("circle-x",k),p={open:"var(--color-text-tertiary)",registered:"var(--color-accent-blue)",in_progress:"var(--color-accent-blue)",resolved:"var(--color-accent-green)",closed:"var(--color-accent-green)",deferred:"var(--color-text-tertiary)"};function q({status:s}){switch(s){case"resolved":case"closed":return e.jsx(j,{size:14,style:{color:p[s]}});case"in_progress":return e.jsx(y,{size:14,className:"animate-spin",style:{color:p[s]}});case"open":case"registered":return e.jsx(g,{size:14,style:{color:p[s]}});case"deferred":default:return e.jsx(h,{size:14,style:{color:"var(--color-text-tertiary)"}})}}function R({issue:s}){const t={low:"bg-green-500/15 text-green-400",medium:"bg-yellow-500/15 text-yellow-400",high:"bg-orange-500/15 text-orange-400",urgent:"bg-red-500/15 text-red-400"};return e.jsxs("div",{className:"p-[var(--spacing-3)] rounded-[var(--radius-sm)] flex flex-col gap-[var(--spacing-2)]",style:{background:"var(--color-bg-secondary)",border:"1px solid var(--color-border)"},children:[e.jsxs("div",{className:"flex items-start gap-[var(--spacing-2)]",children:[e.jsx(q,{status:s.status}),e.jsx("span",{className:"flex-1 text-[length:var(--font-size-sm)] font-medium",style:{color:"var(--color-text-primary)"},children:s.title}),e.jsx("span",{className:"shrink-0 text-[length:var(--font-size-xs)] text-text-tertiary",children:s.type})]}),s.description&&e.jsx("p",{className:"text-[length:var(--font-size-xs)] line-clamp-2",style:{color:"var(--color-text-secondary)"},children:s.description}),e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx("span",{className:`px-2 py-0.5 rounded text-[length:var(--font-size-xs)] ${t[s.priority]??""}`,children:s.priority}),e.jsx("span",{className:"text-[length:var(--font-size-xs)]",style:{color:"var(--color-text-secondary)"},children:s.status})]})]})}function N({status:s}){switch(s){case"running":return e.jsx(y,{size:14,className:"animate-spin",style:{color:"var(--color-accent-blue)"}});case"completed":return e.jsx(j,{size:14,style:{color:"var(--color-accent-green)"}});case"failed":return e.jsx(C,{size:14,style:{color:"var(--color-accent-red)"}});case"skipped":return e.jsx(h,{size:14,style:{color:"var(--color-text-tertiary)"}});case"pending":default:return e.jsx(g,{size:14,style:{color:"var(--color-text-tertiary)"}})}}function M({step:s,isSelected:t,onSelect:n}){return e.jsxs("button",{type:"button",onClick:n,className:"w-full flex items-center gap-[var(--spacing-2)] px-[var(--spacing-3)] py-[var(--spacing-2)] rounded-[var(--radius-sm)] text-left transition-colors",style:{background:t?"var(--color-bg-tertiary)":"transparent"},children:[e.jsx(N,{status:s.status}),e.jsxs("span",{className:"flex-1 text-[length:var(--font-size-sm)] truncate",style:{color:"var(--color-text-primary)"},children:[s.cmd,s.args?` ${s.args}`:""]}),s.summary&&e.jsx("span",{className:"text-[length:var(--font-size-xs)] shrink-0",style:{color:"var(--color-text-secondary)"},children:s.summary})]})}function B({issueIds:s}){const{issues:t,fetchIssues:n,loading:c}=w();d.useEffect(()=>{n()},[n]);const l=d.useMemo(()=>t.filter(a=>s.includes(a.id)),[t,s]),i=d.useMemo(()=>{const a={};for(const o of l)a[o.status]=(a[o.status]??0)+1;return a},[l]);return c&&l.length===0?e.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-8)]",style:{color:"var(--color-text-tertiary)"},children:"Loading issues..."}):e.jsxs("div",{className:"flex flex-col gap-[var(--spacing-4)] p-[var(--spacing-4)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-4)]",children:[e.jsxs("span",{className:"text-[length:var(--font-size-sm)] font-medium",style:{color:"var(--color-text-primary)"},children:[l.length," Issues"]}),Object.entries(i).map(([a,o])=>e.jsxs("span",{className:"text-[length:var(--font-size-xs)]",style:{color:"var(--color-text-secondary)"},children:[a,": ",o]},a))]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[var(--spacing-3)]",children:l.map(a=>e.jsx(R,{issue:a},a.id))}),l.length===0&&e.jsx("div",{className:"text-[length:var(--font-size-sm)] text-center py-[var(--spacing-8)]",style:{color:"var(--color-text-tertiary)"},children:"No issues found for this requirement."})]})}function L({sessionId:s}){const t=v(r=>r.session),n=v(r=>r.selectStep);v(r=>r.selectedStepIndex);const[c,l]=d.useState(null),i=(t==null?void 0:t.sessionId)===s,a=i?t.steps:[],o=d.useMemo(()=>c!=null?a.find(r=>r.index===c)??null:null,[a,c]),u=d.useCallback(r=>{l(m=>m===r?null:r),i&&n(r)},[i,n]),x=d.useMemo(()=>{const r={completed:0,running:0,failed:0,pending:0,skipped:0};for(const m of a)r[m.status]=(r[m.status]??0)+1;return r},[a]);return i?e.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[e.jsxs("div",{className:"w-[280px] shrink-0 flex flex-col overflow-y-auto",style:{borderRight:"1px solid var(--color-border)"},children:[e.jsxs("div",{className:"px-[var(--spacing-4)] py-[var(--spacing-3)] shrink-0",style:{borderBottom:"1px solid var(--color-border)"},children:[e.jsx("div",{className:"text-[length:var(--font-size-sm)] font-medium",style:{color:"var(--color-text-primary)"},children:t.chainName??"Session Steps"}),e.jsxs("div",{className:"text-[length:var(--font-size-xs)] mt-[var(--spacing-1)]",style:{color:"var(--color-text-secondary)"},children:["Step ",t.currentStep+1," / ",a.length||"?"," | ",x.completed," done",x.failed>0&&`, ${x.failed} failed`,t.avgQuality!=null&&` | Quality: ${t.avgQuality}`]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-2)]",children:a.map(r=>e.jsx(M,{step:r,isSelected:c===r.index,onSelect:()=>u(r.index)},r.index))})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-[var(--spacing-4)]",children:o?e.jsxs("div",{className:"flex flex-col gap-[var(--spacing-3)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx(N,{status:o.status}),e.jsx("span",{className:"text-[length:var(--font-size-base)] font-medium",style:{color:"var(--color-text-primary)"},children:o.cmd}),o.args&&e.jsx("span",{className:"text-[length:var(--font-size-sm)]",style:{color:"var(--color-text-secondary)"},children:o.args})]}),o.summary&&e.jsxs("div",{children:[e.jsx("div",{className:"text-[length:var(--font-size-xs)] font-medium mb-[var(--spacing-1)]",style:{color:"var(--color-text-secondary)"},children:"Summary"}),e.jsx("div",{className:"text-[length:var(--font-size-sm)] rounded-[var(--radius-sm)] p-[var(--spacing-3)]",style:{color:"var(--color-text-primary)",background:"var(--color-bg-secondary)"},children:o.summary})]}),o.analysis&&e.jsxs("div",{children:[e.jsx("div",{className:"text-[length:var(--font-size-xs)] font-medium mb-[var(--spacing-1)]",style:{color:"var(--color-text-secondary)"},children:"Analysis"}),e.jsx("pre",{className:"text-[length:var(--font-size-xs)] rounded-[var(--radius-sm)] p-[var(--spacing-3)] overflow-x-auto whitespace-pre-wrap",style:{color:"var(--color-text-primary)",background:"var(--color-bg-secondary)"},children:o.analysis})]})]}):e.jsx("div",{className:"text-[length:var(--font-size-sm)] text-center py-[var(--spacing-6)]",style:{color:"var(--color-text-tertiary)"},children:"Select a step to view details"})})]}):e.jsx("div",{className:"flex items-center justify-center py-[var(--spacing-8)]",style:{color:"var(--color-text-tertiary)"},children:e.jsxs("span",{className:"text-[length:var(--font-size-sm)]",children:["Coordinate session not active. Session: ",s]})})}function P(){const{id:s}=z(),t=f(r=>r.currentRequirement),n=f(r=>r.committedResult),c=n!=null&&n.requirementId===s,l=c?n.mode:null,i=c?n.issueIds??[]:[],a=c?n.coordinateSessionId??"":"",o=t!=null&&t.id===s,u=o?t.title:`Requirement ${s??""}`,x=o?t.summary:null;return e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsxs("div",{className:"shrink-0 flex items-center gap-[var(--spacing-3)] px-[var(--spacing-4)] py-[var(--spacing-3)]",style:{borderBottom:"1px solid var(--color-border)"},children:[e.jsx("a",{href:"/requirement",className:"flex items-center justify-center w-7 h-7 rounded-[var(--radius-sm)] transition-colors",style:{color:"var(--color-text-secondary)"},title:"Back to Requirements",children:e.jsx(I,{size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h1",{className:"text-[length:var(--font-size-base)] font-semibold truncate",style:{color:"var(--color-text-primary)"},children:u}),x&&e.jsx("p",{className:"text-[length:var(--font-size-xs)] truncate mt-[var(--spacing-0-5)]",style:{color:"var(--color-text-secondary)"},children:x})]}),l&&e.jsx("span",{className:"shrink-0 px-[var(--spacing-2)] py-[var(--spacing-1)] rounded-[var(--radius-sm)] text-[length:var(--font-size-xs)] font-medium",style:{background:l==="issues"?"var(--color-accent-blue)":"var(--color-accent-green)",color:"#fff"},children:l==="issues"?"Issues":"Coordinate"})]}),e.jsxs("div",{className:"flex-1 overflow-hidden",children:[!l&&e.jsx("div",{className:"flex items-center justify-center h-full",style:{color:"var(--color-text-tertiary)"},children:e.jsx("span",{className:"text-[length:var(--font-size-sm)]",children:"No board data available for this requirement."})}),l==="issues"&&e.jsx(B,{issueIds:i}),l==="coordinate"&&e.jsx(L,{sessionId:a})]}),e.jsx(S,{})]})}export{P as RequirementBoardPage};
@@ -1,4 +1,4 @@
1
- import{d as f,ae as h,r as g,j as e,ab as b,X as C,aa as R,M as D}from"./index-C2Mcb4TJ.js";import{u as y}from"./shallow-BXasQBvr.js";import{Z as E}from"./zap-C3H0jVFA.js";import{P as L}from"./pencil-_yRMHmGT.js";import{T as _}from"./trash-2-Czz4X8Fb.js";import{C as T}from"./code-Ble63Idz.js";/**
1
+ import{d as f,ad as h,r as g,j as e,a9 as b,X as C,a8 as R,M as D}from"./index-uIqUCT8y.js";import{u as y}from"./shallow-BOmvDNsv.js";import{Z as E}from"./zap-DhiYlgyZ.js";import{P as L}from"./pencil-DTmKhyDY.js";import{T as _}from"./trash-2-52LATVfW.js";import{C as T}from"./code-BQa9oL1n.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1 @@
1
+ import{j as e,am as g,M as b,l as h,r as c,s as v,R as y,P as j,O as N,f as w,T as C,h as p,i as m,an as u,a4 as f,ao as k}from"./index-uIqUCT8y.js";import{T as z}from"./trash-2-52LATVfW.js";import{U as R}from"./users-DLFE2voE.js";import{C as D}from"./chevron-right-BXySK2fn.js";const S={active:"#3D9B6F",paused:"#C99B2D",destroyed:"#D05454"};function L({status:t}){const a=S[t]??"#A09D97";return e.jsxs("span",{className:"inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-[10px] font-semibold",style:{background:`${a}18`,color:a},children:[t==="active"&&e.jsxs("span",{className:"relative flex w-1.5 h-1.5",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75",style:{backgroundColor:a}}),e.jsx("span",{className:"relative inline-flex rounded-full w-1.5 h-1.5",style:{backgroundColor:a}})]}),t.charAt(0).toUpperCase()+t.slice(1)]})}function M({room:t,onClick:a,onDelete:i}){const o=Date.now()-new Date(t.createdAt).getTime(),r=Math.floor(o/6e4),l=r<60?`${r}m`:`${Math.floor(r/60)}h ${r%60}m`;return e.jsxs("div",{role:"button",tabIndex:0,onClick:a,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&a()},className:"group w-full text-left bg-bg-card border border-border rounded-xl p-3.5 hover:border-accent-blue hover:shadow-[0_2px_12px_rgba(0,0,0,0.06)] transition-all duration-150 cursor-pointer",children:[e.jsxs("div",{className:"flex items-center gap-2.5 mb-2",children:[e.jsx("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center text-[11px] font-bold text-white shrink-0 bg-[#4A90D9]",children:"MR"}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx("div",{className:"text-[13px] font-semibold text-text-primary truncate",children:t.sessionId})}),e.jsx(L,{status:t.status}),i&&e.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),i(t.sessionId)},className:"w-6 h-6 rounded-md flex items-center justify-center text-text-placeholder opacity-0 group-hover:opacity-100 hover:!text-status-failed hover:bg-[rgba(196,101,85,0.1)] transition-all shrink-0",title:"Delete room",children:e.jsx(z,{size:13,strokeWidth:2})})]}),e.jsxs("div",{className:"flex items-center gap-3 text-[10px] text-text-tertiary",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(R,{size:11}),t.agentCount," agents"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(g,{size:11}),t.taskCount," tasks"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(b,{size:11}),t.messageCount," msgs"]}),e.jsx("span",{className:"ml-auto text-text-placeholder",children:l}),e.jsx(D,{size:14,className:"text-text-placeholder group-hover:text-text-primary transition-colors"})]})]})}const T=m("w-full px-[var(--spacing-3)] py-[var(--spacing-2)]","rounded-[var(--radius-default)] border border-border","bg-bg-secondary text-text-primary","text-[length:var(--font-size-sm)]","focus:outline-none focus:shadow-[var(--shadow-focus-ring)]","transition-shadow duration-[var(--duration-fast)]"),$="block text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-secondary mb-[var(--spacing-1)]";function I(t){return t.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fff]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}function P({open:t,onOpenChange:a}){const i=h(),[o,r]=c.useState("");c.useEffect(()=>{t||r("")},[t]);const l=I(o)||`room-${Date.now().toString(36)}`,n=c.useCallback(()=>{o.trim()&&(v({action:"room:create",sessionId:l}),a(!1),i(`/meeting-room/${l}`))},[o,l,a,i]);return e.jsx(y,{open:t,onOpenChange:a,children:e.jsxs(j,{children:[e.jsx(N,{className:"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"}),e.jsxs(w,{className:m("fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2","w-[440px] max-w-[95vw]","rounded-[var(--radius-lg)] border border-border bg-bg-primary shadow-lg","flex flex-col overflow-hidden","focus:outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"),children:[e.jsxs("div",{className:"flex items-center justify-between px-[var(--spacing-6)] py-[var(--spacing-4)] border-b border-border shrink-0",children:[e.jsx(C,{className:"text-[length:var(--font-size-lg)] font-[var(--font-weight-semibold)] text-text-primary",children:"New Meeting Room"}),e.jsx(p,{className:m("w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)]","text-text-secondary hover:text-text-primary hover:bg-bg-hover","transition-colors duration-[var(--duration-fast)]","focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]"),"aria-label":"Close",children:e.jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),e.jsx("div",{className:"p-[var(--spacing-6)] space-y-[var(--spacing-4)]",children:e.jsxs("div",{children:[e.jsx("label",{htmlFor:"room-name",className:$,children:"Room Name"}),e.jsx("input",{id:"room-name",type:"text",value:o,onChange:d=>r(d.target.value),onKeyDown:d=>{d.key==="Enter"&&n()},placeholder:"e.g. Architecture Review",className:T,autoFocus:!0}),e.jsxs("p",{className:"mt-1 text-[10px] text-text-placeholder font-mono",children:["ID: ",l]})]})}),e.jsxs("div",{className:"flex items-center justify-end gap-2 px-[var(--spacing-6)] py-[var(--spacing-4)] border-t border-border",children:[e.jsx(p,{className:m("px-3 py-1.5 rounded-[var(--radius-default)]","text-[length:var(--font-size-sm)] text-text-secondary","hover:bg-bg-hover transition-colors"),children:"Cancel"}),e.jsx("button",{type:"button",onClick:n,disabled:!o.trim(),className:m("px-4 py-1.5 rounded-[var(--radius-default)]","text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)]","bg-accent-blue text-white","hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed","transition-opacity"),children:"Create"})]})]})]})})}function W(){const t=h(),a=u(s=>s.rooms),i=u(s=>s.loading),o=u(s=>s.fetchRooms),r=u(s=>s.deleteRoom),[l,n]=c.useState(!1);c.useEffect(()=>{o()},[o]);const d=c.useCallback(async s=>{await r(s)},[r]),x=a.filter(s=>s.status!=="destroyed");return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-3 border-b border-border-divider bg-bg-secondary shrink-0",children:[e.jsx("h1",{className:"text-[length:var(--font-size-base)] font-semibold text-text-primary",children:"Meeting Rooms"}),e.jsx("span",{className:"text-[11px] text-text-tertiary bg-bg-hover px-1.5 py-0.5 rounded-full",children:x.length}),e.jsx("div",{className:"flex-1"}),e.jsxs("button",{type:"button",onClick:()=>n(!0),className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-[12px] font-medium bg-accent-blue text-white hover:opacity-90 transition-opacity",children:[e.jsx(f,{size:14}),"New Room"]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3",children:[i&&x.length===0&&e.jsx("div",{className:"flex items-center justify-center h-48 text-text-tertiary text-[length:var(--font-size-sm)]",children:"Loading..."}),!i&&x.length===0&&e.jsxs("div",{className:"flex flex-col items-center justify-center h-64 gap-3 text-text-tertiary",children:[e.jsx(k,{size:40,strokeWidth:1.2,className:"opacity-30"}),e.jsx("p",{className:"text-[length:var(--font-size-sm)]",children:"No meeting rooms yet"}),e.jsxs("button",{type:"button",onClick:()=>n(!0),className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-[12px] font-medium bg-accent-blue text-white hover:opacity-90 transition-opacity",children:[e.jsx(f,{size:14}),"Create your first room"]})]}),x.length>0&&e.jsx("div",{className:"grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(280px, 1fr))"},children:x.map(s=>e.jsx(M,{room:s,onClick:()=>t(`/meeting-room/${s.sessionId}`),onDelete:d},s.sessionId))})]}),e.jsx(P,{open:l,onOpenChange:n})]})}export{W as RoomsPage};
@@ -1,4 +1,4 @@
1
- import{d as S,o as se,a9 as F,r as p,j as e,a5 as H,aa as ie,F as U,ab as le,X as ce,R as de,P as xe,O as pe,f as be,T as ue,h as O,i as A,V as me}from"./index-C2Mcb4TJ.js";import{u as ge}from"./shallow-BXasQBvr.js";import{C as fe}from"./columns-3-BUcKlxve.js";import{L as ye}from"./list-DI8Wn2aT.js";import{S as he}from"./search-BS6fI6Bg.js";import{C as Y}from"./circle-Qfgy4LB_.js";import{m as z}from"./proxy-D72Y8a4Y.js";import{C as ve}from"./circle-alert-Na1vf6qQ.js";import{T as J}from"./trash-2-Czz4X8Fb.js";import{P as X}from"./pen-line-Ch7sphzZ.js";import{C as we}from"./check-DJDk3A2a.js";/**
1
+ import{d as S,o as se,a7 as F,r as p,j as e,a4 as H,a8 as ie,F as U,a9 as le,X as ce,R as de,P as xe,O as pe,f as be,T as ue,h as O,i as A,V as me}from"./index-uIqUCT8y.js";import{u as ge}from"./shallow-BOmvDNsv.js";import{C as fe}from"./columns-3-BzgxelGx.js";import{L as ye}from"./list-BTRAIvDq.js";import{S as he}from"./search-DVtgy2W7.js";import{C as Y}from"./circle-cooAwnAR.js";import{m as z}from"./proxy-Dtx5p6IO.js";import{C as ve}from"./circle-alert-DcSBokh4.js";import{T as J}from"./trash-2-52LATVfW.js";import{P as X}from"./pen-line-C4_O16H0.js";import{C as we}from"./check-o7nfGNHf.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.