claude-code-workflow 7.2.15 → 7.2.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 (526) hide show
  1. package/.ccw/workflows/cli-templates/schemas/team-tasks-schema.json +255 -0
  2. package/.codex/agents/team-supervisor.toml +39 -0
  3. package/.codex/agents/team-worker.toml +46 -0
  4. package/.codex/skills/team-arch-opt/SKILL.md +151 -698
  5. package/.codex/skills/team-arch-opt/roles/analyzer/role.md +78 -0
  6. package/.codex/skills/team-arch-opt/roles/coordinator/commands/analyze.md +57 -0
  7. package/.codex/skills/team-arch-opt/roles/coordinator/commands/dispatch.md +287 -0
  8. package/.codex/skills/team-arch-opt/roles/coordinator/commands/monitor.md +204 -0
  9. package/.codex/skills/team-arch-opt/roles/coordinator/role.md +162 -0
  10. package/.codex/skills/team-arch-opt/roles/designer/role.md +115 -0
  11. package/.codex/skills/team-arch-opt/roles/refactorer/role.md +102 -0
  12. package/.codex/skills/team-arch-opt/roles/reviewer/role.md +111 -0
  13. package/.codex/skills/team-arch-opt/roles/validator/role.md +115 -0
  14. package/.codex/skills/team-arch-opt/specs/pipelines.md +102 -0
  15. package/.codex/skills/team-arch-opt/specs/team-config.json +263 -0
  16. package/.codex/skills/team-brainstorm/SKILL.md +167 -724
  17. package/.codex/skills/team-brainstorm/roles/challenger/role.md +61 -0
  18. package/.codex/skills/team-brainstorm/roles/coordinator/commands/analyze.md +58 -0
  19. package/.codex/skills/team-brainstorm/roles/coordinator/commands/dispatch.md +162 -0
  20. package/.codex/skills/team-brainstorm/roles/coordinator/commands/monitor.md +171 -0
  21. package/.codex/skills/team-brainstorm/roles/coordinator/role.md +140 -0
  22. package/.codex/skills/team-brainstorm/roles/evaluator/role.md +56 -0
  23. package/.codex/skills/team-brainstorm/roles/ideator/role.md +69 -0
  24. package/.codex/skills/team-brainstorm/roles/synthesizer/role.md +57 -0
  25. package/.codex/skills/team-brainstorm/specs/pipelines.md +72 -0
  26. package/.codex/skills/team-brainstorm/specs/team-config.json +86 -0
  27. package/.codex/skills/team-coordinate/SKILL.md +267 -667
  28. package/.codex/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  29. package/.codex/skills/team-coordinate/roles/coordinator/commands/dispatch.md +126 -0
  30. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +327 -0
  31. package/.codex/skills/team-coordinate/roles/coordinator/role.md +361 -0
  32. package/.codex/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  33. package/.codex/skills/team-coordinate/specs/pipelines.md +97 -0
  34. package/.codex/skills/team-coordinate/specs/quality-gates.md +112 -0
  35. package/.codex/skills/team-coordinate/specs/role-spec-template.md +192 -0
  36. package/.codex/skills/team-designer/SKILL.md +153 -691
  37. package/.codex/skills/team-designer/phases/01-requirements-analysis.md +250 -0
  38. package/.codex/skills/team-designer/phases/02-scaffold-generation.md +228 -0
  39. package/.codex/skills/team-designer/phases/03-content-generation.md +330 -0
  40. package/.codex/skills/team-designer/phases/04-validation.md +320 -0
  41. package/.codex/skills/team-executor/SKILL.md +191 -515
  42. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +280 -0
  43. package/.codex/skills/team-executor/roles/executor/role.md +170 -0
  44. package/.codex/skills/team-executor/specs/session-schema.md +264 -0
  45. package/.codex/skills/team-frontend/SKILL.md +129 -750
  46. package/.codex/skills/team-frontend/roles/analyst/role.md +92 -0
  47. package/.codex/skills/team-frontend/roles/architect/role.md +86 -0
  48. package/.codex/skills/team-frontend/roles/coordinator/commands/analyze.md +52 -0
  49. package/.codex/skills/team-frontend/roles/coordinator/commands/dispatch.md +151 -0
  50. package/.codex/skills/team-frontend/roles/coordinator/commands/monitor.md +188 -0
  51. package/.codex/skills/team-frontend/roles/coordinator/role.md +157 -0
  52. package/.codex/skills/team-frontend/roles/developer/role.md +93 -0
  53. package/.codex/skills/team-frontend/roles/qa/role.md +79 -0
  54. package/.codex/skills/team-frontend/specs/pipelines.md +76 -0
  55. package/.codex/skills/team-frontend/specs/team-config.json +84 -0
  56. package/.codex/skills/team-frontend-debug/SKILL.md +191 -821
  57. package/.codex/skills/team-frontend-debug/roles/analyzer/role.md +208 -0
  58. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +174 -0
  59. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/dispatch.md +198 -0
  60. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/monitor.md +143 -0
  61. package/.codex/skills/team-frontend-debug/roles/coordinator/role.md +131 -0
  62. package/.codex/skills/team-frontend-debug/roles/fixer/role.md +147 -0
  63. package/.codex/skills/team-frontend-debug/roles/reproducer/role.md +147 -0
  64. package/.codex/skills/team-frontend-debug/roles/tester/role.md +231 -0
  65. package/.codex/skills/team-frontend-debug/roles/verifier/role.md +172 -0
  66. package/.codex/skills/team-frontend-debug/specs/debug-tools.md +215 -0
  67. package/.codex/skills/team-frontend-debug/specs/pipelines.md +94 -0
  68. package/.codex/skills/team-issue/SKILL.md +166 -751
  69. package/.codex/skills/team-issue/roles/coordinator/commands/analyze.md +64 -0
  70. package/.codex/skills/team-issue/roles/coordinator/commands/dispatch.md +273 -0
  71. package/.codex/skills/team-issue/roles/coordinator/commands/monitor.md +194 -0
  72. package/.codex/skills/team-issue/roles/coordinator/role.md +175 -0
  73. package/.codex/skills/team-issue/roles/explorer/role.md +94 -0
  74. package/.codex/skills/team-issue/roles/implementer/role.md +87 -0
  75. package/.codex/skills/team-issue/roles/integrator/role.md +84 -0
  76. package/.codex/skills/team-issue/roles/planner/role.md +81 -0
  77. package/.codex/skills/team-issue/roles/reviewer/role.md +86 -0
  78. package/.codex/skills/team-issue/specs/pipelines.md +124 -0
  79. package/.codex/skills/team-issue/specs/team-config.json +70 -0
  80. package/.codex/skills/team-iterdev/SKILL.md +134 -825
  81. package/.codex/skills/team-iterdev/roles/architect/role.md +65 -0
  82. package/.codex/skills/team-iterdev/roles/coordinator/commands/analyze.md +62 -0
  83. package/.codex/skills/team-iterdev/roles/coordinator/commands/dispatch.md +187 -0
  84. package/.codex/skills/team-iterdev/roles/coordinator/commands/monitor.md +186 -0
  85. package/.codex/skills/team-iterdev/roles/coordinator/role.md +161 -0
  86. package/.codex/skills/team-iterdev/roles/developer/role.md +74 -0
  87. package/.codex/skills/team-iterdev/roles/reviewer/role.md +66 -0
  88. package/.codex/skills/team-iterdev/roles/tester/role.md +88 -0
  89. package/.codex/skills/team-iterdev/specs/pipelines.md +94 -0
  90. package/.codex/skills/team-iterdev/specs/team-config.json +172 -0
  91. package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +512 -0
  92. package/.codex/skills/team-lifecycle-v4/SKILL.md +166 -723
  93. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +104 -0
  94. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  95. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +61 -0
  96. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +177 -0
  97. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +152 -0
  98. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  99. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +63 -0
  100. package/.codex/skills/team-lifecycle-v4/roles/executor/role.md +89 -0
  101. package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +108 -0
  102. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +57 -0
  103. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  104. package/.codex/skills/team-lifecycle-v4/roles/reviewer/role.md +98 -0
  105. package/.codex/skills/team-lifecycle-v4/roles/supervisor/role.md +210 -0
  106. package/.codex/skills/team-lifecycle-v4/roles/tester/role.md +126 -0
  107. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +125 -0
  108. package/.codex/skills/team-lifecycle-v4/schemas/tasks-schema.md +82 -160
  109. package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +136 -0
  110. package/.codex/skills/team-lifecycle-v4/specs/pipelines.md +125 -0
  111. package/.codex/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  112. package/.codex/skills/team-perf-opt/SKILL.md +169 -697
  113. package/.codex/skills/team-perf-opt/roles/benchmarker/role.md +89 -0
  114. package/.codex/skills/team-perf-opt/roles/coordinator/commands/analyze.md +61 -0
  115. package/.codex/skills/team-perf-opt/roles/coordinator/commands/dispatch.md +262 -0
  116. package/.codex/skills/team-perf-opt/roles/coordinator/commands/monitor.md +320 -0
  117. package/.codex/skills/team-perf-opt/roles/coordinator/role.md +147 -0
  118. package/.codex/skills/team-perf-opt/roles/optimizer/role.md +97 -0
  119. package/.codex/skills/team-perf-opt/roles/profiler/role.md +73 -0
  120. package/.codex/skills/team-perf-opt/roles/reviewer/role.md +75 -0
  121. package/.codex/skills/team-perf-opt/roles/strategist/role.md +94 -0
  122. package/.codex/skills/team-perf-opt/specs/pipelines.md +65 -0
  123. package/.codex/skills/team-perf-opt/specs/team-config.json +246 -0
  124. package/.codex/skills/team-planex/SKILL.md +103 -477
  125. package/.codex/skills/team-planex/roles/coordinator/commands/analyze.md +52 -0
  126. package/.codex/skills/team-planex/roles/coordinator/commands/dispatch.md +80 -0
  127. package/.codex/skills/team-planex/roles/coordinator/commands/monitor.md +164 -0
  128. package/.codex/skills/team-planex/roles/coordinator/role.md +140 -0
  129. package/.codex/skills/team-planex/roles/executor/role.md +91 -0
  130. package/.codex/skills/team-planex/roles/planner/role.md +112 -0
  131. package/.codex/skills/team-planex/specs/pipelines.md +93 -0
  132. package/.codex/skills/team-quality-assurance/SKILL.md +148 -813
  133. package/.codex/skills/team-quality-assurance/roles/analyst/role.md +80 -0
  134. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  135. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +108 -0
  136. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +209 -0
  137. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  138. package/.codex/skills/team-quality-assurance/roles/executor/role.md +66 -0
  139. package/.codex/skills/team-quality-assurance/roles/generator/role.md +68 -0
  140. package/.codex/skills/team-quality-assurance/roles/scout/role.md +67 -0
  141. package/.codex/skills/team-quality-assurance/roles/strategist/role.md +71 -0
  142. package/.codex/skills/team-quality-assurance/specs/pipelines.md +115 -0
  143. package/.codex/skills/team-quality-assurance/specs/team-config.json +131 -0
  144. package/.codex/skills/team-review/SKILL.md +148 -533
  145. package/.codex/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  146. package/.codex/skills/team-review/roles/coordinator/commands/dispatch.md +90 -0
  147. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +185 -0
  148. package/.codex/skills/team-review/roles/coordinator/role.md +142 -0
  149. package/.codex/skills/team-review/roles/fixer/role.md +76 -0
  150. package/.codex/skills/team-review/roles/reviewer/role.md +68 -0
  151. package/.codex/skills/team-review/roles/scanner/role.md +71 -0
  152. package/.codex/skills/team-review/specs/dimensions.md +82 -0
  153. package/.codex/skills/team-review/specs/finding-schema.json +82 -0
  154. package/.codex/skills/team-review/specs/pipelines.md +102 -0
  155. package/.codex/skills/team-review/specs/team-config.json +27 -0
  156. package/.codex/skills/team-roadmap-dev/SKILL.md +162 -683
  157. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/analyze.md +61 -0
  158. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/dispatch.md +241 -0
  159. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/monitor.md +468 -0
  160. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/pause.md +90 -0
  161. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/resume.md +137 -0
  162. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +243 -0
  163. package/.codex/skills/team-roadmap-dev/roles/coordinator/role.md +303 -0
  164. package/.codex/skills/team-roadmap-dev/roles/executor/role.md +71 -0
  165. package/.codex/skills/team-roadmap-dev/roles/planner/role.md +76 -0
  166. package/.codex/skills/team-roadmap-dev/roles/verifier/role.md +74 -0
  167. package/.codex/skills/team-roadmap-dev/specs/pipelines.md +93 -0
  168. package/.codex/skills/team-roadmap-dev/specs/team-config.json +95 -0
  169. package/.codex/skills/team-tech-debt/SKILL.md +129 -708
  170. package/.codex/skills/team-tech-debt/roles/assessor/role.md +69 -0
  171. package/.codex/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  172. package/.codex/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +163 -0
  173. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +231 -0
  174. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +141 -0
  175. package/.codex/skills/team-tech-debt/roles/executor/role.md +76 -0
  176. package/.codex/skills/team-tech-debt/roles/planner/role.md +69 -0
  177. package/.codex/skills/team-tech-debt/roles/scanner/role.md +82 -0
  178. package/.codex/skills/team-tech-debt/roles/validator/role.md +75 -0
  179. package/.codex/skills/team-tech-debt/specs/pipelines.md +47 -0
  180. package/.codex/skills/team-tech-debt/specs/team-config.json +129 -0
  181. package/.codex/skills/team-testing/SKILL.md +144 -769
  182. package/.codex/skills/team-testing/roles/analyst/role.md +95 -0
  183. package/.codex/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  184. package/.codex/skills/team-testing/roles/coordinator/commands/dispatch.md +106 -0
  185. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +242 -0
  186. package/.codex/skills/team-testing/roles/coordinator/role.md +151 -0
  187. package/.codex/skills/team-testing/roles/executor/role.md +96 -0
  188. package/.codex/skills/team-testing/roles/generator/role.md +95 -0
  189. package/.codex/skills/team-testing/roles/strategist/role.md +83 -0
  190. package/.codex/skills/team-testing/specs/pipelines.md +101 -0
  191. package/.codex/skills/team-testing/specs/team-config.json +93 -0
  192. package/.codex/skills/team-uidesign/SKILL.md +133 -767
  193. package/.codex/skills/team-uidesign/roles/coordinator/commands/analyze.md +59 -0
  194. package/.codex/skills/team-uidesign/roles/coordinator/commands/dispatch.md +156 -0
  195. package/.codex/skills/team-uidesign/roles/coordinator/commands/monitor.md +194 -0
  196. package/.codex/skills/team-uidesign/roles/coordinator/role.md +179 -0
  197. package/.codex/skills/team-uidesign/roles/designer/role.md +69 -0
  198. package/.codex/skills/team-uidesign/roles/implementer/role.md +72 -0
  199. package/.codex/skills/team-uidesign/roles/researcher/role.md +82 -0
  200. package/.codex/skills/team-uidesign/roles/reviewer/role.md +67 -0
  201. package/.codex/skills/team-uidesign/specs/pipelines.md +76 -0
  202. package/.codex/skills/team-uidesign/specs/team-config.json +107 -0
  203. package/.codex/skills/team-ultra-analyze/SKILL.md +166 -786
  204. package/.codex/skills/team-ultra-analyze/roles/analyst/role.md +90 -0
  205. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/analyze.md +73 -0
  206. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/dispatch.md +225 -0
  207. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +327 -0
  208. package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +223 -0
  209. package/.codex/skills/team-ultra-analyze/roles/discussant/role.md +104 -0
  210. package/.codex/skills/team-ultra-analyze/roles/explorer/role.md +74 -0
  211. package/.codex/skills/team-ultra-analyze/roles/synthesizer/role.md +78 -0
  212. package/.codex/skills/team-ultra-analyze/specs/pipelines.md +64 -0
  213. package/.codex/skills/team-ultra-analyze/specs/team-config.json +129 -0
  214. package/.codex/skills/team-ux-improve/SKILL.md +142 -638
  215. package/.codex/skills/team-ux-improve/roles/coordinator/commands/analyze.md +62 -0
  216. package/.codex/skills/team-ux-improve/roles/coordinator/commands/dispatch.md +233 -0
  217. package/.codex/skills/team-ux-improve/roles/coordinator/commands/monitor.md +160 -0
  218. package/.codex/skills/team-ux-improve/roles/coordinator/role.md +138 -0
  219. package/.codex/skills/team-ux-improve/roles/designer/role.md +122 -0
  220. package/.codex/skills/team-ux-improve/roles/diagnoser/role.md +93 -0
  221. package/.codex/skills/team-ux-improve/roles/explorer/role.md +77 -0
  222. package/.codex/skills/team-ux-improve/roles/implementer/role.md +102 -0
  223. package/.codex/skills/team-ux-improve/roles/scanner/role.md +93 -0
  224. package/.codex/skills/team-ux-improve/roles/tester/role.md +84 -0
  225. package/.codex/skills/team-ux-improve/specs/pipelines.md +54 -0
  226. package/.codex/skills/team-ux-improve/specs/team-config.json +181 -0
  227. package/.codex/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +17 -0
  228. package/.codex/skills/team-ux-improve/wisdom/contributions/.gitkeep +0 -0
  229. package/.codex/skills/team-ux-improve/wisdom/patterns/state-management.md +14 -0
  230. package/.codex/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +16 -0
  231. package/.codex/skills/team-ux-improve/wisdom/principles/general-ux.md +16 -0
  232. package/ccw/dist/core/routes/cli-settings-routes.d.ts.map +1 -1
  233. package/ccw/dist/core/routes/cli-settings-routes.js +135 -133
  234. package/ccw/dist/core/routes/cli-settings-routes.js.map +1 -1
  235. package/ccw/frontend/dist/assets/{AlertDialog-BW9jiZ-p.js → AlertDialog-CnpjWAGm.js} +2 -2
  236. package/ccw/frontend/dist/assets/{AlertDialog-BW9jiZ-p.js.map → AlertDialog-CnpjWAGm.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{AnalysisPage-ds-w_nVO.js → AnalysisPage-BT2rDDUD.js} +2 -2
  238. package/ccw/frontend/dist/assets/{AnalysisPage-ds-w_nVO.js.map → AnalysisPage-BT2rDDUD.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{ApiSettingsPage-DlCbXxTz.js → ApiSettingsPage-DGpjiNVu.js} +2 -2
  240. package/ccw/frontend/dist/assets/{ApiSettingsPage-DlCbXxTz.js.map → ApiSettingsPage-DGpjiNVu.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{CliModeToggle-Dq3nL4fF.js → CliModeToggle-BqUadHn3.js} +2 -2
  242. package/ccw/frontend/dist/assets/{CliModeToggle-Dq3nL4fF.js.map → CliModeToggle-BqUadHn3.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{CliSessionSharePage-BNDkEE4u.js → CliSessionSharePage-C3AdsDkm.js} +2 -2
  244. package/ccw/frontend/dist/assets/{CliSessionSharePage-BNDkEE4u.js.map → CliSessionSharePage-C3AdsDkm.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{CliViewerPage-ChM-uNx_.js → CliViewerPage-BZXpgY0N.js} +2 -2
  246. package/ccw/frontend/dist/assets/{CliViewerPage-ChM-uNx_.js.map → CliViewerPage-BZXpgY0N.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{CodexLensPage-DOcsYNQk.js → CodexLensPage-CePoJz-u.js} +2 -2
  248. package/ccw/frontend/dist/assets/{CodexLensPage-DOcsYNQk.js.map → CodexLensPage-CePoJz-u.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{Collapsible-CRNbykXN.js → Collapsible-DXVzWwmb.js} +2 -2
  250. package/ccw/frontend/dist/assets/{Collapsible-CRNbykXN.js.map → Collapsible-DXVzWwmb.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{CommandsManagerPage-C2JWcemF.js → CommandsManagerPage-B6wJYF0z.js} +2 -2
  252. package/ccw/frontend/dist/assets/{CommandsManagerPage-C2JWcemF.js.map → CommandsManagerPage-B6wJYF0z.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{DeepWikiPage-CvleOtJy.js → DeepWikiPage-D55fcvSk.js} +2 -2
  254. package/ccw/frontend/dist/assets/{DeepWikiPage-CvleOtJy.js.map → DeepWikiPage-D55fcvSk.js.map} +1 -1
  255. package/ccw/frontend/dist/assets/{EndpointsPage-CMOWQG64.js → EndpointsPage-DcGziJ5t.js} +2 -2
  256. package/ccw/frontend/dist/assets/{EndpointsPage-CMOWQG64.js.map → EndpointsPage-DcGziJ5t.js.map} +1 -1
  257. package/ccw/frontend/dist/assets/{ExplorerPage-DaFPRlNo.js → ExplorerPage-C4eKzn7F.js} +2 -2
  258. package/ccw/frontend/dist/assets/{ExplorerPage-DaFPRlNo.js.map → ExplorerPage-C4eKzn7F.js.map} +1 -1
  259. package/ccw/frontend/dist/assets/{FixSessionPage-CC4p04Az.js → FixSessionPage-BUHh954A.js} +2 -2
  260. package/ccw/frontend/dist/assets/{FixSessionPage-CC4p04Az.js.map → FixSessionPage-BUHh954A.js.map} +1 -1
  261. package/ccw/frontend/dist/assets/{FloatingFileBrowser-DROn1xZ5.js → FloatingFileBrowser-C3GF_u1C.js} +2 -2
  262. package/ccw/frontend/dist/assets/{FloatingFileBrowser-DROn1xZ5.js.map → FloatingFileBrowser-C3GF_u1C.js.map} +1 -1
  263. package/ccw/frontend/dist/assets/{FloatingPanel-CmL_yhDv.js → FloatingPanel-Cn-q9PyJ.js} +2 -2
  264. package/ccw/frontend/dist/assets/{FloatingPanel-CmL_yhDv.js.map → FloatingPanel-Cn-q9PyJ.js.map} +1 -1
  265. package/ccw/frontend/dist/assets/{GraphExplorerPage-DCV5ybKE.js → GraphExplorerPage-DIpqgvoU.js} +2 -2
  266. package/ccw/frontend/dist/assets/{GraphExplorerPage-DCV5ybKE.js.map → GraphExplorerPage-DIpqgvoU.js.map} +1 -1
  267. package/ccw/frontend/dist/assets/{HistoryPage-D0fYQZgc.js → HistoryPage-DzSvEAFe.js} +2 -2
  268. package/ccw/frontend/dist/assets/{HistoryPage-D0fYQZgc.js.map → HistoryPage-DzSvEAFe.js.map} +1 -1
  269. package/ccw/frontend/dist/assets/{HookManagerPage-D2FuJfsM.js → HookManagerPage-C6LDhWrH.js} +2 -2
  270. package/ccw/frontend/dist/assets/{HookManagerPage-D2FuJfsM.js.map → HookManagerPage-C6LDhWrH.js.map} +1 -1
  271. package/ccw/frontend/dist/assets/{InstallationsPage-tjklillZ.js → InstallationsPage-D9ct9xFV.js} +2 -2
  272. package/ccw/frontend/dist/assets/{InstallationsPage-tjklillZ.js.map → InstallationsPage-D9ct9xFV.js.map} +1 -1
  273. package/ccw/frontend/dist/assets/{IssueHubPage-E4JVrhO1.js → IssueHubPage-CXgDC8pS.js} +2 -2
  274. package/ccw/frontend/dist/assets/{IssueHubPage-E4JVrhO1.js.map → IssueHubPage-CXgDC8pS.js.map} +1 -1
  275. package/ccw/frontend/dist/assets/{LiteTasksPage-aJuRoyLt.js → LiteTasksPage-DMkauCwG.js} +2 -2
  276. package/ccw/frontend/dist/assets/{LiteTasksPage-aJuRoyLt.js.map → LiteTasksPage-DMkauCwG.js.map} +1 -1
  277. package/ccw/frontend/dist/assets/{McpManagerPage-BJeuWJv1.js → McpManagerPage-DhLDydgc.js} +2 -2
  278. package/ccw/frontend/dist/assets/{McpManagerPage-BJeuWJv1.js.map → McpManagerPage-DhLDydgc.js.map} +1 -1
  279. package/ccw/frontend/dist/assets/{MemoryPage-BI4FAXhs.js → MemoryPage-Be3nhq40.js} +2 -2
  280. package/ccw/frontend/dist/assets/{MemoryPage-BI4FAXhs.js.map → MemoryPage-Be3nhq40.js.map} +1 -1
  281. package/ccw/frontend/dist/assets/{NotFoundPage-DD2svchp.js → NotFoundPage-0yGnCePd.js} +2 -2
  282. package/ccw/frontend/dist/assets/{NotFoundPage-DD2svchp.js.map → NotFoundPage-0yGnCePd.js.map} +1 -1
  283. package/ccw/frontend/dist/assets/{OrchestratorPage-FC__7yYa.js → OrchestratorPage-_SmXZcGl.js} +2 -2
  284. package/ccw/frontend/dist/assets/{OrchestratorPage-FC__7yYa.js.map → OrchestratorPage-_SmXZcGl.js.map} +1 -1
  285. package/ccw/frontend/dist/assets/{ProjectOverviewPage-DBB_-FzV.js → ProjectOverviewPage-BeXTMsdo.js} +2 -2
  286. package/ccw/frontend/dist/assets/{ProjectOverviewPage-DBB_-FzV.js.map → ProjectOverviewPage-BeXTMsdo.js.map} +1 -1
  287. package/ccw/frontend/dist/assets/{PromptHistoryPage-BwOAvCH8.js → PromptHistoryPage-DS6ycuAv.js} +2 -2
  288. package/ccw/frontend/dist/assets/{PromptHistoryPage-BwOAvCH8.js.map → PromptHistoryPage-DS6ycuAv.js.map} +1 -1
  289. package/ccw/frontend/dist/assets/{ReviewSessionPage-Dd1-g_gp.js → ReviewSessionPage-BoqyjhPo.js} +2 -2
  290. package/ccw/frontend/dist/assets/{ReviewSessionPage-Dd1-g_gp.js.map → ReviewSessionPage-BoqyjhPo.js.map} +1 -1
  291. package/ccw/frontend/dist/assets/{RulesManagerPage-B3RGdsKD.js → RulesManagerPage-DMAwkKlc.js} +2 -2
  292. package/ccw/frontend/dist/assets/{RulesManagerPage-B3RGdsKD.js.map → RulesManagerPage-DMAwkKlc.js.map} +1 -1
  293. package/ccw/frontend/dist/assets/{SessionDetailPage-DM-W5R8K.js → SessionDetailPage-BgJRHIF4.js} +2 -2
  294. package/ccw/frontend/dist/assets/{SessionDetailPage-DM-W5R8K.js.map → SessionDetailPage-BgJRHIF4.js.map} +1 -1
  295. package/ccw/frontend/dist/assets/{SessionsPage-BVz1KCc7.js → SessionsPage-DBPdWlji.js} +2 -2
  296. package/ccw/frontend/dist/assets/{SessionsPage-BVz1KCc7.js.map → SessionsPage-DBPdWlji.js.map} +1 -1
  297. package/ccw/frontend/dist/assets/{SettingsPage-ComW7EZS.js → SettingsPage-BY3QiJhm.js} +4 -4
  298. package/ccw/frontend/dist/assets/{SettingsPage-ComW7EZS.js.map → SettingsPage-BY3QiJhm.js.map} +1 -1
  299. package/ccw/frontend/dist/assets/{SkillsManagerPage-CKom9XwV.js → SkillsManagerPage-DS101Adm.js} +2 -2
  300. package/ccw/frontend/dist/assets/{SkillsManagerPage-CKom9XwV.js.map → SkillsManagerPage-DS101Adm.js.map} +1 -1
  301. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DQz7WP2s.js → SpecsSettingsPage-BcsLu1qq.js} +2 -2
  302. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DQz7WP2s.js.map → SpecsSettingsPage-BcsLu1qq.js.map} +1 -1
  303. package/ccw/frontend/dist/assets/{Switch-BPMdND9H.js → Switch-BL9AmNPC.js} +2 -2
  304. package/ccw/frontend/dist/assets/{Switch-BPMdND9H.js.map → Switch-BL9AmNPC.js.map} +1 -1
  305. package/ccw/frontend/dist/assets/{TabsNavigation-qqt70VYL.js → TabsNavigation-BUcjsLeE.js} +2 -2
  306. package/ccw/frontend/dist/assets/{TabsNavigation-qqt70VYL.js.map → TabsNavigation-BUcjsLeE.js.map} +1 -1
  307. package/ccw/frontend/dist/assets/{TaskDrawer-BqK_qiHX.js → TaskDrawer-BNvfS6dq.js} +2 -2
  308. package/ccw/frontend/dist/assets/{TaskDrawer-BqK_qiHX.js.map → TaskDrawer-BNvfS6dq.js.map} +1 -1
  309. package/ccw/frontend/dist/assets/{TeamPage-u5_i0Rgh.js → TeamPage-CT-zNCrF.js} +2 -2
  310. package/ccw/frontend/dist/assets/{TeamPage-u5_i0Rgh.js.map → TeamPage-CT-zNCrF.js.map} +1 -1
  311. package/ccw/frontend/dist/assets/{TerminalDashboardPage-rUtC9e40.js → TerminalDashboardPage-DfZFGs8g.js} +2 -2
  312. package/ccw/frontend/dist/assets/{TerminalDashboardPage-rUtC9e40.js.map → TerminalDashboardPage-DfZFGs8g.js.map} +1 -1
  313. package/ccw/frontend/dist/assets/{archive-C3u8YNQF.js → archive-Cev1SaQq.js} +2 -2
  314. package/ccw/frontend/dist/assets/{archive-C3u8YNQF.js.map → archive-Cev1SaQq.js.map} +1 -1
  315. package/ccw/frontend/dist/assets/{archive-restore-DfQ998g5.js → archive-restore-BIVluaHZ.js} +2 -2
  316. package/ccw/frontend/dist/assets/{archive-restore-DfQ998g5.js.map → archive-restore-BIVluaHZ.js.map} +1 -1
  317. package/ccw/frontend/dist/assets/{arrow-right-BshJM9Po.js → arrow-right-DrivbS5j.js} +2 -2
  318. package/ccw/frontend/dist/assets/{arrow-right-BshJM9Po.js.map → arrow-right-DrivbS5j.js.map} +1 -1
  319. package/ccw/frontend/dist/assets/{bookmark-plus-D03qJyOZ.js → bookmark-plus-DKyzL0Xg.js} +2 -2
  320. package/ccw/frontend/dist/assets/{bookmark-plus-D03qJyOZ.js.map → bookmark-plus-DKyzL0Xg.js.map} +1 -1
  321. package/ccw/frontend/dist/assets/{bot-CyzWuwq0.js → bot-GBUkPAe3.js} +2 -2
  322. package/ccw/frontend/dist/assets/{bot-CyzWuwq0.js.map → bot-GBUkPAe3.js.map} +1 -1
  323. package/ccw/frontend/dist/assets/{braces-BPgtyjsG.js → braces-BWhm2c4g.js} +2 -2
  324. package/ccw/frontend/dist/assets/{braces-BPgtyjsG.js.map → braces-BWhm2c4g.js.map} +1 -1
  325. package/ccw/frontend/dist/assets/{circle-stop-Dix1AOmw.js → circle-stop-CBcZSKNp.js} +2 -2
  326. package/ccw/frontend/dist/assets/{circle-stop-Dix1AOmw.js.map → circle-stop-CBcZSKNp.js.map} +1 -1
  327. package/ccw/frontend/dist/assets/{cpu-CCQ4Q0Zh.js → cpu-CzNmuTZD.js} +2 -2
  328. package/ccw/frontend/dist/assets/{cpu-CCQ4Q0Zh.js.map → cpu-CzNmuTZD.js.map} +1 -1
  329. package/ccw/frontend/dist/assets/{ellipsis-vertical-BpTysg-Y.js → ellipsis-vertical-BoIyQKaI.js} +2 -2
  330. package/ccw/frontend/dist/assets/{ellipsis-vertical-BpTysg-Y.js.map → ellipsis-vertical-BoIyQKaI.js.map} +1 -1
  331. package/ccw/frontend/dist/assets/{eye-DGY1rAZs.js → eye-BqxyhxQq.js} +2 -2
  332. package/ccw/frontend/dist/assets/{eye-DGY1rAZs.js.map → eye-BqxyhxQq.js.map} +1 -1
  333. package/ccw/frontend/dist/assets/{eye-off-D8t3JfWG.js → eye-off-D9dTZP1A.js} +2 -2
  334. package/ccw/frontend/dist/assets/{eye-off-D8t3JfWG.js.map → eye-off-D9dTZP1A.js.map} +1 -1
  335. package/ccw/frontend/dist/assets/{file-json-BAdJb0n8.js → file-json-CLYEUI6e.js} +2 -2
  336. package/ccw/frontend/dist/assets/{file-json-BAdJb0n8.js.map → file-json-CLYEUI6e.js.map} +1 -1
  337. package/ccw/frontend/dist/assets/{file-text-DrJFiOUB.js → file-text-D5j9C5XC.js} +2 -2
  338. package/ccw/frontend/dist/assets/{file-text-DrJFiOUB.js.map → file-text-D5j9C5XC.js.map} +1 -1
  339. package/ccw/frontend/dist/assets/{filter-CKqzYbz7.js → filter-CEUK5jsA.js} +2 -2
  340. package/ccw/frontend/dist/assets/{filter-CKqzYbz7.js.map → filter-CEUK5jsA.js.map} +1 -1
  341. package/ccw/frontend/dist/assets/{folder-CV8511y9.js → folder-BEOY8txM.js} +2 -2
  342. package/ccw/frontend/dist/assets/{folder-CV8511y9.js.map → folder-BEOY8txM.js.map} +1 -1
  343. package/ccw/frontend/dist/assets/{gauge-XKvmu_uU.js → gauge-CbumHmVn.js} +2 -2
  344. package/ccw/frontend/dist/assets/{gauge-XKvmu_uU.js.map → gauge-CbumHmVn.js.map} +1 -1
  345. package/ccw/frontend/dist/assets/{globe-C56cDUzX.js → globe-D8_IB9gV.js} +2 -2
  346. package/ccw/frontend/dist/assets/{globe-C56cDUzX.js.map → globe-D8_IB9gV.js.map} +1 -1
  347. package/ccw/frontend/dist/assets/{grid-3x3-Bya-suFW.js → grid-3x3-BpzWmYF5.js} +2 -2
  348. package/ccw/frontend/dist/assets/{grid-3x3-Bya-suFW.js.map → grid-3x3-BpzWmYF5.js.map} +1 -1
  349. package/ccw/frontend/dist/assets/{hard-drive-CmuTZpsB.js → hard-drive-QIHpGln7.js} +2 -2
  350. package/ccw/frontend/dist/assets/{hard-drive-CmuTZpsB.js.map → hard-drive-QIHpGln7.js.map} +1 -1
  351. package/ccw/frontend/dist/assets/{hash-CRPT_tJQ.js → hash-CP0YRHVs.js} +2 -2
  352. package/ccw/frontend/dist/assets/{hash-CRPT_tJQ.js.map → hash-CP0YRHVs.js.map} +1 -1
  353. package/ccw/frontend/dist/assets/{history-C1pJZQCL.js → history-hOjgVKax.js} +2 -2
  354. package/ccw/frontend/dist/assets/{history-C1pJZQCL.js.map → history-hOjgVKax.js.map} +1 -1
  355. package/ccw/frontend/dist/assets/{index-Dmt9OiEf.js → index-B_ysvdnP.js} +2 -2
  356. package/ccw/frontend/dist/assets/{index-Dmt9OiEf.js.map → index-B_ysvdnP.js.map} +1 -1
  357. package/ccw/frontend/dist/assets/{index-dWT2M6Ef.js → index-C5Oqx2xI.js} +3 -3
  358. package/ccw/frontend/dist/assets/{index-dWT2M6Ef.js.map → index-C5Oqx2xI.js.map} +1 -1
  359. package/ccw/frontend/dist/assets/{index-CI8-rBff.js → index-CJi0bWL-.js} +2 -2
  360. package/ccw/frontend/dist/assets/{index-CI8-rBff.js.map → index-CJi0bWL-.js.map} +1 -1
  361. package/ccw/frontend/dist/assets/{index-anSMmEF8.js → index-CdQpo1x0.js} +2 -2
  362. package/ccw/frontend/dist/assets/{index-anSMmEF8.js.map → index-CdQpo1x0.js.map} +1 -1
  363. package/ccw/frontend/dist/assets/{layout-grid-TSO0BFQE.js → layout-grid-C38fQyLs.js} +2 -2
  364. package/ccw/frontend/dist/assets/{layout-grid-TSO0BFQE.js.map → layout-grid-C38fQyLs.js.map} +1 -1
  365. package/ccw/frontend/dist/assets/{lightbulb-Caj6fIQD.js → lightbulb-CClbCUzu.js} +2 -2
  366. package/ccw/frontend/dist/assets/{lightbulb-Caj6fIQD.js.map → lightbulb-CClbCUzu.js.map} +1 -1
  367. package/ccw/frontend/dist/assets/{link-2-DE9lMxa-.js → link-2-CB-LKbI0.js} +2 -2
  368. package/ccw/frontend/dist/assets/{link-2-DE9lMxa-.js.map → link-2-CB-LKbI0.js.map} +1 -1
  369. package/ccw/frontend/dist/assets/{link-BZtPgLW0.js → link-BK6SBzHS.js} +2 -2
  370. package/ccw/frontend/dist/assets/{link-BZtPgLW0.js.map → link-BK6SBzHS.js.map} +1 -1
  371. package/ccw/frontend/dist/assets/{list-DubWyY-U.js → list-BME_WOA_.js} +2 -2
  372. package/ccw/frontend/dist/assets/{list-DubWyY-U.js.map → list-BME_WOA_.js.map} +1 -1
  373. package/ccw/frontend/dist/assets/{map-pin-DwN_48AF.js → map-pin-ADsnCyjJ.js} +2 -2
  374. package/ccw/frontend/dist/assets/{map-pin-DwN_48AF.js.map → map-pin-ADsnCyjJ.js.map} +1 -1
  375. package/ccw/frontend/dist/assets/{messages-square-bjxvaiM9.js → messages-square-CLflB1Cq.js} +2 -2
  376. package/ccw/frontend/dist/assets/{messages-square-bjxvaiM9.js.map → messages-square-CLflB1Cq.js.map} +1 -1
  377. package/ccw/frontend/dist/assets/{minimize-2-CGfBKD_V.js → minimize-2-B3ZNzfGr.js} +2 -2
  378. package/ccw/frontend/dist/assets/{minimize-2-CGfBKD_V.js.map → minimize-2-B3ZNzfGr.js.map} +1 -1
  379. package/ccw/frontend/dist/assets/{package-nzWY6ilt.js → package-CByPhtMG.js} +2 -2
  380. package/ccw/frontend/dist/assets/{package-nzWY6ilt.js.map → package-CByPhtMG.js.map} +1 -1
  381. package/ccw/frontend/dist/assets/{plug-CiLce49C.js → plug-BggRzPX9.js} +2 -2
  382. package/ccw/frontend/dist/assets/{plug-CiLce49C.js.map → plug-BggRzPX9.js.map} +1 -1
  383. package/ccw/frontend/dist/assets/{power-CFLmB-U9.js → power-CWuxQSJK.js} +2 -2
  384. package/ccw/frontend/dist/assets/{power-CFLmB-U9.js.map → power-CWuxQSJK.js.map} +1 -1
  385. package/ccw/frontend/dist/assets/{save-DuO6OF0C.js → save-BdJ6EX4Q.js} +2 -2
  386. package/ccw/frontend/dist/assets/{save-DuO6OF0C.js.map → save-BdJ6EX4Q.js.map} +1 -1
  387. package/ccw/frontend/dist/assets/{send-CZk9p0mM.js → send-Ce9wuY7Q.js} +2 -2
  388. package/ccw/frontend/dist/assets/{send-CZk9p0mM.js.map → send-Ce9wuY7Q.js.map} +1 -1
  389. package/ccw/frontend/dist/assets/{square-check-big-BY_1YQQg.js → square-check-big-D6jItkfw.js} +2 -2
  390. package/ccw/frontend/dist/assets/{square-check-big-BY_1YQQg.js.map → square-check-big-D6jItkfw.js.map} +1 -1
  391. package/ccw/frontend/dist/assets/{square-pen-CnZgm6g-.js → square-pen-Byxq21zp.js} +2 -2
  392. package/ccw/frontend/dist/assets/{square-pen-CnZgm6g-.js.map → square-pen-Byxq21zp.js.map} +1 -1
  393. package/ccw/frontend/dist/assets/{star-Cn1F0qy7.js → star-Codj9dvK.js} +2 -2
  394. package/ccw/frontend/dist/assets/{star-Cn1F0qy7.js.map → star-Codj9dvK.js.map} +1 -1
  395. package/ccw/frontend/dist/assets/{style-Dxs1iXCV.js → style-4bYpUGcc.js} +2 -2
  396. package/ccw/frontend/dist/assets/{style-Dxs1iXCV.js.map → style-4bYpUGcc.js.map} +1 -1
  397. package/ccw/frontend/dist/assets/{target-Bz1fLRKH.js → target-DKBoDNCn.js} +2 -2
  398. package/ccw/frontend/dist/assets/{target-Bz1fLRKH.js.map → target-DKBoDNCn.js.map} +1 -1
  399. package/ccw/frontend/dist/assets/{test-tube-C6qCYlDr.js → test-tube-DTqZcBtA.js} +2 -2
  400. package/ccw/frontend/dist/assets/{test-tube-C6qCYlDr.js.map → test-tube-DTqZcBtA.js.map} +1 -1
  401. package/ccw/frontend/dist/assets/{upload-C71kd4Qs.js → upload-DlUl-e6b.js} +2 -2
  402. package/ccw/frontend/dist/assets/{upload-C71kd4Qs.js.map → upload-DlUl-e6b.js.map} +1 -1
  403. package/ccw/frontend/dist/assets/{useApiSettings-CqP2BAJ7.js → useApiSettings-D4zhKKT-.js} +2 -2
  404. package/ccw/frontend/dist/assets/{useApiSettings-CqP2BAJ7.js.map → useApiSettings-D4zhKKT-.js.map} +1 -1
  405. package/ccw/frontend/dist/assets/{useCli-PCoPoVeM.js → useCli-D-qDwsAH.js} +2 -2
  406. package/ccw/frontend/dist/assets/{useCli-PCoPoVeM.js.map → useCli-D-qDwsAH.js.map} +1 -1
  407. package/ccw/frontend/dist/assets/{useCommands-3OfPQPw4.js → useCommands-B0sidbbW.js} +2 -2
  408. package/ccw/frontend/dist/assets/{useCommands-3OfPQPw4.js.map → useCommands-B0sidbbW.js.map} +1 -1
  409. package/ccw/frontend/dist/assets/{useDebounce-bXiFhQx9.js → useDebounce-eTtbKevt.js} +2 -2
  410. package/ccw/frontend/dist/assets/{useDebounce-bXiFhQx9.js.map → useDebounce-eTtbKevt.js.map} +1 -1
  411. package/ccw/frontend/dist/assets/{useFileExplorer-DEyUm46_.js → useFileExplorer-MGSK0h33.js} +2 -2
  412. package/ccw/frontend/dist/assets/{useFileExplorer-DEyUm46_.js.map → useFileExplorer-MGSK0h33.js.map} +1 -1
  413. package/ccw/frontend/dist/assets/{useLocale-sXTrdxcJ.js → useLocale-DDNxU7pJ.js} +2 -2
  414. package/ccw/frontend/dist/assets/{useLocale-sXTrdxcJ.js.map → useLocale-DDNxU7pJ.js.map} +1 -1
  415. package/ccw/frontend/dist/assets/{useSkills-D0W0kXYm.js → useSkills-CZCRBtMY.js} +3 -3
  416. package/ccw/frontend/dist/assets/{useSkills-D0W0kXYm.js.map → useSkills-CZCRBtMY.js.map} +1 -1
  417. package/ccw/frontend/dist/assets/{useSystemSettings-DZ-8lZsG.js → useSystemSettings-DfQEFXSD.js} +2 -2
  418. package/ccw/frontend/dist/assets/{useSystemSettings-DZ-8lZsG.js.map → useSystemSettings-DfQEFXSD.js.map} +1 -1
  419. package/ccw/frontend/dist/assets/{wand-sparkles-83GmAYuw.js → wand-sparkles-DCLvfgl1.js} +2 -2
  420. package/ccw/frontend/dist/assets/{wand-sparkles-83GmAYuw.js.map → wand-sparkles-DCLvfgl1.js.map} +1 -1
  421. package/ccw/frontend/dist/index.html +1 -1
  422. package/package.json +1 -1
  423. package/.codex/skills/team-arch-opt/agents/completion-handler.md +0 -138
  424. package/.codex/skills/team-arch-opt/agents/fix-cycle-handler.md +0 -146
  425. package/.codex/skills/team-arch-opt/agents/plan-reviewer.md +0 -150
  426. package/.codex/skills/team-arch-opt/instructions/agent-instruction.md +0 -114
  427. package/.codex/skills/team-arch-opt/schemas/tasks-schema.md +0 -174
  428. package/.codex/skills/team-brainstorm/agents/gc-controller.md +0 -122
  429. package/.codex/skills/team-brainstorm/agents/topic-clarifier.md +0 -126
  430. package/.codex/skills/team-brainstorm/instructions/agent-instruction.md +0 -105
  431. package/.codex/skills/team-brainstorm/schemas/tasks-schema.md +0 -171
  432. package/.codex/skills/team-coordinate/agents/completion-handler.md +0 -127
  433. package/.codex/skills/team-coordinate/agents/plan-reviewer.md +0 -145
  434. package/.codex/skills/team-coordinate/instructions/agent-instruction.md +0 -184
  435. package/.codex/skills/team-coordinate/schemas/tasks-schema.md +0 -165
  436. package/.codex/skills/team-designer/agents/requirement-clarifier.md +0 -247
  437. package/.codex/skills/team-designer/agents/validation-reporter.md +0 -186
  438. package/.codex/skills/team-designer/instructions/agent-instruction.md +0 -163
  439. package/.codex/skills/team-designer/schemas/tasks-schema.md +0 -180
  440. package/.codex/skills/team-executor/instructions/agent-instruction.md +0 -62
  441. package/.codex/skills/team-executor/schemas/tasks-schema.md +0 -141
  442. package/.codex/skills/team-frontend/agents/completion-handler.md +0 -131
  443. package/.codex/skills/team-frontend/agents/qa-gate-reviewer.md +0 -153
  444. package/.codex/skills/team-frontend/instructions/agent-instruction.md +0 -197
  445. package/.codex/skills/team-frontend/schemas/tasks-schema.md +0 -188
  446. package/.codex/skills/team-frontend-debug/agents/completion-handler.md +0 -142
  447. package/.codex/skills/team-frontend-debug/agents/conditional-skip-gate.md +0 -130
  448. package/.codex/skills/team-frontend-debug/agents/iteration-handler.md +0 -120
  449. package/.codex/skills/team-frontend-debug/instructions/agent-instruction.md +0 -272
  450. package/.codex/skills/team-frontend-debug/schemas/tasks-schema.md +0 -198
  451. package/.codex/skills/team-issue/agents/reviewer.md +0 -204
  452. package/.codex/skills/team-issue/instructions/agent-instruction.md +0 -198
  453. package/.codex/skills/team-issue/schemas/tasks-schema.md +0 -198
  454. package/.codex/skills/team-iterdev/agents/gc-controller.md +0 -193
  455. package/.codex/skills/team-iterdev/agents/task-analyzer.md +0 -206
  456. package/.codex/skills/team-iterdev/instructions/agent-instruction.md +0 -118
  457. package/.codex/skills/team-iterdev/schemas/tasks-schema.md +0 -174
  458. package/.codex/skills/team-lifecycle/SKILL.md +0 -906
  459. package/.codex/skills/team-lifecycle/agents/analyst.md +0 -424
  460. package/.codex/skills/team-lifecycle/agents/architect.md +0 -274
  461. package/.codex/skills/team-lifecycle/agents/discuss-agent.md +0 -422
  462. package/.codex/skills/team-lifecycle/agents/executor.md +0 -423
  463. package/.codex/skills/team-lifecycle/agents/explore-agent.md +0 -471
  464. package/.codex/skills/team-lifecycle/agents/fe-developer.md +0 -239
  465. package/.codex/skills/team-lifecycle/agents/fe-qa.md +0 -357
  466. package/.codex/skills/team-lifecycle/agents/planner.md +0 -437
  467. package/.codex/skills/team-lifecycle/agents/reviewer.md +0 -483
  468. package/.codex/skills/team-lifecycle/agents/tester.md +0 -423
  469. package/.codex/skills/team-lifecycle/agents/writer.md +0 -502
  470. package/.codex/skills/team-lifecycle/phases/01-requirement-clarification.md +0 -209
  471. package/.codex/skills/team-lifecycle/phases/02-team-initialization.md +0 -263
  472. package/.codex/skills/team-lifecycle/phases/03-task-chain-creation.md +0 -251
  473. package/.codex/skills/team-lifecycle/phases/04-pipeline-coordination.md +0 -831
  474. package/.codex/skills/team-lifecycle/phases/05-completion-report.md +0 -309
  475. package/.codex/skills/team-lifecycle/specs/document-standards.md +0 -192
  476. package/.codex/skills/team-lifecycle/specs/quality-gates.md +0 -207
  477. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +0 -165
  478. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +0 -163
  479. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +0 -182
  480. package/.codex/skills/team-perf-opt/agents/completion-handler.md +0 -141
  481. package/.codex/skills/team-perf-opt/agents/fix-cycle-handler.md +0 -156
  482. package/.codex/skills/team-perf-opt/agents/plan-reviewer.md +0 -150
  483. package/.codex/skills/team-perf-opt/instructions/agent-instruction.md +0 -122
  484. package/.codex/skills/team-perf-opt/schemas/tasks-schema.md +0 -174
  485. package/.codex/skills/team-planex/instructions/agent-instruction.md +0 -301
  486. package/.codex/skills/team-planex/schemas/tasks-schema.md +0 -198
  487. package/.codex/skills/team-planex-v2/SKILL.md +0 -652
  488. package/.codex/skills/team-planex-v2/instructions/agent-instruction.md +0 -193
  489. package/.codex/skills/team-planex-v2/schemas/tasks-schema.md +0 -206
  490. package/.codex/skills/team-quality-assurance/agents/executor.md +0 -192
  491. package/.codex/skills/team-quality-assurance/agents/gc-loop-handler.md +0 -163
  492. package/.codex/skills/team-quality-assurance/instructions/agent-instruction.md +0 -185
  493. package/.codex/skills/team-quality-assurance/schemas/tasks-schema.md +0 -190
  494. package/.codex/skills/team-review/agents/fixer.md +0 -360
  495. package/.codex/skills/team-review/instructions/agent-instruction.md +0 -102
  496. package/.codex/skills/team-review/schemas/tasks-schema.md +0 -143
  497. package/.codex/skills/team-roadmap-dev/agents/roadmap-discusser.md +0 -176
  498. package/.codex/skills/team-roadmap-dev/agents/roadmap-planner.md +0 -194
  499. package/.codex/skills/team-roadmap-dev/agents/roadmap-verifier.md +0 -221
  500. package/.codex/skills/team-roadmap-dev/instructions/executor-instruction.md +0 -55
  501. package/.codex/skills/team-roadmap-dev/schemas/tasks-schema.md +0 -144
  502. package/.codex/skills/team-tech-debt/agents/gc-loop-manager.md +0 -130
  503. package/.codex/skills/team-tech-debt/agents/plan-approver.md +0 -151
  504. package/.codex/skills/team-tech-debt/instructions/agent-instruction.md +0 -390
  505. package/.codex/skills/team-tech-debt/schemas/tasks-schema.md +0 -196
  506. package/.codex/skills/team-testing/agents/executor.md +0 -195
  507. package/.codex/skills/team-testing/agents/gc-loop-handler.md +0 -155
  508. package/.codex/skills/team-testing/instructions/agent-instruction.md +0 -142
  509. package/.codex/skills/team-testing/schemas/tasks-schema.md +0 -172
  510. package/.codex/skills/team-uidesign/agents/completion-handler.md +0 -177
  511. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +0 -162
  512. package/.codex/skills/team-uidesign/instructions/agent-instruction.md +0 -509
  513. package/.codex/skills/team-uidesign/schemas/tasks-schema.md +0 -187
  514. package/.codex/skills/team-ultra-analyze/agents/discussion-feedback.md +0 -155
  515. package/.codex/skills/team-ultra-analyze/agents/topic-analyzer.md +0 -153
  516. package/.codex/skills/team-ultra-analyze/instructions/agent-instruction.md +0 -169
  517. package/.codex/skills/team-ultra-analyze/schemas/tasks-schema.md +0 -180
  518. package/.codex/skills/team-ux-improve/agents/ux-designer.md +0 -136
  519. package/.codex/skills/team-ux-improve/agents/ux-explorer.md +0 -158
  520. package/.codex/skills/team-ux-improve/agents/ux-tester.md +0 -174
  521. package/.codex/skills/team-ux-improve/instructions/ux-worker-instruction.md +0 -55
  522. package/.codex/skills/team-ux-improve/schemas/tasks-schema.md +0 -87
  523. /package/.codex/skills/{team-lifecycle/templates/architecture-doc.md → team-lifecycle-v4/templates/architecture.md} +0 -0
  524. /package/.codex/skills/{team-lifecycle/templates/epics-template.md → team-lifecycle-v4/templates/epics.md} +0 -0
  525. /package/.codex/skills/{team-lifecycle → team-lifecycle-v4}/templates/product-brief.md +0 -0
  526. /package/.codex/skills/{team-lifecycle/templates/requirements-prd.md → team-lifecycle-v4/templates/requirements.md} +0 -0
@@ -1,7 +1,7 @@
1
- import{O as a,u as d,j as e,aP as n,c as s}from"./index-dWT2M6Ef.js";import{C as i}from"./cpu-CCQ4Q0Zh.js";/**
1
+ import{O as a,u as d,j as e,aP as n,c as s}from"./index-C5Oqx2xI.js";import{C as i}from"./cpu-CzNmuTZD.js";/**
2
2
  * @license lucide-react v0.460.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
6
  */const c=a("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);function u({currentMode:r,onModeChange:t}){const{formatMessage:o}=d();return e.jsxs("div",{className:"inline-flex items-center rounded-full border border-border bg-muted/50 p-0.5",children:[e.jsxs("button",{onClick:()=>t("claude"),className:s("inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all",r==="claude"?"bg-primary text-primary-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[e.jsx(n,{className:"w-3.5 h-3.5"}),o({id:"mcp.mode.claude"})]}),e.jsxs("button",{onClick:()=>t("codex"),className:s("inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all",r==="codex"?"bg-primary text-primary-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[e.jsx(i,{className:"w-3.5 h-3.5"}),o({id:"mcp.mode.codex"})]})]})}export{u as C,c as L};
7
- //# sourceMappingURL=CliModeToggle-Dq3nL4fF.js.map
7
+ //# sourceMappingURL=CliModeToggle-BqUadHn3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CliModeToggle-Dq3nL4fF.js","sources":["../../../../node_modules/lucide-react/dist/esm/icons/lock.js","../../src/components/mcp/CliModeToggle.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Lock = createLucideIcon(\"Lock\", [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n]);\n\nexport { Lock as default };\n//# sourceMappingURL=lock.js.map\n","// ========================================\r\n// CLI Mode Toggle Component\r\n// ========================================\r\n// Compact badge-style toggle between Claude and Codex CLI modes\r\n\r\nimport { useIntl } from 'react-intl';\r\nimport { Terminal, Cpu } from 'lucide-react';\r\nimport { cn } from '@/lib/utils';\r\n\r\n// ========== Types ==========\r\n\r\nexport type CliMode = 'claude' | 'codex';\r\n\r\nexport interface CliModeToggleProps {\r\n currentMode: CliMode;\r\n onModeChange: (mode: CliMode) => void;\r\n codexConfigPath?: string;\r\n}\r\n\r\n// ========== Component ==========\r\n\r\nexport function CliModeToggle({\r\n currentMode,\r\n onModeChange,\r\n}: CliModeToggleProps) {\r\n const { formatMessage } = useIntl();\r\n\r\n return (\r\n <div className=\"inline-flex items-center rounded-full border border-border bg-muted/50 p-0.5\">\r\n <button\r\n onClick={() => onModeChange('claude')}\r\n className={cn(\r\n 'inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all',\r\n currentMode === 'claude'\r\n ? 'bg-primary text-primary-foreground shadow-sm'\r\n : 'text-muted-foreground hover:text-foreground'\r\n )}\r\n >\r\n <Terminal className=\"w-3.5 h-3.5\" />\r\n {formatMessage({ id: 'mcp.mode.claude' })}\r\n </button>\r\n <button\r\n onClick={() => onModeChange('codex')}\r\n className={cn(\r\n 'inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all',\r\n currentMode === 'codex'\r\n ? 'bg-primary text-primary-foreground shadow-sm'\r\n : 'text-muted-foreground hover:text-foreground'\r\n )}\r\n >\r\n <Cpu className=\"w-3.5 h-3.5\" />\r\n {formatMessage({ id: 'mcp.mode.codex' })}\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default CliModeToggle;\r\n"],"names":["Lock","createLucideIcon","CliModeToggle","currentMode","onModeChange","formatMessage","useIntl","jsxs","cn","jsx","Terminal","Cpu"],"mappings":"2GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,SAAU,EACxF,CAAC,OAAQ,CAAE,EAAG,2BAA4B,IAAK,QAAQ,CAAE,CAC3D,CAAC,ECSM,SAASC,EAAc,CAC5B,YAAAC,EACA,aAAAC,CACF,EAAuB,CACrB,KAAM,CAAE,cAAAC,CAAA,EAAkBC,EAAA,EAE1B,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,+EACb,SAAA,CAAAA,EAAAA,KAAC,SAAA,CACC,QAAS,IAAMH,EAAa,QAAQ,EACpC,UAAWI,EACT,6FACAL,IAAgB,SACZ,+CACA,6CAAA,EAGN,SAAA,CAAAM,EAAAA,IAACC,EAAA,CAAS,UAAU,aAAA,CAAc,EACjCL,EAAc,CAAE,GAAI,iBAAA,CAAmB,CAAA,CAAA,CAAA,EAE1CE,EAAAA,KAAC,SAAA,CACC,QAAS,IAAMH,EAAa,OAAO,EACnC,UAAWI,EACT,6FACAL,IAAgB,QACZ,+CACA,6CAAA,EAGN,SAAA,CAAAM,EAAAA,IAACE,EAAA,CAAI,UAAU,aAAA,CAAc,EAC5BN,EAAc,CAAE,GAAI,gBAAA,CAAkB,CAAA,CAAA,CAAA,CACzC,EACF,CAEJ","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"CliModeToggle-BqUadHn3.js","sources":["../../../../node_modules/lucide-react/dist/esm/icons/lock.js","../../src/components/mcp/CliModeToggle.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Lock = createLucideIcon(\"Lock\", [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n]);\n\nexport { Lock as default };\n//# sourceMappingURL=lock.js.map\n","// ========================================\r\n// CLI Mode Toggle Component\r\n// ========================================\r\n// Compact badge-style toggle between Claude and Codex CLI modes\r\n\r\nimport { useIntl } from 'react-intl';\r\nimport { Terminal, Cpu } from 'lucide-react';\r\nimport { cn } from '@/lib/utils';\r\n\r\n// ========== Types ==========\r\n\r\nexport type CliMode = 'claude' | 'codex';\r\n\r\nexport interface CliModeToggleProps {\r\n currentMode: CliMode;\r\n onModeChange: (mode: CliMode) => void;\r\n codexConfigPath?: string;\r\n}\r\n\r\n// ========== Component ==========\r\n\r\nexport function CliModeToggle({\r\n currentMode,\r\n onModeChange,\r\n}: CliModeToggleProps) {\r\n const { formatMessage } = useIntl();\r\n\r\n return (\r\n <div className=\"inline-flex items-center rounded-full border border-border bg-muted/50 p-0.5\">\r\n <button\r\n onClick={() => onModeChange('claude')}\r\n className={cn(\r\n 'inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all',\r\n currentMode === 'claude'\r\n ? 'bg-primary text-primary-foreground shadow-sm'\r\n : 'text-muted-foreground hover:text-foreground'\r\n )}\r\n >\r\n <Terminal className=\"w-3.5 h-3.5\" />\r\n {formatMessage({ id: 'mcp.mode.claude' })}\r\n </button>\r\n <button\r\n onClick={() => onModeChange('codex')}\r\n className={cn(\r\n 'inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all',\r\n currentMode === 'codex'\r\n ? 'bg-primary text-primary-foreground shadow-sm'\r\n : 'text-muted-foreground hover:text-foreground'\r\n )}\r\n >\r\n <Cpu className=\"w-3.5 h-3.5\" />\r\n {formatMessage({ id: 'mcp.mode.codex' })}\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default CliModeToggle;\r\n"],"names":["Lock","createLucideIcon","CliModeToggle","currentMode","onModeChange","formatMessage","useIntl","jsxs","cn","jsx","Terminal","Cpu"],"mappings":"2GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,SAAU,EACxF,CAAC,OAAQ,CAAE,EAAG,2BAA4B,IAAK,QAAQ,CAAE,CAC3D,CAAC,ECSM,SAASC,EAAc,CAC5B,YAAAC,EACA,aAAAC,CACF,EAAuB,CACrB,KAAM,CAAE,cAAAC,CAAA,EAAkBC,EAAA,EAE1B,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,+EACb,SAAA,CAAAA,EAAAA,KAAC,SAAA,CACC,QAAS,IAAMH,EAAa,QAAQ,EACpC,UAAWI,EACT,6FACAL,IAAgB,SACZ,+CACA,6CAAA,EAGN,SAAA,CAAAM,EAAAA,IAACC,EAAA,CAAS,UAAU,aAAA,CAAc,EACjCL,EAAc,CAAE,GAAI,iBAAA,CAAmB,CAAA,CAAA,CAAA,EAE1CE,EAAAA,KAAC,SAAA,CACC,QAAS,IAAMH,EAAa,OAAO,EACnC,UAAWI,EACT,6FACAL,IAAgB,QACZ,+CACA,6CAAA,EAGN,SAAA,CAAAM,EAAAA,IAACE,EAAA,CAAI,UAAU,aAAA,CAAc,EAC5BN,EAAc,CAAE,GAAI,gBAAA,CAAkB,CAAA,CAAA,CAAA,CACzC,EACF,CAEJ","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{u as R,bs as k,r as t,ee as M,ef as B,j as e,B as x,cK as A,e as L,am as P,C as y,I as O,c as T}from"./index-dWT2M6Ef.js";function U(n,d){const c=`/api/cli-sessions/${encodeURIComponent(n)}/stream`,o=new URLSearchParams({shareToken:d,includeBuffer:"1"});return`${c}?${o.toString()}`}function I(){const{formatMessage:n}=R(),[d]=k(),c=d.get("sessionKey")??"",o=d.get("shareToken")??"",l=t.useMemo(()=>typeof window<"u"?window.location.href:"",[]),[v,i]=t.useState("idle"),[j,b]=t.useState(null),u=t.useRef(null),m=t.useRef(null),p=t.useRef(null);t.useEffect(()=>{if(!u.current||m.current)return;const s=new M.Terminal({convertEol:!0,cursorBlink:!1,disableStdin:!0,fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',fontSize:12,scrollback:1e4}),r=new B.FitAddon;return s.loadAddon(r),s.open(u.current),r.fit(),m.current=s,p.current=r,()=>{try{s.dispose()}finally{m.current=null,p.current=null}}},[]),t.useEffect(()=>{const s=u.current,r=p.current;if(!s||!r)return;const a=new ResizeObserver(()=>r.fit());return a.observe(s),()=>a.disconnect()},[]),t.useEffect(()=>{const s=m.current;if(!s)return;if(!c||!o){i("error"),b(n({id:"issues.terminal.share.missingParams"}));return}b(null),i("connecting");const r=U(c,o),a=new EventSource(r);let f=!1;const S=g=>{try{const h=JSON.parse(g.data);s.reset(),s.clear(),s.write(h.buffer||""),f=!0,i("connected")}catch{}},E=g=>{try{const h=JSON.parse(g.data);typeof h.data=="string"&&s.write(h.data),f||(f=!0,i("connected"))}catch{}},C=()=>{i(f?"reconnecting":"connecting")};return a.addEventListener("buffer",S),a.addEventListener("output",E),a.onerror=C,()=>{try{a.close()}catch{}}},[n,c,o]);const w=t.useMemo(()=>{switch(v){case"connected":return e.jsx(x,{variant:"success",children:n({id:"issues.terminal.share.connected"})});case"reconnecting":case"connecting":return e.jsx(x,{variant:"secondary",children:n({id:"issues.terminal.share.connecting"})});case"error":return e.jsx(x,{variant:"destructive",children:n({id:"issues.terminal.share.error"})});default:return e.jsx(x,{variant:"secondary",children:"—"})}},[v,n]),N=async()=>{if(l)try{await navigator.clipboard.writeText(l)}catch{}};return e.jsx("div",{className:"min-h-screen bg-background p-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h1",{className:"text-lg font-semibold text-foreground truncate",children:n({id:"issues.terminal.share.pageTitle"})}),w]}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground font-mono truncate",children:c||"—"})]}),e.jsx("div",{className:"flex items-center gap-2 shrink-0",children:e.jsxs(L,{variant:"outline",onClick:N,disabled:!l,children:[e.jsx(P,{className:"w-4 h-4 mr-2"}),n({id:"common.actions.copy"})]})})]}),j&&e.jsx(y,{className:"p-4 border-destructive/50 bg-destructive/5",children:e.jsx("div",{className:"text-sm text-destructive",children:j})}),e.jsxs(y,{className:"p-3 space-y-2",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:n({id:"issues.terminal.share.linkLabel"})}),e.jsx(O,{value:l,readOnly:!0})]}),e.jsx("div",{className:T("rounded-md border border-border bg-black/90 overflow-hidden"),children:e.jsx("div",{ref:u,className:"h-[70vh] w-full"})})]})})}export{I as CliSessionSharePage,I as default};
2
- //# sourceMappingURL=CliSessionSharePage-BNDkEE4u.js.map
1
+ import{u as R,bs as k,r as t,ee as M,ef as B,j as e,B as x,cK as A,e as L,am as P,C as y,I as O,c as T}from"./index-C5Oqx2xI.js";function U(n,d){const c=`/api/cli-sessions/${encodeURIComponent(n)}/stream`,o=new URLSearchParams({shareToken:d,includeBuffer:"1"});return`${c}?${o.toString()}`}function I(){const{formatMessage:n}=R(),[d]=k(),c=d.get("sessionKey")??"",o=d.get("shareToken")??"",l=t.useMemo(()=>typeof window<"u"?window.location.href:"",[]),[v,i]=t.useState("idle"),[j,b]=t.useState(null),u=t.useRef(null),m=t.useRef(null),p=t.useRef(null);t.useEffect(()=>{if(!u.current||m.current)return;const s=new M.Terminal({convertEol:!0,cursorBlink:!1,disableStdin:!0,fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',fontSize:12,scrollback:1e4}),r=new B.FitAddon;return s.loadAddon(r),s.open(u.current),r.fit(),m.current=s,p.current=r,()=>{try{s.dispose()}finally{m.current=null,p.current=null}}},[]),t.useEffect(()=>{const s=u.current,r=p.current;if(!s||!r)return;const a=new ResizeObserver(()=>r.fit());return a.observe(s),()=>a.disconnect()},[]),t.useEffect(()=>{const s=m.current;if(!s)return;if(!c||!o){i("error"),b(n({id:"issues.terminal.share.missingParams"}));return}b(null),i("connecting");const r=U(c,o),a=new EventSource(r);let f=!1;const S=g=>{try{const h=JSON.parse(g.data);s.reset(),s.clear(),s.write(h.buffer||""),f=!0,i("connected")}catch{}},E=g=>{try{const h=JSON.parse(g.data);typeof h.data=="string"&&s.write(h.data),f||(f=!0,i("connected"))}catch{}},C=()=>{i(f?"reconnecting":"connecting")};return a.addEventListener("buffer",S),a.addEventListener("output",E),a.onerror=C,()=>{try{a.close()}catch{}}},[n,c,o]);const w=t.useMemo(()=>{switch(v){case"connected":return e.jsx(x,{variant:"success",children:n({id:"issues.terminal.share.connected"})});case"reconnecting":case"connecting":return e.jsx(x,{variant:"secondary",children:n({id:"issues.terminal.share.connecting"})});case"error":return e.jsx(x,{variant:"destructive",children:n({id:"issues.terminal.share.error"})});default:return e.jsx(x,{variant:"secondary",children:"—"})}},[v,n]),N=async()=>{if(l)try{await navigator.clipboard.writeText(l)}catch{}};return e.jsx("div",{className:"min-h-screen bg-background p-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h1",{className:"text-lg font-semibold text-foreground truncate",children:n({id:"issues.terminal.share.pageTitle"})}),w]}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground font-mono truncate",children:c||"—"})]}),e.jsx("div",{className:"flex items-center gap-2 shrink-0",children:e.jsxs(L,{variant:"outline",onClick:N,disabled:!l,children:[e.jsx(P,{className:"w-4 h-4 mr-2"}),n({id:"common.actions.copy"})]})})]}),j&&e.jsx(y,{className:"p-4 border-destructive/50 bg-destructive/5",children:e.jsx("div",{className:"text-sm text-destructive",children:j})}),e.jsxs(y,{className:"p-3 space-y-2",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:n({id:"issues.terminal.share.linkLabel"})}),e.jsx(O,{value:l,readOnly:!0})]}),e.jsx("div",{className:T("rounded-md border border-border bg-black/90 overflow-hidden"),children:e.jsx("div",{ref:u,className:"h-[70vh] w-full"})})]})})}export{I as CliSessionSharePage,I as default};
2
+ //# sourceMappingURL=CliSessionSharePage-C3AdsDkm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CliSessionSharePage-BNDkEE4u.js","sources":["../../src/pages/CliSessionSharePage.tsx"],"sourcesContent":["// ========================================\n// CLI Session Share Page\n// ========================================\n// Read-only viewer for a PTY-backed CLI session using SSE + shareToken.\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useSearchParams } from 'react-router-dom';\nimport { Terminal as XTerm } from 'xterm';\nimport { FitAddon } from 'xterm-addon-fit';\nimport { Copy, Monitor } from 'lucide-react';\nimport { Button } from '@/components/ui/Button';\nimport { Card } from '@/components/ui/Card';\nimport { Badge } from '@/components/ui/Badge';\nimport { Input } from '@/components/ui/Input';\nimport { cn } from '@/lib/utils';\n\ntype ConnectionState = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'error';\n\nfunction buildStreamUrl(sessionKey: string, shareToken: string): string {\n const apiPath = `/api/cli-sessions/${encodeURIComponent(sessionKey)}/stream`;\n const params = new URLSearchParams({\n shareToken,\n includeBuffer: '1',\n });\n return `${apiPath}?${params.toString()}`;\n}\n\nexport function CliSessionSharePage() {\n const { formatMessage } = useIntl();\n const [searchParams] = useSearchParams();\n\n const sessionKey = searchParams.get('sessionKey') ?? '';\n const shareToken = searchParams.get('shareToken') ?? '';\n\n const shareUrl = useMemo(() => (typeof window !== 'undefined' ? window.location.href : ''), []);\n\n const [connection, setConnection] = useState<ConnectionState>('idle');\n const [error, setError] = useState<string | null>(null);\n\n const terminalHostRef = useRef<HTMLDivElement | null>(null);\n const xtermRef = useRef<XTerm | null>(null);\n const fitAddonRef = useRef<FitAddon | null>(null);\n\n // Init xterm\n useEffect(() => {\n if (!terminalHostRef.current) return;\n if (xtermRef.current) return;\n\n const term = new XTerm({\n convertEol: true,\n cursorBlink: false,\n disableStdin: true,\n fontFamily:\n 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n fontSize: 12,\n scrollback: 10_000,\n });\n const fitAddon = new FitAddon();\n term.loadAddon(fitAddon);\n term.open(terminalHostRef.current);\n fitAddon.fit();\n\n xtermRef.current = term;\n fitAddonRef.current = fitAddon;\n\n return () => {\n try {\n term.dispose();\n } finally {\n xtermRef.current = null;\n fitAddonRef.current = null;\n }\n };\n }, []);\n\n // Resize observer -> fit\n useEffect(() => {\n const host = terminalHostRef.current;\n const fitAddon = fitAddonRef.current;\n if (!host || !fitAddon) return;\n\n const ro = new ResizeObserver(() => fitAddon.fit());\n ro.observe(host);\n return () => ro.disconnect();\n }, []);\n\n // Connect SSE\n useEffect(() => {\n const term = xtermRef.current;\n if (!term) return;\n\n if (!sessionKey || !shareToken) {\n setConnection('error');\n setError(formatMessage({ id: 'issues.terminal.share.missingParams' }));\n return;\n }\n\n setError(null);\n setConnection('connecting');\n\n const streamUrl = buildStreamUrl(sessionKey, shareToken);\n const es = new EventSource(streamUrl);\n\n let hasConnected = false;\n\n const onBuffer = (event: MessageEvent) => {\n try {\n const payload = JSON.parse(event.data) as { buffer?: string };\n term.reset();\n term.clear();\n term.write(payload.buffer || '');\n hasConnected = true;\n setConnection('connected');\n } catch {\n // ignore parse errors\n }\n };\n\n const onOutput = (event: MessageEvent) => {\n try {\n const payload = JSON.parse(event.data) as { data?: string };\n if (typeof payload.data === 'string') {\n term.write(payload.data);\n }\n if (!hasConnected) {\n hasConnected = true;\n setConnection('connected');\n }\n } catch {\n // ignore parse errors\n }\n };\n\n const onError = () => {\n setConnection(hasConnected ? 'reconnecting' : 'connecting');\n };\n\n es.addEventListener('buffer', onBuffer as any);\n es.addEventListener('output', onOutput as any);\n es.onerror = onError;\n\n return () => {\n try {\n es.close();\n } catch {\n // ignore\n }\n };\n }, [formatMessage, sessionKey, shareToken]);\n\n const connectionBadge = useMemo(() => {\n switch (connection) {\n case 'connected':\n return <Badge variant=\"success\">{formatMessage({ id: 'issues.terminal.share.connected' })}</Badge>;\n case 'reconnecting':\n case 'connecting':\n return <Badge variant=\"secondary\">{formatMessage({ id: 'issues.terminal.share.connecting' })}</Badge>;\n case 'error':\n return <Badge variant=\"destructive\">{formatMessage({ id: 'issues.terminal.share.error' })}</Badge>;\n default:\n return <Badge variant=\"secondary\">—</Badge>;\n }\n }, [connection, formatMessage]);\n\n const handleCopyLink = async () => {\n if (!shareUrl) return;\n try {\n await navigator.clipboard.writeText(shareUrl);\n } catch {\n // ignore\n }\n };\n\n return (\n <div className=\"min-h-screen bg-background p-6\">\n <div className=\"max-w-5xl mx-auto space-y-4\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <Monitor className=\"w-5 h-5 text-muted-foreground\" />\n <h1 className=\"text-lg font-semibold text-foreground truncate\">\n {formatMessage({ id: 'issues.terminal.share.pageTitle' })}\n </h1>\n {connectionBadge}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground font-mono truncate\">\n {sessionKey || '—'}\n </div>\n </div>\n\n <div className=\"flex items-center gap-2 shrink-0\">\n <Button variant=\"outline\" onClick={handleCopyLink} disabled={!shareUrl}>\n <Copy className=\"w-4 h-4 mr-2\" />\n {formatMessage({ id: 'common.actions.copy' })}\n </Button>\n </div>\n </div>\n\n {error && (\n <Card className=\"p-4 border-destructive/50 bg-destructive/5\">\n <div className=\"text-sm text-destructive\">{error}</div>\n </Card>\n )}\n\n <Card className=\"p-3 space-y-2\">\n <div className=\"text-xs text-muted-foreground\">{formatMessage({ id: 'issues.terminal.share.linkLabel' })}</div>\n <Input value={shareUrl} readOnly />\n </Card>\n\n <div className={cn('rounded-md border border-border bg-black/90 overflow-hidden')}>\n <div ref={terminalHostRef} className=\"h-[70vh] w-full\" />\n </div>\n </div>\n </div>\n );\n}\n\nexport default CliSessionSharePage;\n"],"names":["buildStreamUrl","sessionKey","shareToken","apiPath","params","CliSessionSharePage","formatMessage","useIntl","searchParams","useSearchParams","shareUrl","useMemo","connection","setConnection","useState","error","setError","terminalHostRef","useRef","xtermRef","fitAddonRef","useEffect","term","XTerm","fitAddon","FitAddon","host","ro","streamUrl","es","hasConnected","onBuffer","event","payload","onOutput","onError","connectionBadge","jsx","Badge","handleCopyLink","jsxs","Monitor","Button","Copy","Card","Input","cn"],"mappings":"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"}
1
+ {"version":3,"file":"CliSessionSharePage-C3AdsDkm.js","sources":["../../src/pages/CliSessionSharePage.tsx"],"sourcesContent":["// ========================================\n// CLI Session Share Page\n// ========================================\n// Read-only viewer for a PTY-backed CLI session using SSE + shareToken.\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useSearchParams } from 'react-router-dom';\nimport { Terminal as XTerm } from 'xterm';\nimport { FitAddon } from 'xterm-addon-fit';\nimport { Copy, Monitor } from 'lucide-react';\nimport { Button } from '@/components/ui/Button';\nimport { Card } from '@/components/ui/Card';\nimport { Badge } from '@/components/ui/Badge';\nimport { Input } from '@/components/ui/Input';\nimport { cn } from '@/lib/utils';\n\ntype ConnectionState = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'error';\n\nfunction buildStreamUrl(sessionKey: string, shareToken: string): string {\n const apiPath = `/api/cli-sessions/${encodeURIComponent(sessionKey)}/stream`;\n const params = new URLSearchParams({\n shareToken,\n includeBuffer: '1',\n });\n return `${apiPath}?${params.toString()}`;\n}\n\nexport function CliSessionSharePage() {\n const { formatMessage } = useIntl();\n const [searchParams] = useSearchParams();\n\n const sessionKey = searchParams.get('sessionKey') ?? '';\n const shareToken = searchParams.get('shareToken') ?? '';\n\n const shareUrl = useMemo(() => (typeof window !== 'undefined' ? window.location.href : ''), []);\n\n const [connection, setConnection] = useState<ConnectionState>('idle');\n const [error, setError] = useState<string | null>(null);\n\n const terminalHostRef = useRef<HTMLDivElement | null>(null);\n const xtermRef = useRef<XTerm | null>(null);\n const fitAddonRef = useRef<FitAddon | null>(null);\n\n // Init xterm\n useEffect(() => {\n if (!terminalHostRef.current) return;\n if (xtermRef.current) return;\n\n const term = new XTerm({\n convertEol: true,\n cursorBlink: false,\n disableStdin: true,\n fontFamily:\n 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n fontSize: 12,\n scrollback: 10_000,\n });\n const fitAddon = new FitAddon();\n term.loadAddon(fitAddon);\n term.open(terminalHostRef.current);\n fitAddon.fit();\n\n xtermRef.current = term;\n fitAddonRef.current = fitAddon;\n\n return () => {\n try {\n term.dispose();\n } finally {\n xtermRef.current = null;\n fitAddonRef.current = null;\n }\n };\n }, []);\n\n // Resize observer -> fit\n useEffect(() => {\n const host = terminalHostRef.current;\n const fitAddon = fitAddonRef.current;\n if (!host || !fitAddon) return;\n\n const ro = new ResizeObserver(() => fitAddon.fit());\n ro.observe(host);\n return () => ro.disconnect();\n }, []);\n\n // Connect SSE\n useEffect(() => {\n const term = xtermRef.current;\n if (!term) return;\n\n if (!sessionKey || !shareToken) {\n setConnection('error');\n setError(formatMessage({ id: 'issues.terminal.share.missingParams' }));\n return;\n }\n\n setError(null);\n setConnection('connecting');\n\n const streamUrl = buildStreamUrl(sessionKey, shareToken);\n const es = new EventSource(streamUrl);\n\n let hasConnected = false;\n\n const onBuffer = (event: MessageEvent) => {\n try {\n const payload = JSON.parse(event.data) as { buffer?: string };\n term.reset();\n term.clear();\n term.write(payload.buffer || '');\n hasConnected = true;\n setConnection('connected');\n } catch {\n // ignore parse errors\n }\n };\n\n const onOutput = (event: MessageEvent) => {\n try {\n const payload = JSON.parse(event.data) as { data?: string };\n if (typeof payload.data === 'string') {\n term.write(payload.data);\n }\n if (!hasConnected) {\n hasConnected = true;\n setConnection('connected');\n }\n } catch {\n // ignore parse errors\n }\n };\n\n const onError = () => {\n setConnection(hasConnected ? 'reconnecting' : 'connecting');\n };\n\n es.addEventListener('buffer', onBuffer as any);\n es.addEventListener('output', onOutput as any);\n es.onerror = onError;\n\n return () => {\n try {\n es.close();\n } catch {\n // ignore\n }\n };\n }, [formatMessage, sessionKey, shareToken]);\n\n const connectionBadge = useMemo(() => {\n switch (connection) {\n case 'connected':\n return <Badge variant=\"success\">{formatMessage({ id: 'issues.terminal.share.connected' })}</Badge>;\n case 'reconnecting':\n case 'connecting':\n return <Badge variant=\"secondary\">{formatMessage({ id: 'issues.terminal.share.connecting' })}</Badge>;\n case 'error':\n return <Badge variant=\"destructive\">{formatMessage({ id: 'issues.terminal.share.error' })}</Badge>;\n default:\n return <Badge variant=\"secondary\">—</Badge>;\n }\n }, [connection, formatMessage]);\n\n const handleCopyLink = async () => {\n if (!shareUrl) return;\n try {\n await navigator.clipboard.writeText(shareUrl);\n } catch {\n // ignore\n }\n };\n\n return (\n <div className=\"min-h-screen bg-background p-6\">\n <div className=\"max-w-5xl mx-auto space-y-4\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <Monitor className=\"w-5 h-5 text-muted-foreground\" />\n <h1 className=\"text-lg font-semibold text-foreground truncate\">\n {formatMessage({ id: 'issues.terminal.share.pageTitle' })}\n </h1>\n {connectionBadge}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground font-mono truncate\">\n {sessionKey || '—'}\n </div>\n </div>\n\n <div className=\"flex items-center gap-2 shrink-0\">\n <Button variant=\"outline\" onClick={handleCopyLink} disabled={!shareUrl}>\n <Copy className=\"w-4 h-4 mr-2\" />\n {formatMessage({ id: 'common.actions.copy' })}\n </Button>\n </div>\n </div>\n\n {error && (\n <Card className=\"p-4 border-destructive/50 bg-destructive/5\">\n <div className=\"text-sm text-destructive\">{error}</div>\n </Card>\n )}\n\n <Card className=\"p-3 space-y-2\">\n <div className=\"text-xs text-muted-foreground\">{formatMessage({ id: 'issues.terminal.share.linkLabel' })}</div>\n <Input value={shareUrl} readOnly />\n </Card>\n\n <div className={cn('rounded-md border border-border bg-black/90 overflow-hidden')}>\n <div ref={terminalHostRef} className=\"h-[70vh] w-full\" />\n </div>\n </div>\n </div>\n );\n}\n\nexport default CliSessionSharePage;\n"],"names":["buildStreamUrl","sessionKey","shareToken","apiPath","params","CliSessionSharePage","formatMessage","useIntl","searchParams","useSearchParams","shareUrl","useMemo","connection","setConnection","useState","error","setError","terminalHostRef","useRef","xtermRef","fitAddonRef","useEffect","term","XTerm","fitAddon","FitAddon","host","ro","streamUrl","es","hasConnected","onBuffer","event","payload","onOutput","onError","connectionBadge","jsx","Badge","handleCopyLink","jsxs","Monitor","Button","Copy","Card","Input","cn"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{O as z,u as S,r as a,e3 as L,e4 as N,j as e,x as q,e5 as H,e as G,a7 as J,c as b,y as K,z as Q,A as Y,b as W,I as X,aP as M,K as me,k as he,N as R,l as Z,e6 as E,D as ee,d as te,f as se,g as A,h as re,X as ae,e7 as fe,e8 as ne,e9 as ge,ea as F,b7 as pe,eb as _,n as be,J as je,ec as we,cJ as ve,ap as Ne,v as ye,bs as ke,ed as Ce}from"./index-dWT2M6Ef.js";import{S as Me,a as Se,V as U,C as Te,R as De}from"./style-Dxs1iXCV.js";import{M as Ve}from"./index-Dmt9OiEf.js";import{L as Ee}from"./layout-grid-TSO0BFQE.js";import{M as Pe,a as Oe}from"./minimize-2-CGfBKD_V.js";import"./braces-BPgtyjsG.js";import"./index-anSMmEF8.js";/**
1
+ import{O as z,u as S,r as a,e3 as L,e4 as N,j as e,x as q,e5 as H,e as G,a7 as J,c as b,y as K,z as Q,A as Y,b as W,I as X,aP as M,K as me,k as he,N as R,l as Z,e6 as E,D as ee,d as te,f as se,g as A,h as re,X as ae,e7 as fe,e8 as ne,e9 as ge,ea as F,b7 as pe,eb as _,n as be,J as je,ec as we,cJ as ve,ap as Ne,v as ye,bs as ke,ed as Ce}from"./index-C5Oqx2xI.js";import{S as Me,a as Se,V as U,C as Te,R as De}from"./style-4bYpUGcc.js";import{M as Ve}from"./index-B_ysvdnP.js";import{L as Ee}from"./layout-grid-C38fQyLs.js";import{M as Pe,a as Oe}from"./minimize-2-B3ZNzfGr.js";import"./braces-BWhm2c4g.js";import"./index-CdQpo1x0.js";/**
2
2
  * @license lucide-react v0.460.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -19,4 +19,4 @@ import{O as z,u as S,r as a,e3 as L,e4 as N,j as e,x as q,e5 as H,e as G,a7 as J
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
21
  */const B=z("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),ze={running:{icon:R,color:"text-indigo-500",label:"Running"},completed:{icon:he,color:"text-emerald-500",label:"Completed"},error:{icon:me,color:"text-rose-500",label:"Error"}};function $e(t){const s=Date.now()-t;return s<6e4?"Just now":s<36e5?`${Math.floor(s/6e4)}m ago`:s<864e5?`${Math.floor(s/36e5)}h ago`:new Date(t).toLocaleDateString()}function oe(t,r){return`${r.tool}-${r.mode}`}function Re({executionId:t,execution:r,onSelect:s}){const d=ze[r.status],o=d.icon;return e.jsxs("button",{onClick:s,className:b("w-full flex items-center gap-3 p-3 rounded-lg","border border-border/50 bg-muted/30","hover:bg-muted/50 hover:border-border","transition-all duration-150","text-left"),children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-md bg-primary/10",children:e.jsx(M,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-sm text-foreground truncate",children:oe(t,r)}),e.jsx(o,{className:b("h-3.5 w-3.5 shrink-0",d.color,r.status==="running"&&"animate-spin")})]}),e.jsx("div",{className:"flex items-center gap-2 mt-0.5",children:e.jsx("span",{className:"text-xs text-muted-foreground truncate",children:t})})]}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground shrink-0",children:[e.jsx(Z,{className:"h-3 w-3"}),e.jsx("span",{children:$e(r.startTime)})]})]})}function Fe({paneId:t,className:r}){const{formatMessage:s}=S(),[d,o]=a.useState(!1),[i,u]=a.useState(""),m=L(n=>n.executions),j=N(n=>n.addTab),p=N(n=>n.panes),w=a.useMemo(()=>{const n=p[t];return n?new Set(n.tabs.map(l=>l.executionId)):new Set},[p,t]),y=a.useMemo(()=>{const l=Object.entries(m).filter(([f,x])=>{if(!i)return!0;const C=i.toLowerCase();return f.toLowerCase().includes(C)||x.tool.toLowerCase().includes(C)||x.mode.toLowerCase().includes(C)});return l.sort((f,x)=>x[1].startTime-f[1].startTime),l},[m,i]),h=a.useCallback((n,l)=>{const f=oe(n,l);j(t,n,f),o(!1),u("")},[t,j]),g=Object.keys(m).length,v=y.filter(([n])=>!w.has(n)).length;return e.jsxs(q,{open:d,onOpenChange:o,children:[e.jsx(H,{asChild:!0,children:e.jsx(G,{variant:"ghost",size:"icon",className:b("h-6 w-6 shrink-0",r),"aria-label":s({id:"cliViewer.tabs.addTab",defaultMessage:"Add tab"}),children:e.jsx(J,{className:"h-4 w-4"})})}),e.jsxs(K,{className:"sm:max-w-md",children:[e.jsx(Q,{children:e.jsx(Y,{children:s({id:"cliViewer.picker.selectExecution",defaultMessage:"Select Execution"})})}),e.jsxs("div",{className:"relative",children:[e.jsx(W,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(X,{placeholder:s({id:"cliViewer.picker.searchExecutions",defaultMessage:"Search executions..."}),value:i,onChange:n=>u(n.target.value),className:"pl-9"})]}),e.jsx("div",{className:"max-h-[300px] overflow-y-auto space-y-2",children:y.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(M,{className:"h-8 w-8 text-muted-foreground mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s(g===0?{id:"cliViewer.picker.noExecutions",defaultMessage:"No executions available"}:{id:"cliViewer.picker.noMatchingExecutions",defaultMessage:"No matching executions"})})]}):y.map(([n,l])=>{const f=w.has(n);return e.jsxs("div",{className:"relative",children:[e.jsx(Re,{executionId:n,execution:l,onSelect:()=>h(n,l)}),f&&e.jsx("div",{className:"absolute inset-0 bg-background/60 rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-xs text-muted-foreground bg-muted px-2 py-1 rounded",children:s({id:"cliViewer.picker.alreadyOpen",defaultMessage:"Already open"})})})]},n)})}),g>0&&e.jsx("div",{className:"text-xs text-muted-foreground text-center pt-2 border-t border-border/50",children:s({id:"cliViewer.picker.executionCount",defaultMessage:"{available} of {total} executions available"},{available:v,total:g})})]})]})}const _e={idle:"bg-slate-400 dark:bg-slate-500"},O="application/x-cli-viewer-tab";function Ue({tab:t,paneId:r,isActive:s,onSelect:d,onClose:o,onTogglePin:i}){const[u,m]=a.useState(!1),[j,p]=a.useState(!1),w=N(x=>x.moveTab),y=E(),h=a.useMemo(()=>t.title.split("-")[0]||t.title,[t.title]),g=a.useCallback(x=>{const C={tabId:t.id,sourcePaneId:r};x.dataTransfer.setData(O,JSON.stringify(C)),x.dataTransfer.effectAllowed="move",m(!0)},[t.id,r]),v=a.useCallback(()=>{m(!1)},[]),n=a.useCallback(x=>{x.dataTransfer.types.includes(O)&&(x.preventDefault(),x.dataTransfer.dropEffect="move",p(!0))},[]),l=a.useCallback(()=>{p(!1)},[]),f=a.useCallback(x=>{x.preventDefault(),p(!1);const C=x.dataTransfer.getData(O);if(C)try{const T=JSON.parse(C),{tabId:D,sourcePaneId:V}=T;if(D===t.id)return;const c=y[r];if(!c)return;const k=c.tabs.findIndex(P=>P.id===t.id);if(k===-1)return;w(V,D,r,k)}catch(T){console.error("[TabBar] Failed to parse drag data:",T)}},[t.id,r,y,w]);return e.jsxs("div",{role:"tab",tabIndex:0,draggable:!t.isPinned,onDragStart:g,onDragEnd:v,onDragOver:n,onDragLeave:l,onDrop:f,onClick:d,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),d())},className:b("group relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs","border border-border/50 shrink-0 min-w-0 max-w-[160px]","transition-all duration-150 select-none",s?"bg-slate-100 dark:bg-slate-800 border-slate-300 dark:border-slate-600 shadow-sm":"bg-muted/30 hover:bg-muted/50 border-border/30",t.isPinned&&"border-amber-500/50",u&&"opacity-50 cursor-grabbing",j&&"border-primary border-dashed bg-primary/10",!t.isPinned&&"cursor-grab"),title:t.title,children:[e.jsx("span",{className:b("w-1.5 h-1.5 rounded-full shrink-0",_e.idle)}),e.jsx("span",{className:"font-medium text-[11px] truncate",children:h}),t.isPinned&&e.jsx(B,{className:"h-2.5 w-2.5 text-amber-500 shrink-0"}),e.jsxs("div",{className:"flex items-center gap-0.5 ml-auto opacity-0 group-hover:opacity-100 transition-opacity",children:[e.jsx("button",{onClick:i,className:"p-0.5 rounded hover:bg-primary/10 transition-colors","aria-label":t.isPinned?"Unpin tab":"Pin tab",children:t.isPinned?e.jsx(Ie,{className:"h-2.5 w-2.5 text-amber-500"}):e.jsx(B,{className:"h-2.5 w-2.5 text-muted-foreground hover:text-amber-500"})}),!t.isPinned&&e.jsx("button",{onClick:o,className:"p-0.5 rounded hover:bg-rose-500/20 transition-colors","aria-label":"Close tab",children:e.jsx(ae,{className:"h-2.5 w-2.5 text-rose-600 dark:text-rose-400"})})]})]})}function Be({paneId:t,className:r}){const{formatMessage:s}=S(),[d,o]=a.useState(!1),u=E()[t],m=N(c=>c.setActiveTab),j=N(c=>c.removeTab),p=N(c=>c.togglePinTab),w=N(c=>c.addPane),y=N(c=>c.removePane),h=N(c=>c.moveTab),g=a.useCallback(c=>{m(t,c)},[t,m]),v=a.useCallback((c,k)=>{c.stopPropagation(),j(t,k)},[t,j]),n=a.useCallback((c,k)=>{c.stopPropagation(),p(k)},[p]),l=a.useCallback(()=>{w(t,"horizontal")},[t,w]),f=a.useCallback(()=>{w(t,"vertical")},[t,w]),x=a.useCallback(()=>{y(t)},[t,y]),C=a.useCallback(c=>{c.dataTransfer.types.includes(O)&&(c.preventDefault(),c.dataTransfer.dropEffect="move",o(!0))},[]),T=a.useCallback(c=>{c.currentTarget.contains(c.relatedTarget)||o(!1)},[]),D=a.useCallback(c=>{c.preventDefault(),o(!1);const k=c.dataTransfer.getData(O);if(k)try{const P=JSON.parse(k),{tabId:de,sourcePaneId:ue}=P,xe=(u==null?void 0:u.tabs.length)||0;h(ue,de,t,xe)}catch(P){console.error("[TabBar] Failed to parse drag data:",P)}},[t,u,h]),V=a.useMemo(()=>u?[...u.tabs].sort((c,k)=>c.isPinned!==k.isPinned?c.isPinned?-1:1:c.order-k.order):[],[u]);return u?e.jsxs("div",{className:b("flex items-center gap-1 px-2 py-1.5","bg-muted/30 border-b border-border/50","overflow-x-auto scrollbar-thin scrollbar-thumb-muted scrollbar-track-transparent",r),children:[e.jsx("div",{onDragOver:C,onDragLeave:T,onDrop:D,className:b("flex items-center gap-1 flex-1 min-w-0 overflow-x-auto",d&&"bg-primary/5 border border-primary border-dashed rounded"),children:V.length===0?e.jsx("span",{className:"text-xs text-muted-foreground px-2",children:s({id:"cliViewer.tabs.noTabs",defaultMessage:"No tabs open"})}):V.map(c=>e.jsx(Ue,{tab:c,paneId:t,isActive:u.activeTabId===c.id,onSelect:()=>g(c.id),onClose:k=>v(k,c.id),onTogglePin:k=>n(k,c.id)},c.id))}),e.jsx(Fe,{paneId:t}),e.jsxs(ee,{children:[e.jsx(te,{asChild:!0,children:e.jsx(G,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0","aria-label":"Pane actions",children:e.jsx(Le,{className:"h-4 w-4"})})}),e.jsxs(se,{align:"end",className:"w-48",children:[e.jsxs(A,{onClick:l,children:[e.jsx(Me,{className:"h-4 w-4 mr-2"}),s({id:"cliViewer.paneActions.splitHorizontal",defaultMessage:"Split Horizontal"})]}),e.jsxs(A,{onClick:f,children:[e.jsx(Se,{className:"h-4 w-4 mr-2"}),s({id:"cliViewer.paneActions.splitVertical",defaultMessage:"Split Vertical"})]}),e.jsx(re,{}),e.jsxs(A,{onClick:x,className:"text-rose-600 dark:text-rose-400",children:[e.jsx(ae,{className:"h-4 w-4 mr-2"}),s({id:"cliViewer.paneActions.closePane",defaultMessage:"Close Pane"})]})]})]})]}):null}function qe(){const{formatMessage:t}=S();return e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-muted-foreground gap-4",children:[e.jsx(M,{className:"h-12 w-12 opacity-30"}),e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-sm font-medium",children:t({id:"cliViewer.noActiveTab",defaultMessage:"No active tab"})}),e.jsx("p",{className:"text-xs mt-1",children:t({id:"cliViewer.selectOrCreate",defaultMessage:"Select a tab or start a new CLI execution"})})]})]})}function He({executionId:t}){const{formatMessage:r}=S();return e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-muted-foreground gap-4",children:[e.jsx(M,{className:"h-12 w-12 opacity-30"}),e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-sm font-medium",children:r({id:"cliViewer.executionNotFound",defaultMessage:"Execution not found"})}),e.jsx("p",{className:"text-xs mt-1 font-mono opacity-50",children:t})]})]})}function Ge(){const{formatMessage:t}=S();return e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-muted-foreground gap-4",children:[e.jsx(R,{className:"h-8 w-8 animate-spin opacity-50"}),e.jsx("div",{className:"text-center",children:e.jsx("p",{className:"text-sm",children:t({id:"cliViewer.syncingExecution",defaultMessage:"Syncing execution data..."})})})]})}function Je({line:t}){const r={stdout:"text-foreground",stderr:"text-rose-600 dark:text-rose-400 bg-rose-500/5",thought:"text-blue-600 dark:text-blue-400 italic bg-blue-500/5",system:"text-amber-600 dark:text-amber-400 bg-amber-500/5",metadata:"text-muted-foreground text-xs",tool_call:"text-emerald-600 dark:text-emerald-400 bg-emerald-500/5 font-mono"};return e.jsx("div",{className:b("px-3 py-1 text-sm","border-l-2 border-transparent",r[t.type]||"text-foreground",t.type==="stderr"&&"border-l-rose-500",t.type==="thought"&&"border-l-blue-500",t.type==="system"&&"border-l-amber-500",t.type==="tool_call"&&"border-l-emerald-500"),children:t.type==="thought"||t.type==="tool_call"?e.jsx(Ve,{content:t.content,format:"markdown"}):e.jsx("pre",{className:"whitespace-pre-wrap break-words font-mono text-xs",children:t.content})})}function Ke({execution:t,executionId:r}){const{formatMessage:s}=S();return!t.output||t.output.length===0?e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-muted-foreground gap-4",children:[e.jsx(M,{className:"h-12 w-12 opacity-30"}),e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-sm",children:t.status==="running"?s({id:"cliViewer.waitingForOutput",defaultMessage:"Waiting for output..."}):s({id:"cliViewer.noOutput",defaultMessage:"No output"})}),t.status==="running"&&e.jsx(R,{className:"h-4 w-4 animate-spin mt-2 mx-auto opacity-50"})]})]}):e.jsx(ge,{autoScroll:t.status==="running",showScrollButton:!0,children:e.jsx("div",{className:"py-2",children:t.output.map((d,o)=>e.jsx(Je,{line:d},`${r}-line-${o}`))})})}function Qe({paneId:t,className:r}){const s=N(m=>fe(m,t)),d=L(m=>m.executions),{isLoading:o}=ne(!0),i=a.useMemo(()=>s!=null&&s.executionId&&d[s.executionId]||null,[s==null?void 0:s.executionId,d]),u=a.useMemo(()=>s?!i&&o?e.jsx(Ge,{}):i?e.jsx(Ke,{execution:i,executionId:s.executionId}):e.jsx(He,{executionId:s.executionId}):e.jsx(qe,{}),[s,i,o]);return e.jsx("div",{className:b("flex-1 min-h-0 flex flex-col overflow-hidden","bg-background",r),children:u})}function ie({paneId:t,className:r}){const d=E()[t],o=F(),i=N(j=>j.setFocusedPane),u=o===t,m=a.useCallback(()=>{u||i(t)},[u,t,i]);return d?e.jsxs("div",{className:b("h-full flex flex-col","bg-card dark:bg-surface-900","border border-border/50","rounded-sm overflow-hidden",u&&"ring-1 ring-primary/50",r),onClick:m,role:"region","aria-label":`CLI Viewer Pane ${t}`,children:[e.jsx(Be,{paneId:t}),e.jsx(Qe,{paneId:t})]}):e.jsx("div",{className:b("h-full flex items-center justify-center",r),children:e.jsx("span",{className:"text-muted-foreground text-sm",children:"Pane not found"})})}function $({className:t}){const{formatMessage:r}=S();return e.jsx("div",{className:b("h-full flex flex-col items-center justify-center","bg-card dark:bg-surface-900","text-muted-foreground",t),children:e.jsxs("div",{className:"flex flex-col items-center gap-6 max-w-md text-center p-8",children:[e.jsxs("div",{className:"relative",children:[e.jsx(M,{className:"h-16 w-16 opacity-20"}),e.jsx("div",{className:"absolute -bottom-1 -right-1 bg-primary/10 rounded-full p-1.5",children:e.jsx(pe,{className:"h-4 w-4 text-primary"})})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:r({id:"cliViewer.emptyState.title",defaultMessage:"CLI Viewer"})}),e.jsx("p",{className:"text-sm",children:r({id:"cliViewer.emptyState.description",defaultMessage:"Start a CLI execution to see the output here."})})]}),e.jsxs("div",{className:"flex flex-col gap-3 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ae,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:r({id:"cliViewer.emptyState.hint1",defaultMessage:'Use "ccw cli" command to start an execution'})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{children:r({id:"cliViewer.emptyState.hint2",defaultMessage:"Active executions will appear as tabs"})})]})]})]})})}function I(t){return typeof t=="string"}function le({group:t,minSize:r,onSizeChange:s}){const d=E(),o=a.useMemo(()=>t.children.filter(i=>I(i)?d[i]!==void 0:!0),[t.children,d]);return o.length===0?e.jsx($,{}):e.jsx(U,{vertical:t.direction==="vertical",defaultSizes:t.sizes,onChange:s,className:"h-full",children:o.map((i,u)=>e.jsx(U.Pane,{minSize:r,children:I(i)?e.jsx(ie,{paneId:i}):e.jsx(le,{group:i,minSize:r,onSizeChange:s})},I(i)?i:`group-${u}`))})}function Ye({className:t}){const r=_(),s=E(),d=a.useRef(!1),o=a.useRef(r.sizes);a.useEffect(()=>{d.current||(o.current=r.sizes)},[r.sizes]);const i=a.useCallback(m=>{o.current&&m.length===o.current.length&&m.every((j,p)=>Math.abs(j-o.current[p])<.1)||(d.current=!0,o.current=m,N.getState().setLayout(j=>({...j,sizes:m})),queueMicrotask(()=>{d.current=!1}))},[]),u=a.useMemo(()=>{if(!r.children||r.children.length===0)return e.jsx($,{});if(r.children.length===1&&I(r.children[0])){const m=r.children[0];return s[m]?e.jsx(ie,{paneId:m}):e.jsx($,{})}return e.jsx(le,{group:r,minSize:200,onSizeChange:i})},[r,s,i]);return e.jsx("div",{className:b("h-full w-full overflow-hidden","bg-background",t),children:u})}const We=[{id:"single",icon:we,labelId:"cliViewer.layout.single"},{id:"split-h",icon:Te,labelId:"cliViewer.layout.splitH"},{id:"split-v",icon:De,labelId:"cliViewer.layout.splitV"},{id:"grid-2x2",icon:Ee,labelId:"cliViewer.layout.grid"}],Xe="split-h",ce={running:{color:"bg-blue-500 animate-pulse"},completed:{color:"bg-green-500"},error:{color:"bg-red-500"}};function Ze(t){const r=t.children.length;if(r===0||r===1)return"single";if(r===2){if(!t.children.some(o=>typeof o!="string"))return t.direction==="horizontal"?"split-h":"split-v";if(t.children.every(o=>typeof o!="string"))return"grid-2x2"}return t.direction==="horizontal"?"split-h":"split-v"}function et(t){const s=Date.now()-t;return s<6e4?"Just now":s<36e5?`${Math.floor(s/6e4)}m ago`:s<864e5?`${Math.floor(s/36e5)}h ago`:new Date(t).toLocaleDateString()}function tt({isFullscreen:t,onToggleFullscreen:r}){const{formatMessage:s}=S(),d=be(),o=_(),i=F(),{initializeDefaultLayout:u,reset:m,addTab:j}=N(),p=L(l=>l.executions),w=a.useMemo(()=>Ze(o),[o]),y=a.useMemo(()=>Object.keys(p).length,[p]),h=a.useMemo(()=>Object.values(p).filter(l=>l.status==="running").length,[p]),g=a.useCallback(()=>{d(-1)},[d]),v=a.useCallback(l=>{u(l)},[u]),n=a.useCallback(()=>{m(),u(Xe)},[m,u]);return e.jsxs("div",{className:"flex items-center gap-1 px-2 h-[40px] border-b border-border bg-muted/30 shrink-0",children:[e.jsx("button",{onClick:g,className:b("p-1.5 rounded transition-colors","text-muted-foreground hover:text-foreground hover:bg-muted"),title:s({id:"cliViewer.toolbar.back",defaultMessage:"Back"}),children:e.jsx(je,{className:"w-3.5 h-3.5"})}),e.jsx("div",{className:"w-px h-5 bg-border mx-1"}),We.map(l=>{const f=w===l.id;return e.jsx("button",{onClick:()=>v(l.id),className:b("p-1.5 rounded transition-colors",f?"bg-primary/10 text-primary":"text-muted-foreground hover:text-foreground hover:bg-muted"),title:s({id:l.labelId}),children:e.jsx(l.icon,{className:"w-3.5 h-3.5"})},l.id)}),e.jsx("div",{className:"w-px h-5 bg-border mx-1"}),e.jsx(st,{focusedPaneId:i}),e.jsx("div",{className:"w-px h-5 bg-border mx-1"}),e.jsx("button",{onClick:n,className:b("p-1.5 rounded transition-colors","text-muted-foreground hover:text-foreground hover:bg-muted"),title:s({id:"cliViewer.toolbar.clearAll"}),children:e.jsx(ve,{className:"w-3.5 h-3.5"})}),e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs(ee,{children:[e.jsx(te,{asChild:!0,children:e.jsxs("button",{className:b("flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs transition-colors","text-muted-foreground hover:text-foreground hover:bg-muted"),children:[e.jsx(M,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:h>0?`${h} ${s({id:"cliViewer.toolbar.running",defaultMessage:"running"})}`:`${y} ${s({id:"cliViewer.toolbar.executions",defaultMessage:"executions"})}`}),h>0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),e.jsx(Ne,{className:"w-3 h-3"})]})}),e.jsxs(se,{align:"end",sideOffset:4,children:[e.jsx(ye,{children:s({id:"cliViewer.toolbar.executionsList",defaultMessage:"Recent Executions"})}),e.jsx(re,{}),Object.entries(p).length===0?e.jsx("div",{className:"px-2 py-4 text-center text-xs text-muted-foreground",children:s({id:"cliViewer.picker.noExecutions",defaultMessage:"No executions available"})}):Object.entries(p).sort((l,f)=>f[1].startTime-l[1].startTime).slice(0,10).map(([l,f])=>e.jsxs(A,{className:"flex items-center gap-2 text-xs",onClick:()=>{if(i){const x=`${f.tool}-${f.mode}`;j(i,l,x)}},children:[e.jsx("span",{className:b("w-2 h-2 rounded-full shrink-0",ce[f.status].color)}),e.jsx("span",{className:"truncate flex-1",children:f.tool}),e.jsx("span",{className:"text-muted-foreground",children:f.mode})]},l))]})]}),e.jsx("div",{className:"w-px h-5 bg-border mx-1"}),e.jsx("button",{onClick:r,className:b("p-1.5 rounded transition-colors",t?"bg-primary/10 text-primary":"text-muted-foreground hover:text-foreground hover:bg-muted"),title:s(t?{id:"cliViewer.toolbar.exitFullscreen",defaultMessage:"Exit Fullscreen"}:{id:"cliViewer.toolbar.fullscreen",defaultMessage:"Fullscreen"}),children:t?e.jsx(Pe,{className:"w-3.5 h-3.5"}):e.jsx(Oe,{className:"w-3.5 h-3.5"})}),e.jsx("span",{className:"text-xs text-muted-foreground font-medium ml-2",children:s({id:"cliViewer.page.title"})})]})]})}function st({focusedPaneId:t}){const{formatMessage:r}=S(),[s,d]=a.useState(!1),[o,i]=a.useState(""),u=L(h=>h.executions),m=N(h=>h.panes),j=N(h=>h.addTab),p=a.useMemo(()=>{if(!t)return new Set;const h=m[t];return h?new Set(h.tabs.map(g=>g.executionId)):new Set},[m,t]),w=a.useMemo(()=>{const g=Object.entries(u).filter(([v,n])=>{if(!o)return!0;const l=o.toLowerCase();return v.toLowerCase().includes(l)||n.tool.toLowerCase().includes(l)||n.mode.toLowerCase().includes(l)});return g.sort((v,n)=>n[1].startTime-v[1].startTime),g},[u,o]),y=a.useCallback((h,g,v)=>{t&&(j(t,h,`${g}-${v}`),d(!1),i(""))},[t,j]);return t?e.jsxs(q,{open:s,onOpenChange:d,children:[e.jsx(H,{asChild:!0,children:e.jsxs("button",{className:b("flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs transition-colors","text-muted-foreground hover:text-foreground hover:bg-muted"),children:[e.jsx(J,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:r({id:"cliViewer.toolbar.addExecution",defaultMessage:"Add"})})]})}),e.jsxs(K,{className:"sm:max-w-md",children:[e.jsx(Q,{children:e.jsx(Y,{children:r({id:"cliViewer.picker.selectExecution",defaultMessage:"Select Execution"})})}),e.jsxs("div",{className:"relative",children:[e.jsx(W,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(X,{placeholder:r({id:"cliViewer.picker.searchExecutions",defaultMessage:"Search executions..."}),value:o,onChange:h=>i(h.target.value),className:"pl-9"})]}),e.jsx("div",{className:"max-h-[300px] overflow-y-auto space-y-2",children:w.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(M,{className:"h-8 w-8 text-muted-foreground mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:Object.keys(u).length===0?r({id:"cliViewer.picker.noExecutions",defaultMessage:"No executions available"}):r({id:"cliViewer.picker.noMatchingExecutions",defaultMessage:"No matching executions"})})]}):w.map(([h,g])=>{const v=p.has(h);return e.jsxs("div",{className:"relative",children:[e.jsxs("button",{onClick:()=>y(h,g.tool,g.mode),disabled:v,className:b("w-full flex items-center gap-3 p-3 rounded-lg","border border-border/50 bg-muted/30","hover:bg-muted/50 hover:border-border","transition-all duration-150","text-left",v&&"opacity-50 cursor-not-allowed"),children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-md bg-primary/10",children:e.jsx(M,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"font-medium text-sm text-foreground truncate",children:[g.tool,"-",g.mode]}),e.jsx("span",{className:b("w-2 h-2 rounded-full shrink-0",ce[g.status].color)})]}),e.jsx("span",{className:"text-xs text-muted-foreground truncate",children:h})]}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground shrink-0",children:[e.jsx(Z,{className:"h-3 w-3"}),e.jsx("span",{children:et(g.startTime)})]})]}),v&&e.jsx("div",{className:"absolute inset-0 bg-background/60 rounded-lg flex items-center justify-center",children:e.jsx("span",{className:"text-xs text-muted-foreground bg-muted px-2 py-1 rounded",children:r({id:"cliViewer.picker.alreadyOpen",defaultMessage:"Already open"})})})]},h)})})]})]}):null}function rt(t,r){const s=new Set(Object.keys(r));return Object.entries(t).flatMap(([d,o])=>o.tabs.filter(i=>!s.has(i.executionId)).map(i=>({paneId:d,tabId:i.id,executionId:i.executionId})))}const at="split-h";function nt(t){let r=0;const s=d=>{for(const o of d)typeof o=="string"?r++:s(o.children)};return s(t.children),r}function mt(){const[t,r]=ke(),[s,d]=a.useState(!1),o=_(),i=E(),u=F(),{initializeDefaultLayout:m,addTab:j,removeTab:p}=N(),w=L(n=>n.executions),{isLoading:y,isFetching:h}=ne(!0);Ce();const g=a.useRef(new Set);a.useEffect(()=>{Object.values(i).flatMap(l=>l.tabs.map(f=>f.executionId)).forEach(l=>g.current.add(l))},[]),a.useEffect(()=>{const n=Object.keys(i);if(n.length===0)return;const l=N.getState().addTab,f=Object.keys(w).filter(x=>!g.current.has(x));f.length!==0&&f.forEach((x,C)=>{g.current.add(x);const T=w[x],D=T.tool.split("-")[0],V=n[C%n.length];l(V,x,`${D} (${T.mode})`)})},[w,i]),a.useEffect(()=>{if(y||h)return;const n=rt(i,w);n.length!==0&&n.forEach(({paneId:l,tabId:f,executionId:x})=>{g.current.delete(x),p(l,f)})},[w,h,y,i,p]),a.useEffect(()=>{nt(o)===0&&m(at)},[o,m]),a.useEffect(()=>{const n=t.get("executionId");n&&u&&(j(u,n,`Execution ${n.slice(0,8)}`),r(l=>{const f=new URLSearchParams(l);return f.delete("executionId"),f}))},[t,u,j,r]);const v=()=>{d(n=>!n)};return e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsx(tt,{isFullscreen:s,onToggleFullscreen:v}),e.jsx("div",{className:"flex-1 min-h-0 bg-background",children:e.jsx(Ye,{})})]})}export{mt as CliViewerPage,mt as default};
22
- //# sourceMappingURL=CliViewerPage-ChM-uNx_.js.map
22
+ //# sourceMappingURL=CliViewerPage-BZXpgY0N.js.map