juno-code 1.0.47 → 1.0.49
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/README.md +44 -8
- package/dist/bin/cli.d.mts +17 -0
- package/dist/bin/cli.d.ts +17 -0
- package/dist/bin/cli.js +5606 -17514
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +5647 -17553
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/bin/feedback-collector.d.mts +2 -0
- package/dist/bin/feedback-collector.d.ts +2 -0
- package/dist/bin/feedback-collector.js.map +1 -1
- package/dist/bin/feedback-collector.mjs.map +1 -1
- package/dist/index.d.mts +2107 -0
- package/dist/index.d.ts +2107 -0
- package/dist/index.js +3760 -14730
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3760 -14537
- package/dist/index.mjs.map +1 -1
- package/dist/templates/extensions/pi/juno-skill-preprocessor.ts +239 -0
- package/dist/templates/scripts/__pycache__/github.cpython-313.pyc +0 -0
- package/dist/templates/scripts/__pycache__/parallel_runner.cpython-313.pyc +0 -0
- package/dist/templates/scripts/__pycache__/slack_respond.cpython-313.pyc +0 -0
- package/dist/templates/scripts/kanban.sh +18 -4
- package/dist/templates/scripts/parallel_runner.sh +2242 -0
- package/dist/templates/services/README.md +61 -1
- package/dist/templates/services/__pycache__/claude.cpython-313.pyc +0 -0
- package/dist/templates/services/__pycache__/codex.cpython-313.pyc +0 -0
- package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
- package/dist/templates/services/claude.py +132 -33
- package/dist/templates/services/codex.py +179 -66
- package/dist/templates/services/gemini.py +117 -27
- package/dist/templates/services/pi.py +1753 -0
- package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +14 -7
- package/dist/templates/skills/claude/ralph-loop/SKILL.md +18 -22
- package/dist/templates/skills/claude/ralph-loop/references/first_check.md +15 -14
- package/dist/templates/skills/claude/ralph-loop/references/implement.md +17 -17
- package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +18 -4
- package/dist/templates/skills/claude/understand-project/SKILL.md +14 -7
- package/dist/templates/skills/codex/ralph-loop/SKILL.md +18 -22
- package/dist/templates/skills/codex/ralph-loop/references/first_check.md +15 -14
- package/dist/templates/skills/codex/ralph-loop/references/implement.md +17 -17
- package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +18 -4
- package/dist/templates/skills/pi/.gitkeep +0 -0
- package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +32 -0
- package/dist/templates/skills/pi/ralph-loop/SKILL.md +39 -0
- package/dist/templates/skills/pi/ralph-loop/references/first_check.md +21 -0
- package/dist/templates/skills/pi/ralph-loop/references/implement.md +99 -0
- package/dist/templates/skills/pi/understand-project/SKILL.md +46 -0
- package/package.json +20 -42
- package/dist/templates/scripts/__pycache__/attachment_downloader.cpython-38.pyc +0 -0
- package/dist/templates/scripts/__pycache__/github.cpython-38.pyc +0 -0
- package/dist/templates/scripts/__pycache__/slack_fetch.cpython-38.pyc +0 -0
- package/dist/templates/scripts/__pycache__/slack_state.cpython-38.pyc +0 -0
- package/dist/templates/services/__pycache__/claude.cpython-38.pyc +0 -0
- package/dist/templates/services/__pycache__/codex.cpython-38.pyc +0 -0
package/README.md
CHANGED
|
@@ -17,12 +17,17 @@
|
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g juno-code
|
|
20
|
+
|
|
21
|
+
# For Pi agent support (optional - multi-provider coding agent)
|
|
22
|
+
npm install -g @mariozechner/pi-coding-agent
|
|
20
23
|
```
|
|
21
24
|
|
|
22
25
|
After installation, initialize your project:
|
|
23
26
|
|
|
24
27
|
```bash
|
|
25
28
|
juno-code init --task "Your task description" --subagent claude
|
|
29
|
+
# Or with Pi (multi-provider agent)
|
|
30
|
+
juno-code init --task "Your task description" --subagent pi
|
|
26
31
|
```
|
|
27
32
|
|
|
28
33
|
---
|
|
@@ -52,7 +57,7 @@ Run the AI in a loop. Let it iterate. Watch it solve problems, fix bugs, and add
|
|
|
52
57
|
| **Overcooking** | Loop runs too long, AI adds features nobody asked for | You get bloated code and wasted tokens |
|
|
53
58
|
| **Undercooking** | You Ctrl+C too early, work is incomplete | Features half-done, bugs half-fixed |
|
|
54
59
|
| **Fragile state** | Markdown files (TASKS.md, PLANNING.md) as source of truth | LLMs can corrupt format; no strict schema |
|
|
55
|
-
| **Vendor lock-in** | Ralph was built for Claude Code | Can't easily switch to Codex, Gemini, or others |
|
|
60
|
+
| **Vendor lock-in** | Ralph was built for Claude Code | Can't easily switch to Codex, Gemini, Pi, or others |
|
|
56
61
|
| **No traceability** | Changes blend together | Hard to debug, impossible to time-travel |
|
|
57
62
|
|
|
58
63
|
## juno-code: Ralph, But Better
|
|
@@ -85,12 +90,13 @@ Built-in kanban via [juno-kanban](https://pypi.org/project/juno-kanban/). Unlike
|
|
|
85
90
|
```
|
|
86
91
|
|
|
87
92
|
### Backend Choice: Use Any AI
|
|
88
|
-
Switch between Claude, Codex, Gemini, or Cursor with one flag:
|
|
93
|
+
Switch between Claude, Codex, Gemini, Pi, or Cursor with one flag:
|
|
89
94
|
```bash
|
|
90
95
|
# Stuck on a bug? Try different models
|
|
91
|
-
juno-code -b shell -s claude -m :opus-i 1 -v
|
|
96
|
+
juno-code -b shell -s claude -m :opus -i 1 -v
|
|
92
97
|
juno-code -b shell -s codex -m :codex -i 1 -v
|
|
93
98
|
juno-code -b shell -s gemini -m :flash -i 1 -v
|
|
99
|
+
juno-code -b shell -s pi -m :sonnet -i 1 -v
|
|
94
100
|
```
|
|
95
101
|
|
|
96
102
|
### Full Traceability: Every Change Tracked
|
|
@@ -116,6 +122,16 @@ juno-code -b shell -s claude -i 5 -v
|
|
|
116
122
|
# Clean, readable progress instead of wall of JSON
|
|
117
123
|
```
|
|
118
124
|
|
|
125
|
+
### Quota Limit Handling
|
|
126
|
+
Auto-wait when you hit API rate limits instead of failing:
|
|
127
|
+
```bash
|
|
128
|
+
# Wait automatically when hitting hourly limits
|
|
129
|
+
juno-code -b shell -s claude -i 10 --on-hourly-limit wait
|
|
130
|
+
|
|
131
|
+
# Or exit immediately (default)
|
|
132
|
+
juno-code -b shell -s claude -i 10 --on-hourly-limit raise
|
|
133
|
+
```
|
|
134
|
+
|
|
119
135
|
## Quick Start
|
|
120
136
|
|
|
121
137
|
```bash
|
|
@@ -157,6 +173,10 @@ juno-code -b shell -s claude -i 3 -p "your prompt"
|
|
|
157
173
|
juno-code claude "your task"
|
|
158
174
|
juno-code codex "your task"
|
|
159
175
|
juno-code gemini "your task"
|
|
176
|
+
juno-code pi "your task"
|
|
177
|
+
|
|
178
|
+
# View and parse log files
|
|
179
|
+
juno-code view-log .juno_task/logs/claude_shell_*.log --output json-only --limit 50
|
|
160
180
|
```
|
|
161
181
|
|
|
162
182
|
### Global Options
|
|
@@ -164,13 +184,19 @@ juno-code gemini "your task"
|
|
|
164
184
|
| Flag | Description |
|
|
165
185
|
|------|-------------|
|
|
166
186
|
| `-b, --backend <type>` | Backend: `mcp`, `shell` |
|
|
167
|
-
| `-s, --subagent <name>` | Service: `claude`, `codex`, `gemini`, `cursor` |
|
|
187
|
+
| `-s, --subagent <name>` | Service: `claude`, `codex`, `gemini`, `pi`, `cursor` |
|
|
168
188
|
| `-m, --model <name>` | Model (supports shorthands like `:opus`, `:haiku`) |
|
|
169
189
|
| `-i, --max-iterations <n>` | Iteration limit (-1 for unlimited) |
|
|
170
190
|
| `-p, --prompt <text>` | Prompt text (if omitted with `start`, uses prompt.md) |
|
|
191
|
+
| `-f, --prompt-file <path>` | Read prompt from a file instead of `-p` |
|
|
171
192
|
| `-v, --verbose` | Human-readable verbose output |
|
|
172
193
|
| `-r, --resume <id>` | Resume specific session |
|
|
173
194
|
| `--continue` | Continue most recent session |
|
|
195
|
+
| `--no-hooks` | Skip lifecycle hooks |
|
|
196
|
+
| `--on-hourly-limit <action>` | Quota limit behavior: `wait` (auto-retry) or `raise` (exit) |
|
|
197
|
+
| `--force-update` | Force reinstall all scripts and services |
|
|
198
|
+
| `--til-completion` | Loop until all kanban tasks are done |
|
|
199
|
+
| `--pre-run-hook <name>` | Execute named hooks before loop |
|
|
174
200
|
|
|
175
201
|
### Session Management
|
|
176
202
|
|
|
@@ -486,9 +512,13 @@ The kanban.sh script wraps juno-kanban. Here are the actual commands:
|
|
|
486
512
|
|
|
487
513
|
| Service | Default Model | Shorthands |
|
|
488
514
|
|---------|---------------|------------|
|
|
489
|
-
| claude | `claude-sonnet-4-
|
|
490
|
-
| codex | `gpt-5.3-codex` | `:codex`, `:gpt-5`, `:mini` |
|
|
515
|
+
| claude | `claude-sonnet-4-6` | `:haiku`, `:sonnet`, `:opus` |
|
|
516
|
+
| codex | `gpt-5.3-codex` | `:codex`, `:codex-mini`, `:gpt-5`, `:mini` |
|
|
491
517
|
| gemini | `gemini-2.5-pro` | `:pro`, `:flash`, `:pro-3`, `:flash-3` |
|
|
518
|
+
| pi | `anthropic/claude-sonnet-4-6` | `:pi`, `:sonnet`, `:opus`, `:gpt-5`, `:codex`, `:gemini-pro` |
|
|
519
|
+
|
|
520
|
+
> **Pi** is a multi-provider coding agent that supports Anthropic, OpenAI, Google, Groq, xAI, and more.
|
|
521
|
+
> It requires separate installation: `npm install -g @mariozechner/pi-coding-agent`
|
|
492
522
|
|
|
493
523
|
### Custom Backends
|
|
494
524
|
|
|
@@ -541,6 +571,9 @@ export JUNO_CODE_MAX_ITERATIONS=10
|
|
|
541
571
|
export CODEX_HIDE_STREAM_TYPES="turn_diff,token_count"
|
|
542
572
|
export GEMINI_API_KEY=your-key
|
|
543
573
|
export CLAUDE_USER_MESSAGE_PRETTY_TRUNCATE=4
|
|
574
|
+
|
|
575
|
+
# Pi requires the pi-coding-agent CLI installed globally
|
|
576
|
+
# npm install -g @mariozechner/pi-coding-agent
|
|
544
577
|
```
|
|
545
578
|
|
|
546
579
|
## Examples
|
|
@@ -566,6 +599,9 @@ juno-code -b shell -s claude -m :opus -p "Investigate CI failures" -i 3
|
|
|
566
599
|
|
|
567
600
|
# Stuck? Try Codex perspective
|
|
568
601
|
juno-code -b shell -s codex -p "Same investigation" -i 3
|
|
602
|
+
|
|
603
|
+
# Or use Pi with any provider's model
|
|
604
|
+
juno-code -b shell -s pi -m :sonnet -p "Same investigation" -i 3
|
|
569
605
|
```
|
|
570
606
|
|
|
571
607
|
### Iterative Feature Development
|
|
@@ -590,7 +626,7 @@ git log --oneline
|
|
|
590
626
|
| **Stopping** | Ctrl+C (guesswork) | `-i N` or "until tasks done" |
|
|
591
627
|
| **Source of Truth** | Markdown files (TASKS.md, PLANNING.md) | Structured kanban over bash |
|
|
592
628
|
| **Format Integrity** | Relies on LLM instruction-following | Strict format, always parseable |
|
|
593
|
-
| **Multiple AIs** | Claude only | Claude, Codex, Gemini, Cursor |
|
|
629
|
+
| **Multiple AIs** | Claude only | Claude, Codex, Gemini, Pi, Cursor |
|
|
594
630
|
| **Traceability** | None | Every task → git commit |
|
|
595
631
|
| **Hooks** | Claude-specific | Works with any backend |
|
|
596
632
|
| **Verbose** | Raw JSON | Human-readable + jq-friendly |
|
|
@@ -633,7 +669,7 @@ juno-code services install --force
|
|
|
633
669
|
```bash
|
|
634
670
|
# Verify with verbose
|
|
635
671
|
juno-code -v -b shell -s codex -m :codex -p "test"
|
|
636
|
-
# Check stderr for: "Executing: python3 ~/.juno_code/services/codex.py ... -m
|
|
672
|
+
# Check stderr for: "Executing: python3 ~/.juno_code/services/codex.py ... -m gpt-5.3-codex"
|
|
637
673
|
```
|
|
638
674
|
|
|
639
675
|
### Kanban not finding tasks
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI entry point for juno-code
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive TypeScript CLI implementation with full functionality parity
|
|
5
|
+
* to the Python budi-cli. Provides all core commands with interactive and
|
|
6
|
+
* headless support, comprehensive error handling, and real-time progress tracking.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Global error handler for CLI operations
|
|
10
|
+
*/
|
|
11
|
+
declare function handleCLIError(error: unknown, verbose?: boolean): void;
|
|
12
|
+
/**
|
|
13
|
+
* Main CLI function
|
|
14
|
+
*/
|
|
15
|
+
declare function main(): Promise<void>;
|
|
16
|
+
|
|
17
|
+
export { handleCLIError, main };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI entry point for juno-code
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive TypeScript CLI implementation with full functionality parity
|
|
5
|
+
* to the Python budi-cli. Provides all core commands with interactive and
|
|
6
|
+
* headless support, comprehensive error handling, and real-time progress tracking.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Global error handler for CLI operations
|
|
10
|
+
*/
|
|
11
|
+
declare function handleCLIError(error: unknown, verbose?: boolean): void;
|
|
12
|
+
/**
|
|
13
|
+
* Main CLI function
|
|
14
|
+
*/
|
|
15
|
+
declare function main(): Promise<void>;
|
|
16
|
+
|
|
17
|
+
export { handleCLIError, main };
|