@monotykamary/localterm-server 2.3.0 → 2.4.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/dist/caffeinate-battery.d.ts +10 -0
- package/dist/caffeinate-battery.d.ts.map +1 -0
- package/dist/caffeinate-battery.js +47 -0
- package/dist/caffeinate-battery.js.map +1 -0
- package/dist/caffeinate-manager.d.ts +17 -0
- package/dist/caffeinate-manager.d.ts.map +1 -1
- package/dist/caffeinate-manager.js +194 -4
- package/dist/caffeinate-manager.js.map +1 -1
- package/dist/caffeinate-preferences-store.d.ts +2 -0
- package/dist/caffeinate-preferences-store.d.ts.map +1 -1
- package/dist/caffeinate-preferences-store.js +31 -2
- package/dist/caffeinate-preferences-store.js.map +1 -1
- package/dist/constants.d.ts +8 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +29 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/schemas.d.ts +6 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +32 -3
- package/dist/schemas.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface BatteryStatus {
|
|
2
|
+
percent: number;
|
|
3
|
+
isOnBattery: boolean;
|
|
4
|
+
minutesToEmpty: number | null;
|
|
5
|
+
}
|
|
6
|
+
export type BatteryProbe = () => Promise<BatteryStatus | null>;
|
|
7
|
+
export declare const parsePmsetBatt: (stdout: string) => BatteryStatus | null;
|
|
8
|
+
export declare const clampBatteryPercent: (percent: number) => number;
|
|
9
|
+
export declare const defaultBatteryProbe: BatteryProbe;
|
|
10
|
+
//# sourceMappingURL=caffeinate-battery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caffeinate-battery.d.ts","sourceRoot":"","sources":["../src/caffeinate-battery.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,OAAO,CAAC;IAIrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAM/D,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,aAAa,GAAG,IAwB/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,MASrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,YAc9B,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { CAFFEINATE_BATTERY_LOW_WATER_MAX_PERCENT, CAFFEINATE_BATTERY_LOW_WATER_MIN_PERCENT, CAFFEINATE_BATTERY_READ_TIMEOUT_MS, } from "./constants.js";
|
|
3
|
+
const PERCENT_RE = /(\d+)%/;
|
|
4
|
+
const TIME_RE = /(\d+):(\d+)\s+remaining/;
|
|
5
|
+
const PRESENT_RE = /present:\s*(true|false)/;
|
|
6
|
+
export const parsePmsetBatt = (stdout) => {
|
|
7
|
+
// `present: false` (e.g. "No Batteries Available" line on a desktop) means
|
|
8
|
+
// there is nothing to gate on. Some desktops print no battery line at all,
|
|
9
|
+
// which also fails the percent match below and resolves to null.
|
|
10
|
+
const presentMatch = PRESENT_RE.exec(stdout);
|
|
11
|
+
if (presentMatch && presentMatch[1] === "false")
|
|
12
|
+
return null;
|
|
13
|
+
const percentMatch = PERCENT_RE.exec(stdout);
|
|
14
|
+
if (!percentMatch)
|
|
15
|
+
return null;
|
|
16
|
+
const percent = Number(percentMatch[1]);
|
|
17
|
+
// "Now drawing from 'Battery Power'" is the only line that means discharging.
|
|
18
|
+
// "AC Power" covers both charging and charged-but-plugged-in; in either case
|
|
19
|
+
// the floor does not apply.
|
|
20
|
+
const isOnBattery = /Battery Power/.test(stdout);
|
|
21
|
+
let minutesToEmpty = null;
|
|
22
|
+
if (isOnBattery) {
|
|
23
|
+
// Only trust the time estimate on battery: the AC "remaining" is time to
|
|
24
|
+
// full charge, not to empty, and would blow up the adaptive scheduler.
|
|
25
|
+
const timeMatch = TIME_RE.exec(stdout);
|
|
26
|
+
if (timeMatch)
|
|
27
|
+
minutesToEmpty = Number(timeMatch[1]) * 60 + Number(timeMatch[2]);
|
|
28
|
+
}
|
|
29
|
+
return { percent, isOnBattery, minutesToEmpty };
|
|
30
|
+
};
|
|
31
|
+
export const clampBatteryPercent = (percent) => {
|
|
32
|
+
if (!Number.isFinite(percent)) {
|
|
33
|
+
return CAFFEINATE_BATTERY_LOW_WATER_MIN_PERCENT;
|
|
34
|
+
}
|
|
35
|
+
const floored = Math.floor(percent);
|
|
36
|
+
return Math.min(CAFFEINATE_BATTERY_LOW_WATER_MAX_PERCENT, Math.max(CAFFEINATE_BATTERY_LOW_WATER_MIN_PERCENT, floored));
|
|
37
|
+
};
|
|
38
|
+
export const defaultBatteryProbe = () => new Promise((resolve) => {
|
|
39
|
+
execFile("pmset", ["-g", "batt"], { timeout: CAFFEINATE_BATTERY_READ_TIMEOUT_MS }, (error, stdout) => {
|
|
40
|
+
if (error) {
|
|
41
|
+
resolve(null);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
resolve(parsePmsetBatt(stdout));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=caffeinate-battery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caffeinate-battery.js","sourceRoot":"","sources":["../src/caffeinate-battery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,wCAAwC,EACxC,wCAAwC,EACxC,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AAoBxB,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,OAAO,GAAG,yBAAyB,CAAC;AAC1C,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAwB,EAAE;IACrE,2EAA2E;IAC3E,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAE7D,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAExC,8EAA8E;IAC9E,6EAA6E;IAC7E,4BAA4B;IAC5B,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,WAAW,EAAE,CAAC;QAChB,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,SAAS;YAAE,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,wCAAwC,CAAC;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CACb,wCAAwC,EACxC,IAAI,CAAC,GAAG,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAiB,GAAG,EAAE,CACpD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,QAAQ,CACN,OAAO,EACP,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,EAAE,OAAO,EAAE,kCAAkC,EAAE,EAC/C,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
2
|
import type { CaffeinateController } from "./caffeinate-controller.js";
|
|
3
3
|
import type { CaffeinatePreferencesStore } from "./caffeinate-preferences-store.js";
|
|
4
|
+
import { type BatteryProbe } from "./caffeinate-battery.js";
|
|
4
5
|
import { type SnapshotProcesses } from "./caffeinate-process-match.js";
|
|
5
6
|
import type { CaffeinateMode } from "./types.js";
|
|
6
7
|
export interface CaffeinateManagerOptions {
|
|
@@ -10,6 +11,7 @@ export interface CaffeinateManagerOptions {
|
|
|
10
11
|
snapshotProcesses?: SnapshotProcesses;
|
|
11
12
|
defaultCommands?: readonly string[];
|
|
12
13
|
hasRecentOutput?: (pids: readonly number[], withinMs: number) => boolean;
|
|
14
|
+
batteryProbe?: BatteryProbe;
|
|
13
15
|
}
|
|
14
16
|
interface CaffeinateManagerEvents {
|
|
15
17
|
change: [];
|
|
@@ -20,11 +22,17 @@ export declare class CaffeinateManager extends EventEmitter<CaffeinateManagerEve
|
|
|
20
22
|
private readonly listSessionPids;
|
|
21
23
|
private readonly snapshotProcesses;
|
|
22
24
|
private readonly checkRecentOutput?;
|
|
25
|
+
private readonly batteryProbe;
|
|
23
26
|
readonly defaultCommands: readonly string[];
|
|
24
27
|
private autoActive;
|
|
25
28
|
private autoTrigger;
|
|
26
29
|
private pokeTimer;
|
|
27
30
|
private activityGateTimer;
|
|
31
|
+
private batteryLow;
|
|
32
|
+
private lastBatteryStatus;
|
|
33
|
+
private hasProbedBattery;
|
|
34
|
+
private batteryTimer;
|
|
35
|
+
private batteryCheckInFlight;
|
|
28
36
|
private polling;
|
|
29
37
|
private pollQueued;
|
|
30
38
|
private disposed;
|
|
@@ -34,6 +42,7 @@ export declare class CaffeinateManager extends EventEmitter<CaffeinateManagerEve
|
|
|
34
42
|
get mode(): CaffeinateMode;
|
|
35
43
|
get commands(): string[];
|
|
36
44
|
get activityGate(): boolean;
|
|
45
|
+
get batteryThreshold(): number | null;
|
|
37
46
|
get activeTrigger(): string | null;
|
|
38
47
|
setMode(mode: CaffeinateMode): void;
|
|
39
48
|
setCommands(commands: readonly string[]): void;
|
|
@@ -44,7 +53,15 @@ export declare class CaffeinateManager extends EventEmitter<CaffeinateManagerEve
|
|
|
44
53
|
dispose(): void;
|
|
45
54
|
private triggerSet;
|
|
46
55
|
private recompute;
|
|
56
|
+
private modeWantsActive;
|
|
47
57
|
private clearActivityGateTimer;
|
|
58
|
+
pollBatteryNow(): Promise<void>;
|
|
59
|
+
setBatteryThreshold(percent: number | null): void;
|
|
60
|
+
private runBatteryCheck;
|
|
61
|
+
private performBatteryCheck;
|
|
62
|
+
private scheduleBatteryCheck;
|
|
63
|
+
private computeBatteryDelay;
|
|
64
|
+
private clearBatteryTimer;
|
|
48
65
|
private pollAuto;
|
|
49
66
|
private armActivityGateTimerIfNeeded;
|
|
50
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caffeinate-manager.d.ts","sourceRoot":"","sources":["../src/caffeinate-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"caffeinate-manager.d.ts","sourceRoot":"","sources":["../src/caffeinate-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
|
+
import { defaultBatteryProbe, } from "./caffeinate-battery.js";
|
|
2
3
|
import { anySessionRunsTrigger, defaultSnapshotProcesses, } from "./caffeinate-process-match.js";
|
|
3
|
-
import { CAFFEINATE_ACTIVITY_GATE_DEBOUNCE_MS, CAFFEINATE_AUTO_DEFAULT_COMMANDS, CAFFEINATE_AUTO_POKE_DEBOUNCE_MS, } from "./constants.js";
|
|
4
|
+
import { CAFFEINATE_ACTIVITY_GATE_DEBOUNCE_MS, CAFFEINATE_AUTO_DEFAULT_COMMANDS, CAFFEINATE_AUTO_POKE_DEBOUNCE_MS, CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS, CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS, CAFFEINATE_BATTERY_POLL_TIME_FRACTION, MS_PER_MINUTE, } from "./constants.js";
|
|
4
5
|
// Decides *when* the daemon's single keep-awake process runs, on top of the
|
|
5
6
|
// dumb CaffeinateController (which only knows start/stop). In "on" it is always
|
|
6
7
|
// active, in "off" never, and in "automatic" it tracks whether any recognized
|
|
@@ -9,7 +10,7 @@ import { CAFFEINATE_ACTIVITY_GATE_DEBOUNCE_MS, CAFFEINATE_AUTO_DEFAULT_COMMANDS,
|
|
|
9
10
|
// (the default), caffeinate further requires that a recognized program is
|
|
10
11
|
// producing output; after CAFFEINATE_ACTIVITY_GATE_DEBOUNCE_MS of silence,
|
|
11
12
|
// caffeinate releases. Emits `change` whenever any broadcastable field
|
|
12
|
-
// (mode/active/commands) moves.
|
|
13
|
+
// (mode/active/commands/batteryThreshold) moves.
|
|
13
14
|
//
|
|
14
15
|
// Automatic detection is event-driven: it never polls on a timer. A `ps`
|
|
15
16
|
// snapshot is taken only in response to an event — a session's foreground
|
|
@@ -20,17 +21,51 @@ import { CAFFEINATE_ACTIVITY_GATE_DEBOUNCE_MS, CAFFEINATE_AUTO_DEFAULT_COMMANDS,
|
|
|
20
21
|
// The activity gate is driven by a trailing-edge timer: output resets it, and
|
|
21
22
|
// when it finally fires (no output for the debounce window), it pokes a
|
|
22
23
|
// re-check.
|
|
24
|
+
//
|
|
25
|
+
// The battery floor is the one piece of polling in this module, and it is
|
|
26
|
+
// adaptive rather than a fixed heartbeat: a `pmset -g batt` read happens only
|
|
27
|
+
// while a mode wants caffeinate active (off/idle `automatic` never reads it),
|
|
28
|
+
// and the delay until the next read is 1/TIME_FRACTION of the interpolated
|
|
29
|
+
// time-to-threshold, so polling tightens as the floor approaches and stays lax
|
|
30
|
+
// far from it (capped at MAX, floored at MIN). macOS pushes no notification at
|
|
31
|
+
// an arbitrary percent, so a bounded polling timer is unavoidable here; the
|
|
32
|
+
// adaptive schedule keeps it as cheap as it can be. While below the floor on
|
|
33
|
+
// battery, the daemon refuses to hold the power assertion (it stops caffeinate
|
|
34
|
+
// without changing the selected mode); plugging in or charging back above the
|
|
35
|
+
// floor resumes normally.
|
|
23
36
|
export class CaffeinateManager extends EventEmitter {
|
|
24
37
|
controller;
|
|
25
38
|
store;
|
|
26
39
|
listSessionPids;
|
|
27
40
|
snapshotProcesses;
|
|
28
41
|
checkRecentOutput;
|
|
42
|
+
batteryProbe;
|
|
29
43
|
defaultCommands;
|
|
30
44
|
autoActive = false;
|
|
31
45
|
autoTrigger = null;
|
|
32
46
|
pokeTimer = null;
|
|
33
47
|
activityGateTimer = null;
|
|
48
|
+
// The cached battery-suppression flag: true means the machine is on battery
|
|
49
|
+
// power at or below the configured threshold, so `recompute` suppresses
|
|
50
|
+
// caffeinate regardless of what the mode wants.
|
|
51
|
+
batteryLow = false;
|
|
52
|
+
// The most recent battery read, used to choose the next adaptive delay. Null
|
|
53
|
+
// until the first read completes (and is reset to null after a read failure
|
|
54
|
+
// so computeBatteryDelay's null branch picks MAX — fail-open retries slowly).
|
|
55
|
+
lastBatteryStatus = null;
|
|
56
|
+
// Whether performBatteryCheck has resolved at least once. Drives
|
|
57
|
+
// `needsFirstProbe` in `recompute` independently of lastBatteryStatus: a
|
|
58
|
+
// daemon that boots with the battery already below the floor never briefly
|
|
59
|
+
// spawns the power assertion before the first read suppresses it, while a
|
|
60
|
+
// later failed read (lastBatteryStatus -> null) still fail-opens instead of
|
|
61
|
+
// re-gating caffeinate off forever.
|
|
62
|
+
hasProbedBattery = false;
|
|
63
|
+
batteryTimer = null;
|
|
64
|
+
// Coalesces concurrent battery checks: callers (the timer, setBatteryThreshold,
|
|
65
|
+
// pollBatteryNow) all funnel through runBatteryCheck, which returns the same
|
|
66
|
+
// in-flight promise so they all settle on the same result without piling up
|
|
67
|
+
// `pmset` calls — the promise-tracking analogue of pollAuto's polling flag.
|
|
68
|
+
batteryCheckInFlight = null;
|
|
34
69
|
polling = false;
|
|
35
70
|
pollQueued = false;
|
|
36
71
|
disposed = false;
|
|
@@ -42,6 +77,7 @@ export class CaffeinateManager extends EventEmitter {
|
|
|
42
77
|
this.snapshotProcesses = options.snapshotProcesses ?? defaultSnapshotProcesses;
|
|
43
78
|
this.defaultCommands = options.defaultCommands ?? CAFFEINATE_AUTO_DEFAULT_COMMANDS;
|
|
44
79
|
this.checkRecentOutput = options.hasRecentOutput;
|
|
80
|
+
this.batteryProbe = options.batteryProbe ?? defaultBatteryProbe;
|
|
45
81
|
// An unexpected death of the caffeinate process flips controller state; pass
|
|
46
82
|
// that through so every tab rebroadcasts the authoritative `active`.
|
|
47
83
|
this.controller.on("change", () => this.emit("change"));
|
|
@@ -66,6 +102,9 @@ export class CaffeinateManager extends EventEmitter {
|
|
|
66
102
|
get activityGate() {
|
|
67
103
|
return this.store.getActivityGate();
|
|
68
104
|
}
|
|
105
|
+
get batteryThreshold() {
|
|
106
|
+
return this.store.getBatteryThreshold();
|
|
107
|
+
}
|
|
69
108
|
get activeTrigger() {
|
|
70
109
|
return this.autoActive ? this.autoTrigger : null;
|
|
71
110
|
}
|
|
@@ -162,6 +201,7 @@ export class CaffeinateManager extends EventEmitter {
|
|
|
162
201
|
this.pokeTimer = null;
|
|
163
202
|
}
|
|
164
203
|
this.clearActivityGateTimer();
|
|
204
|
+
this.clearBatteryTimer();
|
|
165
205
|
this.controller.dispose();
|
|
166
206
|
this.removeAllListeners();
|
|
167
207
|
}
|
|
@@ -176,9 +216,28 @@ export class CaffeinateManager extends EventEmitter {
|
|
|
176
216
|
return triggers;
|
|
177
217
|
}
|
|
178
218
|
recompute() {
|
|
179
|
-
const
|
|
180
|
-
const
|
|
219
|
+
const wantActive = this.modeWantsActive();
|
|
220
|
+
const guardApplies = this.supported && this.batteryThreshold !== null;
|
|
221
|
+
// While the guard is on but we've never read the battery, hold off engaging
|
|
222
|
+
// until that first read resolves — otherwise a daemon that boots with the
|
|
223
|
+
// battery already below the floor briefly spawns the power assertion before
|
|
224
|
+
// the probe suppresses it. Subsequent arms use the cached flag instead.
|
|
225
|
+
const needsFirstProbe = guardApplies && !this.hasProbedBattery;
|
|
226
|
+
const desired = wantActive && !(guardApplies && (this.batteryLow || needsFirstProbe));
|
|
181
227
|
this.controller.setActive(desired);
|
|
228
|
+
if (wantActive && guardApplies) {
|
|
229
|
+
// Start (or keep) the adaptive battery check armed. The next delay is
|
|
230
|
+
// derived from the last status, or an immediate probe when there's no
|
|
231
|
+
// cached reading yet.
|
|
232
|
+
this.scheduleBatteryCheck(this.lastBatteryStatus);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
this.clearBatteryTimer();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
modeWantsActive() {
|
|
239
|
+
const mode = this.mode;
|
|
240
|
+
return mode === "on" || (mode === "automatic" && this.autoActive);
|
|
182
241
|
}
|
|
183
242
|
clearActivityGateTimer() {
|
|
184
243
|
if (this.activityGateTimer !== null) {
|
|
@@ -186,6 +245,137 @@ export class CaffeinateManager extends EventEmitter {
|
|
|
186
245
|
this.activityGateTimer = null;
|
|
187
246
|
}
|
|
188
247
|
}
|
|
248
|
+
// Force an immediate battery re-check and resolve when it settles. Used by
|
|
249
|
+
// tests; production code re-checks via the adaptive timer. Awaits an already
|
|
250
|
+
// in-flight check (so concurrent test calls see the same resolved state)
|
|
251
|
+
// rather than queueing a second probe.
|
|
252
|
+
pollBatteryNow() {
|
|
253
|
+
return this.runBatteryCheck();
|
|
254
|
+
}
|
|
255
|
+
// Set the persisted battery floor. `null` disables the guard. Persists
|
|
256
|
+
// immediately (so every tab stays in lockstep via the broadcast) and re-derives
|
|
257
|
+
// suppression from a fresh read so the user sees the floor take effect at
|
|
258
|
+
// once rather than after the adaptive timer's first delay.
|
|
259
|
+
setBatteryThreshold(percent) {
|
|
260
|
+
if (this.disposed)
|
|
261
|
+
return;
|
|
262
|
+
this.store.setBatteryThreshold(percent);
|
|
263
|
+
this.emit("change");
|
|
264
|
+
// Clear any pending adaptive check so the next read re-arms with a delay
|
|
265
|
+
// derived from the new threshold (and a fresh status), not the old one.
|
|
266
|
+
this.clearBatteryTimer();
|
|
267
|
+
if (!this.supported || percent === null) {
|
|
268
|
+
// Guard disabled: clear any stale suppression so it can't keep
|
|
269
|
+
// caffeinate off after the user turned the floor off.
|
|
270
|
+
this.batteryLow = false;
|
|
271
|
+
this.recompute();
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
if (this.modeWantsActive()) {
|
|
275
|
+
// Probe immediately so an already-low battery stops caffeinate at once
|
|
276
|
+
// (the adaptive arming would otherwise wait up to MAX_INTERVAL for the
|
|
277
|
+
// first read, since lastBatteryStatus is stale/null until this resolves).
|
|
278
|
+
void this.runBatteryCheck();
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Single entry point for every battery probe. Coalesces concurrent callers
|
|
282
|
+
// onto one in-flight promise so the `pmset` call fires at most once per tick
|
|
283
|
+
// even if the timer, setBatteryThreshold, and a manual pollBatteryNow all race.
|
|
284
|
+
runBatteryCheck() {
|
|
285
|
+
if (this.batteryCheckInFlight !== null)
|
|
286
|
+
return this.batteryCheckInFlight;
|
|
287
|
+
const promise = this.performBatteryCheck().finally(() => {
|
|
288
|
+
if (this.batteryCheckInFlight === promise)
|
|
289
|
+
this.batteryCheckInFlight = null;
|
|
290
|
+
});
|
|
291
|
+
this.batteryCheckInFlight = promise;
|
|
292
|
+
return promise;
|
|
293
|
+
}
|
|
294
|
+
async performBatteryCheck() {
|
|
295
|
+
if (this.disposed)
|
|
296
|
+
return;
|
|
297
|
+
const threshold = this.batteryThreshold;
|
|
298
|
+
// Nothing to gate on: unsupported, guard disabled, or nothing wanting
|
|
299
|
+
// active. The last case keeps the design claim that reads happen only while
|
|
300
|
+
// a mode wants caffeinate active (a probe here would be wasted work and
|
|
301
|
+
// couldn't change `desired`, since `wantActive` already forces it false).
|
|
302
|
+
if (!this.supported || threshold === null || !this.modeWantsActive()) {
|
|
303
|
+
this.clearBatteryTimer();
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
const status = await this.batteryProbe();
|
|
307
|
+
if (this.disposed)
|
|
308
|
+
return;
|
|
309
|
+
this.lastBatteryStatus = status;
|
|
310
|
+
this.hasProbedBattery = true;
|
|
311
|
+
// Fail-open on read failure (null): a missing battery or a transient pmset
|
|
312
|
+
// error cannot take keep-awake away from the user. The scheduler stays
|
|
313
|
+
// armed via the recompute below so a later successful read can re-impose
|
|
314
|
+
// the floor.
|
|
315
|
+
const nextLow = status !== null && status.isOnBattery && status.percent <= threshold;
|
|
316
|
+
if (nextLow !== this.batteryLow) {
|
|
317
|
+
this.batteryLow = nextLow;
|
|
318
|
+
this.emit("change");
|
|
319
|
+
}
|
|
320
|
+
this.recompute();
|
|
321
|
+
}
|
|
322
|
+
scheduleBatteryCheck(status) {
|
|
323
|
+
if (this.disposed)
|
|
324
|
+
return;
|
|
325
|
+
// Coalesce: if a check is already armed, let it run — it reschedules
|
|
326
|
+
// adaptively from a fresh read when it completes, so re-entry here is a no-op.
|
|
327
|
+
if (this.batteryTimer !== null)
|
|
328
|
+
return;
|
|
329
|
+
if (!this.hasProbedBattery) {
|
|
330
|
+
// Never probed: fire immediately (coalesced by runBatteryCheck) so the
|
|
331
|
+
// first arm doesn't wait MAX before applying the floor — a daemon that
|
|
332
|
+
// boots with the battery already below the threshold suppresses at once.
|
|
333
|
+
void this.runBatteryCheck();
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
// A null status here means a prior probe failed or found no battery:
|
|
337
|
+
// computeBatteryDelay maps that to MAX so we retry slowly instead of
|
|
338
|
+
// re-firing immediately and busy-looping on a persistently-failing read.
|
|
339
|
+
const delay = this.computeBatteryDelay(status);
|
|
340
|
+
this.batteryTimer = setTimeout(() => {
|
|
341
|
+
this.batteryTimer = null;
|
|
342
|
+
void this.runBatteryCheck();
|
|
343
|
+
}, delay);
|
|
344
|
+
this.batteryTimer.unref?.();
|
|
345
|
+
}
|
|
346
|
+
computeBatteryDelay(status) {
|
|
347
|
+
const threshold = this.batteryThreshold;
|
|
348
|
+
if (threshold === null)
|
|
349
|
+
return CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS;
|
|
350
|
+
// Already suppressed: poll fast so charging back above the threshold or
|
|
351
|
+
// plugging in resumes promptly. Bounded by how long the machine stays
|
|
352
|
+
// below the floor — which should be short (it's about to lose power).
|
|
353
|
+
if (this.batteryLow)
|
|
354
|
+
return CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS;
|
|
355
|
+
if (status === null || !status.isOnBattery)
|
|
356
|
+
return CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS;
|
|
357
|
+
if (status.minutesToEmpty === null)
|
|
358
|
+
return CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS;
|
|
359
|
+
// Half of the interpolated time-to-threshold: the OS estimate (minutes to
|
|
360
|
+
// 0%) scaled by the charge fraction still above the floor. Halving gives a
|
|
361
|
+
// 2× buffer against the EWMA lagging real discharge (and the active program
|
|
362
|
+
// draining faster than the idle minutes the average was computed over), so
|
|
363
|
+
// a stale-high estimate still catches the crossing in time rather than
|
|
364
|
+
// sleeping past it. Clamped to [MIN, MAX] below.
|
|
365
|
+
const remaining = status.percent - threshold;
|
|
366
|
+
if (remaining <= 0)
|
|
367
|
+
return CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS;
|
|
368
|
+
const fractionAbove = remaining / status.percent;
|
|
369
|
+
const interpolatedMs = status.minutesToEmpty * MS_PER_MINUTE * fractionAbove;
|
|
370
|
+
const scheduledMs = interpolatedMs / CAFFEINATE_BATTERY_POLL_TIME_FRACTION;
|
|
371
|
+
return Math.max(CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS, Math.min(scheduledMs, CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS));
|
|
372
|
+
}
|
|
373
|
+
clearBatteryTimer() {
|
|
374
|
+
if (this.batteryTimer !== null) {
|
|
375
|
+
clearTimeout(this.batteryTimer);
|
|
376
|
+
this.batteryTimer = null;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
189
379
|
async pollAuto() {
|
|
190
380
|
if (this.disposed || this.mode !== "automatic" || !this.supported)
|
|
191
381
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caffeinate-manager.js","sourceRoot":"","sources":["../src/caffeinate-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"caffeinate-manager.js","sourceRoot":"","sources":["../src/caffeinate-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ export declare class CaffeinatePreferencesStore {
|
|
|
6
6
|
getMode(): CaffeinateMode;
|
|
7
7
|
getCommands(): string[];
|
|
8
8
|
getActivityGate(): boolean;
|
|
9
|
+
getBatteryThreshold(): number | null;
|
|
9
10
|
setActivityGate(enabled: boolean): boolean;
|
|
11
|
+
setBatteryThreshold(percent: number | null): number | null;
|
|
10
12
|
setMode(mode: CaffeinateMode): CaffeinateMode;
|
|
11
13
|
setCommands(commands: readonly string[]): string[];
|
|
12
14
|
private load;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caffeinate-preferences-store.d.ts","sourceRoot":"","sources":["../src/caffeinate-preferences-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"caffeinate-preferences-store.d.ts","sourceRoot":"","sources":["../src/caffeinate-preferences-store.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAqCjD,qBAAa,0BAA0B;IAGzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,WAAW,CAAqD;gBAE3C,QAAQ,EAAE,MAAM;IAI7C,OAAO,IAAI,cAAc;IAIzB,WAAW,IAAI,MAAM,EAAE;IAIvB,eAAe,IAAI,OAAO;IAI1B,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAO1C,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAc1D,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAQ7C,WAAW,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;IAMlD,OAAO,CAAC,IAAI;IAoDZ,OAAO,CAAC,OAAO;CAahB"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { CAFFEINATE_PREFERENCES_FILE_VERSION, MAX_CAFFEINATE_COMMAND_LENGTH, MAX_CAFFEINATE_COMMANDS, } from "./constants.js";
|
|
3
|
+
import { CAFFEINATE_BATTERY_LOW_WATER_MAX_PERCENT, CAFFEINATE_BATTERY_LOW_WATER_MIN_PERCENT, CAFFEINATE_BATTERY_LOW_WATER_PERCENT_DEFAULT, CAFFEINATE_PREFERENCES_FILE_VERSION, MAX_CAFFEINATE_COMMAND_LENGTH, MAX_CAFFEINATE_COMMANDS, } from "./constants.js";
|
|
4
4
|
import { caffeinatePreferencesFileSchema } from "./schemas.js";
|
|
5
5
|
import { memoBy } from "./utils/memo-by.js";
|
|
6
6
|
// Default to "automatic": keep-awake follows recognized programs out of the box
|
|
7
7
|
// (the behavior the user asked to make default), with no custom commands yet.
|
|
8
8
|
// The activity gate is on by default: caffeinate only stays active while a
|
|
9
|
-
// recognized program is producing output.
|
|
9
|
+
// recognized program is producing output. The battery floor is on at 20% by
|
|
10
|
+
// default: on battery power at or below that, the daemon refuses to keep awake.
|
|
10
11
|
const DEFAULT_PREFERENCES = {
|
|
11
12
|
mode: "automatic",
|
|
12
13
|
activityGate: true,
|
|
13
14
|
commands: [],
|
|
15
|
+
batteryThreshold: CAFFEINATE_BATTERY_LOW_WATER_PERCENT_DEFAULT,
|
|
14
16
|
};
|
|
15
17
|
// Trim, drop empties, cap length, memo by lowercased form (keeping the first
|
|
16
18
|
// spelling), and cap the count. The trigger match itself is case-insensitive,
|
|
@@ -40,6 +42,9 @@ export class CaffeinatePreferencesStore {
|
|
|
40
42
|
getActivityGate() {
|
|
41
43
|
return this.preferences.activityGate;
|
|
42
44
|
}
|
|
45
|
+
getBatteryThreshold() {
|
|
46
|
+
return this.preferences.batteryThreshold;
|
|
47
|
+
}
|
|
43
48
|
setActivityGate(enabled) {
|
|
44
49
|
if (enabled === this.preferences.activityGate)
|
|
45
50
|
return this.preferences.activityGate;
|
|
@@ -47,6 +52,16 @@ export class CaffeinatePreferencesStore {
|
|
|
47
52
|
this.persist();
|
|
48
53
|
return this.preferences.activityGate;
|
|
49
54
|
}
|
|
55
|
+
setBatteryThreshold(percent) {
|
|
56
|
+
const clamped = percent === null
|
|
57
|
+
? null
|
|
58
|
+
: Math.min(CAFFEINATE_BATTERY_LOW_WATER_MAX_PERCENT, Math.max(CAFFEINATE_BATTERY_LOW_WATER_MIN_PERCENT, Math.floor(percent)));
|
|
59
|
+
if (clamped === this.preferences.batteryThreshold)
|
|
60
|
+
return this.preferences.batteryThreshold;
|
|
61
|
+
this.preferences = { ...this.preferences, batteryThreshold: clamped };
|
|
62
|
+
this.persist();
|
|
63
|
+
return this.preferences.batteryThreshold;
|
|
64
|
+
}
|
|
50
65
|
setMode(mode) {
|
|
51
66
|
if (mode !== this.preferences.mode) {
|
|
52
67
|
this.preferences = { ...this.preferences, mode };
|
|
@@ -84,6 +99,18 @@ export class CaffeinatePreferencesStore {
|
|
|
84
99
|
json.activityGate = true;
|
|
85
100
|
json.version = CAFFEINATE_PREFERENCES_FILE_VERSION;
|
|
86
101
|
}
|
|
102
|
+
// v2 files lack `batteryThreshold`; migrate before validation. Default to
|
|
103
|
+
// the guard-on default rather than null so the floor lights up for existing
|
|
104
|
+
// users on first boot after upgrade.
|
|
105
|
+
if (json &&
|
|
106
|
+
typeof json === "object" &&
|
|
107
|
+
"version" in json &&
|
|
108
|
+
json.version === 2 &&
|
|
109
|
+
!("batteryThreshold" in json)) {
|
|
110
|
+
json.batteryThreshold =
|
|
111
|
+
CAFFEINATE_BATTERY_LOW_WATER_PERCENT_DEFAULT;
|
|
112
|
+
json.version = CAFFEINATE_PREFERENCES_FILE_VERSION;
|
|
113
|
+
}
|
|
87
114
|
const parsed = caffeinatePreferencesFileSchema.safeParse(json);
|
|
88
115
|
if (!parsed.success) {
|
|
89
116
|
console.warn(`caffeinate preferences file invalid; using defaults (${this.filePath})`);
|
|
@@ -93,6 +120,7 @@ export class CaffeinatePreferencesStore {
|
|
|
93
120
|
mode: parsed.data.mode,
|
|
94
121
|
activityGate: parsed.data.activityGate,
|
|
95
122
|
commands: sanitizeCommands(parsed.data.commands),
|
|
123
|
+
batteryThreshold: parsed.data.batteryThreshold,
|
|
96
124
|
};
|
|
97
125
|
}
|
|
98
126
|
persist() {
|
|
@@ -101,6 +129,7 @@ export class CaffeinatePreferencesStore {
|
|
|
101
129
|
version: CAFFEINATE_PREFERENCES_FILE_VERSION,
|
|
102
130
|
mode: this.preferences.mode,
|
|
103
131
|
activityGate: this.preferences.activityGate,
|
|
132
|
+
batteryThreshold: this.preferences.batteryThreshold,
|
|
104
133
|
commands: this.preferences.commands,
|
|
105
134
|
};
|
|
106
135
|
const tmpPath = `${this.filePath}.tmp`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caffeinate-preferences-store.js","sourceRoot":"","sources":["../src/caffeinate-preferences-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,mCAAmC,EACnC,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"caffeinate-preferences-store.js","sourceRoot":"","sources":["../src/caffeinate-preferences-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,wCAAwC,EACxC,wCAAwC,EACxC,4CAA4C,EAC5C,mCAAmC,EACnC,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAW5C,gFAAgF;AAChF,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,mBAAmB,GAA0B;IACjD,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,4CAA4C;CAC/D,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,iDAAiD;AACjD,MAAM,gBAAgB,GAAG,CAAC,QAA2B,EAAY,EAAE;IACjE,MAAM,MAAM,GAAG,QAAQ;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;SAChE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,0EAA0E;AAC1E,+EAA+E;AAC/E,oEAAoE;AACpE,MAAM,OAAO,0BAA0B;IAGR;IAFrB,WAAW,GAA0B,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAExE,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACvC,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC3C,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;QACpF,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,OAAsB;QACxC,MAAM,OAAO,GACX,OAAO,KAAK,IAAI;YACd,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,wCAAwC,EACxC,IAAI,CAAC,GAAG,CAAC,wCAAwC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CACxE,CAAC;QACR,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;QAC5F,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,QAA2B;QACrC,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEO,IAAI;QACV,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,wDAAwD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QACD,2DAA2D;QAC3D,IACE,IAAI;YACJ,OAAO,IAAI,KAAK,QAAQ;YACxB,SAAS,IAAI,IAAI;YAChB,IAAgC,CAAC,OAAO,KAAK,CAAC;YAC/C,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,EACzB,CAAC;YACA,IAAgC,CAAC,YAAY,GAAG,IAAI,CAAC;YACrD,IAAgC,CAAC,OAAO,GAAG,mCAAmC,CAAC;QAClF,CAAC;QACD,0EAA0E;QAC1E,4EAA4E;QAC5E,qCAAqC;QACrC,IACE,IAAI;YACJ,OAAO,IAAI,KAAK,QAAQ;YACxB,SAAS,IAAI,IAAI;YAChB,IAAgC,CAAC,OAAO,KAAK,CAAC;YAC/C,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC,EAC7B,CAAC;YACA,IAAgC,CAAC,gBAAgB;gBAChD,4CAA4C,CAAC;YAC9C,IAAgC,CAAC,OAAO,GAAG,mCAAmC,CAAC;QAClF,CAAC;QACD,MAAM,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,wDAAwD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;YACtB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;YACtC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAChD,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB;SAC/C,CAAC;IACJ,CAAC;IAEO,OAAO;QACb,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,mCAAmC;YAC5C,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC3B,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YAC3C,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB;YACnD,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;SACpC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAC;QACvC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3E,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;CACF"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -10,11 +10,18 @@ export declare const LOCALTERM_VALUE = "1";
|
|
|
10
10
|
export declare const CAFFEINATE_BINARY = "caffeinate";
|
|
11
11
|
export declare const CAFFEINATE_ARGS: readonly string[];
|
|
12
12
|
export declare const CAFFEINATE_AUTO_DEFAULT_COMMANDS: readonly string[];
|
|
13
|
-
export declare const CAFFEINATE_PREFERENCES_FILE_VERSION =
|
|
13
|
+
export declare const CAFFEINATE_PREFERENCES_FILE_VERSION = 3;
|
|
14
14
|
export declare const CAFFEINATE_AUTO_POKE_DEBOUNCE_MS = 150;
|
|
15
15
|
export declare const CAFFEINATE_ACTIVITY_GATE_DEBOUNCE_MS = 5000;
|
|
16
16
|
export declare const MAX_CAFFEINATE_COMMANDS = 50;
|
|
17
17
|
export declare const MAX_CAFFEINATE_COMMAND_LENGTH = 128;
|
|
18
|
+
export declare const CAFFEINATE_BATTERY_LOW_WATER_PERCENT_DEFAULT = 20;
|
|
19
|
+
export declare const CAFFEINATE_BATTERY_LOW_WATER_MIN_PERCENT = 5;
|
|
20
|
+
export declare const CAFFEINATE_BATTERY_LOW_WATER_MAX_PERCENT = 50;
|
|
21
|
+
export declare const CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS = 5000;
|
|
22
|
+
export declare const CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS: number;
|
|
23
|
+
export declare const CAFFEINATE_BATTERY_POLL_TIME_FRACTION = 2;
|
|
24
|
+
export declare const CAFFEINATE_BATTERY_READ_TIMEOUT_MS = 2000;
|
|
18
25
|
export declare const TITLE_MAX_PATH_SEGMENTS = 1;
|
|
19
26
|
/**
|
|
20
27
|
* Strip terminal-emulator identity env vars inherited from the daemon's parent.
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AACvD,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAC1C,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,eAAe,MAAM,CAAC;AAInC,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAc,CAAC;AAK5D,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAK7D,CAAC;AACF,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAKrD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAMpD,eAAO,MAAM,oCAAoC,OAAQ,CAAC;AAC1D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,6BAA6B,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|