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/README.md +1 -1
- package/dist/bin/cli.js +645 -43
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +645 -43
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -4
- package/dist/index.mjs.map +1 -1
- package/dist/templates/scripts/log_scanner.sh +790 -0
- package/dist/templates/services/claude.py +2 -1
- package/dist/templates/services/codex.py +5 -4
- package/dist/templates/skills/claude/.gitkeep +0 -0
- package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +25 -0
- package/dist/templates/skills/claude/ralph-loop/SKILL.md +43 -0
- package/dist/templates/skills/claude/ralph-loop/references/first_check.md +20 -0
- package/dist/templates/skills/claude/ralph-loop/references/implement.md +99 -0
- package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +293 -0
- package/dist/templates/skills/claude/understand-project/SKILL.md +39 -0
- package/dist/templates/skills/codex/.gitkeep +0 -0
- package/dist/templates/skills/codex/ralph-loop/SKILL.md +43 -0
- package/dist/templates/skills/codex/ralph-loop/references/first_check.md +20 -0
- package/dist/templates/skills/codex/ralph-loop/references/implement.md +99 -0
- package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +293 -0
- package/package.json +3 -2
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.
|
|
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
|
|
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(
|
|
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
|
|
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`);
|