maestro-flow 0.3.15 → 0.3.16

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 (374) hide show
  1. package/.claude/commands/maestro-amend.md +300 -0
  2. package/.claude/commands/maestro-analyze.md +1 -49
  3. package/.claude/commands/maestro-execute.md +2 -56
  4. package/.claude/commands/maestro-fork.md +3 -50
  5. package/.claude/commands/maestro-merge.md +2 -26
  6. package/.claude/commands/maestro-milestone-audit.md +1 -5
  7. package/.claude/commands/maestro-milestone-complete.md +1 -7
  8. package/.claude/commands/maestro-plan.md +6 -127
  9. package/.claude/commands/maestro-roadmap.md +3 -101
  10. package/.claude/commands/maestro-spec-generate.md +1 -25
  11. package/.claude/commands/maestro-ui-design.md +14 -73
  12. package/.claude/commands/maestro-verify.md +1 -32
  13. package/.claude/commands/maestro.md +13 -30
  14. package/.claude/commands/manage-harvest.md +7 -44
  15. package/.claude/commands/manage-knowhow-capture.md +193 -0
  16. package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
  17. package/.claude/commands/manage-learn.md +3 -28
  18. package/.claude/commands/manage-status.md +1 -20
  19. package/.claude/commands/manage-wiki.md +1 -1
  20. package/.claude/commands/quality-business-test.md +1 -1
  21. package/.claude/commands/quality-debug.md +3 -18
  22. package/.claude/commands/quality-integration-test.md +3 -23
  23. package/.claude/commands/quality-retrospective.md +1 -28
  24. package/.claude/commands/quality-review.md +3 -52
  25. package/.claude/commands/quality-test-gen.md +1 -10
  26. package/.claude/commands/quality-test.md +3 -25
  27. package/.claude/commands/spec-add.md +1 -21
  28. package/.claude/commands/spec-load.md +1 -16
  29. package/.claude/commands/wiki-connect.md +2 -112
  30. package/.claude/commands/wiki-digest.md +2 -141
  31. package/.codex/skills/learn-decompose/SKILL.md +2 -8
  32. package/.codex/skills/maestro/SKILL.md +60 -146
  33. package/.codex/skills/maestro-analyze/SKILL.md +52 -150
  34. package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
  35. package/.codex/skills/maestro-composer/SKILL.md +4 -76
  36. package/.codex/skills/maestro-execute/SKILL.md +46 -177
  37. package/.codex/skills/maestro-init/SKILL.md +7 -51
  38. package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
  39. package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
  40. package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
  41. package/.codex/skills/maestro-overlay/SKILL.md +23 -92
  42. package/.codex/skills/maestro-plan/SKILL.md +42 -166
  43. package/.codex/skills/maestro-player/SKILL.md +24 -149
  44. package/.codex/skills/maestro-quick/SKILL.md +5 -48
  45. package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
  46. package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
  47. package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
  48. package/.codex/skills/maestro-verify/SKILL.md +39 -136
  49. package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
  50. package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
  51. package/.codex/skills/manage-issue/SKILL.md +1 -6
  52. package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
  53. package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
  54. package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
  55. package/.codex/skills/manage-learn/SKILL.md +17 -71
  56. package/.codex/skills/manage-status/SKILL.md +4 -35
  57. package/.codex/skills/manage-wiki/SKILL.md +1 -1
  58. package/.codex/skills/quality-business-test/SKILL.md +2 -14
  59. package/.codex/skills/quality-debug/SKILL.md +41 -133
  60. package/.codex/skills/quality-integration-test/SKILL.md +36 -145
  61. package/.codex/skills/quality-refactor/SKILL.md +6 -59
  62. package/.codex/skills/quality-retrospective/SKILL.md +292 -531
  63. package/.codex/skills/quality-review/SKILL.md +30 -65
  64. package/.codex/skills/quality-sync/SKILL.md +2 -11
  65. package/.codex/skills/quality-test/SKILL.md +4 -45
  66. package/.codex/skills/quality-test-gen/SKILL.md +33 -121
  67. package/.codex/skills/spec-add/SKILL.md +2 -9
  68. package/.codex/skills/spec-load/SKILL.md +4 -14
  69. package/.codex/skills/spec-map/SKILL.md +4 -37
  70. package/.codex/skills/spec-remove/SKILL.md +3 -35
  71. package/.codex/skills/spec-setup/SKILL.md +2 -19
  72. package/.codex/skills/team-coordinate/SKILL.md +20 -132
  73. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
  74. package/.codex/skills/team-executor/SKILL.md +7 -66
  75. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
  76. package/.codex/skills/team-executor/specs/session-schema.md +22 -56
  77. package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
  78. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
  79. package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
  80. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
  81. package/.codex/skills/team-review/SKILL.md +12 -86
  82. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
  83. package/.codex/skills/team-tech-debt/SKILL.md +11 -50
  84. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
  85. package/.codex/skills/team-testing/SKILL.md +14 -99
  86. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
  87. package/.codex/skills/wiki-connect/SKILL.md +2 -5
  88. package/README.md +6 -0
  89. package/README.zh-CN.md +6 -0
  90. package/chains/_intent-map.json +7 -7
  91. package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
  92. package/chains/singles/{memory.json → knowhow.json} +6 -6
  93. package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
  94. package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
  95. package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
  96. package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
  97. package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
  98. package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
  99. package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
  100. package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
  101. package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
  102. package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
  103. package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
  104. package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
  105. package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
  106. package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
  107. package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
  108. package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
  109. package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
  110. package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
  111. package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
  112. package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
  113. package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
  114. package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
  115. package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
  116. package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
  117. package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
  118. package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
  119. package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
  120. package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
  121. package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
  122. package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
  123. package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
  124. package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
  125. package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
  126. package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
  127. package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
  128. package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
  129. package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
  130. package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
  131. package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
  132. package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
  133. package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
  134. package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
  135. package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
  136. package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
  137. package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
  138. package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
  139. package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
  140. package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
  141. package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
  142. package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
  143. package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
  144. package/dashboard/dist/index.html +2 -2
  145. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
  146. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
  147. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  148. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
  149. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
  150. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
  151. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
  152. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  153. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
  154. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
  155. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
  156. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  157. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
  158. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
  159. package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
  160. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  161. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
  162. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
  163. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
  164. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
  165. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
  166. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
  167. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
  168. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
  169. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
  170. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
  171. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
  172. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
  173. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
  174. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
  175. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
  176. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
  177. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
  178. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
  179. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
  180. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
  181. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
  182. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
  183. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
  184. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
  185. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
  186. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
  187. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
  188. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
  189. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
  190. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
  191. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
  192. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
  193. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
  194. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
  195. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
  196. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
  197. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
  198. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
  199. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
  200. package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
  201. package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
  202. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
  203. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
  204. package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
  205. package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
  206. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  207. package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
  208. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  209. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
  210. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
  211. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
  212. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
  213. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
  214. package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
  215. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
  216. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
  217. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
  218. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  219. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
  220. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  221. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
  222. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
  223. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  224. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
  225. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  226. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
  227. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  228. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
  229. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  230. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
  231. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
  232. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  233. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
  234. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
  235. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  236. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
  237. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
  238. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
  239. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
  240. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
  241. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
  242. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
  243. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
  244. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
  245. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
  246. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
  247. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
  248. package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
  249. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  250. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
  251. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
  252. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
  253. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
  254. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  255. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
  256. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
  257. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  258. package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
  259. package/dashboard/dist-server/src/commands/delegate.js +11 -8
  260. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  261. package/dist/shared/agent-types.d.ts +2 -0
  262. package/dist/shared/agent-types.d.ts.map +1 -1
  263. package/dist/src/cli.js +2 -2
  264. package/dist/src/cli.js.map +1 -1
  265. package/dist/src/commands/delegate.d.ts.map +1 -1
  266. package/dist/src/commands/delegate.js +11 -8
  267. package/dist/src/commands/delegate.js.map +1 -1
  268. package/dist/src/commands/install-backend.d.ts +1 -1
  269. package/dist/src/commands/install-backend.d.ts.map +1 -1
  270. package/dist/src/commands/install-backend.js +1 -1
  271. package/dist/src/commands/install-backend.js.map +1 -1
  272. package/dist/src/commands/knowhow.d.ts +10 -0
  273. package/dist/src/commands/knowhow.d.ts.map +1 -0
  274. package/dist/src/commands/knowhow.js +217 -0
  275. package/dist/src/commands/knowhow.js.map +1 -0
  276. package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
  277. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
  278. package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
  279. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
  280. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
  281. package/dist/src/commands/overlay-ui/index.js +70 -44
  282. package/dist/src/commands/overlay-ui/index.js.map +1 -1
  283. package/dist/src/commands/overlay.d.ts.map +1 -1
  284. package/dist/src/commands/overlay.js +4 -3
  285. package/dist/src/commands/overlay.js.map +1 -1
  286. package/dist/src/core/overlay/applier.d.ts +1 -1
  287. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  288. package/dist/src/core/overlay/applier.js +40 -13
  289. package/dist/src/core/overlay/applier.js.map +1 -1
  290. package/dist/src/core/overlay/loader.d.ts.map +1 -1
  291. package/dist/src/core/overlay/loader.js +6 -0
  292. package/dist/src/core/overlay/loader.js.map +1 -1
  293. package/dist/src/core/overlay/types.d.ts +5 -1
  294. package/dist/src/core/overlay/types.d.ts.map +1 -1
  295. package/dist/src/core/overlay/types.js +1 -1
  296. package/dist/src/core/overlay/types.js.map +1 -1
  297. package/dist/src/hooks/context-monitor.js +1 -1
  298. package/dist/src/hooks/context-monitor.js.map +1 -1
  299. package/dist/src/hooks/skill-context.js +1 -1
  300. package/dist/src/hooks/skill-context.js.map +1 -1
  301. package/dist/src/mcp/delegate-channel-relay.d.ts +4 -0
  302. package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
  303. package/dist/src/mcp/delegate-channel-relay.js +73 -4
  304. package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
  305. package/dist/src/tools/index.js +2 -2
  306. package/dist/src/tools/index.js.map +1 -1
  307. package/dist/src/tools/store-knowhow.d.ts +21 -0
  308. package/dist/src/tools/store-knowhow.d.ts.map +1 -0
  309. package/dist/src/tools/store-knowhow.js +295 -0
  310. package/dist/src/tools/store-knowhow.js.map +1 -0
  311. package/package.json +1 -1
  312. package/shared/agent-types.ts +2 -0
  313. package/workflows/analyze.md +61 -185
  314. package/workflows/brainstorm.md +3 -23
  315. package/workflows/codebase-rebuild.md +79 -191
  316. package/workflows/codebase-refresh.md +26 -124
  317. package/workflows/debug.md +21 -141
  318. package/workflows/execute.md +183 -350
  319. package/workflows/fork.md +72 -230
  320. package/workflows/harvest.md +12 -79
  321. package/workflows/init.md +3 -17
  322. package/workflows/integration-test.md +21 -190
  323. package/workflows/issue-analyze.md +35 -153
  324. package/workflows/issue-discover.md +88 -263
  325. package/workflows/issue-execute.md +29 -208
  326. package/workflows/issue-plan.md +33 -154
  327. package/workflows/issue.md +44 -202
  328. package/workflows/knowhow.md +374 -0
  329. package/workflows/learn.md +30 -177
  330. package/workflows/maestro-coordinate.codex.md +77 -362
  331. package/workflows/maestro-link-coordinate.md +12 -61
  332. package/workflows/maestro.codex.md +124 -457
  333. package/workflows/maestro.md +562 -976
  334. package/workflows/map.md +16 -53
  335. package/workflows/merge.md +42 -197
  336. package/workflows/milestone-audit.md +5 -43
  337. package/workflows/milestone-complete.md +11 -60
  338. package/workflows/plan.md +176 -387
  339. package/workflows/quick.md +25 -174
  340. package/workflows/refactor.md +28 -221
  341. package/workflows/retrospective.md +104 -443
  342. package/workflows/review.md +87 -299
  343. package/workflows/roadmap.md +117 -97
  344. package/workflows/spec-generate.md +22 -118
  345. package/workflows/specs-add.md +5 -25
  346. package/workflows/specs-load.md +1 -5
  347. package/workflows/specs-remove.md +0 -11
  348. package/workflows/specs-setup.md +11 -47
  349. package/workflows/status.md +58 -200
  350. package/workflows/sync.md +28 -141
  351. package/workflows/test-gen.md +23 -100
  352. package/workflows/test.md +15 -125
  353. package/workflows/ui-design.md +139 -465
  354. package/workflows/ui-style.md +36 -228
  355. package/workflows/verify.md +52 -273
  356. package/workflows/wiki-connect.md +9 -46
  357. package/workflows/wiki-digest.md +7 -50
  358. package/workflows/wiki-manage.md +11 -108
  359. package/.claude/commands/maestro-coordinate.md +0 -63
  360. package/.claude/commands/manage-memory-capture.md +0 -59
  361. package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
  362. package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
  363. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
  364. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
  365. package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
  366. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
  367. package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
  368. package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
  369. package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
  370. package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
  371. package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
  372. package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
  373. package/workflows/maestro-coordinate.md +0 -582
  374. 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.