@mohitkumawat/warmup-cli 1.2.14 → 1.2.16
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 +5 -5
- 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/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.map +1 -1
- package/dist/commands/status.js +12 -1
- package/dist/commands/status.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 +16 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +0 -0
- 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 +48 -2
- 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 +1 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +40 -11
- package/dist/ui.js.map +1 -1
- package/dist/warmup.d.ts +39 -0
- package/dist/warmup.d.ts.map +1 -1
- package/dist/warmup.js +55 -0
- package/dist/warmup.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,15 +90,15 @@ It then automatically calculates the **exact optimal pre-warm time** to ensure y
|
|
|
90
90
|
|
|
91
91
|
**What if my computer is off or asleep at the scheduled pre-warm time?**
|
|
92
92
|
|
|
93
|
-
`warmup` handles this automatically using native OS features.
|
|
93
|
+
`warmup` handles this automatically using native OS features. It schedules a **real system wake a few minutes before** your pre-warm time, so the ping fires **while the machine is still asleep** — ahead of your workday — instead of waiting until you open the lid. If a wake can't be armed (or the machine was fully powered off), it falls back to firing on the next boot/wake, with deduplication so a late catch-up never double-consumes your window.
|
|
94
94
|
|
|
95
95
|
It has built-in deduplication guards: it will *never* double-fire or accidentally consume a second rate-limit window, even if you restart your computer 10 times a day.
|
|
96
96
|
|
|
97
|
-
| OS | Background Mechanism |
|
|
97
|
+
| OS | Wake & Background Mechanism |
|
|
98
98
|
| :--- | :--- |
|
|
99
|
-
| 🍎 **macOS** | `launchd`
|
|
100
|
-
| 🐧 **Linux** | `systemd` timers via `Persistent=true` |
|
|
101
|
-
| 🪟 **Windows** | `schtasks` via `StartWhenAvailable` |
|
|
99
|
+
| 🍎 **macOS** | `launchd` (`StartCalendarInterval` + `RunAtLoad`) plus a scheduled wake via `pmset repeat wakeorpoweron` |
|
|
100
|
+
| 🐧 **Linux** | `systemd` timers via `Persistent=true` + `WakeSystem=true` |
|
|
101
|
+
| 🪟 **Windows** | `schtasks` via `StartWhenAvailable` + `WakeToRun` |
|
|
102
102
|
|
|
103
103
|
---
|
|
104
104
|
|
|
@@ -1,6 +1,29 @@
|
|
|
1
|
+
import { readConfig, writeLog } from '../config';
|
|
2
|
+
import { executeWarmup, shouldBootRecover, shouldLogSkip, shouldRunNearSchedule } from '../warmup';
|
|
3
|
+
import { notify } from '../notify';
|
|
4
|
+
import { animateBootRecovery, animateBootRecoverySuccess } from '../ui';
|
|
5
|
+
/**
|
|
6
|
+
* Injectable seams for {@link executeCommand}. Production wires the real
|
|
7
|
+
* implementations; tests substitute the clock, the pre-warm, the notifier, and
|
|
8
|
+
* the logger so the branch routing can be exercised deterministically without
|
|
9
|
+
* spawning Claude or firing OS notifications. Mirrors the dependency-object
|
|
10
|
+
* pattern used by `defaultCommand` / `runFirstRunOnboarding`.
|
|
11
|
+
*/
|
|
12
|
+
export interface ExecuteCommandDependencies {
|
|
13
|
+
now: Date;
|
|
14
|
+
readConfig: typeof readConfig;
|
|
15
|
+
shouldBootRecover: typeof shouldBootRecover;
|
|
16
|
+
shouldRunNearSchedule: typeof shouldRunNearSchedule;
|
|
17
|
+
shouldLogSkip: typeof shouldLogSkip;
|
|
18
|
+
executeWarmup: typeof executeWarmup;
|
|
19
|
+
notify: typeof notify;
|
|
20
|
+
writeLog: typeof writeLog;
|
|
21
|
+
animateBootRecovery: typeof animateBootRecovery;
|
|
22
|
+
animateBootRecoverySuccess: typeof animateBootRecoverySuccess;
|
|
23
|
+
}
|
|
1
24
|
/**
|
|
2
25
|
* Internal command called by the OS scheduler (launchd/systemd/schtasks).
|
|
3
26
|
* Not user-facing. Determines whether this is a normal run or boot-recovery.
|
|
4
27
|
*/
|
|
5
|
-
export declare function executeCommand(): Promise<void>;
|
|
28
|
+
export declare function executeCommand(deps?: Partial<ExecuteCommandDependencies>): Promise<void>;
|
|
6
29
|
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,QAAQ,EAET,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,OAAO,CAAC;AAWf;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,IAAI,CAAC;IACV,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IACpD,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;CAC/D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAC7C,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
package/dist/commands/execute.js
CHANGED
|
@@ -3,34 +3,50 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.executeCommand = executeCommand;
|
|
4
4
|
const config_1 = require("../config");
|
|
5
5
|
const warmup_1 = require("../warmup");
|
|
6
|
+
const notify_1 = require("../notify");
|
|
6
7
|
const ui_1 = require("../ui");
|
|
8
|
+
function formatNow(timezone, now) {
|
|
9
|
+
return now.toLocaleTimeString('en-US', {
|
|
10
|
+
timeZone: timezone,
|
|
11
|
+
hour: 'numeric',
|
|
12
|
+
minute: '2-digit',
|
|
13
|
+
hour12: true,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
7
16
|
/**
|
|
8
17
|
* Internal command called by the OS scheduler (launchd/systemd/schtasks).
|
|
9
18
|
* Not user-facing. Determines whether this is a normal run or boot-recovery.
|
|
10
19
|
*/
|
|
11
|
-
async function executeCommand() {
|
|
12
|
-
const
|
|
20
|
+
async function executeCommand(deps = {}) {
|
|
21
|
+
const now = deps.now ?? new Date();
|
|
22
|
+
const loadConfig = deps.readConfig ?? config_1.readConfig;
|
|
23
|
+
const checkBootRecover = deps.shouldBootRecover ?? warmup_1.shouldBootRecover;
|
|
24
|
+
const checkRunNearSchedule = deps.shouldRunNearSchedule ?? warmup_1.shouldRunNearSchedule;
|
|
25
|
+
const checkLogSkip = deps.shouldLogSkip ?? warmup_1.shouldLogSkip;
|
|
26
|
+
const runWarmup = deps.executeWarmup ?? warmup_1.executeWarmup;
|
|
27
|
+
const sendNotification = deps.notify ?? notify_1.notify;
|
|
28
|
+
const recordLog = deps.writeLog ?? config_1.writeLog;
|
|
29
|
+
const showBootRecovery = deps.animateBootRecovery ?? ui_1.animateBootRecovery;
|
|
30
|
+
const showBootRecoverySuccess = deps.animateBootRecoverySuccess ?? ui_1.animateBootRecoverySuccess;
|
|
31
|
+
const config = loadConfig();
|
|
13
32
|
if (!config || !config.schedule.enabled) {
|
|
14
33
|
process.exit(0);
|
|
15
34
|
return;
|
|
16
35
|
}
|
|
17
|
-
const
|
|
36
|
+
const [h, m] = config.schedule.time.split(':').map(Number);
|
|
37
|
+
const scheduledTime = (0, config_1.formatHour)(h, m);
|
|
38
|
+
const isBootRecovery = checkBootRecover(config, now);
|
|
18
39
|
if (isBootRecovery) {
|
|
19
|
-
const
|
|
20
|
-
const scheduledTime = (0, config_1.formatHour)(h, m);
|
|
21
|
-
const now = new Date();
|
|
22
|
-
const actualTime = now.toLocaleTimeString('en-US', {
|
|
23
|
-
timeZone: config.schedule.timezone,
|
|
24
|
-
hour: 'numeric',
|
|
25
|
-
minute: '2-digit',
|
|
26
|
-
hour12: true,
|
|
27
|
-
});
|
|
40
|
+
const actualTime = formatNow(config.schedule.timezone, now);
|
|
28
41
|
// These animations only show if running in an interactive terminal
|
|
29
42
|
if (process.stdout.isTTY) {
|
|
30
|
-
await (
|
|
43
|
+
await showBootRecovery(scheduledTime, actualTime);
|
|
44
|
+
}
|
|
45
|
+
const result = runWarmup(true);
|
|
46
|
+
if (!result.success) {
|
|
47
|
+
sendNotification('warmup pre-warm failed', result.message);
|
|
31
48
|
}
|
|
32
|
-
|
|
33
|
-
if (result.success && process.stdout.isTTY) {
|
|
49
|
+
else if (process.stdout.isTTY) {
|
|
34
50
|
// Boot-recovery reset = NOW + 5 hours, not scheduled time + 5
|
|
35
51
|
const resetTime = new Date(now.getTime() + 5 * 60 * 60 * 1000)
|
|
36
52
|
.toLocaleTimeString('en-US', {
|
|
@@ -39,14 +55,30 @@ async function executeCommand() {
|
|
|
39
55
|
minute: '2-digit',
|
|
40
56
|
hour12: true,
|
|
41
57
|
});
|
|
42
|
-
await (
|
|
58
|
+
await showBootRecoverySuccess(resetTime);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (checkRunNearSchedule(config, now)) {
|
|
62
|
+
// Normal scheduled execution (within tolerance, not a recent duplicate).
|
|
63
|
+
const result = runWarmup(false);
|
|
64
|
+
if (!result.success) {
|
|
65
|
+
sendNotification('warmup pre-warm failed', result.message);
|
|
43
66
|
}
|
|
44
67
|
}
|
|
45
|
-
else if ((
|
|
46
|
-
//
|
|
47
|
-
|
|
68
|
+
else if (checkLogSkip(config, now)) {
|
|
69
|
+
// The window was missed and it is too late to recover (e.g. the Mac was
|
|
70
|
+
// opened hours after the scheduled time). Record it once so the miss is
|
|
71
|
+
// visible in `warmup status` instead of vanishing silently.
|
|
72
|
+
const entry = {
|
|
73
|
+
timestamp: now.toISOString(),
|
|
74
|
+
status: 'skipped',
|
|
75
|
+
message: `Pre-warm window missed — opened too late to pre-warm (scheduled ${scheduledTime})`,
|
|
76
|
+
scheduledTime: config.schedule.time,
|
|
77
|
+
actualTime: formatNow(config.schedule.timezone, now),
|
|
78
|
+
};
|
|
79
|
+
recordLog(entry, config.schedule.timezone);
|
|
80
|
+
sendNotification('warmup missed today’s window', `Opened too late to pre-warm (scheduled ${scheduledTime}).`);
|
|
48
81
|
}
|
|
49
|
-
//
|
|
50
|
-
// This prevents RunAtLoad / reboot from firing pointless pre-warms.
|
|
82
|
+
// Otherwise (e.g. a login well before the scheduled time) do nothing.
|
|
51
83
|
}
|
|
52
84
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -28,7 +28,14 @@ interface ConfirmAndInstallDependencies {
|
|
|
28
28
|
createDefaultConfig: (time: string, timezone: string, runtime: RuntimePaths) => WarmupConfig;
|
|
29
29
|
writeConfig: (config: WarmupConfig) => void;
|
|
30
30
|
animateSetupComplete: (config: WarmupConfig) => Promise<void>;
|
|
31
|
+
configureWakeSchedule: (hour: number, minute: number) => Promise<void>;
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Schedule a system wake so the pre-warm can fire while the Mac is asleep.
|
|
35
|
+
* launchd alone cannot wake the machine, so without this the warmup only runs
|
|
36
|
+
* once the user manually wakes it — too late to actually pre-warm.
|
|
37
|
+
*/
|
|
38
|
+
export declare function configureWakeSchedule(hour: number, minute: number): Promise<void>;
|
|
32
39
|
/** Generate choices for work start time (30 min increments) */
|
|
33
40
|
export declare function generateStartTimeChoices(): Array<{
|
|
34
41
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,YAAY,EACb,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,YAAY,EACb,MAAM,WAAW,CAAC;AAWnB,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,OAAO,CAAC;AACf,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAUpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,UAAU,6BAA6B;IACrC,mBAAmB,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC9D,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oBAAoB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,WAAW,CAAC;IAC9D,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,MAAM,YAAY,CAAC;IACxC,eAAe,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5F,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,YAAY,CAAC;IAC7F,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,oBAAoB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEvF;AAED,+DAA+D;AAC/D,wBAAgB,wBAAwB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBjF;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CA4B7D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,CAAC,CAAM,GACzE,gBAAgB,CAclB;AAoBD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,gBAAgB,EACtB,IAAI,GAAE,OAAO,CAAC,6BAA6B,CAAM,GAChD,OAAO,CAAC,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC,CA+C/C;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EnF"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configureWakeSchedule = configureWakeSchedule;
|
|
6
7
|
exports.generateStartTimeChoices = generateStartTimeChoices;
|
|
7
8
|
exports.calculateOptimalPrewarm = calculateOptimalPrewarm;
|
|
8
9
|
exports.buildSetupInstallPlan = buildSetupInstallPlan;
|
|
@@ -18,6 +19,78 @@ const ui_1 = require("../ui");
|
|
|
18
19
|
const runtime_1 = require("../runtime");
|
|
19
20
|
const ACCENT = chalk_1.default.hex('#6C5CE7');
|
|
20
21
|
const DIM = chalk_1.default.gray;
|
|
22
|
+
/** Always schedule the pre-warm at least this many minutes before the user's
|
|
23
|
+
* start time, so the rate-limit window is primed before they sit down rather
|
|
24
|
+
* than firing at the moment work begins. */
|
|
25
|
+
const WARM_LEAD_MINUTES = 5;
|
|
26
|
+
/**
|
|
27
|
+
* Schedule a system wake so the pre-warm can fire while the Mac is asleep.
|
|
28
|
+
* launchd alone cannot wake the machine, so without this the warmup only runs
|
|
29
|
+
* once the user manually wakes it — too late to actually pre-warm.
|
|
30
|
+
*/
|
|
31
|
+
async function configureWakeSchedule(hour, minute) {
|
|
32
|
+
const commandHint = (0, scheduler_1.getWakeCommandHint)(hour, minute);
|
|
33
|
+
if (!commandHint) {
|
|
34
|
+
// Non-macOS: waking is part of the scheduled task definition itself.
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const config = (0, config_1.readConfig)();
|
|
38
|
+
console.log('');
|
|
39
|
+
console.log(` ${ACCENT('One more step:')} ${DIM('let warmup wake your Mac so it can pre-warm while you sleep.')}`);
|
|
40
|
+
// macOS has a single global `pmset repeat` slot. Warn before replacing a wake
|
|
41
|
+
// schedule warmup did not create (config.wake records our ownership).
|
|
42
|
+
if ((0, scheduler_1.isWakeScheduleActive)() && !(config && config.wake)) {
|
|
43
|
+
console.log(` ${chalk_1.default.yellow('⚠')} ${DIM('An existing repeating wake schedule was found. macOS allows only one, so warmup will replace it.')}`);
|
|
44
|
+
}
|
|
45
|
+
const { allowWake } = await inquirer_1.default.prompt([{
|
|
46
|
+
type: 'confirm',
|
|
47
|
+
name: 'allowWake',
|
|
48
|
+
message: 'Schedule a daily wake? (asks for your admin password once)',
|
|
49
|
+
default: true,
|
|
50
|
+
}]);
|
|
51
|
+
if (!allowWake) {
|
|
52
|
+
// If warmup previously owned a wake (e.g. on `update`), clear it so it is
|
|
53
|
+
// not left armed at the OLD time, decoupled from the new schedule. Only
|
|
54
|
+
// forget ownership if the clear actually succeeded — otherwise the wake is
|
|
55
|
+
// still armed and we must keep tracking it.
|
|
56
|
+
if (config && config.wake) {
|
|
57
|
+
const cleared = (0, scheduler_1.clearWakeSchedule)({ interactive: true });
|
|
58
|
+
if (cleared && cleared.status === 'applied') {
|
|
59
|
+
delete config.wake;
|
|
60
|
+
(0, config_1.writeConfig)(config);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// The clear failed (e.g. cancelled sudo) — the old wake is STILL armed.
|
|
64
|
+
// Don't claim "only runs while awake"; tell the user how to stop it.
|
|
65
|
+
console.log(` ${chalk_1.default.yellow('⚠')} ${DIM('A previously scheduled wake is still active and could not be removed. Run this once:')}`);
|
|
66
|
+
console.log(` ${ACCENT('sudo pmset repeat cancel')}`);
|
|
67
|
+
console.log('');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
console.log(` ${DIM('Skipped — warmup will only run while your Mac is awake. Enable it later with:')}`);
|
|
72
|
+
console.log(` ${ACCENT(commandHint)}`);
|
|
73
|
+
console.log('');
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const result = (0, scheduler_1.applyWakeSchedule)(hour, minute, { interactive: true });
|
|
77
|
+
if (result && result.status === 'applied') {
|
|
78
|
+
if (config) {
|
|
79
|
+
const time = (0, scheduler_1.getWakeTime)(hour, minute);
|
|
80
|
+
if (time) {
|
|
81
|
+
config.wake = { time };
|
|
82
|
+
(0, config_1.writeConfig)(config);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
console.log(` ${chalk_1.default.green('✓')} ${DIM('Daily wake scheduled — warmup runs even while your Mac is asleep.')}`);
|
|
86
|
+
console.log(` ${DIM('(Most reliable on AC power. Undo anytime with')} ${ACCENT('sudo pmset repeat cancel')}${DIM('.)')}`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(` ${chalk_1.default.yellow('⚠')} ${DIM('Could not schedule the wake automatically. Run this once:')}`);
|
|
90
|
+
console.log(` ${ACCENT(commandHint)}`);
|
|
91
|
+
}
|
|
92
|
+
console.log('');
|
|
93
|
+
}
|
|
21
94
|
/** Generate choices for work start time (30 min increments) */
|
|
22
95
|
function generateStartTimeChoices() {
|
|
23
96
|
const choices = [];
|
|
@@ -44,8 +117,13 @@ function generateStartTimeChoices() {
|
|
|
44
117
|
/** Calculate the optimal pre-warm time based on user feedback */
|
|
45
118
|
function calculateOptimalPrewarm(startMins, exhaustMins) {
|
|
46
119
|
let prewarmMins = startMins + exhaustMins - (5 * 60);
|
|
47
|
-
|
|
48
|
-
|
|
120
|
+
// Never schedule at or after the start time — the pre-warm must complete
|
|
121
|
+
// *before* the user begins, leaving a small lead. (Previously this clamped to
|
|
122
|
+
// exactly startMins, so a "5+ hours" answer scheduled the warmup for the very
|
|
123
|
+
// minute work began, defeating the point of pre-warming.)
|
|
124
|
+
const latestPrewarm = startMins - WARM_LEAD_MINUTES;
|
|
125
|
+
if (prewarmMins > latestPrewarm) {
|
|
126
|
+
prewarmMins = latestPrewarm;
|
|
49
127
|
}
|
|
50
128
|
if (prewarmMins < 0) {
|
|
51
129
|
prewarmMins += 24 * 60;
|
|
@@ -100,26 +178,37 @@ async function confirmAndInstallSchedule(plan, deps = {}) {
|
|
|
100
178
|
const makeConfig = deps.createDefaultConfig ?? config_1.createDefaultConfig;
|
|
101
179
|
const persistConfig = deps.writeConfig ?? config_1.writeConfig;
|
|
102
180
|
const finishSetup = deps.animateSetupComplete ?? ui_1.animateSetupComplete;
|
|
181
|
+
const setupWake = deps.configureWakeSchedule ?? configureWakeSchedule;
|
|
103
182
|
showInstallPreview(plan);
|
|
104
183
|
if (!(await confirmInstall())) {
|
|
105
184
|
showSetupDeferred();
|
|
106
185
|
return 'cancelled';
|
|
107
186
|
}
|
|
108
187
|
const installSpinner = startInstallSpinner(plan.schedulerLabel);
|
|
188
|
+
let config;
|
|
109
189
|
try {
|
|
110
190
|
ensureDir();
|
|
111
191
|
const runtime = resolveRuntime();
|
|
112
192
|
install({ hour: plan.hour, minute: plan.minute, runtime });
|
|
113
|
-
|
|
193
|
+
config = makeConfig(plan.time, plan.timezone, runtime);
|
|
114
194
|
persistConfig(config);
|
|
115
195
|
installSpinner.succeed('Schedule installed with boot-recovery');
|
|
116
|
-
await finishSetup(config);
|
|
117
|
-
return 'installed';
|
|
118
196
|
}
|
|
119
197
|
catch (err) {
|
|
120
198
|
installSpinner.fail(`Installation failed: ${err.message}`);
|
|
121
199
|
return 'failed';
|
|
122
200
|
}
|
|
201
|
+
// The wake step + completion run AFTER the schedule is installed. A failure
|
|
202
|
+
// here (Ctrl-C at the wake prompt, non-TTY stdin) must NOT report the install
|
|
203
|
+
// as failed — the schedule and config are already in place.
|
|
204
|
+
try {
|
|
205
|
+
await setupWake(plan.hour, plan.minute);
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
// wake is best-effort; the schedule is already installed
|
|
209
|
+
}
|
|
210
|
+
await finishSetup(config);
|
|
211
|
+
return 'installed';
|
|
123
212
|
}
|
|
124
213
|
async function setupCommand(options = {}) {
|
|
125
214
|
if (!options.skipLogo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBnD"}
|
package/dist/commands/status.js
CHANGED
|
@@ -3,12 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.statusCommand = statusCommand;
|
|
4
4
|
const config_1 = require("../config");
|
|
5
5
|
const ui_1 = require("../ui");
|
|
6
|
+
const scheduler_1 = require("../scheduler");
|
|
6
7
|
async function statusCommand() {
|
|
7
8
|
const config = (0, config_1.readConfig)();
|
|
8
9
|
if (!config) {
|
|
9
10
|
(0, ui_1.printNotSetup)();
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
// Only macOS exposes a separately-managed wake; elsewhere the wake flag is
|
|
14
|
+
// baked into the task itself, so we leave the row out. Report "scheduled"
|
|
15
|
+
// only when warmup owns the live wake (config.wake) — a foreign pmset repeat
|
|
16
|
+
// must not be attributed to warmup.
|
|
17
|
+
const wakeScheduleActive = (0, scheduler_1.detectPlatform)() === 'macos'
|
|
18
|
+
? Boolean(config.wake) && (0, scheduler_1.isWakeScheduleActive)()
|
|
19
|
+
: undefined;
|
|
20
|
+
await (0, ui_1.displayStatus)(config, {
|
|
21
|
+
needsRuntimeRefresh: !config.runtime,
|
|
22
|
+
wakeScheduleActive,
|
|
23
|
+
});
|
|
13
24
|
}
|
|
14
25
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;AAIA,sCAmBC;AAvBD,sCAAuC;AACvC,8BAAqD;AACrD,4CAAoE;AAE7D,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAA,kBAAa,GAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,oCAAoC;IACpC,MAAM,kBAAkB,GAAG,IAAA,0BAAc,GAAE,KAAK,OAAO;QACrD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAA,gCAAoB,GAAE;QAChD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,IAAA,kBAAa,EAAC,MAAM,EAAE;QAC1B,mBAAmB,EAAE,CAAC,MAAM,CAAC,OAAO;QACpC,kBAAkB;KACnB,CAAC,CAAC;AACL,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;
|
|
@@ -31,6 +39,13 @@ 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[];
|
|
33
41
|
export declare function hasSuccessfulRunSince(since: Date): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Whether any actionable outcome (a run, a recorded skip, OR a failure) exists
|
|
44
|
+
* since `since`. Used to record a missed window at most once per scheduled
|
|
45
|
+
* occurrence — and to avoid contradicting an earlier failure with a later
|
|
46
|
+
* "skipped" entry for the same occurrence.
|
|
47
|
+
*/
|
|
48
|
+
export declare function hasOutcomeSince(since: Date): boolean;
|
|
34
49
|
export declare function detectTimezone(): string;
|
|
35
50
|
export declare function formatTimeLocal(date: Date, timezone: string): string;
|
|
36
51
|
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
|
@@ -49,6 +49,7 @@ exports.writeLog = writeLog;
|
|
|
49
49
|
exports.getLatestLog = getLatestLog;
|
|
50
50
|
exports.getLogsForDate = getLogsForDate;
|
|
51
51
|
exports.hasSuccessfulRunSince = hasSuccessfulRunSince;
|
|
52
|
+
exports.hasOutcomeSince = hasOutcomeSince;
|
|
52
53
|
exports.detectTimezone = detectTimezone;
|
|
53
54
|
exports.formatTimeLocal = formatTimeLocal;
|
|
54
55
|
exports.formatDateTimeLocal = formatDateTimeLocal;
|
|
@@ -204,6 +205,22 @@ function hasSuccessfulRunSince(since) {
|
|
|
204
205
|
return !Number.isNaN(timestamp) && timestamp >= threshold;
|
|
205
206
|
}));
|
|
206
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Whether any actionable outcome (a run, a recorded skip, OR a failure) exists
|
|
210
|
+
* since `since`. Used to record a missed window at most once per scheduled
|
|
211
|
+
* occurrence — and to avoid contradicting an earlier failure with a later
|
|
212
|
+
* "skipped" entry for the same occurrence.
|
|
213
|
+
*/
|
|
214
|
+
function hasOutcomeSince(since) {
|
|
215
|
+
const threshold = since.getTime();
|
|
216
|
+
const counted = new Set(['success', 'boot-recovery', 'skipped', 'failed']);
|
|
217
|
+
return getDatedLogFiles().some(file => readLogFile(file).some(entry => {
|
|
218
|
+
if (!counted.has(entry.status))
|
|
219
|
+
return false;
|
|
220
|
+
const timestamp = new Date(entry.timestamp).getTime();
|
|
221
|
+
return !Number.isNaN(timestamp) && timestamp >= threshold;
|
|
222
|
+
}));
|
|
223
|
+
}
|
|
207
224
|
function cleanOldLogs(maxDays) {
|
|
208
225
|
const cutoff = new Date();
|
|
209
226
|
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.js
CHANGED
|
File without changes
|
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
|