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.mjs
CHANGED
|
@@ -12648,6 +12648,11 @@ function createMainCommand() {
|
|
|
12648
12648
|
description: "Model to use (optional, subagent-specific)",
|
|
12649
12649
|
env: "JUNO_CODE_MODEL"
|
|
12650
12650
|
}),
|
|
12651
|
+
createOption({
|
|
12652
|
+
flags: "--agents <config>",
|
|
12653
|
+
description: "Agents configuration (forwarded to shell backend, ignored for MCP)",
|
|
12654
|
+
env: "JUNO_CODE_AGENTS"
|
|
12655
|
+
}),
|
|
12651
12656
|
createOption({
|
|
12652
12657
|
flags: "-I, --interactive",
|
|
12653
12658
|
description: "Interactive mode for typing/pasting prompts",
|
|
@@ -16226,12 +16231,13 @@ async function initCommandHandler(args, options, command) {
|
|
|
16226
16231
|
}
|
|
16227
16232
|
}
|
|
16228
16233
|
function configureInitCommand(program) {
|
|
16229
|
-
program.command("init").description("Initialize new juno-code project
|
|
16234
|
+
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) => {
|
|
16235
|
+
const taskDescription = description || options.task;
|
|
16230
16236
|
const initOptions = {
|
|
16231
|
-
directory,
|
|
16237
|
+
directory: options.directory,
|
|
16232
16238
|
force: options.force,
|
|
16233
|
-
task:
|
|
16234
|
-
gitUrl: options.gitUrl,
|
|
16239
|
+
task: taskDescription,
|
|
16240
|
+
gitUrl: options.gitRepo || options.gitUrl,
|
|
16235
16241
|
subagent: options.subagent,
|
|
16236
16242
|
interactive: options.interactive,
|
|
16237
16243
|
// Global options
|
|
@@ -16243,12 +16249,35 @@ function configureInitCommand(program) {
|
|
|
16243
16249
|
};
|
|
16244
16250
|
await initCommandHandler([], initOptions, command);
|
|
16245
16251
|
}).addHelpText("after", `
|
|
16246
|
-
|
|
16247
|
-
|
|
16248
|
-
|
|
16249
|
-
|
|
16252
|
+
Modes:
|
|
16253
|
+
Interactive Mode (default):
|
|
16254
|
+
$ juno-code init # Opens interactive TUI
|
|
16255
|
+
$ juno-code init --interactive # Force interactive mode
|
|
16256
|
+
|
|
16257
|
+
Inline Mode (for automation):
|
|
16258
|
+
$ juno-code init "Build a REST API" # Minimal inline mode
|
|
16259
|
+
$ juno-code init "Build a REST API" --subagent claude --git-repo https://github.com/owner/repo
|
|
16260
|
+
$ juno-code init "Build a REST API" --subagent codex --directory ./my-project
|
|
16250
16261
|
|
|
16251
|
-
|
|
16262
|
+
Examples:
|
|
16263
|
+
# Interactive mode (default)
|
|
16264
|
+
$ juno-code init # Initialize in current directory with TUI
|
|
16265
|
+
$ juno-code init --directory my-project # Initialize in ./my-project with TUI
|
|
16266
|
+
|
|
16267
|
+
# Inline mode (automation-friendly)
|
|
16268
|
+
$ juno-code init "Create a TypeScript library" # Quick init with inline description
|
|
16269
|
+
$ juno-code init "Build web app" --subagent claude # Specify AI subagent
|
|
16270
|
+
$ juno-code init "API server" --git-repo https://github.com/me/repo
|
|
16271
|
+
|
|
16272
|
+
Arguments & Options:
|
|
16273
|
+
[description] Task description (optional - triggers inline mode)
|
|
16274
|
+
-s, --subagent <name> AI subagent: claude, codex, gemini, cursor (default: claude)
|
|
16275
|
+
-g, --git-repo <url> Git repository URL
|
|
16276
|
+
-d, --directory <path> Target directory (default: current directory)
|
|
16277
|
+
-f, --force Force overwrite existing files
|
|
16278
|
+
-i, --interactive Force interactive mode
|
|
16279
|
+
|
|
16280
|
+
Interactive Flow:
|
|
16252
16281
|
1. Project Root \u2192 Specify target directory
|
|
16253
16282
|
2. Main Task \u2192 Multi-line description (no character limits)
|
|
16254
16283
|
3. Subagent Selection \u2192 Choose from Claude, Codex, Gemini, Cursor
|
|
@@ -16256,10 +16285,10 @@ Simplified Interactive Flow:
|
|
|
16256
16285
|
5. Save \u2192 Handle existing files with override/cancel options
|
|
16257
16286
|
|
|
16258
16287
|
Notes:
|
|
16288
|
+
- All inline mode arguments are optional
|
|
16289
|
+
- Defaults: directory=cwd, subagent=claude, no git repo
|
|
16259
16290
|
- No prompt cost calculation or token counting
|
|
16260
16291
|
- No character limits on task descriptions
|
|
16261
|
-
- Simple file structure with basic templates
|
|
16262
|
-
- Focus on quick project setup without complexity
|
|
16263
16292
|
`);
|
|
16264
16293
|
}
|
|
16265
16294
|
|
|
@@ -16325,6 +16354,7 @@ async function startCommandHandler(args, options, command) {
|
|
|
16325
16354
|
backend: options.backend,
|
|
16326
16355
|
maxIterations: options.maxIterations,
|
|
16327
16356
|
model: options.model,
|
|
16357
|
+
agents: options.agents,
|
|
16328
16358
|
directory: options.directory,
|
|
16329
16359
|
verbose: options.verbose,
|
|
16330
16360
|
quiet: options.quiet,
|
|
@@ -16359,7 +16389,7 @@ async function startCommandHandler(args, options, command) {
|
|
|
16359
16389
|
}
|
|
16360
16390
|
}
|
|
16361
16391
|
function configureStartCommand(program) {
|
|
16362
|
-
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) => {
|
|
16392
|
+
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) => {
|
|
16363
16393
|
const allOptions2 = command.optsWithGlobals ? command.optsWithGlobals() : { ...command.opts(), ...options };
|
|
16364
16394
|
if (allOptions2.saveMetrics === true) {
|
|
16365
16395
|
allOptions2.saveMetrics = true;
|