@automagik/genie 0.260202.1901 → 0.260203.135
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/.beads/issues.jsonl +9 -0
- package/.claude/skills/brainstorm/SKILL.md +53 -0
- package/.claude/skills/genie-base/SKILL.md +66 -0
- package/.claude/skills/genie-base/assets/workspace/AGENTS.md +191 -0
- package/.claude/skills/genie-base/assets/workspace/ENVIRONMENT.md +18 -0
- package/.claude/skills/genie-base/assets/workspace/HEARTBEAT.md +4 -0
- package/.claude/skills/genie-base/assets/workspace/IDENTITY.md +17 -0
- package/.claude/skills/genie-base/assets/workspace/MEMORY.md +16 -0
- package/.claude/skills/genie-base/assets/workspace/ROLE.md +14 -0
- package/.claude/skills/genie-base/assets/workspace/SOUL.md +36 -0
- package/.claude/skills/genie-base/assets/workspace/TOOLS.md +25 -0
- package/.claude/skills/genie-base/assets/workspace/USER.md +13 -0
- package/.claude/skills/genie-base/assets/workspace/memory/2026-01-30.md +6 -0
- package/.claude/skills/genie-base/assets/workspace/memory/2026-01-31.md +16 -0
- package/.claude/skills/genie-base/assets/workspace/memory/882c22be-9710-41c1-91f8-ed82947ef6ce.txt +1 -0
- package/.claude/skills/genie-base/scripts/install-workspace.sh +107 -0
- package/.claude/skills/genie-base/scripts/sanity-sweep.sh +60 -0
- package/.claude/skills/genie-blank-init/SKILL.md +37 -0
- package/.claude/skills/genie-blank-init/assets/BOOTSTRAP.md +44 -0
- package/.claude/skills/genie-blank-init/assets/IDENTITY.md +9 -0
- package/.claude/skills/genie-blank-init/assets/SOUL.md +10 -0
- package/.claude/skills/genie-blank-init/assets/USER.md +9 -0
- package/.claude/skills/genie-blank-init/scripts/apply-blank-init.sh +117 -0
- package/.claude/skills/genie-forge/SKILL.md +171 -0
- package/.claude/skills/genie-plan-review/CLAUDE.md +11 -0
- package/.claude/skills/genie-plan-review/SKILL.md +53 -0
- package/.claude/skills/genie-review/SKILL.md +171 -0
- package/.claude/skills/genie-wish/SKILL.md +141 -0
- package/.claude-plugin/marketplace.json +18 -0
- package/.genie/.gitkeep +3 -0
- package/.genie/backlog/hooks-v2.md +82 -0
- package/.genie/wishes/upgrade-brainstorm-handoff/wish.md +124 -0
- package/.gitattributes +1 -1
- package/AGENTS.md +35 -0
- package/README.md +10 -5
- package/bun.lock +55 -0
- package/dist/claudio.js +1 -1
- package/dist/genie.js +1 -1
- package/dist/term.js +108 -85
- package/docs/CO-ORCHESTRATION-GUIDE.md +375 -0
- package/package.json +5 -1
- package/plugin/.claude-plugin/plugin.json +18 -0
- package/plugin/README.md +120 -0
- package/plugin/agents/implementor.md +92 -0
- package/plugin/agents/quality-reviewer.md +113 -0
- package/plugin/agents/spec-reviewer.md +90 -0
- package/plugin/hooks/hooks.json +3 -0
- package/plugin/hooks/postInstall.sh +10 -0
- package/plugin/references/review-criteria.md +72 -0
- package/plugin/references/wish-template.md +92 -0
- package/plugin/scripts/genie.cjs +141 -0
- package/plugin/scripts/smart-install.js +308 -0
- package/plugin/scripts/src/install-genie-cli.sh +120 -0
- package/plugin/scripts/src/validate-completion.ts +142 -0
- package/plugin/scripts/src/validate-wish.ts +137 -0
- package/plugin/scripts/term.cjs +231 -0
- package/plugin/scripts/validate-completion.cjs +16 -0
- package/plugin/scripts/validate-wish.cjs +17 -0
- package/plugin/scripts/worker-service.cjs +28 -0
- package/plugin/skills/brainstorm/SKILL.md +106 -0
- package/plugin/skills/forge/SKILL.md +171 -0
- package/plugin/skills/genie-base/SKILL.md +99 -0
- package/plugin/skills/genie-base/assets/workspace/AGENTS.md +191 -0
- package/plugin/skills/genie-base/assets/workspace/ENVIRONMENT.md +18 -0
- package/plugin/skills/genie-base/assets/workspace/HEARTBEAT.md +4 -0
- package/plugin/skills/genie-base/assets/workspace/IDENTITY.md +17 -0
- package/plugin/skills/genie-base/assets/workspace/MEMORY.md +16 -0
- package/plugin/skills/genie-base/assets/workspace/ROLE.md +14 -0
- package/plugin/skills/genie-base/assets/workspace/SOUL.md +36 -0
- package/plugin/skills/genie-base/assets/workspace/TOOLS.md +25 -0
- package/plugin/skills/genie-base/assets/workspace/USER.md +13 -0
- package/plugin/skills/genie-base/scripts/install-workspace.sh +107 -0
- package/plugin/skills/genie-base/scripts/sanity-sweep.sh +60 -0
- package/plugin/skills/genie-blank-init/SKILL.md +73 -0
- package/plugin/skills/genie-blank-init/assets/BOOTSTRAP.md +44 -0
- package/plugin/skills/genie-blank-init/assets/IDENTITY.md +9 -0
- package/plugin/skills/genie-blank-init/assets/SOUL.md +10 -0
- package/plugin/skills/genie-blank-init/assets/USER.md +9 -0
- package/plugin/skills/genie-blank-init/scripts/apply-blank-init.sh +117 -0
- package/plugin/skills/genie-cli-dev/CLAUDE.md +19 -0
- package/plugin/skills/genie-cli-dev/SKILL.md +295 -0
- package/plugin/skills/plan-review/SKILL.md +101 -0
- package/plugin/skills/review/SKILL.md +221 -0
- package/plugin/skills/wish/SKILL.md +110 -0
- package/plugin/skills/work-orchestration/SKILL.md +116 -0
- package/scripts/build.js +132 -0
- package/scripts/smart-install.js +308 -0
- package/scripts/sync.js +134 -0
- package/src/lib/beads-registry.ts +49 -0
- package/src/lib/orchestrator/event-monitor.ts +2 -0
- package/src/lib/skill-loader.ts +215 -0
- package/src/lib/tmux.ts +19 -14
- package/src/lib/version.ts +1 -1
- package/src/lib/worker-registry.ts +10 -0
- package/src/services/worker-service.ts +351 -0
- package/src/term-commands/close.ts +14 -4
- package/src/term-commands/create.ts +95 -0
- package/src/term-commands/kill.ts +15 -4
- package/src/term-commands/orchestrate.ts +3 -2
- package/src/term-commands/send.ts +43 -15
- package/src/term-commands/spawn.ts +446 -0
- package/src/term-commands/split.ts +14 -3
- package/src/term-commands/work.ts +217 -57
- package/src/term.ts +81 -6
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "wish"
|
|
3
|
+
description: "Use when starting any non-trivial work that needs structured planning - converts ideas into wish documents with scope, acceptance criteria, and execution tasks"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Wish - Turn Ideas Into Plans
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Convert an idea into a structured wish document through collaborative brainstorming, then create native Claude Code tasks for execution.
|
|
11
|
+
|
|
12
|
+
**Output:** `.genie/wishes/<slug>/wish.md` + native tasks ready for `/forge`
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## The Flow
|
|
17
|
+
|
|
18
|
+
### Phase 1: Brainstorm (Explore Mode)
|
|
19
|
+
|
|
20
|
+
Enter plan mode to explore the codebase read-only. Understand the landscape before proposing anything.
|
|
21
|
+
|
|
22
|
+
**One question at a time. Multiple choice when possible.**
|
|
23
|
+
|
|
24
|
+
1. **Resonate** - Understand the intent
|
|
25
|
+
- What does the user actually want? (not just what they said)
|
|
26
|
+
- Ask clarifying questions, one at a time
|
|
27
|
+
- Prefer multiple choice: "Which of these best describes what you want?"
|
|
28
|
+
|
|
29
|
+
2. **Explore approaches** - Propose 2-3 alternatives
|
|
30
|
+
- Present options with trade-offs
|
|
31
|
+
- Lead with your recommendation and explain why
|
|
32
|
+
- Let the user choose (or propose something different)
|
|
33
|
+
|
|
34
|
+
3. **Align on scope** - Define boundaries
|
|
35
|
+
- What's IN scope?
|
|
36
|
+
- What's explicitly OUT of scope?
|
|
37
|
+
- What assumptions are we making?
|
|
38
|
+
|
|
39
|
+
### Phase 2: Design (200-300 Word Sections)
|
|
40
|
+
|
|
41
|
+
Present the design incrementally. Check after each section.
|
|
42
|
+
|
|
43
|
+
**Sections to cover:**
|
|
44
|
+
- Summary (what and why, 2-3 sentences)
|
|
45
|
+
- Architecture approach
|
|
46
|
+
- Key decisions with rationale
|
|
47
|
+
- Risks and mitigations
|
|
48
|
+
|
|
49
|
+
### Phase 3: Plan (Bite-Sized Tasks)
|
|
50
|
+
|
|
51
|
+
Break the design into execution groups. Each task should be:
|
|
52
|
+
- **Small enough** to implement in one focused session
|
|
53
|
+
- **Testable** with clear acceptance criteria
|
|
54
|
+
- **Independent** where possible (minimize blocking dependencies)
|
|
55
|
+
|
|
56
|
+
**Per task, define:**
|
|
57
|
+
- What to do (deliverables)
|
|
58
|
+
- Acceptance criteria (checkboxes)
|
|
59
|
+
- Validation command (how to verify it worked)
|
|
60
|
+
- Files likely touched
|
|
61
|
+
|
|
62
|
+
### Phase 4: Write the Wish Document
|
|
63
|
+
|
|
64
|
+
Write to `.genie/wishes/<slug>/wish.md` using the template structure:
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
# Wish: <Title>
|
|
68
|
+
|
|
69
|
+
**Status:** DRAFT
|
|
70
|
+
**Slug:** `<slug>`
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Summary
|
|
75
|
+
<2-3 sentences: what and why>
|
|
76
|
+
|
|
77
|
+
## Scope
|
|
78
|
+
### IN
|
|
79
|
+
- <what we're doing>
|
|
80
|
+
|
|
81
|
+
### OUT
|
|
82
|
+
- <what we're not doing>
|
|
83
|
+
|
|
84
|
+
## Decisions
|
|
85
|
+
- **DEC-1:** <key decision with rationale>
|
|
86
|
+
|
|
87
|
+
## Success Criteria
|
|
88
|
+
- [ ] <overall criterion 1>
|
|
89
|
+
- [ ] <overall criterion 2>
|
|
90
|
+
|
|
91
|
+
## Execution Groups
|
|
92
|
+
|
|
93
|
+
### Group A: <Name>
|
|
94
|
+
**Goal:** <one sentence>
|
|
95
|
+
|
|
96
|
+
**Deliverables:**
|
|
97
|
+
- <concrete output>
|
|
98
|
+
|
|
99
|
+
**Acceptance Criteria:**
|
|
100
|
+
- [ ] <testable criterion>
|
|
101
|
+
|
|
102
|
+
**Validation:** `<command to verify>`
|
|
103
|
+
|
|
104
|
+
### Group B: <Name>
|
|
105
|
+
...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Phase 5: Create Native Tasks
|
|
109
|
+
|
|
110
|
+
After writing the wish document:
|
|
111
|
+
- Use `TaskCreate` for each execution group
|
|
112
|
+
- Set up `addBlockedBy` dependencies between tasks
|
|
113
|
+
- Include wish slug and group name in task description
|
|
114
|
+
|
|
115
|
+
### Phase 6: Handoff
|
|
116
|
+
|
|
117
|
+
Output: **"Wish documented. Run `/wish-review` to validate, then `/forge` to begin execution."**
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Key Principles
|
|
122
|
+
|
|
123
|
+
- **One question at a time** - Never ask multiple questions in one message
|
|
124
|
+
- **Multiple choice preferred** - Easier for users to answer
|
|
125
|
+
- **YAGNI ruthlessly** - Remove unnecessary features from all designs
|
|
126
|
+
- **Acceptance criteria are king** - Every task must have testable criteria
|
|
127
|
+
- **Validation commands required** - Every task must have a way to verify completion
|
|
128
|
+
- **Explore before proposing** - Read code before designing changes
|
|
129
|
+
- **Small tasks** - If a task feels big, split it
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Never Do
|
|
134
|
+
|
|
135
|
+
- Skip brainstorming and jump to plan writing
|
|
136
|
+
- Ask more than one question per message
|
|
137
|
+
- Create tasks without acceptance criteria
|
|
138
|
+
- Create tasks without validation commands
|
|
139
|
+
- Write a wish without user agreement on scope
|
|
140
|
+
- Start implementation during wish creation (plan mode only)
|
|
141
|
+
- Create overly broad tasks ("implement everything")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "namastexlabs",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Namastex Labs"
|
|
5
|
+
},
|
|
6
|
+
"metadata": {
|
|
7
|
+
"description": "Plugins by Namastex Labs",
|
|
8
|
+
"homepage": "https://github.com/namastexlabs/genie-cli"
|
|
9
|
+
},
|
|
10
|
+
"plugins": [
|
|
11
|
+
{
|
|
12
|
+
"name": "automagik-genie",
|
|
13
|
+
"version": "2026.02.02",
|
|
14
|
+
"source": "./plugin",
|
|
15
|
+
"description": "Human-AI partnership for Claude Code. Share a terminal, orchestrate workers, evolve together. Brainstorm ideas, wish them into plans, forge with parallel agents, ship as one team. A coding genie that grows with your project."
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
package/.genie/.gitkeep
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Hooks v2 - Intelligent Session Awareness
|
|
2
|
+
|
|
3
|
+
**Status:** Parked (removed 2026-02-02)
|
|
4
|
+
**Why parked:** Scripts weren't being copied to plugin cache + bun dependency
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## The Soul
|
|
9
|
+
|
|
10
|
+
Hooks that make Genie *aware* of the session flow:
|
|
11
|
+
- Know when a wish task is being written (validate structure live)
|
|
12
|
+
- Know when Claude stops (did we actually complete what was asked?)
|
|
13
|
+
- Know session context (what wish are we forging? what task?)
|
|
14
|
+
|
|
15
|
+
## What We Had (v1 - broken)
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"hooks": [
|
|
20
|
+
{
|
|
21
|
+
"event": "PreToolUse",
|
|
22
|
+
"matcher": { "tool_name": "Write", "file_path": ".genie/wishes/**/*.md" },
|
|
23
|
+
"command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/validate-wish.ts --file \"$CLAUDE_FILE_PATH\"",
|
|
24
|
+
"timeout_ms": 5000,
|
|
25
|
+
"on_failure": "warn"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"event": "Stop",
|
|
29
|
+
"matcher": { "stop_reason": "end_turn" },
|
|
30
|
+
"command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/validate-completion.ts --session \"$CLAUDE_SESSION_ID\"",
|
|
31
|
+
"timeout_ms": 10000,
|
|
32
|
+
"on_failure": "ignore"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Problems
|
|
39
|
+
1. `.ts` files not copied to plugin cache (only `smart-install.js` was)
|
|
40
|
+
2. `bun` dependency - not always available
|
|
41
|
+
3. Scripts need to be self-contained `.js` or `.cjs`
|
|
42
|
+
|
|
43
|
+
## Ideas for v2
|
|
44
|
+
|
|
45
|
+
### Wish Validation Hook
|
|
46
|
+
- Validate wish.md structure before write
|
|
47
|
+
- Check: scope section exists, acceptance criteria present, tasks defined
|
|
48
|
+
- Output: warn if missing sections, suggest fixes
|
|
49
|
+
- Could use prompt-based hook instead of script?
|
|
50
|
+
|
|
51
|
+
### Completion Awareness Hook
|
|
52
|
+
- On Stop: check if we're in a forge session
|
|
53
|
+
- Did we complete the current task?
|
|
54
|
+
- Should we mark task done? Move to next?
|
|
55
|
+
- Auto-update task status in wish.md?
|
|
56
|
+
|
|
57
|
+
### Session Context Hook
|
|
58
|
+
- SessionStart: detect if we're resuming a wish/forge
|
|
59
|
+
- Load context automatically
|
|
60
|
+
- "Welcome back, you were working on wish X, task 3"
|
|
61
|
+
|
|
62
|
+
### Prompt-Based Alternative
|
|
63
|
+
Instead of scripts, use Claude's own judgment via prompt hooks:
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"event": "Stop",
|
|
67
|
+
"hooks": [{
|
|
68
|
+
"type": "prompt",
|
|
69
|
+
"prompt": "Check if the current task from .genie/active-wish was completed..."
|
|
70
|
+
}]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Questions to Brainstorm
|
|
75
|
+
- What's the minimal viable hook that adds value?
|
|
76
|
+
- Script vs prompt-based - which fits genie's soul better?
|
|
77
|
+
- How to track "active wish" and "active task" across sessions?
|
|
78
|
+
- Should hooks modify files or just inform?
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
*This is a parking lot for hook ideas. When ready, run /wish to plan implementation.*
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Wish: Upgrade Brainstorm Skill with Handoff Output
|
|
2
|
+
|
|
3
|
+
**Status:** DRAFT
|
|
4
|
+
**Slug:** `upgrade-brainstorm-handoff`
|
|
5
|
+
**Created:** 2026-02-02
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
Merge the best parts from local and plugin brainstorm skill versions, and add a structured handoff output to `.genie/brainstorms/<slug>/design.md` that provides the perfect input for `/wish` to begin execution planning.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Scope
|
|
16
|
+
|
|
17
|
+
### IN
|
|
18
|
+
- Merge local `.claude/skills/brainstorm/` improvements into plugin
|
|
19
|
+
- Add design.md output template as a reference file
|
|
20
|
+
- Update SKILL.md to include handoff phase
|
|
21
|
+
- Delete local duplicate after merge
|
|
22
|
+
- Test the upgraded skill works
|
|
23
|
+
|
|
24
|
+
### OUT
|
|
25
|
+
- Changes to other skills (wish, forge, review)
|
|
26
|
+
- New features beyond the handoff document
|
|
27
|
+
- Changes to the wish template (wish reads brainstorm output, not the other way)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Decisions
|
|
32
|
+
|
|
33
|
+
- **DEC-1:** Output location is `.genie/brainstorms/<slug>/design.md` — keeps brainstorm artifacts separate from wishes
|
|
34
|
+
- **DEC-2:** Handoff document uses markdown table format for decisions/risks — scannable and structured
|
|
35
|
+
- **DEC-3:** Status field in design.md is `VALIDATED` — signals ready for /wish consumption
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Success Criteria
|
|
40
|
+
|
|
41
|
+
- [ ] Plugin brainstorm skill includes all best practices from both versions
|
|
42
|
+
- [ ] Running `/brainstorm` produces `.genie/brainstorms/<slug>/design.md` on completion
|
|
43
|
+
- [ ] Design.md format includes: Problem, Solution, Scope IN/OUT, Decisions, Risks, Success definition
|
|
44
|
+
- [ ] Local `.claude/skills/brainstorm/` is deleted
|
|
45
|
+
- [ ] No duplicate brainstorm skills exist
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Assumptions
|
|
50
|
+
|
|
51
|
+
- **ASM-1:** The plugin can be updated and reinstalled locally for testing
|
|
52
|
+
- **ASM-2:** The design.md template is sufficient for /wish to begin planning
|
|
53
|
+
|
|
54
|
+
## Risks
|
|
55
|
+
|
|
56
|
+
- **RISK-1:** Breaking existing brainstorm behavior — Mitigation: Test with a real brainstorm session before deleting local
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Execution Groups
|
|
61
|
+
|
|
62
|
+
### Group A: Create Design Template Reference
|
|
63
|
+
|
|
64
|
+
**Goal:** Add the design.md template as a reference file in the plugin.
|
|
65
|
+
|
|
66
|
+
**Deliverables:**
|
|
67
|
+
- `plugin/references/design-template.md` with the agreed format
|
|
68
|
+
|
|
69
|
+
**Acceptance Criteria:**
|
|
70
|
+
- [ ] Template file exists at `plugin/references/design-template.md`
|
|
71
|
+
- [ ] Template includes all agreed sections (Problem, Solution, Scope, Design, Constraints, Success)
|
|
72
|
+
|
|
73
|
+
**Validation:** `cat plugin/references/design-template.md | head -30`
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Group B: Upgrade Brainstorm SKILL.md
|
|
78
|
+
|
|
79
|
+
**Goal:** Merge best practices and add handoff phase to the brainstorm skill.
|
|
80
|
+
|
|
81
|
+
**Deliverables:**
|
|
82
|
+
- Updated `plugin/skills/brainstorm/SKILL.md` with:
|
|
83
|
+
- Merged content from both versions
|
|
84
|
+
- New Phase 6: Write Handoff Document
|
|
85
|
+
- Reference to design-template.md
|
|
86
|
+
|
|
87
|
+
**Acceptance Criteria:**
|
|
88
|
+
- [ ] SKILL.md includes all 6 phases
|
|
89
|
+
- [ ] Phase 6 writes to `.genie/brainstorms/<slug>/design.md`
|
|
90
|
+
- [ ] References the design-template.md for format
|
|
91
|
+
- [ ] Includes "Never Do" guardrails
|
|
92
|
+
|
|
93
|
+
**Validation:** `grep -c "Phase\|design-template\|\.genie/brainstorms" plugin/skills/brainstorm/SKILL.md`
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### Group C: Delete Local Duplicate
|
|
98
|
+
|
|
99
|
+
**Goal:** Remove the local `.claude/skills/brainstorm/` now that plugin is upgraded.
|
|
100
|
+
|
|
101
|
+
**Deliverables:**
|
|
102
|
+
- Delete `.claude/skills/brainstorm/` directory
|
|
103
|
+
|
|
104
|
+
**Acceptance Criteria:**
|
|
105
|
+
- [ ] `.claude/skills/brainstorm/` no longer exists
|
|
106
|
+
- [ ] No errors when running `/brainstorm` (uses plugin version)
|
|
107
|
+
|
|
108
|
+
**Validation:** `ls .claude/skills/brainstorm 2>&1 | grep -c "No such file"`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Review Results
|
|
113
|
+
|
|
114
|
+
_Populated by `/review` after forge execution completes._
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Files to Create/Modify
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
plugin/references/design-template.md (CREATE)
|
|
122
|
+
plugin/skills/brainstorm/SKILL.md (MODIFY)
|
|
123
|
+
.claude/skills/brainstorm/ (DELETE)
|
|
124
|
+
```
|
package/.gitattributes
CHANGED
package/AGENTS.md
CHANGED
|
@@ -12,6 +12,41 @@ bd close <id> # Complete work
|
|
|
12
12
|
bd sync # Sync with git
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
## Co-Orchestration Mode
|
|
16
|
+
|
|
17
|
+
When working as a **spawned worker** via `term work`, you are part of a multi-agent system:
|
|
18
|
+
|
|
19
|
+
1. **You are bound to a specific issue** - Focus ONLY on that task
|
|
20
|
+
2. **Your state is tracked** - The orchestrator sees your status (working/idle/permission/etc.)
|
|
21
|
+
3. **You work in an isolated worktree** - Your changes don't affect other workers
|
|
22
|
+
4. **Beads syncs automatically** - The daemon handles commits
|
|
23
|
+
|
|
24
|
+
### CLI Improvement Rule (CRITICAL)
|
|
25
|
+
|
|
26
|
+
**DO NOT implement CLI improvements directly.** When you identify an opportunity to improve genie-cli:
|
|
27
|
+
|
|
28
|
+
1. Create an issue: `bd create "CLI: <improvement>" --label cli-improvement`
|
|
29
|
+
2. Continue with your assigned task
|
|
30
|
+
3. A dedicated `genie-cli-improver` worker will handle CLI changes
|
|
31
|
+
|
|
32
|
+
This ensures:
|
|
33
|
+
- Your current task stays focused
|
|
34
|
+
- CLI changes are isolated and reviewable
|
|
35
|
+
- No scope creep in your work
|
|
36
|
+
|
|
37
|
+
### Worker Lifecycle
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
term work bd-X → You start → Work on task → Signal completion → term close bd-X
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
When done with your task:
|
|
44
|
+
1. Commit your changes
|
|
45
|
+
2. Inform the orchestrator you're done (just say "Done" or similar)
|
|
46
|
+
3. The orchestrator will run `term close bd-X` to clean up
|
|
47
|
+
|
|
48
|
+
See `docs/CO-ORCHESTRATION-GUIDE.md` for the full orchestration workflow.
|
|
49
|
+
|
|
15
50
|
## Landing the Plane (Session Completion)
|
|
16
51
|
|
|
17
52
|
**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
|
package/README.md
CHANGED
|
@@ -217,9 +217,11 @@ term
|
|
|
217
217
|
├── rm <name> Remove session (--keep-worktree)
|
|
218
218
|
├── read <session> Read output (-n, --grep, --json, -f)
|
|
219
219
|
├── exec <session> <cmd> Run command (async)
|
|
220
|
-
├── send <session> <keys> Send
|
|
220
|
+
├── send <session> <keys> Send keys with Enter (--no-enter for raw)
|
|
221
221
|
├── split <session> <h|v> Split pane (-d, -w)
|
|
222
|
-
├──
|
|
222
|
+
├── info <session> Session info (--json)
|
|
223
|
+
├── watch <session> Watch events in real-time
|
|
224
|
+
├── run <session> <msg> Fire-and-forget with auto-approve
|
|
223
225
|
├── window
|
|
224
226
|
│ ├── new <session> <name>
|
|
225
227
|
│ ├── ls <session> (--json)
|
|
@@ -227,6 +229,9 @@ term
|
|
|
227
229
|
├── pane
|
|
228
230
|
│ ├── ls <session> (--json)
|
|
229
231
|
│ └── rm <pane-id>
|
|
232
|
+
├── orc
|
|
233
|
+
│ ├── start <session> Start Claude with monitoring
|
|
234
|
+
│ └── status <session> Claude state (idle/busy/permission)
|
|
230
235
|
└── hook
|
|
231
236
|
├── set <event> <cmd>
|
|
232
237
|
├── list
|
|
@@ -422,8 +427,8 @@ term ls --json
|
|
|
422
427
|
term read khal-tests --json
|
|
423
428
|
# → {"session":"khal-tests","lines":["$ npm test","PASS src/app.test.ts"]}
|
|
424
429
|
|
|
425
|
-
# Check
|
|
426
|
-
term
|
|
430
|
+
# Check session info
|
|
431
|
+
term info khal-tests --json
|
|
427
432
|
# → {"exists":true,"windows":1,"panes":1}
|
|
428
433
|
```
|
|
429
434
|
|
|
@@ -456,7 +461,7 @@ term exec project-work "npm test" # runs in active pane
|
|
|
456
461
|
|
|
457
462
|
Check if a command finished:
|
|
458
463
|
```bash
|
|
459
|
-
term
|
|
464
|
+
term info my-session --json
|
|
460
465
|
```
|
|
461
466
|
|
|
462
467
|
Look for shell prompt in output to detect completion:
|
package/bun.lock
CHANGED
|
@@ -13,11 +13,64 @@
|
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"@types/bun": "^1.1.0",
|
|
15
15
|
"@types/node": "^20.10.5",
|
|
16
|
+
"esbuild": "^0.27.2",
|
|
16
17
|
"typescript": "^5.3.3",
|
|
17
18
|
},
|
|
18
19
|
},
|
|
19
20
|
},
|
|
20
21
|
"packages": {
|
|
22
|
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="],
|
|
23
|
+
|
|
24
|
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="],
|
|
25
|
+
|
|
26
|
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="],
|
|
27
|
+
|
|
28
|
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="],
|
|
29
|
+
|
|
30
|
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="],
|
|
31
|
+
|
|
32
|
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="],
|
|
33
|
+
|
|
34
|
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="],
|
|
35
|
+
|
|
36
|
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="],
|
|
37
|
+
|
|
38
|
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="],
|
|
39
|
+
|
|
40
|
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="],
|
|
41
|
+
|
|
42
|
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="],
|
|
43
|
+
|
|
44
|
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="],
|
|
45
|
+
|
|
46
|
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="],
|
|
47
|
+
|
|
48
|
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="],
|
|
49
|
+
|
|
50
|
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="],
|
|
51
|
+
|
|
52
|
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="],
|
|
53
|
+
|
|
54
|
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="],
|
|
55
|
+
|
|
56
|
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="],
|
|
57
|
+
|
|
58
|
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="],
|
|
59
|
+
|
|
60
|
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="],
|
|
61
|
+
|
|
62
|
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="],
|
|
63
|
+
|
|
64
|
+
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="],
|
|
65
|
+
|
|
66
|
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="],
|
|
67
|
+
|
|
68
|
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="],
|
|
69
|
+
|
|
70
|
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="],
|
|
71
|
+
|
|
72
|
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="],
|
|
73
|
+
|
|
21
74
|
"@inquirer/ansi": ["@inquirer/ansi@1.0.2", "", {}, "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ=="],
|
|
22
75
|
|
|
23
76
|
"@inquirer/checkbox": ["@inquirer/checkbox@4.3.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA=="],
|
|
@@ -72,6 +125,8 @@
|
|
|
72
125
|
|
|
73
126
|
"emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
|
|
74
127
|
|
|
128
|
+
"esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="],
|
|
129
|
+
|
|
75
130
|
"iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="],
|
|
76
131
|
|
|
77
132
|
"is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
|
package/dist/claudio.js
CHANGED
|
@@ -27,7 +27,7 @@ Expecting one of '${E.join("', '")}'`);let B=`${D}Help`;return this.on(B,($)=>{l
|
|
|
27
27
|
`)$+=S3(q)}}return $};w3.exports=(D,F,E)=>{return String(D).normalize().replace(/\r\n/g,`
|
|
28
28
|
`).split(`
|
|
29
29
|
`).map((B)=>oF(B,F,E)).join(`
|
|
30
|
-
`)}});var f3=Z((c5,T3)=>{var tF=GD("stream");class P3 extends tF{#E=null;constructor(D={}){super(D);this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=D.replace,this._prompt=D.prompt||null,this._hadControl=!1}#F(D,F){if(this._dest)return this._dest[D];if(this._src)return this._src[D];return F}#D(D,...F){if(typeof this._dest?.[D]==="function")this._dest[D](...F);if(typeof this._src?.[D]==="function")this._src[D](...F)}get isTTY(){if(this.#E!==null)return this.#E;return this.#F("isTTY",!1)}set isTTY(D){this.#E=D}get rows(){return this.#F("rows")}get columns(){return this.#F("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(D){this._src=D}pipe(D,F){return this._dest=D,super.pipe(D,F)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(D){if(this.muted){if(!this.replace)return!0;if(D.match(/^\u001b/)){if(D.indexOf(this._prompt)===0)D=D.slice(this._prompt.length),D=D.replace(/./g,this.replace),D=this._prompt+D;return this._hadControl=!0,this.emit("data",D)}else{if(this._prompt&&this._hadControl&&D.indexOf(this._prompt)===0)this._hadControl=!1,this.emit("data",this._prompt),D=D.slice(this._prompt.length);D=D.toString().replace(/./g,this.replace)}}this.emit("data",D)}end(D){if(this.muted)if(D&&this.replace)D=D.toString().replace(/./g,this.replace);else D=null;if(D)this.emit("data",D);this.emit("end")}destroy(...D){return this.#D("destroy",...D)}destroySoon(...D){return this.#D("destroySoon",...D)}close(...D){return this.#D("close",...D)}}T3.exports=P3});var c0=zD(p0(),1),{program:h1,createCommand:g1,createArgument:m1,createOption:l1,CommanderError:p1,InvalidArgumentError:c1,InvalidOptionArgumentError:d1,Command:d0,Argument:n1,Option:i1,Help:r1}=c0.default;var n0="0.260202.1901";var D2=(D,F=[])=>D.name==="up"||F.includes("vim")&&D.name==="k"||F.includes("emacs")&&D.ctrl&&D.name==="p",H2=(D,F=[])=>D.name==="down"||F.includes("vim")&&D.name==="j"||F.includes("emacs")&&D.ctrl&&D.name==="n";var p2=(D)=>D.name==="backspace",jD=(D)=>D.name==="tab";var qD=(D)=>D.name==="enter"||D.name==="return";class c2 extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(D){super();this.cause=D?.cause}}class d2 extends Error{name="CancelPromptError";message="Prompt was canceled"}class u2 extends Error{name="ExitPromptError"}class n2 extends Error{name="HookError"}class i2 extends Error{name="ValidationError"}import{AsyncResource as UF}from"async_hooks";import{AsyncLocalStorage as RF,AsyncResource as zF}from"async_hooks";var i0=new RF;function jF(D){return{rl:D,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function r0(D,F){let E=jF(D);return i0.run(E,()=>{function B($){E.handleChange=()=>{E.index=0,$()},E.handleChange()}return F(B)})}function UD(){let D=i0.getStore();if(!D)throw new n2("[Inquirer] Hook functions can only be called from within a prompt");return D}function r2(){return UD().rl}function a2(D){let F=(...E)=>{let B=UD(),$=!1,q=B.handleChange;B.handleChange=()=>{$=!0};let C=D(...E);if($)q();return B.handleChange=q,C};return zF.bind(F)}function PD(D){let F=UD(),{index:E}=F,B={get(){return F.hooks[E]},set(q){F.hooks[E]=q},initialized:E in F.hooks},$=D(B);return F.index++,$}function a0(){UD().handleChange()}var LD={queue(D){let F=UD(),{index:E}=F;F.hooksEffect.push(()=>{F.hooksCleanup[E]?.();let B=D(r2());if(B!=null&&typeof B!=="function")throw new i2("useEffect return value must be a cleanup function or nothing.");F.hooksCleanup[E]=B})},run(){let D=UD();a2(()=>{D.hooksEffect.forEach((F)=>{F()}),D.hooksEffect.length=0})()},clearAll(){let D=UD();D.hooksCleanup.forEach((F)=>{F?.()}),D.hooksEffect.length=0,D.hooksCleanup.length=0}};function P(D){return PD((F)=>{let E=UF.bind(function(q){if(F.get()!==q)F.set(q),a0()});if(F.initialized)return[F.get(),E];let B=typeof D==="function"?D():D;return F.set(B),[B,E]})}function CD(D,F){PD((E)=>{let B=E.get();if(!Array.isArray(B)||F.some((q,C)=>!Object.is(q,B[C])))LD.queue(D);E.set(F)})}var m=zD(A2(),1);import DD from"process";function NF(){if(DD.platform!=="win32")return DD.env.TERM!=="linux";return Boolean(DD.env.WT_SESSION)||Boolean(DD.env.TERMINUS_SUBLIME)||DD.env.ConEmuTask==="{cmd::Cmder}"||DD.env.TERM_PROGRAM==="Terminus-Sublime"||DD.env.TERM_PROGRAM==="vscode"||DD.env.TERM==="xterm-256color"||DD.env.TERM==="alacritty"||DD.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var s0={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},t0={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},KF={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},OF={...s0,...t0},SF={...s0,...KF},wF=NF(),IF=wF?OF:SF,TD=IF,J5=Object.entries(t0);var e0={prefix:{idle:m.default.blue("?"),done:m.default.green(TD.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map((D)=>m.default.yellow(D))},style:{answer:m.default.cyan,message:m.default.bold,error:(D)=>m.default.red(`> ${D}`),defaultAnswer:(D)=>m.default.dim(`(${D})`),help:m.default.dim,highlight:m.default.cyan,key:(D)=>m.default.cyan(m.default.bold(`<${D}>`))}};function D3(D){if(typeof D!=="object"||D===null)return!1;let F=D;while(Object.getPrototypeOf(F)!==null)F=Object.getPrototypeOf(F);return Object.getPrototypeOf(D)===F}function F3(...D){let F={};for(let E of D)for(let[B,$]of Object.entries(E)){let q=F[B];F[B]=D3(q)&&D3($)?F3(q,$):$}return F}function n(...D){let F=[e0,...D.filter((E)=>E!=null)];return F3(...F)}function XD({status:D="idle",theme:F}){let[E,B]=P(!1),[$,q]=P(0),{prefix:C,spinner:X}=n(F);if(CD(()=>{if(D==="loading"){let J,_=-1,H=setTimeout(()=>{B(!0),J=setInterval(()=>{_=_+1,q(_%X.frames.length)},X.interval)},300);return()=>{clearTimeout(H),clearInterval(J)}}else B(!1)},[D]),E)return X.frames[$];return typeof C==="string"?C:C[D==="loading"?"idle":D]??C.idle}function o2(D,F){return PD((E)=>{let B=E.get();if(!B||B.dependencies.length!==F.length||B.dependencies.some(($,q)=>$!==F[q])){let $=D();return E.set({value:$,dependencies:F}),$}return B.value})}function M2(D){return P({current:D})[0]}function QD(D){let F=M2(D);F.current=D,CD((E)=>{let B=!1,$=a2((q,C)=>{if(B)return;F.current(C,E)});return E.input.on("keypress",$),()=>{B=!0,E.input.removeListener("keypress",$)}},[])}var b3=zD(B3(),1),k3=zD(I3(),1);function B2(D,F){return D.split(`
|
|
30
|
+
`)}});var f3=Z((c5,T3)=>{var tF=GD("stream");class P3 extends tF{#E=null;constructor(D={}){super(D);this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=D.replace,this._prompt=D.prompt||null,this._hadControl=!1}#F(D,F){if(this._dest)return this._dest[D];if(this._src)return this._src[D];return F}#D(D,...F){if(typeof this._dest?.[D]==="function")this._dest[D](...F);if(typeof this._src?.[D]==="function")this._src[D](...F)}get isTTY(){if(this.#E!==null)return this.#E;return this.#F("isTTY",!1)}set isTTY(D){this.#E=D}get rows(){return this.#F("rows")}get columns(){return this.#F("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(D){this._src=D}pipe(D,F){return this._dest=D,super.pipe(D,F)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(D){if(this.muted){if(!this.replace)return!0;if(D.match(/^\u001b/)){if(D.indexOf(this._prompt)===0)D=D.slice(this._prompt.length),D=D.replace(/./g,this.replace),D=this._prompt+D;return this._hadControl=!0,this.emit("data",D)}else{if(this._prompt&&this._hadControl&&D.indexOf(this._prompt)===0)this._hadControl=!1,this.emit("data",this._prompt),D=D.slice(this._prompt.length);D=D.toString().replace(/./g,this.replace)}}this.emit("data",D)}end(D){if(this.muted)if(D&&this.replace)D=D.toString().replace(/./g,this.replace);else D=null;if(D)this.emit("data",D);this.emit("end")}destroy(...D){return this.#D("destroy",...D)}destroySoon(...D){return this.#D("destroySoon",...D)}close(...D){return this.#D("close",...D)}}T3.exports=P3});var c0=zD(p0(),1),{program:h1,createCommand:g1,createArgument:m1,createOption:l1,CommanderError:p1,InvalidArgumentError:c1,InvalidOptionArgumentError:d1,Command:d0,Argument:n1,Option:i1,Help:r1}=c0.default;var n0="0.260203.0135";var D2=(D,F=[])=>D.name==="up"||F.includes("vim")&&D.name==="k"||F.includes("emacs")&&D.ctrl&&D.name==="p",H2=(D,F=[])=>D.name==="down"||F.includes("vim")&&D.name==="j"||F.includes("emacs")&&D.ctrl&&D.name==="n";var p2=(D)=>D.name==="backspace",jD=(D)=>D.name==="tab";var qD=(D)=>D.name==="enter"||D.name==="return";class c2 extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(D){super();this.cause=D?.cause}}class d2 extends Error{name="CancelPromptError";message="Prompt was canceled"}class u2 extends Error{name="ExitPromptError"}class n2 extends Error{name="HookError"}class i2 extends Error{name="ValidationError"}import{AsyncResource as UF}from"async_hooks";import{AsyncLocalStorage as RF,AsyncResource as zF}from"async_hooks";var i0=new RF;function jF(D){return{rl:D,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function r0(D,F){let E=jF(D);return i0.run(E,()=>{function B($){E.handleChange=()=>{E.index=0,$()},E.handleChange()}return F(B)})}function UD(){let D=i0.getStore();if(!D)throw new n2("[Inquirer] Hook functions can only be called from within a prompt");return D}function r2(){return UD().rl}function a2(D){let F=(...E)=>{let B=UD(),$=!1,q=B.handleChange;B.handleChange=()=>{$=!0};let C=D(...E);if($)q();return B.handleChange=q,C};return zF.bind(F)}function PD(D){let F=UD(),{index:E}=F,B={get(){return F.hooks[E]},set(q){F.hooks[E]=q},initialized:E in F.hooks},$=D(B);return F.index++,$}function a0(){UD().handleChange()}var LD={queue(D){let F=UD(),{index:E}=F;F.hooksEffect.push(()=>{F.hooksCleanup[E]?.();let B=D(r2());if(B!=null&&typeof B!=="function")throw new i2("useEffect return value must be a cleanup function or nothing.");F.hooksCleanup[E]=B})},run(){let D=UD();a2(()=>{D.hooksEffect.forEach((F)=>{F()}),D.hooksEffect.length=0})()},clearAll(){let D=UD();D.hooksCleanup.forEach((F)=>{F?.()}),D.hooksEffect.length=0,D.hooksCleanup.length=0}};function P(D){return PD((F)=>{let E=UF.bind(function(q){if(F.get()!==q)F.set(q),a0()});if(F.initialized)return[F.get(),E];let B=typeof D==="function"?D():D;return F.set(B),[B,E]})}function CD(D,F){PD((E)=>{let B=E.get();if(!Array.isArray(B)||F.some((q,C)=>!Object.is(q,B[C])))LD.queue(D);E.set(F)})}var m=zD(A2(),1);import DD from"process";function NF(){if(DD.platform!=="win32")return DD.env.TERM!=="linux";return Boolean(DD.env.WT_SESSION)||Boolean(DD.env.TERMINUS_SUBLIME)||DD.env.ConEmuTask==="{cmd::Cmder}"||DD.env.TERM_PROGRAM==="Terminus-Sublime"||DD.env.TERM_PROGRAM==="vscode"||DD.env.TERM==="xterm-256color"||DD.env.TERM==="alacritty"||DD.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var s0={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},t0={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},KF={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},OF={...s0,...t0},SF={...s0,...KF},wF=NF(),IF=wF?OF:SF,TD=IF,J5=Object.entries(t0);var e0={prefix:{idle:m.default.blue("?"),done:m.default.green(TD.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map((D)=>m.default.yellow(D))},style:{answer:m.default.cyan,message:m.default.bold,error:(D)=>m.default.red(`> ${D}`),defaultAnswer:(D)=>m.default.dim(`(${D})`),help:m.default.dim,highlight:m.default.cyan,key:(D)=>m.default.cyan(m.default.bold(`<${D}>`))}};function D3(D){if(typeof D!=="object"||D===null)return!1;let F=D;while(Object.getPrototypeOf(F)!==null)F=Object.getPrototypeOf(F);return Object.getPrototypeOf(D)===F}function F3(...D){let F={};for(let E of D)for(let[B,$]of Object.entries(E)){let q=F[B];F[B]=D3(q)&&D3($)?F3(q,$):$}return F}function n(...D){let F=[e0,...D.filter((E)=>E!=null)];return F3(...F)}function XD({status:D="idle",theme:F}){let[E,B]=P(!1),[$,q]=P(0),{prefix:C,spinner:X}=n(F);if(CD(()=>{if(D==="loading"){let J,_=-1,H=setTimeout(()=>{B(!0),J=setInterval(()=>{_=_+1,q(_%X.frames.length)},X.interval)},300);return()=>{clearTimeout(H),clearInterval(J)}}else B(!1)},[D]),E)return X.frames[$];return typeof C==="string"?C:C[D==="loading"?"idle":D]??C.idle}function o2(D,F){return PD((E)=>{let B=E.get();if(!B||B.dependencies.length!==F.length||B.dependencies.some(($,q)=>$!==F[q])){let $=D();return E.set({value:$,dependencies:F}),$}return B.value})}function M2(D){return P({current:D})[0]}function QD(D){let F=M2(D);F.current=D,CD((E)=>{let B=!1,$=a2((q,C)=>{if(B)return;F.current(C,E)});return E.input.on("keypress",$),()=>{B=!0,E.input.removeListener("keypress",$)}},[])}var b3=zD(B3(),1),k3=zD(I3(),1);function B2(D,F){return D.split(`
|
|
31
31
|
`).flatMap((E)=>k3.default(E,F,{trim:!1,hard:!0}).split(`
|
|
32
32
|
`).map((B)=>B.trimEnd())).join(`
|
|
33
33
|
`)}function j2(){return b3.default({defaultWidth:80,output:r2().output})}function sF({active:D,renderedItems:F,pageSize:E,loop:B}){let $=M2({lastPointer:D,lastActive:void 0}),{lastPointer:q,lastActive:C}=$.current,X=Math.floor(E/2),Q=F.reduce((H,j)=>H+j.length,0),J=F.slice(0,D).reduce((H,j)=>H+j.length,0),_=J;if(Q>E)if(B){if(_=q,C!=null&&C<D&&D-C<E)_=Math.min(X,Math.abs(D-C)===1?Math.min(q+(F[C]?.length??0),Math.max(J,q)):q+D-C)}else{let H=F.slice(D).reduce((j,z)=>j+z.length,0);_=H<E-X?E-H:Math.min(J,X)}return $.current.lastPointer=_,$.current.lastActive=D,_}function q0({items:D,active:F,renderItem:E,pageSize:B,loop:$=!0}){let q=j2(),C=(U)=>(U%D.length+D.length)%D.length,X=D.map((U,S)=>{if(U==null)return[];return B2(E({item:U,index:S,isActive:S===F}),q).split(`
|