juno-code 1.0.10 → 1.0.13

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 CHANGED
@@ -154,7 +154,7 @@ var init_types = __esm({
154
154
  if (availableCommands.length > 0) {
155
155
  this.suggestions = [
156
156
  `Available commands: ${availableCommands.join(", ")}`,
157
- `Use 'juno-task --help' for usage information`
157
+ `Use 'juno-code --help' for usage information`
158
158
  ];
159
159
  }
160
160
  }
@@ -188,7 +188,7 @@ var init_types = __esm({
188
188
  this.suggestions = [
189
189
  "Check session directory permissions",
190
190
  "Verify sufficient disk space",
191
- "Use juno-task session clean to remove old sessions"
191
+ "Use juno-code session clean to remove old sessions"
192
192
  ];
193
193
  }
194
194
  };
@@ -204,7 +204,35 @@ var init_types = __esm({
204
204
  }
205
205
  };
206
206
  ENVIRONMENT_MAPPINGS = {
207
- // Core options
207
+ // Core options (new JUNO_CODE_* names)
208
+ JUNO_CODE_SUBAGENT: "subagent",
209
+ JUNO_CODE_PROMPT: "prompt",
210
+ JUNO_CODE_CWD: "cwd",
211
+ JUNO_CODE_MAX_ITERATIONS: "maxIterations",
212
+ JUNO_CODE_MODEL: "model",
213
+ JUNO_CODE_LOG_FILE: "logFile",
214
+ JUNO_CODE_VERBOSE: "verbose",
215
+ JUNO_CODE_QUIET: "quiet",
216
+ JUNO_CODE_INTERACTIVE: "interactive",
217
+ JUNO_CODE_CONFIG: "config",
218
+ // MCP options (new JUNO_CODE_* names)
219
+ JUNO_CODE_MCP_SERVER_PATH: "mcpServerPath",
220
+ JUNO_CODE_MCP_TIMEOUT: "mcpTimeout",
221
+ JUNO_CODE_MCP_RETRIES: "mcpRetries",
222
+ // Session options (new JUNO_CODE_* names)
223
+ JUNO_CODE_SESSION_DIR: "sessionDir",
224
+ JUNO_CODE_LOG_LEVEL: "logLevel",
225
+ // Template options (new JUNO_CODE_* names)
226
+ JUNO_CODE_TEMPLATE: "template",
227
+ JUNO_CODE_FORCE: "force",
228
+ // Git options (new JUNO_CODE_* names)
229
+ JUNO_CODE_GIT_URL: "gitUrl",
230
+ // UI options (new JUNO_CODE_* names)
231
+ JUNO_CODE_NO_COLOR: "noColor",
232
+ JUNO_CODE_HEADLESS: "headless",
233
+ // Feedback options (new JUNO_CODE_* names)
234
+ JUNO_CODE_ENABLE_FEEDBACK: "enableFeedback",
235
+ // Legacy JUNO_TASK_* names for backward compatibility
208
236
  JUNO_TASK_SUBAGENT: "subagent",
209
237
  JUNO_TASK_PROMPT: "prompt",
210
238
  JUNO_TASK_CWD: "cwd",
@@ -215,23 +243,18 @@ var init_types = __esm({
215
243
  JUNO_TASK_QUIET: "quiet",
216
244
  JUNO_TASK_INTERACTIVE: "interactive",
217
245
  JUNO_TASK_CONFIG: "config",
218
- // MCP options
219
246
  JUNO_TASK_MCP_SERVER_PATH: "mcpServerPath",
220
247
  JUNO_TASK_MCP_TIMEOUT: "mcpTimeout",
221
248
  JUNO_TASK_MCP_RETRIES: "mcpRetries",
222
- // Session options
223
249
  JUNO_TASK_SESSION_DIR: "sessionDir",
224
250
  JUNO_TASK_LOG_LEVEL: "logLevel",
225
- // Template options
226
251
  JUNO_TASK_TEMPLATE: "template",
227
252
  JUNO_TASK_FORCE: "force",
228
- // Git options
229
253
  JUNO_TASK_GIT_URL: "gitUrl",
230
- // UI options
231
254
  JUNO_TASK_NO_COLOR: "noColor",
232
255
  JUNO_TASK_HEADLESS: "headless",
233
- // Feedback options
234
256
  JUNO_TASK_ENABLE_FEEDBACK: "enableFeedback",
257
+ // Special aliases
235
258
  JUNO_INTERACTIVE_FEEDBACK_MODE: "enableFeedback"
236
259
  // Alias for enableFeedback
237
260
  };
@@ -258,7 +281,7 @@ var init_types = __esm({
258
281
  "cursor-agent": "cursor"
259
282
  };
260
283
  COMMAND_CATEGORIES = {
261
- EXECUTION: ["juno-task", "start"],
284
+ EXECUTION: ["juno-code", "start"],
262
285
  PROJECT: ["init", "setup-git"],
263
286
  TESTING: ["test"],
264
287
  SESSION: ["session"],
@@ -277,6 +300,28 @@ var init_types = __esm({
277
300
  };
278
301
  }
279
302
  });
303
+
304
+ // src/templates/default-hooks.ts
305
+ function getDefaultHooks() {
306
+ return JSON.parse(JSON.stringify(DEFAULT_HOOKS));
307
+ }
308
+ var DEFAULT_HOOKS;
309
+ var init_default_hooks = __esm({
310
+ "src/templates/default-hooks.ts"() {
311
+ init_version();
312
+ DEFAULT_HOOKS = {
313
+ START_ITERATION: {
314
+ commands: [
315
+ // Monitor CLAUDE.md file size
316
+ 'file="CLAUDE.md"; lines=$(wc -l < "$file" 2>/dev/null || echo 0); chars=$(wc -m < "$file" 2>/dev/null || echo 0); if [ "$lines" -gt 450 ] || [ "$chars" -gt 60000 ]; then juno-kanban "[Critical] file $file is too large, keep it lean and useful for every run of the agent."; fi',
317
+ // Monitor AGENTS.md file size
318
+ 'file="AGENTS.md"; lines=$(wc -l < "$file" 2>/dev/null || echo 0); chars=$(wc -m < "$file" 2>/dev/null || echo 0); if [ "$lines" -gt 450 ] || [ "$chars" -gt 60000 ]; then juno-kanban "[Critical] file $file is too large, keep it lean and useful for every run of the agent."; fi',
319
+ "./.juno_task/scripts/cleanup_feedback.sh"
320
+ ]
321
+ }
322
+ };
323
+ }
324
+ });
280
325
  function createProfileManager(configDir) {
281
326
  return new ProfileManager(configDir);
282
327
  }
@@ -697,6 +742,7 @@ __export(config_exports, {
697
742
  DEFAULT_CONFIG: () => DEFAULT_CONFIG,
698
743
  ENV_VAR_MAPPING: () => ENV_VAR_MAPPING,
699
744
  JunoTaskConfigSchema: () => JunoTaskConfigSchema,
745
+ LEGACY_ENV_VAR_MAPPING: () => LEGACY_ENV_VAR_MAPPING,
700
746
  ProfileError: () => ProfileError,
701
747
  ProfileExistsError: () => ProfileExistsError,
702
748
  ProfileNotFoundError: () => ProfileNotFoundError,
@@ -728,6 +774,12 @@ function loadConfigFromEnv() {
728
774
  config[configKey] = parseEnvValue(value);
729
775
  }
730
776
  }
777
+ for (const [envVar, configKey] of Object.entries(LEGACY_ENV_VAR_MAPPING)) {
778
+ const value = process.env[envVar];
779
+ if (value !== void 0 && config[configKey] === void 0) {
780
+ config[configKey] = parseEnvValue(value);
781
+ }
782
+ }
731
783
  return config;
732
784
  }
733
785
  async function loadJsonConfig(filePath) {
@@ -751,7 +803,7 @@ async function loadPackageJsonConfig(filePath) {
751
803
  try {
752
804
  const content = await nodeFs.promises.readFile(filePath, "utf-8");
753
805
  const packageJson = JSON.parse(content);
754
- return packageJson.junoTask || {};
806
+ return packageJson.junoCode || {};
755
807
  } catch (error) {
756
808
  throw new Error(`Failed to load package.json config from ${filePath}: ${error}`);
757
809
  }
@@ -838,12 +890,7 @@ async function ensureHooksConfig(baseDir) {
838
890
  const configPath = path__namespace.join(configDir, "config.json");
839
891
  await fs__default.default.ensureDir(configDir);
840
892
  const configExists = await fs__default.default.pathExists(configPath);
841
- const allHookTypes = {
842
- START_RUN: { commands: [] },
843
- START_ITERATION: { commands: [] },
844
- END_ITERATION: { commands: [] },
845
- END_RUN: { commands: [] }
846
- };
893
+ const allHookTypes = getDefaultHooks();
847
894
  if (!configExists) {
848
895
  const defaultConfig = {
849
896
  ...DEFAULT_CONFIG,
@@ -885,12 +932,35 @@ async function loadConfig(options = {}) {
885
932
  const mergedConfig = loader.merge();
886
933
  return validateConfig(mergedConfig);
887
934
  }
888
- var ENV_VAR_MAPPING, SubagentTypeSchema, LogLevelSchema, HookTypeSchema, HookSchema, HooksSchema, JunoTaskConfigSchema, DEFAULT_CONFIG, GLOBAL_CONFIG_FILE_NAMES, PROJECT_CONFIG_FILE, ConfigLoader;
935
+ var ENV_VAR_MAPPING, LEGACY_ENV_VAR_MAPPING, SubagentTypeSchema, LogLevelSchema, HookTypeSchema, HookSchema, HooksSchema, JunoTaskConfigSchema, DEFAULT_CONFIG, GLOBAL_CONFIG_FILE_NAMES, PROJECT_CONFIG_FILE, ConfigLoader;
889
936
  var init_config = __esm({
890
937
  "src/core/config.ts"() {
891
938
  init_version();
939
+ init_default_hooks();
892
940
  init_profiles();
893
941
  ENV_VAR_MAPPING = {
942
+ // Core settings
943
+ JUNO_CODE_DEFAULT_SUBAGENT: "defaultSubagent",
944
+ JUNO_CODE_DEFAULT_MAX_ITERATIONS: "defaultMaxIterations",
945
+ JUNO_CODE_DEFAULT_MODEL: "defaultModel",
946
+ // Logging settings
947
+ JUNO_CODE_LOG_LEVEL: "logLevel",
948
+ JUNO_CODE_LOG_FILE: "logFile",
949
+ JUNO_CODE_VERBOSE: "verbose",
950
+ JUNO_CODE_QUIET: "quiet",
951
+ // MCP settings
952
+ JUNO_CODE_MCP_TIMEOUT: "mcpTimeout",
953
+ JUNO_CODE_MCP_RETRIES: "mcpRetries",
954
+ JUNO_CODE_MCP_SERVER_PATH: "mcpServerPath",
955
+ JUNO_CODE_MCP_SERVER_NAME: "mcpServerName",
956
+ // TUI settings
957
+ JUNO_CODE_INTERACTIVE: "interactive",
958
+ JUNO_CODE_HEADLESS_MODE: "headlessMode",
959
+ // Paths
960
+ JUNO_CODE_WORKING_DIRECTORY: "workingDirectory",
961
+ JUNO_CODE_SESSION_DIRECTORY: "sessionDirectory"
962
+ };
963
+ LEGACY_ENV_VAR_MAPPING = {
894
964
  // Core settings
895
965
  JUNO_TASK_DEFAULT_SUBAGENT: "defaultSubagent",
896
966
  JUNO_TASK_DEFAULT_MAX_ITERATIONS: "defaultMaxIterations",
@@ -963,16 +1033,16 @@ var init_config = __esm({
963
1033
  // Paths
964
1034
  workingDirectory: process.cwd(),
965
1035
  sessionDirectory: path__namespace.join(process.cwd(), ".juno_task"),
966
- // Hooks configuration
967
- hooks: {}
1036
+ // Hooks configuration - populated with default hooks template
1037
+ hooks: getDefaultHooks()
968
1038
  };
969
1039
  GLOBAL_CONFIG_FILE_NAMES = [
970
- "juno-task.config.json",
971
- "juno-task.config.js",
972
- ".juno-taskrc.json",
973
- ".juno-taskrc.js",
1040
+ "juno-code.config.json",
1041
+ "juno-code.config.js",
1042
+ ".juno-coderc.json",
1043
+ ".juno-coderc.js",
974
1044
  "package.json"
975
- // Will look for 'junoTask' field
1045
+ // Will look for 'junoCode' field
976
1046
  ];
977
1047
  PROJECT_CONFIG_FILE = ".juno_task/config.json";
978
1048
  ConfigLoader = class {
@@ -5957,8 +6027,8 @@ var init_concurrent_feedback_collector = __esm({
5957
6027
  // Current feedback mode state
5958
6028
  constructor(options = {}) {
5959
6029
  this.options = {
5960
- command: options.command || "juno-ts-task",
5961
- commandArgs: options.commandArgs || ["juno-ts-task", "feedback"],
6030
+ command: options.command || "juno-code",
6031
+ commandArgs: options.commandArgs || ["juno-code", "feedback"],
5962
6032
  verbose: options.verbose || false,
5963
6033
  showHeader: options.showHeader !== void 0 ? options.showHeader : true,
5964
6034
  progressInterval: options.progressInterval || 0,
@@ -6342,23 +6412,23 @@ var init_framework = __esm({
6342
6412
  flags: "-v, --verbose",
6343
6413
  description: "Enable verbose output with detailed progress",
6344
6414
  defaultValue: false,
6345
- env: "JUNO_TASK_VERBOSE"
6415
+ env: "JUNO_CODE_VERBOSE"
6346
6416
  },
6347
6417
  {
6348
6418
  flags: "-q, --quiet",
6349
6419
  description: "Disable rich formatting, use plain text",
6350
6420
  defaultValue: false,
6351
- env: "JUNO_TASK_QUIET"
6421
+ env: "JUNO_CODE_QUIET"
6352
6422
  },
6353
6423
  {
6354
6424
  flags: "-c, --config <path>",
6355
6425
  description: "Configuration file path (.json, .toml, pyproject.toml)",
6356
- env: "JUNO_TASK_CONFIG"
6426
+ env: "JUNO_CODE_CONFIG"
6357
6427
  },
6358
6428
  {
6359
6429
  flags: "--log-file <path>",
6360
6430
  description: "Log file path (auto-generated if not specified)",
6361
- env: "JUNO_TASK_LOG_FILE"
6431
+ env: "JUNO_CODE_LOG_FILE"
6362
6432
  },
6363
6433
  {
6364
6434
  flags: "--no-color",
@@ -6369,24 +6439,24 @@ var init_framework = __esm({
6369
6439
  description: "Log level for output (error, warn, info, debug, trace)",
6370
6440
  defaultValue: "info",
6371
6441
  choices: ["error", "warn", "info", "debug", "trace"],
6372
- env: "JUNO_TASK_LOG_LEVEL"
6442
+ env: "JUNO_CODE_LOG_LEVEL"
6373
6443
  },
6374
6444
  {
6375
6445
  flags: "-s, --subagent <type>",
6376
6446
  description: "Subagent to use",
6377
- env: "JUNO_TASK_SUBAGENT"
6447
+ env: "JUNO_CODE_SUBAGENT"
6378
6448
  },
6379
6449
  {
6380
6450
  flags: "--max-iterations <number>",
6381
6451
  description: "Maximum iterations (-1 for unlimited)",
6382
6452
  defaultValue: void 0,
6383
- env: "JUNO_TASK_MAX_ITERATIONS"
6453
+ env: "JUNO_CODE_MAX_ITERATIONS"
6384
6454
  },
6385
6455
  {
6386
6456
  flags: "--mcp-timeout <number>",
6387
6457
  description: "MCP server timeout in milliseconds",
6388
6458
  defaultValue: void 0,
6389
- env: "JUNO_TASK_MCP_TIMEOUT"
6459
+ env: "JUNO_CODE_MCP_TIMEOUT"
6390
6460
  }
6391
6461
  ];
6392
6462
  for (const option of this.globalOptions) {
@@ -6633,7 +6703,7 @@ ${helpText}
6633
6703
  }
6634
6704
  if (error.showHelp) {
6635
6705
  console.error(chalk12__default.default.gray(`
6636
- Use 'juno-task ${commandName} --help' for usage information`));
6706
+ Use 'juno-code ${commandName} --help' for usage information`));
6637
6707
  }
6638
6708
  const exitCode = Object.values(EXIT_CODES).includes(error.code) ? error.code : EXIT_CODES.UNEXPECTED_ERROR;
6639
6709
  process.exit(exitCode);
@@ -6678,7 +6748,7 @@ ${helpText}
6678
6748
  try {
6679
6749
  await this.program.parseAsync(argv2);
6680
6750
  } catch (error) {
6681
- await this.handleCommandError(error, "juno-task", {});
6751
+ await this.handleCommandError(error, "juno-code", {});
6682
6752
  }
6683
6753
  }
6684
6754
  /**
@@ -11184,7 +11254,7 @@ async function mainCommandHandler(args, options, command) {
11184
11254
  `Invalid subagent: ${options.subagent}`,
11185
11255
  [
11186
11256
  `Use one of: ${validSubagents.join(", ")}`,
11187
- 'Example: juno-task claude "your prompt"',
11257
+ 'Example: juno-code claude "your prompt"',
11188
11258
  "Use --help for more information"
11189
11259
  ]
11190
11260
  );
@@ -11276,34 +11346,34 @@ function createMainCommand() {
11276
11346
  description: "Subagent to use",
11277
11347
  required: true,
11278
11348
  choices: ["claude", "cursor", "codex", "gemini", "claude-code", "claude_code", "gemini-cli", "cursor-agent"],
11279
- env: "JUNO_TASK_SUBAGENT"
11349
+ env: "JUNO_CODE_SUBAGENT"
11280
11350
  }),
11281
11351
  createOption({
11282
11352
  flags: "-p, --prompt <text|file>",
11283
11353
  description: "Prompt input (file path or inline text)",
11284
- env: "JUNO_TASK_PROMPT"
11354
+ env: "JUNO_CODE_PROMPT"
11285
11355
  }),
11286
11356
  createOption({
11287
11357
  flags: "-w, --cwd <path>",
11288
11358
  description: "Working directory",
11289
11359
  defaultValue: process.cwd(),
11290
- env: "JUNO_TASK_CWD"
11360
+ env: "JUNO_CODE_CWD"
11291
11361
  }),
11292
11362
  createOption({
11293
11363
  flags: "-i, --max-iterations <number>",
11294
11364
  description: "Maximum iterations (-1 for unlimited)",
11295
- env: "JUNO_TASK_MAX_ITERATIONS"
11365
+ env: "JUNO_CODE_MAX_ITERATIONS"
11296
11366
  }),
11297
11367
  createOption({
11298
11368
  flags: "-m, --model <name>",
11299
11369
  description: "Model to use (optional, subagent-specific)",
11300
- env: "JUNO_TASK_MODEL"
11370
+ env: "JUNO_CODE_MODEL"
11301
11371
  }),
11302
11372
  createOption({
11303
11373
  flags: "-I, --interactive",
11304
11374
  description: "Interactive mode for typing/pasting prompts",
11305
11375
  defaultValue: false,
11306
- env: "JUNO_TASK_INTERACTIVE"
11376
+ env: "JUNO_CODE_INTERACTIVE"
11307
11377
  }),
11308
11378
  createOption({
11309
11379
  flags: "--interactive-prompt",
@@ -11313,19 +11383,19 @@ function createMainCommand() {
11313
11383
  ],
11314
11384
  examples: [
11315
11385
  {
11316
- command: 'juno-task -s claude -p "Create a REST API"',
11386
+ command: 'juno-code -s claude -p "Create a REST API"',
11317
11387
  description: "Execute task with Claude using inline prompt"
11318
11388
  },
11319
11389
  {
11320
- command: "juno-task -s cursor -p ./task.md -i 3",
11390
+ command: "juno-code -s cursor -p ./task.md -i 3",
11321
11391
  description: "Execute task with Cursor using file prompt, max 3 iterations"
11322
11392
  },
11323
11393
  {
11324
- command: "juno-task -s gemini --interactive",
11394
+ command: "juno-code -s gemini --interactive",
11325
11395
  description: "Use interactive mode to enter prompt"
11326
11396
  },
11327
11397
  {
11328
- command: "juno-task -s claude --interactive-prompt",
11398
+ command: "juno-code -s claude --interactive-prompt",
11329
11399
  description: "Use enhanced TUI prompt editor"
11330
11400
  }
11331
11401
  ],
@@ -11365,10 +11435,10 @@ var init_main = __esm({
11365
11435
  throw new ValidationError(
11366
11436
  "Prompt is required for execution",
11367
11437
  [
11368
- 'Provide prompt text: juno-task claude "your prompt here"',
11369
- "Use file input: juno-task claude prompt.txt",
11370
- "Use interactive mode: juno-task claude --interactive",
11371
- "Use TUI editor: juno-task claude --interactive-prompt",
11438
+ 'Provide prompt text: juno-code claude "your prompt here"',
11439
+ "Use file input: juno-code claude prompt.txt",
11440
+ "Use interactive mode: juno-code claude --interactive",
11441
+ "Use TUI editor: juno-code claude --interactive-prompt",
11372
11442
  "Create default prompt file: .juno_task/prompt.md"
11373
11443
  ]
11374
11444
  );
@@ -11593,7 +11663,7 @@ var init_main = __esm({
11593
11663
  this.enableFeedback = enableFeedback;
11594
11664
  if (this.enableFeedback) {
11595
11665
  this.feedbackCollector = new ConcurrentFeedbackCollector({
11596
- command: "juno-ts-task",
11666
+ command: "juno-code",
11597
11667
  commandArgs: ["feedback"],
11598
11668
  verbose: this.config.verbose,
11599
11669
  showHeader: true,
@@ -12062,6 +12132,7 @@ async function promptInputOnce(question, defaultValue = "") {
12062
12132
  }
12063
12133
 
12064
12134
  // src/cli/commands/init.ts
12135
+ init_default_hooks();
12065
12136
  init_types();
12066
12137
  var SimpleInitTUI = class {
12067
12138
  context = {};
@@ -12070,7 +12141,7 @@ var SimpleInitTUI = class {
12070
12141
  * Simplified gather method implementing the minimal flow
12071
12142
  */
12072
12143
  async gather() {
12073
- console.log(chalk12__default.default.blue.bold("\n\u{1F680} Juno Task Project Initialization\n"));
12144
+ console.log(chalk12__default.default.blue.bold("\n\u{1F680} Juno Code Project Initialization\n"));
12074
12145
  console.log(chalk12__default.default.yellow("\u{1F4C1} Step 1: Project Directory"));
12075
12146
  const targetDirectory = await this.promptForDirectory();
12076
12147
  console.log(chalk12__default.default.yellow("\n\u{1F4DD} Step 2: Main Task"));
@@ -12353,6 +12424,65 @@ Items will be added here as we discover what needs to be implemented.
12353
12424
  - Task defined: ${variables.TASK}
12354
12425
  `;
12355
12426
  await fs__default.default.writeFile(path__namespace.join(junoTaskDir, "plan.md"), planContent);
12427
+ const implementContent = `# Implementation Guide
12428
+
12429
+ ## Current Focus
12430
+
12431
+ **Main Task**: ${variables.TASK}
12432
+
12433
+ ## Implementation Steps
12434
+
12435
+ ### Step 1: Analysis and Planning
12436
+ - [ ] Review existing codebase structure
12437
+ - [ ] Identify key components and dependencies
12438
+ - [ ] Document current state in @.juno_task/plan.md
12439
+ - [ ] Create detailed specifications in @.juno_task/specs/
12440
+
12441
+ ### Step 2: Design and Architecture
12442
+ - [ ] Define system architecture
12443
+ - [ ] Design data models and APIs
12444
+ - [ ] Plan integration points
12445
+ - [ ] Document architecture decisions
12446
+
12447
+ ### Step 3: Implementation
12448
+ - [ ] Implement core functionality
12449
+ - [ ] Write comprehensive tests
12450
+ - [ ] Ensure code quality and documentation
12451
+ - [ ] Follow coding standards and best practices
12452
+
12453
+ ### Step 4: Testing and Validation
12454
+ - [ ] Unit tests with >90% coverage
12455
+ - [ ] Integration tests
12456
+ - [ ] Performance testing
12457
+ - [ ] Security review
12458
+
12459
+ ### Step 5: Documentation and Deployment
12460
+ - [ ] Update all documentation
12461
+ - [ ] Create deployment guides
12462
+ - [ ] Version control and tagging
12463
+ - [ ] Final review and sign-off
12464
+
12465
+ ## Current Tasks
12466
+
12467
+ Update this section with specific tasks for the current iteration:
12468
+
12469
+ 1. **Task 1**: Study existing codebase and create specifications
12470
+ - Status: Not Started
12471
+ - Owner: ${variables.EDITOR}
12472
+ - Priority: High
12473
+
12474
+ ## Notes and Considerations
12475
+
12476
+ - Keep this file updated as implementation progresses
12477
+ - Document any blockers or issues encountered
12478
+ - Reference related specs and plan items
12479
+ - Track progress and update status regularly
12480
+
12481
+ ---
12482
+ *Last updated: ${variables.CURRENT_DATE}*
12483
+ *Primary subagent: ${variables.EDITOR}*
12484
+ `;
12485
+ await fs__default.default.writeFile(path__namespace.join(junoTaskDir, "implement.md"), implementContent);
12356
12486
  const specsDir = path__namespace.join(junoTaskDir, "specs");
12357
12487
  await fs__default.default.ensureDir(specsDir);
12358
12488
  const specsReadmeContent = `# Project Specifications
@@ -12423,7 +12553,7 @@ This directory contains detailed specifications for the project components.
12423
12553
 
12424
12554
  ## System Overview
12425
12555
 
12426
- This project uses AI-assisted development with juno-task to achieve: ${variables.TASK}
12556
+ This project uses AI-assisted development with juno-code to achieve: ${variables.TASK}
12427
12557
 
12428
12558
  ## Architectural Decisions
12429
12559
 
@@ -12446,7 +12576,7 @@ This project uses AI-assisted development with juno-task to achieve: ${variables
12446
12576
 
12447
12577
  - **Language**: TypeScript
12448
12578
  - **Runtime**: Node.js
12449
- - **CLI**: juno-task with AI subagent integration
12579
+ - **CLI**: juno-code with AI subagent integration
12450
12580
  - **Version Control**: Git
12451
12581
  - **Documentation**: Markdown-based
12452
12582
 
@@ -12505,7 +12635,7 @@ This project uses AI-assisted development with juno-task to achieve: ${variables
12505
12635
 
12506
12636
  ## Project Overview
12507
12637
 
12508
- This project was initialized on ${variables.CURRENT_DATE} using juno-task.
12638
+ This project was initialized on ${variables.CURRENT_DATE} using juno-code.
12509
12639
 
12510
12640
  **Main Task**: ${variables.TASK}
12511
12641
  **Preferred Subagent**: ${variables.EDITOR}
@@ -12519,9 +12649,9 @@ This project was initialized on ${variables.CURRENT_DATE} using juno-task.
12519
12649
  - Use \`npm run test:binary\` for CLI testing
12520
12650
 
12521
12651
  ### Key Commands
12522
- - \`juno-task start\` - Begin task execution
12523
- - \`juno-task -s ${variables.EDITOR}\` - Quick execution with preferred subagent
12524
- - \`juno-task feedback\` - Provide feedback on the process
12652
+ - \`juno-code start\` - Begin task execution
12653
+ - \`juno-code -s ${variables.EDITOR}\` - Quick execution with preferred subagent
12654
+ - \`juno-code feedback\` - Provide feedback on the process
12525
12655
 
12526
12656
  ## Project Structure
12527
12657
 
@@ -12531,6 +12661,7 @@ This project was initialized on ${variables.CURRENT_DATE} using juno-task.
12531
12661
  \u2502 \u251C\u2500\u2500 prompt.md # Main task definition with AI instructions
12532
12662
  \u2502 \u251C\u2500\u2500 init.md # Initial task breakdown and constraints
12533
12663
  \u2502 \u251C\u2500\u2500 plan.md # Dynamic planning and priority tracking
12664
+ \u2502 \u251C\u2500\u2500 implement.md # Implementation guide and current tasks
12534
12665
  \u2502 \u251C\u2500\u2500 USER_FEEDBACK.md # User feedback and issue tracking
12535
12666
  \u2502 \u251C\u2500\u2500 scripts/ # Utility scripts for project maintenance
12536
12667
  \u2502 \u2502 \u2514\u2500\u2500 clean_logs_folder.sh # Archive old log files
@@ -12642,27 +12773,27 @@ ${variables.DESCRIPTION}
12642
12773
 
12643
12774
  ## Overview
12644
12775
 
12645
- This project uses juno-task for AI-powered development with ${variables.EDITOR} as the primary AI subagent.
12776
+ This project uses juno-code for AI-powered development with ${variables.EDITOR} as the primary AI subagent.
12646
12777
 
12647
12778
  ## Getting Started
12648
12779
 
12649
12780
  ### Prerequisites
12650
12781
 
12651
12782
  - Node.js (v18 or higher)
12652
- - juno-task CLI installed
12783
+ - juno-code CLI installed
12653
12784
  - Git for version control
12654
12785
 
12655
12786
  ### Quick Start
12656
12787
 
12657
12788
  \`\`\`bash
12658
12789
  # Start task execution with production-ready AI instructions
12659
- juno-task start
12790
+ juno-code start
12660
12791
 
12661
12792
  # Or use main command with preferred subagent
12662
- juno-task -s ${variables.EDITOR}
12793
+ juno-code -s ${variables.EDITOR}
12663
12794
 
12664
12795
  # Provide feedback on the development process
12665
- juno-task feedback
12796
+ juno-code feedback
12666
12797
  \`\`\`
12667
12798
 
12668
12799
  ## Project Structure
@@ -12673,8 +12804,10 @@ juno-task feedback
12673
12804
  \u2502 \u251C\u2500\u2500 prompt.md # Production-ready AI instructions
12674
12805
  \u2502 \u251C\u2500\u2500 init.md # Task breakdown and constraints
12675
12806
  \u2502 \u251C\u2500\u2500 plan.md # Dynamic planning and tracking
12807
+ \u2502 \u251C\u2500\u2500 implement.md # Implementation guide and current tasks
12676
12808
  \u2502 \u251C\u2500\u2500 USER_FEEDBACK.md # User feedback and issue tracking
12677
12809
  \u2502 \u251C\u2500\u2500 scripts/ # Utility scripts for project maintenance
12810
+ \u2502 \u2502 \u251C\u2500\u2500 install_requirements.sh # Install Python dependencies
12678
12811
  \u2502 \u2502 \u2514\u2500\u2500 clean_logs_folder.sh # Archive old log files (3+ days)
12679
12812
  \u2502 \u2514\u2500\u2500 specs/ # Comprehensive specifications
12680
12813
  \u2502 \u251C\u2500\u2500 README.md # Specs overview and guide
@@ -12721,12 +12854,13 @@ ${variables.GIT_URL}` : ""}
12721
12854
 
12722
12855
  1. **Review Task**: Check \`.juno_task/init.md\` for main task
12723
12856
  2. **Check Plan**: Review \`.juno_task/plan.md\` for current priorities
12724
- 3. **Provide Feedback**: Use \`juno-task feedback\` for issues or suggestions
12725
- 4. **Track Progress**: Monitor AI development through \`.juno_task/prompt.md\`
12857
+ 3. **Track Implementation**: Follow \`.juno_task/implement.md\` for current implementation steps
12858
+ 4. **Provide Feedback**: Use \`juno-code feedback\` for issues or suggestions
12859
+ 5. **Monitor Progress**: Track AI development through \`.juno_task/prompt.md\`
12726
12860
 
12727
12861
  ---
12728
12862
 
12729
- Created with juno-task on ${variables.CURRENT_DATE}
12863
+ Created with juno-code on ${variables.CURRENT_DATE}
12730
12864
  ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12731
12865
  `;
12732
12866
  await fs__default.default.writeFile(path__namespace.join(targetDirectory, "README.md"), readmeContent);
@@ -12776,7 +12910,9 @@ ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12776
12910
  headlessMode: false,
12777
12911
  // Paths
12778
12912
  workingDirectory: targetDirectory,
12779
- sessionDirectory: path__namespace.join(targetDirectory, ".juno_task")
12913
+ sessionDirectory: path__namespace.join(targetDirectory, ".juno_task"),
12914
+ // Hooks configuration with default file size monitoring
12915
+ hooks: getDefaultHooks()
12780
12916
  };
12781
12917
  const configPath = path__namespace.join(junoTaskDir, "config.json");
12782
12918
  await fs__default.default.writeFile(configPath, JSON.stringify(configContent, null, 2));
@@ -12950,11 +13086,11 @@ ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12950
13086
  printNextSteps(targetDirectory, editor) {
12951
13087
  console.log(chalk12__default.default.blue("\n\u{1F3AF} Next Steps:"));
12952
13088
  console.log(chalk12__default.default.white(` cd ${targetDirectory}`));
12953
- console.log(chalk12__default.default.white(" juno-task start # Start task execution"));
12954
- console.log(chalk12__default.default.white(` juno-task -s ${editor} # Quick execution with ${editor}`));
13089
+ console.log(chalk12__default.default.white(" juno-code start # Start task execution"));
13090
+ console.log(chalk12__default.default.white(` juno-code -s ${editor} # Quick execution with ${editor}`));
12955
13091
  console.log(chalk12__default.default.gray("\n\u{1F4A1} Tips:"));
12956
13092
  console.log(chalk12__default.default.gray(" - Edit .juno_task/prompt.md to modify your main task"));
12957
- console.log(chalk12__default.default.gray(' - Use "juno-task --help" to see all available commands'));
13093
+ console.log(chalk12__default.default.gray(' - Use "juno-code --help" to see all available commands'));
12958
13094
  console.log(chalk12__default.default.gray(" - Run .juno_task/scripts/clean_logs_folder.sh to archive old logs"));
12959
13095
  }
12960
13096
  /**
@@ -13009,10 +13145,10 @@ ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
13009
13145
  execSync("git add .", { cwd: targetDirectory, stdio: "ignore" });
13010
13146
  const commitMessage = `Initial commit: ${this.context.task || "Project initialization"}
13011
13147
 
13012
- \u{1F916} Generated with juno-task using ${this.context.subagent} subagent
13148
+ \u{1F916} Generated with juno-code using ${this.context.subagent} subagent
13013
13149
  \u{1F3AF} Main Task: ${this.context.task}
13014
13150
 
13015
- \u{1F680} Generated with [juno-task](https://github.com/owner/juno-task-ts)
13151
+ \u{1F680} Generated with [juno-code](https://github.com/owner/juno-code-ts)
13016
13152
 
13017
13153
  Co-Authored-By: Claude <noreply@anthropic.com>`;
13018
13154
  execSync(`git commit -m "${commitMessage}"`, {
@@ -13057,10 +13193,15 @@ var SimpleHeadlessInit = class {
13057
13193
  createSimpleVariables(targetDirectory, task, editor, gitUrl) {
13058
13194
  const projectName = path__namespace.basename(targetDirectory);
13059
13195
  const currentDate = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
13196
+ let AGENTMD = "AGENTS.md";
13197
+ if (editor == "claude") {
13198
+ AGENTMD = "CLAUDE.md";
13199
+ }
13060
13200
  return {
13061
13201
  PROJECT_NAME: projectName,
13062
13202
  TASK: task,
13063
13203
  EDITOR: editor,
13204
+ AGENTMD,
13064
13205
  CURRENT_DATE: currentDate,
13065
13206
  VERSION: "1.0.0",
13066
13207
  AUTHOR: "Development Team",
@@ -13073,7 +13214,7 @@ async function initCommandHandler(args, options, command) {
13073
13214
  try {
13074
13215
  const globalOptions = command.parent?.opts() || {};
13075
13216
  const allOptions2 = { ...options, ...globalOptions };
13076
- console.log(chalk12__default.default.blue.bold("\u{1F3AF} Juno Task - Simplified Initialization"));
13217
+ console.log(chalk12__default.default.blue.bold("\u{1F3AF} Juno Code - Simplified Initialization"));
13077
13218
  let context;
13078
13219
  const shouldUseInteractive = options.interactive || !options.task && !process.env.CI || process.env.FORCE_INTERACTIVE === "1";
13079
13220
  if (shouldUseInteractive) {
@@ -13114,7 +13255,7 @@ async function initCommandHandler(args, options, command) {
13114
13255
  }
13115
13256
  }
13116
13257
  function configureInitCommand(program) {
13117
- program.command("init").description("Initialize new juno-task project with simple setup").argument("[directory]", "Target directory (default: current directory)").option("-f, --force", "Force overwrite existing files").option("-t, --task <description>", "Main task description").option("-g, --git-url <url>", "Git repository URL").option("-i, --interactive", "Launch simple interactive setup").action(async (directory, options, command) => {
13258
+ program.command("init").description("Initialize new juno-code project with simple setup").argument("[directory]", "Target directory (default: current directory)").option("-f, --force", "Force overwrite existing files").option("-t, --task <description>", "Main task description").option("-g, --git-url <url>", "Git repository URL").option("-i, --interactive", "Launch simple interactive setup").action(async (directory, options, command) => {
13118
13259
  const initOptions = {
13119
13260
  directory,
13120
13261
  force: options.force,
@@ -13132,9 +13273,9 @@ function configureInitCommand(program) {
13132
13273
  await initCommandHandler([], initOptions, command);
13133
13274
  }).addHelpText("after", `
13134
13275
  Examples:
13135
- $ juno-task init # Initialize in current directory
13136
- $ juno-task init my-project # Initialize in ./my-project
13137
- $ juno-task init --interactive # Use simple interactive setup
13276
+ $ juno-code init # Initialize in current directory
13277
+ $ juno-code init my-project # Initialize in ./my-project
13278
+ $ juno-code init --interactive # Use simple interactive setup
13138
13279
 
13139
13280
  Simplified Interactive Flow:
13140
13281
  1. Project Root \u2192 Specify target directory
@@ -14907,7 +15048,7 @@ var ProjectContextLoader = class {
14907
15048
  const junoTaskDir = path__namespace.join(this.directory, ".juno_task");
14908
15049
  if (!await fs__default.default.pathExists(junoTaskDir)) {
14909
15050
  throw new FileSystemError(
14910
- 'No .juno_task directory found. Run "juno-task init" first.',
15051
+ 'No .juno_task directory found. Run "juno-code init" first.',
14911
15052
  junoTaskDir
14912
15053
  );
14913
15054
  }
@@ -14976,7 +15117,7 @@ var ExecutionCoordinator = class {
14976
15117
  this.sessionManager = await createSessionManager(this.config);
14977
15118
  if (this.enableFeedback) {
14978
15119
  this.feedbackCollector = new ConcurrentFeedbackCollector({
14979
- command: "juno-ts-task",
15120
+ command: "juno-code",
14980
15121
  commandArgs: ["feedback"],
14981
15122
  verbose: this.config.verbose,
14982
15123
  showHeader: true,
@@ -15124,7 +15265,7 @@ async function startCommandHandler(args, options, command) {
15124
15265
  try {
15125
15266
  const globalOptions = command.parent?.opts() || {};
15126
15267
  const allOptions2 = { ...globalOptions, ...options };
15127
- writeTerminalProgress(chalk12__default.default.blue.bold("\u{1F3AF} Juno Task - Start Execution") + "\n");
15268
+ writeTerminalProgress(chalk12__default.default.blue.bold("\u{1F3AF} Juno Code - Start Execution") + "\n");
15128
15269
  const logLevel = allOptions2.logLevel ? LogLevel[allOptions2.logLevel.toUpperCase()] : 2 /* INFO */;
15129
15270
  cliLogger.startTimer("start_command_total");
15130
15271
  cliLogger.info("Starting execution command", { options: allOptions2, directory: allOptions2.directory || process.cwd() });
@@ -15174,7 +15315,7 @@ async function startCommandHandler(args, options, command) {
15174
15315
  `Invalid subagent: ${allOptions2.subagent}`,
15175
15316
  [
15176
15317
  `Use one of: ${validSubagents.join(", ")}`,
15177
- "Run `juno-task help start` for examples"
15318
+ "Run `juno-code help start` for examples"
15178
15319
  ]
15179
15320
  );
15180
15321
  }
@@ -15216,7 +15357,7 @@ async function startCommandHandler(args, options, command) {
15216
15357
  if (sessionId) {
15217
15358
  writeTerminalProgress(chalk12__default.default.blue(`
15218
15359
  \u{1F4C1} Session ID: ${sessionId}`) + "\n");
15219
- writeTerminalProgress(chalk12__default.default.gray(' Use "juno-task session info ' + sessionId + '" for detailed information') + "\n");
15360
+ writeTerminalProgress(chalk12__default.default.gray(' Use "juno-code session info ' + sessionId + '" for detailed information') + "\n");
15220
15361
  sessionLogger.info("Session completed", {
15221
15362
  sessionId,
15222
15363
  status: result.status,
@@ -15283,20 +15424,20 @@ function configureStartCommand(program) {
15283
15424
  await startCommandHandler([], options, command);
15284
15425
  }).addHelpText("after", `
15285
15426
  Examples:
15286
- $ juno-task start # Start execution in current directory
15287
- $ juno-task start -s claude # Use claude subagent
15288
- $ juno-task start --subagent cursor # Use cursor subagent
15289
- $ juno-task start -s codex --max-iterations 10 # Use codex with 10 iterations
15290
- $ juno-task start --model sonnet-4 # Use specific model
15291
- $ juno-task start --directory ./my-project # Execute in specific directory
15292
- $ juno-task start --enable-feedback # Enable feedback collection while running
15293
- $ juno-task start --verbose # Show detailed progress
15294
- $ juno-task start --quiet # Minimize output
15295
- $ juno-task start --show-metrics # Display performance summary
15296
- $ juno-task start --show-dashboard # Interactive performance dashboard
15297
- $ juno-task start --show-trends # Show historical performance trends
15298
- $ juno-task start --save-metrics # Save metrics to .juno_task/metrics.json
15299
- $ juno-task start --save-metrics custom.json # Save metrics to custom file
15427
+ $ juno-code start # Start execution in current directory
15428
+ $ juno-code start -s claude # Use claude subagent
15429
+ $ juno-code start --subagent cursor # Use cursor subagent
15430
+ $ juno-code start -s codex --max-iterations 10 # Use codex with 10 iterations
15431
+ $ juno-code start --model sonnet-4 # Use specific model
15432
+ $ juno-code start --directory ./my-project # Execute in specific directory
15433
+ $ juno-code start --enable-feedback # Enable feedback collection while running
15434
+ $ juno-code start --verbose # Show detailed progress
15435
+ $ juno-code start --quiet # Minimize output
15436
+ $ juno-code start --show-metrics # Display performance summary
15437
+ $ juno-code start --show-dashboard # Interactive performance dashboard
15438
+ $ juno-code start --show-trends # Show historical performance trends
15439
+ $ juno-code start --save-metrics # Save metrics to .juno_task/metrics.json
15440
+ $ juno-code start --save-metrics custom.json # Save metrics to custom file
15300
15441
 
15301
15442
  Feedback Collection:
15302
15443
  --enable-feedback Enable concurrent feedback collection
@@ -15312,13 +15453,13 @@ Performance Options:
15312
15453
  --metrics-file <path> Custom metrics file path
15313
15454
 
15314
15455
  Environment Variables:
15315
- JUNO_TASK_MAX_ITERATIONS Default maximum iterations
15316
- JUNO_TASK_MODEL Default model to use
15317
- JUNO_TASK_MCP_SERVER_PATH Path to MCP server executable
15318
- JUNO_TASK_MCP_TIMEOUT MCP operation timeout (ms)
15456
+ JUNO_CODE_MAX_ITERATIONS Default maximum iterations
15457
+ JUNO_CODE_MODEL Default model to use
15458
+ JUNO_CODE_MCP_SERVER_PATH Path to MCP server executable
15459
+ JUNO_CODE_MCP_TIMEOUT MCP operation timeout (ms)
15319
15460
 
15320
15461
  Notes:
15321
- - Requires .juno_task/init.md file (created by 'juno-task init')
15462
+ - Requires .juno_task/init.md file (created by 'juno-code init')
15322
15463
  - Creates a new session for tracking execution
15323
15464
  - Progress is displayed in real-time
15324
15465
  - Performance metrics are collected automatically
@@ -16384,18 +16525,18 @@ function configureTestCommand(program) {
16384
16525
  await testCommandHandler(target, testOptions, command);
16385
16526
  }).addHelpText("after", `
16386
16527
  Examples:
16387
- $ juno-task test --generate # Generate tests for current project
16388
- $ juno-task test --run # Run existing tests
16389
- $ juno-task test --generate --run # Generate and run tests
16390
- $ juno-task test src/utils.ts --generate # Generate tests for specific file
16391
- $ juno-task test --type unit --intelligence smart # Generate smart unit tests
16392
- $ juno-task test --subagent cursor --generate # Use Cursor for test generation
16393
- $ juno-task test --run --coverage # Run tests with coverage
16394
- $ juno-task test --analyze --quality thorough # Analyze test quality thoroughly
16395
- $ juno-task test --report --format html # Generate HTML report
16396
- $ juno-task test --framework jest --generate # Generate Jest tests
16397
- $ juno-task test --template api-integration # Use specific template
16398
- $ juno-task test --watch # Run tests in watch mode
16528
+ $ juno-code test --generate # Generate tests for current project
16529
+ $ juno-code test --run # Run existing tests
16530
+ $ juno-code test --generate --run # Generate and run tests
16531
+ $ juno-code test src/utils.ts --generate # Generate tests for specific file
16532
+ $ juno-code test --type unit --intelligence smart # Generate smart unit tests
16533
+ $ juno-code test --subagent cursor --generate # Use Cursor for test generation
16534
+ $ juno-code test --run --coverage # Run tests with coverage
16535
+ $ juno-code test --analyze --quality thorough # Analyze test quality thoroughly
16536
+ $ juno-code test --report --format html # Generate HTML report
16537
+ $ juno-code test --framework jest --generate # Generate Jest tests
16538
+ $ juno-code test --template api-integration # Use specific template
16539
+ $ juno-code test --watch # Run tests in watch mode
16399
16540
 
16400
16541
  Test Types:
16401
16542
  unit Unit tests for individual functions/classes
@@ -16967,7 +17108,7 @@ function getFeedbackFile(options) {
16967
17108
  return options.file || path__namespace.join(process.cwd(), ".juno_task", "USER_FEEDBACK.md");
16968
17109
  }
16969
17110
  function configureFeedbackCommand(program) {
16970
- program.command("feedback").description("Submit feedback about juno-task (enhanced interface)").argument("[feedback...]", "Feedback text or issue description").option("-f, --file <path>", "Feedback file path (default: .juno_task/USER_FEEDBACK.md)").option("--interactive", "Launch simple interactive feedback form").option("-is, --issue <description>", "Issue description").option("-d, --detail <description>", "Issue description (alternative form)").option("--details <description>", "Issue description (alternative form)").option("--description <description>", "Issue description (alternative form)").option("-t, --test <criteria>", "Test criteria or success factors").option("-tc, --test-criteria <criteria>", "Test criteria or success factors (alternative form)").action(async (feedback, options, command) => {
17111
+ program.command("feedback").description("Submit feedback about juno-code (enhanced interface)").argument("[feedback...]", "Feedback text or issue description").option("-f, --file <path>", "Feedback file path (default: .juno_task/USER_FEEDBACK.md)").option("--interactive", "Launch simple interactive feedback form").option("-is, --issue <description>", "Issue description").option("-d, --detail <description>", "Issue description (alternative form)").option("--details <description>", "Issue description (alternative form)").option("--description <description>", "Issue description (alternative form)").option("-t, --test <criteria>", "Test criteria or success factors").option("-tc, --test-criteria <criteria>", "Test criteria or success factors (alternative form)").action(async (feedback, options, command) => {
16971
17112
  const feedbackOptions = {
16972
17113
  file: options.file,
16973
17114
  interactive: options.interactive,
@@ -16988,18 +17129,18 @@ function configureFeedbackCommand(program) {
16988
17129
  await feedbackCommandHandler(args, feedbackOptions);
16989
17130
  }).addHelpText("after", `
16990
17131
  Examples:
16991
- $ juno-task feedback # Interactive feedback form
16992
- $ juno-task feedback "Issue with command" # Direct feedback text
16993
- $ juno-task feedback --interactive # Use interactive form
16994
- $ juno-task feedback --issue "Bug description" --test "Should work without errors" # Issue with test criteria
16995
- $ juno-task feedback -is "Connection timeout" -t "Connect within 30 seconds" # Short form flags
16996
- $ juno-task feedback -is "UI issue" -tc "Should be intuitive" # Alternative short form
16997
- $ juno-task feedback --detail "Bug description" --test "Should work without errors" # Issue with test criteria
16998
- $ juno-task feedback -d "Connection timeout" -t "Connect within 30 seconds" # Short form flags
16999
- $ juno-task feedback --description "UI issue" --test "Should be intuitive" # Alternative form
17000
- $ juno-task feedback archive # Archive resolved issues to keep file lean
17001
- $ juno-task feedback compact # Compact CLAUDE.md and AGENTS.md
17002
- $ juno-task feedback compact CLAUDE.md # Compact specific file
17132
+ $ juno-code feedback # Interactive feedback form
17133
+ $ juno-code feedback "Issue with command" # Direct feedback text
17134
+ $ juno-code feedback --interactive # Use interactive form
17135
+ $ juno-code feedback --issue "Bug description" --test "Should work without errors" # Issue with test criteria
17136
+ $ juno-code feedback -is "Connection timeout" -t "Connect within 30 seconds" # Short form flags
17137
+ $ juno-code feedback -is "UI issue" -tc "Should be intuitive" # Alternative short form
17138
+ $ juno-code feedback --detail "Bug description" --test "Should work without errors" # Issue with test criteria
17139
+ $ juno-code feedback -d "Connection timeout" -t "Connect within 30 seconds" # Short form flags
17140
+ $ juno-code feedback --description "UI issue" --test "Should be intuitive" # Alternative form
17141
+ $ juno-code feedback archive # Archive resolved issues to keep file lean
17142
+ $ juno-code feedback compact # Compact CLAUDE.md and AGENTS.md
17143
+ $ juno-code feedback compact CLAUDE.md # Compact specific file
17003
17144
 
17004
17145
  Enhanced Features:
17005
17146
  1. Issue Description \u2192 Structured feedback with optional test criteria
@@ -17041,7 +17182,7 @@ async function handleCompactCommand(subArgs, options) {
17041
17182
  if (filesToCompact.length === 0) {
17042
17183
  console.log(chalk12__default.default.yellow("\u{1F4C4} No config files found to compact"));
17043
17184
  console.log(chalk12__default.default.gray(" Looking for: CLAUDE.md, AGENTS.md"));
17044
- console.log(chalk12__default.default.gray(" Usage: juno-task feedback compact [file1] [file2]"));
17185
+ console.log(chalk12__default.default.gray(" Usage: juno-code feedback compact [file1] [file2]"));
17045
17186
  return;
17046
17187
  }
17047
17188
  console.log(chalk12__default.default.blue.bold("\n\u{1F5DC}\uFE0F File Compaction Process\n"));
@@ -17148,7 +17289,7 @@ async function feedbackCommandHandler(args, options, command) {
17148
17289
  if (!issueText.trim()) {
17149
17290
  throw new ValidationError(
17150
17291
  "Issue description is required when using --issue/-is/--detail/--description or --test/-tc flags",
17151
- ['Use: juno-task feedback -is "Issue description" -t "Test criteria" or -tc "Test criteria"']
17292
+ ['Use: juno-code feedback -is "Issue description" -t "Test criteria" or -tc "Test criteria"']
17152
17293
  );
17153
17294
  }
17154
17295
  const feedbackFile = getFeedbackFile(options);
@@ -17198,10 +17339,10 @@ async function feedbackCommandHandler(args, options, command) {
17198
17339
  } else {
17199
17340
  console.log(chalk12__default.default.yellow("Use --interactive mode, --issue/-is/--detail/--description flag, or provide feedback text"));
17200
17341
  console.log(chalk12__default.default.gray("Examples:"));
17201
- console.log(chalk12__default.default.gray(' juno-task feedback --issue "Bug description"'));
17202
- console.log(chalk12__default.default.gray(' juno-task feedback -is "Issue" -t "Test criteria"'));
17203
- console.log(chalk12__default.default.gray(' juno-task feedback --detail "Bug description"'));
17204
- console.log(chalk12__default.default.gray(' juno-task feedback -d "Issue" -t "Test criteria"'));
17342
+ console.log(chalk12__default.default.gray(' juno-code feedback --issue "Bug description"'));
17343
+ console.log(chalk12__default.default.gray(' juno-code feedback -is "Issue" -t "Test criteria"'));
17344
+ console.log(chalk12__default.default.gray(' juno-code feedback --detail "Bug description"'));
17345
+ console.log(chalk12__default.default.gray(' juno-code feedback -d "Issue" -t "Test criteria"'));
17205
17346
  }
17206
17347
  break;
17207
17348
  }
@@ -17459,14 +17600,14 @@ async function handleSessionInfo(args, options, sessionManager) {
17459
17600
  const sessionId = args[0];
17460
17601
  if (!sessionId) {
17461
17602
  console.log(chalk12__default.default.red("Session ID is required"));
17462
- console.log(chalk12__default.default.gray("Usage: juno-task session info <session-id>"));
17463
- console.log(chalk12__default.default.gray('Use "juno-task session list" to see available sessions'));
17603
+ console.log(chalk12__default.default.gray("Usage: juno-code session info <session-id>"));
17604
+ console.log(chalk12__default.default.gray('Use "juno-code session list" to see available sessions'));
17464
17605
  return;
17465
17606
  }
17466
17607
  const session = await sessionManager.getSession(sessionId);
17467
17608
  if (!session) {
17468
17609
  console.log(chalk12__default.default.red(`Session not found: ${sessionId}`));
17469
- console.log(chalk12__default.default.gray('Use "juno-task session list" to see available sessions'));
17610
+ console.log(chalk12__default.default.gray('Use "juno-code session list" to see available sessions'));
17470
17611
  return;
17471
17612
  }
17472
17613
  const formatter = new SessionDisplayFormatter(options.verbose);
@@ -17476,7 +17617,7 @@ async function handleSessionRemove(args, options, sessionManager) {
17476
17617
  const sessionIds = args;
17477
17618
  if (sessionIds.length === 0) {
17478
17619
  console.log(chalk12__default.default.red("At least one session ID is required"));
17479
- console.log(chalk12__default.default.gray("Usage: juno-task session remove <session-id> [session-id...]"));
17620
+ console.log(chalk12__default.default.gray("Usage: juno-code session remove <session-id> [session-id...]"));
17480
17621
  process.exit(1);
17481
17622
  }
17482
17623
  let successCount = 0;
@@ -17605,15 +17746,15 @@ Subcommands:
17605
17746
  clean, cleanup Clean up old/empty sessions
17606
17747
 
17607
17748
  Examples:
17608
- $ juno-task session # List all sessions
17609
- $ juno-task session list --limit 10 # Show 10 most recent
17610
- $ juno-task session list --subagent claude # Filter by subagent
17611
- $ juno-task session list --status completed failed # Filter by status
17612
- $ juno-task session info abc123 # Show session details
17613
- $ juno-task session remove abc123 def456 # Remove sessions
17614
- $ juno-task session remove abc123 --force # Skip confirmation
17615
- $ juno-task session clean --days 30 # Remove sessions >30 days
17616
- $ juno-task session clean --empty --force # Remove empty sessions
17749
+ $ juno-code session # List all sessions
17750
+ $ juno-code session list --limit 10 # Show 10 most recent
17751
+ $ juno-code session list --subagent claude # Filter by subagent
17752
+ $ juno-code session list --status completed failed # Filter by status
17753
+ $ juno-code session info abc123 # Show session details
17754
+ $ juno-code session remove abc123 def456 # Remove sessions
17755
+ $ juno-code session remove abc123 --force # Skip confirmation
17756
+ $ juno-code session clean --days 30 # Remove sessions >30 days
17757
+ $ juno-code session clean --empty --force # Remove empty sessions
17617
17758
 
17618
17759
  Environment Variables:
17619
17760
  JUNO_TASK_SESSION_DIR Session storage directory
@@ -17910,7 +18051,7 @@ var GitManager = class {
17910
18051
  /**
17911
18052
  * Create initial commit
17912
18053
  */
17913
- async createInitialCommit(message = "Initial commit - juno-task project setup") {
18054
+ async createInitialCommit(message = "Initial commit - juno-code project setup") {
17914
18055
  try {
17915
18056
  const { execa: execa2 } = await import('execa');
17916
18057
  await execa2("git", ["add", "."], { cwd: this.workingDirectory });
@@ -17995,7 +18136,7 @@ GIT_URL: ${gitUrl}
17995
18136
  }
17996
18137
  await fs__default.default.writeFile(configPath, content, "utf-8");
17997
18138
  } catch (error) {
17998
- console.warn(`Warning: Failed to update juno-task configuration: ${error}`);
18139
+ console.warn(`Warning: Failed to update juno-code configuration: ${error}`);
17999
18140
  }
18000
18141
  }
18001
18142
  /**
@@ -18290,7 +18431,7 @@ var GitDisplayFormatter = class {
18290
18431
  console.log(chalk12__default.default.gray(` git push -u origin ${info.currentBranch || "main"}`));
18291
18432
  }
18292
18433
  console.log(" 3. Start working on your project:");
18293
- console.log(chalk12__default.default.gray(" juno-task start"));
18434
+ console.log(chalk12__default.default.gray(" juno-code start"));
18294
18435
  }
18295
18436
  formatStatus(status) {
18296
18437
  const statusColors = {
@@ -18405,7 +18546,7 @@ async function setupGitCommandHandler(args, options, command) {
18405
18546
  console.log(` Web URL: ${chalk12__default.default.blue(webUrl)}`);
18406
18547
  } else {
18407
18548
  console.log(chalk12__default.default.yellow("\n\u{1F517} No upstream repository configured"));
18408
- console.log(chalk12__default.default.gray(" Use: juno-task setup-git <url> to configure"));
18549
+ console.log(chalk12__default.default.gray(" Use: juno-code setup-git <url> to configure"));
18409
18550
  }
18410
18551
  return;
18411
18552
  }
@@ -18413,7 +18554,7 @@ async function setupGitCommandHandler(args, options, command) {
18413
18554
  const info = await gitManager.getRepositoryInfo();
18414
18555
  if (!info.isRepository) {
18415
18556
  console.log(chalk12__default.default.yellow("\u274C Not a Git repository"));
18416
- console.log(chalk12__default.default.gray(" Initialize with: juno-task setup-git --init"));
18557
+ console.log(chalk12__default.default.gray(" Initialize with: juno-code setup-git --init"));
18417
18558
  return;
18418
18559
  }
18419
18560
  const upstreamConfig = await gitManager.getUpstreamConfig();
@@ -18518,10 +18659,10 @@ function configureSetupGitCommand(program) {
18518
18659
  await setupGitCommandHandler(args, options);
18519
18660
  }).addHelpText("after", `
18520
18661
  Examples:
18521
- $ juno-task setup-git # Interactive setup
18522
- $ juno-task setup-git https://github.com/owner/repo # Set specific URL
18523
- $ juno-task setup-git --show # Show current config
18524
- $ juno-task setup-git --remove # Remove upstream URL
18662
+ $ juno-code setup-git # Interactive setup
18663
+ $ juno-code setup-git https://github.com/owner/repo # Set specific URL
18664
+ $ juno-code setup-git --show # Show current config
18665
+ $ juno-code setup-git --remove # Remove upstream URL
18525
18666
 
18526
18667
  Git URL Examples:
18527
18668
  https://github.com/owner/repo.git # GitHub HTTPS
@@ -19173,16 +19314,16 @@ function configureLogsCommand(program) {
19173
19314
  await logsCommandHandler([], options);
19174
19315
  }).addHelpText("after", `
19175
19316
  Examples:
19176
- $ juno-task logs # Show recent logs
19177
- $ juno-task logs --interactive # Interactive log viewer
19178
- $ juno-task logs --level error # Show only errors
19179
- $ juno-task logs --context mcp # Show only MCP logs
19180
- $ juno-task logs --search "connection" # Search for connection logs
19181
- $ juno-task logs --tail 100 # Show last 100 entries
19182
- $ juno-task logs --follow # Follow logs in real-time
19183
- $ juno-task logs --export logs.json # Export logs to file
19184
- $ juno-task logs --stats # Show statistics only
19185
- $ juno-task logs --format json # JSON output format
19317
+ $ juno-code logs # Show recent logs
19318
+ $ juno-code logs --interactive # Interactive log viewer
19319
+ $ juno-code logs --level error # Show only errors
19320
+ $ juno-code logs --context mcp # Show only MCP logs
19321
+ $ juno-code logs --search "connection" # Search for connection logs
19322
+ $ juno-code logs --tail 100 # Show last 100 entries
19323
+ $ juno-code logs --follow # Follow logs in real-time
19324
+ $ juno-code logs --export logs.json # Export logs to file
19325
+ $ juno-code logs --stats # Show statistics only
19326
+ $ juno-code logs --format json # JSON output format
19186
19327
 
19187
19328
  Interactive Viewer:
19188
19329
  \u2191\u2193 or j/k Navigate entries
@@ -19863,22 +20004,22 @@ var QUICK_REFERENCE = [
19863
20004
  {
19864
20005
  name: "init",
19865
20006
  description: "Initialize new project",
19866
- usage: "juno-task init [--interactive]"
20007
+ usage: "juno-code init [--interactive]"
19867
20008
  },
19868
20009
  {
19869
20010
  name: "start",
19870
20011
  description: "Execute task",
19871
- usage: "juno-task start [--max-iterations N]"
20012
+ usage: "juno-code start [--max-iterations N]"
19872
20013
  },
19873
20014
  {
19874
20015
  name: "logs",
19875
20016
  description: "View application logs",
19876
- usage: "juno-task logs [--interactive]"
20017
+ usage: "juno-code logs [--interactive]"
19877
20018
  },
19878
20019
  {
19879
20020
  name: "session",
19880
20021
  description: "Manage execution sessions",
19881
- usage: "juno-task session <list|info|remove>"
20022
+ usage: "juno-code session <list|info|remove>"
19882
20023
  }
19883
20024
  ]
19884
20025
  },
@@ -19888,22 +20029,22 @@ var QUICK_REFERENCE = [
19888
20029
  {
19889
20030
  name: "claude",
19890
20031
  description: "Execute with Claude subagent",
19891
- usage: 'juno-task claude "task description"'
20032
+ usage: 'juno-code claude "task description"'
19892
20033
  },
19893
20034
  {
19894
20035
  name: "cursor",
19895
20036
  description: "Execute with Cursor subagent",
19896
- usage: 'juno-task cursor "task description"'
20037
+ usage: 'juno-code cursor "task description"'
19897
20038
  },
19898
20039
  {
19899
20040
  name: "codex",
19900
20041
  description: "Execute with Codex subagent",
19901
- usage: 'juno-task codex "task description"'
20042
+ usage: 'juno-code codex "task description"'
19902
20043
  },
19903
20044
  {
19904
20045
  name: "gemini",
19905
20046
  description: "Execute with Gemini subagent",
19906
- usage: 'juno-task gemini "task description"'
20047
+ usage: 'juno-code gemini "task description"'
19907
20048
  }
19908
20049
  ]
19909
20050
  },
@@ -19913,22 +20054,22 @@ var QUICK_REFERENCE = [
19913
20054
  {
19914
20055
  name: "feedback",
19915
20056
  description: "Collect user feedback",
19916
- usage: "juno-task feedback [--interactive]"
20057
+ usage: "juno-code feedback [--interactive]"
19917
20058
  },
19918
20059
  {
19919
20060
  name: "setup-git",
19920
20061
  description: "Initialize Git repository",
19921
- usage: "juno-task setup-git <repository-url>"
20062
+ usage: "juno-code setup-git <repository-url>"
19922
20063
  },
19923
20064
  {
19924
20065
  name: "completion",
19925
20066
  description: "Shell completion setup",
19926
- usage: "juno-task completion <install|uninstall>"
20067
+ usage: "juno-code completion <install|uninstall>"
19927
20068
  },
19928
20069
  {
19929
20070
  name: "help",
19930
20071
  description: "Show help information",
19931
- usage: "juno-task help [--interactive]"
20072
+ usage: "juno-code help [--interactive]"
19932
20073
  }
19933
20074
  ]
19934
20075
  }
@@ -19947,15 +20088,15 @@ var TROUBLESHOOTING_GUIDE = `# Troubleshooting Guide
19947
20088
 
19948
20089
  **Solutions**:
19949
20090
  1. Install MCP server (e.g., roundtable-mcp-server)
19950
- 2. Check configuration: \`juno-task init --interactive\`
20091
+ 2. Check configuration: \`juno-code init --interactive\`
19951
20092
  3. Verify server path: \`which roundtable-mcp-server\`
19952
- 4. Test connection: \`juno-task start --verbose\`
20093
+ 4. Test connection: \`juno-code start --verbose\`
19953
20094
 
19954
20095
  ### \u{1F4C1} File System Issues
19955
20096
 
19956
20097
  **Issue**: "init.md not found"
19957
20098
  **Cause**: No project initialized in current directory
19958
- **Solution**: Run \`juno-task init\` to create project structure
20099
+ **Solution**: Run \`juno-code init\` to create project structure
19959
20100
 
19960
20101
  **Issue**: "Permission denied"
19961
20102
  **Cause**: Insufficient file permissions
@@ -19983,19 +20124,19 @@ var TROUBLESHOOTING_GUIDE = `# Troubleshooting Guide
19983
20124
  Get detailed debug information:
19984
20125
  \`\`\`bash
19985
20126
  # Verbose execution with debug logging
19986
- juno-task start --verbose --log-level debug
20127
+ juno-code start --verbose --log-level debug
19987
20128
 
19988
20129
  # View recent error logs
19989
- juno-task logs --level error --tail 50
20130
+ juno-code logs --level error --tail 50
19990
20131
 
19991
20132
  # Export logs for analysis
19992
- juno-task logs --export debug.json --level debug
20133
+ juno-code logs --export debug.json --level debug
19993
20134
  \`\`\`
19994
20135
 
19995
20136
  ## Getting More Help
19996
20137
 
19997
- 1. **Interactive Help**: \`juno-task help --interactive\`
19998
- 2. **View Logs**: \`juno-task logs --interactive\`
20138
+ 1. **Interactive Help**: \`juno-code help --interactive\`
20139
+ 2. **View Logs**: \`juno-code logs --interactive\`
19999
20140
  3. **Check Configuration**: Review .juno_task/config.json
20000
20141
  4. **Test MCP Connection**: Use --verbose flag with any command
20001
20142
  5. **Report Issues**: Include debug logs when reporting problems
@@ -20004,16 +20145,20 @@ juno-task logs --export debug.json --level debug
20004
20145
 
20005
20146
  Useful for debugging:
20006
20147
  \`\`\`bash
20148
+ export JUNO_CODE_VERBOSE=true
20149
+ export JUNO_CODE_LOG_LEVEL=debug
20150
+ export NO_COLOR=true # Disable colors for log analysis
20151
+
20152
+ # Legacy variables (still supported for backward compatibility)
20007
20153
  export JUNO_TASK_VERBOSE=true
20008
20154
  export JUNO_TASK_LOG_LEVEL=debug
20009
- export NO_COLOR=true # Disable colors for log analysis
20010
20155
  \`\`\`
20011
20156
  `;
20012
20157
  function displayQuickReference(formatter) {
20013
20158
  console.log(formatter.panel(
20014
- "Welcome to juno-task! This quick reference shows the most commonly used commands.",
20159
+ "Welcome to juno-code! This quick reference shows the most commonly used commands.",
20015
20160
  {
20016
- title: "\u{1F680} juno-task Quick Reference",
20161
+ title: "\u{1F680} juno-code Quick Reference",
20017
20162
  border: "rounded",
20018
20163
  style: "success",
20019
20164
  padding: 1
@@ -20030,8 +20175,8 @@ function displayQuickReference(formatter) {
20030
20175
  });
20031
20176
  });
20032
20177
  console.log(formatter.panel(
20033
- `Use ${chalk12__default.default.cyan("juno-task help --interactive")} for comprehensive help with search and tutorials.
20034
- Use ${chalk12__default.default.cyan("juno-task <command> --help")} for detailed command information.`,
20178
+ `Use ${chalk12__default.default.cyan("juno-code help --interactive")} for comprehensive help with search and tutorials.
20179
+ Use ${chalk12__default.default.cyan("juno-code <command> --help")} for detailed command information.`,
20035
20180
  {
20036
20181
  title: "\u{1F4A1} Next Steps",
20037
20182
  border: "rounded",
@@ -20082,8 +20227,8 @@ function listHelpTopics() {
20082
20227
  console.log(`${icon} ${chalk12__default.default.cyan(topic.id.padEnd(20))} ${topic.title}`);
20083
20228
  });
20084
20229
  console.log(chalk12__default.default.yellow(`
20085
- Use ${chalk12__default.default.cyan("juno-task help --topic <id>")} to view a specific topic`));
20086
- console.log(chalk12__default.default.yellow(`Use ${chalk12__default.default.cyan("juno-task help --interactive")} for full interactive help`));
20230
+ Use ${chalk12__default.default.cyan("juno-code help --topic <id>")} to view a specific topic`));
20231
+ console.log(chalk12__default.default.yellow(`Use ${chalk12__default.default.cyan("juno-code help --interactive")} for full interactive help`));
20087
20232
  }
20088
20233
  function searchHelpTopics(searchTerm) {
20089
20234
  const matchingTopics = [
@@ -20103,7 +20248,7 @@ function searchHelpTopics(searchTerm) {
20103
20248
  console.log(chalk12__default.default.cyan(`\u2022 ${topicId}`));
20104
20249
  });
20105
20250
  console.log(chalk12__default.default.yellow(`
20106
- Use ${chalk12__default.default.cyan("juno-task help --topic <id>")} to view details`));
20251
+ Use ${chalk12__default.default.cyan("juno-code help --topic <id>")} to view details`));
20107
20252
  }
20108
20253
  async function helpCommandHandler(args, options, command) {
20109
20254
  try {
@@ -20157,12 +20302,12 @@ function configureHelpCommand(program) {
20157
20302
  await helpCommandHandler([], options);
20158
20303
  }).addHelpText("after", `
20159
20304
  Examples:
20160
- $ juno-task help # Quick reference guide
20161
- $ juno-task help --interactive # Interactive help system
20162
- $ juno-task help --topic quickstart # Specific topic
20163
- $ juno-task help --search "mcp" # Search topics
20164
- $ juno-task help --list # List all topics
20165
- $ juno-task help --troubleshooting # Troubleshooting guide
20305
+ $ juno-code help # Quick reference guide
20306
+ $ juno-code help --interactive # Interactive help system
20307
+ $ juno-code help --topic quickstart # Specific topic
20308
+ $ juno-code help --search "mcp" # Search topics
20309
+ $ juno-code help --list # List all topics
20310
+ $ juno-code help --troubleshooting # Troubleshooting guide
20166
20311
 
20167
20312
  Interactive Help Features:
20168
20313
  - Browse help by category
@@ -20191,7 +20336,7 @@ Navigation (Interactive Mode):
20191
20336
  Notes:
20192
20337
  - Interactive help provides the most comprehensive assistance
20193
20338
  - Use --verbose with any command for detailed output
20194
- - Check logs with 'juno-task logs' for debugging
20339
+ - Check logs with 'juno-code logs' for debugging
20195
20340
  - All help content is searchable and cross-referenced
20196
20341
  `);
20197
20342
  }
@@ -20207,7 +20352,7 @@ var ProfileDisplayFormatter = class {
20207
20352
  formatProfileList(profiles, activeProfile) {
20208
20353
  if (profiles.length === 0) {
20209
20354
  console.log(chalk12__default.default.yellow("No configuration profiles found."));
20210
- console.log(chalk12__default.default.gray('\nUse "juno-task config create <name>" to create your first profile.'));
20355
+ console.log(chalk12__default.default.gray('\nUse "juno-code config create <name>" to create your first profile.'));
20211
20356
  return;
20212
20357
  }
20213
20358
  console.log(chalk12__default.default.blue.bold(`
@@ -20301,7 +20446,7 @@ async function listProfiles(options = {}) {
20301
20446
  const formatter = new ProfileDisplayFormatter(options.verbose);
20302
20447
  formatter.formatProfileList(profiles, activeProfile);
20303
20448
  if (options.verbose && profiles.length > 0) {
20304
- console.log(chalk12__default.default.gray('\nUse "juno-task config show <profile>" for detailed information.'));
20449
+ console.log(chalk12__default.default.gray('\nUse "juno-code config show <profile>" for detailed information.'));
20305
20450
  }
20306
20451
  } catch (error) {
20307
20452
  const formatter = new ProfileDisplayFormatter();
@@ -20326,7 +20471,7 @@ async function showProfile(profileName, options = {}) {
20326
20471
  const formatter = new ProfileDisplayFormatter();
20327
20472
  if (error instanceof ProfileNotFoundError) {
20328
20473
  formatter.formatError(`Profile '${profileName}' not found.`);
20329
- console.log(chalk12__default.default.gray('\nUse "juno-task config list" to see available profiles.'));
20474
+ console.log(chalk12__default.default.gray('\nUse "juno-code config list" to see available profiles.'));
20330
20475
  } else {
20331
20476
  formatter.formatError(`Failed to show profile: ${error}`);
20332
20477
  }
@@ -20344,7 +20489,7 @@ async function setActiveProfile(profileName) {
20344
20489
  const formatter = new ProfileDisplayFormatter();
20345
20490
  if (error instanceof ProfileNotFoundError) {
20346
20491
  formatter.formatError(`Profile '${profileName}' not found.`);
20347
- console.log(chalk12__default.default.gray('\nUse "juno-task config list" to see available profiles.'));
20492
+ console.log(chalk12__default.default.gray('\nUse "juno-code config list" to see available profiles.'));
20348
20493
  } else {
20349
20494
  formatter.formatError(`Failed to set active profile: ${error}`);
20350
20495
  }
@@ -20373,13 +20518,13 @@ async function createProfile(profileName, options = {}) {
20373
20518
  formatter.formatSuccess(`Profile '${profileName}' created successfully`);
20374
20519
  if (options.interactive) {
20375
20520
  console.log(chalk12__default.default.gray("\nYou can now configure this profile using:"));
20376
- console.log(chalk12__default.default.cyan(` juno-task config edit ${profileName}`));
20521
+ console.log(chalk12__default.default.cyan(` juno-code config edit ${profileName}`));
20377
20522
  }
20378
20523
  } catch (error) {
20379
20524
  const formatter = new ProfileDisplayFormatter();
20380
20525
  if (error instanceof ProfileExistsError) {
20381
20526
  formatter.formatError(`Profile '${profileName}' already exists.`);
20382
- console.log(chalk12__default.default.gray('Use "juno-task config show <profile>" to view existing profile.'));
20527
+ console.log(chalk12__default.default.gray('Use "juno-code config show <profile>" to view existing profile.'));
20383
20528
  } else if (error instanceof CircularInheritanceError) {
20384
20529
  formatter.formatError(`Circular inheritance detected: ${error.message}`);
20385
20530
  } else {
@@ -20473,12 +20618,12 @@ function setupConfigCommand(program) {
20473
20618
  configCmd.on("--help", () => {
20474
20619
  console.log("");
20475
20620
  console.log("Examples:");
20476
- console.log(" $ juno-task config list # List all profiles");
20477
- console.log(" $ juno-task config show development # Show development profile");
20478
- console.log(" $ juno-task config set production # Set active profile");
20479
- console.log(' $ juno-task config create dev --description "Development settings"');
20480
- console.log(" $ juno-task config export prod prod.json # Export to file");
20481
- console.log(" $ juno-task config import backup.json # Import from file");
20621
+ console.log(" $ juno-code config list # List all profiles");
20622
+ console.log(" $ juno-code config show development # Show development profile");
20623
+ console.log(" $ juno-code config set production # Set active profile");
20624
+ console.log(' $ juno-code config create dev --description "Development settings"');
20625
+ console.log(" $ juno-code config export prod prod.json # Export to file");
20626
+ console.log(" $ juno-code config import backup.json # Import from file");
20482
20627
  console.log("");
20483
20628
  });
20484
20629
  }
@@ -20576,15 +20721,15 @@ var ShellDetector = class _ShellDetector {
20576
20721
  switch (shell) {
20577
20722
  case "bash":
20578
20723
  if (process.platform === "darwin") {
20579
- return path__namespace.join("/usr/local/etc/bash_completion.d", "juno-ts-task");
20724
+ return path__namespace.join("/usr/local/etc/bash_completion.d", "juno-code");
20580
20725
  }
20581
- return path__namespace.join(homeDir, ".local", "share", "bash-completion", "completions", "juno-ts-task");
20726
+ return path__namespace.join(homeDir, ".local", "share", "bash-completion", "completions", "juno-code");
20582
20727
  case "zsh":
20583
- return path__namespace.join(homeDir, ".local", "share", "zsh", "site-functions", "_juno-ts-task");
20728
+ return path__namespace.join(homeDir, ".local", "share", "zsh", "site-functions", "_juno-code");
20584
20729
  case "fish":
20585
- return path__namespace.join(homeDir, ".config", "fish", "completions", "juno-ts-task.fish");
20730
+ return path__namespace.join(homeDir, ".config", "fish", "completions", "juno-code.fish");
20586
20731
  case "powershell":
20587
- return path__namespace.join(homeDir, ".config", "powershell", "completions", "juno-ts-task.ps1");
20732
+ return path__namespace.join(homeDir, ".config", "powershell", "completions", "juno-code.ps1");
20588
20733
  default:
20589
20734
  throw new Error(`Unsupported shell: ${shell}`);
20590
20735
  }
@@ -20606,17 +20751,17 @@ var ShellDetector = class _ShellDetector {
20606
20751
  getSourceCommand(shell, completionPath) {
20607
20752
  switch (shell) {
20608
20753
  case "bash":
20609
- return `# juno-ts-task completion
20754
+ return `# juno-code completion
20610
20755
  [ -f "${completionPath}" ] && source "${completionPath}"`;
20611
20756
  case "zsh":
20612
20757
  const zshDir = path__namespace.dirname(completionPath);
20613
- return `# juno-ts-task completion
20758
+ return `# juno-code completion
20614
20759
  fpath=("${zshDir}" $fpath)
20615
20760
  autoload -U compinit && compinit`;
20616
20761
  case "fish":
20617
- return `# juno-ts-task completion (automatically loaded)`;
20762
+ return `# juno-code completion (automatically loaded)`;
20618
20763
  case "powershell":
20619
- return `# juno-ts-task completion
20764
+ return `# juno-code completion
20620
20765
  . "${completionPath}"`;
20621
20766
  default:
20622
20767
  throw new Error(`Unsupported shell: ${shell}`);
@@ -20631,7 +20776,7 @@ autoload -U compinit && compinit`;
20631
20776
  return false;
20632
20777
  }
20633
20778
  const content = await fs__default.default.readFile(configPath, "utf-8");
20634
- return content.includes("juno-ts-task completion");
20779
+ return content.includes("juno-code completion");
20635
20780
  } catch {
20636
20781
  return false;
20637
20782
  }
@@ -20890,7 +21035,7 @@ var CompletionInstaller = class {
20890
21035
  }
20891
21036
  await this.shellDetector.ensureCompletionDirectory(shell);
20892
21037
  await this.shellDetector.ensureConfigDirectory(shell);
20893
- const script = this.generateEnhancedCompletion(shell, "juno-ts-task");
21038
+ const script = this.generateEnhancedCompletion(shell, "juno-code");
20894
21039
  const completionPath = this.shellDetector.getCompletionPath(shell);
20895
21040
  await fs__default.default.writeFile(completionPath, script, "utf-8");
20896
21041
  const configPath = this.shellDetector.getConfigPath(shell);
@@ -20979,7 +21124,7 @@ ${sourceCommand}
20979
21124
  return `#!/bin/bash
20980
21125
 
20981
21126
  # ${commandName} enhanced completion script for bash
20982
- # Generated by juno-task-ts CLI with context-aware features
21127
+ # Generated by juno-code CLI with context-aware features
20983
21128
 
20984
21129
  _${commandName}_completion() {
20985
21130
  local cur prev opts base
@@ -21173,7 +21318,7 @@ complete -F _${commandName}_completion ${commandName}
21173
21318
  return `#compdef ${commandName}
21174
21319
 
21175
21320
  # ${commandName} enhanced completion script for zsh
21176
- # Generated by juno-task-ts CLI with context-aware features
21321
+ # Generated by juno-code CLI with context-aware features
21177
21322
 
21178
21323
  _${commandName}() {
21179
21324
  local context state line
@@ -21328,7 +21473,7 @@ _${commandName} "$@"
21328
21473
  */
21329
21474
  generateEnhancedFishCompletion(commandName) {
21330
21475
  return `# ${commandName} enhanced completion script for fish
21331
- # Generated by juno-task-ts CLI with context-aware features
21476
+ # Generated by juno-code CLI with context-aware features
21332
21477
 
21333
21478
  # Context-aware model completion
21334
21479
  function __${commandName}_complete_models
@@ -21584,7 +21729,7 @@ var CompletionCommand = class {
21584
21729
  const uninstalledShells = completionStatus.filter((status) => !status.isInstalled && !status.error).map((status) => status.shell);
21585
21730
  if (uninstalledShells.length > 0) {
21586
21731
  console.log(chalk12__default.default.blue("\n\u{1F4A1} Suggestions:"));
21587
- console.log(chalk12__default.default.white(` Install completion: juno-ts-task completion install ${uninstalledShells.join(" ")}`));
21732
+ console.log(chalk12__default.default.white(` Install completion: juno-code completion install ${uninstalledShells.join(" ")}`));
21588
21733
  }
21589
21734
  const currentShell = this.shellDetector.getCurrentShell();
21590
21735
  if (currentShell) {
@@ -21595,7 +21740,7 @@ var CompletionCommand = class {
21595
21740
  } else {
21596
21741
  console.log(chalk12__default.default.yellow(`
21597
21742
  \u{1F3AF} Current shell (${currentShell}): Completion not installed`));
21598
- console.log(chalk12__default.default.white(` Install: juno-ts-task completion install ${currentShell}`));
21743
+ console.log(chalk12__default.default.white(` Install: juno-code completion install ${currentShell}`));
21599
21744
  }
21600
21745
  }
21601
21746
  } catch (error) {
@@ -21679,7 +21824,7 @@ var CompletionCommand = class {
21679
21824
  console.log(chalk12__default.default.white("\u2022 Reload PowerShell"));
21680
21825
  break;
21681
21826
  }
21682
- console.log(chalk12__default.default.white("\u2022 Test: juno-ts-task <TAB>"));
21827
+ console.log(chalk12__default.default.white("\u2022 Test: juno-code <TAB>"));
21683
21828
  }
21684
21829
  };
21685
21830
  var completion_default = CompletionCommand;
@@ -21745,7 +21890,7 @@ function setupMainCommand(program) {
21745
21890
  const cwd2 = process.cwd();
21746
21891
  const junoTaskDir = path20.join(cwd2, ".juno_task");
21747
21892
  if (await fs18.pathExists(junoTaskDir)) {
21748
- console.log(chalk12__default.default.blue.bold("\u{1F3AF} Juno Task - Auto-detected Initialized Project\n"));
21893
+ console.log(chalk12__default.default.blue.bold("\u{1F3AF} Juno Code - Auto-detected Initialized Project\n"));
21749
21894
  try {
21750
21895
  const { loadConfig: loadConfig2 } = await Promise.resolve().then(() => (init_config(), config_exports));
21751
21896
  const config = await loadConfig2({
@@ -21778,13 +21923,13 @@ function setupMainCommand(program) {
21778
21923
  }
21779
21924
  }
21780
21925
  if (!globalOptions.subagent && !options.prompt && !options.interactive && !options.interactivePrompt) {
21781
- console.log(chalk12__default.default.blue.bold("\u{1F3AF} Juno Task - TypeScript CLI for AI Subagent Orchestration\n"));
21926
+ console.log(chalk12__default.default.blue.bold("\u{1F3AF} Juno Code - TypeScript CLI for AI Subagent Orchestration\n"));
21782
21927
  console.log(chalk12__default.default.white("To get started:"));
21783
- console.log(chalk12__default.default.gray(" juno-task init # Initialize new project"));
21784
- console.log(chalk12__default.default.gray(" juno-task start # Start execution"));
21785
- console.log(chalk12__default.default.gray(" juno-task test --generate --run # AI-powered testing"));
21786
- console.log(chalk12__default.default.gray(' juno-task -s claude -p "prompt" # Quick execution with Claude'));
21787
- console.log(chalk12__default.default.gray(" juno-task --help # Show all commands"));
21928
+ console.log(chalk12__default.default.gray(" juno-code init # Initialize new project"));
21929
+ console.log(chalk12__default.default.gray(" juno-code start # Start execution"));
21930
+ console.log(chalk12__default.default.gray(" juno-code test --generate --run # AI-powered testing"));
21931
+ console.log(chalk12__default.default.gray(' juno-code -s claude -p "prompt" # Quick execution with Claude'));
21932
+ console.log(chalk12__default.default.gray(" juno-code --help # Show all commands"));
21788
21933
  console.log("");
21789
21934
  return;
21790
21935
  }
@@ -21798,7 +21943,7 @@ function setupMainCommand(program) {
21798
21943
  function displayBanner(verbose = false) {
21799
21944
  if (verbose) {
21800
21945
  console.log(chalk12__default.default.blue.bold(`
21801
- \u{1F3AF} Juno Task v${VERSION} - TypeScript CLI`));
21946
+ \u{1F3AF} Juno Code v${VERSION} - TypeScript CLI`));
21802
21947
  console.log(chalk12__default.default.gray(` Node.js ${process.version} on ${process.platform}`));
21803
21948
  console.log(chalk12__default.default.gray(` Working directory: ${process.cwd()}`));
21804
21949
  console.log("");
@@ -21831,7 +21976,22 @@ function setupAliases(program) {
21831
21976
  }
21832
21977
  }
21833
21978
  function configureEnvironment() {
21834
- const envVars = [
21979
+ const newEnvVars = [
21980
+ "JUNO_CODE_SUBAGENT",
21981
+ "JUNO_CODE_PROMPT",
21982
+ "JUNO_CODE_CWD",
21983
+ "JUNO_CODE_MAX_ITERATIONS",
21984
+ "JUNO_CODE_MODEL",
21985
+ "JUNO_CODE_LOG_FILE",
21986
+ "JUNO_CODE_VERBOSE",
21987
+ "JUNO_CODE_QUIET",
21988
+ "JUNO_CODE_CONFIG",
21989
+ "JUNO_CODE_MCP_SERVER_PATH",
21990
+ "JUNO_CODE_MCP_TIMEOUT",
21991
+ "JUNO_CODE_NO_COLOR",
21992
+ "JUNO_CODE_ENABLE_FEEDBACK"
21993
+ ];
21994
+ const legacyEnvVars = [
21835
21995
  "JUNO_TASK_SUBAGENT",
21836
21996
  "JUNO_TASK_PROMPT",
21837
21997
  "JUNO_TASK_CWD",
@@ -21846,10 +22006,10 @@ function configureEnvironment() {
21846
22006
  "JUNO_TASK_NO_COLOR",
21847
22007
  "JUNO_TASK_ENABLE_FEEDBACK"
21848
22008
  ];
21849
- for (const envVar of envVars) {
22009
+ const processEnvVar = (envVar, prefix) => {
21850
22010
  const value = process.env[envVar];
21851
- if (value && !process.argv.includes(`--${envVar.toLowerCase().replace("juno_task_", "").replace(/_/g, "-")}`)) {
21852
- const option = envVar.toLowerCase().replace("juno_task_", "").replace(/_/g, "-");
22011
+ if (value && !process.argv.includes(`--${envVar.toLowerCase().replace(prefix, "").replace(/_/g, "-")}`)) {
22012
+ const option = envVar.toLowerCase().replace(prefix, "").replace(/_/g, "-");
21853
22013
  switch (option) {
21854
22014
  case "verbose":
21855
22015
  case "quiet":
@@ -21862,6 +22022,21 @@ function configureEnvironment() {
21862
22022
  default:
21863
22023
  process.argv.push(`--${option}`, value);
21864
22024
  }
22025
+ return true;
22026
+ }
22027
+ return false;
22028
+ };
22029
+ const processedOptions = /* @__PURE__ */ new Set();
22030
+ for (const envVar of newEnvVars) {
22031
+ if (processEnvVar(envVar, "juno_code_")) {
22032
+ const option = envVar.toLowerCase().replace("juno_code_", "").replace(/_/g, "-");
22033
+ processedOptions.add(option);
22034
+ }
22035
+ }
22036
+ for (const envVar of legacyEnvVars) {
22037
+ const option = envVar.toLowerCase().replace("juno_task_", "").replace(/_/g, "-");
22038
+ if (!processedOptions.has(option)) {
22039
+ processEnvVar(envVar, "juno_task_");
21865
22040
  }
21866
22041
  }
21867
22042
  if (!process.argv.includes("--enable-feedback")) {
@@ -21880,7 +22055,7 @@ function configureEnvironment() {
21880
22055
  async function main() {
21881
22056
  const program = new commander.Command();
21882
22057
  configureEnvironment();
21883
- program.name("juno-task").description("TypeScript implementation of juno-task CLI tool for AI subagent orchestration").version(VERSION, "-V, --version", "Display version information").helpOption("-h, --help", "Display help information");
22058
+ program.name("juno-code").description("TypeScript implementation of juno-code CLI tool for AI subagent orchestration").version(VERSION, "-V, --version", "Display version information").helpOption("-h, --help", "Display help information");
21884
22059
  setupGlobalOptions(program);
21885
22060
  const isVerbose = process.argv.includes("--verbose") || process.argv.includes("-v");
21886
22061
  displayBanner(isVerbose);
@@ -21919,54 +22094,58 @@ async function main() {
21919
22094
  setupAliases(program);
21920
22095
  setupMainCommand(program);
21921
22096
  program.addHelpText("beforeAll", `
21922
- ${chalk12__default.default.blue.bold("\u{1F3AF} Juno Task")} - TypeScript CLI for AI Subagent Orchestration
22097
+ ${chalk12__default.default.blue.bold("\u{1F3AF} Juno Code")} - TypeScript CLI for AI Subagent Orchestration
21923
22098
 
21924
22099
  `);
21925
22100
  program.addHelpText("afterAll", `
21926
22101
  ${chalk12__default.default.blue.bold("Examples:")}
21927
22102
  ${chalk12__default.default.gray("# Initialize new project")}
21928
- juno-task init
22103
+ juno-code init
21929
22104
 
21930
22105
  ${chalk12__default.default.gray("# Start execution using .juno_task/init.md")}
21931
- juno-task start
22106
+ juno-code start
21932
22107
 
21933
22108
  ${chalk12__default.default.gray("# AI-powered testing")}
21934
- juno-task test --generate --run
21935
- juno-task test src/utils.ts --subagent claude
21936
- juno-task test --analyze --coverage
22109
+ juno-code test --generate --run
22110
+ juno-code test src/utils.ts --subagent claude
22111
+ juno-code test --analyze --coverage
21937
22112
 
21938
22113
  ${chalk12__default.default.gray("# Quick execution with Claude")}
21939
- juno-task claude "Analyze this codebase and suggest improvements"
22114
+ juno-code claude "Analyze this codebase and suggest improvements"
21940
22115
 
21941
22116
  ${chalk12__default.default.gray("# Interactive project setup")}
21942
- juno-task init --interactive
22117
+ juno-code init --interactive
21943
22118
 
21944
22119
  ${chalk12__default.default.gray("# Manage sessions")}
21945
- juno-task session list
21946
- juno-task session info abc123
22120
+ juno-code session list
22121
+ juno-code session info abc123
21947
22122
 
21948
22123
  ${chalk12__default.default.gray("# Enable feedback collection globally")}
21949
- juno-task --enable-feedback start
22124
+ juno-code --enable-feedback start
21950
22125
 
21951
22126
  ${chalk12__default.default.gray("# Collect feedback")}
21952
- juno-task feedback --interactive
22127
+ juno-code feedback --interactive
21953
22128
 
21954
22129
  ${chalk12__default.default.gray("# Manage configuration profiles")}
21955
- juno-task config list
21956
- juno-task config create development
22130
+ juno-code config list
22131
+ juno-code config create development
21957
22132
 
21958
22133
  ${chalk12__default.default.gray("# Setup Git repository")}
21959
- juno-task setup-git https://github.com/owner/repo
22134
+ juno-code setup-git https://github.com/owner/repo
21960
22135
 
21961
22136
  ${chalk12__default.default.blue.bold("Environment Variables:")}
21962
- JUNO_TASK_SUBAGENT Default subagent (claude, cursor, codex, gemini)
21963
- JUNO_TASK_MCP_SERVER_PATH Path to MCP server executable
21964
- JUNO_TASK_CONFIG Configuration file path
21965
- JUNO_TASK_VERBOSE Enable verbose output (true/false)
21966
- JUNO_TASK_ENABLE_FEEDBACK Enable concurrent feedback collection (true/false)
22137
+ JUNO_CODE_SUBAGENT Default subagent (claude, cursor, codex, gemini)
22138
+ JUNO_CODE_MCP_SERVER_PATH Path to MCP server executable
22139
+ JUNO_CODE_CONFIG Configuration file path
22140
+ JUNO_CODE_VERBOSE Enable verbose output (true/false)
22141
+ JUNO_CODE_ENABLE_FEEDBACK Enable concurrent feedback collection (true/false)
22142
+ JUNO_CODE_MCP_TIMEOUT MCP server timeout in milliseconds
21967
22143
  JUNO_INTERACTIVE_FEEDBACK_MODE Enable interactive feedback mode (true/false)
21968
22144
  NO_COLOR Disable colored output (standard)
21969
22145
 
22146
+ ${chalk12__default.default.gray("Legacy variables (backward compatibility):")}
22147
+ JUNO_TASK_* All JUNO_TASK_* variables still supported
22148
+
21970
22149
  ${chalk12__default.default.blue.bold("Configuration:")}
21971
22150
  Configuration can be specified via:
21972
22151
  1. Command line arguments (highest priority)
@@ -21975,8 +22154,8 @@ ${chalk12__default.default.blue.bold("Configuration:")}
21975
22154
  4. Built-in defaults (lowest priority)
21976
22155
 
21977
22156
  ${chalk12__default.default.blue.bold("Support:")}
21978
- Documentation: https://github.com/owner/juno-task-ts#readme
21979
- Issues: https://github.com/owner/juno-task-ts/issues
22157
+ Documentation: https://github.com/owner/juno-code#readme
22158
+ Issues: https://github.com/owner/juno-code/issues
21980
22159
  License: MIT
21981
22160
 
21982
22161
  `);