maestro-flow 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/.codex/skills/manage-codebase-rebuild/SKILL.md +405 -405
  2. package/.codex/skills/manage-codebase-refresh/SKILL.md +82 -82
  3. package/.codex/skills/manage-issue/SKILL.md +65 -65
  4. package/.codex/skills/manage-status/SKILL.md +89 -89
  5. package/.codex/skills/quality-debug/SKILL.md +413 -413
  6. package/.codex/skills/quality-refactor/SKILL.md +191 -191
  7. package/.codex/skills/quality-sync/SKILL.md +89 -89
  8. package/.codex/skills/quality-test/SKILL.md +198 -198
  9. package/.codex/skills/spec-add/SKILL.md +79 -79
  10. package/.codex/skills/spec-load/SKILL.md +75 -75
  11. package/.codex/skills/spec-map/SKILL.md +182 -182
  12. package/.codex/skills/spec-setup/SKILL.md +76 -76
  13. package/.codex/skills/team-coordinate/SKILL.md +7 -7
  14. package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
  15. package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -2
  16. package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +2 -2
  17. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  18. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +2 -2
  19. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +1 -1
  20. package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +2 -2
  21. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  22. package/.codex/skills/team-lifecycle-v4/schemas/tasks-schema.md +1 -1
  23. package/.codex/skills/team-quality-assurance/SKILL.md +2 -2
  24. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +2 -2
  25. package/.codex/skills/team-quality-assurance/roles/executor/role.md +1 -1
  26. package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -2
  27. package/.codex/skills/team-review/SKILL.md +2 -2
  28. package/.codex/skills/team-review/roles/coordinator/role.md +2 -2
  29. package/.codex/skills/team-review/roles/reviewer/role.md +2 -2
  30. package/.codex/skills/team-review/roles/scanner/role.md +1 -1
  31. package/.codex/skills/team-tech-debt/SKILL.md +2 -2
  32. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +1 -1
  33. package/.codex/skills/team-tech-debt/roles/executor/role.md +1 -1
  34. package/.codex/skills/team-tech-debt/roles/scanner/role.md +2 -2
  35. package/.codex/skills/team-tech-debt/roles/validator/role.md +1 -1
  36. package/.codex/skills/team-testing/SKILL.md +2 -2
  37. package/.codex/skills/team-testing/roles/coordinator/role.md +2 -2
  38. package/.codex/skills/team-testing/roles/executor/role.md +2 -2
  39. package/.codex/skills/team-testing/roles/generator/role.md +2 -2
  40. package/README.md +43 -4
  41. package/dist/agents/dashboard-bridge.d.ts +5 -0
  42. package/dist/agents/dashboard-bridge.d.ts.map +1 -1
  43. package/dist/agents/dashboard-bridge.js +13 -0
  44. package/dist/agents/dashboard-bridge.js.map +1 -1
  45. package/dist/agents/parallel-cli-runner.d.ts +42 -0
  46. package/dist/agents/parallel-cli-runner.d.ts.map +1 -0
  47. package/dist/agents/parallel-cli-runner.js +200 -0
  48. package/dist/agents/parallel-cli-runner.js.map +1 -0
  49. package/dist/agents/terminal-adapter.d.ts +94 -0
  50. package/dist/agents/terminal-adapter.d.ts.map +1 -0
  51. package/dist/agents/terminal-adapter.js +132 -0
  52. package/dist/agents/terminal-adapter.js.map +1 -0
  53. package/dist/agents/terminal-backend.d.ts +53 -0
  54. package/dist/agents/terminal-backend.d.ts.map +1 -0
  55. package/dist/agents/terminal-backend.js +286 -0
  56. package/dist/agents/terminal-backend.js.map +1 -0
  57. package/dist/cli.js +5 -1
  58. package/dist/cli.js.map +1 -1
  59. package/dist/commands/coordinate.d.ts.map +1 -1
  60. package/dist/commands/coordinate.js +14 -5
  61. package/dist/commands/coordinate.js.map +1 -1
  62. package/dist/commands/delegate.d.ts +3 -0
  63. package/dist/commands/delegate.d.ts.map +1 -0
  64. package/dist/commands/delegate.js +142 -0
  65. package/dist/commands/delegate.js.map +1 -0
  66. package/dist/commands/msg.d.ts +3 -0
  67. package/dist/commands/msg.d.ts.map +1 -0
  68. package/dist/commands/msg.js +110 -0
  69. package/dist/commands/msg.js.map +1 -0
  70. package/dist/coordinator/graph-types.d.ts +17 -0
  71. package/dist/coordinator/graph-types.d.ts.map +1 -1
  72. package/dist/coordinator/graph-walker.d.ts +3 -1
  73. package/dist/coordinator/graph-walker.d.ts.map +1 -1
  74. package/dist/coordinator/graph-walker.js +147 -8
  75. package/dist/coordinator/graph-walker.js.map +1 -1
  76. package/dist/coordinator/index.d.ts +2 -0
  77. package/dist/coordinator/index.d.ts.map +1 -1
  78. package/dist/coordinator/index.js +1 -0
  79. package/dist/coordinator/index.js.map +1 -1
  80. package/dist/coordinator/parallel-executor.d.ts +24 -0
  81. package/dist/coordinator/parallel-executor.d.ts.map +1 -0
  82. package/dist/coordinator/parallel-executor.js +43 -0
  83. package/dist/coordinator/parallel-executor.js.map +1 -0
  84. package/package.json +3 -1
  85. package/templates/cli/prompts/rules-tech-rules-agent-prompt.txt +89 -89
  86. package/templates/cli/prompts/workflow-codex-feasibility-validation.txt +176 -176
  87. package/templates/cli/prompts/workflow-gemini-solution-design.txt +131 -131
  88. package/templates/cli/prompts/workflow-skill-index.txt +224 -224
  89. package/templates/cli/protocols/analysis-protocol.md +2 -2
  90. package/templates/cli/protocols/write-protocol.md +2 -2
  91. package/workflows/memory.md +2 -2
  92. package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +0 -512
@@ -28,8 +28,8 @@ Universal team coordination skill: analyze task -> generate role-specs -> dispat
28
28
  (roles generated at runtime from task analysis)
29
29
 
30
30
  CLI Tools (callable by any worker):
31
- ccw cli --mode analysis - analysis and exploration
32
- ccw cli --mode write - code generation and modification
31
+ maestro cli --mode analysis - analysis and exploration
32
+ maestro cli --mode write - code generation and modification
33
33
  ```
34
34
 
35
35
  ## Delegation Lock
@@ -48,7 +48,7 @@ Before calling ANY tool, apply this check:
48
48
  | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
49
49
  | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
50
50
  | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
51
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
51
+ | `Bash("maestro cli ...")` | BLOCKED | Only workers call CLI |
52
52
  | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
53
53
 
54
54
  **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
@@ -65,8 +65,8 @@ Before calling ANY tool, apply this check:
65
65
  | Session path | `.workflow/.team/TC-<slug>-<date>/` |
66
66
  | Worker agent | `team-worker` |
67
67
  | Message bus | `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)` |
68
- | CLI analysis | `ccw cli --mode analysis` |
69
- | CLI write | `ccw cli --mode write` |
68
+ | CLI analysis | `maestro cli --mode analysis` |
69
+ | CLI write | `maestro cli --mode write` |
70
70
  | Max roles | 5 |
71
71
 
72
72
  ## Role Router
@@ -92,8 +92,8 @@ Workers can use CLI tools for analysis and code operations:
92
92
 
93
93
  | Tool | Purpose |
94
94
  |------|---------|
95
- | ccw cli --mode analysis | Analysis, exploration, pattern discovery |
96
- | ccw cli --mode write | Code generation, modification, refactoring |
95
+ | maestro cli --mode analysis | Analysis, exploration, pattern discovery |
96
+ | maestro cli --mode write | Code generation, modification, refactoring |
97
97
 
98
98
  ### Dispatch
99
99
 
@@ -18,7 +18,7 @@ Orchestrate the team-coordinate workflow: task analysis, dynamic role-spec gener
18
18
  ```
19
19
  WRONG: Read("src/components/Button.tsx") — worker work
20
20
  WRONG: Grep(pattern="useState", path="src/") — worker work
21
- WRONG: Bash("ccw cli -p '...' --tool gemini") — worker work
21
+ WRONG: Bash("maestro cli -p '...' --tool gemini") — worker work
22
22
  WRONG: Edit("src/utils/helper.ts", ...) — worker work
23
23
  WRONG: Bash("npm test") — worker work
24
24
  WRONG: mcp__ace-tool__search_context(query="...") — worker work
@@ -71,7 +71,7 @@ Before calling ANY tool, apply this check:
71
71
  | `Read` on `roles/`, `commands/`, `specs/`, `templates/` | ALLOWED | Loading own instructions |
72
72
  | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
73
73
  | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
74
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
74
+ | `Bash("maestro cli ...")` | BLOCKED | Only workers call CLI |
75
75
  | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
76
76
 
77
77
  **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
@@ -86,7 +86,7 @@ Before calling ANY tool, apply this check:
86
86
  - **Session path**: `.workflow/.team/TLV4-<slug>-<date>/`
87
87
  - **State file**: `<session>/tasks.json`
88
88
  - **Discovery files**: `<session>/discoveries/{task_id}.json`
89
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
89
+ - **CLI tools**: `maestro cli --mode analysis` (read-only), `maestro cli --mode write` (modifications)
90
90
 
91
91
  ## Worker Spawn Template
92
92
 
@@ -27,7 +27,7 @@ This instruction is loaded by team-worker agents when spawned with roles: `analy
27
27
 
28
28
  2. **Explore domain** (use CLI analysis tools):
29
29
  ```bash
30
- ccw cli -p "PURPOSE: Research domain for {requirement}
30
+ maestro cli -p "PURPOSE: Research domain for {requirement}
31
31
  TASK: • Identify problem statement • Define target users • Extract constraints • Map integration points
32
32
  CONTEXT: @**/* | Memory: {requirement}
33
33
  EXPECTED: Structured research context with problem/users/domain/constraints
@@ -294,7 +294,7 @@ This instruction is loaded by team-worker agents when spawned with roles: `analy
294
294
 
295
295
  2. **Explore codebase** (use CLI analysis tools):
296
296
  ```bash
297
- ccw cli -p "PURPOSE: Explore codebase for {requirement}
297
+ maestro cli -p "PURPOSE: Explore codebase for {requirement}
298
298
  TASK: • Identify relevant files • Find existing patterns • Locate integration points
299
299
  CONTEXT: @**/* | Memory: {requirement}
300
300
  EXPECTED: Exploration findings with file paths and patterns
@@ -36,7 +36,7 @@ Research and codebase exploration for context gathering.
36
36
  4. If topic references file (@path or .md/.txt) -> read it
37
37
  5. CLI seed analysis:
38
38
  ```
39
- Bash({ command: `ccw cli -p "PURPOSE: Analyze topic, extract structured seed info.
39
+ Bash({ command: `maestro cli -p "PURPOSE: Analyze topic, extract structured seed info.
40
40
  TASK: * Extract problem statement * Identify target users * Determine domain
41
41
  * List constraints * Identify 3-5 exploration dimensions
42
42
  TOPIC: <topic-content>
@@ -54,7 +54,7 @@ Research and codebase exploration for context gathering.
54
54
 
55
55
  When project detected:
56
56
  ```
57
- Bash({ command: `ccw cli -p "PURPOSE: Explore codebase for context
57
+ Bash({ command: `maestro cli -p "PURPOSE: Explore codebase for context
58
58
  TASK: * Identify tech stack * Map architecture patterns * Document conventions * List integration points
59
59
  MODE: analysis
60
60
  CONTEXT: @**/*
@@ -14,7 +14,7 @@ Orchestrate team-lifecycle-v4: analyze -> dispatch -> spawn -> monitor -> report
14
14
  ```
15
15
  WRONG: Read("src/...") — worker work
16
16
  WRONG: Grep/Glob on project source — worker work
17
- WRONG: Bash("ccw cli -p '...' --tool gemini") — worker work
17
+ WRONG: Bash("maestro cli -p '...' --tool gemini") — worker work
18
18
  WRONG: Edit/Write on project source files — worker work
19
19
  WRONG: Bash("npm test"), Bash("tsc"), etc. — worker work
20
20
  ```
@@ -47,7 +47,7 @@ WRONG: Bash("npm test"), Bash("tsc"), etc. — worker work
47
47
  - Modify task output artifacts
48
48
  - Spawn workers with general-purpose agent (MUST use tlv4_worker)
49
49
  - Generate more than 5 worker roles
50
- - Call CLI tools (ccw cli) — only workers use CLI
50
+ - Call CLI tools (maestro cli) — only workers use CLI
51
51
 
52
52
  ## Command Execution Protocol
53
53
  When coordinator needs to execute a specific phase:
@@ -51,7 +51,7 @@ CONSTRAINTS: Only modify listed files | Follow existing patterns
51
51
 
52
52
  CLI call:
53
53
  ```
54
- Bash(`ccw cli -p "<prompt>" --tool <tool> --mode write --rule development-implement-feature`)
54
+ Bash(`maestro cli -p "<prompt>" --tool <tool> --mode write --rule development-implement-feature`)
55
55
  ```
56
56
 
57
57
  Resume strategy:
@@ -36,7 +36,7 @@ Codebase-informed implementation planning with complexity assessment.
36
36
  3. Check <session>/explorations/cache-index.json for cached explorations
37
37
  4. Explore codebase (cache-aware):
38
38
  ```
39
- Bash({ command: `ccw cli -p "PURPOSE: Explore codebase to inform planning
39
+ Bash({ command: `maestro cli -p "PURPOSE: Explore codebase to inform planning
40
40
  TASK: * Search for relevant patterns * Identify files to modify * Document integration points
41
41
  MODE: analysis
42
42
  CONTEXT: @**/*
@@ -48,7 +48,7 @@ Codebase-informed implementation planning with complexity assessment.
48
48
 
49
49
  Generate plan.json + .task/TASK-*.json:
50
50
  ```
51
- Bash({ command: `ccw cli -p "PURPOSE: Generate implementation plan from exploration results
51
+ Bash({ command: `maestro cli -p "PURPOSE: Generate implementation plan from exploration results
52
52
  TASK: * Create plan.json overview * Generate TASK-*.json files (2-7 tasks) * Define dependencies * Set convergence criteria
53
53
  MODE: write
54
54
  CONTEXT: @<session>/explorations/*.json
@@ -61,7 +61,7 @@ Template-driven document generation with progressive dependency loading.
61
61
 
62
62
  CLI generation:
63
63
  ```
64
- Bash({ command: `ccw cli -p "PURPOSE: Generate <doc-type> document following template
64
+ Bash({ command: `maestro cli -p "PURPOSE: Generate <doc-type> document following template
65
65
  TASK: * Load template * Apply spec config and discovery context * Integrate prior feedback * Generate all sections
66
66
  MODE: write
67
67
  CONTEXT: @<session>/spec/*.json @<template-path>
@@ -1,6 +1,6 @@
1
1
  # Tasks Schema — team-lifecycle-v4
2
2
 
3
- > Base schema: `~/.ccw/workflows/cli-templates/schemas/team-tasks-schema.json`
3
+ > Base schema: `~/.maestro/templates/cli/schemas/team-tasks-schema.json`
4
4
 
5
5
  This file documents lifecycle-v4 specific extensions to the universal team tasks schema.
6
6
 
@@ -63,7 +63,7 @@ Before calling ANY tool, apply this check:
63
63
  | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
64
64
  | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
65
65
  | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
66
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
66
+ | `Bash("maestro cli ...")` | BLOCKED | Only workers call CLI |
67
67
  | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
68
68
 
69
69
  **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
@@ -77,7 +77,7 @@ Before calling ANY tool, apply this check:
77
77
  - **Session prefix**: `QA`
78
78
  - **Session path**: `.workflow/.team/QA-<slug>-<date>/`
79
79
  - **Team name**: `quality-assurance`
80
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
80
+ - **CLI tools**: `maestro cli --mode analysis` (read-only), `maestro cli --mode write` (modifications)
81
81
  - **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
82
82
 
83
83
  ## Worker Spawn Template
@@ -12,7 +12,7 @@ Orchestrate team-quality-assurance: analyze -> dispatch -> spawn -> monitor -> r
12
12
  **FORBIDDEN** (even if the task seems trivial):
13
13
  ```
14
14
  WRONG: Read/Grep/Glob on project source code — worker work
15
- WRONG: Bash("ccw cli ...") — worker work
15
+ WRONG: Bash("maestro cli ...") — worker work
16
16
  WRONG: Edit/Write on project source files — worker work
17
17
  WRONG: Bash("npm test"), Bash("tsc"), etc. — worker work
18
18
  ```
@@ -45,7 +45,7 @@ WRONG: Bash("npm test"), Bash("tsc"), etc. — worker work
45
45
  - Modify test files or source code
46
46
  - Spawn workers with general-purpose agent (MUST use team-worker)
47
47
  - Generate more than 6 worker roles
48
- - Call CLI tools (ccw cli) — only workers use CLI
48
+ - Call CLI tools (maestro cli) — only workers use CLI
49
49
 
50
50
  ## Command Execution Protocol
51
51
  When coordinator needs to execute a specific phase:
@@ -26,7 +26,7 @@ Run test suites, collect coverage data, and perform automatic fix cycles when te
26
26
  | Target layer | task description `layer: L1/L2/L3` | Yes |
27
27
 
28
28
  1. Extract session path and target layer from task description
29
- 2. Load validation specs: Run `ccw spec load --category validation` for verification rules and acceptance criteria
29
+ 2. Load validation specs: Run `maestro spec load --category validation` for verification rules and acceptance criteria
30
30
  3. Read .msg/meta.json for strategy and generated test file list
31
31
  3. Detect test command by framework:
32
32
 
@@ -39,7 +39,7 @@ Scan codebase from multiple perspectives (bug, security, test-coverage, code-qua
39
39
 
40
40
  **Low complexity**: Use `mcp__ace-tool__search_context` for quick pattern-based scan.
41
41
 
42
- **Medium/High complexity**: CLI fan-out -- one `ccw cli --mode analysis` per perspective:
42
+ **Medium/High complexity**: CLI fan-out -- one `maestro cli --mode analysis` per perspective:
43
43
 
44
44
  For each active perspective, build prompt:
45
45
  ```
@@ -50,7 +50,7 @@ CONTEXT: @<scan-scope>
50
50
  EXPECTED: List of findings with severity (critical/high/medium/low), file:line references, description
51
51
  CONSTRAINTS: Focus on actionable findings only
52
52
  ```
53
- Execute via: `ccw cli -p "<prompt>" --tool gemini --mode analysis`
53
+ Execute via: `maestro cli -p "<prompt>" --tool gemini --mode analysis`
54
54
 
55
55
  After all perspectives complete:
56
56
  - Parse CLI outputs into structured findings
@@ -61,7 +61,7 @@ Before calling ANY tool, apply this check:
61
61
  | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
62
62
  | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
63
63
  | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
64
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
64
+ | `Bash("maestro cli ...")` | BLOCKED | Only workers call CLI |
65
65
  | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
66
66
 
67
67
  **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
@@ -75,7 +75,7 @@ Before calling ANY tool, apply this check:
75
75
  - **Session prefix**: `RV`
76
76
  - **Session path**: `.workflow/.team/RV-<slug>-<date>/`
77
77
  - **Team name**: `review`
78
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
78
+ - **CLI tools**: `maestro cli --mode analysis` (read-only), `maestro cli --mode write` (modifications)
79
79
  - **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
80
80
 
81
81
  ## Worker Spawn Template
@@ -12,7 +12,7 @@ Orchestrate team-review: parse target -> detect mode -> dispatch task chain -> m
12
12
  **FORBIDDEN** (even if the task seems trivial):
13
13
  ```
14
14
  WRONG: Read/Grep/Glob on project source code — worker work
15
- WRONG: Bash("ccw cli ...") — worker work
15
+ WRONG: Bash("maestro cli ...") — worker work
16
16
  WRONG: Bash("semgrep/eslint/tsc ...") — worker work
17
17
  WRONG: Edit/Write on project source files — worker work
18
18
  ```
@@ -45,7 +45,7 @@ WRONG: Edit/Write on project source files — worker work
45
45
  - Perform code review or scanning directly
46
46
  - Bypass worker roles
47
47
  - Spawn workers with general-purpose agent (MUST use team_worker)
48
- - Call CLI tools (ccw cli) — only workers use CLI
48
+ - Call CLI tools (maestro cli) — only workers use CLI
49
49
 
50
50
  ## Command Execution Protocol
51
51
  When coordinator needs to execute a specific phase:
@@ -21,7 +21,7 @@ Deep analysis on scan findings: triage, root cause / impact / optimization enric
21
21
  | .msg/meta.json | <session>/.msg/meta.json | No |
22
22
 
23
23
  1. Extract session path, input path, dimensions from task description
24
- 2. Load review specs: Run `ccw spec load --category review` for review standards, checklists, and approval gates
24
+ 2. Load review specs: Run `maestro spec load --category review` for review standards, checklists, and approval gates
25
25
  3. Load scan results. If missing or empty -> report clean, complete immediately
26
26
  3. Load wisdom files from `<session>/wisdom/`
27
27
  4. Triage findings into two buckets:
@@ -52,7 +52,7 @@ Build prompt per group requesting 6 enrichment fields per finding:
52
52
  - `fix_complexity`: low / medium / high
53
53
  - `fix_dependencies`: finding IDs that must be fixed first
54
54
 
55
- Execute via `ccw cli --tool gemini --mode analysis --rule analysis-diagnose-bug-root-cause` (fallback: qwen -> codex). Parse JSON array responses, merge with originals (CLI-enriched replace originals, unenriched get defaults). Write `<session>/review/enriched-findings.json`.
55
+ Execute via `maestro cli --tool gemini --mode analysis --rule analysis-diagnose-bug-root-cause` (fallback: qwen -> codex). Parse JSON array responses, merge with originals (CLI-enriched replace originals, unenriched get defaults). Write `<session>/review/enriched-findings.json`.
56
56
 
57
57
  ## Phase 4: Report Generation
58
58
 
@@ -59,7 +59,7 @@ Build prompt with target file patterns, toolchain dedup summary, and per-dimensi
59
59
  - PRF: Algorithm complexity, N+1 queries, unnecessary sync, memory leaks, missing caching
60
60
  - MNT: Architectural coupling, abstraction leaks, convention violations, dead code
61
61
 
62
- Execute via `ccw cli --tool gemini --mode analysis --rule analysis-review-code-quality` (fallback: qwen -> codex). Parse JSON array response, validate required fields (dimension, title, location.file), enforce per-dimension limit (max 5 each), filter minimum severity (medium+). Write `<session>/scan/semantic-findings.json`.
62
+ Execute via `maestro cli --tool gemini --mode analysis --rule analysis-review-code-quality` (fallback: qwen -> codex). Parse JSON array response, validate required fields (dimension, title, location.file), enforce per-dimension limit (max 5 each), filter minimum severity (medium+). Write `<session>/scan/semantic-findings.json`.
63
63
 
64
64
  ## Phase 4: Aggregate & Output
65
65
 
@@ -63,7 +63,7 @@ Before calling ANY tool, apply this check:
63
63
  | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
64
64
  | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
65
65
  | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
66
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
66
+ | `Bash("maestro cli ...")` | BLOCKED | Only workers call CLI |
67
67
  | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
68
68
 
69
69
  **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
@@ -76,7 +76,7 @@ Before calling ANY tool, apply this check:
76
76
 
77
77
  - **Session prefix**: `TD`
78
78
  - **Session path**: `.workflow/.team/TD-<slug>-<date>/`
79
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
79
+ - **CLI tools**: `maestro cli --mode analysis` (read-only), `maestro cli --mode write` (modifications)
80
80
  - **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
81
81
  - **Max GC rounds**: 3
82
82
 
@@ -12,7 +12,7 @@
12
12
  **FORBIDDEN** (even if the task seems trivial):
13
13
  ```
14
14
  WRONG: Read/Grep/Glob on project source code — worker work
15
- WRONG: Bash("ccw cli ...") — worker work
15
+ WRONG: Bash("maestro cli ...") — worker work
16
16
  WRONG: Edit/Write on project source files — worker work
17
17
  ```
18
18
 
@@ -37,7 +37,7 @@ For each batch, use CLI tool for implementation:
37
37
  **Per-batch delegation**:
38
38
 
39
39
  ```bash
40
- ccw cli -p "PURPOSE: Apply tech debt fixes in batch; success = all items fixed without breaking changes
40
+ maestro cli -p "PURPOSE: Apply tech debt fixes in batch; success = all items fixed without breaking changes
41
41
  TASK: <batch-type-specific-tasks>
42
42
  MODE: write
43
43
  CONTEXT: @<worktree-path>/**/* | Memory: Remediation plan context
@@ -18,7 +18,7 @@ Multi-dimension tech debt scanner. Scan codebase across 5 dimensions (code, arch
18
18
  | .msg/meta.json | <session>/.msg/meta.json | Yes |
19
19
 
20
20
  1. Extract session path and scan scope from task description
21
- 2. Load debug specs: Run `ccw spec load --category debug` for known issues, workarounds, and root-cause notes
21
+ 2. Load debug specs: Run `maestro spec load --category debug` for known issues, workarounds, and root-cause notes
22
22
  3. Read .msg/meta.json for team context
23
23
  3. Detect project type and framework:
24
24
 
@@ -56,7 +56,7 @@ Multi-dimension tech debt scanner. Scan codebase across 5 dimensions (code, arch
56
56
  - Classify findings into dimensions
57
57
 
58
58
  **Medium/High Complexity** (Fan-out):
59
- - Fan-out A: CLI exploration (structure, patterns, dependencies angles) via `ccw cli --tool gemini --mode analysis`
59
+ - Fan-out A: CLI exploration (structure, patterns, dependencies angles) via `maestro cli --tool gemini --mode analysis`
60
60
  - Fan-out B: CLI dimension analysis (parallel gemini per dimension -- code, architecture, testing, dependency, documentation)
61
61
  - Fan-out C (High only): Multi-perspective Gemini analysis (security, performance, code-quality, architecture)
62
62
  - Fan-in: Merge results, cross-deduplicate by file:line, boost severity for multi-source findings
@@ -58,7 +58,7 @@ Execute 4-layer validation (all commands in worktree):
58
58
  **Auto-fix attempt** (when total_regressions <= 3):
59
59
  - Use CLI tool to fix regressions in worktree:
60
60
  ```
61
- Bash(`cd "${worktreePath}" && ccw cli -p "PURPOSE: Fix regressions found in validation
61
+ Bash(`cd "${worktreePath}" && maestro cli -p "PURPOSE: Fix regressions found in validation
62
62
  TASK: ${regressionDetails}
63
63
  MODE: write
64
64
  CONTEXT: @${modifiedFiles.join(' @')}
@@ -62,7 +62,7 @@ Before calling ANY tool, apply this check:
62
62
  | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
63
63
  | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
64
64
  | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
65
- | `Bash("ccw cli ...")` | BLOCKED | Only workers call CLI |
65
+ | `Bash("maestro cli ...")` | BLOCKED | Only workers call CLI |
66
66
  | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
67
67
 
68
68
  **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
@@ -76,7 +76,7 @@ Before calling ANY tool, apply this check:
76
76
  - **Session prefix**: `TST`
77
77
  - **Session path**: `.workflow/.team/TST-<slug>-<date>/`
78
78
  - **Team name**: `testing`
79
- - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
79
+ - **CLI tools**: `maestro cli --mode analysis` (read-only), `maestro cli --mode write` (modifications)
80
80
  - **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
81
81
 
82
82
  ## Worker Spawn Template
@@ -12,7 +12,7 @@ Orchestrate team-testing: analyze -> dispatch -> spawn -> monitor -> report.
12
12
  **FORBIDDEN** (even if the task seems trivial):
13
13
  ```
14
14
  WRONG: Read/Grep/Glob on project source code — worker work
15
- WRONG: Bash("ccw cli ...") — worker work
15
+ WRONG: Bash("maestro cli ...") — worker work
16
16
  WRONG: Bash("npm test"), Bash("jest"), etc. — worker work
17
17
  WRONG: Edit/Write on test or source files — worker work
18
18
  ```
@@ -43,7 +43,7 @@ WRONG: Edit/Write on test or source files — worker work
43
43
  - Skip quality gates when coverage is below target
44
44
  - Modify test files or source code directly -- delegate to workers
45
45
  - Force-advance pipeline past failed GC loops
46
- - Call CLI tools (ccw cli) — only workers use CLI
46
+ - Call CLI tools (maestro cli) — only workers use CLI
47
47
 
48
48
  ## Command Execution Protocol
49
49
  When coordinator needs to execute a specific phase:
@@ -24,7 +24,7 @@ Execute tests, collect coverage, attempt auto-fix for failures. Acts as the Crit
24
24
  | .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
25
25
 
26
26
  1. Extract session path and test directory from task description
27
- 2. Load test specs: Run `ccw spec load --category test` for test framework conventions and coverage targets
27
+ 2. Load test specs: Run `maestro spec load --category test` for test framework conventions and coverage targets
28
28
  3. Extract coverage target (default: 80%)
29
29
  3. Read .msg/meta.json for framework info (from strategist namespace)
30
30
  4. Determine test framework:
@@ -61,7 +61,7 @@ Bash("<test-command> 2>&1 || true")
61
61
  **Auto-fix delegation** (on failure):
62
62
 
63
63
  ```
64
- Bash(`ccw cli -p "PURPOSE: Fix test failures to achieve pass rate >= 0.95; success = all tests pass
64
+ Bash(`maestro cli -p "PURPOSE: Fix test failures to achieve pass rate >= 0.95; success = all tests pass
65
65
  TASK: • Analyze test failure output • Identify root causes • Fix test code only (not source) • Preserve test intent
66
66
  MODE: write
67
67
  CONTEXT: @<session>/<test-dir>/**/* | Memory: Test framework: <framework>, iteration <N>/3
@@ -22,7 +22,7 @@ Generate test code by layer (L1 unit / L2 integration / L3 E2E). Acts as the Gen
22
22
  | .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
23
23
 
24
24
  1. Extract session path and layer from task description
25
- 2. Load test specs: Run `ccw spec load --category test` for test framework conventions and coverage targets
25
+ 2. Load test specs: Run `maestro spec load --category test` for test framework conventions and coverage targets
26
26
  3. Read test strategy:
27
27
 
28
28
  ```
@@ -63,7 +63,7 @@ For revision mode:
63
63
  **CLI delegation** (medium/high complexity):
64
64
 
65
65
  ```
66
- Bash(`ccw cli -p "PURPOSE: Generate <layer> tests using <framework> to achieve coverage target; success = all priority files covered with quality tests
66
+ Bash(`maestro cli -p "PURPOSE: Generate <layer> tests using <framework> to achieve coverage target; success = all priority files covered with quality tests
67
67
  TASK: • Analyze source files • Generate test cases (happy path, edge cases, errors) • Write test files with proper structure • Ensure import resolution
68
68
  MODE: write
69
69
  CONTEXT: @<source-files> @<session>/strategy/test-strategy.md | Memory: Framework: <framework>, Layer: <layer>, Round: <round>
package/README.md CHANGED
@@ -220,14 +220,22 @@ Maestro-Flow doesn't pick one AI — it uses them together:
220
220
 
221
221
  ### Install
222
222
 
223
+ #### npm (Recommended)
224
+
225
+ ```bash
226
+ npm install -g maestro-flow
227
+
228
+ # Install workflows, commands, agents, templates
229
+ maestro install
230
+ ```
231
+
232
+ #### From Source
233
+
223
234
  ```bash
224
235
  git clone https://github.com/catlog22/Maestro-Flow.git
225
236
  cd Maestro-Flow
226
237
  npm install && npm run build
227
-
228
- # Dashboard
229
- cd dashboard && npm install && npm run dev
230
- # → http://127.0.0.1:3001
238
+ maestro install
231
239
  ```
232
240
 
233
241
  ### First Run
@@ -242,6 +250,37 @@ cd dashboard && npm install && npm run dev
242
250
  /maestro "build a REST API for user management"
243
251
  ```
244
252
 
253
+ ### Dashboard & TUI
254
+
255
+ ```bash
256
+ # Web dashboard — real-time project control panel
257
+ maestro serve
258
+ # → http://127.0.0.1:3001
259
+
260
+ # TUI — terminal-based dashboard
261
+ maestro view
262
+ ```
263
+
264
+ | View | Key | Description |
265
+ |------|-----|-------------|
266
+ | **Board** | `K` | Kanban — Backlog, In Progress, Review, Done |
267
+ | **Timeline** | `T` | Gantt-style phase timeline |
268
+ | **Table** | `L` | Sortable phase & issue table |
269
+ | **Center** | `C` | Command center — active executions, quality metrics |
270
+
271
+ ### Workflow Launcher
272
+
273
+ Switch between different workflow configurations (e.g., Maestro ↔ CCW):
274
+
275
+ ```bash
276
+ maestro launcher # Interactive workflow + settings picker
277
+ maestro launcher list # Show registered workflows
278
+ ```
279
+
280
+ When switching workflows, the launcher automatically:
281
+ - Detects missing dependencies and offers `npm install -g <package>` + resource installation
282
+ - Detects project-level workflow file conflicts and offers cleanup
283
+
245
284
  ### MCP Server
246
285
 
247
286
  Expose Maestro-Flow tools to Claude Desktop and other MCP clients:
@@ -15,6 +15,7 @@ interface NormalizedEntry {
15
15
  }
16
16
  export declare class DashboardBridge {
17
17
  private ws;
18
+ private activeCount;
18
19
  /**
19
20
  * Attempt to connect to the Dashboard WS endpoint.
20
21
  * Returns immediately if connection fails or times out.
@@ -24,8 +25,12 @@ export declare class DashboardBridge {
24
25
  forwardSpawn(process: AgentProcess): void;
25
26
  /** Forward a normalized entry to the Dashboard */
26
27
  forwardEntry(entry: NormalizedEntry): void;
28
+ /** Register an active CLI process for reference counting */
29
+ registerProcess(): void;
27
30
  /** Notify Dashboard that the CLI process has stopped */
28
31
  forwardStopped(processId: string): void;
32
+ /** Close the WS connection only when no active processes remain */
33
+ closeIfIdle(): void;
29
34
  /** Close the WS connection */
30
35
  close(): void;
31
36
  private send;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-bridge.d.ts","sourceRoot":"","sources":["../../src/agents/dashboard-bridge.ts"],"names":[],"mappings":"AAWA,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAA0B;IAEpC;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBjE,qDAAqD;IACrD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIzC,kDAAkD;IAClD,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAI1C,wDAAwD;IACxD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,IAAI;CASb"}
1
+ {"version":3,"file":"dashboard-bridge.d.ts","sourceRoot":"","sources":["../../src/agents/dashboard-bridge.ts"],"names":[],"mappings":"AAWA,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,WAAW,CAAa;IAEhC;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBjE,qDAAqD;IACrD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIzC,kDAAkD;IAClD,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAI1C,4DAA4D;IAC5D,eAAe,IAAI,IAAI;IAIvB,wDAAwD;IACxD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKvC,mEAAmE;IACnE,WAAW,IAAI,IAAI;IAMnB,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,IAAI;CASb"}
@@ -8,6 +8,7 @@ import { WebSocket } from 'ws';
8
8
  // ---------------------------------------------------------------------------
9
9
  export class DashboardBridge {
10
10
  ws = null;
11
+ activeCount = 0;
11
12
  /**
12
13
  * Attempt to connect to the Dashboard WS endpoint.
13
14
  * Returns immediately if connection fails or times out.
@@ -38,9 +39,20 @@ export class DashboardBridge {
38
39
  forwardEntry(entry) {
39
40
  this.send({ action: 'cli:entry', entry });
40
41
  }
42
+ /** Register an active CLI process for reference counting */
43
+ registerProcess() {
44
+ this.activeCount++;
45
+ }
41
46
  /** Notify Dashboard that the CLI process has stopped */
42
47
  forwardStopped(processId) {
43
48
  this.send({ action: 'cli:stopped', processId });
49
+ this.activeCount--;
50
+ }
51
+ /** Close the WS connection only when no active processes remain */
52
+ closeIfIdle() {
53
+ if (this.activeCount <= 0) {
54
+ this.close();
55
+ }
44
56
  }
45
57
  /** Close the WS connection */
46
58
  close() {
@@ -48,6 +60,7 @@ export class DashboardBridge {
48
60
  this.ws.close();
49
61
  }
50
62
  this.ws = null;
63
+ this.activeCount = 0;
51
64
  }
52
65
  send(data) {
53
66
  if (this.ws && this.ws.readyState === WebSocket.OPEN) {
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-bridge.js","sourceRoot":"","sources":["../../src/agents/dashboard-bridge.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAuB/B,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IAClB,EAAE,GAAqB,IAAI,CAAC;IAEpC;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,SAAS,GAAG,IAAI;QAC5C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,EAAE,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YAE9B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,YAAY,CAAC,OAAqB;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,kDAAkD;IAClD,YAAY,CAAC,KAAsB;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,wDAAwD;IACxD,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,8BAA8B;IAC9B,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACjB,CAAC;IAEO,IAAI,CAAC,IAAa;QACxB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"dashboard-bridge.js","sourceRoot":"","sources":["../../src/agents/dashboard-bridge.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAuB/B,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IAClB,EAAE,GAAqB,IAAI,CAAC;IAC5B,WAAW,GAAW,CAAC,CAAC;IAEhC;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,SAAS,GAAG,IAAI;QAC5C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,EAAE,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YAE9B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,YAAY,CAAC,OAAqB;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,kDAAkD;IAClD,YAAY,CAAC,KAAsB;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,4DAA4D;IAC5D,eAAe;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,wDAAwD;IACxD,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,mEAAmE;IACnE,WAAW;QACT,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAEO,IAAI,CAAC,IAAa;QACxB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}