juno-code 1.0.45 → 1.0.47

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/index.mjs CHANGED
@@ -44,7 +44,7 @@ var __export = (target, all) => {
44
44
  var version;
45
45
  var init_version = __esm({
46
46
  "src/version.ts"() {
47
- version = "1.0.45";
47
+ version = "1.0.47";
48
48
  }
49
49
  });
50
50
  function isHeadlessEnvironment() {
@@ -4514,6 +4514,8 @@ var JunoTaskConfigSchema = z.object({
4514
4514
  defaultBackend: BackendTypeSchema.describe("Default backend to use for task execution"),
4515
4515
  defaultMaxIterations: z.number().int().min(1).max(1e3).describe("Default maximum number of iterations for task execution"),
4516
4516
  defaultModel: z.string().optional().describe("Default model to use for the subagent"),
4517
+ // Project metadata
4518
+ mainTask: z.string().optional().describe("Main task objective for the project"),
4517
4519
  // Logging settings
4518
4520
  logLevel: LogLevelSchema.describe("Logging level for the application"),
4519
4521
  logFile: z.string().optional().describe("Path to log file (optional)"),
@@ -7486,8 +7488,9 @@ var ExecutionEngine = class extends EventEmitter {
7486
7488
  hour12: true,
7487
7489
  timeZoneName: "short"
7488
7490
  }) : "unknown";
7491
+ const sourceLabel = quotaInfo.source === "codex" ? "Codex" : "Claude";
7489
7492
  engineLogger.info(`\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557`);
7490
- engineLogger.info(`\u2551 Claude Quota Limit Reached \u2551`);
7493
+ engineLogger.info(`\u2551 ${sourceLabel} Quota Limit Reached${" ".repeat(44 - sourceLabel.length - " Quota Limit Reached".length)}\u2551`);
7491
7494
  engineLogger.info(`\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563`);
7492
7495
  engineLogger.info(`\u2551 Quota resets at: ${resetTimeStr2.padEnd(44)}\u2551`);
7493
7496
  engineLogger.info(`\u2551 Behavior: raise (exit immediately) \u2551`);
@@ -7497,7 +7500,7 @@ var ExecutionEngine = class extends EventEmitter {
7497
7500
  engineLogger.info(`\u2551 Or in config.json: { "onHourlyLimit": "wait" } \u2551`);
7498
7501
  engineLogger.info(`\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D`);
7499
7502
  this.emit("quota-limit:raise", { context, quotaInfo });
7500
- throw new Error(`Claude quota limit reached. Quota resets at ${resetTimeStr2}. Use --on-hourly-limit wait to auto-retry.`);
7503
+ throw new Error(`${sourceLabel} quota limit reached. Quota resets at ${resetTimeStr2}. Use --on-hourly-limit wait to auto-retry.`);
7501
7504
  }
7502
7505
  const waitTimeMs = quotaInfo.sleepDurationMs;
7503
7506
  const maxWaitTimeMs = 12 * 60 * 60 * 1e3;
@@ -7513,8 +7516,9 @@ var ExecutionEngine = class extends EventEmitter {
7513
7516
  timeZoneName: "short"
7514
7517
  }) : "unknown";
7515
7518
  const durationStr = formatDuration(waitTimeMs);
7519
+ const waitSourceLabel = quotaInfo.source === "codex" ? "Codex" : "Claude";
7516
7520
  engineLogger.info(`\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557`);
7517
- engineLogger.info(`\u2551 Claude Quota Limit Reached \u2551`);
7521
+ engineLogger.info(`\u2551 ${waitSourceLabel} Quota Limit Reached${" ".repeat(44 - waitSourceLabel.length - " Quota Limit Reached".length)}\u2551`);
7518
7522
  engineLogger.info(`\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563`);
7519
7523
  engineLogger.info(`\u2551 Quota resets at: ${resetTimeStr.padEnd(44)}\u2551`);
7520
7524
  engineLogger.info(`\u2551 Sleeping for: ${durationStr.padEnd(44)}\u2551`);