jonah-fleet 1.34.0 → 1.35.0
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/CHANGELOG.md +13 -0
- package/dist/commands/daemon.d.ts +1 -0
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +346 -12
- package/dist/lib/daemon-keys.d.ts +2 -0
- package/dist/lib/daemon-keys.d.ts.map +1 -1
- package/dist/lib/daemon.d.ts +21 -1
- package/dist/lib/daemon.d.ts.map +1 -1
- package/dist/lib/telemetry.d.ts +17 -0
- package/dist/lib/telemetry.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@ All notable changes to `jonah-fleet` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.35.0](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.34.0...v1.35.0) (2026-10-09)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **daemon,telemetry:** halt daemon when plan quota drops below 20% unless full burn enabled ([#663](https://github.com/Jonah-Projects/jonah-fleet/issues/663)) ([33e0dc2](https://github.com/Jonah-Projects/jonah-fleet/commit/33e0dc202585944ce209bf54475b8465e19507d1))
|
|
14
|
+
|
|
8
15
|
## [1.34.0](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.33.0...v1.34.0) (2026-10-03)
|
|
9
16
|
|
|
10
17
|
|
|
@@ -33,6 +40,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
33
40
|
|
|
34
41
|
* **peer-review,runner:** mention target PR with native GitHub links in run logs ([#599](https://github.com/Jonah-Projects/jonah-fleet/issues/599)) ([e22a1fb](https://github.com/Jonah-Projects/jonah-fleet/commit/e22a1fb42141b3748633289d9ac9582a70ffe631))
|
|
35
42
|
|
|
43
|
+
## [Unreleased] - 2026-10-08
|
|
44
|
+
|
|
45
|
+
### Features
|
|
46
|
+
|
|
47
|
+
* **daemon,telemetry:** halt daemon execution when plan quota drops below 20% in either 5h or 7-day windows, with `--full-burn` CLI flag, environment variable, manifest configuration, and interactive hotkey override
|
|
48
|
+
|
|
36
49
|
## [Unreleased] - 2026-10-03
|
|
37
50
|
|
|
38
51
|
### Features
|
|
@@ -6,6 +6,7 @@ export interface DaemonCommandOptions {
|
|
|
6
6
|
model?: string;
|
|
7
7
|
foreground?: boolean;
|
|
8
8
|
verbose?: boolean;
|
|
9
|
+
fullBurn?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export declare function runDaemonCommand(action?: string, options?: DaemonCommandOptions): Promise<void>;
|
|
11
12
|
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/commands/daemon.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkJzG"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8IA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1793,6 +1793,94 @@ async function fetchActualPlanQuota(options = {}) {
|
|
|
1793
1793
|
};
|
|
1794
1794
|
}
|
|
1795
1795
|
}
|
|
1796
|
+
function checkPlanQuotaDepletion(quota, options = {}) {
|
|
1797
|
+
const threshold = options.thresholdPct ?? 20;
|
|
1798
|
+
if (!quota || !quota.available) {
|
|
1799
|
+
return { depleted: false, thresholdPct: threshold };
|
|
1800
|
+
}
|
|
1801
|
+
const model = options.model?.toLowerCase() || "";
|
|
1802
|
+
const isClaude = model.includes("claude") || model.includes("gpt") || model.includes("openai") || model.includes("anthropic");
|
|
1803
|
+
let groupName = isClaude ? "Claude and GPT models" : "Gemini Models";
|
|
1804
|
+
let weeklyPct = isClaude ? quota.claudeWeeklyRemainingPct : quota.geminiWeeklyRemainingPct;
|
|
1805
|
+
let weeklyReset = isClaude ? quota.claudeWeeklyResetTime : quota.geminiWeeklyResetTime;
|
|
1806
|
+
let window5hPct = isClaude ? quota.claude5hRemainingPct : quota.gemini5hRemainingPct;
|
|
1807
|
+
let window5hReset = isClaude ? quota.claude5hResetTime : quota.gemini5hResetTime;
|
|
1808
|
+
if (quota.groups) {
|
|
1809
|
+
const targetGroup = quota.groups[groupName];
|
|
1810
|
+
if (targetGroup) {
|
|
1811
|
+
if (weeklyPct === void 0) {
|
|
1812
|
+
weeklyPct = targetGroup.weeklyRemainingPct;
|
|
1813
|
+
weeklyReset = targetGroup.weeklyResetTime;
|
|
1814
|
+
}
|
|
1815
|
+
if (window5hPct === void 0) {
|
|
1816
|
+
window5hPct = targetGroup.window5hRemainingPct;
|
|
1817
|
+
window5hReset = targetGroup.window5hResetTime;
|
|
1818
|
+
}
|
|
1819
|
+
if (weeklyPct === void 0 || window5hPct === void 0) {
|
|
1820
|
+
for (const b of targetGroup.buckets || []) {
|
|
1821
|
+
if ((b.window === "5h" || b.id.includes("5h")) && window5hPct === void 0) {
|
|
1822
|
+
window5hPct = b.remainingPercentage;
|
|
1823
|
+
window5hReset = b.resetTime;
|
|
1824
|
+
} else if ((b.window === "weekly" || b.id.includes("weekly")) && weeklyPct === void 0) {
|
|
1825
|
+
weeklyPct = b.remainingPercentage;
|
|
1826
|
+
weeklyReset = b.resetTime;
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
} else if (weeklyPct === void 0 && window5hPct === void 0) {
|
|
1831
|
+
const groupKeys = Object.keys(quota.groups);
|
|
1832
|
+
if (groupKeys.length > 0) {
|
|
1833
|
+
const fallbackGroup = quota.groups[groupKeys[0]];
|
|
1834
|
+
if (fallbackGroup) {
|
|
1835
|
+
groupName = fallbackGroup.name;
|
|
1836
|
+
weeklyPct = fallbackGroup.weeklyRemainingPct;
|
|
1837
|
+
weeklyReset = fallbackGroup.weeklyResetTime;
|
|
1838
|
+
window5hPct = fallbackGroup.window5hRemainingPct;
|
|
1839
|
+
window5hReset = fallbackGroup.window5hResetTime;
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
const is5hDepleted = window5hPct !== void 0 && window5hPct < threshold;
|
|
1845
|
+
const isWeeklyDepleted = weeklyPct !== void 0 && weeklyPct < threshold;
|
|
1846
|
+
if (is5hDepleted || isWeeklyDepleted) {
|
|
1847
|
+
if (is5hDepleted && isWeeklyDepleted) {
|
|
1848
|
+
const lowerWindow = window5hPct <= weeklyPct ? "5h" : "7days";
|
|
1849
|
+
const remainingPct = Math.min(window5hPct, weeklyPct);
|
|
1850
|
+
const resetTime = lowerWindow === "5h" ? window5hReset : weeklyReset;
|
|
1851
|
+
return {
|
|
1852
|
+
depleted: true,
|
|
1853
|
+
thresholdPct: threshold,
|
|
1854
|
+
window: lowerWindow,
|
|
1855
|
+
remainingPct,
|
|
1856
|
+
resetTime,
|
|
1857
|
+
groupName,
|
|
1858
|
+
message: `${groupName} quota is below ${threshold}% in both 5h (${window5hPct.toFixed(1)}%) and 7days (${weeklyPct.toFixed(1)}%) windows`
|
|
1859
|
+
};
|
|
1860
|
+
}
|
|
1861
|
+
if (is5hDepleted) {
|
|
1862
|
+
return {
|
|
1863
|
+
depleted: true,
|
|
1864
|
+
thresholdPct: threshold,
|
|
1865
|
+
window: "5h",
|
|
1866
|
+
remainingPct: window5hPct,
|
|
1867
|
+
resetTime: window5hReset,
|
|
1868
|
+
groupName,
|
|
1869
|
+
message: `${groupName} 5h quota is at ${window5hPct.toFixed(1)}% remaining (<${threshold}% floor)`
|
|
1870
|
+
};
|
|
1871
|
+
}
|
|
1872
|
+
return {
|
|
1873
|
+
depleted: true,
|
|
1874
|
+
thresholdPct: threshold,
|
|
1875
|
+
window: "7days",
|
|
1876
|
+
remainingPct: weeklyPct,
|
|
1877
|
+
resetTime: weeklyReset,
|
|
1878
|
+
groupName,
|
|
1879
|
+
message: `${groupName} 7days weekly quota is at ${weeklyPct.toFixed(1)}% remaining (<${threshold}% floor)`
|
|
1880
|
+
};
|
|
1881
|
+
}
|
|
1882
|
+
return { depleted: false, thresholdPct: threshold };
|
|
1883
|
+
}
|
|
1796
1884
|
function formatPlanQuotaSummary(quota, options = {}) {
|
|
1797
1885
|
if (!quota || !quota.available) {
|
|
1798
1886
|
return "Plan Quota: Unavailable";
|
|
@@ -6398,6 +6486,10 @@ var KeyboardController = class {
|
|
|
6398
6486
|
this.options.onToggleVerbose?.();
|
|
6399
6487
|
return;
|
|
6400
6488
|
}
|
|
6489
|
+
if (str === "b" || str === "B" || keyName === "b") {
|
|
6490
|
+
this.options.onToggleFullBurn?.();
|
|
6491
|
+
return;
|
|
6492
|
+
}
|
|
6401
6493
|
if (str === "l" || str === "L" || keyName === "l") {
|
|
6402
6494
|
this.options.onTailLog?.();
|
|
6403
6495
|
return;
|
|
@@ -6589,6 +6681,7 @@ function printKeybindingCheatSheet() {
|
|
|
6589
6681
|
console.log(` ${pc13.bold(pc13.green("p"))} Pause / resume automated polling intervals`);
|
|
6590
6682
|
console.log(` ${pc13.bold(pc13.green("s"))} Print current daemon status summary card`);
|
|
6591
6683
|
console.log(` ${pc13.bold(pc13.green("v"))} Toggle verbose streaming logging live`);
|
|
6684
|
+
console.log(` ${pc13.bold(pc13.green("b"))} Toggle full burn mode (override <20% plan quota floor)`);
|
|
6592
6685
|
console.log(` ${pc13.bold(pc13.green("l"))} Tail recent lines from .jonah-fleet/daemon.log`);
|
|
6593
6686
|
console.log(` ${pc13.bold(pc13.green("w"))} Inspect active worktrees and clean stale ones`);
|
|
6594
6687
|
console.log(` ${pc13.bold(pc13.green("q"))} Graceful shutdown (waits for active routine to finish)`);
|
|
@@ -6622,6 +6715,11 @@ function printDaemonStatusSummary(options) {
|
|
|
6622
6715
|
` Verbose Mode: ${verbose ? pc13.green("ENABLED (streaming tokens)") : pc13.gray("DISABLED (compact spinner)")}`
|
|
6623
6716
|
);
|
|
6624
6717
|
}
|
|
6718
|
+
if (state.fullBurn !== void 0) {
|
|
6719
|
+
console.log(
|
|
6720
|
+
` Full Burn: ${state.fullBurn ? pc13.red(pc13.bold("ENABLED (quota floor bypassed)")) : pc13.green("DISABLED (stops at <20% quota)")}`
|
|
6721
|
+
);
|
|
6722
|
+
}
|
|
6625
6723
|
if (pendingRoutine) {
|
|
6626
6724
|
console.log(` Queued Routine: ${pc13.cyan(pc13.bold(pendingRoutine))}`);
|
|
6627
6725
|
}
|
|
@@ -6680,10 +6778,11 @@ function formatDaemonStatusLine(options = {}) {
|
|
|
6680
6778
|
const columns = options.columns !== void 0 ? options.columns : process.stderr.columns || 80;
|
|
6681
6779
|
const maxCols = Math.max(20, (columns || 80) - 2);
|
|
6682
6780
|
const includeTip = columns >= 55;
|
|
6781
|
+
const burnBadge = options.fullBurn ? pc13.red(" [FULL BURN]") : "";
|
|
6683
6782
|
let core;
|
|
6684
6783
|
if (options.isPaused) {
|
|
6685
6784
|
const queueStr = options.pendingRoutine ? pc13.cyan(` [Queued: ${options.pendingRoutine}]`) : "";
|
|
6686
|
-
core = `${pc13.dim("[" + timeString + "]")} \u23F8 ${pc13.yellow("PAUSED")}${queueStr}`;
|
|
6785
|
+
core = `${pc13.dim("[" + timeString + "]")} \u23F8 ${pc13.yellow("PAUSED")}${burnBadge}${queueStr}`;
|
|
6687
6786
|
} else {
|
|
6688
6787
|
const nextCheck = options.nextCheckTime !== void 0 ? options.nextCheckTime : nowMs;
|
|
6689
6788
|
const diffMs = Math.max(0, nextCheck - nowMs);
|
|
@@ -6693,7 +6792,7 @@ function formatDaemonStatusLine(options = {}) {
|
|
|
6693
6792
|
const timeStr = `${mins}m ${secs < 10 ? "0" : ""}${secs}s`;
|
|
6694
6793
|
const prStr = options.lastOpenPRCount !== void 0 ? ` (${options.lastOpenPRCount} ready PRs)` : "";
|
|
6695
6794
|
const queueStr = options.pendingRoutine ? pc13.cyan(` [Queued: ${options.pendingRoutine}]`) : "";
|
|
6696
|
-
core = `${pc13.dim("[" + timeString + "]")} \u26A1 ${pc13.dim("Watchdog Idle \xB7 Next check in " + timeStr + prStr)}${queueStr}`;
|
|
6795
|
+
core = `${pc13.dim("[" + timeString + "]")} \u26A1 ${pc13.dim("Watchdog Idle \xB7 Next check in " + timeStr + prStr)}${burnBadge}${queueStr}`;
|
|
6697
6796
|
}
|
|
6698
6797
|
if (!includeTip) {
|
|
6699
6798
|
return truncateAnsi(core, maxCols);
|
|
@@ -6751,6 +6850,46 @@ function isDaemonRunning(repoRoot) {
|
|
|
6751
6850
|
return false;
|
|
6752
6851
|
}
|
|
6753
6852
|
}
|
|
6853
|
+
function isFullBurnEnabled(options = {}, state, repoRoot) {
|
|
6854
|
+
if (options.fullBurn === true || state?.fullBurn === true) return true;
|
|
6855
|
+
if (process.env.JONAH_FLEET_FULL_BURN === "true" || process.env.JONAH_FLEET_FULL_BURN === "1" || process.env.FULL_BURN === "true" || process.env.FULL_BURN === "1") {
|
|
6856
|
+
return true;
|
|
6857
|
+
}
|
|
6858
|
+
if (repoRoot) {
|
|
6859
|
+
try {
|
|
6860
|
+
const manifest = loadManifest(repoRoot);
|
|
6861
|
+
if (manifest?.budgets?.fullBurn === true || manifest?.daemon?.fullBurn === true) {
|
|
6862
|
+
return true;
|
|
6863
|
+
}
|
|
6864
|
+
} catch {
|
|
6865
|
+
}
|
|
6866
|
+
}
|
|
6867
|
+
return false;
|
|
6868
|
+
}
|
|
6869
|
+
async function checkDaemonQuotaGuard(repoRoot, options = {}, state, cachedQuota) {
|
|
6870
|
+
if (isFullBurnEnabled(options, state, repoRoot)) {
|
|
6871
|
+
return { shouldStop: false };
|
|
6872
|
+
}
|
|
6873
|
+
let quota = cachedQuota;
|
|
6874
|
+
if (!quota) {
|
|
6875
|
+
if (options.getPlanQuota) {
|
|
6876
|
+
quota = await options.getPlanQuota(repoRoot);
|
|
6877
|
+
} else {
|
|
6878
|
+
quota = await fetchActualPlanQuota({ repoRoot });
|
|
6879
|
+
}
|
|
6880
|
+
}
|
|
6881
|
+
if (!quota || !quota.available) {
|
|
6882
|
+
return { shouldStop: false };
|
|
6883
|
+
}
|
|
6884
|
+
const depletion = checkPlanQuotaDepletion(quota, {
|
|
6885
|
+
thresholdPct: options.quotaThresholdPct ?? 20,
|
|
6886
|
+
model: options.model
|
|
6887
|
+
});
|
|
6888
|
+
if (depletion.depleted) {
|
|
6889
|
+
return { shouldStop: true, depletion };
|
|
6890
|
+
}
|
|
6891
|
+
return { shouldStop: false };
|
|
6892
|
+
}
|
|
6754
6893
|
function isBotLogin(login) {
|
|
6755
6894
|
if (!login) return false;
|
|
6756
6895
|
const l = login.toLowerCase().trim();
|
|
@@ -7072,9 +7211,16 @@ async function startBackgroundDaemon(repoRoot, options = {}) {
|
|
|
7072
7211
|
const existing = readDaemonState(repoRoot);
|
|
7073
7212
|
throw new Error(`Daemon is already running with PID ${existing?.pid}`);
|
|
7074
7213
|
}
|
|
7214
|
+
const guard = await checkDaemonQuotaGuard(repoRoot, options);
|
|
7215
|
+
if (guard.shouldStop) {
|
|
7216
|
+
throw new Error(
|
|
7217
|
+
`Plan quota is below 20% (${guard.depletion?.message}). Daemon stopped to protect compute budget. Run with --full-burn to bypass this guard.`
|
|
7218
|
+
);
|
|
7219
|
+
}
|
|
7075
7220
|
const reviewInterval = options.reviewInterval || 3;
|
|
7076
7221
|
const autoworkInterval = options.autoworkInterval || options.interval || 30;
|
|
7077
7222
|
const routines = options.routines || ["peer-review", "autowork"];
|
|
7223
|
+
const fullBurn = isFullBurnEnabled(options, void 0, repoRoot);
|
|
7078
7224
|
const logFilePath = path15.join(repoRoot, ".jonah-fleet", "daemon.log");
|
|
7079
7225
|
fs15.mkdirSync(path15.dirname(logFilePath), { recursive: true });
|
|
7080
7226
|
const logFd = fs15.openSync(logFilePath, "a");
|
|
@@ -7095,11 +7241,14 @@ async function startBackgroundDaemon(repoRoot, options = {}) {
|
|
|
7095
7241
|
if (options.verbose) {
|
|
7096
7242
|
args.push("--verbose");
|
|
7097
7243
|
}
|
|
7244
|
+
if (fullBurn) {
|
|
7245
|
+
args.push("--full-burn");
|
|
7246
|
+
}
|
|
7098
7247
|
const child = spawn2(process.execPath, [cliPath, ...args], {
|
|
7099
7248
|
cwd: repoRoot,
|
|
7100
7249
|
detached: true,
|
|
7101
7250
|
stdio: ["ignore", logFd, logFd],
|
|
7102
|
-
env: { ...process.env, JONAH_FLEET_DAEMON: "true" }
|
|
7251
|
+
env: { ...process.env, JONAH_FLEET_DAEMON: "true", ...fullBurn ? { JONAH_FLEET_FULL_BURN: "true" } : {} }
|
|
7103
7252
|
});
|
|
7104
7253
|
child.unref();
|
|
7105
7254
|
const state = {
|
|
@@ -7108,7 +7257,8 @@ async function startBackgroundDaemon(repoRoot, options = {}) {
|
|
|
7108
7257
|
reviewIntervalMinutes: reviewInterval,
|
|
7109
7258
|
autoworkIntervalMinutes: autoworkInterval,
|
|
7110
7259
|
routines,
|
|
7111
|
-
status: "idle"
|
|
7260
|
+
status: "idle",
|
|
7261
|
+
fullBurn
|
|
7112
7262
|
};
|
|
7113
7263
|
writeDaemonState(repoRoot, state);
|
|
7114
7264
|
return state;
|
|
@@ -7246,9 +7396,22 @@ async function drainReviewQueue(drainOptions) {
|
|
|
7246
7396
|
runRoutine = runLocalRoutine,
|
|
7247
7397
|
onAttempted,
|
|
7248
7398
|
failureCooldowns,
|
|
7249
|
-
onQuotaExhausted
|
|
7399
|
+
onQuotaExhausted,
|
|
7400
|
+
onQuotaDepleted
|
|
7250
7401
|
} = drainOptions;
|
|
7251
7402
|
if (isStopping()) return;
|
|
7403
|
+
const guard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
7404
|
+
if (guard.shouldStop) {
|
|
7405
|
+
if (clearTicker) clearTicker();
|
|
7406
|
+
console.warn(
|
|
7407
|
+
pc14.red(
|
|
7408
|
+
`
|
|
7409
|
+
\u{1F6D1} Peer Review Watchdog stopped: Plan quota is below 20% (${guard.depletion?.message}).`
|
|
7410
|
+
)
|
|
7411
|
+
);
|
|
7412
|
+
onQuotaDepleted?.(guard.depletion);
|
|
7413
|
+
return;
|
|
7414
|
+
}
|
|
7252
7415
|
if (state) {
|
|
7253
7416
|
state.lastReviewCheckAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7254
7417
|
writeDaemonState(repoRoot, state);
|
|
@@ -7292,6 +7455,18 @@ async function drainReviewQueue(drainOptions) {
|
|
|
7292
7455
|
const currentPR = candidatePRs[0];
|
|
7293
7456
|
const targetLabel = formatTargetLabel(`PR #${currentPR.number}`, currentPR.title);
|
|
7294
7457
|
let targetPRStr = targetLabel;
|
|
7458
|
+
const loopGuard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
7459
|
+
if (loopGuard.shouldStop) {
|
|
7460
|
+
if (clearTicker) clearTicker();
|
|
7461
|
+
console.warn(
|
|
7462
|
+
pc14.red(
|
|
7463
|
+
`
|
|
7464
|
+
\u{1F6D1} Peer Review Watchdog stopped: Plan quota is below 20% (${loopGuard.depletion?.message}).`
|
|
7465
|
+
)
|
|
7466
|
+
);
|
|
7467
|
+
onQuotaDepleted?.(loopGuard.depletion);
|
|
7468
|
+
break;
|
|
7469
|
+
}
|
|
7295
7470
|
try {
|
|
7296
7471
|
if (clearTicker) clearTicker();
|
|
7297
7472
|
if (state) {
|
|
@@ -7325,6 +7500,20 @@ async function drainReviewQueue(drainOptions) {
|
|
|
7325
7500
|
}
|
|
7326
7501
|
}
|
|
7327
7502
|
});
|
|
7503
|
+
if (result.planQuota) {
|
|
7504
|
+
const postGuard = await checkDaemonQuotaGuard(repoRoot, options, state, result.planQuota);
|
|
7505
|
+
if (postGuard.shouldStop) {
|
|
7506
|
+
if (clearTicker) clearTicker();
|
|
7507
|
+
console.warn(
|
|
7508
|
+
pc14.red(
|
|
7509
|
+
`
|
|
7510
|
+
\u{1F6D1} Peer Review Watchdog stopped: Plan quota dropped below 20% after routine (${postGuard.depletion?.message}).`
|
|
7511
|
+
)
|
|
7512
|
+
);
|
|
7513
|
+
onQuotaDepleted?.(postGuard.depletion);
|
|
7514
|
+
break;
|
|
7515
|
+
}
|
|
7516
|
+
}
|
|
7328
7517
|
const activeTargetStr = targetPRStr;
|
|
7329
7518
|
const match = activeTargetStr?.match(/PR\s*#?([0-9]+)/i);
|
|
7330
7519
|
const prNum = match ? parseInt(match[1], 10) : currentPR.number;
|
|
@@ -7437,6 +7626,18 @@ async function performAutoworkScan(scanOptions) {
|
|
|
7437
7626
|
onDiagnosticCard
|
|
7438
7627
|
} = scanOptions;
|
|
7439
7628
|
if (isStopping()) return { executed: false, reason: "stopping" };
|
|
7629
|
+
const initialGuard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
7630
|
+
if (initialGuard.shouldStop) {
|
|
7631
|
+
if (clearTicker) clearTicker();
|
|
7632
|
+
console.warn(
|
|
7633
|
+
pc14.red(
|
|
7634
|
+
`
|
|
7635
|
+
\u{1F6D1} Autowork Backlog Scan stopped: Plan quota depleted (<20% remaining). ${initialGuard.depletion?.message}`
|
|
7636
|
+
)
|
|
7637
|
+
);
|
|
7638
|
+
scanOptions.onQuotaDepleted?.(initialGuard.depletion);
|
|
7639
|
+
return { executed: false, reason: "quota_depleted" };
|
|
7640
|
+
}
|
|
7440
7641
|
const routines = options.routines || ["peer-review", "autowork"];
|
|
7441
7642
|
if (routines.includes("peer-review")) {
|
|
7442
7643
|
const pendingPRs = (await getPRs(repoRoot)).length;
|
|
@@ -7457,7 +7658,8 @@ async function performAutoworkScan(scanOptions) {
|
|
|
7457
7658
|
runRoutine,
|
|
7458
7659
|
onAttempted: scanOptions.onAttempted,
|
|
7459
7660
|
failureCooldowns: scanOptions.failureCooldowns,
|
|
7460
|
-
onQuotaExhausted: scanOptions.onQuotaExhausted
|
|
7661
|
+
onQuotaExhausted: scanOptions.onQuotaExhausted,
|
|
7662
|
+
onQuotaDepleted: scanOptions.onQuotaDepleted
|
|
7461
7663
|
});
|
|
7462
7664
|
const remainingPRs = (await getPRs(repoRoot)).length;
|
|
7463
7665
|
if (remainingPRs > 0) {
|
|
@@ -7507,6 +7709,20 @@ async function performAutoworkScan(scanOptions) {
|
|
|
7507
7709
|
}
|
|
7508
7710
|
});
|
|
7509
7711
|
recordDaemonSessionUsage(repoRoot, state, result.usage);
|
|
7712
|
+
if (result.planQuota) {
|
|
7713
|
+
const postRoutineGuard = await checkDaemonQuotaGuard(repoRoot, options, state, result.planQuota);
|
|
7714
|
+
if (postRoutineGuard.shouldStop) {
|
|
7715
|
+
if (clearTicker) clearTicker();
|
|
7716
|
+
console.warn(
|
|
7717
|
+
pc14.red(
|
|
7718
|
+
`
|
|
7719
|
+
\u{1F6D1} Autowork Scan stopped: Plan quota dropped below 20% after routine (${postRoutineGuard.depletion?.message}).`
|
|
7720
|
+
)
|
|
7721
|
+
);
|
|
7722
|
+
scanOptions.onQuotaDepleted?.(postRoutineGuard.depletion);
|
|
7723
|
+
return { executed: true, reason: "quota_depleted" };
|
|
7724
|
+
}
|
|
7725
|
+
}
|
|
7510
7726
|
const isQuota = result.quotaPaused || !result.success && detectQuotaExceeded(result.output || "", result.stderr || "").isQuota;
|
|
7511
7727
|
if (isQuota) {
|
|
7512
7728
|
const resetInfo = result.quotaResetInfo || detectQuotaExceeded(result.output || "", result.stderr || "").resetInfo;
|
|
@@ -7552,7 +7768,8 @@ function initializeDaemonState(repoRoot, options = {}) {
|
|
|
7552
7768
|
routines,
|
|
7553
7769
|
status: "idle",
|
|
7554
7770
|
evaluatedPRs: existingState?.evaluatedPRs,
|
|
7555
|
-
failureCooldowns: existingState?.failureCooldowns
|
|
7771
|
+
failureCooldowns: existingState?.failureCooldowns,
|
|
7772
|
+
fullBurn: isFullBurnEnabled(options, existingState, repoRoot)
|
|
7556
7773
|
};
|
|
7557
7774
|
writeDaemonState(repoRoot, state);
|
|
7558
7775
|
const failureCooldowns = /* @__PURE__ */ new Map();
|
|
@@ -7568,6 +7785,21 @@ async function runDaemonLoop(repoRoot, options = {}) {
|
|
|
7568
7785
|
const autoworkInterval = options.autoworkInterval || options.interval || 30;
|
|
7569
7786
|
const routines = options.routines || ["peer-review", "autowork"];
|
|
7570
7787
|
const { state, failureCooldowns } = initializeDaemonState(repoRoot, options);
|
|
7788
|
+
const initialGuard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
7789
|
+
if (initialGuard.shouldStop) {
|
|
7790
|
+
console.warn(
|
|
7791
|
+
pc14.red(
|
|
7792
|
+
`
|
|
7793
|
+
\u{1F6D1} Daemon stopped: Plan quota is below 20% (${initialGuard.depletion?.message}).
|
|
7794
|
+
Remaining quota must stay >= 20% for 5h and 7days windows.
|
|
7795
|
+
To bypass this safety limit, start with --full-burn or set FULL_BURN=true.
|
|
7796
|
+
`
|
|
7797
|
+
)
|
|
7798
|
+
);
|
|
7799
|
+
clearDaemonState(repoRoot);
|
|
7800
|
+
return;
|
|
7801
|
+
}
|
|
7802
|
+
const isFullBurn = isFullBurnEnabled(options, state, repoRoot);
|
|
7571
7803
|
console.log(
|
|
7572
7804
|
renderFleetBanner({
|
|
7573
7805
|
command: "DAEMON",
|
|
@@ -7577,8 +7809,9 @@ async function runDaemonLoop(repoRoot, options = {}) {
|
|
|
7577
7809
|
{ label: "Review Watchdog", value: `Every ${reviewInterval}m (zero-token preflight)` },
|
|
7578
7810
|
{ label: "Autowork Scan", value: `Every ${autoworkInterval}m` },
|
|
7579
7811
|
{ label: "Routines", value: routines.join(", ") },
|
|
7812
|
+
{ label: "Full Burn", value: isFullBurn ? "ENABLED" : "DISABLED (stops at <20% quota)" },
|
|
7580
7813
|
{ label: "Target", value: repoRoot },
|
|
7581
|
-
{ label: "Hotkeys", value: "'r' review \xB7 'a' autowork \xB7 'p' pause \xB7 's' status \xB7 '?' help" }
|
|
7814
|
+
{ label: "Hotkeys", value: "'r' review \xB7 'a' autowork \xB7 'p' pause \xB7 's' status \xB7 'b' burn \xB7 '?' help" }
|
|
7582
7815
|
]
|
|
7583
7816
|
})
|
|
7584
7817
|
);
|
|
@@ -7667,7 +7900,10 @@ Stopping local agent daemon...`));
|
|
|
7667
7900
|
getPRs: getPRsFn,
|
|
7668
7901
|
runRoutine: runRoutineFn,
|
|
7669
7902
|
failureCooldowns,
|
|
7670
|
-
onQuotaExhausted: handleQuotaPause
|
|
7903
|
+
onQuotaExhausted: handleQuotaPause,
|
|
7904
|
+
onQuotaDepleted: async () => {
|
|
7905
|
+
await handleStop();
|
|
7906
|
+
}
|
|
7671
7907
|
});
|
|
7672
7908
|
try {
|
|
7673
7909
|
const prs = await getPRsFn(repoRoot);
|
|
@@ -7725,7 +7961,10 @@ Stopping local agent daemon...`));
|
|
|
7725
7961
|
getBacklog: options.getBacklog || getBacklogTriageReport,
|
|
7726
7962
|
runRoutine: runRoutineFn,
|
|
7727
7963
|
failureCooldowns,
|
|
7728
|
-
onQuotaExhausted: handleQuotaPause
|
|
7964
|
+
onQuotaExhausted: handleQuotaPause,
|
|
7965
|
+
onQuotaDepleted: async () => {
|
|
7966
|
+
await handleStop();
|
|
7967
|
+
}
|
|
7729
7968
|
});
|
|
7730
7969
|
try {
|
|
7731
7970
|
const prs = await getPRsFn(repoRoot);
|
|
@@ -7786,6 +8025,19 @@ Stopping local agent daemon...`));
|
|
|
7786
8025
|
};
|
|
7787
8026
|
const runTargetedReview = async (prNumber) => {
|
|
7788
8027
|
if (isStopping || isWorking) return;
|
|
8028
|
+
const guard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
8029
|
+
if (guard.shouldStop) {
|
|
8030
|
+
clearTicker();
|
|
8031
|
+
console.warn(
|
|
8032
|
+
pc14.red(
|
|
8033
|
+
`
|
|
8034
|
+
\u{1F6D1} Cannot start targeted review: Plan quota is below 20% (${guard.depletion?.message}).
|
|
8035
|
+
Press 'b' to toggle full-burn mode if you wish to proceed.`
|
|
8036
|
+
)
|
|
8037
|
+
);
|
|
8038
|
+
updateTicker();
|
|
8039
|
+
return;
|
|
8040
|
+
}
|
|
7789
8041
|
try {
|
|
7790
8042
|
isWorking = true;
|
|
7791
8043
|
clearTicker();
|
|
@@ -7810,6 +8062,20 @@ Stopping local agent daemon...`));
|
|
|
7810
8062
|
writeDaemonState(repoRoot, state);
|
|
7811
8063
|
}
|
|
7812
8064
|
});
|
|
8065
|
+
if (result.planQuota) {
|
|
8066
|
+
const postGuard = await checkDaemonQuotaGuard(repoRoot, options, state, result.planQuota);
|
|
8067
|
+
if (postGuard.shouldStop) {
|
|
8068
|
+
clearTicker();
|
|
8069
|
+
console.warn(
|
|
8070
|
+
pc14.red(
|
|
8071
|
+
`
|
|
8072
|
+
\u{1F6D1} Daemon stopped after targeted review: Plan quota dropped below 20% (${postGuard.depletion?.message}).`
|
|
8073
|
+
)
|
|
8074
|
+
);
|
|
8075
|
+
await handleStop();
|
|
8076
|
+
return;
|
|
8077
|
+
}
|
|
8078
|
+
}
|
|
7813
8079
|
if (result.success) {
|
|
7814
8080
|
const outcome = result.outcome || detectPeerReviewOutcome({
|
|
7815
8081
|
output: result.output,
|
|
@@ -7853,6 +8119,19 @@ Stopping local agent daemon...`));
|
|
|
7853
8119
|
};
|
|
7854
8120
|
const runTargetedAutowork = async (issueNumber) => {
|
|
7855
8121
|
if (isStopping || isWorking) return;
|
|
8122
|
+
const guard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
8123
|
+
if (guard.shouldStop) {
|
|
8124
|
+
clearTicker();
|
|
8125
|
+
console.warn(
|
|
8126
|
+
pc14.red(
|
|
8127
|
+
`
|
|
8128
|
+
\u{1F6D1} Cannot start targeted autowork: Plan quota is below 20% (${guard.depletion?.message}).
|
|
8129
|
+
Press 'b' to toggle full-burn mode if you wish to proceed.`
|
|
8130
|
+
)
|
|
8131
|
+
);
|
|
8132
|
+
updateTicker();
|
|
8133
|
+
return;
|
|
8134
|
+
}
|
|
7856
8135
|
try {
|
|
7857
8136
|
isWorking = true;
|
|
7858
8137
|
clearTicker();
|
|
@@ -7877,6 +8156,20 @@ Stopping local agent daemon...`));
|
|
|
7877
8156
|
writeDaemonState(repoRoot, state);
|
|
7878
8157
|
}
|
|
7879
8158
|
});
|
|
8159
|
+
if (result.planQuota) {
|
|
8160
|
+
const postGuard = await checkDaemonQuotaGuard(repoRoot, options, state, result.planQuota);
|
|
8161
|
+
if (postGuard.shouldStop) {
|
|
8162
|
+
clearTicker();
|
|
8163
|
+
console.warn(
|
|
8164
|
+
pc14.red(
|
|
8165
|
+
`
|
|
8166
|
+
\u{1F6D1} Daemon stopped after targeted autowork: Plan quota dropped below 20% (${postGuard.depletion?.message}).`
|
|
8167
|
+
)
|
|
8168
|
+
);
|
|
8169
|
+
await handleStop();
|
|
8170
|
+
return;
|
|
8171
|
+
}
|
|
8172
|
+
}
|
|
7880
8173
|
if (result.success) {
|
|
7881
8174
|
console.log(pc14.green(`\u2713 Targeted autowork on Issue #${issueNumber} completed successfully.
|
|
7882
8175
|
`));
|
|
@@ -8071,6 +8364,27 @@ ${pc14.cyan("Enter Issue # to work (Esc/Enter to cancel):")} `, {
|
|
|
8071
8364
|
}
|
|
8072
8365
|
updateTicker();
|
|
8073
8366
|
},
|
|
8367
|
+
onToggleFullBurn: () => {
|
|
8368
|
+
if (isStopping || isGracefulStopping) return;
|
|
8369
|
+
options.fullBurn = !isFullBurnEnabled(options, state, repoRoot);
|
|
8370
|
+
if (state) {
|
|
8371
|
+
state.fullBurn = options.fullBurn;
|
|
8372
|
+
writeDaemonState(repoRoot, state);
|
|
8373
|
+
}
|
|
8374
|
+
clearTicker();
|
|
8375
|
+
if (options.fullBurn) {
|
|
8376
|
+
console.log(
|
|
8377
|
+
pc14.red(`
|
|
8378
|
+
[${(/* @__PURE__ */ new Date()).toLocaleTimeString()}] \u{1F525} Full burn mode ENABLED (ignoring <20% quota floor).`)
|
|
8379
|
+
);
|
|
8380
|
+
} else {
|
|
8381
|
+
console.log(
|
|
8382
|
+
pc14.green(`
|
|
8383
|
+
[${(/* @__PURE__ */ new Date()).toLocaleTimeString()}] \u{1F6E1}\uFE0F Full burn mode DISABLED (daemon will stop if quota < 20%).`)
|
|
8384
|
+
);
|
|
8385
|
+
}
|
|
8386
|
+
updateTicker();
|
|
8387
|
+
},
|
|
8074
8388
|
onTailLog: () => {
|
|
8075
8389
|
if (isStopping || isGracefulStopping) return;
|
|
8076
8390
|
clearTicker();
|
|
@@ -8165,6 +8479,18 @@ ${pc14.cyan("Enter Issue # to work (Esc/Enter to cancel):")} `, {
|
|
|
8165
8479
|
isTicking = true;
|
|
8166
8480
|
try {
|
|
8167
8481
|
if (!isPaused) {
|
|
8482
|
+
const tickGuard = await checkDaemonQuotaGuard(repoRoot, options, state);
|
|
8483
|
+
if (tickGuard.shouldStop) {
|
|
8484
|
+
clearTicker();
|
|
8485
|
+
console.warn(
|
|
8486
|
+
pc14.red(
|
|
8487
|
+
`
|
|
8488
|
+
\u{1F6D1} Daemon stopped by quota guard: Plan quota is below 20% (${tickGuard.depletion?.message}). Stopping daemon...`
|
|
8489
|
+
)
|
|
8490
|
+
);
|
|
8491
|
+
await handleStop();
|
|
8492
|
+
return;
|
|
8493
|
+
}
|
|
8168
8494
|
const now = Date.now();
|
|
8169
8495
|
if (routines.includes("peer-review") && now >= nextReviewCheckTime) {
|
|
8170
8496
|
await performReviewDrain();
|
|
@@ -8200,7 +8526,8 @@ async function runDaemonCommand(action, options = {}) {
|
|
|
8200
8526
|
routines: options.routines ? options.routines.split(",").map((r) => r.trim()) : void 0,
|
|
8201
8527
|
model: options.model,
|
|
8202
8528
|
foreground: options.foreground,
|
|
8203
|
-
verbose: options.verbose
|
|
8529
|
+
verbose: options.verbose,
|
|
8530
|
+
fullBurn: options.fullBurn
|
|
8204
8531
|
};
|
|
8205
8532
|
if (act === "start") {
|
|
8206
8533
|
if (options.foreground) {
|
|
@@ -8224,6 +8551,7 @@ async function runDaemonCommand(action, options = {}) {
|
|
|
8224
8551
|
{ label: "Review Watchdog", value: `Every ${state2.reviewIntervalMinutes}m (zero-token preflight)` },
|
|
8225
8552
|
{ label: "Autowork Scan", value: `Every ${state2.autoworkIntervalMinutes}m` },
|
|
8226
8553
|
{ label: "Routines", value: state2.routines.join(", ") },
|
|
8554
|
+
{ label: "Full Burn", value: state2.fullBurn ? "ENABLED" : "DISABLED (stops at <20% quota)" },
|
|
8227
8555
|
{ label: "Log", value: ".jonah-fleet/daemon.log" }
|
|
8228
8556
|
]
|
|
8229
8557
|
})
|
|
@@ -8278,6 +8606,7 @@ Stopping background agent daemon (PID ${state2?.pid})...`));
|
|
|
8278
8606
|
details: [
|
|
8279
8607
|
{ label: "Status", value: running && state ? state.status.toUpperCase() : "STOPPED" },
|
|
8280
8608
|
...running && state ? [{ label: "PID", value: String(state.pid) }] : [],
|
|
8609
|
+
...running && state && state.fullBurn !== void 0 ? [{ label: "Full Burn", value: state.fullBurn ? "ENABLED" : "DISABLED" }] : [],
|
|
8281
8610
|
{ label: "Target", value: cwd }
|
|
8282
8611
|
]
|
|
8283
8612
|
})
|
|
@@ -8292,6 +8621,11 @@ Stopping background agent daemon (PID ${state2?.pid})...`));
|
|
|
8292
8621
|
console.log(` Peer Review Cadence: Every ${state.reviewIntervalMinutes} minutes (0-token fast preflight)`);
|
|
8293
8622
|
console.log(` Autowork Cadence: Every ${state.autoworkIntervalMinutes} minutes`);
|
|
8294
8623
|
console.log(` Routines: ${state.routines.join(", ")}`);
|
|
8624
|
+
if (state.fullBurn !== void 0) {
|
|
8625
|
+
console.log(
|
|
8626
|
+
` Full Burn: ${state.fullBurn ? pc15.red(pc15.bold("ENABLED (quota floor bypassed)")) : pc15.green("DISABLED (stops at <20% quota)")}`
|
|
8627
|
+
);
|
|
8628
|
+
}
|
|
8295
8629
|
let currentStateText = pc15.green("IDLE");
|
|
8296
8630
|
if (state.status === "working") {
|
|
8297
8631
|
const workingDesc = state.activeRoutine + (state.activeTarget ? ` (${pc15.bold(state.activeTarget)})` : "");
|
|
@@ -8462,7 +8796,7 @@ program.name("jonah-fleet").description("Manage autonomous agent fleet, prompt r
|
|
|
8462
8796
|
program.command("run <routine>").description("Run a specific prompt routine locally in an isolated git worktree").option("-i, --issue <number>", "Targeted issue number for autowork").option("-p, --pr <number>", "Targeted pull request number for peer-review").option("-m, --model <model>", "LLM model override (defaults to gemini-3.8-flash-high)").option("--timeout <duration>", "CLI execution print timeout (default: 30m)").option("--no-worktree", "Execute directly in current directory without creating a git worktree").option("--keep-worktree", "Preserve the git worktree after routine execution completes").option("-d, --dry-run", "Preview prompt and execution parameters without launching agent").option("-v, --verbose", "Stream raw agent tokens and logs directly to stdout").action(async (routine, options) => {
|
|
8463
8797
|
await runRoutineCommand(routine, options);
|
|
8464
8798
|
});
|
|
8465
|
-
program.command("daemon [action]").description("Manage background local worker daemon polling for unclaimed issues and pull requests").option("-i, --interval <minutes>", "Legacy global polling interval in minutes (default: 30)").option("--review-interval <minutes>", "Peer Review watchdog cadence in minutes (default: 3)").option("--autowork-interval <minutes>", "Autowork backlog cadence in minutes (default: 30)").option("-r, --routines <list>", "Comma-separated routines to run (default: peer-review,autowork)").option("-m, --model <model>", "LLM model override").option("--foreground", "Run daemon in foreground with live console logs").option("-v, --verbose", "Stream raw agent tokens and logs directly to stdout").action(async (action, options) => {
|
|
8799
|
+
program.command("daemon [action]").description("Manage background local worker daemon polling for unclaimed issues and pull requests").option("-i, --interval <minutes>", "Legacy global polling interval in minutes (default: 30)").option("--review-interval <minutes>", "Peer Review watchdog cadence in minutes (default: 3)").option("--autowork-interval <minutes>", "Autowork backlog cadence in minutes (default: 30)").option("-r, --routines <list>", "Comma-separated routines to run (default: peer-review,autowork)").option("-m, --model <model>", "LLM model override").option("--foreground", "Run daemon in foreground with live console logs").option("-v, --verbose", "Stream raw agent tokens and logs directly to stdout").option("--full-burn", "Run in full burn mode without stopping on <20% plan quota limit").action(async (action, options) => {
|
|
8466
8800
|
await runDaemonCommand(action, options);
|
|
8467
8801
|
});
|
|
8468
8802
|
program.command("labels [action]").description("Audit, prune, or provision repository labels for autonomous fleet taxonomy (audit | prune | provision)").option("-d, --dry-run", "Preview prunable labels without deleting them", false).option("-y, --yes", "Confirm automatic deletion of prunable labels", false).option("-r, --repo <repo>", "Target GitHub repository (defaults to current)").option("-j, --json", "Output results as JSON", false).action(async (action, options) => {
|
|
@@ -13,6 +13,7 @@ export interface KeyboardControllerOptions {
|
|
|
13
13
|
onPauseToggle?: () => void;
|
|
14
14
|
onStatus?: () => void;
|
|
15
15
|
onToggleVerbose?: () => void;
|
|
16
|
+
onToggleFullBurn?: () => void;
|
|
16
17
|
onTailLog?: () => Promise<void> | void;
|
|
17
18
|
onCleanWorktrees?: () => Promise<void> | void;
|
|
18
19
|
onGracefulStop?: () => void;
|
|
@@ -95,6 +96,7 @@ export interface FormatDaemonStatusLineOptions {
|
|
|
95
96
|
columns?: number;
|
|
96
97
|
tipIndex?: number;
|
|
97
98
|
tips?: readonly string[];
|
|
99
|
+
fullBurn?: boolean;
|
|
98
100
|
}
|
|
99
101
|
/**
|
|
100
102
|
* Formats the single-line daemon idle/paused status ticker with rotating tips and viewport width clamping.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-keys.d.ts","sourceRoot":"","sources":["../../src/lib/daemon-keys.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAA8C,MAAM,eAAe,CAAC;AACzF,OAAO,EAAa,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,kBAAkB;IAOjB,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAA2C;IAEpE,YAAoB,OAAO,GAAE,yBAA8B,EAE1D;IAEM,KAAK,IAAI,IAAI,CAuBnB;IAEM,KAAK,IAAI,IAAI,CAEnB;IAEM,MAAM,IAAI,IAAI,CAOpB;IAEM,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"daemon-keys.d.ts","sourceRoot":"","sources":["../../src/lib/daemon-keys.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/daemon.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type BacklogTriageReport, type BacklogIssueInfo } from './terminal-card.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type RunUsageMetrics, type ActualPlanQuota, type QuotaDepletionResult } from './telemetry.js';
|
|
3
3
|
export type BacklogIssue = BacklogIssueInfo;
|
|
4
4
|
export type { BacklogTriageReport };
|
|
5
5
|
export type EvaluatedPROutcome = 'approved' | 'approved_pending_ci' | 'bounced' | 'bounced_to_draft' | 'merged' | 'rejected' | 'failed' | string;
|
|
@@ -30,6 +30,7 @@ export interface DaemonState {
|
|
|
30
30
|
evaluatedPRs?: Record<number, EvaluatedPRRecord>;
|
|
31
31
|
failureCooldowns?: Record<number, PRFailureRecord>;
|
|
32
32
|
sessionTokens?: number;
|
|
33
|
+
fullBurn?: boolean;
|
|
33
34
|
}
|
|
34
35
|
export interface DaemonOptions {
|
|
35
36
|
interval?: number;
|
|
@@ -41,6 +42,9 @@ export interface DaemonOptions {
|
|
|
41
42
|
model?: string;
|
|
42
43
|
foreground?: boolean;
|
|
43
44
|
verbose?: boolean;
|
|
45
|
+
fullBurn?: boolean;
|
|
46
|
+
quotaThresholdPct?: number;
|
|
47
|
+
getPlanQuota?: (repoRoot: string) => Promise<ActualPlanQuota> | ActualPlanQuota;
|
|
44
48
|
stdin?: any;
|
|
45
49
|
getPRs?: (repoRoot: string) => Promise<ReviewablePR[]>;
|
|
46
50
|
getBacklog?: (repoRoot: string) => Promise<BacklogTriageReport>;
|
|
@@ -53,6 +57,7 @@ export interface DaemonOptions {
|
|
|
53
57
|
output?: string;
|
|
54
58
|
stderr?: string;
|
|
55
59
|
usage?: RunUsageMetrics;
|
|
60
|
+
planQuota?: ActualPlanQuota;
|
|
56
61
|
}>;
|
|
57
62
|
}
|
|
58
63
|
export declare function getDaemonStatePath(repoRoot: string): string;
|
|
@@ -64,6 +69,17 @@ export declare function writeDaemonState(repoRoot: string, state: DaemonState):
|
|
|
64
69
|
export declare function recordDaemonSessionUsage(repoRoot: string, state: DaemonState | undefined, usage?: RunUsageMetrics): void;
|
|
65
70
|
export declare function clearDaemonState(repoRoot: string): void;
|
|
66
71
|
export declare function isDaemonRunning(repoRoot: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Checks whether full burn mode is enabled across options, daemon state, environment variables, or manifest.
|
|
74
|
+
*/
|
|
75
|
+
export declare function isFullBurnEnabled(options?: DaemonOptions, state?: DaemonState | null, repoRoot?: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Checks real-time plan quota against the safety floor (<20% in 5h or 7days window) unless full-burn is enabled.
|
|
78
|
+
*/
|
|
79
|
+
export declare function checkDaemonQuotaGuard(repoRoot: string, options?: DaemonOptions, state?: DaemonState | null, cachedQuota?: ActualPlanQuota): Promise<{
|
|
80
|
+
shouldStop: boolean;
|
|
81
|
+
depletion?: QuotaDepletionResult;
|
|
82
|
+
}>;
|
|
67
83
|
export interface ReviewablePR {
|
|
68
84
|
number: number;
|
|
69
85
|
headRefName: string;
|
|
@@ -219,10 +235,12 @@ export interface DrainReviewQueueOptions {
|
|
|
219
235
|
output?: string;
|
|
220
236
|
stderr?: string;
|
|
221
237
|
usage?: RunUsageMetrics;
|
|
238
|
+
planQuota?: ActualPlanQuota;
|
|
222
239
|
}>;
|
|
223
240
|
onAttempted?: (prNumber: number) => void;
|
|
224
241
|
failureCooldowns?: Map<number, PRFailureRecord>;
|
|
225
242
|
onQuotaExhausted?: (resetInfo?: string) => void;
|
|
243
|
+
onQuotaDepleted?: (depletion: QuotaDepletionResult) => void;
|
|
226
244
|
}
|
|
227
245
|
/**
|
|
228
246
|
* Sequentially drains all open reviewable PRs by executing peer-review in isolated worktrees.
|
|
@@ -246,11 +264,13 @@ export interface PerformAutoworkScanOptions {
|
|
|
246
264
|
output?: string;
|
|
247
265
|
stderr?: string;
|
|
248
266
|
usage?: RunUsageMetrics;
|
|
267
|
+
planQuota?: ActualPlanQuota;
|
|
249
268
|
}>;
|
|
250
269
|
onDiagnosticCard?: (card: string) => void;
|
|
251
270
|
onAttempted?: (prNumber: number) => void;
|
|
252
271
|
failureCooldowns?: Map<number, PRFailureRecord>;
|
|
253
272
|
onQuotaExhausted?: (resetInfo?: string) => void;
|
|
273
|
+
onQuotaDepleted?: (depletion: QuotaDepletionResult) => void;
|
|
254
274
|
}
|
|
255
275
|
/**
|
|
256
276
|
* Performs an autowork backlog scan with zero-token preflight check.
|
package/dist/lib/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"AA0BA,OAAO,EAOL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/telemetry.d.ts
CHANGED
|
@@ -124,6 +124,23 @@ export declare function fetchActualPlanQuota(options?: {
|
|
|
124
124
|
cacheTtlMs?: number;
|
|
125
125
|
executor?: () => Promise<string> | string;
|
|
126
126
|
}): Promise<ActualPlanQuota>;
|
|
127
|
+
export interface QuotaDepletionOptions {
|
|
128
|
+
thresholdPct?: number;
|
|
129
|
+
model?: string;
|
|
130
|
+
}
|
|
131
|
+
export interface QuotaDepletionResult {
|
|
132
|
+
depleted: boolean;
|
|
133
|
+
thresholdPct: number;
|
|
134
|
+
window?: '5h' | '7days';
|
|
135
|
+
remainingPct?: number;
|
|
136
|
+
resetTime?: string;
|
|
137
|
+
groupName?: string;
|
|
138
|
+
message?: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Checks whether real-time plan quota is depleted below the safety threshold (<20% for 5h or 7days window).
|
|
142
|
+
*/
|
|
143
|
+
export declare function checkPlanQuotaDepletion(quota: ActualPlanQuota | null | undefined, options?: QuotaDepletionOptions): QuotaDepletionResult;
|
|
127
144
|
/**
|
|
128
145
|
* Formats a clean human-readable summary of plan quota for display.
|
|
129
146
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED