maestro-flow 0.5.2 → 0.5.3
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.
- package/.agents/skills/insight-challenge/SKILL.md +228 -0
- package/.agents/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agents/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agents/skills/maestro/SKILL.md +6 -6
- package/.agents/skills/maestro-help/SKILL.md +1 -1
- package/.agents/skills/maestro-help/index/catalog.json +3 -2
- package/.agents/skills/maestro-ralph/SKILL.md +11 -10
- package/.agents/skills/maestro-ralph-beta/SKILL.md +11 -10
- package/.agents/skills/odyssey-debug/SKILL.md +475 -0
- package/.agents/skills/odyssey-improve/SKILL.md +507 -0
- package/.agents/skills/odyssey-planex/SKILL.md +603 -0
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +429 -0
- package/.agents/skills/odyssey-ui/SKILL.md +464 -0
- package/.agy/skills/insight-challenge/SKILL.md +230 -0
- package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agy/skills/maestro/SKILL.md +6 -6
- package/.agy/skills/maestro-help/SKILL.md +1 -1
- package/.agy/skills/maestro-help/index/catalog.json +3 -2
- package/.agy/skills/maestro-ralph/SKILL.md +11 -10
- package/.agy/skills/maestro-ralph-beta/SKILL.md +11 -10
- package/.agy/skills/odyssey-debug/SKILL.md +475 -0
- package/.agy/skills/odyssey-improve/SKILL.md +507 -0
- package/.agy/skills/odyssey-planex/SKILL.md +603 -0
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +429 -0
- package/.agy/skills/odyssey-ui/SKILL.md +464 -0
- package/.claude/commands/maestro-ralph-beta.md +11 -10
- package/.claude/commands/maestro-ralph.md +11 -10
- package/.claude/commands/maestro.md +6 -6
- package/.claude/commands/odyssey-debug.md +473 -0
- package/.claude/commands/odyssey-improve.md +505 -0
- package/.claude/commands/odyssey-planex.md +601 -0
- package/.claude/commands/odyssey-review-test-fix.md +427 -0
- package/.claude/commands/odyssey-ui.md +462 -0
- package/.claude/skills/insight-challenge/SKILL.md +226 -0
- package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.claude/skills/maestro-help/SKILL.md +1 -1
- package/.claude/skills/maestro-help/index/catalog.json +3 -2
- package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
- package/.codex/skills/maestro-companion/SKILL.md +1 -1
- package/.codex/skills/maestro-help/SKILL.md +1 -1
- package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
- package/.codex/skills/maestro-next/SKILL.md +1 -1
- package/.codex/skills/maestro-ralph-beta/SKILL.md +1 -1
- package/.codex/skills/odyssey-debug/SKILL.md +456 -0
- package/.codex/skills/odyssey-improve/SKILL.md +466 -0
- package/.codex/skills/odyssey-planex/SKILL.md +409 -0
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
- package/.codex/skills/odyssey-ui/SKILL.md +411 -0
- package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
- package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
- package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
- package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
- package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
- package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
- package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
- package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
- package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
- package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
- package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
- package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
- package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
- package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
- package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
- package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
- package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
- package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
- package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
- package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
- package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
- package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
- package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
- package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
- package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
- package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
- package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
- package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
- package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
- package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
- package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
- package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
- package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
- package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
- package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
- package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
- package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
- package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
- package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
- package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
- package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
- package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
- package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
- package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
- package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
- package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
- package/dashboard/dist-server/src/types/index.d.ts +9 -0
- package/dist/src/cli.js +3 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +50 -8
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/domain.d.ts +9 -0
- package/dist/src/commands/domain.d.ts.map +1 -0
- package/dist/src/commands/domain.js +445 -0
- package/dist/src/commands/domain.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +10 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +132 -22
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +82 -204
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/kg.d.ts.map +1 -1
- package/dist/src/commands/kg.js +183 -90
- package/dist/src/commands/kg.js.map +1 -1
- package/dist/src/commands/search.d.ts +15 -8
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +205 -59
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +9 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +0 -7
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +8 -1
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/commands/workspace.d.ts +12 -0
- package/dist/src/commands/workspace.d.ts.map +1 -0
- package/dist/src/commands/workspace.js +230 -0
- package/dist/src/commands/workspace.js.map +1 -0
- package/dist/src/config/cli-tools-config.d.ts +5 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +31 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/config/index.d.ts +9 -1
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +35 -1
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/core/install-executor.d.ts +31 -0
- package/dist/src/core/install-executor.d.ts.map +1 -0
- package/dist/src/core/install-executor.js +231 -0
- package/dist/src/core/install-executor.js.map +1 -0
- package/dist/src/core/install-profile.d.ts +103 -0
- package/dist/src/core/install-profile.d.ts.map +1 -0
- package/dist/src/core/install-profile.js +225 -0
- package/dist/src/core/install-profile.js.map +1 -0
- package/dist/src/graph/kg/credibility.d.ts +37 -0
- package/dist/src/graph/kg/credibility.d.ts.map +1 -0
- package/dist/src/graph/kg/credibility.js +141 -0
- package/dist/src/graph/kg/credibility.js.map +1 -0
- package/dist/src/graph/kg/db/connection.d.ts +28 -0
- package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
- package/dist/src/graph/kg/db/connection.js +142 -0
- package/dist/src/graph/kg/db/connection.js.map +1 -0
- package/dist/src/graph/kg/db/index.d.ts +5 -0
- package/dist/src/graph/kg/db/index.d.ts.map +1 -0
- package/dist/src/graph/kg/db/index.js +6 -0
- package/dist/src/graph/kg/db/index.js.map +1 -0
- package/dist/src/graph/kg/db/migrations.d.ts +8 -0
- package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
- package/dist/src/graph/kg/db/migrations.js +88 -0
- package/dist/src/graph/kg/db/migrations.js.map +1 -0
- package/dist/src/graph/kg/db/queries.d.ts +84 -0
- package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
- package/dist/src/graph/kg/db/queries.js +471 -0
- package/dist/src/graph/kg/db/queries.js.map +1 -0
- package/dist/src/graph/kg/db/types.d.ts +123 -0
- package/dist/src/graph/kg/db/types.d.ts.map +1 -0
- package/dist/src/graph/kg/db/types.js +75 -0
- package/dist/src/graph/kg/db/types.js.map +1 -0
- package/dist/src/graph/kg/engine.d.ts +87 -0
- package/dist/src/graph/kg/engine.d.ts.map +1 -0
- package/dist/src/graph/kg/engine.js +247 -0
- package/dist/src/graph/kg/engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +40 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js +296 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.js +208 -0
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
- package/dist/src/graph/kg/index.d.ts +29 -0
- package/dist/src/graph/kg/index.d.ts.map +1 -0
- package/dist/src/graph/kg/index.js +35 -0
- package/dist/src/graph/kg/index.js.map +1 -0
- package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
- package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
- package/dist/src/graph/kg/query/context-builder.js +184 -0
- package/dist/src/graph/kg/query/context-builder.js.map +1 -0
- package/dist/src/graph/kg/query/index.d.ts +8 -0
- package/dist/src/graph/kg/query/index.d.ts.map +1 -0
- package/dist/src/graph/kg/query/index.js +6 -0
- package/dist/src/graph/kg/query/index.js.map +1 -0
- package/dist/src/graph/kg/query/scoring.d.ts +19 -0
- package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
- package/dist/src/graph/kg/query/scoring.js +158 -0
- package/dist/src/graph/kg/query/scoring.js.map +1 -0
- package/dist/src/graph/kg/query/search.d.ts +59 -0
- package/dist/src/graph/kg/query/search.d.ts.map +1 -0
- package/dist/src/graph/kg/query/search.js +158 -0
- package/dist/src/graph/kg/query/search.js.map +1 -0
- package/dist/src/graph/kg/query/traversal.d.ts +75 -0
- package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
- package/dist/src/graph/kg/query/traversal.js +420 -0
- package/dist/src/graph/kg/query/traversal.js.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
- package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/index.d.ts +11 -0
- package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/index.js +7 -0
- package/dist/src/graph/kg/resolution/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
- package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
- package/dist/src/graph/kg/schema.sql +210 -0
- package/dist/src/graph/kg/surface/cli.d.ts +3 -0
- package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/cli.js +500 -0
- package/dist/src/graph/kg/surface/cli.js.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.js +172 -0
- package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
- package/dist/src/graph/kg/surface/index.d.ts +6 -0
- package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/index.js +5 -0
- package/dist/src/graph/kg/surface/index.js.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
- package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
- package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
- package/dist/src/graph/kg/sync/index.d.ts +5 -0
- package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/index.js +4 -0
- package/dist/src/graph/kg/sync/index.js.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.js +90 -0
- package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +0 -2
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +0 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +157 -81
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/kg-auto-init.d.ts +13 -0
- package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
- package/dist/src/hooks/kg-auto-init.js +38 -0
- package/dist/src/hooks/kg-auto-init.js.map +1 -0
- package/dist/src/hooks/kg-context-injector.d.ts +1 -3
- package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
- package/dist/src/hooks/kg-context-injector.js +12 -17
- package/dist/src/hooks/kg-context-injector.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +21 -90
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/hooks/spec-analytics.d.ts +1 -0
- package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
- package/dist/src/hooks/spec-analytics.js +1 -3
- package/dist/src/hooks/spec-analytics.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +65 -1
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +52 -9
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +52 -9
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +40 -4
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
- package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
- package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
- package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
- package/dist/src/tools/domain-loader.d.ts +63 -0
- package/dist/src/tools/domain-loader.d.ts.map +1 -0
- package/dist/src/tools/domain-loader.js +295 -0
- package/dist/src/tools/domain-loader.js.map +1 -0
- package/dist/src/tools/domain-matcher.d.ts +24 -0
- package/dist/src/tools/domain-matcher.d.ts.map +1 -0
- package/dist/src/tools/domain-matcher.js +117 -0
- package/dist/src/tools/domain-matcher.js.map +1 -0
- package/dist/src/tools/domain-scanner.d.ts +32 -0
- package/dist/src/tools/domain-scanner.d.ts.map +1 -0
- package/dist/src/tools/domain-scanner.js +263 -0
- package/dist/src/tools/domain-scanner.js.map +1 -0
- package/dist/src/tools/domain-schema.d.ts +18 -0
- package/dist/src/tools/domain-schema.d.ts.map +1 -0
- package/dist/src/tools/domain-schema.js +104 -0
- package/dist/src/tools/domain-schema.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +1 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +5 -0
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +10 -2
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
- package/dist/src/tui/install-ui/GroupedHub.js +210 -0
- package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/HooksConfig.js +83 -18
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +89 -260
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +45 -267
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +2 -4
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +1 -5
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/tui/install-ui/index.d.ts +5 -1
- package/dist/src/tui/install-ui/index.d.ts.map +1 -1
- package/dist/src/tui/install-ui/index.js +1 -0
- package/dist/src/tui/install-ui/index.js.map +1 -1
- package/dist/src/tui/install-ui/types.d.ts +39 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -1
- package/dist/src/tui/install-ui/types.js +1 -1
- package/dist/src/tui/install-ui/types.js.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
- package/dist/src/tui/shared/components.d.ts +4 -0
- package/dist/src/tui/shared/components.d.ts.map +1 -1
- package/dist/src/tui/shared/components.js +4 -0
- package/dist/src/tui/shared/components.js.map +1 -1
- package/dist/src/tui/shared/index.d.ts +1 -1
- package/dist/src/tui/shared/index.d.ts.map +1 -1
- package/dist/src/tui/shared/index.js +1 -1
- package/dist/src/tui/shared/index.js.map +1 -1
- package/dist/src/tui/shared/tokens.d.ts +5 -5
- package/dist/src/tui/shared/tokens.js +5 -5
- package/dist/src/tui/shared/tokens.js.map +1 -1
- package/dist/src/types/index.d.ts +9 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/cli-format.d.ts +2 -1
- package/dist/src/utils/cli-format.d.ts.map +1 -1
- package/dist/src/utils/cli-format.js +14 -3
- package/dist/src/utils/cli-format.js.map +1 -1
- package/dist/src/utils/cooldown-guard.d.ts +17 -0
- package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
- package/dist/src/utils/cooldown-guard.js +59 -0
- package/dist/src/utils/cooldown-guard.js.map +1 -0
- package/dist/src/utils/jsonl-log.d.ts.map +1 -1
- package/dist/src/utils/jsonl-log.js +2 -1
- package/dist/src/utils/jsonl-log.js.map +1 -1
- package/dist/src/utils/update-notices.js +17 -4
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +4 -5
- package/workflows/claude-instructions.md +23 -0
- package/workflows/codex-instructions.md +22 -0
- package/workflows/finish-work.md +25 -0
- package/workflows/updates/update-v3-setup.md +7 -15
- package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
- package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
- package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
- package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
- package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{d as
|
|
1
|
+
import{d as Q,j as e,S as v,a as y,r as m,c as H,L as W,V as X,p as J}from"./index-Cbs79erW.js";import{u as Y}from"./shallow-Dy0-7n5s.js";import{c as $,S as T,P as E,b as Z,D as ee,K as te}from"./table-VI5scWpO.js";import{C as A}from"./check-D5hOViiQ.js";import{L as U}from"./list-Dg_ojUpi.js";import{C as O}from"./circle-check-DApOBP0J.js";import{C as se}from"./circle-alert-CZvK3B1K.js";import{C as ae}from"./columns-3-CO2SvNJb.js";/**
|
|
2
2
|
* @license lucide-react v0.577.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const re=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],ne=q("play",re),R=[{status:"not_started",label:"Pending"},{status:"planning",label:"Planning"},{status:"executing",label:"Executing"},{status:"verifying",label:"Verifying"},{status:"reviewing",label:"Reviewing"},{status:"completed",label:"Complete"}];function ie(t,s){return t.filter(a=>a.status===s).length}function oe({phases:t,hiddenCols:s,onToggleCol:a}){return e.jsx("div",{className:"flex items-center px-[var(--spacing-4)] py-[var(--spacing-3)] border-b border-border-divider bg-bg-primary shrink-0 gap-0 overflow-x-auto",children:R.map((r,i)=>{const x=ie(t,r.status),n=v[r.status],c=s==null?void 0:s.has(r.status);return e.jsxs("div",{className:"contents",children:[e.jsxs("button",{type:"button",onClick:()=>a==null?void 0:a(r.status),className:`flex items-center gap-[var(--spacing-2)] px-[var(--spacing-3-5)] py-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] cursor-pointer transition-all rounded-full border ${c?"opacity-40 border-border bg-bg-secondary":"opacity-100 border-transparent bg-transparent hover:bg-bg-secondary"}`,title:c?`Show ${r.label} column`:`Hide ${r.label} column`,children:[e.jsx("span",{className:"inline-block w-2 h-2 rounded-full shrink-0",style:{backgroundColor:n}}),e.jsx("span",{className:"text-text-tertiary",children:r.label}),e.jsx("span",{className:"text-[10px] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full bg-bg-secondary text-text-tertiary font-mono",children:x})]}),i<R.length-1&&e.jsx("div",{className:"relative w-5 h-px bg-border shrink-0",children:e.jsx("div",{className:"absolute -right-px -top-[3px] border-[3px] border-transparent border-l-[4px] border-l-border"})})]},r.status)})})}const S={feat:{bg:"rgba(74,144,217,0.12)",text:"var(--color-status-exploring)"},feature:{bg:"rgba(74,144,217,0.12)",text:"var(--color-status-exploring)"},fix:{bg:"rgba(208,84,84,0.12)",text:"var(--color-status-blocked)"},refac:{bg:"rgba(139,107,191,0.12)",text:"var(--color-status-planning)"},refactor:{bg:"rgba(139,107,191,0.12)",text:"var(--color-status-planning)"},docs:{bg:"rgba(160,157,151,0.12)",text:"var(--color-status-pending)"},test:{bg:"rgba(91,141,184,0.12)",text:"var(--color-status-testing)"}},B={in_progress:{bg:"rgba(201,155,45,0.1)",text:"var(--color-status-executing)"},running:{bg:"rgba(201,155,45,0.1)",text:"var(--color-status-executing)"},pending:{bg:"rgba(160,157,151,0.1)",text:"var(--color-status-pending)"},queued:{bg:"rgba(160,157,151,0.1)",text:"var(--color-status-pending)"},completed:{bg:"rgba(61,155,111,0.1)",text:"var(--color-status-completed)"},done:{bg:"rgba(61,155,111,0.1)",text:"var(--color-status-completed)"},failed:{bg:"rgba(208,84,84,0.1)",text:"var(--color-status-blocked)"}},le={in_progress:"Running",running:"Running",pending:"Queued",queued:"Queued",completed:"Done",done:"Done",failed:"Failed"};function V(t){return{feature:"feat",refactor:"refac"}[t]??t}function ce({task:t}){const s=S[t.type]??S[V(t.type)]??S.feat,a=B[t.status]??B.pending,r=le[t.status]??t.status;return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2-5)] py-[var(--spacing-1-5)] rounded-[var(--radius-default)] bg-bg-card text-[length:var(--font-size-xs)] cursor-pointer transition-colors duration-[var(--duration-fast)] hover:bg-bg-hover",children:[e.jsx("span",{className:"font-mono text-[length:10px] text-text-tertiary min-w-[60px] shrink-0",children:t.id}),e.jsx("span",{className:"text-[length:9px] font-[var(--font-weight-semibold)] uppercase px-[7px] py-[2px] rounded-full shrink-0",style:{backgroundColor:s.bg,color:s.text},children:V(t.type)}),e.jsx("span",{className:"flex-1 text-text-primary whitespace-nowrap overflow-hidden text-ellipsis",children:t.title}),e.jsx("span",{className:"text-[length:10px] font-[var(--font-weight-semibold)] px-[7px] py-[2px] rounded-full shrink-0",style:{backgroundColor:a.bg,color:a.text},children:r})]})}const de={not_started:"var(--color-tint-pending)",planning:"var(--color-tint-planning)",executing:"var(--color-tint-executing)",verifying:"var(--color-tint-verifying)",reviewing:"var(--color-tint-reviewing)",completed:"var(--color-tint-completed)",blocked:"var(--color-tint-blocked)"};function xe({phase:t,onSelectTask:s,recommendedAdvance:a}){const r=y(u=>u.setSelectedPhase),[i,x]=m.useState(!1),{tasks:n,loading:c}=$(i?t.phase:null),{tasks_completed:p,tasks_total:o,current_wave:d}=t.execution,g=v[t.status],b=t.verification.gaps.length>0,j=t.plan.task_count>0,l=H(u=>u.issues),h=m.useMemo(()=>l.filter(u=>u.phase_id===t.phase),[l,t.phase]),f=h.filter(u=>{var k;return((k=u.execution)==null?void 0:k.status)==="running"}).length;return j?e.jsxs("div",{children:[e.jsxs("div",{role:"button",tabIndex:0,onClick:()=>r(t.phase),onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),r(t.phase))},className:"rounded-[10px] px-[var(--spacing-3-5)] py-[var(--spacing-3)] cursor-pointer transition-all duration-[var(--duration-normal)] ease-[var(--ease-spring)] hover:-translate-y-0.5 hover:shadow-[0_4px_12px_rgba(0,0,0,0.06)] focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",style:{backgroundColor:de[t.status]??"var(--color-tint-pending)"},children:[e.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-1-5)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)]",children:[e.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),x(!i)},className:"w-4 h-4 flex items-center justify-center text-text-tertiary hover:text-text-primary transition-colors","aria-label":i?"Collapse tasks":"Expand tasks",children:e.jsx("svg",{className:`w-3 h-3 transition-transform duration-150 ${i?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})})}),e.jsx(T,{status:t.status,cardVariant:!0})]}),e.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-mono text-text-tertiary",children:["P-",String(t.phase).padStart(2,"0")]})]}),e.jsx("div",{className:"text-[length:var(--font-size-base)] font-[var(--font-weight-semibold)] text-text-primary mb-[var(--spacing-0-5)]",children:t.title}),t.goal&&e.jsx("p",{className:"text-[12px] text-text-secondary leading-[var(--line-height-normal)] line-clamp-2 mb-[var(--spacing-2)]",children:t.goal}),o>0&&e.jsx(E,{completed:p,total:o,color:g}),t.status==="executing"&&d>0&&e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] mt-[var(--spacing-1-5)]",style:{color:g},children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full animate-pulse motion-reduce:animate-none",style:{backgroundColor:g}}),"Wave ",d," active"]}),b&&e.jsxs("div",{className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full",style:{backgroundColor:"rgba(196, 101, 85, 0.1)",color:"var(--color-status-blocked)"},children:[t.verification.gaps.length," Gap",t.verification.gaps.length>1?"s":""]}),a&&e.jsxs("div",{className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full",style:{backgroundColor:"rgba(91, 141, 184, 0.1)",color:"var(--color-accent-blue)"},children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full animate-pulse",style:{backgroundColor:"var(--color-accent-blue)"}}),"Advance recommended"]}),f>0&&e.jsxs(W,{to:`/kanban?phase=${t.phase}`,onClick:u=>u.stopPropagation(),className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full no-underline transition-colors hover:opacity-80",style:{backgroundColor:"var(--color-status-bg-executing)",color:"var(--color-status-executing)"},title:`${f} issue(s) running — view in Kanban`,children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full animate-pulse",style:{backgroundColor:"var(--color-status-executing)"}}),f," running"]}),h.length>0&&f===0&&e.jsxs(W,{to:`/kanban?phase=${t.phase}`,onClick:u=>u.stopPropagation(),className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full no-underline transition-colors hover:opacity-80",style:{backgroundColor:"var(--color-bg-secondary)",color:"var(--color-text-tertiary)",border:"1px solid var(--color-border)"},children:[h.length," issue",h.length>1?"s":""]})]}),i&&e.jsx("div",{className:"mt-[var(--spacing-1)] flex flex-col gap-[var(--spacing-1)]",children:c?e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary px-[var(--spacing-3)] py-[var(--spacing-2)]",children:"Loading tasks..."}):n.length===0?e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary px-[var(--spacing-3)] py-[var(--spacing-2)]",children:"No tasks"}):n.map(u=>e.jsx("div",{onClick:()=>s==null?void 0:s({type:"task",task:u,phaseId:t.phase}),children:e.jsx(ce,{task:{id:u.id,title:u.title,type:u.type,status:u.meta.status}})},u.id))})]}):e.jsx("div",{role:"button",tabIndex:0,onClick:()=>r(t.phase),onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),r(t.phase))},className:"rounded-[8px] px-[var(--spacing-3)] py-[var(--spacing-2)] cursor-pointer transition-all duration-[var(--duration-normal)] hover:shadow-[0_2px_8px_rgba(0,0,0,0.04)] focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] opacity-60 hover:opacity-80",style:{border:"1px dashed var(--color-border)",backgroundColor:"transparent"},children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx(T,{status:t.status,cardVariant:!0}),e.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-secondary",children:t.title})]}),e.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-mono text-text-tertiary",children:["P-",String(t.phase).padStart(2,"0")]})]})})}const P=4;function pe({color:t,phases:s,label:a,onSelectTask:r}){const[i,x]=m.useState(!1),n=[...s].sort((d,g)=>(g.plan.task_count||0)-(d.plan.task_count||0)),c=n.length>P,p=i||!c?n:n.slice(0,P),o=n.length-P;return e.jsxs("div",{className:"flex flex-col w-[280px] shrink-0 bg-bg-secondary rounded-[12px] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-3-5)] py-[var(--spacing-2-5)]",children:[e.jsx("span",{className:"inline-block w-2.5 h-2.5 rounded-full shrink-0",style:{backgroundColor:t}}),e.jsx("span",{className:"text-[12px] font-[var(--font-weight-semibold)] text-text-primary",children:a}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary bg-bg-card px-[var(--spacing-1-5)] rounded-full",children:s.length})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-2)] pb-[var(--spacing-2)] flex flex-col gap-[var(--spacing-2)]",children:[p.map(d=>e.jsx(xe,{phase:d,onSelectTask:r},d.phase)),c&&e.jsx("button",{type:"button",onClick:()=>x(!i),className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-tertiary hover:text-text-secondary py-[var(--spacing-1-5)] cursor-pointer transition-colors text-center",children:i?"Show less":`+${o} more`})]})]})}function ue(){var p;const t=y(o=>o.board),s=(t==null?void 0:t.phases)??[],a=s.filter(o=>o.status==="completed").length,r=s.length,i=s.reduce((o,d)=>o+d.execution.tasks_completed,0),x=s.reduce((o,d)=>o+d.execution.tasks_total,0),n=x>0?Math.round(i/x*100):0,c=((p=t==null?void 0:t.project)==null?void 0:p.current_milestone)??"";return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-5)] px-[var(--spacing-5)] py-[var(--spacing-2)] border-t border-border bg-bg-secondary text-[12px] shrink-0",children:[c&&e.jsx("span",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:c}),e.jsxs("span",{className:"text-text-secondary",children:["Phases: ",e.jsxs("strong",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:[a,"/",r]})," complete"]}),e.jsxs("span",{className:"text-text-secondary",children:["Tasks: ",e.jsxs("strong",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:[i,"/",x]})]}),e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] w-36",children:[e.jsx("div",{className:"flex-1 h-1 rounded-full bg-border overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full transition-[width] duration-500 ease-out",style:{width:`${n}%`,backgroundColor:"var(--color-status-completed)"}})}),e.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary font-mono tabular-nums",children:[n,"%"]})]})]})}const _=[{status:"not_started",label:"Pending",match:["not_started"]},{status:"planning",label:"Planning",match:["planning"]},{status:"executing",label:"Executing",match:["executing"]},{status:"verifying",label:"Verifying",match:["verifying"]},{status:"reviewing",label:"Reviewing",match:["reviewing"]},{status:"completed",label:"Complete",match:["completed"]},{status:"blocked",label:"Blocked",match:["blocked"]}];function ge(t){const s=new Map;for(const a of _)s.set(a.status,[]);for(const a of t){const r=_.find(i=>i.match.includes(a.status));r&&s.get(r.status).push(a)}return s}function ve({onSelectTask:t}){const s=y(n=>{var c;return((c=n.board)==null?void 0:c.phases)??[]}),a=m.useMemo(()=>ge(s),[s]),[r,i]=m.useState(()=>new Set(["completed"])),x=m.useCallback(n=>{i(c=>{const p=new Set(c);return p.has(n)?p.delete(n):p.add(n),p})},[]);return e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsx(oe,{phases:s,hiddenCols:r,onToggleCol:x}),e.jsxs("div",{className:"flex gap-[var(--spacing-2-5)] flex-1 overflow-x-auto px-[var(--spacing-3)] py-[var(--spacing-3)]",children:[_.map(n=>r.has(n.status)?null:e.jsx(pe,{status:n.status,color:v[n.status],label:n.label,phases:a.get(n.status)??[],onSelectTask:t},n.status)),r.size===_.length&&e.jsx("div",{className:"flex-1 flex items-center justify-center text-text-tertiary text-[length:var(--font-size-sm)]",children:"All columns hidden — click a category tag above to show it."})]}),e.jsx(ue,{})]})}const me=6,he=Array.from({length:me},(t,s)=>`Week ${s+1}`),M={pending:"var(--color-status-pending)",in_progress:"var(--color-status-executing)",completed:"var(--color-status-completed)",failed:"var(--color-status-blocked)"},fe={pending:"Queued",in_progress:"Running",completed:"Done",failed:"Failed"};function be({phaseId:t,onSelectTask:s}){const{tasks:a,loading:r}=$(t);return r?e.jsxs("div",{className:"grid items-center py-[var(--spacing-1)] border-b border-border-divider",style:{gridTemplateColumns:"180px 1fr"},children:[e.jsx("div",{className:"pl-[var(--spacing-6)] text-[length:var(--font-size-xs)] text-text-tertiary",children:"Loading..."}),e.jsx("div",{})]}):a.length===0?null:e.jsx(e.Fragment,{children:a.map(i=>e.jsxs("div",{className:"grid items-center py-[var(--spacing-1)] border-b border-border-divider bg-[rgba(0,0,0,0.02)] cursor-pointer hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",style:{gridTemplateColumns:"180px 1fr"},onClick:()=>s==null?void 0:s({type:"task",task:i,phaseId:t}),children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] pl-[var(--spacing-6)] text-[length:var(--font-size-xs)]",children:[e.jsx("span",{className:"w-[6px] h-[6px] rounded-full shrink-0",style:{backgroundColor:M[i.meta.status]??"var(--color-status-pending)"}}),e.jsx("span",{className:"font-mono text-[length:10px] text-text-tertiary shrink-0",children:i.id}),e.jsx("span",{className:"text-text-secondary truncate",children:i.title}),e.jsx("span",{className:"ml-auto pr-[var(--spacing-3)] text-[length:10px] font-[var(--font-weight-medium)] shrink-0",style:{color:M[i.meta.status]??"var(--color-text-tertiary)"},children:fe[i.meta.status]??i.meta.status})]}),e.jsx("div",{})]},i.id))})}function ye({onSelectPhase:t,onSelectTask:s}){const a=y(l=>l.board),[r,i]=m.useState(new Set);if(!a||a.phases.length===0)return e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-sm)]",children:"No phases to display"});const x=a.phases,n=x.length,c=x.reduce((l,h)=>l+h.execution.tasks_total,0),p=x.reduce((l,h)=>l+h.execution.tasks_completed,0),o=c>0?Math.round(p/c*100):0,d=x.find(l=>l.status==="executing"),g=d?x.indexOf(d):-1,b=g>=0&&d?(()=>{const l=g/n*100,h=1/n*100,f=d.execution.tasks_total>0?d.execution.tasks_completed/d.execution.tasks_total:0;return l+h*f})():-1;function j(l){i(h=>{const f=new Set(h);return f.has(l)?f.delete(l):f.add(l),f})}return e.jsxs("div",{className:"p-[var(--spacing-4)] h-full overflow-auto",children:[e.jsxs("div",{className:"grid border-b border-border pb-[var(--spacing-2)] mb-[var(--spacing-1)]",style:{gridTemplateColumns:"180px 1fr"},children:[e.jsx("span",{className:"text-[length:11px] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[0.04em]",children:"Phase"}),e.jsx("div",{className:"flex justify-between",children:he.map(l=>e.jsx("span",{className:"text-[length:10px] text-text-tertiary",children:l},l))})]}),x.map((l,h)=>{const f=v[l.status],u=h/n*100,k=1/n*100,N=l.execution.tasks_total>0?l.execution.tasks_completed/l.execution.tasks_total:0,K=l.status==="not_started"?.5:l.status==="completed"?1:.85,L=l.plan.task_count>0,z=r.has(l.phase);return e.jsxs("div",{children:[e.jsxs("div",{className:"grid items-center py-[var(--spacing-1-5)] border-b border-border-divider cursor-pointer hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",style:{gridTemplateColumns:"180px 1fr"},onClick:()=>t(l.phase),children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] text-[length:var(--font-size-xs)]",children:[L&&e.jsx("button",{type:"button",onClick:Q=>{Q.stopPropagation(),j(l.phase)},className:"w-4 h-4 flex items-center justify-center text-text-tertiary hover:text-text-primary transition-colors shrink-0","aria-label":z?"Collapse tasks":"Expand tasks",children:e.jsx("svg",{className:`w-3 h-3 transition-transform duration-150 ${z?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})})}),!L&&e.jsx("span",{className:"w-4 shrink-0"}),e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:f}}),e.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-primary truncate",children:l.title}),e.jsxs("span",{className:"ml-auto pr-[var(--spacing-3)] font-mono text-[length:10px] text-text-tertiary",children:[l.execution.tasks_completed,"/",l.execution.tasks_total]})]}),e.jsxs("div",{className:"relative h-7 bg-bg-secondary rounded-[var(--radius-default)] overflow-visible",children:[e.jsxs("div",{className:"absolute top-1 h-5 rounded-[var(--radius-default)] flex items-center px-[var(--spacing-2)] text-[length:10px] font-[var(--font-weight-semibold)] text-white transition-[width] duration-300 ease-[var(--ease-out)]",style:{left:`${u}%`,width:`${k}%`,backgroundColor:f,opacity:K},children:[N>0&&N<1&&e.jsx("div",{className:"absolute top-0 left-0 h-full rounded-[var(--radius-default)] opacity-30 bg-white",style:{width:`${N*100}%`}}),e.jsxs("span",{className:"relative z-[1] whitespace-nowrap",children:["P-",String(l.phase).padStart(2,"0"),N>0&&N<1?` (${Math.round(N*100)}%)`:""]})]}),b>=0&&(d==null?void 0:d.phase)===l.phase&&e.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-[var(--color-status-blocked)] z-[5] rounded-sm",style:{left:`${b}%`},children:e.jsx("span",{className:"absolute -top-[18px] -left-3 text-[length:9px] font-[var(--font-weight-semibold)] text-[var(--color-status-blocked)]",children:"Today"})})]})]}),z&&e.jsx(be,{phaseId:l.phase,onSelectTask:s})]},l.phase)}),e.jsxs("div",{className:"mt-[var(--spacing-5)] pt-[var(--spacing-3)] border-t border-border flex items-center gap-[var(--spacing-5)]",children:[e.jsxs("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary",children:[e.jsx("strong",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:"Overall:"})," ",p,"/",c," tasks complete (",o,"%)"]}),e.jsx("div",{className:"w-[200px]",children:e.jsx(E,{completed:p,total:c})})]})]})}const je={not_started:"Pending",planning:"Plan",executing:"Execute",verifying:"Verify",reviewing:"Review",completed:"Done",blocked:"Blocked"};function F(t){return t==="completed"}function G(t){return t==="executing"}function Ne(t){return F(t)||G(t)?1:t==="verifying"||t==="reviewing"||t==="planning"?.7:.4}function we({phases:t}){return e.jsx("div",{className:"flex items-center gap-0 px-[var(--spacing-6)] py-[var(--spacing-4)] border-b border-border bg-bg-primary overflow-x-auto shrink-0",children:t.map((s,a)=>{const r=v[s.status],i=F(s.status),x=G(s.status),n=Ne(s.status);return e.jsxs("div",{className:"contents",children:[e.jsxs("div",{className:"flex flex-col items-center gap-1 shrink-0 cursor-pointer group",children:[e.jsxs("div",{className:"relative w-[42px] h-[42px] rounded-[12px] flex items-center justify-center text-[length:var(--font-size-sm)] font-bold text-white transition-transform duration-200 group-hover:scale-110",style:{backgroundColor:r,opacity:n},children:[i?e.jsx(A,{size:18,strokeWidth:2.5}):s.phase,x&&e.jsx("span",{className:"absolute -inset-1 rounded-[14px] border-2 animate-pulse opacity-30",style:{borderColor:r}})]}),e.jsx("span",{className:"text-[10px] font-[var(--font-weight-semibold)] max-w-[80px] text-center truncate text-text-tertiary",style:x?{color:r,fontWeight:700}:void 0,children:s.title}),e.jsx("span",{className:"text-[8px] font-[var(--font-weight-semibold)] uppercase tracking-wide px-[5px] py-px rounded-full",style:{backgroundColor:`color-mix(in srgb, ${r} 12%, transparent)`,color:r},children:je[s.status]})]}),a<t.length-1&&e.jsxs("div",{className:"relative w-10 h-0.5 shrink-0 mb-[22px]",children:[e.jsx("div",{className:"absolute inset-0 bg-border"}),i&&e.jsx("div",{className:"absolute top-0 left-0 h-full rounded-sm",style:{width:"100%",backgroundColor:"var(--color-status-completed)"}}),!i&&e.jsx("div",{className:"absolute -right-px -top-[3px] border-[3px] border-transparent border-l-[5px] border-l-border"})]})]},s.phase)})})}const ke={not_started:"/maestro-analyze {N}",planning:"/maestro-execute {N}",executing:"/maestro-execute {N}",verifying:"/quality-review {N}",reviewing:"/maestro-verify {N}",completed:"/maestro-milestone-audit",blocked:"/quality-debug"};function Ce(t){const s=t.filter(a=>a.status!=="completed"&&a.status!=="blocked");return s.length===0?null:s.reduce((a,r)=>r.phase<a.phase?r:a,s[0])}function _e({phase:t}){const[s,a]=m.useState(!1),r=m.useRef(null);if(m.useEffect(()=>()=>{r.current&&clearTimeout(r.current)},[]),!t)return e.jsx("div",{className:"text-[length:var(--font-size-sm)] text-text-tertiary italic text-center py-[var(--spacing-6)]",children:"All phases complete"});const x=(ke[t.status]??"").replace("{N}",String(t.phase)),n=v[t.status];function c(){navigator.clipboard.writeText(x).then(()=>{a(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>a(!1),2e3)})}return e.jsxs("div",{className:"flex flex-col gap-[var(--spacing-2)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2-5)] mb-[var(--spacing-2)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-[10px] flex items-center justify-center text-[length:var(--font-size-base)] font-bold text-white shrink-0",style:{backgroundColor:n},children:t.phase}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-[length:var(--font-size-sm)] font-bold text-text-primary truncate",children:t.title}),e.jsx("span",{className:"inline-block text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full mt-px",style:{backgroundColor:`${n}1a`,color:n},children:t.status.replace(/_/g," ").replace(/\b\w/g,p=>p.toUpperCase())})]})]}),e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx("code",{className:"flex-1 font-mono bg-bg-primary border border-border-divider rounded px-[var(--spacing-1-5)] py-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-primary truncate",children:x}),e.jsx("button",{type:"button",onClick:c,className:"shrink-0 cursor-pointer text-text-tertiary hover:text-text-primary transition-colors text-[length:var(--font-size-xs)]",children:s?"Copied!":"Copy"})]})]})}function ze(){const t=y(a=>{var r;return((r=a.board)==null?void 0:r.phases)??[]}),s=t.find(a=>a.status==="executing")??null;return e.jsxs("div",{className:"flex flex-col overflow-hidden border-r border-r-border-divider border-b border-b-border-divider",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0",children:[e.jsx(ne,{size:14,strokeWidth:2,className:"text-text-tertiary"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-tertiary",children:"Active Execution"}),s&&s.execution.current_wave>0&&e.jsxs("span",{className:"ml-auto text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full",style:{backgroundColor:"rgba(184, 149, 64, 0.12)",color:v.executing},children:["Wave ",s.execution.current_wave]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-4)] py-[var(--spacing-3)]",children:s?e.jsx(Se,{phase:s}):e.jsx(_e,{phase:Ce(t)})})]})}function Se({phase:t}){const{tasks_completed:s,tasks_total:a,current_wave:r}=t.execution,i=a>0?Math.round(s/a*100):0,x=v[t.status];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2-5)] mb-[var(--spacing-3)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-[10px] flex items-center justify-center text-[length:var(--font-size-base)] font-bold text-white",style:{backgroundColor:x},children:t.phase}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[length:var(--font-size-base)] font-bold text-text-primary",children:t.title}),t.goal&&e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:t.goal})]})]}),e.jsxs("div",{className:"mb-[var(--spacing-3-5)]",children:[e.jsx("div",{className:"h-1.5 bg-border rounded-full overflow-hidden mb-1",children:e.jsx("div",{className:"h-full rounded-full transition-[width] duration-500 ease-out",style:{width:`${i}%`,backgroundColor:"var(--color-status-completed)"}})}),e.jsxs("div",{className:"flex justify-between text-[length:var(--font-size-xs)] text-text-tertiary",children:[e.jsxs("span",{children:[s," of ",a," tasks complete"]}),e.jsxs("span",{children:[i,"%"]})]})]}),r>0&&e.jsxs("div",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1-5)]",children:["Wave ",r]}),t.plan.task_ids.length>0&&e.jsx("div",{className:"flex flex-col gap-1",children:t.plan.task_ids.map(n=>e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2-5)] py-[var(--spacing-1-5)] rounded-[var(--radius-md)] bg-bg-primary border border-border-divider text-[length:var(--font-size-sm)]",children:[e.jsx("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 bg-text-quaternary"}),e.jsx("span",{className:"flex-1 text-text-primary font-[var(--font-weight-medium)] truncate",children:n}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-mono text-text-quaternary",children:n})]},n))})]})}const Pe={not_started:"Not Started",planning:"Planning",executing:"Executing",verifying:"Verifying",reviewing:"Reviewing",completed:"Completed",blocked:"Blocked"};function Te(){const t=y(s=>{var a;return((a=s.board)==null?void 0:a.phases)??[]});return e.jsxs("div",{className:"flex flex-col overflow-hidden border-r border-r-border-divider border-b border-border-divider",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0",children:[e.jsx(U,{size:14,strokeWidth:2,className:"text-text-tertiary"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-tertiary",children:"Phase Queue"}),e.jsxs("span",{className:"ml-auto text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full bg-border-subtle text-text-secondary",children:[t.length," phases"]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-4)] py-[var(--spacing-3)]",children:t.map(s=>{const a=v[s.status],{tasks_completed:r,tasks_total:i,current_wave:x}=s.execution,n=i>0?Math.round(r/i*100):0,c=s.status==="executing",p=s.status==="completed";let o=Pe[s.status];return c&&x>0&&(o+=` -- Wave ${x}`),s.verification.gaps.length>0&&(o+=` -- ${s.verification.gaps.length} gap(s)`),e.jsxs("div",{className:["flex items-center gap-[var(--spacing-2-5)] px-[var(--spacing-2-5)] py-[var(--spacing-2)] rounded-[var(--radius-md)] cursor-pointer transition-all duration-150 mb-0.5",c?"bg-[var(--color-tint-executing)]":"hover:bg-bg-primary"].join(" "),children:[e.jsx("div",{className:"w-6 h-6 rounded-[7px] flex items-center justify-center text-[length:var(--font-size-xs)] font-bold text-white shrink-0",style:{backgroundColor:a},children:p?e.jsx(A,{size:12,strokeWidth:2.5}):s.phase}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary truncate",children:s.title}),e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",style:c?{color:a}:void 0,children:o})]}),e.jsxs("div",{className:"text-right shrink-0",children:[e.jsxs("div",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] font-mono text-text-tertiary",style:p?{color:a}:void 0,children:[r,"/",i]}),e.jsx("div",{className:"w-10 h-[3px] bg-border rounded-full overflow-hidden mt-0.5",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${n}%`,backgroundColor:a}})})]})]},s.phase)})})]})}function $e(){const t=y(o=>o.board),s=(t==null?void 0:t.phases)??[],a=s.reduce((o,d)=>o+d.execution.tasks_completed,0),r=s.reduce((o,d)=>o+d.execution.tasks_total,0),i=s.filter(o=>o.status==="completed").length,x=s.length,n=s.reduce((o,d)=>o+d.execution.commits.length,0),c=s.filter(o=>o.status==="verifying"||o.status==="reviewing"),p=s.flatMap(o=>o.verification.gaps.map(d=>({phase:o.phase,text:typeof d=="string"?d:d.description??d.id??JSON.stringify(d)})));return e.jsxs("div",{className:"flex flex-col overflow-hidden border-b border-border-divider",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0",children:[e.jsx(O,{size:14,strokeWidth:2,className:"text-text-tertiary"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-tertiary",children:"Quality"})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-4)] py-[var(--spacing-3)]",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-[var(--spacing-2)] mb-[var(--spacing-3-5)]",children:[e.jsx(C,{label:"Tasks",value:a,sub:`/${r}`,detail:`${r>0?Math.round(a/r*100):0}% complete`}),e.jsx(C,{label:"Phases",value:i,sub:`/${x}`,detail:`${x>0?Math.round(i/x*100):0}% complete`}),e.jsx(C,{label:"Gaps",value:p.length,color:p.length>0?v.blocked:void 0,detail:"active"}),e.jsx(C,{label:"Commits",value:n,detail:"this milestone"})]}),c.length>0&&e.jsx("div",{className:"mb-[var(--spacing-3-5)]",children:c.map(o=>e.jsxs("div",{className:"mb-[var(--spacing-3)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1-5)]",children:[e.jsx(O,{size:12,strokeWidth:2,style:{color:v[o.status]}}),"Verification (P-",String(o.phase).padStart(2,"0"),")"]}),o.verification.must_haves.map((d,g)=>{const j=o.verification.gaps.map(l=>typeof l=="string"?l:l.description??l.id??"").includes(d);return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)] py-1 border-b border-border-divider text-[length:var(--font-size-sm)]",children:[j?e.jsx(se,{size:12,strokeWidth:2.5,style:{color:v.blocked}}):e.jsx(A,{size:12,strokeWidth:2.5,style:{color:v.completed}}),e.jsx("span",{className:"flex-1 text-text-secondary",children:d}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)]",style:{color:j?v.blocked:v.completed},children:j?"Gap":"Verified"})]},g)})]},o.phase))}),s.some(o=>o.validation.test_coverage!==null)&&e.jsxs("div",{children:[e.jsx("div",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1-5)]",children:"Test Coverage"}),s.filter(o=>o.validation.test_coverage!==null).map(o=>{const d=o.validation.test_coverage,g=typeof d=="number"?d:typeof d=="object"&&d!==null?d.statements??0:0,b=g>=80?v.completed:g>=60?v.executing:v.verifying;return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] text-[length:var(--font-size-xs)] mb-1",children:[e.jsxs("span",{className:"w-[70px] text-text-tertiary font-[var(--font-weight-medium)]",children:["P-",String(o.phase).padStart(2,"0")]}),e.jsx("div",{className:"flex-1 h-1.5 bg-border rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${g}%`,backgroundColor:b}})}),e.jsxs("span",{className:"w-9 text-right font-mono font-[var(--font-weight-semibold)] text-text-secondary",children:[g.toFixed(1),"%"]})]},o.phase)})]})]})]})}function C({label:t,value:s,sub:a,detail:r,color:i}){return e.jsxs("div",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] rounded-[10px] bg-bg-primary border border-border-divider",children:[e.jsx("div",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wide text-text-tertiary mb-1",children:t}),e.jsxs("div",{className:"text-[length:var(--font-size-xl)] font-bold text-text-primary",style:i?{color:i}:void 0,children:[s,a&&e.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-tertiary",children:a})]}),e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary mt-0.5",children:r})]})}function Ee(t){const s=[];for(const a of t){const r=v[a.status],i=`P-${String(a.phase).padStart(2,"0")} ${a.title}`;a.status==="executing"&&a.execution.current_wave>0&&s.push({color:r,time:"",text:`Wave ${a.execution.current_wave} active -- ${i}`}),a.status==="verifying"&&a.verification.gaps.length>0&&s.push({color:v.blocked,time:"",text:`${a.verification.gaps.length} gap(s) -- ${i}`}),a.status==="completed"&&s.push({color:r,time:"",text:`Completed -- ${i}`})}return s.slice(0,6)}function Ae(){const t=y(a=>{var r;return((r=a.board)==null?void 0:r.phases)??[]}),s=Ee(t);return s.length===0?null:e.jsxs("div",{className:"col-span-full flex items-center gap-[var(--spacing-4)] px-[var(--spacing-4)] py-[var(--spacing-2)] border-t border-border bg-bg-secondary overflow-x-auto shrink-0",children:[e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-quaternary whitespace-nowrap",children:"Activity"}),s.map((a,r)=>e.jsxs("span",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] text-text-secondary whitespace-nowrap shrink-0",children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full shrink-0",style:{backgroundColor:a.color}}),a.text,r<s.length-1&&e.jsx("span",{className:"inline-block w-px h-3.5 bg-border-divider ml-[var(--spacing-4)]"})]},r))]})}function Le(){const t=y(s=>{var a;return((a=s.board)==null?void 0:a.phases)??[]});return e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsx(we,{phases:t}),e.jsxs("div",{className:"flex-1 grid grid-cols-[1fr_1fr_320px] grid-rows-[1fr_auto] overflow-hidden",children:[e.jsx(ze,{}),e.jsx(Te,{}),e.jsx($e,{}),e.jsx(Ae,{})]})]})}const w="text-left px-[var(--spacing-3)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-wide",I={pending:"var(--color-status-pending)",in_progress:"var(--color-status-executing)",completed:"var(--color-status-completed)",failed:"var(--color-status-blocked)"},We={pending:"Queued",in_progress:"Running",completed:"Done",failed:"Failed"};function Oe({phaseId:t,onSelectTask:s}){const{tasks:a,loading:r}=$(t);return r?e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-[var(--spacing-6)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] text-text-tertiary",children:"Loading tasks..."})}):a.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-[var(--spacing-6)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] text-text-tertiary",children:"No tasks"})}):e.jsx(e.Fragment,{children:a.map(i=>e.jsxs("tr",{className:"bg-[rgba(0,0,0,0.03)] border-t border-border-divider cursor-pointer hover:bg-bg-hover transition-colors",onClick:()=>s==null?void 0:s({type:"task",task:i,phaseId:t}),children:[e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] pl-[var(--spacing-6)]",children:e.jsx("span",{className:"inline-block w-2 h-2 rounded-full",style:{backgroundColor:I[i.meta.status]??"var(--color-status-pending)"}})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] font-mono text-text-tertiary",children:i.id}),e.jsx("td",{colSpan:2,className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] text-text-primary",children:i.title}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-center hidden sm:table-cell",children:e.jsxs("span",{className:"text-[length:10px] text-text-tertiary tabular-nums",children:["W",i.meta.wave]})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-right hidden sm:table-cell",children:e.jsx("span",{className:"text-[length:10px] font-[var(--font-weight-medium)]",style:{color:I[i.meta.status]??"var(--color-text-tertiary)"},children:We[i.meta.status]??i.meta.status})})]},i.id))})}function Re({onSelectTask:t}){const s=y(n=>{var c;return((c=n.board)==null?void 0:c.phases)??[]}),[a,r]=m.useState(new Set),i=m.useMemo(()=>[...s].sort((n,c)=>n.phase-c.phase),[s]);function x(n){r(c=>{const p=new Set(c);return p.has(n)?p.delete(n):p.add(n),p})}return i.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-sm)]",children:"No phases available"}):e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0 bg-bg-secondary",children:[e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary",children:"All Phases"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary bg-bg-card rounded-full px-[var(--spacing-1-5)] tabular-nums",children:i.length}),e.jsx("div",{className:"ml-auto flex items-center gap-[var(--spacing-3)]",children:["executing","verifying","reviewing","planning","completed"].map(n=>{const c=i.filter(p=>p.status===n).length;return c===0?null:e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:v[n]}}),e.jsx("span",{className:"text-[length:10px] text-text-secondary tabular-nums",children:c})]},n)})})]}),e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{className:"sticky top-0 z-10",children:e.jsxs("tr",{className:"bg-bg-secondary border-b border-border-divider",children:[e.jsx("th",{className:`${w} w-[60px]`,children:"#"}),e.jsx("th",{className:`${w} w-[120px]`,children:"Status"}),e.jsx("th",{className:w,children:"Title"}),e.jsx("th",{className:`${w} hidden lg:table-cell`,children:"Goal"}),e.jsx("th",{className:`${w} w-[60px] text-center hidden sm:table-cell`,children:"Wave"}),e.jsx("th",{className:`${w} text-right w-[130px] hidden sm:table-cell`,children:"Progress"})]})}),e.jsx("tbody",{children:i.map((n,c)=>{const{tasks_completed:p,tasks_total:o,current_wave:d}=n.execution,g=a.has(n.phase),b=n.plan.task_count>0;return e.jsxs(m.Fragment,{children:[e.jsxs("tr",{className:["border-t border-border-divider transition-colors",c%2===0?"bg-bg-primary":"bg-[rgba(0,0,0,0.015)]"].join(" "),children:[e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-[length:var(--font-size-xs)] font-mono text-text-tertiary whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[b&&e.jsx("button",{type:"button",onClick:()=>x(n.phase),className:"w-4 h-4 flex items-center justify-center text-text-tertiary hover:text-text-primary transition-colors","aria-label":g?"Collapse tasks":"Expand tasks",children:e.jsx("svg",{className:`w-3 h-3 transition-transform duration-150 ${g?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})})}),"P-",String(n.phase).padStart(2,"0")]})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)]",children:e.jsx(T,{status:n.status,cardVariant:!0})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary",children:n.title}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-[length:var(--font-size-xs)] text-text-secondary hidden lg:table-cell max-w-[320px]",children:e.jsx("span",{className:"line-clamp-1",children:n.goal})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-center hidden sm:table-cell",children:n.status==="executing"&&d>0?e.jsxs("span",{className:"text-[length:10px] font-[var(--font-weight-semibold)] tabular-nums",style:{color:v.executing},children:["W",d]}):e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:"—"})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] hidden sm:table-cell",children:o>0?e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] justify-end",children:[e.jsx("div",{className:"w-[56px]",children:e.jsx(E,{completed:p,total:o,color:v[n.status]})}),e.jsxs("span",{className:"text-[length:10px] text-text-tertiary tabular-nums w-[32px] text-right shrink-0",children:[p,"/",o]})]}):e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary block text-right",children:"—"})})]}),g&&e.jsx(Oe,{phaseId:n.phase,onSelectTask:t})]},n.phase)})})]})})]})}const D=["board","timeline","center","table"];function Ke(){const[t,s]=m.useState("board"),[a,r]=m.useState(null),{register:i,unregister:x}=m.useContext(X),{selectedPhase:n,setSelectedPhase:c}=y(Y(l=>({selectedPhase:l.selectedPhase,setSelectedPhase:l.setSelectedPhase}))),p=m.useCallback(l=>{s(D[l]),c(null),r(null)},[c]),o=m.useCallback(l=>{r(l),c(null)},[c]),d=m.useMemo(()=>({items:[{label:"Board",icon:e.jsx(ae,{size:14,strokeWidth:2}),shortcut:"1"},{label:"Timeline",icon:e.jsx(U,{size:14,strokeWidth:2}),shortcut:"2"},{label:"Center",icon:e.jsx(J,{size:14,strokeWidth:2}),shortcut:"3"},{label:"Table",icon:e.jsx(Z,{size:14,strokeWidth:2}),shortcut:"4"}],activeIndex:D.indexOf(t),onSwitch:p}),[t,p]);m.useEffect(()=>{i(d)},[d,i]),m.useEffect(()=>()=>x(),[x]);const g=a??(n!==null?{type:"phase",phaseId:n}:null),b=g!==null,j=(g==null?void 0:g.type)==="task"?"Task Detail":"Phase Detail";return e.jsx("div",{className:"flex flex-col h-full overflow-hidden",children:e.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[e.jsxs("div",{className:"flex-1 min-w-0 overflow-hidden",children:[t==="board"&&e.jsx(ve,{onSelectTask:o}),t==="timeline"&&e.jsx(ye,{onSelectPhase:l=>{r(null),c(n===l?null:l)},onSelectTask:o}),t==="center"&&e.jsx(Le,{}),t==="table"&&e.jsx(Re,{onSelectTask:o})]}),e.jsx(ee,{open:b,onClose:()=>{c(null),r(null)},title:j,children:g!==null&&e.jsx(te,{selectedItem:g})})]})})}export{Ke as WorkflowPage};
|
|
6
|
+
*/const re=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],ne=Q("play",re),R=[{status:"not_started",label:"Pending"},{status:"planning",label:"Planning"},{status:"executing",label:"Executing"},{status:"verifying",label:"Verifying"},{status:"reviewing",label:"Reviewing"},{status:"completed",label:"Complete"}];function ie(t,s){return t.filter(a=>a.status===s).length}function oe({phases:t,hiddenCols:s,onToggleCol:a}){return e.jsx("div",{className:"flex items-center px-[var(--spacing-4)] py-[var(--spacing-3)] border-b border-border-divider bg-bg-primary shrink-0 gap-0 overflow-x-auto",children:R.map((r,i)=>{const x=ie(t,r.status),n=v[r.status],c=s==null?void 0:s.has(r.status);return e.jsxs("div",{className:"contents",children:[e.jsxs("button",{type:"button",onClick:()=>a==null?void 0:a(r.status),className:`flex items-center gap-[var(--spacing-2)] px-[var(--spacing-3-5)] py-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] cursor-pointer transition-all rounded-full border ${c?"opacity-40 border-border bg-bg-secondary":"opacity-100 border-transparent bg-transparent hover:bg-bg-secondary"}`,title:c?`Show ${r.label} column`:`Hide ${r.label} column`,children:[e.jsx("span",{className:"inline-block w-2 h-2 rounded-full shrink-0",style:{backgroundColor:n}}),e.jsx("span",{className:"text-text-tertiary",children:r.label}),e.jsx("span",{className:"text-[10px] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full bg-bg-secondary text-text-tertiary font-mono",children:x})]}),i<R.length-1&&e.jsx("div",{className:"relative w-5 h-px bg-border shrink-0",children:e.jsx("div",{className:"absolute -right-px -top-[3px] border-[3px] border-transparent border-l-[4px] border-l-border"})})]},r.status)})})}const S={feat:{bg:"rgba(74,144,217,0.12)",text:"var(--color-status-exploring)"},feature:{bg:"rgba(74,144,217,0.12)",text:"var(--color-status-exploring)"},fix:{bg:"rgba(208,84,84,0.12)",text:"var(--color-status-blocked)"},refac:{bg:"rgba(139,107,191,0.12)",text:"var(--color-status-planning)"},refactor:{bg:"rgba(139,107,191,0.12)",text:"var(--color-status-planning)"},docs:{bg:"rgba(160,157,151,0.12)",text:"var(--color-status-pending)"},test:{bg:"rgba(91,141,184,0.12)",text:"var(--color-status-testing)"}},B={in_progress:{bg:"rgba(201,155,45,0.1)",text:"var(--color-status-executing)"},running:{bg:"rgba(201,155,45,0.1)",text:"var(--color-status-executing)"},pending:{bg:"rgba(160,157,151,0.1)",text:"var(--color-status-pending)"},queued:{bg:"rgba(160,157,151,0.1)",text:"var(--color-status-pending)"},completed:{bg:"rgba(61,155,111,0.1)",text:"var(--color-status-completed)"},done:{bg:"rgba(61,155,111,0.1)",text:"var(--color-status-completed)"},failed:{bg:"rgba(208,84,84,0.1)",text:"var(--color-status-blocked)"}},le={in_progress:"Running",running:"Running",pending:"Queued",queued:"Queued",completed:"Done",done:"Done",failed:"Failed"};function V(t){return{feature:"feat",refactor:"refac"}[t]??t}function ce({task:t}){const s=S[t.type]??S[V(t.type)]??S.feat,a=B[t.status]??B.pending,r=le[t.status]??t.status;return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2-5)] py-[var(--spacing-1-5)] rounded-[var(--radius-default)] bg-bg-card text-[length:var(--font-size-xs)] cursor-pointer transition-colors duration-[var(--duration-fast)] hover:bg-bg-hover",children:[e.jsx("span",{className:"font-mono text-[length:10px] text-text-tertiary min-w-[60px] shrink-0",children:t.id}),e.jsx("span",{className:"text-[length:9px] font-[var(--font-weight-semibold)] uppercase px-[7px] py-[2px] rounded-full shrink-0",style:{backgroundColor:s.bg,color:s.text},children:V(t.type)}),e.jsx("span",{className:"flex-1 text-text-primary whitespace-nowrap overflow-hidden text-ellipsis",children:t.title}),e.jsx("span",{className:"text-[length:10px] font-[var(--font-weight-semibold)] px-[7px] py-[2px] rounded-full shrink-0",style:{backgroundColor:a.bg,color:a.text},children:r})]})}const de={not_started:"var(--color-tint-pending)",planning:"var(--color-tint-planning)",executing:"var(--color-tint-executing)",verifying:"var(--color-tint-verifying)",reviewing:"var(--color-tint-reviewing)",completed:"var(--color-tint-completed)",blocked:"var(--color-tint-blocked)"};function xe({phase:t,onSelectTask:s,recommendedAdvance:a}){const r=y(u=>u.setSelectedPhase),[i,x]=m.useState(!1),{tasks:n,loading:c}=$(i?t.phase:null),{tasks_completed:p,tasks_total:o,current_wave:d}=t.execution,g=v[t.status],b=t.verification.gaps.length>0,j=t.plan.task_count>0,l=H(u=>u.issues),h=m.useMemo(()=>l.filter(u=>u.phase_id===t.phase),[l,t.phase]),f=h.filter(u=>{var k;return((k=u.execution)==null?void 0:k.status)==="running"}).length;return j?e.jsxs("div",{children:[e.jsxs("div",{role:"button",tabIndex:0,onClick:()=>r(t.phase),onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),r(t.phase))},className:"rounded-[10px] px-[var(--spacing-3-5)] py-[var(--spacing-3)] cursor-pointer transition-all duration-[var(--duration-normal)] ease-[var(--ease-spring)] hover:-translate-y-0.5 hover:shadow-[0_4px_12px_rgba(0,0,0,0.06)] focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",style:{backgroundColor:de[t.status]??"var(--color-tint-pending)"},children:[e.jsxs("div",{className:"flex items-center justify-between mb-[var(--spacing-1-5)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)]",children:[e.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),x(!i)},className:"w-4 h-4 flex items-center justify-center text-text-tertiary hover:text-text-primary transition-colors","aria-label":i?"Collapse tasks":"Expand tasks",children:e.jsx("svg",{className:`w-3 h-3 transition-transform duration-150 ${i?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})})}),e.jsx(T,{status:t.status,cardVariant:!0})]}),e.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-mono text-text-tertiary",children:["P-",String(t.phase).padStart(2,"0")]})]}),e.jsx("div",{className:"text-[length:var(--font-size-base)] font-[var(--font-weight-semibold)] text-text-primary mb-[var(--spacing-0-5)]",children:t.title}),t.goal&&e.jsx("p",{className:"text-[12px] text-text-secondary leading-[var(--line-height-normal)] line-clamp-2 mb-[var(--spacing-2)]",children:t.goal}),o>0&&e.jsx(E,{completed:p,total:o,color:g}),t.status==="executing"&&d>0&&e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] mt-[var(--spacing-1-5)]",style:{color:g},children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full animate-pulse motion-reduce:animate-none",style:{backgroundColor:g}}),"Wave ",d," active"]}),b&&e.jsxs("div",{className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full",style:{backgroundColor:"rgba(196, 101, 85, 0.1)",color:"var(--color-status-blocked)"},children:[t.verification.gaps.length," Gap",t.verification.gaps.length>1?"s":""]}),a&&e.jsxs("div",{className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full",style:{backgroundColor:"rgba(91, 141, 184, 0.1)",color:"var(--color-accent-blue)"},children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full animate-pulse",style:{backgroundColor:"var(--color-accent-blue)"}}),"Advance recommended"]}),f>0&&e.jsxs(W,{to:`/kanban?phase=${t.phase}`,onClick:u=>u.stopPropagation(),className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full no-underline transition-colors hover:opacity-80",style:{backgroundColor:"var(--color-status-bg-executing)",color:"var(--color-status-executing)"},title:`${f} issue(s) running — view in Kanban`,children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full animate-pulse",style:{backgroundColor:"var(--color-status-executing)"}}),f," running"]}),h.length>0&&f===0&&e.jsxs(W,{to:`/kanban?phase=${t.phase}`,onClick:u=>u.stopPropagation(),className:"inline-flex items-center gap-[var(--spacing-1)] mt-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] px-[var(--spacing-2)] py-[var(--spacing-0-5)] rounded-full no-underline transition-colors hover:opacity-80",style:{backgroundColor:"var(--color-bg-secondary)",color:"var(--color-text-tertiary)",border:"1px solid var(--color-border)"},children:[h.length," issue",h.length>1?"s":""]})]}),i&&e.jsx("div",{className:"mt-[var(--spacing-1)] flex flex-col gap-[var(--spacing-1)]",children:c?e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary px-[var(--spacing-3)] py-[var(--spacing-2)]",children:"Loading tasks..."}):n.length===0?e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary px-[var(--spacing-3)] py-[var(--spacing-2)]",children:"No tasks"}):n.map(u=>e.jsx("div",{onClick:()=>s==null?void 0:s({type:"task",task:u,phaseId:t.phase}),children:e.jsx(ce,{task:{id:u.id,title:u.title,type:u.type,status:u.meta.status}})},u.id))})]}):e.jsx("div",{role:"button",tabIndex:0,onClick:()=>r(t.phase),onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),r(t.phase))},className:"rounded-[8px] px-[var(--spacing-3)] py-[var(--spacing-2)] cursor-pointer transition-all duration-[var(--duration-normal)] hover:shadow-[0_2px_8px_rgba(0,0,0,0.04)] focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)] opacity-60 hover:opacity-80",style:{border:"1px dashed var(--color-border)",backgroundColor:"transparent"},children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx(T,{status:t.status,cardVariant:!0}),e.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-secondary",children:t.title})]}),e.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-mono text-text-tertiary",children:["P-",String(t.phase).padStart(2,"0")]})]})})}const P=4;function pe({color:t,phases:s,label:a,onSelectTask:r}){const[i,x]=m.useState(!1),n=[...s].sort((d,g)=>(g.plan.task_count||0)-(d.plan.task_count||0)),c=n.length>P,p=i||!c?n:n.slice(0,P),o=n.length-P;return e.jsxs("div",{className:"flex flex-col w-[280px] shrink-0 bg-bg-secondary rounded-[12px] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-3-5)] py-[var(--spacing-2-5)]",children:[e.jsx("span",{className:"inline-block w-2.5 h-2.5 rounded-full shrink-0",style:{backgroundColor:t}}),e.jsx("span",{className:"text-[12px] font-[var(--font-weight-semibold)] text-text-primary",children:a}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary bg-bg-card px-[var(--spacing-1-5)] rounded-full",children:s.length})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-2)] pb-[var(--spacing-2)] flex flex-col gap-[var(--spacing-2)]",children:[p.map(d=>e.jsx(xe,{phase:d,onSelectTask:r},d.phase)),c&&e.jsx("button",{type:"button",onClick:()=>x(!i),className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-tertiary hover:text-text-secondary py-[var(--spacing-1-5)] cursor-pointer transition-colors text-center",children:i?"Show less":`+${o} more`})]})]})}function ue(){var p;const t=y(o=>o.board),s=(t==null?void 0:t.phases)??[],a=s.filter(o=>o.status==="completed").length,r=s.length,i=s.reduce((o,d)=>o+d.execution.tasks_completed,0),x=s.reduce((o,d)=>o+d.execution.tasks_total,0),n=x>0?Math.round(i/x*100):0,c=((p=t==null?void 0:t.project)==null?void 0:p.current_milestone)??"";return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-5)] px-[var(--spacing-5)] py-[var(--spacing-2)] border-t border-border bg-bg-secondary text-[12px] shrink-0",children:[c&&e.jsx("span",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:c}),e.jsxs("span",{className:"text-text-secondary",children:["Phases: ",e.jsxs("strong",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:[a,"/",r]})," complete"]}),e.jsxs("span",{className:"text-text-secondary",children:["Tasks: ",e.jsxs("strong",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:[i,"/",x]})]}),e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] w-36",children:[e.jsx("div",{className:"flex-1 h-1 rounded-full bg-border overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full transition-[width] duration-500 ease-out",style:{width:`${n}%`,backgroundColor:"var(--color-status-completed)"}})}),e.jsxs("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-medium)] text-text-secondary font-mono tabular-nums",children:[n,"%"]})]})]})}const _=[{status:"not_started",label:"Pending",match:["not_started"]},{status:"planning",label:"Planning",match:["planning"]},{status:"executing",label:"Executing",match:["executing"]},{status:"verifying",label:"Verifying",match:["verifying"]},{status:"reviewing",label:"Reviewing",match:["reviewing"]},{status:"completed",label:"Complete",match:["completed"]},{status:"blocked",label:"Blocked",match:["blocked"]}];function ge(t){const s=new Map;for(const a of _)s.set(a.status,[]);for(const a of t){const r=_.find(i=>i.match.includes(a.status));r&&s.get(r.status).push(a)}return s}function ve({onSelectTask:t}){const s=y(n=>{var c;return((c=n.board)==null?void 0:c.phases)??[]}),a=m.useMemo(()=>ge(s),[s]),[r,i]=m.useState(()=>new Set(["completed"])),x=m.useCallback(n=>{i(c=>{const p=new Set(c);return p.has(n)?p.delete(n):p.add(n),p})},[]);return e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsx(oe,{phases:s,hiddenCols:r,onToggleCol:x}),e.jsxs("div",{className:"flex gap-[var(--spacing-2-5)] flex-1 overflow-x-auto px-[var(--spacing-3)] py-[var(--spacing-3)]",children:[_.map(n=>r.has(n.status)?null:e.jsx(pe,{status:n.status,color:v[n.status],label:n.label,phases:a.get(n.status)??[],onSelectTask:t},n.status)),r.size===_.length&&e.jsx("div",{className:"flex-1 flex items-center justify-center text-text-tertiary text-[length:var(--font-size-sm)]",children:"All columns hidden — click a category tag above to show it."})]}),e.jsx(ue,{})]})}const me=6,he=Array.from({length:me},(t,s)=>`Week ${s+1}`),M={pending:"var(--color-status-pending)",in_progress:"var(--color-status-executing)",completed:"var(--color-status-completed)",failed:"var(--color-status-blocked)"},fe={pending:"Queued",in_progress:"Running",completed:"Done",failed:"Failed"};function be({phaseId:t,onSelectTask:s}){const{tasks:a,loading:r}=$(t);return r?e.jsxs("div",{className:"grid items-center py-[var(--spacing-1)] border-b border-border-divider",style:{gridTemplateColumns:"180px 1fr"},children:[e.jsx("div",{className:"pl-[var(--spacing-6)] text-[length:var(--font-size-xs)] text-text-tertiary",children:"Loading..."}),e.jsx("div",{})]}):a.length===0?null:e.jsx(e.Fragment,{children:a.map(i=>e.jsxs("div",{className:"grid items-center py-[var(--spacing-1)] border-b border-border-divider bg-[rgba(0,0,0,0.02)] cursor-pointer hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",style:{gridTemplateColumns:"180px 1fr"},onClick:()=>s==null?void 0:s({type:"task",task:i,phaseId:t}),children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] pl-[var(--spacing-6)] text-[length:var(--font-size-xs)]",children:[e.jsx("span",{className:"w-[6px] h-[6px] rounded-full shrink-0",style:{backgroundColor:M[i.meta.status]??"var(--color-status-pending)"}}),e.jsx("span",{className:"font-mono text-[length:10px] text-text-tertiary shrink-0",children:i.id}),e.jsx("span",{className:"text-text-secondary truncate",children:i.title}),e.jsx("span",{className:"ml-auto pr-[var(--spacing-3)] text-[length:10px] font-[var(--font-weight-medium)] shrink-0",style:{color:M[i.meta.status]??"var(--color-text-tertiary)"},children:fe[i.meta.status]??i.meta.status})]}),e.jsx("div",{})]},i.id))})}function ye({onSelectPhase:t,onSelectTask:s}){const a=y(l=>l.board),[r,i]=m.useState(new Set);if(!a||a.phases.length===0)return e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-sm)]",children:"No phases to display"});const x=a.phases,n=x.length,c=x.reduce((l,h)=>l+h.execution.tasks_total,0),p=x.reduce((l,h)=>l+h.execution.tasks_completed,0),o=c>0?Math.round(p/c*100):0,d=x.find(l=>l.status==="executing"),g=d?x.indexOf(d):-1,b=g>=0&&d?(()=>{const l=g/n*100,h=1/n*100,f=d.execution.tasks_total>0?d.execution.tasks_completed/d.execution.tasks_total:0;return l+h*f})():-1;function j(l){i(h=>{const f=new Set(h);return f.has(l)?f.delete(l):f.add(l),f})}return e.jsxs("div",{className:"p-[var(--spacing-4)] h-full overflow-auto",children:[e.jsxs("div",{className:"grid border-b border-border pb-[var(--spacing-2)] mb-[var(--spacing-1)]",style:{gridTemplateColumns:"180px 1fr"},children:[e.jsx("span",{className:"text-[length:11px] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-[0.04em]",children:"Phase"}),e.jsx("div",{className:"flex justify-between",children:he.map(l=>e.jsx("span",{className:"text-[length:10px] text-text-tertiary",children:l},l))})]}),x.map((l,h)=>{const f=v[l.status],u=h/n*100,k=1/n*100,N=l.execution.tasks_total>0?l.execution.tasks_completed/l.execution.tasks_total:0,G=l.status==="not_started"?.5:l.status==="completed"?1:.85,L=l.plan.task_count>0,z=r.has(l.phase);return e.jsxs("div",{children:[e.jsxs("div",{className:"grid items-center py-[var(--spacing-1-5)] border-b border-border-divider cursor-pointer hover:bg-bg-hover transition-colors duration-[var(--duration-fast)]",style:{gridTemplateColumns:"180px 1fr"},onClick:()=>t(l.phase),children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] text-[length:var(--font-size-xs)]",children:[L&&e.jsx("button",{type:"button",onClick:K=>{K.stopPropagation(),j(l.phase)},className:"w-4 h-4 flex items-center justify-center text-text-tertiary hover:text-text-primary transition-colors shrink-0","aria-label":z?"Collapse tasks":"Expand tasks",children:e.jsx("svg",{className:`w-3 h-3 transition-transform duration-150 ${z?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})})}),!L&&e.jsx("span",{className:"w-4 shrink-0"}),e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:f}}),e.jsx("span",{className:"font-[var(--font-weight-medium)] text-text-primary truncate",children:l.title}),e.jsxs("span",{className:"ml-auto pr-[var(--spacing-3)] font-mono text-[length:10px] text-text-tertiary",children:[l.execution.tasks_completed,"/",l.execution.tasks_total]})]}),e.jsxs("div",{className:"relative h-7 bg-bg-secondary rounded-[var(--radius-default)] overflow-visible",children:[e.jsxs("div",{className:"absolute top-1 h-5 rounded-[var(--radius-default)] flex items-center px-[var(--spacing-2)] text-[length:10px] font-[var(--font-weight-semibold)] text-white transition-[width] duration-300 ease-[var(--ease-out)]",style:{left:`${u}%`,width:`${k}%`,backgroundColor:f,opacity:G},children:[N>0&&N<1&&e.jsx("div",{className:"absolute top-0 left-0 h-full rounded-[var(--radius-default)] opacity-30 bg-white",style:{width:`${N*100}%`}}),e.jsxs("span",{className:"relative z-[1] whitespace-nowrap",children:["P-",String(l.phase).padStart(2,"0"),N>0&&N<1?` (${Math.round(N*100)}%)`:""]})]}),b>=0&&(d==null?void 0:d.phase)===l.phase&&e.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-[var(--color-status-blocked)] z-[5] rounded-sm",style:{left:`${b}%`},children:e.jsx("span",{className:"absolute -top-[18px] -left-3 text-[length:9px] font-[var(--font-weight-semibold)] text-[var(--color-status-blocked)]",children:"Today"})})]})]}),z&&e.jsx(be,{phaseId:l.phase,onSelectTask:s})]},l.phase)}),e.jsxs("div",{className:"mt-[var(--spacing-5)] pt-[var(--spacing-3)] border-t border-border flex items-center gap-[var(--spacing-5)]",children:[e.jsxs("span",{className:"text-[length:var(--font-size-xs)] text-text-secondary",children:[e.jsx("strong",{className:"font-[var(--font-weight-semibold)] text-text-primary",children:"Overall:"})," ",p,"/",c," tasks complete (",o,"%)"]}),e.jsx("div",{className:"w-[200px]",children:e.jsx(E,{completed:p,total:c})})]})]})}const je={not_started:"Pending",planning:"Plan",executing:"Execute",verifying:"Verify",reviewing:"Review",completed:"Done",blocked:"Blocked"};function F(t){return t==="completed"}function q(t){return t==="executing"}function Ne(t){return F(t)||q(t)?1:t==="verifying"||t==="reviewing"||t==="planning"?.7:.4}function we({phases:t}){return e.jsx("div",{className:"flex items-center gap-0 px-[var(--spacing-6)] py-[var(--spacing-4)] border-b border-border bg-bg-primary overflow-x-auto shrink-0",children:t.map((s,a)=>{const r=v[s.status],i=F(s.status),x=q(s.status),n=Ne(s.status);return e.jsxs("div",{className:"contents",children:[e.jsxs("div",{className:"flex flex-col items-center gap-1 shrink-0 cursor-pointer group",children:[e.jsxs("div",{className:"relative w-[42px] h-[42px] rounded-[12px] flex items-center justify-center text-[length:var(--font-size-sm)] font-bold text-white transition-transform duration-200 group-hover:scale-110",style:{backgroundColor:r,opacity:n},children:[i?e.jsx(A,{size:18,strokeWidth:2.5}):s.phase,x&&e.jsx("span",{className:"absolute -inset-1 rounded-[14px] border-2 animate-pulse opacity-30",style:{borderColor:r}})]}),e.jsx("span",{className:"text-[10px] font-[var(--font-weight-semibold)] max-w-[80px] text-center truncate text-text-tertiary",style:x?{color:r,fontWeight:700}:void 0,children:s.title}),e.jsx("span",{className:"text-[8px] font-[var(--font-weight-semibold)] uppercase tracking-wide px-[5px] py-px rounded-full",style:{backgroundColor:`color-mix(in srgb, ${r} 12%, transparent)`,color:r},children:je[s.status]})]}),a<t.length-1&&e.jsxs("div",{className:"relative w-10 h-0.5 shrink-0 mb-[22px]",children:[e.jsx("div",{className:"absolute inset-0 bg-border"}),i&&e.jsx("div",{className:"absolute top-0 left-0 h-full rounded-sm",style:{width:"100%",backgroundColor:"var(--color-status-completed)"}}),!i&&e.jsx("div",{className:"absolute -right-px -top-[3px] border-[3px] border-transparent border-l-[5px] border-l-border"})]})]},s.phase)})})}const ke={not_started:"/maestro-analyze {N}",planning:"/maestro-execute {N}",executing:"/maestro-execute {N}",verifying:"/quality-review {N}",reviewing:"/quality-review {N}",completed:"/maestro-milestone-audit",blocked:"/quality-debug"};function Ce(t){const s=t.filter(a=>a.status!=="completed"&&a.status!=="blocked");return s.length===0?null:s.reduce((a,r)=>r.phase<a.phase?r:a,s[0])}function _e({phase:t}){const[s,a]=m.useState(!1),r=m.useRef(null);if(m.useEffect(()=>()=>{r.current&&clearTimeout(r.current)},[]),!t)return e.jsx("div",{className:"text-[length:var(--font-size-sm)] text-text-tertiary italic text-center py-[var(--spacing-6)]",children:"All phases complete"});const x=(ke[t.status]??"").replace("{N}",String(t.phase)),n=v[t.status];function c(){navigator.clipboard.writeText(x).then(()=>{a(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>a(!1),2e3)})}return e.jsxs("div",{className:"flex flex-col gap-[var(--spacing-2)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2-5)] mb-[var(--spacing-2)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-[10px] flex items-center justify-center text-[length:var(--font-size-base)] font-bold text-white shrink-0",style:{backgroundColor:n},children:t.phase}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-[length:var(--font-size-sm)] font-bold text-text-primary truncate",children:t.title}),e.jsx("span",{className:"inline-block text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full mt-px",style:{backgroundColor:`${n}1a`,color:n},children:t.status.replace(/_/g," ").replace(/\b\w/g,p=>p.toUpperCase())})]})]}),e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)]",children:[e.jsx("code",{className:"flex-1 font-mono bg-bg-primary border border-border-divider rounded px-[var(--spacing-1-5)] py-[var(--spacing-0-5)] text-[length:var(--font-size-xs)] text-text-primary truncate",children:x}),e.jsx("button",{type:"button",onClick:c,className:"shrink-0 cursor-pointer text-text-tertiary hover:text-text-primary transition-colors text-[length:var(--font-size-xs)]",children:s?"Copied!":"Copy"})]})]})}function ze(){const t=y(a=>{var r;return((r=a.board)==null?void 0:r.phases)??[]}),s=t.find(a=>a.status==="executing")??null;return e.jsxs("div",{className:"flex flex-col overflow-hidden border-r border-r-border-divider border-b border-b-border-divider",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0",children:[e.jsx(ne,{size:14,strokeWidth:2,className:"text-text-tertiary"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-tertiary",children:"Active Execution"}),s&&s.execution.current_wave>0&&e.jsxs("span",{className:"ml-auto text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full",style:{backgroundColor:"rgba(184, 149, 64, 0.12)",color:v.executing},children:["Wave ",s.execution.current_wave]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-4)] py-[var(--spacing-3)]",children:s?e.jsx(Se,{phase:s}):e.jsx(_e,{phase:Ce(t)})})]})}function Se({phase:t}){const{tasks_completed:s,tasks_total:a,current_wave:r}=t.execution,i=a>0?Math.round(s/a*100):0,x=v[t.status];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2-5)] mb-[var(--spacing-3)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-[10px] flex items-center justify-center text-[length:var(--font-size-base)] font-bold text-white",style:{backgroundColor:x},children:t.phase}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[length:var(--font-size-base)] font-bold text-text-primary",children:t.title}),t.goal&&e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:t.goal})]})]}),e.jsxs("div",{className:"mb-[var(--spacing-3-5)]",children:[e.jsx("div",{className:"h-1.5 bg-border rounded-full overflow-hidden mb-1",children:e.jsx("div",{className:"h-full rounded-full transition-[width] duration-500 ease-out",style:{width:`${i}%`,backgroundColor:"var(--color-status-completed)"}})}),e.jsxs("div",{className:"flex justify-between text-[length:var(--font-size-xs)] text-text-tertiary",children:[e.jsxs("span",{children:[s," of ",a," tasks complete"]}),e.jsxs("span",{children:[i,"%"]})]})]}),r>0&&e.jsxs("div",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1-5)]",children:["Wave ",r]}),t.plan.task_ids.length>0&&e.jsx("div",{className:"flex flex-col gap-1",children:t.plan.task_ids.map(n=>e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-2-5)] py-[var(--spacing-1-5)] rounded-[var(--radius-md)] bg-bg-primary border border-border-divider text-[length:var(--font-size-sm)]",children:[e.jsx("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 bg-text-quaternary"}),e.jsx("span",{className:"flex-1 text-text-primary font-[var(--font-weight-medium)] truncate",children:n}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-mono text-text-quaternary",children:n})]},n))})]})}const Pe={not_started:"Not Started",planning:"Planning",executing:"Executing",verifying:"Verifying",reviewing:"Reviewing",completed:"Completed",blocked:"Blocked"};function Te(){const t=y(s=>{var a;return((a=s.board)==null?void 0:a.phases)??[]});return e.jsxs("div",{className:"flex flex-col overflow-hidden border-r border-r-border-divider border-b border-border-divider",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0",children:[e.jsx(U,{size:14,strokeWidth:2,className:"text-text-tertiary"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-tertiary",children:"Phase Queue"}),e.jsxs("span",{className:"ml-auto text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] px-[var(--spacing-1-5)] py-px rounded-full bg-border-subtle text-text-secondary",children:[t.length," phases"]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-4)] py-[var(--spacing-3)]",children:t.map(s=>{const a=v[s.status],{tasks_completed:r,tasks_total:i,current_wave:x}=s.execution,n=i>0?Math.round(r/i*100):0,c=s.status==="executing",p=s.status==="completed";let o=Pe[s.status];return c&&x>0&&(o+=` -- Wave ${x}`),s.verification.gaps.length>0&&(o+=` -- ${s.verification.gaps.length} gap(s)`),e.jsxs("div",{className:["flex items-center gap-[var(--spacing-2-5)] px-[var(--spacing-2-5)] py-[var(--spacing-2)] rounded-[var(--radius-md)] cursor-pointer transition-all duration-150 mb-0.5",c?"bg-[var(--color-tint-executing)]":"hover:bg-bg-primary"].join(" "),children:[e.jsx("div",{className:"w-6 h-6 rounded-[7px] flex items-center justify-center text-[length:var(--font-size-xs)] font-bold text-white shrink-0",style:{backgroundColor:a},children:p?e.jsx(A,{size:12,strokeWidth:2.5}):s.phase}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-semibold)] text-text-primary truncate",children:s.title}),e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",style:c?{color:a}:void 0,children:o})]}),e.jsxs("div",{className:"text-right shrink-0",children:[e.jsxs("div",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] font-mono text-text-tertiary",style:p?{color:a}:void 0,children:[r,"/",i]}),e.jsx("div",{className:"w-10 h-[3px] bg-border rounded-full overflow-hidden mt-0.5",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${n}%`,backgroundColor:a}})})]})]},s.phase)})})]})}function $e(){const t=y(o=>o.board),s=(t==null?void 0:t.phases)??[],a=s.reduce((o,d)=>o+d.execution.tasks_completed,0),r=s.reduce((o,d)=>o+d.execution.tasks_total,0),i=s.filter(o=>o.status==="completed").length,x=s.length,n=s.reduce((o,d)=>o+d.execution.commits.length,0),c=s.filter(o=>o.status==="verifying"||o.status==="reviewing"),p=s.flatMap(o=>o.verification.gaps.map(d=>({phase:o.phase,text:typeof d=="string"?d:d.description??d.id??JSON.stringify(d)})));return e.jsxs("div",{className:"flex flex-col overflow-hidden border-b border-border-divider",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0",children:[e.jsx(O,{size:14,strokeWidth:2,className:"text-text-tertiary"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-tertiary",children:"Quality"})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-[var(--spacing-4)] py-[var(--spacing-3)]",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-[var(--spacing-2)] mb-[var(--spacing-3-5)]",children:[e.jsx(C,{label:"Tasks",value:a,sub:`/${r}`,detail:`${r>0?Math.round(a/r*100):0}% complete`}),e.jsx(C,{label:"Phases",value:i,sub:`/${x}`,detail:`${x>0?Math.round(i/x*100):0}% complete`}),e.jsx(C,{label:"Gaps",value:p.length,color:p.length>0?v.blocked:void 0,detail:"active"}),e.jsx(C,{label:"Commits",value:n,detail:"this milestone"})]}),c.length>0&&e.jsx("div",{className:"mb-[var(--spacing-3-5)]",children:c.map(o=>e.jsxs("div",{className:"mb-[var(--spacing-3)]",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1-5)]",children:[e.jsx(O,{size:12,strokeWidth:2,style:{color:v[o.status]}}),"Verification (P-",String(o.phase).padStart(2,"0"),")"]}),o.verification.must_haves.map((d,g)=>{const j=o.verification.gaps.map(l=>typeof l=="string"?l:l.description??l.id??"").includes(d);return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1-5)] py-1 border-b border-border-divider text-[length:var(--font-size-sm)]",children:[j?e.jsx(se,{size:12,strokeWidth:2.5,style:{color:v.blocked}}):e.jsx(A,{size:12,strokeWidth:2.5,style:{color:v.completed}}),e.jsx("span",{className:"flex-1 text-text-secondary",children:d}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)]",style:{color:j?v.blocked:v.completed},children:j?"Gap":"Verified"})]},g)})]},o.phase))}),s.some(o=>o.validation.test_coverage!==null)&&e.jsxs("div",{children:[e.jsx("div",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-secondary mb-[var(--spacing-1-5)]",children:"Test Coverage"}),s.filter(o=>o.validation.test_coverage!==null).map(o=>{const d=o.validation.test_coverage,g=typeof d=="number"?d:typeof d=="object"&&d!==null?d.statements??0:0,b=g>=80?v.completed:g>=60?v.executing:v.verifying;return e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] text-[length:var(--font-size-xs)] mb-1",children:[e.jsxs("span",{className:"w-[70px] text-text-tertiary font-[var(--font-weight-medium)]",children:["P-",String(o.phase).padStart(2,"0")]}),e.jsx("div",{className:"flex-1 h-1.5 bg-border rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${g}%`,backgroundColor:b}})}),e.jsxs("span",{className:"w-9 text-right font-mono font-[var(--font-weight-semibold)] text-text-secondary",children:[g.toFixed(1),"%"]})]},o.phase)})]})]})]})}function C({label:t,value:s,sub:a,detail:r,color:i}){return e.jsxs("div",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] rounded-[10px] bg-bg-primary border border-border-divider",children:[e.jsx("div",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wide text-text-tertiary mb-1",children:t}),e.jsxs("div",{className:"text-[length:var(--font-size-xl)] font-bold text-text-primary",style:i?{color:i}:void 0,children:[s,a&&e.jsx("span",{className:"text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-tertiary",children:a})]}),e.jsx("div",{className:"text-[length:var(--font-size-xs)] text-text-tertiary mt-0.5",children:r})]})}function Ee(t){const s=[];for(const a of t){const r=v[a.status],i=`P-${String(a.phase).padStart(2,"0")} ${a.title}`;a.status==="executing"&&a.execution.current_wave>0&&s.push({color:r,time:"",text:`Wave ${a.execution.current_wave} active -- ${i}`}),a.status==="verifying"&&a.verification.gaps.length>0&&s.push({color:v.blocked,time:"",text:`${a.verification.gaps.length} gap(s) -- ${i}`}),a.status==="completed"&&s.push({color:r,time:"",text:`Completed -- ${i}`})}return s.slice(0,6)}function Ae(){const t=y(a=>{var r;return((r=a.board)==null?void 0:r.phases)??[]}),s=Ee(t);return s.length===0?null:e.jsxs("div",{className:"col-span-full flex items-center gap-[var(--spacing-4)] px-[var(--spacing-4)] py-[var(--spacing-2)] border-t border-border bg-bg-secondary overflow-x-auto shrink-0",children:[e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] uppercase tracking-wider text-text-quaternary whitespace-nowrap",children:"Activity"}),s.map((a,r)=>e.jsxs("span",{className:"flex items-center gap-[var(--spacing-1-5)] text-[length:var(--font-size-xs)] text-text-secondary whitespace-nowrap shrink-0",children:[e.jsx("span",{className:"inline-block w-[5px] h-[5px] rounded-full shrink-0",style:{backgroundColor:a.color}}),a.text,r<s.length-1&&e.jsx("span",{className:"inline-block w-px h-3.5 bg-border-divider ml-[var(--spacing-4)]"})]},r))]})}function Le(){const t=y(s=>{var a;return((a=s.board)==null?void 0:a.phases)??[]});return e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsx(we,{phases:t}),e.jsxs("div",{className:"flex-1 grid grid-cols-[1fr_1fr_320px] grid-rows-[1fr_auto] overflow-hidden",children:[e.jsx(ze,{}),e.jsx(Te,{}),e.jsx($e,{}),e.jsx(Ae,{})]})]})}const w="text-left px-[var(--spacing-3)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-tertiary uppercase tracking-wide",I={pending:"var(--color-status-pending)",in_progress:"var(--color-status-executing)",completed:"var(--color-status-completed)",failed:"var(--color-status-blocked)"},We={pending:"Queued",in_progress:"Running",completed:"Done",failed:"Failed"};function Oe({phaseId:t,onSelectTask:s}){const{tasks:a,loading:r}=$(t);return r?e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-[var(--spacing-6)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] text-text-tertiary",children:"Loading tasks..."})}):a.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-[var(--spacing-6)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] text-text-tertiary",children:"No tasks"})}):e.jsx(e.Fragment,{children:a.map(i=>e.jsxs("tr",{className:"bg-[rgba(0,0,0,0.03)] border-t border-border-divider cursor-pointer hover:bg-bg-hover transition-colors",onClick:()=>s==null?void 0:s({type:"task",task:i,phaseId:t}),children:[e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] pl-[var(--spacing-6)]",children:e.jsx("span",{className:"inline-block w-2 h-2 rounded-full",style:{backgroundColor:I[i.meta.status]??"var(--color-status-pending)"}})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] font-mono text-text-tertiary",children:i.id}),e.jsx("td",{colSpan:2,className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-[length:var(--font-size-xs)] text-text-primary",children:i.title}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-center hidden sm:table-cell",children:e.jsxs("span",{className:"text-[length:10px] text-text-tertiary tabular-nums",children:["W",i.meta.wave]})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2)] text-right hidden sm:table-cell",children:e.jsx("span",{className:"text-[length:10px] font-[var(--font-weight-medium)]",style:{color:I[i.meta.status]??"var(--color-text-tertiary)"},children:We[i.meta.status]??i.meta.status})})]},i.id))})}function Re({onSelectTask:t}){const s=y(n=>{var c;return((c=n.board)==null?void 0:c.phases)??[]}),[a,r]=m.useState(new Set),i=m.useMemo(()=>[...s].sort((n,c)=>n.phase-c.phase),[s]);function x(n){r(c=>{const p=new Set(c);return p.has(n)?p.delete(n):p.add(n),p})}return i.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary text-[length:var(--font-size-sm)]",children:"No phases available"}):e.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-[var(--spacing-3)] px-[var(--spacing-4)] py-[var(--spacing-2-5)] border-b border-border-divider shrink-0 bg-bg-secondary",children:[e.jsx("span",{className:"text-[length:var(--font-size-xs)] font-[var(--font-weight-semibold)] text-text-primary",children:"All Phases"}),e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary bg-bg-card rounded-full px-[var(--spacing-1-5)] tabular-nums",children:i.length}),e.jsx("div",{className:"ml-auto flex items-center gap-[var(--spacing-3)]",children:["executing","verifying","reviewing","planning","completed"].map(n=>{const c=i.filter(p=>p.status===n).length;return c===0?null:e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:v[n]}}),e.jsx("span",{className:"text-[length:10px] text-text-secondary tabular-nums",children:c})]},n)})})]}),e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{className:"sticky top-0 z-10",children:e.jsxs("tr",{className:"bg-bg-secondary border-b border-border-divider",children:[e.jsx("th",{className:`${w} w-[60px]`,children:"#"}),e.jsx("th",{className:`${w} w-[120px]`,children:"Status"}),e.jsx("th",{className:w,children:"Title"}),e.jsx("th",{className:`${w} hidden lg:table-cell`,children:"Goal"}),e.jsx("th",{className:`${w} w-[60px] text-center hidden sm:table-cell`,children:"Wave"}),e.jsx("th",{className:`${w} text-right w-[130px] hidden sm:table-cell`,children:"Progress"})]})}),e.jsx("tbody",{children:i.map((n,c)=>{const{tasks_completed:p,tasks_total:o,current_wave:d}=n.execution,g=a.has(n.phase),b=n.plan.task_count>0;return e.jsxs(m.Fragment,{children:[e.jsxs("tr",{className:["border-t border-border-divider transition-colors",c%2===0?"bg-bg-primary":"bg-[rgba(0,0,0,0.015)]"].join(" "),children:[e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-[length:var(--font-size-xs)] font-mono text-text-tertiary whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center gap-[var(--spacing-1)]",children:[b&&e.jsx("button",{type:"button",onClick:()=>x(n.phase),className:"w-4 h-4 flex items-center justify-center text-text-tertiary hover:text-text-primary transition-colors","aria-label":g?"Collapse tasks":"Expand tasks",children:e.jsx("svg",{className:`w-3 h-3 transition-transform duration-150 ${g?"rotate-90":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})})}),"P-",String(n.phase).padStart(2,"0")]})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)]",children:e.jsx(T,{status:n.status,cardVariant:!0})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-[length:var(--font-size-sm)] font-[var(--font-weight-medium)] text-text-primary",children:n.title}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-[length:var(--font-size-xs)] text-text-secondary hidden lg:table-cell max-w-[320px]",children:e.jsx("span",{className:"line-clamp-1",children:n.goal})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] text-center hidden sm:table-cell",children:n.status==="executing"&&d>0?e.jsxs("span",{className:"text-[length:10px] font-[var(--font-weight-semibold)] tabular-nums",style:{color:v.executing},children:["W",d]}):e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary",children:"—"})}),e.jsx("td",{className:"px-[var(--spacing-3)] py-[var(--spacing-2-5)] hidden sm:table-cell",children:o>0?e.jsxs("div",{className:"flex items-center gap-[var(--spacing-2)] justify-end",children:[e.jsx("div",{className:"w-[56px]",children:e.jsx(E,{completed:p,total:o,color:v[n.status]})}),e.jsxs("span",{className:"text-[length:10px] text-text-tertiary tabular-nums w-[32px] text-right shrink-0",children:[p,"/",o]})]}):e.jsx("span",{className:"text-[length:var(--font-size-xs)] text-text-tertiary block text-right",children:"—"})})]}),g&&e.jsx(Oe,{phaseId:n.phase,onSelectTask:t})]},n.phase)})})]})})]})}const D=["board","timeline","center","table"];function Ge(){const[t,s]=m.useState("board"),[a,r]=m.useState(null),{register:i,unregister:x}=m.useContext(X),{selectedPhase:n,setSelectedPhase:c}=y(Y(l=>({selectedPhase:l.selectedPhase,setSelectedPhase:l.setSelectedPhase}))),p=m.useCallback(l=>{s(D[l]),c(null),r(null)},[c]),o=m.useCallback(l=>{r(l),c(null)},[c]),d=m.useMemo(()=>({items:[{label:"Board",icon:e.jsx(ae,{size:14,strokeWidth:2}),shortcut:"1"},{label:"Timeline",icon:e.jsx(U,{size:14,strokeWidth:2}),shortcut:"2"},{label:"Center",icon:e.jsx(J,{size:14,strokeWidth:2}),shortcut:"3"},{label:"Table",icon:e.jsx(Z,{size:14,strokeWidth:2}),shortcut:"4"}],activeIndex:D.indexOf(t),onSwitch:p}),[t,p]);m.useEffect(()=>{i(d)},[d,i]),m.useEffect(()=>()=>x(),[x]);const g=a??(n!==null?{type:"phase",phaseId:n}:null),b=g!==null,j=(g==null?void 0:g.type)==="task"?"Task Detail":"Phase Detail";return e.jsx("div",{className:"flex flex-col h-full overflow-hidden",children:e.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[e.jsxs("div",{className:"flex-1 min-w-0 overflow-hidden",children:[t==="board"&&e.jsx(ve,{onSelectTask:o}),t==="timeline"&&e.jsx(ye,{onSelectPhase:l=>{r(null),c(n===l?null:l)},onSelectTask:o}),t==="center"&&e.jsx(Le,{}),t==="table"&&e.jsx(Re,{onSelectTask:o})]}),e.jsx(ee,{open:b,onClose:()=>{c(null),r(null)},title:j,children:g!==null&&e.jsx(te,{selectedItem:g})})]})})}export{Ge as WorkflowPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e={kanban:"Issue Kanban",artifacts:"Artifacts",chat:"Chat",workflow:"Workflow Kanban",mcp:"MCP Manager",specs:"Specs Manager",wiki:"Wiki",teams:"Agents Team",collab:"Multi-User Collab",requirement:"Requirement",maestro_coordinate:"Maestro Coord",rooms:"Meeting Room",views:"Views"},t={phases:"Phases",no_phases_loaded:"No phases loaded"},o={toggle_sidebar:"Toggle sidebar",kanban_tooltip:"Kanban",artifacts_tooltip:"Artifacts",chat_tooltip:"Chat",workflow_tooltip:"Workflow",mcp_tooltip:"MCP Manager",specs_tooltip:"Specs Manager",wiki_tooltip:"Project Wiki",teams_tooltip:"Agents Team",collab_tooltip:"Multi-User Collab",requirement_tooltip:"Requirement",maestro_coordinate_tooltip:"Maestro Coordinate Sessions",rooms_tooltip:"Meeting Room",views_label:"Views",phases_label:"Phases",phase_dot_aria:"Phase {{phase}}: {{title}} — {{status}}"},s={main_content:"Main content area"},a={phase:"Phase",of:"/",connection:{connected:"Live",disconnected:"Offline",aria_connected:"Connected",aria_disconnected:"Disconnected"}},n={not_started:"Not Started",planning:"Planning",executing:"Executing",verifying:"Verifying",reviewing:"Reviewing",completed:"Completed",blocked:"Blocked"},i={pending:"Pending",in_progress:"In Progress",completed:"Done",failed:"Failed"},r={backlog:"Backlog",triage:"Triage",in_progress:"In Progress",review:"Review",done:"Done",deferred:"Deferred"},c={wave:"Wave",phase_aria:"Phase {{phase}}: {{title}}. Status: {{status}}. {{completed}} of {{total}} tasks completed.",task_aria:"{{type}}: {{title}}. Status: {{status}}",no_phases:"No phases",loading:"Loading board data..."},l={empty_title:"No file selected",empty_desc:"Select a file from the tree to view its contents",loading:"Loading...",breadcrumb_root:".workflow/",aria_viewer:"Artifact viewer",aria_breadcrumb:"Breadcrumb"},d="Cannot connect to dashboard server. Make sure it is running on port 3001.",_="Maestro v{{version}} is available. Run `maestro update` to upgrade.",u="Dismiss",p={en:"English",zh:"中文",aria_label:"Language switcher"},m={tabs:{overview:"Overview",commander:"Commander",executions:"Executions",coordinator:"Coordinator",schedules:"Schedules",learning:"Learning",prompts:"Prompts",extensions:"Extensions"},overview:{title:"System Overview",dispatched:"Dispatched",success_rate:"Success Rate",active_schedules:"Active Schedules",extensions:"Extensions",active:"active",completed:"completed",queued:"queued",enabled:"enabled",top_patterns:"Top Patterns",no_patterns:"No patterns recorded",suggestions:"Suggestions",no_suggestions:"No suggestions",new_count:"{{count}} new",active_executions:"Active Executions",running_count:"{{count}} running",recent_activity:"Recent Schedule Activity",view_all:"View all",no_tasks:"No scheduled tasks",th_task:"Task",th_type:"Type",th_last_run:"Last Run",th_status:"Status",event_log:"Event Log"},schedule:{title:"Schedules",new:"+ New",cancel:"Cancel",filter:"Filter schedules...",create:"Create",task_name:"Task name",select_detail:"Select a schedule to view details",run_now:"Run Now",delete:"Delete",total_runs:"Total Runs",success_rate:"Success Rate",next_run:"Next Run",configuration:"Configuration",schedule_label:"Schedule",type:"Type",last_run:"Last Run",never:"Never",run_history:"Run History",no_runs:"No runs yet",active:"active",paused:"paused"},learning:{title:"Learning",cmds_patterns:"{{cmds}} cmds / {{patterns}} patterns",search:"Search patterns & knowledge...",command_patterns:"Command Patterns",no_patterns:"No patterns",knowledge_base:"Knowledge Base",no_matches:"No matches",empty:"Empty",select_detail:"Select a pattern or knowledge entry",command_pattern:"Command Pattern",frequency:"Frequency",success_rate:"Success Rate",avg_duration:"Avg Duration",usage:"Usage",relative:"Relative",last_used:"Last Used",contexts:"Contexts",suggestions:"Suggestions",knowledge_entry:"Knowledge Entry",usage_count:"Usage Count",source:"Source",last_accessed:"Last Accessed",content:"Content",tags:"Tags",success_label:"success",used_count:"used {{count}}x"},prompts:{title:"Prompts",builders_count:"{{count}} builders",filter:"Filter builders...",no_matches:"No matches",no_modes:"No modes loaded",bound:"Bound",unbound:"Unbound",select_detail:"Select a prompt builder to view details",prompt_builder:"Prompt Builder",binding:"Binding",mode:"Mode",status:"Status",template:"Template",edit_placeholder:"Edit template...",preview:"Preview"},extensions:{title:"Extensions",loaded_count:"{{count}} loaded",filter:"Filter extensions...",no_matches:"No matches",no_extensions:"No extensions registered",select_detail:"Select an extension to view details",about:"About",no_description:"No description available",details:"Details",name:"Name",version:"Version",type:"Type",status:"Status"},executions:{title:"Active Executions",running:"Running",queued:"Queued",running_count:"{{count}} running",queued_count:"{{count}} queued",completed_today:"Completed Today",failed_today:"Failed Today",waiting_slot:"Waiting for slot",turn:"Turn"},coordinator:{title:"Coordinator",start:"Start",stop:"Stop",resume:"Resume",chain:"Chain",progress:"Progress",avg_quality:"Avg Quality",elapsed:"Elapsed",chain_steps:"Chain Steps",step_detail:"Step Detail",quality_score:"Quality Score",summary:"Summary",analysis:"Analysis",waiting_execute:"Waiting to Execute",pending_desc:"This step is pending. It will start automatically after the current step completes.",no_session:"No Active Session",no_session_desc:"Describe your intent above to start a coordination session.",clarification_needed:"Clarification Needed",send:"Send",type_response:"Type your response...",describe_intent:"Describe what you want to coordinate...",auto:"Auto",manual:"Manual",from_steps:"From {{count}} completed steps",steps_count:"{{count}} steps",tool_label:"Tool"},commander:{title:"Commander",start:"Start",pause:"Pause",stop:"Stop",resume:"Resume",metrics:"Metrics",ticks:"Ticks",workers:"Workers",session:"Session",last_tick:"Last Tick",latest_assessment:"Latest Assessment",observations:"Observations",risks:"Risks",decision_history:"Decision History",decisions_count:"{{count}} decisions",no_decisions:"No decisions yet",deferred_count:"{{count}} deferred",actions_count:"{{count}} action",actions_count_plural:"{{count}} actions",config:"Configuration",profile:"Profile",decision_model:"Model",auto_approve:"Auto Approve"},common:{just_now:"just now",minutes_ago:"{{count}}m ago",hours_ago:"{{count}}h ago"}},g={title:"Maestro Coordinate",sessions:"Sessions",no_sessions:"No sessions found",no_sessions_desc:"Run /maestro or /maestro-ralph to create sessions",select_session:"Select a session to view details",steps:"Steps",context:"Context",passed_gates:"Passed Gates",loading:"Loading...",refresh:"Refresh",empty_title:"No Maestro Sessions",empty_desc:"Session data from .workflow/.maestro/ will appear here",source_ralph:"Ralph",source_maestro:"Maestro",source_coordinate:"Coordinate"},h={title:"Settings",loading:"Loading settings...",failed:"Failed to load settings",unsaved_confirm:"You have unsaved changes. Are you sure you want to close?",discard:"Discard",save:"Save changes",saving:"Saving...",nav:{general:"General",agents:"Agents",commander:"Commander",cli_tools:"CLI Tools",specs:"Specs",linear:"Linear",kanban:"Kanban"},general:{connection_card:"Connection",connection_desc:"WebSocket connection status to the dashboard server",connected:"Connected",disconnected:"Disconnected",appearance_card:"Appearance",appearance_desc:"Customize the dashboard look and feel",theme_label:"Theme",theme_desc:"Select the color theme for the dashboard",theme_system:"System",theme_dark:"Dark",theme_light:"Light",language_label:"Language",language_desc:"Dashboard display language",style_preset_label:"Style Preset",style_preset_desc:"Switch between visual style presets",style_default:"Default",style_cowork:"Cowork",search_tool_card:"Search Tool",search_tool_desc:"MCP tool name for semantic codebase search",search_tool_label:"Tool Name",response_lang_card:"Response Language",response_lang_desc:"Configure AI agents to respond in Chinese. Guidelines file: ~/.maestro/workflows/chinese-response.md",chinese_claude_label:"Chinese Response — Claude",chinese_claude_desc:"Add chinese-response reference to ~/.claude/CLAUDE.md",chinese_codex_label:"Chinese Response — Codex",chinese_codex_desc:"Add chinese-response content to ~/.codex/AGENTS.md",codex_migrate_hint:"Codex has old @ reference format. Toggle off and on to migrate to direct content format.",guidelines_missing:"Guidelines file not found at ~/.maestro/workflows/chinese-response.md"},agents:{show_config:"Show configuration",hide_config:"Hide configuration",model_label:"Model",model_desc:"Override the default model for this agent type",model_placeholder:"Default",approval_label:"Approval Mode",approval_desc:"How tool calls are approved",approval_suggest:"Suggest (manual)",approval_auto:"Auto-approve",base_url_label:"Base URL",base_url_desc:"Custom API endpoint (leave empty for default)",settings_file_label:"Settings File",settings_file_desc:"Path to settings JSON file",env_file_label:"Env File",env_file_desc:"Path to .env file for loading environment variables (supports ~)",claude_code_desc:"Anthropic Claude CLI agent",agent_sdk_desc:"Anthropic Agent SDK (supports custom endpoints)",codex_desc:"OpenAI Codex CLI agent",gemini_desc:"Google Gemini CLI agent",qwen_desc:"Alibaba Qwen CLI agent",opencode_desc:"Open-source code agent"},commander:{profile_card:"Profile",profile_desc:"Environment profile that presets key parameters for different deployment stages",environment_label:"Environment",environment_desc:"Select a profile preset (switch to Custom to override individual fields)",profile_development:"Development",profile_staging:"Staging",profile_production:"Production",profile_custom:"Custom",core_card:"Core Loop",core_desc:"Tick-based orchestration parameters controlling polling, concurrency, and retries",poll_interval_label:"Poll Interval (ms)",poll_interval_desc:"Time between decision loop ticks",max_workers_label:"Max Concurrent Workers",max_workers_desc:"Maximum parallel agent executions",stall_timeout_label:"Stall Timeout (ms)",stall_timeout_desc:"Marks a worker as stalled after this duration",max_retries_label:"Max Retries",max_retries_desc:"Maximum retries per issue on failure",retry_backoff_label:"Retry Backoff (ms)",retry_backoff_desc:"Delay between retry attempts",decision_card:"Decision",decision_desc:"Assessment and auto-approval settings controlling how Commander evaluates issues",decision_model_label:"Decision Model",decision_model_desc:"Model used for assessment queries",model_haiku:"Haiku (fast)",model_sonnet:"Sonnet (balanced)",model_opus:"Opus (thorough)",assess_turns_label:"Assess Max Turns",assess_turns_desc:"Max exploration turns for assessment",threshold_label:"Auto-Approve Threshold",threshold_desc:"Risk level below which actions are auto-approved",threshold_low:"Low (manual)",threshold_medium:"Medium",threshold_high:"High (fully auto)",executor_label:"Default Executor",executor_desc:"Agent type used for dispatched issues",safety_card:"Safety",safety_desc:"Protective constraints to prevent runaway loops and protect sensitive files",debounce_label:"Event Debounce (ms)",debounce_desc:"Minimum interval between processing events",circuit_breaker_label:"Circuit Breaker Threshold",circuit_breaker_desc:"Auto-pause after N consecutive failures",max_ticks_label:"Max Ticks per Hour",max_ticks_desc:"Prevent runaway decision loops",max_tokens_label:"Max Tokens per Hour",max_tokens_desc:"Token budget limit per hour",protected_paths_label:"Protected Paths",protected_paths_desc:"File globs Commander must not operate on (comma-separated)",workspace_card:"Workspace",workspace_desc:"Per-issue workspace isolation settings",workspace_enabled_label:"Enabled",workspace_enabled_desc:"Enable per-issue workspace isolation",workspace_worktree_label:"Use Worktree",workspace_worktree_desc:"Use git worktree for isolation (vs plain directory)",workspace_autocleanup_label:"Auto Cleanup",workspace_autocleanup_desc:"Automatically remove workspaces after completion",workspace_strict_label:"Strict",workspace_strict_desc:"Enforce strict workspace boundaries"},cli_tools:{config_card:"CLI Tools Configuration",config_desc:"Edit the cli-tools.json configuration file. This controls which CLI tools are available and their settings.",format_json:"Format JSON"},specs:{loading:"Loading specs...",error_card:"Specs",error_desc:"Could not load spec directory",empty_card:"Specifications",empty_desc:"No specifications found in .workflow/.spec/",empty_hint:"Run the spec-generate pipeline to create specifications.",created:"Created"},linear:{integration_card:"Linear Integration",integration_desc:"Connect to Linear for issue syncing and kanban board integration",api_key_label:"API Key",api_key_desc:"Your Linear personal API key. Get one from Linear Settings → API.",connected:"Connected",not_configured:"Not configured",checking:"Checking...",testing:"Testing...",test_connection:"Test Connection",teams_card:"Teams",teams_desc:"Linear teams accessible with this API key"},kanban:{create_card:"Issue Create Modal",create_desc:"Choose how the new issue form appears when you click + or press C",detail_card:"Issue Detail View",detail_desc:"Choose how issue details appear when you click on a card",preview_card:"Interaction Preview",preview_desc:"Click any style above to see an animated preview",create_command:"Command",create_command_desc:"Dark command palette, keyboard-first",create_form:"Form",create_form_desc:"Structured dialog with all fields",create_focus:"Focus",create_focus_desc:"Writing-first, distraction-free",detail_panel:"Panel",detail_panel_desc:"Slides in from the right side",detail_overlay:"Overlay",detail_overlay_desc:"Two-column centered modal",detail_page:"Page",detail_page_desc:"Full-screen with breadcrumb nav",preview_create:"Create Modal",preview_detail:"Detail View",create_caption_1:'Triggered by the "+" button or pressing C',create_caption_2:"Traditional form with all fields visible",create_caption_3:"Distraction-free writing experience",detail_caption_1:"Slides in from the right, board stays visible",detail_caption_2:"Centered overlay with two-column layout",detail_caption_3:"Full-screen takeover with breadcrumb navigation"}},f={title:"Workflow Config",btn_aria:"Open workflow configuration",loading:"Loading...",empty:"No workflow initialized. Run maestro-init first.",save:"Save",saving:"Saving...",discard:"Discard",top:{title:"Profile",mode:"Mode",granularity:"Granularity",model_profile:"Model Profile"},workflow:{title:"Workflow Agents",research:"Research",plan_check:"Plan Check",verify_after_execute:"Verify After Execute",nyquist_validation:"Nyquist Validation",auto_sync:"Auto Sync",reflection:"Reflection",decision_protocol:"Decision Protocol",auto_advance:"Auto Advance"},execution:{title:"Execution",method:"Method",parallel:"Parallel",max_concurrent:"Max Concurrent",auto_commit:"Auto Commit",lazy_loading:"Lazy Loading"},git:{title:"Git",branching:"Branching",commit_docs:"Commit Docs"},gates:{title:"Confirmation Gates",confirm_project:"Project",confirm_roadmap:"Roadmap",confirm_plan:"Plan",confirm_execute:"Execute",confirm_transition:"Transition"},safety:{title:"Safety",always_confirm_destructive:"Confirm Destructive",always_confirm_external_services:"Confirm External Services"},specs:{title:"Specs",auto_setup_on_init:"Auto Setup on Init",extract_learnings_on_complete:"Extract Learnings"},codebase:{title:"Codebase",doc_index:"Doc Index",auto_sync_after_execute:"Auto Sync After Execute",action_log:"Action Log"},worktree:{title:"Worktree",enabled:"Enabled",root:"Root",branch_prefix:"Branch Prefix",auto_cleanup:"Auto Cleanup"}},v={nav:e,sidebar:t,dock:o,accessibility:s,topbar:a,status:n,taskStatus:i,columns:r,kanban:c,artifacts:l,connection_error:d,update_available:_,dismiss:u,language_switcher:p,supervisor:m,maestro_coordinate:g,settings:h,workflow_config:f};export{s as accessibility,l as artifacts,r as columns,d as connection_error,v as default,u as dismiss,o as dock,c as kanban,p as language_switcher,g as maestro_coordinate,e as nav,h as settings,t as sidebar,n as status,m as supervisor,i as taskStatus,a as topbar,_ as update_available,f as workflow_config};
|
|
1
|
+
const e={kanban:"Issue Kanban",artifacts:"Artifacts",chat:"Chat",workflow:"Workflow Kanban",mcp:"MCP Manager",specs:"Specs Manager",wiki:"Wiki",teams:"Agents Team",collab:"Multi-User Collab",requirement:"Requirement",maestro_coordinate:"Maestro Coord",rooms:"Meeting Room",views:"Views"},t={phases:"Phases",no_phases_loaded:"No phases loaded"},o={toggle_sidebar:"Toggle sidebar",kanban_tooltip:"Kanban",artifacts_tooltip:"Artifacts",chat_tooltip:"Chat",workflow_tooltip:"Workflow",mcp_tooltip:"MCP Manager",specs_tooltip:"Specs Manager",wiki_tooltip:"Project Wiki",teams_tooltip:"Agents Team",collab_tooltip:"Multi-User Collab",requirement_tooltip:"Requirement",maestro_coordinate_tooltip:"Maestro Coordinate Sessions",rooms_tooltip:"Meeting Room",views_label:"Views",phases_label:"Phases",phase_dot_aria:"Phase {{phase}}: {{title}} — {{status}}"},s={main_content:"Main content area"},a={phase:"Phase",of:"/",connection:{connected:"Live",disconnected:"Offline",aria_connected:"Connected",aria_disconnected:"Disconnected"}},n={not_started:"Not Started",planning:"Planning",executing:"Executing",verifying:"Verifying",reviewing:"Reviewing",completed:"Completed",blocked:"Blocked"},i={pending:"Pending",in_progress:"In Progress",completed:"Done",failed:"Failed"},r={backlog:"Backlog",triage:"Triage",in_progress:"In Progress",review:"Review",done:"Done",deferred:"Deferred"},c={wave:"Wave",phase_aria:"Phase {{phase}}: {{title}}. Status: {{status}}. {{completed}} of {{total}} tasks completed.",task_aria:"{{type}}: {{title}}. Status: {{status}}",no_phases:"No phases",loading:"Loading board data..."},l={empty_title:"No file selected",empty_desc:"Select a file from the tree to view its contents",loading:"Loading...",breadcrumb_root:".workflow/",aria_viewer:"Artifact viewer",aria_breadcrumb:"Breadcrumb"},d="Cannot connect to dashboard server. Make sure it is running on port 3001.",_="Maestro v{{version}} is available. Run `maestro update` to upgrade.",u="Dismiss",p={en:"English",zh:"中文",aria_label:"Language switcher"},m={tabs:{overview:"Overview",commander:"Commander",executions:"Executions",coordinator:"Coordinator",schedules:"Schedules",learning:"Learning",prompts:"Prompts",extensions:"Extensions"},overview:{title:"System Overview",dispatched:"Dispatched",success_rate:"Success Rate",active_schedules:"Active Schedules",extensions:"Extensions",active:"active",completed:"completed",queued:"queued",enabled:"enabled",top_patterns:"Top Patterns",no_patterns:"No patterns recorded",suggestions:"Suggestions",no_suggestions:"No suggestions",new_count:"{{count}} new",active_executions:"Active Executions",running_count:"{{count}} running",recent_activity:"Recent Schedule Activity",view_all:"View all",no_tasks:"No scheduled tasks",th_task:"Task",th_type:"Type",th_last_run:"Last Run",th_status:"Status",event_log:"Event Log"},schedule:{title:"Schedules",new:"+ New",cancel:"Cancel",filter:"Filter schedules...",create:"Create",task_name:"Task name",select_detail:"Select a schedule to view details",run_now:"Run Now",delete:"Delete",total_runs:"Total Runs",success_rate:"Success Rate",next_run:"Next Run",configuration:"Configuration",schedule_label:"Schedule",type:"Type",last_run:"Last Run",never:"Never",run_history:"Run History",no_runs:"No runs yet",active:"active",paused:"paused"},learning:{title:"Learning",cmds_patterns:"{{cmds}} cmds / {{patterns}} patterns",search:"Search patterns & knowledge...",command_patterns:"Command Patterns",no_patterns:"No patterns",knowledge_base:"Knowledge Base",no_matches:"No matches",empty:"Empty",select_detail:"Select a pattern or knowledge entry",command_pattern:"Command Pattern",frequency:"Frequency",success_rate:"Success Rate",avg_duration:"Avg Duration",usage:"Usage",relative:"Relative",last_used:"Last Used",contexts:"Contexts",suggestions:"Suggestions",knowledge_entry:"Knowledge Entry",usage_count:"Usage Count",source:"Source",last_accessed:"Last Accessed",content:"Content",tags:"Tags",success_label:"success",used_count:"used {{count}}x"},prompts:{title:"Prompts",builders_count:"{{count}} builders",filter:"Filter builders...",no_matches:"No matches",no_modes:"No modes loaded",bound:"Bound",unbound:"Unbound",select_detail:"Select a prompt builder to view details",prompt_builder:"Prompt Builder",binding:"Binding",mode:"Mode",status:"Status",template:"Template",edit_placeholder:"Edit template...",preview:"Preview"},extensions:{title:"Extensions",loaded_count:"{{count}} loaded",filter:"Filter extensions...",no_matches:"No matches",no_extensions:"No extensions registered",select_detail:"Select an extension to view details",about:"About",no_description:"No description available",details:"Details",name:"Name",version:"Version",type:"Type",status:"Status"},executions:{title:"Active Executions",running:"Running",queued:"Queued",running_count:"{{count}} running",queued_count:"{{count}} queued",completed_today:"Completed Today",failed_today:"Failed Today",waiting_slot:"Waiting for slot",turn:"Turn"},coordinator:{title:"Coordinator",start:"Start",stop:"Stop",resume:"Resume",chain:"Chain",progress:"Progress",avg_quality:"Avg Quality",elapsed:"Elapsed",chain_steps:"Chain Steps",step_detail:"Step Detail",quality_score:"Quality Score",summary:"Summary",analysis:"Analysis",waiting_execute:"Waiting to Execute",pending_desc:"This step is pending. It will start automatically after the current step completes.",no_session:"No Active Session",no_session_desc:"Describe your intent above to start a coordination session.",clarification_needed:"Clarification Needed",send:"Send",type_response:"Type your response...",describe_intent:"Describe what you want to coordinate...",auto:"Auto",manual:"Manual",from_steps:"From {{count}} completed steps",steps_count:"{{count}} steps",tool_label:"Tool"},commander:{title:"Commander",start:"Start",pause:"Pause",stop:"Stop",resume:"Resume",metrics:"Metrics",ticks:"Ticks",workers:"Workers",session:"Session",last_tick:"Last Tick",latest_assessment:"Latest Assessment",observations:"Observations",risks:"Risks",decision_history:"Decision History",decisions_count:"{{count}} decisions",no_decisions:"No decisions yet",deferred_count:"{{count}} deferred",actions_count:"{{count}} action",actions_count_plural:"{{count}} actions",config:"Configuration",profile:"Profile",decision_model:"Model",auto_approve:"Auto Approve"},common:{just_now:"just now",minutes_ago:"{{count}}m ago",hours_ago:"{{count}}h ago"}},g={title:"Maestro Coordinate",sessions:"Sessions",no_sessions:"No sessions found",no_sessions_desc:"Run /maestro or /maestro-ralph to create sessions",select_session:"Select a session to view details",steps:"Steps",context:"Context",passed_gates:"Passed Gates",loading:"Loading...",refresh:"Refresh",empty_title:"No Maestro Sessions",empty_desc:"Session data from .workflow/.maestro/ will appear here",source_ralph:"Ralph",source_maestro:"Maestro",source_coordinate:"Coordinate"},h={title:"Settings",loading:"Loading settings...",failed:"Failed to load settings",unsaved_confirm:"You have unsaved changes. Are you sure you want to close?",discard:"Discard",save:"Save changes",saving:"Saving...",nav:{general:"General",agents:"Agents",commander:"Commander",cli_tools:"CLI Tools",specs:"Specs",linear:"Linear",kanban:"Kanban"},general:{connection_card:"Connection",connection_desc:"WebSocket connection status to the dashboard server",connected:"Connected",disconnected:"Disconnected",appearance_card:"Appearance",appearance_desc:"Customize the dashboard look and feel",theme_label:"Theme",theme_desc:"Select the color theme for the dashboard",theme_system:"System",theme_dark:"Dark",theme_light:"Light",language_label:"Language",language_desc:"Dashboard display language",style_preset_label:"Style Preset",style_preset_desc:"Switch between visual style presets",style_default:"Default",style_cowork:"Cowork",search_tool_card:"Search Tool",search_tool_desc:"MCP tool name for semantic codebase search",search_tool_label:"Tool Name",response_lang_card:"Response Language",response_lang_desc:"Configure AI agents to respond in Chinese. Guidelines file: ~/.maestro/workflows/chinese-response.md",chinese_claude_label:"Chinese Response — Claude",chinese_claude_desc:"Add chinese-response reference to ~/.claude/CLAUDE.md",chinese_codex_label:"Chinese Response — Codex",chinese_codex_desc:"Add chinese-response content to ~/.codex/AGENTS.md",codex_migrate_hint:"Codex has old @ reference format. Toggle off and on to migrate to direct content format.",guidelines_missing:"Guidelines file not found at ~/.maestro/workflows/chinese-response.md"},agents:{show_config:"Show configuration",hide_config:"Hide configuration",model_label:"Model",model_desc:"Override the default model for this agent type",model_placeholder:"Default",approval_label:"Approval Mode",approval_desc:"How tool calls are approved",approval_suggest:"Suggest (manual)",approval_auto:"Auto-approve",base_url_label:"Base URL",base_url_desc:"Custom API endpoint (leave empty for default)",settings_file_label:"Settings File",settings_file_desc:"Path to settings JSON file",env_file_label:"Env File",env_file_desc:"Path to .env file for loading environment variables (supports ~)",claude_code_desc:"Anthropic Claude CLI agent",agent_sdk_desc:"Anthropic Agent SDK (supports custom endpoints)",codex_desc:"OpenAI Codex CLI agent",gemini_desc:"Google Gemini CLI agent",qwen_desc:"Alibaba Qwen CLI agent",opencode_desc:"Open-source code agent"},commander:{profile_card:"Profile",profile_desc:"Environment profile that presets key parameters for different deployment stages",environment_label:"Environment",environment_desc:"Select a profile preset (switch to Custom to override individual fields)",profile_development:"Development",profile_staging:"Staging",profile_production:"Production",profile_custom:"Custom",core_card:"Core Loop",core_desc:"Tick-based orchestration parameters controlling polling, concurrency, and retries",poll_interval_label:"Poll Interval (ms)",poll_interval_desc:"Time between decision loop ticks",max_workers_label:"Max Concurrent Workers",max_workers_desc:"Maximum parallel agent executions",stall_timeout_label:"Stall Timeout (ms)",stall_timeout_desc:"Marks a worker as stalled after this duration",max_retries_label:"Max Retries",max_retries_desc:"Maximum retries per issue on failure",retry_backoff_label:"Retry Backoff (ms)",retry_backoff_desc:"Delay between retry attempts",decision_card:"Decision",decision_desc:"Assessment and auto-approval settings controlling how Commander evaluates issues",decision_model_label:"Decision Model",decision_model_desc:"Model used for assessment queries",model_haiku:"Haiku (fast)",model_sonnet:"Sonnet (balanced)",model_opus:"Opus (thorough)",assess_turns_label:"Assess Max Turns",assess_turns_desc:"Max exploration turns for assessment",threshold_label:"Auto-Approve Threshold",threshold_desc:"Risk level below which actions are auto-approved",threshold_low:"Low (manual)",threshold_medium:"Medium",threshold_high:"High (fully auto)",executor_label:"Default Executor",executor_desc:"Agent type used for dispatched issues",safety_card:"Safety",safety_desc:"Protective constraints to prevent runaway loops and protect sensitive files",debounce_label:"Event Debounce (ms)",debounce_desc:"Minimum interval between processing events",circuit_breaker_label:"Circuit Breaker Threshold",circuit_breaker_desc:"Auto-pause after N consecutive failures",max_ticks_label:"Max Ticks per Hour",max_ticks_desc:"Prevent runaway decision loops",max_tokens_label:"Max Tokens per Hour",max_tokens_desc:"Token budget limit per hour",protected_paths_label:"Protected Paths",protected_paths_desc:"File globs Commander must not operate on (comma-separated)",workspace_card:"Workspace",workspace_desc:"Per-issue workspace isolation settings",workspace_enabled_label:"Enabled",workspace_enabled_desc:"Enable per-issue workspace isolation",workspace_worktree_label:"Use Worktree",workspace_worktree_desc:"Use git worktree for isolation (vs plain directory)",workspace_autocleanup_label:"Auto Cleanup",workspace_autocleanup_desc:"Automatically remove workspaces after completion",workspace_strict_label:"Strict",workspace_strict_desc:"Enforce strict workspace boundaries"},cli_tools:{config_card:"CLI Tools Configuration",config_desc:"Edit the cli-tools.json configuration file. This controls which CLI tools are available and their settings.",format_json:"Format JSON"},specs:{loading:"Loading specs...",error_card:"Specs",error_desc:"Could not load spec directory",empty_card:"Specifications",empty_desc:"No specifications found in .workflow/blueprint/",empty_hint:"Run the maestro-blueprint pipeline to create specifications.",created:"Created"},linear:{integration_card:"Linear Integration",integration_desc:"Connect to Linear for issue syncing and kanban board integration",api_key_label:"API Key",api_key_desc:"Your Linear personal API key. Get one from Linear Settings → API.",connected:"Connected",not_configured:"Not configured",checking:"Checking...",testing:"Testing...",test_connection:"Test Connection",teams_card:"Teams",teams_desc:"Linear teams accessible with this API key"},kanban:{create_card:"Issue Create Modal",create_desc:"Choose how the new issue form appears when you click + or press C",detail_card:"Issue Detail View",detail_desc:"Choose how issue details appear when you click on a card",preview_card:"Interaction Preview",preview_desc:"Click any style above to see an animated preview",create_command:"Command",create_command_desc:"Dark command palette, keyboard-first",create_form:"Form",create_form_desc:"Structured dialog with all fields",create_focus:"Focus",create_focus_desc:"Writing-first, distraction-free",detail_panel:"Panel",detail_panel_desc:"Slides in from the right side",detail_overlay:"Overlay",detail_overlay_desc:"Two-column centered modal",detail_page:"Page",detail_page_desc:"Full-screen with breadcrumb nav",preview_create:"Create Modal",preview_detail:"Detail View",create_caption_1:'Triggered by the "+" button or pressing C',create_caption_2:"Traditional form with all fields visible",create_caption_3:"Distraction-free writing experience",detail_caption_1:"Slides in from the right, board stays visible",detail_caption_2:"Centered overlay with two-column layout",detail_caption_3:"Full-screen takeover with breadcrumb navigation"}},f={title:"Workflow Config",btn_aria:"Open workflow configuration",loading:"Loading...",empty:"No workflow initialized. Run maestro-init first.",save:"Save",saving:"Saving...",discard:"Discard",top:{title:"Profile",mode:"Mode",granularity:"Granularity",model_profile:"Model Profile"},workflow:{title:"Workflow Agents",research:"Research",plan_check:"Plan Check",verify_after_execute:"Verify After Execute",nyquist_validation:"Nyquist Validation",auto_sync:"Auto Sync",reflection:"Reflection",decision_protocol:"Decision Protocol",auto_advance:"Auto Advance"},execution:{title:"Execution",method:"Method",parallel:"Parallel",max_concurrent:"Max Concurrent",auto_commit:"Auto Commit",lazy_loading:"Lazy Loading"},git:{title:"Git",branching:"Branching",commit_docs:"Commit Docs"},gates:{title:"Confirmation Gates",confirm_project:"Project",confirm_roadmap:"Roadmap",confirm_plan:"Plan",confirm_execute:"Execute",confirm_transition:"Transition"},safety:{title:"Safety",always_confirm_destructive:"Confirm Destructive",always_confirm_external_services:"Confirm External Services"},specs:{title:"Specs",auto_setup_on_init:"Auto Setup on Init",extract_learnings_on_complete:"Extract Learnings"},codebase:{title:"Codebase",doc_index:"Doc Index",auto_sync_after_execute:"Auto Sync After Execute",action_log:"Action Log"},worktree:{title:"Worktree",enabled:"Enabled",root:"Root",branch_prefix:"Branch Prefix",auto_cleanup:"Auto Cleanup"}},b={nav:e,sidebar:t,dock:o,accessibility:s,topbar:a,status:n,taskStatus:i,columns:r,kanban:c,artifacts:l,connection_error:d,update_available:_,dismiss:u,language_switcher:p,supervisor:m,maestro_coordinate:g,settings:h,workflow_config:f};export{s as accessibility,l as artifacts,r as columns,d as connection_error,b as default,u as dismiss,o as dock,c as kanban,p as language_switcher,g as maestro_coordinate,e as nav,h as settings,t as sidebar,n as status,m as supervisor,i as taskStatus,a as topbar,_ as update_available,f as workflow_config};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{d as a}from"./index-Cbs79erW.js";/**
|
|
2
|
+
* @license lucide-react v0.577.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const e=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],s=a("database",e);/**
|
|
7
|
+
* @license lucide-react v0.577.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const o=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],c=a("folder",o);export{s as D,c as F};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{d as a}from"./index-Cbs79erW.js";/**
|
|
2
|
+
* @license lucide-react v0.577.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const o=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],d=a("folder-open",o);export{d as F};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as n,j as b}from"./index-
|
|
1
|
+
import{r as n,j as b}from"./index-Cbs79erW.js";import{M as D,i as k,a as F,P as K,b as U,u as W,L as B}from"./proxy-BewnIei6.js";function I(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function G(...e){return r=>{let t=!1;const o=e.map(f=>{const u=I(f,r);return!t&&typeof u=="function"&&(t=!0),u});if(t)return()=>{for(let f=0;f<o.length;f++){const u=o[f];typeof u=="function"?u():I(e[f],null)}}}}function T(...e){return n.useCallback(G(...e),e)}class V extends n.Component{getSnapshotBeforeUpdate(r){const t=this.props.childRef.current;if(k(t)&&r.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const o=t.offsetParent,f=k(o)&&o.offsetWidth||0,u=k(o)&&o.offsetHeight||0,a=getComputedStyle(t),s=this.props.sizeRef.current;s.height=parseFloat(a.height),s.width=parseFloat(a.width),s.top=t.offsetTop,s.left=t.offsetLeft,s.right=f-s.width-s.left,s.bottom=u-s.height-s.top}return null}componentDidUpdate(){}render(){return this.props.children}}function X({children:e,isPresent:r,anchorX:t,anchorY:o,root:f,pop:u}){var c;const a=n.useId(),s=n.useRef(null),E=n.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:w}=n.useContext(D),l=((c=e.props)==null?void 0:c.ref)??(e==null?void 0:e.ref),y=T(s,l);return n.useInsertionEffect(()=>{const{width:p,height:d,top:x,left:g,right:$,bottom:v}=E.current;if(r||u===!1||!s.current||!p||!d)return;const L=t==="left"?`left: ${g}`:`right: ${$}`,m=o==="bottom"?`bottom: ${v}`:`top: ${x}`;s.current.dataset.motionPopId=a;const C=document.createElement("style");w&&(C.nonce=w);const R=f??document.head;return R.appendChild(C),C.sheet&&C.sheet.insertRule(`
|
|
2
2
|
[data-motion-pop-id="${a}"] {
|
|
3
3
|
position: absolute !important;
|
|
4
4
|
width: ${p}px !important;
|