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.js CHANGED
@@ -75,7 +75,7 @@ var __export = (target, all) => {
75
75
  exports.version = void 0;
76
76
  var init_version = __esm({
77
77
  "src/version.ts"() {
78
- exports.version = "1.0.45";
78
+ exports.version = "1.0.47";
79
79
  }
80
80
  });
81
81
  function isHeadlessEnvironment() {
@@ -4545,6 +4545,8 @@ var JunoTaskConfigSchema = zod.z.object({
4545
4545
  defaultBackend: BackendTypeSchema.describe("Default backend to use for task execution"),
4546
4546
  defaultMaxIterations: zod.z.number().int().min(1).max(1e3).describe("Default maximum number of iterations for task execution"),
4547
4547
  defaultModel: zod.z.string().optional().describe("Default model to use for the subagent"),
4548
+ // Project metadata
4549
+ mainTask: zod.z.string().optional().describe("Main task objective for the project"),
4548
4550
  // Logging settings
4549
4551
  logLevel: LogLevelSchema.describe("Logging level for the application"),
4550
4552
  logFile: zod.z.string().optional().describe("Path to log file (optional)"),
@@ -7517,8 +7519,9 @@ var ExecutionEngine = class extends events.EventEmitter {
7517
7519
  hour12: true,
7518
7520
  timeZoneName: "short"
7519
7521
  }) : "unknown";
7522
+ const sourceLabel = quotaInfo.source === "codex" ? "Codex" : "Claude";
7520
7523
  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`);
7521
- engineLogger.info(`\u2551 Claude Quota Limit Reached \u2551`);
7524
+ engineLogger.info(`\u2551 ${sourceLabel} Quota Limit Reached${" ".repeat(44 - sourceLabel.length - " Quota Limit Reached".length)}\u2551`);
7522
7525
  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`);
7523
7526
  engineLogger.info(`\u2551 Quota resets at: ${resetTimeStr2.padEnd(44)}\u2551`);
7524
7527
  engineLogger.info(`\u2551 Behavior: raise (exit immediately) \u2551`);
@@ -7528,7 +7531,7 @@ var ExecutionEngine = class extends events.EventEmitter {
7528
7531
  engineLogger.info(`\u2551 Or in config.json: { "onHourlyLimit": "wait" } \u2551`);
7529
7532
  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`);
7530
7533
  this.emit("quota-limit:raise", { context, quotaInfo });
7531
- throw new Error(`Claude quota limit reached. Quota resets at ${resetTimeStr2}. Use --on-hourly-limit wait to auto-retry.`);
7534
+ throw new Error(`${sourceLabel} quota limit reached. Quota resets at ${resetTimeStr2}. Use --on-hourly-limit wait to auto-retry.`);
7532
7535
  }
7533
7536
  const waitTimeMs = quotaInfo.sleepDurationMs;
7534
7537
  const maxWaitTimeMs = 12 * 60 * 60 * 1e3;
@@ -7544,8 +7547,9 @@ var ExecutionEngine = class extends events.EventEmitter {
7544
7547
  timeZoneName: "short"
7545
7548
  }) : "unknown";
7546
7549
  const durationStr = formatDuration(waitTimeMs);
7550
+ const waitSourceLabel = quotaInfo.source === "codex" ? "Codex" : "Claude";
7547
7551
  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`);
7548
- engineLogger.info(`\u2551 Claude Quota Limit Reached \u2551`);
7552
+ engineLogger.info(`\u2551 ${waitSourceLabel} Quota Limit Reached${" ".repeat(44 - waitSourceLabel.length - " Quota Limit Reached".length)}\u2551`);
7549
7553
  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`);
7550
7554
  engineLogger.info(`\u2551 Quota resets at: ${resetTimeStr.padEnd(44)}\u2551`);
7551
7555
  engineLogger.info(`\u2551 Sleeping for: ${durationStr.padEnd(44)}\u2551`);