@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.
Files changed (53) hide show
  1. package/README.md +5 -5
  2. package/dist/commands/execute.d.ts +24 -1
  3. package/dist/commands/execute.d.ts.map +1 -1
  4. package/dist/commands/execute.js +53 -21
  5. package/dist/commands/execute.js.map +1 -1
  6. package/dist/commands/setup.d.ts +7 -0
  7. package/dist/commands/setup.d.ts.map +1 -1
  8. package/dist/commands/setup.js +94 -5
  9. package/dist/commands/setup.js.map +1 -1
  10. package/dist/commands/status.d.ts.map +1 -1
  11. package/dist/commands/status.js +12 -1
  12. package/dist/commands/status.js.map +1 -1
  13. package/dist/commands/uninstall.d.ts.map +1 -1
  14. package/dist/commands/uninstall.js +15 -0
  15. package/dist/commands/uninstall.js.map +1 -1
  16. package/dist/config.d.ts +16 -1
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +17 -0
  19. package/dist/config.js.map +1 -1
  20. package/dist/index.js +0 -0
  21. package/dist/notify.d.ts +14 -0
  22. package/dist/notify.d.ts.map +1 -0
  23. package/dist/notify.js +91 -0
  24. package/dist/notify.js.map +1 -0
  25. package/dist/runtime.d.ts +10 -0
  26. package/dist/runtime.d.ts.map +1 -1
  27. package/dist/runtime.js +48 -2
  28. package/dist/runtime.js.map +1 -1
  29. package/dist/scheduler/index.d.ts +17 -0
  30. package/dist/scheduler/index.d.ts.map +1 -1
  31. package/dist/scheduler/index.js +42 -0
  32. package/dist/scheduler/index.js.map +1 -1
  33. package/dist/scheduler/linux.d.ts.map +1 -1
  34. package/dist/scheduler/linux.js +3 -10
  35. package/dist/scheduler/linux.js.map +1 -1
  36. package/dist/scheduler/macos.d.ts +38 -0
  37. package/dist/scheduler/macos.d.ts.map +1 -1
  38. package/dist/scheduler/macos.js +158 -23
  39. package/dist/scheduler/macos.js.map +1 -1
  40. package/dist/scheduler/script.d.ts +18 -0
  41. package/dist/scheduler/script.d.ts.map +1 -0
  42. package/dist/scheduler/script.js +62 -0
  43. package/dist/scheduler/script.js.map +1 -0
  44. package/dist/scheduler/windows.js +1 -1
  45. package/dist/ui.d.ts +1 -0
  46. package/dist/ui.d.ts.map +1 -1
  47. package/dist/ui.js +40 -11
  48. package/dist/ui.js.map +1 -1
  49. package/dist/warmup.d.ts +39 -0
  50. package/dist/warmup.d.ts.map +1 -1
  51. package/dist/warmup.js +55 -0
  52. package/dist/warmup.js.map +1 -1
  53. 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. If your laptop was closed at your 5:00 AM pre-warm time, the pre-warm fires **immediately upon waking your machine** (e.g., at 8:00 AM).
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` via `RunAtLoad` |
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":"AAOA;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4CpD"}
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"}
@@ -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 config = (0, config_1.readConfig)();
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 isBootRecovery = (0, warmup_1.shouldBootRecover)(config);
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 [h, m] = config.schedule.time.split(':').map(Number);
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 (0, ui_1.animateBootRecovery)(scheduledTime, actualTime);
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
- const result = (0, warmup_1.executeWarmup)(true);
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 (0, ui_1.animateBootRecoverySuccess)(resetTime);
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 ((0, config_1.isNearScheduledTime)(config.schedule.time, config.schedule.timezone)) {
46
- // Normal scheduled execution only fire if we're near the scheduled time
47
- (0, warmup_1.executeWarmup)(false);
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
- // If neither boot-recovery nor near scheduled time, do nothing.
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":";;AAWA,wCA4CC;AAvDD,sCAAwE;AACxE,sCAA6D;AAC7D,8BAGe;AAEf;;;GAGG;AACI,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,0BAAiB,EAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACjD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;YAClC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,mEAAmE;QACnE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAA,wBAAmB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3C,8DAA8D;YAC9D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;iBAC3D,kBAAkB,CAAC,OAAO,EAAE;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAClC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACL,MAAM,IAAA,+BAA0B,EAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;SAAM,IAAI,IAAA,4BAAmB,EAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/E,0EAA0E;QAC1E,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,gEAAgE;IAChE,oEAAoE;AACtE,CAAC"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
@@ -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;AAGnB,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,OAAO,CAAC;AACf,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAKpE,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;CAC/D;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,CAuB7D;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,CAoC/C;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EnF"}
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"}
@@ -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
- if (prewarmMins > startMins) {
48
- prewarmMins = startMins;
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
- const config = makeConfig(plan.time, plan.timezone, runtime);
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":"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"}
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":"AAGA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAQnD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBnD"}
@@ -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
- await (0, ui_1.displayStatus)(config, { needsRuntimeRefresh: !config.runtime });
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":";;AAGA,sCAQC;AAXD,sCAAuC;AACvC,8BAAqD;AAE9C,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,MAAM,IAAA,kBAAa,EAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACxE,CAAC"}
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":"AAQA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BtD"}
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":";;;;;AAQA,4CA2BC;AAnCD,wDAAgC;AAChC,sCAAuC;AACvC,4CAAiD;AACjD,8BAAuE;AACvE,kDAA0B;AAE1B,MAAM,GAAG,GAAG,eAAK,CAAC,IAAI,CAAC;AAEhB,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;QACpB,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"}
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;
@@ -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;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAqBhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAItD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAYvG;AAMD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU5E;AA4BD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAehE;AAED,wBAAgB,YAAY,IAAI,QAAQ,GAAG,IAAI,CAQ9C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAW1D;AAiBD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUxE;AAID,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5D;AA4BD,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,GAAG,IAAI,CAWlF;AAED,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAIvD;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,IAAI,GAAG,MAAM,CAK5D;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAQ/G;AAED,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,IAAI,CAGrH;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,GAAE,MAAU,EAC5B,GAAG,GAAE,IAAiB,GACrB,OAAO,CAST"}
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);
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,oCAEC;AAED,8CAEC;AAED,gCAEC;AAED,0CAOC;AAED,oCAEC;AAED,gCAqBC;AAED,kCAIC;AAED,kDAYC;AAMD,0DAUC;AA4BD,4BAeC;AAED,oCAQC;AAED,wCAEC;AAED,sDAWC;AAQD,0CASC;AAiBD,wCAEC;AAED,0CAOC;AAED,kDAUC;AAKD,gCAIC;AA6BD,0CAWC;AAGD,gDAIC;AAGD,8CAKC;AAED,4DAQC;AAED,4EAGC;AAMD,kDAcC;AA/VD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,kDAA0B;AA8B1B,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC/C,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AACpD,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE/C,SAAgB,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,UAAU;IACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;QAC/C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC;YAC9C,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI;YAC9B,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC;YAC3D,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,MAAoB;IAC9C,eAAe,EAAE,CAAC;IAClB,MAAM,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,QAAgB,EAAE,OAAqB;IACvF,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE;YACR,IAAI;YACJ,QAAQ;YACR,OAAO,EAAE,IAAI;SACd;QACD,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,gBAAgB;AAEhB,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB,SAAgB,uBAAuB,CAAC,IAAU,EAAE,QAAgB;IAClE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;KACf,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,OAAO,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,IAAI,EAAE;SACN,OAAO,EAAE,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAqB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAe,EAAE,QAAgB;IACxD,eAAe,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC1C,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,qEAAqE;IACrE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,aAAa,GAAG,IAAI,CAAC;QACrB,YAAY,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,YAAY;IAC1B,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,WAAW,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAW;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAElC,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACpE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,SAAS,CAAC;IAC5D,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,KAAW;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3E,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,SAAS,CAAC;IAC5D,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED,iBAAiB;AAEjB,SAAgB,cAAc;IAC5B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;AAC1D,CAAC;AAED,SAAgB,eAAe,CAAC,IAAU,EAAE,QAAgB;IAC1D,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACtC,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAU,EAAE,QAAgB;IAC9D,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QAClC,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC;AAED,0BAA0B;AAE1B,yEAAyE;AACzE,SAAgB,UAAU,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;AAC/D,CAAC;AAED,yBAAyB;AAEzB;;;GAGG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IAChE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAEtB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,+DAA+D;IAC/D,IAAI,IAAI,KAAK,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC;IAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,oDAAoD;AACpD,SAAgB,eAAe,CAAC,MAAoB,EAAE,MAAY,IAAI,IAAI,EAAE;IAC1E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAErF,mCAAmC;IACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1C,IAAI,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;IAC5C,IAAI,WAAW,IAAI,CAAC;QAAE,WAAW,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW;IAEzD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,gEAAgE;AAChE,SAAgB,kBAAkB,CAAC,QAAc;IAC/C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kEAAkE;AAClE,SAAgB,iBAAiB,CAAC,YAAkB;IAClD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,UAAU;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,wBAAwB,CAAC,YAAoB,EAAE,QAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IACrG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IAEpC,OAAO,CAAC,UAAU,GAAG,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,gCAAgC,CAAC,YAAoB,EAAE,QAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IAC7G,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpF,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,YAAoB,EACpB,QAAgB,EAChB,mBAA2B,CAAC,EAC5B,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;IAEjD,OAAO,IAAI,IAAI,gBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,gBAAgB,CAAC;AAC1E,CAAC"}
package/dist/index.js CHANGED
File without changes
@@ -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