juno-code 1.0.28 → 1.0.29
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/dist/bin/cli.js +42 -12
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +42 -12
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/templates/services/claude.py +2 -1
- package/package.json +1 -1
package/dist/bin/cli.js
CHANGED
|
@@ -12684,6 +12684,11 @@ function createMainCommand() {
|
|
|
12684
12684
|
description: "Model to use (optional, subagent-specific)",
|
|
12685
12685
|
env: "JUNO_CODE_MODEL"
|
|
12686
12686
|
}),
|
|
12687
|
+
createOption({
|
|
12688
|
+
flags: "--agents <config>",
|
|
12689
|
+
description: "Agents configuration (forwarded to shell backend, ignored for MCP)",
|
|
12690
|
+
env: "JUNO_CODE_AGENTS"
|
|
12691
|
+
}),
|
|
12687
12692
|
createOption({
|
|
12688
12693
|
flags: "-I, --interactive",
|
|
12689
12694
|
description: "Interactive mode for typing/pasting prompts",
|
|
@@ -16262,12 +16267,13 @@ async function initCommandHandler(args, options, command) {
|
|
|
16262
16267
|
}
|
|
16263
16268
|
}
|
|
16264
16269
|
function configureInitCommand(program) {
|
|
16265
|
-
program.command("init").description("Initialize new juno-code project
|
|
16270
|
+
program.command("init").description("Initialize new juno-code project - supports both interactive and inline modes").argument("[description]", "Task description for inline mode (optional - triggers inline mode if provided)").option("-s, --subagent <name>", "AI subagent to use (claude, codex, gemini, cursor)").option("-g, --git-repo <url>", "Git repository URL").option("-d, --directory <path>", "Target directory (default: current directory)").option("-f, --force", "Force overwrite existing files").option("-i, --interactive", "Force interactive mode (even if description is provided)").option("--git-url <url>", "Git repository URL (alias for --git-repo)").option("-t, --task <description>", "Task description (alias for positional description)").action(async (description, options, command) => {
|
|
16271
|
+
const taskDescription = description || options.task;
|
|
16266
16272
|
const initOptions = {
|
|
16267
|
-
directory,
|
|
16273
|
+
directory: options.directory,
|
|
16268
16274
|
force: options.force,
|
|
16269
|
-
task:
|
|
16270
|
-
gitUrl: options.gitUrl,
|
|
16275
|
+
task: taskDescription,
|
|
16276
|
+
gitUrl: options.gitRepo || options.gitUrl,
|
|
16271
16277
|
subagent: options.subagent,
|
|
16272
16278
|
interactive: options.interactive,
|
|
16273
16279
|
// Global options
|
|
@@ -16279,12 +16285,35 @@ function configureInitCommand(program) {
|
|
|
16279
16285
|
};
|
|
16280
16286
|
await initCommandHandler([], initOptions, command);
|
|
16281
16287
|
}).addHelpText("after", `
|
|
16282
|
-
|
|
16283
|
-
|
|
16284
|
-
|
|
16285
|
-
|
|
16288
|
+
Modes:
|
|
16289
|
+
Interactive Mode (default):
|
|
16290
|
+
$ juno-code init # Opens interactive TUI
|
|
16291
|
+
$ juno-code init --interactive # Force interactive mode
|
|
16292
|
+
|
|
16293
|
+
Inline Mode (for automation):
|
|
16294
|
+
$ juno-code init "Build a REST API" # Minimal inline mode
|
|
16295
|
+
$ juno-code init "Build a REST API" --subagent claude --git-repo https://github.com/owner/repo
|
|
16296
|
+
$ juno-code init "Build a REST API" --subagent codex --directory ./my-project
|
|
16286
16297
|
|
|
16287
|
-
|
|
16298
|
+
Examples:
|
|
16299
|
+
# Interactive mode (default)
|
|
16300
|
+
$ juno-code init # Initialize in current directory with TUI
|
|
16301
|
+
$ juno-code init --directory my-project # Initialize in ./my-project with TUI
|
|
16302
|
+
|
|
16303
|
+
# Inline mode (automation-friendly)
|
|
16304
|
+
$ juno-code init "Create a TypeScript library" # Quick init with inline description
|
|
16305
|
+
$ juno-code init "Build web app" --subagent claude # Specify AI subagent
|
|
16306
|
+
$ juno-code init "API server" --git-repo https://github.com/me/repo
|
|
16307
|
+
|
|
16308
|
+
Arguments & Options:
|
|
16309
|
+
[description] Task description (optional - triggers inline mode)
|
|
16310
|
+
-s, --subagent <name> AI subagent: claude, codex, gemini, cursor (default: claude)
|
|
16311
|
+
-g, --git-repo <url> Git repository URL
|
|
16312
|
+
-d, --directory <path> Target directory (default: current directory)
|
|
16313
|
+
-f, --force Force overwrite existing files
|
|
16314
|
+
-i, --interactive Force interactive mode
|
|
16315
|
+
|
|
16316
|
+
Interactive Flow:
|
|
16288
16317
|
1. Project Root \u2192 Specify target directory
|
|
16289
16318
|
2. Main Task \u2192 Multi-line description (no character limits)
|
|
16290
16319
|
3. Subagent Selection \u2192 Choose from Claude, Codex, Gemini, Cursor
|
|
@@ -16292,10 +16321,10 @@ Simplified Interactive Flow:
|
|
|
16292
16321
|
5. Save \u2192 Handle existing files with override/cancel options
|
|
16293
16322
|
|
|
16294
16323
|
Notes:
|
|
16324
|
+
- All inline mode arguments are optional
|
|
16325
|
+
- Defaults: directory=cwd, subagent=claude, no git repo
|
|
16295
16326
|
- No prompt cost calculation or token counting
|
|
16296
16327
|
- No character limits on task descriptions
|
|
16297
|
-
- Simple file structure with basic templates
|
|
16298
|
-
- Focus on quick project setup without complexity
|
|
16299
16328
|
`);
|
|
16300
16329
|
}
|
|
16301
16330
|
|
|
@@ -16361,6 +16390,7 @@ async function startCommandHandler(args, options, command) {
|
|
|
16361
16390
|
backend: options.backend,
|
|
16362
16391
|
maxIterations: options.maxIterations,
|
|
16363
16392
|
model: options.model,
|
|
16393
|
+
agents: options.agents,
|
|
16364
16394
|
directory: options.directory,
|
|
16365
16395
|
verbose: options.verbose,
|
|
16366
16396
|
quiet: options.quiet,
|
|
@@ -16395,7 +16425,7 @@ async function startCommandHandler(args, options, command) {
|
|
|
16395
16425
|
}
|
|
16396
16426
|
}
|
|
16397
16427
|
function configureStartCommand(program) {
|
|
16398
|
-
program.command("start").description("Start execution using .juno_task/init.md as prompt").option("-s, --subagent <name>", "Subagent to use (claude, cursor, codex, gemini)").option("-b, --backend <type>", "Backend to use (mcp, shell)").option("-i, --max-iterations <number>", "Maximum number of iterations", parseInt).option("-m, --model <name>", "Model to use for execution").option("-d, --directory <path>", "Project directory (default: current)").option("--enable-feedback", "Enable concurrent feedback collection during execution").option("--show-metrics", "Display performance metrics summary after execution").option("--show-dashboard", "Show interactive performance dashboard after execution").option("--show-trends", "Display performance trends from historical data").option("--save-metrics [file]", "Save performance metrics to file (default: .juno_task/metrics.json)").option("--metrics-file <path>", "Specify custom path for metrics file").option("--dry-run", "Validate configuration and exit without executing").action(async (options, command) => {
|
|
16428
|
+
program.command("start").description("Start execution using .juno_task/init.md as prompt").option("-s, --subagent <name>", "Subagent to use (claude, cursor, codex, gemini)").option("-b, --backend <type>", "Backend to use (mcp, shell)").option("-i, --max-iterations <number>", "Maximum number of iterations", parseInt).option("-m, --model <name>", "Model to use for execution").option("--agents <config>", "Agents configuration (forwarded to shell backend, ignored for MCP)").option("-d, --directory <path>", "Project directory (default: current)").option("--enable-feedback", "Enable concurrent feedback collection during execution").option("--show-metrics", "Display performance metrics summary after execution").option("--show-dashboard", "Show interactive performance dashboard after execution").option("--show-trends", "Display performance trends from historical data").option("--save-metrics [file]", "Save performance metrics to file (default: .juno_task/metrics.json)").option("--metrics-file <path>", "Specify custom path for metrics file").option("--dry-run", "Validate configuration and exit without executing").action(async (options, command) => {
|
|
16399
16429
|
const allOptions2 = command.optsWithGlobals ? command.optsWithGlobals() : { ...command.opts(), ...options };
|
|
16400
16430
|
if (allOptions2.saveMetrics === true) {
|
|
16401
16431
|
allOptions2.saveMetrics = true;
|