@mohitkumawat/warmup-cli 1.2.15 → 1.3.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/README.md +37 -14
- package/dist/commands/default.d.ts +3 -1
- package/dist/commands/default.d.ts.map +1 -1
- package/dist/commands/default.js +25 -0
- package/dist/commands/default.js.map +1 -1
- package/dist/commands/doctor.d.ts +51 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +219 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/execute.d.ts +24 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +53 -21
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/logs.d.ts +12 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +27 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/menu.d.ts +52 -0
- package/dist/commands/menu.d.ts.map +1 -0
- package/dist/commands/menu.js +185 -0
- package/dist/commands/menu.js.map +1 -0
- package/dist/commands/setup.d.ts +7 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +94 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts +8 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +89 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +25 -4
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +15 -0
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/config.d.ts +23 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +38 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/notify.d.ts +14 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +91 -0
- package/dist/notify.js.map +1 -0
- package/dist/runtime.d.ts +10 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +39 -8
- package/dist/runtime.js.map +1 -1
- package/dist/scheduler/index.d.ts +17 -0
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +42 -0
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/linux.d.ts.map +1 -1
- package/dist/scheduler/linux.js +3 -10
- package/dist/scheduler/linux.js.map +1 -1
- package/dist/scheduler/macos.d.ts +38 -0
- package/dist/scheduler/macos.d.ts.map +1 -1
- package/dist/scheduler/macos.js +158 -23
- package/dist/scheduler/macos.js.map +1 -1
- package/dist/scheduler/script.d.ts +18 -0
- package/dist/scheduler/script.d.ts.map +1 -0
- package/dist/scheduler/script.js +62 -0
- package/dist/scheduler/script.js.map +1 -0
- package/dist/scheduler/windows.js +1 -1
- package/dist/ui.d.ts +50 -4
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +250 -38
- package/dist/ui.js.map +1 -1
- package/dist/warmup.d.ts +52 -4
- package/dist/warmup.d.ts.map +1 -1
- package/dist/warmup.js +194 -79
- package/dist/warmup.js.map +1 -1
- package/package.json +3 -1
package/dist/commands/test.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.testCommand = testCommand;
|
|
7
|
+
const ora_1 = __importDefault(require("ora"));
|
|
4
8
|
const config_1 = require("../config");
|
|
5
9
|
const warmup_1 = require("../warmup");
|
|
6
10
|
const ui_1 = require("../ui");
|
|
@@ -16,13 +20,30 @@ async function testCommand(options = {}) {
|
|
|
16
20
|
(0, ui_1.printNoClaudeCode)();
|
|
17
21
|
return;
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
// Spinner tied to the REAL ping latency (async spawn) — it ticks live elapsed
|
|
24
|
+
// time during the actual round-trip rather than playing a canned animation
|
|
25
|
+
// that finishes before or after the request really does.
|
|
26
|
+
const label = isDryRun ? 'Simulating pre-warm' : 'Pinging Claude';
|
|
27
|
+
const spinner = (0, ora_1.default)({ text: `${label}…`, color: 'magenta' }).start();
|
|
28
|
+
const startedAt = Date.now();
|
|
29
|
+
const ticker = setInterval(() => {
|
|
30
|
+
spinner.text = `${label}… ${((Date.now() - startedAt) / 1000).toFixed(1)}s`;
|
|
31
|
+
}, 100);
|
|
32
|
+
let result;
|
|
33
|
+
try {
|
|
34
|
+
result = await (0, warmup_1.executeWarmupAsync)(false, isDryRun);
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
clearInterval(ticker);
|
|
38
|
+
}
|
|
21
39
|
if (result.success) {
|
|
22
|
-
|
|
40
|
+
const secs = (result.duration / 1000).toFixed(1);
|
|
41
|
+
spinner.succeed(isDryRun
|
|
42
|
+
? 'Dry run complete — no request sent, no limits used.'
|
|
43
|
+
: `Pre-warm landed in ${secs}s — your 5-hour window has started.`);
|
|
23
44
|
}
|
|
24
45
|
else {
|
|
25
|
-
|
|
46
|
+
spinner.fail(result.message);
|
|
26
47
|
}
|
|
27
48
|
}
|
|
28
49
|
//# sourceMappingURL=test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":";;;;;AASA,kCAwCC;AAjDD,8CAAsB;AACtB,sCAAuC;AACvC,sCAAkE;AAClE,8BAAwE;AAMjE,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,IAAA,kBAAa,GAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAA,kBAAa,GAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAA,0BAAiB,GAAE,EAAE,CAAC;QACzB,IAAA,sBAAiB,GAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAClE,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,OAAO,CAAC,IAAI,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,OAAO,CAAC,QAAQ;YACtB,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,sBAAsB,IAAI,qCAAqC,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AASA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CtD"}
|
|
@@ -10,6 +10,7 @@ const scheduler_1 = require("../scheduler");
|
|
|
10
10
|
const ui_1 = require("../ui");
|
|
11
11
|
const chalk_1 = __importDefault(require("chalk"));
|
|
12
12
|
const DIM = chalk_1.default.gray;
|
|
13
|
+
const ACCENT = chalk_1.default.hex('#6C5CE7');
|
|
13
14
|
async function uninstallCommand() {
|
|
14
15
|
(0, ui_1.printMiniLogo)();
|
|
15
16
|
const config = (0, config_1.readConfig)();
|
|
@@ -29,6 +30,20 @@ async function uninstallCommand() {
|
|
|
29
30
|
}
|
|
30
31
|
try {
|
|
31
32
|
(0, scheduler_1.uninstallSchedule)();
|
|
33
|
+
// Remove the daily wake too — but ONLY the one warmup created. macOS's
|
|
34
|
+
// `pmset repeat` is a single global slot, so never cancel a schedule we
|
|
35
|
+
// don't own (config.wake records our ownership).
|
|
36
|
+
if (config.wake) {
|
|
37
|
+
const cleared = (0, scheduler_1.clearWakeSchedule)({ interactive: true });
|
|
38
|
+
if (cleared && cleared.status === 'applied') {
|
|
39
|
+
delete config.wake;
|
|
40
|
+
(0, config_1.writeConfig)(config);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.log(` ${chalk_1.default.yellow('⚠')} ${DIM('Could not remove the daily wake. Run this once:')}`);
|
|
44
|
+
console.log(` ${ACCENT('sudo pmset repeat cancel')}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
32
47
|
(0, ui_1.printUninstalled)();
|
|
33
48
|
}
|
|
34
49
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":";;;;;AASA,4CA0CC;AAnDD,wDAAgC;AAChC,sCAAoD;AACpD,4CAAoE;AACpE,8BAAuE;AACvE,kDAA0B;AAE1B,MAAM,GAAG,GAAG,eAAK,CAAC,IAAI,CAAC;AACvB,MAAM,MAAM,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE7B,KAAK,UAAU,gBAAgB;IACpC,IAAA,kBAAa,GAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAA,kBAAa,GAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,IAAA,6BAAiB,GAAE,CAAC;QAEpB,uEAAuE;QACvE,wEAAwE;QACxE,iDAAiD;QACjD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAA,6BAAiB,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC5C,OAAO,MAAM,CAAC,IAAI,CAAC;gBACnB,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAC;gBAChG,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,IAAA,qBAAgB,GAAE,CAAC;IACrB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -7,12 +7,20 @@ export interface WarmupConfig {
|
|
|
7
7
|
enabled: boolean;
|
|
8
8
|
};
|
|
9
9
|
runtime?: RuntimePaths;
|
|
10
|
+
/**
|
|
11
|
+
* Set only when warmup itself installed a macOS pmset wake. macOS allows a
|
|
12
|
+
* single global `pmset repeat` slot, so this records ownership: we only
|
|
13
|
+
* clear/overwrite a wake we know is ours, and never clobber a user's own.
|
|
14
|
+
*/
|
|
15
|
+
wake?: {
|
|
16
|
+
time: string;
|
|
17
|
+
};
|
|
10
18
|
createdAt: string;
|
|
11
19
|
updatedAt: string;
|
|
12
20
|
}
|
|
13
21
|
export interface LogEntry {
|
|
14
22
|
timestamp: string;
|
|
15
|
-
status: 'success' | 'failed' | 'boot-recovery';
|
|
23
|
+
status: 'success' | 'failed' | 'boot-recovery' | 'skipped';
|
|
16
24
|
message: string;
|
|
17
25
|
tokensUsed?: number;
|
|
18
26
|
scheduledTime?: string;
|
|
@@ -30,7 +38,21 @@ export declare function getDateStringInTimezone(date: Date, timezone: string): s
|
|
|
30
38
|
export declare function writeLog(entry: LogEntry, timezone: string): void;
|
|
31
39
|
export declare function getLatestLog(): LogEntry | null;
|
|
32
40
|
export declare function getLogsForDate(date: string): LogEntry[];
|
|
41
|
+
/**
|
|
42
|
+
* The most recent log entries across all dated files, newest first, capped at
|
|
43
|
+
* `limit`. Dated files are already sorted newest-first; within a day entries
|
|
44
|
+
* are appended oldest-first, so we walk each day's slice in reverse as we
|
|
45
|
+
* collect. Powers the hub's "Recent runs" view and `warmup logs`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function getRecentLogs(limit?: number): LogEntry[];
|
|
33
48
|
export declare function hasSuccessfulRunSince(since: Date): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether any actionable outcome (a run, a recorded skip, OR a failure) exists
|
|
51
|
+
* since `since`. Used to record a missed window at most once per scheduled
|
|
52
|
+
* occurrence — and to avoid contradicting an earlier failure with a later
|
|
53
|
+
* "skipped" entry for the same occurrence.
|
|
54
|
+
*/
|
|
55
|
+
export declare function hasOutcomeSince(since: Date): boolean;
|
|
34
56
|
export declare function detectTimezone(): string;
|
|
35
57
|
export declare function formatTimeLocal(date: Date, timezone: string): string;
|
|
36
58
|
export declare function formatDateTimeLocal(date: Date, timezone: string): string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -48,7 +48,9 @@ exports.getDateStringInTimezone = getDateStringInTimezone;
|
|
|
48
48
|
exports.writeLog = writeLog;
|
|
49
49
|
exports.getLatestLog = getLatestLog;
|
|
50
50
|
exports.getLogsForDate = getLogsForDate;
|
|
51
|
+
exports.getRecentLogs = getRecentLogs;
|
|
51
52
|
exports.hasSuccessfulRunSince = hasSuccessfulRunSince;
|
|
53
|
+
exports.hasOutcomeSince = hasOutcomeSince;
|
|
52
54
|
exports.detectTimezone = detectTimezone;
|
|
53
55
|
exports.formatTimeLocal = formatTimeLocal;
|
|
54
56
|
exports.formatDateTimeLocal = formatDateTimeLocal;
|
|
@@ -194,6 +196,26 @@ function getLatestLog() {
|
|
|
194
196
|
function getLogsForDate(date) {
|
|
195
197
|
return readLogFile(`${date}.log`);
|
|
196
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* The most recent log entries across all dated files, newest first, capped at
|
|
201
|
+
* `limit`. Dated files are already sorted newest-first; within a day entries
|
|
202
|
+
* are appended oldest-first, so we walk each day's slice in reverse as we
|
|
203
|
+
* collect. Powers the hub's "Recent runs" view and `warmup logs`.
|
|
204
|
+
*/
|
|
205
|
+
function getRecentLogs(limit = 10) {
|
|
206
|
+
if (limit <= 0)
|
|
207
|
+
return [];
|
|
208
|
+
const recent = [];
|
|
209
|
+
for (const file of getDatedLogFiles()) {
|
|
210
|
+
const entries = readLogFile(file);
|
|
211
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
212
|
+
recent.push(entries[i]);
|
|
213
|
+
if (recent.length >= limit)
|
|
214
|
+
return recent;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return recent;
|
|
218
|
+
}
|
|
197
219
|
function hasSuccessfulRunSince(since) {
|
|
198
220
|
const threshold = since.getTime();
|
|
199
221
|
return getDatedLogFiles().some(file => readLogFile(file).some(entry => {
|
|
@@ -204,6 +226,22 @@ function hasSuccessfulRunSince(since) {
|
|
|
204
226
|
return !Number.isNaN(timestamp) && timestamp >= threshold;
|
|
205
227
|
}));
|
|
206
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Whether any actionable outcome (a run, a recorded skip, OR a failure) exists
|
|
231
|
+
* since `since`. Used to record a missed window at most once per scheduled
|
|
232
|
+
* occurrence — and to avoid contradicting an earlier failure with a later
|
|
233
|
+
* "skipped" entry for the same occurrence.
|
|
234
|
+
*/
|
|
235
|
+
function hasOutcomeSince(since) {
|
|
236
|
+
const threshold = since.getTime();
|
|
237
|
+
const counted = new Set(['success', 'boot-recovery', 'skipped', 'failed']);
|
|
238
|
+
return getDatedLogFiles().some(file => readLogFile(file).some(entry => {
|
|
239
|
+
if (!counted.has(entry.status))
|
|
240
|
+
return false;
|
|
241
|
+
const timestamp = new Date(entry.timestamp).getTime();
|
|
242
|
+
return !Number.isNaN(timestamp) && timestamp >= threshold;
|
|
243
|
+
}));
|
|
244
|
+
}
|
|
207
245
|
function cleanOldLogs(maxDays) {
|
|
208
246
|
const cutoff = new Date();
|
|
209
247
|
cutoff.setDate(cutoff.getDate() - maxDays);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,aAAa,IAAI,OAAO,CAuGvC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,8 @@ const pause_1 = require("./commands/pause");
|
|
|
11
11
|
const resume_1 = require("./commands/resume");
|
|
12
12
|
const update_1 = require("./commands/update");
|
|
13
13
|
const uninstall_1 = require("./commands/uninstall");
|
|
14
|
+
const logs_1 = require("./commands/logs");
|
|
15
|
+
const doctor_1 = require("./commands/doctor");
|
|
14
16
|
const execute_1 = require("./commands/execute");
|
|
15
17
|
function createProgram() {
|
|
16
18
|
const program = new commander_1.Command();
|
|
@@ -18,7 +20,17 @@ function createProgram() {
|
|
|
18
20
|
.name('warmup')
|
|
19
21
|
.description('Pre-warm your Claude rate limits while you sleep.')
|
|
20
22
|
.version(require("../package.json").version);
|
|
21
|
-
|
|
23
|
+
program.addHelpText('after', `
|
|
24
|
+
Examples:
|
|
25
|
+
$ warmup Open the interactive hub (or first-run setup)
|
|
26
|
+
$ warmup setup Run the guided setup wizard
|
|
27
|
+
$ warmup status Show schedule + live rate-limit window
|
|
28
|
+
$ warmup doctor Health-check your setup
|
|
29
|
+
$ warmup test --dry-run Simulate a pre-warm (no real request)
|
|
30
|
+
$ warmup logs -n 20 Show the last 20 runs
|
|
31
|
+
$ warmup pause / resume Pause or resume the daily schedule
|
|
32
|
+
|
|
33
|
+
Run a command with no setup yet? warmup walks you through it.`);
|
|
22
34
|
program
|
|
23
35
|
.command('setup')
|
|
24
36
|
.description('Set up warmup with your preferred pre-warm time')
|
|
@@ -28,8 +40,10 @@ function createProgram() {
|
|
|
28
40
|
program
|
|
29
41
|
.command('status')
|
|
30
42
|
.description('Show your schedule, last run, and rate limit window progress')
|
|
31
|
-
.
|
|
32
|
-
|
|
43
|
+
.option('-w, --watch', 'Continuously refresh the dashboard (ctrl-c to exit)')
|
|
44
|
+
.option('--json', 'Output the status as JSON (scriptable; no colors)')
|
|
45
|
+
.action(async (options) => {
|
|
46
|
+
await (0, status_1.statusCommand)({ watch: options.watch, json: options.json });
|
|
33
47
|
});
|
|
34
48
|
program
|
|
35
49
|
.command('test')
|
|
@@ -63,6 +77,21 @@ function createProgram() {
|
|
|
63
77
|
.action(async () => {
|
|
64
78
|
await (0, uninstall_1.uninstallCommand)();
|
|
65
79
|
});
|
|
80
|
+
program
|
|
81
|
+
.command('logs')
|
|
82
|
+
.description('Show recent pre-warm run history')
|
|
83
|
+
.option('-n, --limit <count>', 'How many recent runs to show', (v) => parseInt(v, 10))
|
|
84
|
+
.option('--json', 'Output the run history as JSON (scriptable)')
|
|
85
|
+
.action(async (options) => {
|
|
86
|
+
await (0, logs_1.logsCommand)({ limit: options.limit, json: options.json });
|
|
87
|
+
});
|
|
88
|
+
program
|
|
89
|
+
.command('doctor')
|
|
90
|
+
.description('Run a health check on your warmup setup')
|
|
91
|
+
.option('--json', 'Output the health check as JSON; exits non-zero on failures')
|
|
92
|
+
.action(async (options) => {
|
|
93
|
+
await (0, doctor_1.doctorCommand)({ json: options.json });
|
|
94
|
+
});
|
|
66
95
|
program
|
|
67
96
|
.command('_execute-warmup', { hidden: true })
|
|
68
97
|
.description('Internal: execute pre-warm (called by OS scheduler)')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/notify.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort desktop notification so unattended failures/skips are visible
|
|
3
|
+
* instead of hiding in a log the user never opens. Silently no-ops if the
|
|
4
|
+
* platform has no supported notifier.
|
|
5
|
+
*/
|
|
6
|
+
export declare function notify(title: string, message: string): void;
|
|
7
|
+
/**
|
|
8
|
+
* Replace control characters (newlines, tabs, etc.) with spaces and bound the
|
|
9
|
+
* length. AppleScript string literals cannot contain raw line breaks, so a
|
|
10
|
+
* multi-line CLI stderr would otherwise make `osascript -e` a syntax error and
|
|
11
|
+
* drop the notification entirely.
|
|
12
|
+
*/
|
|
13
|
+
export declare function oneLine(value: string): string;
|
|
14
|
+
//# sourceMappingURL=notify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAiB3D;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB7C"}
|
package/dist/notify.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.notify = notify;
|
|
37
|
+
exports.oneLine = oneLine;
|
|
38
|
+
const child_process_1 = require("child_process");
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
/**
|
|
41
|
+
* Best-effort desktop notification so unattended failures/skips are visible
|
|
42
|
+
* instead of hiding in a log the user never opens. Silently no-ops if the
|
|
43
|
+
* platform has no supported notifier.
|
|
44
|
+
*/
|
|
45
|
+
function notify(title, message) {
|
|
46
|
+
try {
|
|
47
|
+
const platform = os.platform();
|
|
48
|
+
const safeTitle = oneLine(title);
|
|
49
|
+
const safeMessage = oneLine(message);
|
|
50
|
+
if (platform === 'darwin') {
|
|
51
|
+
// LaunchAgents run in the user's GUI session, so osascript notifications
|
|
52
|
+
// surface in Notification Center.
|
|
53
|
+
const script = `display notification ${quoteAppleScript(safeMessage)} with title ${quoteAppleScript(safeTitle)}`;
|
|
54
|
+
(0, child_process_1.spawnSync)('osascript', ['-e', script], { stdio: 'ignore', timeout: 10000 });
|
|
55
|
+
}
|
|
56
|
+
else if (platform === 'linux') {
|
|
57
|
+
(0, child_process_1.spawnSync)('notify-send', [safeTitle, safeMessage], { stdio: 'ignore', timeout: 10000 });
|
|
58
|
+
}
|
|
59
|
+
// Windows: no dependable built-in CLI notifier; skip.
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Never let notification failures affect the pre-warm outcome.
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Replace control characters (newlines, tabs, etc.) with spaces and bound the
|
|
67
|
+
* length. AppleScript string literals cannot contain raw line breaks, so a
|
|
68
|
+
* multi-line CLI stderr would otherwise make `osascript -e` a syntax error and
|
|
69
|
+
* drop the notification entirely.
|
|
70
|
+
*/
|
|
71
|
+
function oneLine(value) {
|
|
72
|
+
let out = '';
|
|
73
|
+
for (const ch of value) {
|
|
74
|
+
const code = ch.charCodeAt(0);
|
|
75
|
+
out += (code < 0x20 || code === 0x7f) ? ' ' : ch;
|
|
76
|
+
}
|
|
77
|
+
let result = out.replace(/ {2,}/g, ' ').trim();
|
|
78
|
+
if (result.length > 240) {
|
|
79
|
+
result = result.slice(0, 240);
|
|
80
|
+
const last = result.charCodeAt(result.length - 1);
|
|
81
|
+
// Avoid leaving a dangling high surrogate if we cut mid-emoji.
|
|
82
|
+
if (last >= 0xd800 && last <= 0xdbff) {
|
|
83
|
+
result = result.slice(0, -1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
function quoteAppleScript(value) {
|
|
89
|
+
return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=notify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAiBC;AAQD,0BAgBC;AAjDD,iDAA0C;AAC1C,uCAAyB;AAEzB;;;;GAIG;AACH,SAAgB,MAAM,CAAC,KAAa,EAAE,OAAe;IACnD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,yEAAyE;YACzE,kCAAkC;YAClC,MAAM,MAAM,GAAG,wBAAwB,gBAAgB,CAAC,WAAW,CAAC,eAAe,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjH,IAAA,yBAAS,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAA,yBAAS,EAAC,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,sDAAsD;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,KAAa;IACnC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,+DAA+D;QAC/D,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -4,6 +4,16 @@ export interface RuntimePaths {
|
|
|
4
4
|
claudePath: string;
|
|
5
5
|
}
|
|
6
6
|
export declare function findExecutable(command: string): string | null;
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a stable, upgrade-surviving path to the Node.js runtime.
|
|
9
|
+
*
|
|
10
|
+
* `process.execPath` (and its realpath) points at the *physical* interpreter —
|
|
11
|
+
* e.g. /opt/homebrew/Cellar/node/25.8.1_1/bin/node — which Homebrew deletes on
|
|
12
|
+
* the next `brew upgrade node` + cleanup, silently breaking the scheduled task.
|
|
13
|
+
* When a stable wrapper symlink (e.g. /opt/homebrew/bin/node) resolves to the
|
|
14
|
+
* same binary, prefer it: it follows version upgrades instead of dangling.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveStableNodePath(): string;
|
|
7
17
|
export declare function parseClaudeAuthStatus(raw: string): boolean;
|
|
8
18
|
export declare function resolveRuntimePaths(cliEntry?: string): RuntimePaths;
|
|
9
19
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB7D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO1D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAwB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA2B9C;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO1D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAwB,GAAG,YAAY,CAsBpF"}
|
package/dist/runtime.js
CHANGED
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.findExecutable = findExecutable;
|
|
37
|
+
exports.resolveStableNodePath = resolveStableNodePath;
|
|
37
38
|
exports.parseClaudeAuthStatus = parseClaudeAuthStatus;
|
|
38
39
|
exports.resolveRuntimePaths = resolveRuntimePaths;
|
|
39
40
|
const path = __importStar(require("path"));
|
|
@@ -66,6 +67,43 @@ function findExecutable(command) {
|
|
|
66
67
|
return null;
|
|
67
68
|
}
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolve a stable, upgrade-surviving path to the Node.js runtime.
|
|
72
|
+
*
|
|
73
|
+
* `process.execPath` (and its realpath) points at the *physical* interpreter —
|
|
74
|
+
* e.g. /opt/homebrew/Cellar/node/25.8.1_1/bin/node — which Homebrew deletes on
|
|
75
|
+
* the next `brew upgrade node` + cleanup, silently breaking the scheduled task.
|
|
76
|
+
* When a stable wrapper symlink (e.g. /opt/homebrew/bin/node) resolves to the
|
|
77
|
+
* same binary, prefer it: it follows version upgrades instead of dangling.
|
|
78
|
+
*/
|
|
79
|
+
function resolveStableNodePath() {
|
|
80
|
+
let physical;
|
|
81
|
+
try {
|
|
82
|
+
physical = fs.realpathSync(process.execPath);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
physical = path.resolve(process.execPath);
|
|
86
|
+
}
|
|
87
|
+
const candidates = [
|
|
88
|
+
findExecutable('node'), // the user's active node, often a stable symlink
|
|
89
|
+
'/opt/homebrew/bin/node',
|
|
90
|
+
'/usr/local/bin/node',
|
|
91
|
+
'/usr/bin/node',
|
|
92
|
+
].filter((entry) => Boolean(entry));
|
|
93
|
+
for (const candidate of candidates) {
|
|
94
|
+
if (candidate === physical)
|
|
95
|
+
continue; // no gain over the physical path
|
|
96
|
+
try {
|
|
97
|
+
if (fs.existsSync(candidate) && fs.realpathSync(candidate) === physical) {
|
|
98
|
+
return candidate;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// ignore unreadable candidates
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return physical;
|
|
106
|
+
}
|
|
69
107
|
function parseClaudeAuthStatus(raw) {
|
|
70
108
|
try {
|
|
71
109
|
const parsed = JSON.parse(raw);
|
|
@@ -90,15 +128,8 @@ function resolveRuntimePaths(cliEntry = process.argv[1]) {
|
|
|
90
128
|
catch {
|
|
91
129
|
resolvedCliEntry = path.resolve(cliEntry);
|
|
92
130
|
}
|
|
93
|
-
let resolvedNodePath;
|
|
94
|
-
try {
|
|
95
|
-
resolvedNodePath = fs.realpathSync(process.execPath);
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
resolvedNodePath = path.resolve(process.execPath);
|
|
99
|
-
}
|
|
100
131
|
return {
|
|
101
|
-
nodePath:
|
|
132
|
+
nodePath: resolveStableNodePath(),
|
|
102
133
|
cliEntry: resolvedCliEntry,
|
|
103
134
|
claudePath,
|
|
104
135
|
};
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,wCAiBC;AAED,sDAOC;AAED,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type WakeResult } from './macos';
|
|
1
2
|
import type { RuntimePaths } from '../runtime';
|
|
2
3
|
export type Platform = 'macos' | 'linux' | 'windows';
|
|
3
4
|
export interface ScheduleInstallOptions {
|
|
@@ -12,5 +13,21 @@ export declare function installSchedule(options: ScheduleInstallOptions): void;
|
|
|
12
13
|
export declare function uninstallSchedule(): void;
|
|
13
14
|
export declare function isScheduleInstalled(): boolean;
|
|
14
15
|
export declare function pauseSchedule(): void;
|
|
16
|
+
export type { WakeResult } from './macos';
|
|
17
|
+
/**
|
|
18
|
+
* Schedule a system wake so the pre-warm can run while the Mac is asleep.
|
|
19
|
+
* Returns null on platforms where waking is handled by the task definition
|
|
20
|
+
* itself (Windows `WakeToRun`, systemd `WakeSystem`) and needs no extra step.
|
|
21
|
+
*/
|
|
22
|
+
export declare function applyWakeSchedule(hour: number, minute: number, options?: {
|
|
23
|
+
interactive?: boolean;
|
|
24
|
+
}): WakeResult | null;
|
|
25
|
+
export declare function clearWakeSchedule(options?: {
|
|
26
|
+
interactive?: boolean;
|
|
27
|
+
}): WakeResult | null;
|
|
28
|
+
export declare function isWakeScheduleActive(): boolean;
|
|
29
|
+
export declare function getWakeCommandHint(hour: number, minute: number): string | null;
|
|
30
|
+
/** The system-local wake time ('HH:MM:SS') warmup would schedule, or null off-macOS. */
|
|
31
|
+
export declare function getWakeTime(hour: number, minute: number): string | null;
|
|
15
32
|
export declare function resumeSchedule(): void;
|
|
16
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACrD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAKzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAczC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAOrE;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAOpC;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,UAAU,GAAG,IAAI,CAKnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,UAAU,GAAG,IAAI,CAK5F;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9E;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAgB,cAAc,IAAI,IAAI,CAOrC"}
|