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.mjs CHANGED
@@ -121,7 +121,7 @@ var init_types = __esm({
121
121
  if (availableCommands.length > 0) {
122
122
  this.suggestions = [
123
123
  `Available commands: ${availableCommands.join(", ")}`,
124
- `Use 'juno-task --help' for usage information`
124
+ `Use 'juno-code --help' for usage information`
125
125
  ];
126
126
  }
127
127
  }
@@ -155,7 +155,7 @@ var init_types = __esm({
155
155
  this.suggestions = [
156
156
  "Check session directory permissions",
157
157
  "Verify sufficient disk space",
158
- "Use juno-task session clean to remove old sessions"
158
+ "Use juno-code session clean to remove old sessions"
159
159
  ];
160
160
  }
161
161
  };
@@ -171,7 +171,35 @@ var init_types = __esm({
171
171
  }
172
172
  };
173
173
  ENVIRONMENT_MAPPINGS = {
174
- // Core options
174
+ // Core options (new JUNO_CODE_* names)
175
+ JUNO_CODE_SUBAGENT: "subagent",
176
+ JUNO_CODE_PROMPT: "prompt",
177
+ JUNO_CODE_CWD: "cwd",
178
+ JUNO_CODE_MAX_ITERATIONS: "maxIterations",
179
+ JUNO_CODE_MODEL: "model",
180
+ JUNO_CODE_LOG_FILE: "logFile",
181
+ JUNO_CODE_VERBOSE: "verbose",
182
+ JUNO_CODE_QUIET: "quiet",
183
+ JUNO_CODE_INTERACTIVE: "interactive",
184
+ JUNO_CODE_CONFIG: "config",
185
+ // MCP options (new JUNO_CODE_* names)
186
+ JUNO_CODE_MCP_SERVER_PATH: "mcpServerPath",
187
+ JUNO_CODE_MCP_TIMEOUT: "mcpTimeout",
188
+ JUNO_CODE_MCP_RETRIES: "mcpRetries",
189
+ // Session options (new JUNO_CODE_* names)
190
+ JUNO_CODE_SESSION_DIR: "sessionDir",
191
+ JUNO_CODE_LOG_LEVEL: "logLevel",
192
+ // Template options (new JUNO_CODE_* names)
193
+ JUNO_CODE_TEMPLATE: "template",
194
+ JUNO_CODE_FORCE: "force",
195
+ // Git options (new JUNO_CODE_* names)
196
+ JUNO_CODE_GIT_URL: "gitUrl",
197
+ // UI options (new JUNO_CODE_* names)
198
+ JUNO_CODE_NO_COLOR: "noColor",
199
+ JUNO_CODE_HEADLESS: "headless",
200
+ // Feedback options (new JUNO_CODE_* names)
201
+ JUNO_CODE_ENABLE_FEEDBACK: "enableFeedback",
202
+ // Legacy JUNO_TASK_* names for backward compatibility
175
203
  JUNO_TASK_SUBAGENT: "subagent",
176
204
  JUNO_TASK_PROMPT: "prompt",
177
205
  JUNO_TASK_CWD: "cwd",
@@ -182,23 +210,18 @@ var init_types = __esm({
182
210
  JUNO_TASK_QUIET: "quiet",
183
211
  JUNO_TASK_INTERACTIVE: "interactive",
184
212
  JUNO_TASK_CONFIG: "config",
185
- // MCP options
186
213
  JUNO_TASK_MCP_SERVER_PATH: "mcpServerPath",
187
214
  JUNO_TASK_MCP_TIMEOUT: "mcpTimeout",
188
215
  JUNO_TASK_MCP_RETRIES: "mcpRetries",
189
- // Session options
190
216
  JUNO_TASK_SESSION_DIR: "sessionDir",
191
217
  JUNO_TASK_LOG_LEVEL: "logLevel",
192
- // Template options
193
218
  JUNO_TASK_TEMPLATE: "template",
194
219
  JUNO_TASK_FORCE: "force",
195
- // Git options
196
220
  JUNO_TASK_GIT_URL: "gitUrl",
197
- // UI options
198
221
  JUNO_TASK_NO_COLOR: "noColor",
199
222
  JUNO_TASK_HEADLESS: "headless",
200
- // Feedback options
201
223
  JUNO_TASK_ENABLE_FEEDBACK: "enableFeedback",
224
+ // Special aliases
202
225
  JUNO_INTERACTIVE_FEEDBACK_MODE: "enableFeedback"
203
226
  // Alias for enableFeedback
204
227
  };
@@ -225,7 +248,7 @@ var init_types = __esm({
225
248
  "cursor-agent": "cursor"
226
249
  };
227
250
  COMMAND_CATEGORIES = {
228
- EXECUTION: ["juno-task", "start"],
251
+ EXECUTION: ["juno-code", "start"],
229
252
  PROJECT: ["init", "setup-git"],
230
253
  TESTING: ["test"],
231
254
  SESSION: ["session"],
@@ -244,6 +267,28 @@ var init_types = __esm({
244
267
  };
245
268
  }
246
269
  });
270
+
271
+ // src/templates/default-hooks.ts
272
+ function getDefaultHooks() {
273
+ return JSON.parse(JSON.stringify(DEFAULT_HOOKS));
274
+ }
275
+ var DEFAULT_HOOKS;
276
+ var init_default_hooks = __esm({
277
+ "src/templates/default-hooks.ts"() {
278
+ init_version();
279
+ DEFAULT_HOOKS = {
280
+ START_ITERATION: {
281
+ commands: [
282
+ // Monitor CLAUDE.md file size
283
+ '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',
284
+ // Monitor AGENTS.md file size
285
+ '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',
286
+ "./.juno_task/scripts/cleanup_feedback.sh"
287
+ ]
288
+ }
289
+ };
290
+ }
291
+ });
247
292
  function createProfileManager(configDir) {
248
293
  return new ProfileManager(configDir);
249
294
  }
@@ -664,6 +709,7 @@ __export(config_exports, {
664
709
  DEFAULT_CONFIG: () => DEFAULT_CONFIG,
665
710
  ENV_VAR_MAPPING: () => ENV_VAR_MAPPING,
666
711
  JunoTaskConfigSchema: () => JunoTaskConfigSchema,
712
+ LEGACY_ENV_VAR_MAPPING: () => LEGACY_ENV_VAR_MAPPING,
667
713
  ProfileError: () => ProfileError,
668
714
  ProfileExistsError: () => ProfileExistsError,
669
715
  ProfileNotFoundError: () => ProfileNotFoundError,
@@ -695,6 +741,12 @@ function loadConfigFromEnv() {
695
741
  config[configKey] = parseEnvValue(value);
696
742
  }
697
743
  }
744
+ for (const [envVar, configKey] of Object.entries(LEGACY_ENV_VAR_MAPPING)) {
745
+ const value = process.env[envVar];
746
+ if (value !== void 0 && config[configKey] === void 0) {
747
+ config[configKey] = parseEnvValue(value);
748
+ }
749
+ }
698
750
  return config;
699
751
  }
700
752
  async function loadJsonConfig(filePath) {
@@ -718,7 +770,7 @@ async function loadPackageJsonConfig(filePath) {
718
770
  try {
719
771
  const content = await promises.readFile(filePath, "utf-8");
720
772
  const packageJson = JSON.parse(content);
721
- return packageJson.junoTask || {};
773
+ return packageJson.junoCode || {};
722
774
  } catch (error) {
723
775
  throw new Error(`Failed to load package.json config from ${filePath}: ${error}`);
724
776
  }
@@ -805,12 +857,7 @@ async function ensureHooksConfig(baseDir) {
805
857
  const configPath = path.join(configDir, "config.json");
806
858
  await fs.ensureDir(configDir);
807
859
  const configExists = await fs.pathExists(configPath);
808
- const allHookTypes = {
809
- START_RUN: { commands: [] },
810
- START_ITERATION: { commands: [] },
811
- END_ITERATION: { commands: [] },
812
- END_RUN: { commands: [] }
813
- };
860
+ const allHookTypes = getDefaultHooks();
814
861
  if (!configExists) {
815
862
  const defaultConfig = {
816
863
  ...DEFAULT_CONFIG,
@@ -852,12 +899,35 @@ async function loadConfig(options = {}) {
852
899
  const mergedConfig = loader.merge();
853
900
  return validateConfig(mergedConfig);
854
901
  }
855
- var ENV_VAR_MAPPING, SubagentTypeSchema, LogLevelSchema, HookTypeSchema, HookSchema, HooksSchema, JunoTaskConfigSchema, DEFAULT_CONFIG, GLOBAL_CONFIG_FILE_NAMES, PROJECT_CONFIG_FILE, ConfigLoader;
902
+ var ENV_VAR_MAPPING, LEGACY_ENV_VAR_MAPPING, SubagentTypeSchema, LogLevelSchema, HookTypeSchema, HookSchema, HooksSchema, JunoTaskConfigSchema, DEFAULT_CONFIG, GLOBAL_CONFIG_FILE_NAMES, PROJECT_CONFIG_FILE, ConfigLoader;
856
903
  var init_config = __esm({
857
904
  "src/core/config.ts"() {
858
905
  init_version();
906
+ init_default_hooks();
859
907
  init_profiles();
860
908
  ENV_VAR_MAPPING = {
909
+ // Core settings
910
+ JUNO_CODE_DEFAULT_SUBAGENT: "defaultSubagent",
911
+ JUNO_CODE_DEFAULT_MAX_ITERATIONS: "defaultMaxIterations",
912
+ JUNO_CODE_DEFAULT_MODEL: "defaultModel",
913
+ // Logging settings
914
+ JUNO_CODE_LOG_LEVEL: "logLevel",
915
+ JUNO_CODE_LOG_FILE: "logFile",
916
+ JUNO_CODE_VERBOSE: "verbose",
917
+ JUNO_CODE_QUIET: "quiet",
918
+ // MCP settings
919
+ JUNO_CODE_MCP_TIMEOUT: "mcpTimeout",
920
+ JUNO_CODE_MCP_RETRIES: "mcpRetries",
921
+ JUNO_CODE_MCP_SERVER_PATH: "mcpServerPath",
922
+ JUNO_CODE_MCP_SERVER_NAME: "mcpServerName",
923
+ // TUI settings
924
+ JUNO_CODE_INTERACTIVE: "interactive",
925
+ JUNO_CODE_HEADLESS_MODE: "headlessMode",
926
+ // Paths
927
+ JUNO_CODE_WORKING_DIRECTORY: "workingDirectory",
928
+ JUNO_CODE_SESSION_DIRECTORY: "sessionDirectory"
929
+ };
930
+ LEGACY_ENV_VAR_MAPPING = {
861
931
  // Core settings
862
932
  JUNO_TASK_DEFAULT_SUBAGENT: "defaultSubagent",
863
933
  JUNO_TASK_DEFAULT_MAX_ITERATIONS: "defaultMaxIterations",
@@ -930,16 +1000,16 @@ var init_config = __esm({
930
1000
  // Paths
931
1001
  workingDirectory: process.cwd(),
932
1002
  sessionDirectory: path.join(process.cwd(), ".juno_task"),
933
- // Hooks configuration
934
- hooks: {}
1003
+ // Hooks configuration - populated with default hooks template
1004
+ hooks: getDefaultHooks()
935
1005
  };
936
1006
  GLOBAL_CONFIG_FILE_NAMES = [
937
- "juno-task.config.json",
938
- "juno-task.config.js",
939
- ".juno-taskrc.json",
940
- ".juno-taskrc.js",
1007
+ "juno-code.config.json",
1008
+ "juno-code.config.js",
1009
+ ".juno-coderc.json",
1010
+ ".juno-coderc.js",
941
1011
  "package.json"
942
- // Will look for 'junoTask' field
1012
+ // Will look for 'junoCode' field
943
1013
  ];
944
1014
  PROJECT_CONFIG_FILE = ".juno_task/config.json";
945
1015
  ConfigLoader = class {
@@ -5924,8 +5994,8 @@ var init_concurrent_feedback_collector = __esm({
5924
5994
  // Current feedback mode state
5925
5995
  constructor(options = {}) {
5926
5996
  this.options = {
5927
- command: options.command || "juno-ts-task",
5928
- commandArgs: options.commandArgs || ["juno-ts-task", "feedback"],
5997
+ command: options.command || "juno-code",
5998
+ commandArgs: options.commandArgs || ["juno-code", "feedback"],
5929
5999
  verbose: options.verbose || false,
5930
6000
  showHeader: options.showHeader !== void 0 ? options.showHeader : true,
5931
6001
  progressInterval: options.progressInterval || 0,
@@ -6309,23 +6379,23 @@ var init_framework = __esm({
6309
6379
  flags: "-v, --verbose",
6310
6380
  description: "Enable verbose output with detailed progress",
6311
6381
  defaultValue: false,
6312
- env: "JUNO_TASK_VERBOSE"
6382
+ env: "JUNO_CODE_VERBOSE"
6313
6383
  },
6314
6384
  {
6315
6385
  flags: "-q, --quiet",
6316
6386
  description: "Disable rich formatting, use plain text",
6317
6387
  defaultValue: false,
6318
- env: "JUNO_TASK_QUIET"
6388
+ env: "JUNO_CODE_QUIET"
6319
6389
  },
6320
6390
  {
6321
6391
  flags: "-c, --config <path>",
6322
6392
  description: "Configuration file path (.json, .toml, pyproject.toml)",
6323
- env: "JUNO_TASK_CONFIG"
6393
+ env: "JUNO_CODE_CONFIG"
6324
6394
  },
6325
6395
  {
6326
6396
  flags: "--log-file <path>",
6327
6397
  description: "Log file path (auto-generated if not specified)",
6328
- env: "JUNO_TASK_LOG_FILE"
6398
+ env: "JUNO_CODE_LOG_FILE"
6329
6399
  },
6330
6400
  {
6331
6401
  flags: "--no-color",
@@ -6336,24 +6406,24 @@ var init_framework = __esm({
6336
6406
  description: "Log level for output (error, warn, info, debug, trace)",
6337
6407
  defaultValue: "info",
6338
6408
  choices: ["error", "warn", "info", "debug", "trace"],
6339
- env: "JUNO_TASK_LOG_LEVEL"
6409
+ env: "JUNO_CODE_LOG_LEVEL"
6340
6410
  },
6341
6411
  {
6342
6412
  flags: "-s, --subagent <type>",
6343
6413
  description: "Subagent to use",
6344
- env: "JUNO_TASK_SUBAGENT"
6414
+ env: "JUNO_CODE_SUBAGENT"
6345
6415
  },
6346
6416
  {
6347
6417
  flags: "--max-iterations <number>",
6348
6418
  description: "Maximum iterations (-1 for unlimited)",
6349
6419
  defaultValue: void 0,
6350
- env: "JUNO_TASK_MAX_ITERATIONS"
6420
+ env: "JUNO_CODE_MAX_ITERATIONS"
6351
6421
  },
6352
6422
  {
6353
6423
  flags: "--mcp-timeout <number>",
6354
6424
  description: "MCP server timeout in milliseconds",
6355
6425
  defaultValue: void 0,
6356
- env: "JUNO_TASK_MCP_TIMEOUT"
6426
+ env: "JUNO_CODE_MCP_TIMEOUT"
6357
6427
  }
6358
6428
  ];
6359
6429
  for (const option of this.globalOptions) {
@@ -6600,7 +6670,7 @@ ${helpText}
6600
6670
  }
6601
6671
  if (error.showHelp) {
6602
6672
  console.error(chalk12.gray(`
6603
- Use 'juno-task ${commandName} --help' for usage information`));
6673
+ Use 'juno-code ${commandName} --help' for usage information`));
6604
6674
  }
6605
6675
  const exitCode = Object.values(EXIT_CODES).includes(error.code) ? error.code : EXIT_CODES.UNEXPECTED_ERROR;
6606
6676
  process.exit(exitCode);
@@ -6645,7 +6715,7 @@ ${helpText}
6645
6715
  try {
6646
6716
  await this.program.parseAsync(argv2);
6647
6717
  } catch (error) {
6648
- await this.handleCommandError(error, "juno-task", {});
6718
+ await this.handleCommandError(error, "juno-code", {});
6649
6719
  }
6650
6720
  }
6651
6721
  /**
@@ -11151,7 +11221,7 @@ async function mainCommandHandler(args, options, command) {
11151
11221
  `Invalid subagent: ${options.subagent}`,
11152
11222
  [
11153
11223
  `Use one of: ${validSubagents.join(", ")}`,
11154
- 'Example: juno-task claude "your prompt"',
11224
+ 'Example: juno-code claude "your prompt"',
11155
11225
  "Use --help for more information"
11156
11226
  ]
11157
11227
  );
@@ -11243,34 +11313,34 @@ function createMainCommand() {
11243
11313
  description: "Subagent to use",
11244
11314
  required: true,
11245
11315
  choices: ["claude", "cursor", "codex", "gemini", "claude-code", "claude_code", "gemini-cli", "cursor-agent"],
11246
- env: "JUNO_TASK_SUBAGENT"
11316
+ env: "JUNO_CODE_SUBAGENT"
11247
11317
  }),
11248
11318
  createOption({
11249
11319
  flags: "-p, --prompt <text|file>",
11250
11320
  description: "Prompt input (file path or inline text)",
11251
- env: "JUNO_TASK_PROMPT"
11321
+ env: "JUNO_CODE_PROMPT"
11252
11322
  }),
11253
11323
  createOption({
11254
11324
  flags: "-w, --cwd <path>",
11255
11325
  description: "Working directory",
11256
11326
  defaultValue: process.cwd(),
11257
- env: "JUNO_TASK_CWD"
11327
+ env: "JUNO_CODE_CWD"
11258
11328
  }),
11259
11329
  createOption({
11260
11330
  flags: "-i, --max-iterations <number>",
11261
11331
  description: "Maximum iterations (-1 for unlimited)",
11262
- env: "JUNO_TASK_MAX_ITERATIONS"
11332
+ env: "JUNO_CODE_MAX_ITERATIONS"
11263
11333
  }),
11264
11334
  createOption({
11265
11335
  flags: "-m, --model <name>",
11266
11336
  description: "Model to use (optional, subagent-specific)",
11267
- env: "JUNO_TASK_MODEL"
11337
+ env: "JUNO_CODE_MODEL"
11268
11338
  }),
11269
11339
  createOption({
11270
11340
  flags: "-I, --interactive",
11271
11341
  description: "Interactive mode for typing/pasting prompts",
11272
11342
  defaultValue: false,
11273
- env: "JUNO_TASK_INTERACTIVE"
11343
+ env: "JUNO_CODE_INTERACTIVE"
11274
11344
  }),
11275
11345
  createOption({
11276
11346
  flags: "--interactive-prompt",
@@ -11280,19 +11350,19 @@ function createMainCommand() {
11280
11350
  ],
11281
11351
  examples: [
11282
11352
  {
11283
- command: 'juno-task -s claude -p "Create a REST API"',
11353
+ command: 'juno-code -s claude -p "Create a REST API"',
11284
11354
  description: "Execute task with Claude using inline prompt"
11285
11355
  },
11286
11356
  {
11287
- command: "juno-task -s cursor -p ./task.md -i 3",
11357
+ command: "juno-code -s cursor -p ./task.md -i 3",
11288
11358
  description: "Execute task with Cursor using file prompt, max 3 iterations"
11289
11359
  },
11290
11360
  {
11291
- command: "juno-task -s gemini --interactive",
11361
+ command: "juno-code -s gemini --interactive",
11292
11362
  description: "Use interactive mode to enter prompt"
11293
11363
  },
11294
11364
  {
11295
- command: "juno-task -s claude --interactive-prompt",
11365
+ command: "juno-code -s claude --interactive-prompt",
11296
11366
  description: "Use enhanced TUI prompt editor"
11297
11367
  }
11298
11368
  ],
@@ -11332,10 +11402,10 @@ var init_main = __esm({
11332
11402
  throw new ValidationError(
11333
11403
  "Prompt is required for execution",
11334
11404
  [
11335
- 'Provide prompt text: juno-task claude "your prompt here"',
11336
- "Use file input: juno-task claude prompt.txt",
11337
- "Use interactive mode: juno-task claude --interactive",
11338
- "Use TUI editor: juno-task claude --interactive-prompt",
11405
+ 'Provide prompt text: juno-code claude "your prompt here"',
11406
+ "Use file input: juno-code claude prompt.txt",
11407
+ "Use interactive mode: juno-code claude --interactive",
11408
+ "Use TUI editor: juno-code claude --interactive-prompt",
11339
11409
  "Create default prompt file: .juno_task/prompt.md"
11340
11410
  ]
11341
11411
  );
@@ -11560,7 +11630,7 @@ var init_main = __esm({
11560
11630
  this.enableFeedback = enableFeedback;
11561
11631
  if (this.enableFeedback) {
11562
11632
  this.feedbackCollector = new ConcurrentFeedbackCollector({
11563
- command: "juno-ts-task",
11633
+ command: "juno-code",
11564
11634
  commandArgs: ["feedback"],
11565
11635
  verbose: this.config.verbose,
11566
11636
  showHeader: true,
@@ -12029,6 +12099,7 @@ async function promptInputOnce(question, defaultValue = "") {
12029
12099
  }
12030
12100
 
12031
12101
  // src/cli/commands/init.ts
12102
+ init_default_hooks();
12032
12103
  init_types();
12033
12104
  var SimpleInitTUI = class {
12034
12105
  context = {};
@@ -12037,7 +12108,7 @@ var SimpleInitTUI = class {
12037
12108
  * Simplified gather method implementing the minimal flow
12038
12109
  */
12039
12110
  async gather() {
12040
- console.log(chalk12.blue.bold("\n\u{1F680} Juno Task Project Initialization\n"));
12111
+ console.log(chalk12.blue.bold("\n\u{1F680} Juno Code Project Initialization\n"));
12041
12112
  console.log(chalk12.yellow("\u{1F4C1} Step 1: Project Directory"));
12042
12113
  const targetDirectory = await this.promptForDirectory();
12043
12114
  console.log(chalk12.yellow("\n\u{1F4DD} Step 2: Main Task"));
@@ -12320,6 +12391,65 @@ Items will be added here as we discover what needs to be implemented.
12320
12391
  - Task defined: ${variables.TASK}
12321
12392
  `;
12322
12393
  await fs.writeFile(path.join(junoTaskDir, "plan.md"), planContent);
12394
+ const implementContent = `# Implementation Guide
12395
+
12396
+ ## Current Focus
12397
+
12398
+ **Main Task**: ${variables.TASK}
12399
+
12400
+ ## Implementation Steps
12401
+
12402
+ ### Step 1: Analysis and Planning
12403
+ - [ ] Review existing codebase structure
12404
+ - [ ] Identify key components and dependencies
12405
+ - [ ] Document current state in @.juno_task/plan.md
12406
+ - [ ] Create detailed specifications in @.juno_task/specs/
12407
+
12408
+ ### Step 2: Design and Architecture
12409
+ - [ ] Define system architecture
12410
+ - [ ] Design data models and APIs
12411
+ - [ ] Plan integration points
12412
+ - [ ] Document architecture decisions
12413
+
12414
+ ### Step 3: Implementation
12415
+ - [ ] Implement core functionality
12416
+ - [ ] Write comprehensive tests
12417
+ - [ ] Ensure code quality and documentation
12418
+ - [ ] Follow coding standards and best practices
12419
+
12420
+ ### Step 4: Testing and Validation
12421
+ - [ ] Unit tests with >90% coverage
12422
+ - [ ] Integration tests
12423
+ - [ ] Performance testing
12424
+ - [ ] Security review
12425
+
12426
+ ### Step 5: Documentation and Deployment
12427
+ - [ ] Update all documentation
12428
+ - [ ] Create deployment guides
12429
+ - [ ] Version control and tagging
12430
+ - [ ] Final review and sign-off
12431
+
12432
+ ## Current Tasks
12433
+
12434
+ Update this section with specific tasks for the current iteration:
12435
+
12436
+ 1. **Task 1**: Study existing codebase and create specifications
12437
+ - Status: Not Started
12438
+ - Owner: ${variables.EDITOR}
12439
+ - Priority: High
12440
+
12441
+ ## Notes and Considerations
12442
+
12443
+ - Keep this file updated as implementation progresses
12444
+ - Document any blockers or issues encountered
12445
+ - Reference related specs and plan items
12446
+ - Track progress and update status regularly
12447
+
12448
+ ---
12449
+ *Last updated: ${variables.CURRENT_DATE}*
12450
+ *Primary subagent: ${variables.EDITOR}*
12451
+ `;
12452
+ await fs.writeFile(path.join(junoTaskDir, "implement.md"), implementContent);
12323
12453
  const specsDir = path.join(junoTaskDir, "specs");
12324
12454
  await fs.ensureDir(specsDir);
12325
12455
  const specsReadmeContent = `# Project Specifications
@@ -12390,7 +12520,7 @@ This directory contains detailed specifications for the project components.
12390
12520
 
12391
12521
  ## System Overview
12392
12522
 
12393
- This project uses AI-assisted development with juno-task to achieve: ${variables.TASK}
12523
+ This project uses AI-assisted development with juno-code to achieve: ${variables.TASK}
12394
12524
 
12395
12525
  ## Architectural Decisions
12396
12526
 
@@ -12413,7 +12543,7 @@ This project uses AI-assisted development with juno-task to achieve: ${variables
12413
12543
 
12414
12544
  - **Language**: TypeScript
12415
12545
  - **Runtime**: Node.js
12416
- - **CLI**: juno-task with AI subagent integration
12546
+ - **CLI**: juno-code with AI subagent integration
12417
12547
  - **Version Control**: Git
12418
12548
  - **Documentation**: Markdown-based
12419
12549
 
@@ -12472,7 +12602,7 @@ This project uses AI-assisted development with juno-task to achieve: ${variables
12472
12602
 
12473
12603
  ## Project Overview
12474
12604
 
12475
- This project was initialized on ${variables.CURRENT_DATE} using juno-task.
12605
+ This project was initialized on ${variables.CURRENT_DATE} using juno-code.
12476
12606
 
12477
12607
  **Main Task**: ${variables.TASK}
12478
12608
  **Preferred Subagent**: ${variables.EDITOR}
@@ -12486,9 +12616,9 @@ This project was initialized on ${variables.CURRENT_DATE} using juno-task.
12486
12616
  - Use \`npm run test:binary\` for CLI testing
12487
12617
 
12488
12618
  ### Key Commands
12489
- - \`juno-task start\` - Begin task execution
12490
- - \`juno-task -s ${variables.EDITOR}\` - Quick execution with preferred subagent
12491
- - \`juno-task feedback\` - Provide feedback on the process
12619
+ - \`juno-code start\` - Begin task execution
12620
+ - \`juno-code -s ${variables.EDITOR}\` - Quick execution with preferred subagent
12621
+ - \`juno-code feedback\` - Provide feedback on the process
12492
12622
 
12493
12623
  ## Project Structure
12494
12624
 
@@ -12498,6 +12628,7 @@ This project was initialized on ${variables.CURRENT_DATE} using juno-task.
12498
12628
  \u2502 \u251C\u2500\u2500 prompt.md # Main task definition with AI instructions
12499
12629
  \u2502 \u251C\u2500\u2500 init.md # Initial task breakdown and constraints
12500
12630
  \u2502 \u251C\u2500\u2500 plan.md # Dynamic planning and priority tracking
12631
+ \u2502 \u251C\u2500\u2500 implement.md # Implementation guide and current tasks
12501
12632
  \u2502 \u251C\u2500\u2500 USER_FEEDBACK.md # User feedback and issue tracking
12502
12633
  \u2502 \u251C\u2500\u2500 scripts/ # Utility scripts for project maintenance
12503
12634
  \u2502 \u2502 \u2514\u2500\u2500 clean_logs_folder.sh # Archive old log files
@@ -12609,27 +12740,27 @@ ${variables.DESCRIPTION}
12609
12740
 
12610
12741
  ## Overview
12611
12742
 
12612
- This project uses juno-task for AI-powered development with ${variables.EDITOR} as the primary AI subagent.
12743
+ This project uses juno-code for AI-powered development with ${variables.EDITOR} as the primary AI subagent.
12613
12744
 
12614
12745
  ## Getting Started
12615
12746
 
12616
12747
  ### Prerequisites
12617
12748
 
12618
12749
  - Node.js (v18 or higher)
12619
- - juno-task CLI installed
12750
+ - juno-code CLI installed
12620
12751
  - Git for version control
12621
12752
 
12622
12753
  ### Quick Start
12623
12754
 
12624
12755
  \`\`\`bash
12625
12756
  # Start task execution with production-ready AI instructions
12626
- juno-task start
12757
+ juno-code start
12627
12758
 
12628
12759
  # Or use main command with preferred subagent
12629
- juno-task -s ${variables.EDITOR}
12760
+ juno-code -s ${variables.EDITOR}
12630
12761
 
12631
12762
  # Provide feedback on the development process
12632
- juno-task feedback
12763
+ juno-code feedback
12633
12764
  \`\`\`
12634
12765
 
12635
12766
  ## Project Structure
@@ -12640,8 +12771,10 @@ juno-task feedback
12640
12771
  \u2502 \u251C\u2500\u2500 prompt.md # Production-ready AI instructions
12641
12772
  \u2502 \u251C\u2500\u2500 init.md # Task breakdown and constraints
12642
12773
  \u2502 \u251C\u2500\u2500 plan.md # Dynamic planning and tracking
12774
+ \u2502 \u251C\u2500\u2500 implement.md # Implementation guide and current tasks
12643
12775
  \u2502 \u251C\u2500\u2500 USER_FEEDBACK.md # User feedback and issue tracking
12644
12776
  \u2502 \u251C\u2500\u2500 scripts/ # Utility scripts for project maintenance
12777
+ \u2502 \u2502 \u251C\u2500\u2500 install_requirements.sh # Install Python dependencies
12645
12778
  \u2502 \u2502 \u2514\u2500\u2500 clean_logs_folder.sh # Archive old log files (3+ days)
12646
12779
  \u2502 \u2514\u2500\u2500 specs/ # Comprehensive specifications
12647
12780
  \u2502 \u251C\u2500\u2500 README.md # Specs overview and guide
@@ -12688,12 +12821,13 @@ ${variables.GIT_URL}` : ""}
12688
12821
 
12689
12822
  1. **Review Task**: Check \`.juno_task/init.md\` for main task
12690
12823
  2. **Check Plan**: Review \`.juno_task/plan.md\` for current priorities
12691
- 3. **Provide Feedback**: Use \`juno-task feedback\` for issues or suggestions
12692
- 4. **Track Progress**: Monitor AI development through \`.juno_task/prompt.md\`
12824
+ 3. **Track Implementation**: Follow \`.juno_task/implement.md\` for current implementation steps
12825
+ 4. **Provide Feedback**: Use \`juno-code feedback\` for issues or suggestions
12826
+ 5. **Monitor Progress**: Track AI development through \`.juno_task/prompt.md\`
12693
12827
 
12694
12828
  ---
12695
12829
 
12696
- Created with juno-task on ${variables.CURRENT_DATE}
12830
+ Created with juno-code on ${variables.CURRENT_DATE}
12697
12831
  ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12698
12832
  `;
12699
12833
  await fs.writeFile(path.join(targetDirectory, "README.md"), readmeContent);
@@ -12743,7 +12877,9 @@ ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12743
12877
  headlessMode: false,
12744
12878
  // Paths
12745
12879
  workingDirectory: targetDirectory,
12746
- sessionDirectory: path.join(targetDirectory, ".juno_task")
12880
+ sessionDirectory: path.join(targetDirectory, ".juno_task"),
12881
+ // Hooks configuration with default file size monitoring
12882
+ hooks: getDefaultHooks()
12747
12883
  };
12748
12884
  const configPath = path.join(junoTaskDir, "config.json");
12749
12885
  await fs.writeFile(configPath, JSON.stringify(configContent, null, 2));
@@ -12917,11 +13053,11 @@ ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12917
13053
  printNextSteps(targetDirectory, editor) {
12918
13054
  console.log(chalk12.blue("\n\u{1F3AF} Next Steps:"));
12919
13055
  console.log(chalk12.white(` cd ${targetDirectory}`));
12920
- console.log(chalk12.white(" juno-task start # Start task execution"));
12921
- console.log(chalk12.white(` juno-task -s ${editor} # Quick execution with ${editor}`));
13056
+ console.log(chalk12.white(" juno-code start # Start task execution"));
13057
+ console.log(chalk12.white(` juno-code -s ${editor} # Quick execution with ${editor}`));
12922
13058
  console.log(chalk12.gray("\n\u{1F4A1} Tips:"));
12923
13059
  console.log(chalk12.gray(" - Edit .juno_task/prompt.md to modify your main task"));
12924
- console.log(chalk12.gray(' - Use "juno-task --help" to see all available commands'));
13060
+ console.log(chalk12.gray(' - Use "juno-code --help" to see all available commands'));
12925
13061
  console.log(chalk12.gray(" - Run .juno_task/scripts/clean_logs_folder.sh to archive old logs"));
12926
13062
  }
12927
13063
  /**
@@ -12976,10 +13112,10 @@ ${variables.EDITOR ? `using ${variables.EDITOR} as primary AI subagent` : ""}
12976
13112
  execSync("git add .", { cwd: targetDirectory, stdio: "ignore" });
12977
13113
  const commitMessage = `Initial commit: ${this.context.task || "Project initialization"}
12978
13114
 
12979
- \u{1F916} Generated with juno-task using ${this.context.subagent} subagent
13115
+ \u{1F916} Generated with juno-code using ${this.context.subagent} subagent
12980
13116
  \u{1F3AF} Main Task: ${this.context.task}
12981
13117
 
12982
- \u{1F680} Generated with [juno-task](https://github.com/owner/juno-task-ts)
13118
+ \u{1F680} Generated with [juno-code](https://github.com/owner/juno-code-ts)
12983
13119
 
12984
13120
  Co-Authored-By: Claude <noreply@anthropic.com>`;
12985
13121
  execSync(`git commit -m "${commitMessage}"`, {
@@ -13024,10 +13160,15 @@ var SimpleHeadlessInit = class {
13024
13160
  createSimpleVariables(targetDirectory, task, editor, gitUrl) {
13025
13161
  const projectName = path.basename(targetDirectory);
13026
13162
  const currentDate = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
13163
+ let AGENTMD = "AGENTS.md";
13164
+ if (editor == "claude") {
13165
+ AGENTMD = "CLAUDE.md";
13166
+ }
13027
13167
  return {
13028
13168
  PROJECT_NAME: projectName,
13029
13169
  TASK: task,
13030
13170
  EDITOR: editor,
13171
+ AGENTMD,
13031
13172
  CURRENT_DATE: currentDate,
13032
13173
  VERSION: "1.0.0",
13033
13174
  AUTHOR: "Development Team",
@@ -13040,7 +13181,7 @@ async function initCommandHandler(args, options, command) {
13040
13181
  try {
13041
13182
  const globalOptions = command.parent?.opts() || {};
13042
13183
  const allOptions2 = { ...options, ...globalOptions };
13043
- console.log(chalk12.blue.bold("\u{1F3AF} Juno Task - Simplified Initialization"));
13184
+ console.log(chalk12.blue.bold("\u{1F3AF} Juno Code - Simplified Initialization"));
13044
13185
  let context;
13045
13186
  const shouldUseInteractive = options.interactive || !options.task && !process.env.CI || process.env.FORCE_INTERACTIVE === "1";
13046
13187
  if (shouldUseInteractive) {
@@ -13081,7 +13222,7 @@ async function initCommandHandler(args, options, command) {
13081
13222
  }
13082
13223
  }
13083
13224
  function configureInitCommand(program) {
13084
- 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) => {
13225
+ 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) => {
13085
13226
  const initOptions = {
13086
13227
  directory,
13087
13228
  force: options.force,
@@ -13099,9 +13240,9 @@ function configureInitCommand(program) {
13099
13240
  await initCommandHandler([], initOptions, command);
13100
13241
  }).addHelpText("after", `
13101
13242
  Examples:
13102
- $ juno-task init # Initialize in current directory
13103
- $ juno-task init my-project # Initialize in ./my-project
13104
- $ juno-task init --interactive # Use simple interactive setup
13243
+ $ juno-code init # Initialize in current directory
13244
+ $ juno-code init my-project # Initialize in ./my-project
13245
+ $ juno-code init --interactive # Use simple interactive setup
13105
13246
 
13106
13247
  Simplified Interactive Flow:
13107
13248
  1. Project Root \u2192 Specify target directory
@@ -14874,7 +15015,7 @@ var ProjectContextLoader = class {
14874
15015
  const junoTaskDir = path.join(this.directory, ".juno_task");
14875
15016
  if (!await fs.pathExists(junoTaskDir)) {
14876
15017
  throw new FileSystemError(
14877
- 'No .juno_task directory found. Run "juno-task init" first.',
15018
+ 'No .juno_task directory found. Run "juno-code init" first.',
14878
15019
  junoTaskDir
14879
15020
  );
14880
15021
  }
@@ -14943,7 +15084,7 @@ var ExecutionCoordinator = class {
14943
15084
  this.sessionManager = await createSessionManager(this.config);
14944
15085
  if (this.enableFeedback) {
14945
15086
  this.feedbackCollector = new ConcurrentFeedbackCollector({
14946
- command: "juno-ts-task",
15087
+ command: "juno-code",
14947
15088
  commandArgs: ["feedback"],
14948
15089
  verbose: this.config.verbose,
14949
15090
  showHeader: true,
@@ -15091,7 +15232,7 @@ async function startCommandHandler(args, options, command) {
15091
15232
  try {
15092
15233
  const globalOptions = command.parent?.opts() || {};
15093
15234
  const allOptions2 = { ...globalOptions, ...options };
15094
- writeTerminalProgress(chalk12.blue.bold("\u{1F3AF} Juno Task - Start Execution") + "\n");
15235
+ writeTerminalProgress(chalk12.blue.bold("\u{1F3AF} Juno Code - Start Execution") + "\n");
15095
15236
  const logLevel = allOptions2.logLevel ? LogLevel[allOptions2.logLevel.toUpperCase()] : 2 /* INFO */;
15096
15237
  cliLogger.startTimer("start_command_total");
15097
15238
  cliLogger.info("Starting execution command", { options: allOptions2, directory: allOptions2.directory || process.cwd() });
@@ -15141,7 +15282,7 @@ async function startCommandHandler(args, options, command) {
15141
15282
  `Invalid subagent: ${allOptions2.subagent}`,
15142
15283
  [
15143
15284
  `Use one of: ${validSubagents.join(", ")}`,
15144
- "Run `juno-task help start` for examples"
15285
+ "Run `juno-code help start` for examples"
15145
15286
  ]
15146
15287
  );
15147
15288
  }
@@ -15183,7 +15324,7 @@ async function startCommandHandler(args, options, command) {
15183
15324
  if (sessionId) {
15184
15325
  writeTerminalProgress(chalk12.blue(`
15185
15326
  \u{1F4C1} Session ID: ${sessionId}`) + "\n");
15186
- writeTerminalProgress(chalk12.gray(' Use "juno-task session info ' + sessionId + '" for detailed information') + "\n");
15327
+ writeTerminalProgress(chalk12.gray(' Use "juno-code session info ' + sessionId + '" for detailed information') + "\n");
15187
15328
  sessionLogger.info("Session completed", {
15188
15329
  sessionId,
15189
15330
  status: result.status,
@@ -15250,20 +15391,20 @@ function configureStartCommand(program) {
15250
15391
  await startCommandHandler([], options, command);
15251
15392
  }).addHelpText("after", `
15252
15393
  Examples:
15253
- $ juno-task start # Start execution in current directory
15254
- $ juno-task start -s claude # Use claude subagent
15255
- $ juno-task start --subagent cursor # Use cursor subagent
15256
- $ juno-task start -s codex --max-iterations 10 # Use codex with 10 iterations
15257
- $ juno-task start --model sonnet-4 # Use specific model
15258
- $ juno-task start --directory ./my-project # Execute in specific directory
15259
- $ juno-task start --enable-feedback # Enable feedback collection while running
15260
- $ juno-task start --verbose # Show detailed progress
15261
- $ juno-task start --quiet # Minimize output
15262
- $ juno-task start --show-metrics # Display performance summary
15263
- $ juno-task start --show-dashboard # Interactive performance dashboard
15264
- $ juno-task start --show-trends # Show historical performance trends
15265
- $ juno-task start --save-metrics # Save metrics to .juno_task/metrics.json
15266
- $ juno-task start --save-metrics custom.json # Save metrics to custom file
15394
+ $ juno-code start # Start execution in current directory
15395
+ $ juno-code start -s claude # Use claude subagent
15396
+ $ juno-code start --subagent cursor # Use cursor subagent
15397
+ $ juno-code start -s codex --max-iterations 10 # Use codex with 10 iterations
15398
+ $ juno-code start --model sonnet-4 # Use specific model
15399
+ $ juno-code start --directory ./my-project # Execute in specific directory
15400
+ $ juno-code start --enable-feedback # Enable feedback collection while running
15401
+ $ juno-code start --verbose # Show detailed progress
15402
+ $ juno-code start --quiet # Minimize output
15403
+ $ juno-code start --show-metrics # Display performance summary
15404
+ $ juno-code start --show-dashboard # Interactive performance dashboard
15405
+ $ juno-code start --show-trends # Show historical performance trends
15406
+ $ juno-code start --save-metrics # Save metrics to .juno_task/metrics.json
15407
+ $ juno-code start --save-metrics custom.json # Save metrics to custom file
15267
15408
 
15268
15409
  Feedback Collection:
15269
15410
  --enable-feedback Enable concurrent feedback collection
@@ -15279,13 +15420,13 @@ Performance Options:
15279
15420
  --metrics-file <path> Custom metrics file path
15280
15421
 
15281
15422
  Environment Variables:
15282
- JUNO_TASK_MAX_ITERATIONS Default maximum iterations
15283
- JUNO_TASK_MODEL Default model to use
15284
- JUNO_TASK_MCP_SERVER_PATH Path to MCP server executable
15285
- JUNO_TASK_MCP_TIMEOUT MCP operation timeout (ms)
15423
+ JUNO_CODE_MAX_ITERATIONS Default maximum iterations
15424
+ JUNO_CODE_MODEL Default model to use
15425
+ JUNO_CODE_MCP_SERVER_PATH Path to MCP server executable
15426
+ JUNO_CODE_MCP_TIMEOUT MCP operation timeout (ms)
15286
15427
 
15287
15428
  Notes:
15288
- - Requires .juno_task/init.md file (created by 'juno-task init')
15429
+ - Requires .juno_task/init.md file (created by 'juno-code init')
15289
15430
  - Creates a new session for tracking execution
15290
15431
  - Progress is displayed in real-time
15291
15432
  - Performance metrics are collected automatically
@@ -16351,18 +16492,18 @@ function configureTestCommand(program) {
16351
16492
  await testCommandHandler(target, testOptions, command);
16352
16493
  }).addHelpText("after", `
16353
16494
  Examples:
16354
- $ juno-task test --generate # Generate tests for current project
16355
- $ juno-task test --run # Run existing tests
16356
- $ juno-task test --generate --run # Generate and run tests
16357
- $ juno-task test src/utils.ts --generate # Generate tests for specific file
16358
- $ juno-task test --type unit --intelligence smart # Generate smart unit tests
16359
- $ juno-task test --subagent cursor --generate # Use Cursor for test generation
16360
- $ juno-task test --run --coverage # Run tests with coverage
16361
- $ juno-task test --analyze --quality thorough # Analyze test quality thoroughly
16362
- $ juno-task test --report --format html # Generate HTML report
16363
- $ juno-task test --framework jest --generate # Generate Jest tests
16364
- $ juno-task test --template api-integration # Use specific template
16365
- $ juno-task test --watch # Run tests in watch mode
16495
+ $ juno-code test --generate # Generate tests for current project
16496
+ $ juno-code test --run # Run existing tests
16497
+ $ juno-code test --generate --run # Generate and run tests
16498
+ $ juno-code test src/utils.ts --generate # Generate tests for specific file
16499
+ $ juno-code test --type unit --intelligence smart # Generate smart unit tests
16500
+ $ juno-code test --subagent cursor --generate # Use Cursor for test generation
16501
+ $ juno-code test --run --coverage # Run tests with coverage
16502
+ $ juno-code test --analyze --quality thorough # Analyze test quality thoroughly
16503
+ $ juno-code test --report --format html # Generate HTML report
16504
+ $ juno-code test --framework jest --generate # Generate Jest tests
16505
+ $ juno-code test --template api-integration # Use specific template
16506
+ $ juno-code test --watch # Run tests in watch mode
16366
16507
 
16367
16508
  Test Types:
16368
16509
  unit Unit tests for individual functions/classes
@@ -16934,7 +17075,7 @@ function getFeedbackFile(options) {
16934
17075
  return options.file || path.join(process.cwd(), ".juno_task", "USER_FEEDBACK.md");
16935
17076
  }
16936
17077
  function configureFeedbackCommand(program) {
16937
- 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) => {
17078
+ 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) => {
16938
17079
  const feedbackOptions = {
16939
17080
  file: options.file,
16940
17081
  interactive: options.interactive,
@@ -16955,18 +17096,18 @@ function configureFeedbackCommand(program) {
16955
17096
  await feedbackCommandHandler(args, feedbackOptions);
16956
17097
  }).addHelpText("after", `
16957
17098
  Examples:
16958
- $ juno-task feedback # Interactive feedback form
16959
- $ juno-task feedback "Issue with command" # Direct feedback text
16960
- $ juno-task feedback --interactive # Use interactive form
16961
- $ juno-task feedback --issue "Bug description" --test "Should work without errors" # Issue with test criteria
16962
- $ juno-task feedback -is "Connection timeout" -t "Connect within 30 seconds" # Short form flags
16963
- $ juno-task feedback -is "UI issue" -tc "Should be intuitive" # Alternative short form
16964
- $ juno-task feedback --detail "Bug description" --test "Should work without errors" # Issue with test criteria
16965
- $ juno-task feedback -d "Connection timeout" -t "Connect within 30 seconds" # Short form flags
16966
- $ juno-task feedback --description "UI issue" --test "Should be intuitive" # Alternative form
16967
- $ juno-task feedback archive # Archive resolved issues to keep file lean
16968
- $ juno-task feedback compact # Compact CLAUDE.md and AGENTS.md
16969
- $ juno-task feedback compact CLAUDE.md # Compact specific file
17099
+ $ juno-code feedback # Interactive feedback form
17100
+ $ juno-code feedback "Issue with command" # Direct feedback text
17101
+ $ juno-code feedback --interactive # Use interactive form
17102
+ $ juno-code feedback --issue "Bug description" --test "Should work without errors" # Issue with test criteria
17103
+ $ juno-code feedback -is "Connection timeout" -t "Connect within 30 seconds" # Short form flags
17104
+ $ juno-code feedback -is "UI issue" -tc "Should be intuitive" # Alternative short form
17105
+ $ juno-code feedback --detail "Bug description" --test "Should work without errors" # Issue with test criteria
17106
+ $ juno-code feedback -d "Connection timeout" -t "Connect within 30 seconds" # Short form flags
17107
+ $ juno-code feedback --description "UI issue" --test "Should be intuitive" # Alternative form
17108
+ $ juno-code feedback archive # Archive resolved issues to keep file lean
17109
+ $ juno-code feedback compact # Compact CLAUDE.md and AGENTS.md
17110
+ $ juno-code feedback compact CLAUDE.md # Compact specific file
16970
17111
 
16971
17112
  Enhanced Features:
16972
17113
  1. Issue Description \u2192 Structured feedback with optional test criteria
@@ -17008,7 +17149,7 @@ async function handleCompactCommand(subArgs, options) {
17008
17149
  if (filesToCompact.length === 0) {
17009
17150
  console.log(chalk12.yellow("\u{1F4C4} No config files found to compact"));
17010
17151
  console.log(chalk12.gray(" Looking for: CLAUDE.md, AGENTS.md"));
17011
- console.log(chalk12.gray(" Usage: juno-task feedback compact [file1] [file2]"));
17152
+ console.log(chalk12.gray(" Usage: juno-code feedback compact [file1] [file2]"));
17012
17153
  return;
17013
17154
  }
17014
17155
  console.log(chalk12.blue.bold("\n\u{1F5DC}\uFE0F File Compaction Process\n"));
@@ -17115,7 +17256,7 @@ async function feedbackCommandHandler(args, options, command) {
17115
17256
  if (!issueText.trim()) {
17116
17257
  throw new ValidationError(
17117
17258
  "Issue description is required when using --issue/-is/--detail/--description or --test/-tc flags",
17118
- ['Use: juno-task feedback -is "Issue description" -t "Test criteria" or -tc "Test criteria"']
17259
+ ['Use: juno-code feedback -is "Issue description" -t "Test criteria" or -tc "Test criteria"']
17119
17260
  );
17120
17261
  }
17121
17262
  const feedbackFile = getFeedbackFile(options);
@@ -17165,10 +17306,10 @@ async function feedbackCommandHandler(args, options, command) {
17165
17306
  } else {
17166
17307
  console.log(chalk12.yellow("Use --interactive mode, --issue/-is/--detail/--description flag, or provide feedback text"));
17167
17308
  console.log(chalk12.gray("Examples:"));
17168
- console.log(chalk12.gray(' juno-task feedback --issue "Bug description"'));
17169
- console.log(chalk12.gray(' juno-task feedback -is "Issue" -t "Test criteria"'));
17170
- console.log(chalk12.gray(' juno-task feedback --detail "Bug description"'));
17171
- console.log(chalk12.gray(' juno-task feedback -d "Issue" -t "Test criteria"'));
17309
+ console.log(chalk12.gray(' juno-code feedback --issue "Bug description"'));
17310
+ console.log(chalk12.gray(' juno-code feedback -is "Issue" -t "Test criteria"'));
17311
+ console.log(chalk12.gray(' juno-code feedback --detail "Bug description"'));
17312
+ console.log(chalk12.gray(' juno-code feedback -d "Issue" -t "Test criteria"'));
17172
17313
  }
17173
17314
  break;
17174
17315
  }
@@ -17426,14 +17567,14 @@ async function handleSessionInfo(args, options, sessionManager) {
17426
17567
  const sessionId = args[0];
17427
17568
  if (!sessionId) {
17428
17569
  console.log(chalk12.red("Session ID is required"));
17429
- console.log(chalk12.gray("Usage: juno-task session info <session-id>"));
17430
- console.log(chalk12.gray('Use "juno-task session list" to see available sessions'));
17570
+ console.log(chalk12.gray("Usage: juno-code session info <session-id>"));
17571
+ console.log(chalk12.gray('Use "juno-code session list" to see available sessions'));
17431
17572
  return;
17432
17573
  }
17433
17574
  const session = await sessionManager.getSession(sessionId);
17434
17575
  if (!session) {
17435
17576
  console.log(chalk12.red(`Session not found: ${sessionId}`));
17436
- console.log(chalk12.gray('Use "juno-task session list" to see available sessions'));
17577
+ console.log(chalk12.gray('Use "juno-code session list" to see available sessions'));
17437
17578
  return;
17438
17579
  }
17439
17580
  const formatter = new SessionDisplayFormatter(options.verbose);
@@ -17443,7 +17584,7 @@ async function handleSessionRemove(args, options, sessionManager) {
17443
17584
  const sessionIds = args;
17444
17585
  if (sessionIds.length === 0) {
17445
17586
  console.log(chalk12.red("At least one session ID is required"));
17446
- console.log(chalk12.gray("Usage: juno-task session remove <session-id> [session-id...]"));
17587
+ console.log(chalk12.gray("Usage: juno-code session remove <session-id> [session-id...]"));
17447
17588
  process.exit(1);
17448
17589
  }
17449
17590
  let successCount = 0;
@@ -17572,15 +17713,15 @@ Subcommands:
17572
17713
  clean, cleanup Clean up old/empty sessions
17573
17714
 
17574
17715
  Examples:
17575
- $ juno-task session # List all sessions
17576
- $ juno-task session list --limit 10 # Show 10 most recent
17577
- $ juno-task session list --subagent claude # Filter by subagent
17578
- $ juno-task session list --status completed failed # Filter by status
17579
- $ juno-task session info abc123 # Show session details
17580
- $ juno-task session remove abc123 def456 # Remove sessions
17581
- $ juno-task session remove abc123 --force # Skip confirmation
17582
- $ juno-task session clean --days 30 # Remove sessions >30 days
17583
- $ juno-task session clean --empty --force # Remove empty sessions
17716
+ $ juno-code session # List all sessions
17717
+ $ juno-code session list --limit 10 # Show 10 most recent
17718
+ $ juno-code session list --subagent claude # Filter by subagent
17719
+ $ juno-code session list --status completed failed # Filter by status
17720
+ $ juno-code session info abc123 # Show session details
17721
+ $ juno-code session remove abc123 def456 # Remove sessions
17722
+ $ juno-code session remove abc123 --force # Skip confirmation
17723
+ $ juno-code session clean --days 30 # Remove sessions >30 days
17724
+ $ juno-code session clean --empty --force # Remove empty sessions
17584
17725
 
17585
17726
  Environment Variables:
17586
17727
  JUNO_TASK_SESSION_DIR Session storage directory
@@ -17877,7 +18018,7 @@ var GitManager = class {
17877
18018
  /**
17878
18019
  * Create initial commit
17879
18020
  */
17880
- async createInitialCommit(message = "Initial commit - juno-task project setup") {
18021
+ async createInitialCommit(message = "Initial commit - juno-code project setup") {
17881
18022
  try {
17882
18023
  const { execa: execa2 } = await import('execa');
17883
18024
  await execa2("git", ["add", "."], { cwd: this.workingDirectory });
@@ -17962,7 +18103,7 @@ GIT_URL: ${gitUrl}
17962
18103
  }
17963
18104
  await fs.writeFile(configPath, content, "utf-8");
17964
18105
  } catch (error) {
17965
- console.warn(`Warning: Failed to update juno-task configuration: ${error}`);
18106
+ console.warn(`Warning: Failed to update juno-code configuration: ${error}`);
17966
18107
  }
17967
18108
  }
17968
18109
  /**
@@ -18257,7 +18398,7 @@ var GitDisplayFormatter = class {
18257
18398
  console.log(chalk12.gray(` git push -u origin ${info.currentBranch || "main"}`));
18258
18399
  }
18259
18400
  console.log(" 3. Start working on your project:");
18260
- console.log(chalk12.gray(" juno-task start"));
18401
+ console.log(chalk12.gray(" juno-code start"));
18261
18402
  }
18262
18403
  formatStatus(status) {
18263
18404
  const statusColors = {
@@ -18372,7 +18513,7 @@ async function setupGitCommandHandler(args, options, command) {
18372
18513
  console.log(` Web URL: ${chalk12.blue(webUrl)}`);
18373
18514
  } else {
18374
18515
  console.log(chalk12.yellow("\n\u{1F517} No upstream repository configured"));
18375
- console.log(chalk12.gray(" Use: juno-task setup-git <url> to configure"));
18516
+ console.log(chalk12.gray(" Use: juno-code setup-git <url> to configure"));
18376
18517
  }
18377
18518
  return;
18378
18519
  }
@@ -18380,7 +18521,7 @@ async function setupGitCommandHandler(args, options, command) {
18380
18521
  const info = await gitManager.getRepositoryInfo();
18381
18522
  if (!info.isRepository) {
18382
18523
  console.log(chalk12.yellow("\u274C Not a Git repository"));
18383
- console.log(chalk12.gray(" Initialize with: juno-task setup-git --init"));
18524
+ console.log(chalk12.gray(" Initialize with: juno-code setup-git --init"));
18384
18525
  return;
18385
18526
  }
18386
18527
  const upstreamConfig = await gitManager.getUpstreamConfig();
@@ -18485,10 +18626,10 @@ function configureSetupGitCommand(program) {
18485
18626
  await setupGitCommandHandler(args, options);
18486
18627
  }).addHelpText("after", `
18487
18628
  Examples:
18488
- $ juno-task setup-git # Interactive setup
18489
- $ juno-task setup-git https://github.com/owner/repo # Set specific URL
18490
- $ juno-task setup-git --show # Show current config
18491
- $ juno-task setup-git --remove # Remove upstream URL
18629
+ $ juno-code setup-git # Interactive setup
18630
+ $ juno-code setup-git https://github.com/owner/repo # Set specific URL
18631
+ $ juno-code setup-git --show # Show current config
18632
+ $ juno-code setup-git --remove # Remove upstream URL
18492
18633
 
18493
18634
  Git URL Examples:
18494
18635
  https://github.com/owner/repo.git # GitHub HTTPS
@@ -19140,16 +19281,16 @@ function configureLogsCommand(program) {
19140
19281
  await logsCommandHandler([], options);
19141
19282
  }).addHelpText("after", `
19142
19283
  Examples:
19143
- $ juno-task logs # Show recent logs
19144
- $ juno-task logs --interactive # Interactive log viewer
19145
- $ juno-task logs --level error # Show only errors
19146
- $ juno-task logs --context mcp # Show only MCP logs
19147
- $ juno-task logs --search "connection" # Search for connection logs
19148
- $ juno-task logs --tail 100 # Show last 100 entries
19149
- $ juno-task logs --follow # Follow logs in real-time
19150
- $ juno-task logs --export logs.json # Export logs to file
19151
- $ juno-task logs --stats # Show statistics only
19152
- $ juno-task logs --format json # JSON output format
19284
+ $ juno-code logs # Show recent logs
19285
+ $ juno-code logs --interactive # Interactive log viewer
19286
+ $ juno-code logs --level error # Show only errors
19287
+ $ juno-code logs --context mcp # Show only MCP logs
19288
+ $ juno-code logs --search "connection" # Search for connection logs
19289
+ $ juno-code logs --tail 100 # Show last 100 entries
19290
+ $ juno-code logs --follow # Follow logs in real-time
19291
+ $ juno-code logs --export logs.json # Export logs to file
19292
+ $ juno-code logs --stats # Show statistics only
19293
+ $ juno-code logs --format json # JSON output format
19153
19294
 
19154
19295
  Interactive Viewer:
19155
19296
  \u2191\u2193 or j/k Navigate entries
@@ -19830,22 +19971,22 @@ var QUICK_REFERENCE = [
19830
19971
  {
19831
19972
  name: "init",
19832
19973
  description: "Initialize new project",
19833
- usage: "juno-task init [--interactive]"
19974
+ usage: "juno-code init [--interactive]"
19834
19975
  },
19835
19976
  {
19836
19977
  name: "start",
19837
19978
  description: "Execute task",
19838
- usage: "juno-task start [--max-iterations N]"
19979
+ usage: "juno-code start [--max-iterations N]"
19839
19980
  },
19840
19981
  {
19841
19982
  name: "logs",
19842
19983
  description: "View application logs",
19843
- usage: "juno-task logs [--interactive]"
19984
+ usage: "juno-code logs [--interactive]"
19844
19985
  },
19845
19986
  {
19846
19987
  name: "session",
19847
19988
  description: "Manage execution sessions",
19848
- usage: "juno-task session <list|info|remove>"
19989
+ usage: "juno-code session <list|info|remove>"
19849
19990
  }
19850
19991
  ]
19851
19992
  },
@@ -19855,22 +19996,22 @@ var QUICK_REFERENCE = [
19855
19996
  {
19856
19997
  name: "claude",
19857
19998
  description: "Execute with Claude subagent",
19858
- usage: 'juno-task claude "task description"'
19999
+ usage: 'juno-code claude "task description"'
19859
20000
  },
19860
20001
  {
19861
20002
  name: "cursor",
19862
20003
  description: "Execute with Cursor subagent",
19863
- usage: 'juno-task cursor "task description"'
20004
+ usage: 'juno-code cursor "task description"'
19864
20005
  },
19865
20006
  {
19866
20007
  name: "codex",
19867
20008
  description: "Execute with Codex subagent",
19868
- usage: 'juno-task codex "task description"'
20009
+ usage: 'juno-code codex "task description"'
19869
20010
  },
19870
20011
  {
19871
20012
  name: "gemini",
19872
20013
  description: "Execute with Gemini subagent",
19873
- usage: 'juno-task gemini "task description"'
20014
+ usage: 'juno-code gemini "task description"'
19874
20015
  }
19875
20016
  ]
19876
20017
  },
@@ -19880,22 +20021,22 @@ var QUICK_REFERENCE = [
19880
20021
  {
19881
20022
  name: "feedback",
19882
20023
  description: "Collect user feedback",
19883
- usage: "juno-task feedback [--interactive]"
20024
+ usage: "juno-code feedback [--interactive]"
19884
20025
  },
19885
20026
  {
19886
20027
  name: "setup-git",
19887
20028
  description: "Initialize Git repository",
19888
- usage: "juno-task setup-git <repository-url>"
20029
+ usage: "juno-code setup-git <repository-url>"
19889
20030
  },
19890
20031
  {
19891
20032
  name: "completion",
19892
20033
  description: "Shell completion setup",
19893
- usage: "juno-task completion <install|uninstall>"
20034
+ usage: "juno-code completion <install|uninstall>"
19894
20035
  },
19895
20036
  {
19896
20037
  name: "help",
19897
20038
  description: "Show help information",
19898
- usage: "juno-task help [--interactive]"
20039
+ usage: "juno-code help [--interactive]"
19899
20040
  }
19900
20041
  ]
19901
20042
  }
@@ -19914,15 +20055,15 @@ var TROUBLESHOOTING_GUIDE = `# Troubleshooting Guide
19914
20055
 
19915
20056
  **Solutions**:
19916
20057
  1. Install MCP server (e.g., roundtable-mcp-server)
19917
- 2. Check configuration: \`juno-task init --interactive\`
20058
+ 2. Check configuration: \`juno-code init --interactive\`
19918
20059
  3. Verify server path: \`which roundtable-mcp-server\`
19919
- 4. Test connection: \`juno-task start --verbose\`
20060
+ 4. Test connection: \`juno-code start --verbose\`
19920
20061
 
19921
20062
  ### \u{1F4C1} File System Issues
19922
20063
 
19923
20064
  **Issue**: "init.md not found"
19924
20065
  **Cause**: No project initialized in current directory
19925
- **Solution**: Run \`juno-task init\` to create project structure
20066
+ **Solution**: Run \`juno-code init\` to create project structure
19926
20067
 
19927
20068
  **Issue**: "Permission denied"
19928
20069
  **Cause**: Insufficient file permissions
@@ -19950,19 +20091,19 @@ var TROUBLESHOOTING_GUIDE = `# Troubleshooting Guide
19950
20091
  Get detailed debug information:
19951
20092
  \`\`\`bash
19952
20093
  # Verbose execution with debug logging
19953
- juno-task start --verbose --log-level debug
20094
+ juno-code start --verbose --log-level debug
19954
20095
 
19955
20096
  # View recent error logs
19956
- juno-task logs --level error --tail 50
20097
+ juno-code logs --level error --tail 50
19957
20098
 
19958
20099
  # Export logs for analysis
19959
- juno-task logs --export debug.json --level debug
20100
+ juno-code logs --export debug.json --level debug
19960
20101
  \`\`\`
19961
20102
 
19962
20103
  ## Getting More Help
19963
20104
 
19964
- 1. **Interactive Help**: \`juno-task help --interactive\`
19965
- 2. **View Logs**: \`juno-task logs --interactive\`
20105
+ 1. **Interactive Help**: \`juno-code help --interactive\`
20106
+ 2. **View Logs**: \`juno-code logs --interactive\`
19966
20107
  3. **Check Configuration**: Review .juno_task/config.json
19967
20108
  4. **Test MCP Connection**: Use --verbose flag with any command
19968
20109
  5. **Report Issues**: Include debug logs when reporting problems
@@ -19971,16 +20112,20 @@ juno-task logs --export debug.json --level debug
19971
20112
 
19972
20113
  Useful for debugging:
19973
20114
  \`\`\`bash
20115
+ export JUNO_CODE_VERBOSE=true
20116
+ export JUNO_CODE_LOG_LEVEL=debug
20117
+ export NO_COLOR=true # Disable colors for log analysis
20118
+
20119
+ # Legacy variables (still supported for backward compatibility)
19974
20120
  export JUNO_TASK_VERBOSE=true
19975
20121
  export JUNO_TASK_LOG_LEVEL=debug
19976
- export NO_COLOR=true # Disable colors for log analysis
19977
20122
  \`\`\`
19978
20123
  `;
19979
20124
  function displayQuickReference(formatter) {
19980
20125
  console.log(formatter.panel(
19981
- "Welcome to juno-task! This quick reference shows the most commonly used commands.",
20126
+ "Welcome to juno-code! This quick reference shows the most commonly used commands.",
19982
20127
  {
19983
- title: "\u{1F680} juno-task Quick Reference",
20128
+ title: "\u{1F680} juno-code Quick Reference",
19984
20129
  border: "rounded",
19985
20130
  style: "success",
19986
20131
  padding: 1
@@ -19997,8 +20142,8 @@ function displayQuickReference(formatter) {
19997
20142
  });
19998
20143
  });
19999
20144
  console.log(formatter.panel(
20000
- `Use ${chalk12.cyan("juno-task help --interactive")} for comprehensive help with search and tutorials.
20001
- Use ${chalk12.cyan("juno-task <command> --help")} for detailed command information.`,
20145
+ `Use ${chalk12.cyan("juno-code help --interactive")} for comprehensive help with search and tutorials.
20146
+ Use ${chalk12.cyan("juno-code <command> --help")} for detailed command information.`,
20002
20147
  {
20003
20148
  title: "\u{1F4A1} Next Steps",
20004
20149
  border: "rounded",
@@ -20049,8 +20194,8 @@ function listHelpTopics() {
20049
20194
  console.log(`${icon} ${chalk12.cyan(topic.id.padEnd(20))} ${topic.title}`);
20050
20195
  });
20051
20196
  console.log(chalk12.yellow(`
20052
- Use ${chalk12.cyan("juno-task help --topic <id>")} to view a specific topic`));
20053
- console.log(chalk12.yellow(`Use ${chalk12.cyan("juno-task help --interactive")} for full interactive help`));
20197
+ Use ${chalk12.cyan("juno-code help --topic <id>")} to view a specific topic`));
20198
+ console.log(chalk12.yellow(`Use ${chalk12.cyan("juno-code help --interactive")} for full interactive help`));
20054
20199
  }
20055
20200
  function searchHelpTopics(searchTerm) {
20056
20201
  const matchingTopics = [
@@ -20070,7 +20215,7 @@ function searchHelpTopics(searchTerm) {
20070
20215
  console.log(chalk12.cyan(`\u2022 ${topicId}`));
20071
20216
  });
20072
20217
  console.log(chalk12.yellow(`
20073
- Use ${chalk12.cyan("juno-task help --topic <id>")} to view details`));
20218
+ Use ${chalk12.cyan("juno-code help --topic <id>")} to view details`));
20074
20219
  }
20075
20220
  async function helpCommandHandler(args, options, command) {
20076
20221
  try {
@@ -20124,12 +20269,12 @@ function configureHelpCommand(program) {
20124
20269
  await helpCommandHandler([], options);
20125
20270
  }).addHelpText("after", `
20126
20271
  Examples:
20127
- $ juno-task help # Quick reference guide
20128
- $ juno-task help --interactive # Interactive help system
20129
- $ juno-task help --topic quickstart # Specific topic
20130
- $ juno-task help --search "mcp" # Search topics
20131
- $ juno-task help --list # List all topics
20132
- $ juno-task help --troubleshooting # Troubleshooting guide
20272
+ $ juno-code help # Quick reference guide
20273
+ $ juno-code help --interactive # Interactive help system
20274
+ $ juno-code help --topic quickstart # Specific topic
20275
+ $ juno-code help --search "mcp" # Search topics
20276
+ $ juno-code help --list # List all topics
20277
+ $ juno-code help --troubleshooting # Troubleshooting guide
20133
20278
 
20134
20279
  Interactive Help Features:
20135
20280
  - Browse help by category
@@ -20158,7 +20303,7 @@ Navigation (Interactive Mode):
20158
20303
  Notes:
20159
20304
  - Interactive help provides the most comprehensive assistance
20160
20305
  - Use --verbose with any command for detailed output
20161
- - Check logs with 'juno-task logs' for debugging
20306
+ - Check logs with 'juno-code logs' for debugging
20162
20307
  - All help content is searchable and cross-referenced
20163
20308
  `);
20164
20309
  }
@@ -20174,7 +20319,7 @@ var ProfileDisplayFormatter = class {
20174
20319
  formatProfileList(profiles, activeProfile) {
20175
20320
  if (profiles.length === 0) {
20176
20321
  console.log(chalk12.yellow("No configuration profiles found."));
20177
- console.log(chalk12.gray('\nUse "juno-task config create <name>" to create your first profile.'));
20322
+ console.log(chalk12.gray('\nUse "juno-code config create <name>" to create your first profile.'));
20178
20323
  return;
20179
20324
  }
20180
20325
  console.log(chalk12.blue.bold(`
@@ -20268,7 +20413,7 @@ async function listProfiles(options = {}) {
20268
20413
  const formatter = new ProfileDisplayFormatter(options.verbose);
20269
20414
  formatter.formatProfileList(profiles, activeProfile);
20270
20415
  if (options.verbose && profiles.length > 0) {
20271
- console.log(chalk12.gray('\nUse "juno-task config show <profile>" for detailed information.'));
20416
+ console.log(chalk12.gray('\nUse "juno-code config show <profile>" for detailed information.'));
20272
20417
  }
20273
20418
  } catch (error) {
20274
20419
  const formatter = new ProfileDisplayFormatter();
@@ -20293,7 +20438,7 @@ async function showProfile(profileName, options = {}) {
20293
20438
  const formatter = new ProfileDisplayFormatter();
20294
20439
  if (error instanceof ProfileNotFoundError) {
20295
20440
  formatter.formatError(`Profile '${profileName}' not found.`);
20296
- console.log(chalk12.gray('\nUse "juno-task config list" to see available profiles.'));
20441
+ console.log(chalk12.gray('\nUse "juno-code config list" to see available profiles.'));
20297
20442
  } else {
20298
20443
  formatter.formatError(`Failed to show profile: ${error}`);
20299
20444
  }
@@ -20311,7 +20456,7 @@ async function setActiveProfile(profileName) {
20311
20456
  const formatter = new ProfileDisplayFormatter();
20312
20457
  if (error instanceof ProfileNotFoundError) {
20313
20458
  formatter.formatError(`Profile '${profileName}' not found.`);
20314
- console.log(chalk12.gray('\nUse "juno-task config list" to see available profiles.'));
20459
+ console.log(chalk12.gray('\nUse "juno-code config list" to see available profiles.'));
20315
20460
  } else {
20316
20461
  formatter.formatError(`Failed to set active profile: ${error}`);
20317
20462
  }
@@ -20340,13 +20485,13 @@ async function createProfile(profileName, options = {}) {
20340
20485
  formatter.formatSuccess(`Profile '${profileName}' created successfully`);
20341
20486
  if (options.interactive) {
20342
20487
  console.log(chalk12.gray("\nYou can now configure this profile using:"));
20343
- console.log(chalk12.cyan(` juno-task config edit ${profileName}`));
20488
+ console.log(chalk12.cyan(` juno-code config edit ${profileName}`));
20344
20489
  }
20345
20490
  } catch (error) {
20346
20491
  const formatter = new ProfileDisplayFormatter();
20347
20492
  if (error instanceof ProfileExistsError) {
20348
20493
  formatter.formatError(`Profile '${profileName}' already exists.`);
20349
- console.log(chalk12.gray('Use "juno-task config show <profile>" to view existing profile.'));
20494
+ console.log(chalk12.gray('Use "juno-code config show <profile>" to view existing profile.'));
20350
20495
  } else if (error instanceof CircularInheritanceError) {
20351
20496
  formatter.formatError(`Circular inheritance detected: ${error.message}`);
20352
20497
  } else {
@@ -20440,12 +20585,12 @@ function setupConfigCommand(program) {
20440
20585
  configCmd.on("--help", () => {
20441
20586
  console.log("");
20442
20587
  console.log("Examples:");
20443
- console.log(" $ juno-task config list # List all profiles");
20444
- console.log(" $ juno-task config show development # Show development profile");
20445
- console.log(" $ juno-task config set production # Set active profile");
20446
- console.log(' $ juno-task config create dev --description "Development settings"');
20447
- console.log(" $ juno-task config export prod prod.json # Export to file");
20448
- console.log(" $ juno-task config import backup.json # Import from file");
20588
+ console.log(" $ juno-code config list # List all profiles");
20589
+ console.log(" $ juno-code config show development # Show development profile");
20590
+ console.log(" $ juno-code config set production # Set active profile");
20591
+ console.log(' $ juno-code config create dev --description "Development settings"');
20592
+ console.log(" $ juno-code config export prod prod.json # Export to file");
20593
+ console.log(" $ juno-code config import backup.json # Import from file");
20449
20594
  console.log("");
20450
20595
  });
20451
20596
  }
@@ -20543,15 +20688,15 @@ var ShellDetector = class _ShellDetector {
20543
20688
  switch (shell) {
20544
20689
  case "bash":
20545
20690
  if (process.platform === "darwin") {
20546
- return path.join("/usr/local/etc/bash_completion.d", "juno-ts-task");
20691
+ return path.join("/usr/local/etc/bash_completion.d", "juno-code");
20547
20692
  }
20548
- return path.join(homeDir, ".local", "share", "bash-completion", "completions", "juno-ts-task");
20693
+ return path.join(homeDir, ".local", "share", "bash-completion", "completions", "juno-code");
20549
20694
  case "zsh":
20550
- return path.join(homeDir, ".local", "share", "zsh", "site-functions", "_juno-ts-task");
20695
+ return path.join(homeDir, ".local", "share", "zsh", "site-functions", "_juno-code");
20551
20696
  case "fish":
20552
- return path.join(homeDir, ".config", "fish", "completions", "juno-ts-task.fish");
20697
+ return path.join(homeDir, ".config", "fish", "completions", "juno-code.fish");
20553
20698
  case "powershell":
20554
- return path.join(homeDir, ".config", "powershell", "completions", "juno-ts-task.ps1");
20699
+ return path.join(homeDir, ".config", "powershell", "completions", "juno-code.ps1");
20555
20700
  default:
20556
20701
  throw new Error(`Unsupported shell: ${shell}`);
20557
20702
  }
@@ -20573,17 +20718,17 @@ var ShellDetector = class _ShellDetector {
20573
20718
  getSourceCommand(shell, completionPath) {
20574
20719
  switch (shell) {
20575
20720
  case "bash":
20576
- return `# juno-ts-task completion
20721
+ return `# juno-code completion
20577
20722
  [ -f "${completionPath}" ] && source "${completionPath}"`;
20578
20723
  case "zsh":
20579
20724
  const zshDir = path.dirname(completionPath);
20580
- return `# juno-ts-task completion
20725
+ return `# juno-code completion
20581
20726
  fpath=("${zshDir}" $fpath)
20582
20727
  autoload -U compinit && compinit`;
20583
20728
  case "fish":
20584
- return `# juno-ts-task completion (automatically loaded)`;
20729
+ return `# juno-code completion (automatically loaded)`;
20585
20730
  case "powershell":
20586
- return `# juno-ts-task completion
20731
+ return `# juno-code completion
20587
20732
  . "${completionPath}"`;
20588
20733
  default:
20589
20734
  throw new Error(`Unsupported shell: ${shell}`);
@@ -20598,7 +20743,7 @@ autoload -U compinit && compinit`;
20598
20743
  return false;
20599
20744
  }
20600
20745
  const content = await fs.readFile(configPath, "utf-8");
20601
- return content.includes("juno-ts-task completion");
20746
+ return content.includes("juno-code completion");
20602
20747
  } catch {
20603
20748
  return false;
20604
20749
  }
@@ -20857,7 +21002,7 @@ var CompletionInstaller = class {
20857
21002
  }
20858
21003
  await this.shellDetector.ensureCompletionDirectory(shell);
20859
21004
  await this.shellDetector.ensureConfigDirectory(shell);
20860
- const script = this.generateEnhancedCompletion(shell, "juno-ts-task");
21005
+ const script = this.generateEnhancedCompletion(shell, "juno-code");
20861
21006
  const completionPath = this.shellDetector.getCompletionPath(shell);
20862
21007
  await fs.writeFile(completionPath, script, "utf-8");
20863
21008
  const configPath = this.shellDetector.getConfigPath(shell);
@@ -20946,7 +21091,7 @@ ${sourceCommand}
20946
21091
  return `#!/bin/bash
20947
21092
 
20948
21093
  # ${commandName} enhanced completion script for bash
20949
- # Generated by juno-task-ts CLI with context-aware features
21094
+ # Generated by juno-code CLI with context-aware features
20950
21095
 
20951
21096
  _${commandName}_completion() {
20952
21097
  local cur prev opts base
@@ -21140,7 +21285,7 @@ complete -F _${commandName}_completion ${commandName}
21140
21285
  return `#compdef ${commandName}
21141
21286
 
21142
21287
  # ${commandName} enhanced completion script for zsh
21143
- # Generated by juno-task-ts CLI with context-aware features
21288
+ # Generated by juno-code CLI with context-aware features
21144
21289
 
21145
21290
  _${commandName}() {
21146
21291
  local context state line
@@ -21295,7 +21440,7 @@ _${commandName} "$@"
21295
21440
  */
21296
21441
  generateEnhancedFishCompletion(commandName) {
21297
21442
  return `# ${commandName} enhanced completion script for fish
21298
- # Generated by juno-task-ts CLI with context-aware features
21443
+ # Generated by juno-code CLI with context-aware features
21299
21444
 
21300
21445
  # Context-aware model completion
21301
21446
  function __${commandName}_complete_models
@@ -21551,7 +21696,7 @@ var CompletionCommand = class {
21551
21696
  const uninstalledShells = completionStatus.filter((status) => !status.isInstalled && !status.error).map((status) => status.shell);
21552
21697
  if (uninstalledShells.length > 0) {
21553
21698
  console.log(chalk12.blue("\n\u{1F4A1} Suggestions:"));
21554
- console.log(chalk12.white(` Install completion: juno-ts-task completion install ${uninstalledShells.join(" ")}`));
21699
+ console.log(chalk12.white(` Install completion: juno-code completion install ${uninstalledShells.join(" ")}`));
21555
21700
  }
21556
21701
  const currentShell = this.shellDetector.getCurrentShell();
21557
21702
  if (currentShell) {
@@ -21562,7 +21707,7 @@ var CompletionCommand = class {
21562
21707
  } else {
21563
21708
  console.log(chalk12.yellow(`
21564
21709
  \u{1F3AF} Current shell (${currentShell}): Completion not installed`));
21565
- console.log(chalk12.white(` Install: juno-ts-task completion install ${currentShell}`));
21710
+ console.log(chalk12.white(` Install: juno-code completion install ${currentShell}`));
21566
21711
  }
21567
21712
  }
21568
21713
  } catch (error) {
@@ -21646,7 +21791,7 @@ var CompletionCommand = class {
21646
21791
  console.log(chalk12.white("\u2022 Reload PowerShell"));
21647
21792
  break;
21648
21793
  }
21649
- console.log(chalk12.white("\u2022 Test: juno-ts-task <TAB>"));
21794
+ console.log(chalk12.white("\u2022 Test: juno-code <TAB>"));
21650
21795
  }
21651
21796
  };
21652
21797
  var completion_default = CompletionCommand;
@@ -21712,7 +21857,7 @@ function setupMainCommand(program) {
21712
21857
  const cwd2 = process.cwd();
21713
21858
  const junoTaskDir = path20.join(cwd2, ".juno_task");
21714
21859
  if (await fs18.pathExists(junoTaskDir)) {
21715
- console.log(chalk12.blue.bold("\u{1F3AF} Juno Task - Auto-detected Initialized Project\n"));
21860
+ console.log(chalk12.blue.bold("\u{1F3AF} Juno Code - Auto-detected Initialized Project\n"));
21716
21861
  try {
21717
21862
  const { loadConfig: loadConfig2 } = await Promise.resolve().then(() => (init_config(), config_exports));
21718
21863
  const config = await loadConfig2({
@@ -21745,13 +21890,13 @@ function setupMainCommand(program) {
21745
21890
  }
21746
21891
  }
21747
21892
  if (!globalOptions.subagent && !options.prompt && !options.interactive && !options.interactivePrompt) {
21748
- console.log(chalk12.blue.bold("\u{1F3AF} Juno Task - TypeScript CLI for AI Subagent Orchestration\n"));
21893
+ console.log(chalk12.blue.bold("\u{1F3AF} Juno Code - TypeScript CLI for AI Subagent Orchestration\n"));
21749
21894
  console.log(chalk12.white("To get started:"));
21750
- console.log(chalk12.gray(" juno-task init # Initialize new project"));
21751
- console.log(chalk12.gray(" juno-task start # Start execution"));
21752
- console.log(chalk12.gray(" juno-task test --generate --run # AI-powered testing"));
21753
- console.log(chalk12.gray(' juno-task -s claude -p "prompt" # Quick execution with Claude'));
21754
- console.log(chalk12.gray(" juno-task --help # Show all commands"));
21895
+ console.log(chalk12.gray(" juno-code init # Initialize new project"));
21896
+ console.log(chalk12.gray(" juno-code start # Start execution"));
21897
+ console.log(chalk12.gray(" juno-code test --generate --run # AI-powered testing"));
21898
+ console.log(chalk12.gray(' juno-code -s claude -p "prompt" # Quick execution with Claude'));
21899
+ console.log(chalk12.gray(" juno-code --help # Show all commands"));
21755
21900
  console.log("");
21756
21901
  return;
21757
21902
  }
@@ -21765,7 +21910,7 @@ function setupMainCommand(program) {
21765
21910
  function displayBanner(verbose = false) {
21766
21911
  if (verbose) {
21767
21912
  console.log(chalk12.blue.bold(`
21768
- \u{1F3AF} Juno Task v${VERSION} - TypeScript CLI`));
21913
+ \u{1F3AF} Juno Code v${VERSION} - TypeScript CLI`));
21769
21914
  console.log(chalk12.gray(` Node.js ${process.version} on ${process.platform}`));
21770
21915
  console.log(chalk12.gray(` Working directory: ${process.cwd()}`));
21771
21916
  console.log("");
@@ -21798,7 +21943,22 @@ function setupAliases(program) {
21798
21943
  }
21799
21944
  }
21800
21945
  function configureEnvironment() {
21801
- const envVars = [
21946
+ const newEnvVars = [
21947
+ "JUNO_CODE_SUBAGENT",
21948
+ "JUNO_CODE_PROMPT",
21949
+ "JUNO_CODE_CWD",
21950
+ "JUNO_CODE_MAX_ITERATIONS",
21951
+ "JUNO_CODE_MODEL",
21952
+ "JUNO_CODE_LOG_FILE",
21953
+ "JUNO_CODE_VERBOSE",
21954
+ "JUNO_CODE_QUIET",
21955
+ "JUNO_CODE_CONFIG",
21956
+ "JUNO_CODE_MCP_SERVER_PATH",
21957
+ "JUNO_CODE_MCP_TIMEOUT",
21958
+ "JUNO_CODE_NO_COLOR",
21959
+ "JUNO_CODE_ENABLE_FEEDBACK"
21960
+ ];
21961
+ const legacyEnvVars = [
21802
21962
  "JUNO_TASK_SUBAGENT",
21803
21963
  "JUNO_TASK_PROMPT",
21804
21964
  "JUNO_TASK_CWD",
@@ -21813,10 +21973,10 @@ function configureEnvironment() {
21813
21973
  "JUNO_TASK_NO_COLOR",
21814
21974
  "JUNO_TASK_ENABLE_FEEDBACK"
21815
21975
  ];
21816
- for (const envVar of envVars) {
21976
+ const processEnvVar = (envVar, prefix) => {
21817
21977
  const value = process.env[envVar];
21818
- if (value && !process.argv.includes(`--${envVar.toLowerCase().replace("juno_task_", "").replace(/_/g, "-")}`)) {
21819
- const option = envVar.toLowerCase().replace("juno_task_", "").replace(/_/g, "-");
21978
+ if (value && !process.argv.includes(`--${envVar.toLowerCase().replace(prefix, "").replace(/_/g, "-")}`)) {
21979
+ const option = envVar.toLowerCase().replace(prefix, "").replace(/_/g, "-");
21820
21980
  switch (option) {
21821
21981
  case "verbose":
21822
21982
  case "quiet":
@@ -21829,6 +21989,21 @@ function configureEnvironment() {
21829
21989
  default:
21830
21990
  process.argv.push(`--${option}`, value);
21831
21991
  }
21992
+ return true;
21993
+ }
21994
+ return false;
21995
+ };
21996
+ const processedOptions = /* @__PURE__ */ new Set();
21997
+ for (const envVar of newEnvVars) {
21998
+ if (processEnvVar(envVar, "juno_code_")) {
21999
+ const option = envVar.toLowerCase().replace("juno_code_", "").replace(/_/g, "-");
22000
+ processedOptions.add(option);
22001
+ }
22002
+ }
22003
+ for (const envVar of legacyEnvVars) {
22004
+ const option = envVar.toLowerCase().replace("juno_task_", "").replace(/_/g, "-");
22005
+ if (!processedOptions.has(option)) {
22006
+ processEnvVar(envVar, "juno_task_");
21832
22007
  }
21833
22008
  }
21834
22009
  if (!process.argv.includes("--enable-feedback")) {
@@ -21847,7 +22022,7 @@ function configureEnvironment() {
21847
22022
  async function main() {
21848
22023
  const program = new Command();
21849
22024
  configureEnvironment();
21850
- 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");
22025
+ 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");
21851
22026
  setupGlobalOptions(program);
21852
22027
  const isVerbose = process.argv.includes("--verbose") || process.argv.includes("-v");
21853
22028
  displayBanner(isVerbose);
@@ -21886,54 +22061,58 @@ async function main() {
21886
22061
  setupAliases(program);
21887
22062
  setupMainCommand(program);
21888
22063
  program.addHelpText("beforeAll", `
21889
- ${chalk12.blue.bold("\u{1F3AF} Juno Task")} - TypeScript CLI for AI Subagent Orchestration
22064
+ ${chalk12.blue.bold("\u{1F3AF} Juno Code")} - TypeScript CLI for AI Subagent Orchestration
21890
22065
 
21891
22066
  `);
21892
22067
  program.addHelpText("afterAll", `
21893
22068
  ${chalk12.blue.bold("Examples:")}
21894
22069
  ${chalk12.gray("# Initialize new project")}
21895
- juno-task init
22070
+ juno-code init
21896
22071
 
21897
22072
  ${chalk12.gray("# Start execution using .juno_task/init.md")}
21898
- juno-task start
22073
+ juno-code start
21899
22074
 
21900
22075
  ${chalk12.gray("# AI-powered testing")}
21901
- juno-task test --generate --run
21902
- juno-task test src/utils.ts --subagent claude
21903
- juno-task test --analyze --coverage
22076
+ juno-code test --generate --run
22077
+ juno-code test src/utils.ts --subagent claude
22078
+ juno-code test --analyze --coverage
21904
22079
 
21905
22080
  ${chalk12.gray("# Quick execution with Claude")}
21906
- juno-task claude "Analyze this codebase and suggest improvements"
22081
+ juno-code claude "Analyze this codebase and suggest improvements"
21907
22082
 
21908
22083
  ${chalk12.gray("# Interactive project setup")}
21909
- juno-task init --interactive
22084
+ juno-code init --interactive
21910
22085
 
21911
22086
  ${chalk12.gray("# Manage sessions")}
21912
- juno-task session list
21913
- juno-task session info abc123
22087
+ juno-code session list
22088
+ juno-code session info abc123
21914
22089
 
21915
22090
  ${chalk12.gray("# Enable feedback collection globally")}
21916
- juno-task --enable-feedback start
22091
+ juno-code --enable-feedback start
21917
22092
 
21918
22093
  ${chalk12.gray("# Collect feedback")}
21919
- juno-task feedback --interactive
22094
+ juno-code feedback --interactive
21920
22095
 
21921
22096
  ${chalk12.gray("# Manage configuration profiles")}
21922
- juno-task config list
21923
- juno-task config create development
22097
+ juno-code config list
22098
+ juno-code config create development
21924
22099
 
21925
22100
  ${chalk12.gray("# Setup Git repository")}
21926
- juno-task setup-git https://github.com/owner/repo
22101
+ juno-code setup-git https://github.com/owner/repo
21927
22102
 
21928
22103
  ${chalk12.blue.bold("Environment Variables:")}
21929
- JUNO_TASK_SUBAGENT Default subagent (claude, cursor, codex, gemini)
21930
- JUNO_TASK_MCP_SERVER_PATH Path to MCP server executable
21931
- JUNO_TASK_CONFIG Configuration file path
21932
- JUNO_TASK_VERBOSE Enable verbose output (true/false)
21933
- JUNO_TASK_ENABLE_FEEDBACK Enable concurrent feedback collection (true/false)
22104
+ JUNO_CODE_SUBAGENT Default subagent (claude, cursor, codex, gemini)
22105
+ JUNO_CODE_MCP_SERVER_PATH Path to MCP server executable
22106
+ JUNO_CODE_CONFIG Configuration file path
22107
+ JUNO_CODE_VERBOSE Enable verbose output (true/false)
22108
+ JUNO_CODE_ENABLE_FEEDBACK Enable concurrent feedback collection (true/false)
22109
+ JUNO_CODE_MCP_TIMEOUT MCP server timeout in milliseconds
21934
22110
  JUNO_INTERACTIVE_FEEDBACK_MODE Enable interactive feedback mode (true/false)
21935
22111
  NO_COLOR Disable colored output (standard)
21936
22112
 
22113
+ ${chalk12.gray("Legacy variables (backward compatibility):")}
22114
+ JUNO_TASK_* All JUNO_TASK_* variables still supported
22115
+
21937
22116
  ${chalk12.blue.bold("Configuration:")}
21938
22117
  Configuration can be specified via:
21939
22118
  1. Command line arguments (highest priority)
@@ -21942,8 +22121,8 @@ ${chalk12.blue.bold("Configuration:")}
21942
22121
  4. Built-in defaults (lowest priority)
21943
22122
 
21944
22123
  ${chalk12.blue.bold("Support:")}
21945
- Documentation: https://github.com/owner/juno-task-ts#readme
21946
- Issues: https://github.com/owner/juno-task-ts/issues
22124
+ Documentation: https://github.com/owner/juno-code#readme
22125
+ Issues: https://github.com/owner/juno-code/issues
21947
22126
  License: MIT
21948
22127
 
21949
22128
  `);