@songsid/agend 2.1.10-beta.2 → 2.1.10-beta.4
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/cli.js +80 -50
- package/dist/cli.js.map +1 -1
- package/dist/coredump-filter.d.ts +21 -0
- package/dist/coredump-filter.js +64 -0
- package/dist/coredump-filter.js.map +1 -0
- package/dist/daemon.js +5 -1
- package/dist/daemon.js.map +1 -1
- package/dist/fleet-manager.d.ts +1 -1
- package/dist/fleet-manager.js +1 -1
- package/dist/fleet-manager.js.map +1 -1
- package/dist/paths.d.ts +15 -3
- package/dist/paths.js +45 -25
- package/dist/paths.js.map +1 -1
- package/dist/types.d.ts +11 -5
- package/dist/types.js +8 -2
- package/dist/types.js.map +1 -1
- package/dist/update-check.d.ts +22 -0
- package/dist/update-check.js +31 -0
- package/dist/update-check.js.map +1 -1
- package/dist/wake-coordinator.js +2 -2
- package/package.json +1 -1
package/dist/paths.d.ts
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
/** Resolve the AgEnD data directory. Override with AGEND_HOME env var. */
|
|
2
2
|
export declare function getAgendHome(): string;
|
|
3
|
+
/**
|
|
4
|
+
* Whether this process's AgEnD home is the user's real default one — the only
|
|
5
|
+
* home that uses tmux's default socket and the plain "agend" session (#1126).
|
|
6
|
+
*
|
|
7
|
+
* Before, "default" meant `AGEND_HOME === $HOME/.agend`. A throwaway fleet run
|
|
8
|
+
* with HOME and AGEND_HOME both pointed at a scratch directory matched that,
|
|
9
|
+
* attached to the LIVE fleet's default tmux server, and its startup cleanup
|
|
10
|
+
* killed 16 live windows as "orphaned" (2026-10-03). Comparing against the
|
|
11
|
+
* real home closes that, and changes nothing for anyone whose AGEND_HOME is
|
|
12
|
+
* unset or set to their real ~/.agend: their socket and session names stay.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isDefaultAgendHome(home?: string): boolean;
|
|
3
15
|
/** Tmux session name — unique per AGEND_HOME to avoid cross-instance interference. */
|
|
4
16
|
export declare function getTmuxSessionName(): string;
|
|
5
17
|
/**
|
|
6
|
-
* Tmux socket name for -L flag.
|
|
7
|
-
* (
|
|
8
|
-
*
|
|
18
|
+
* Tmux socket name for -L flag. Null only for the user's real default home
|
|
19
|
+
* (tmux's default socket, as always); any other AgEnD home gets a socket of
|
|
20
|
+
* its own, so it can never reach — and clean up — another fleet's server.
|
|
9
21
|
*/
|
|
10
22
|
export declare function getTmuxSocketName(): string | null;
|
|
11
23
|
/** Ensure an auto-created workspace has a .git directory (best effort). */
|
package/dist/paths.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
-
import { homedir } from "node:os";
|
|
2
|
+
import { homedir, userInfo } from "node:os";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
import { execFileSync } from "node:child_process";
|
|
@@ -7,39 +7,59 @@ import { execFileSync } from "node:child_process";
|
|
|
7
7
|
export function getAgendHome() {
|
|
8
8
|
return process.env.AGEND_HOME || join(homedir(), ".agend");
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/**
|
|
11
|
+
* The user's real AgEnD home: `.agend` in the home directory from the
|
|
12
|
+
* password database, NOT `$HOME`. A test or throwaway fleet that changes HOME
|
|
13
|
+
* (and AGEND_HOME with it) must not be mistaken for the user's own fleet.
|
|
14
|
+
* Null when the password database cannot be read: falling back to homedir()
|
|
15
|
+
* would trust `$HOME` again (#1128 review), so then no home is the default.
|
|
16
|
+
*/
|
|
17
|
+
function realDefaultAgendHome() {
|
|
18
|
+
try {
|
|
19
|
+
return join(userInfo().homedir, ".agend");
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether this process's AgEnD home is the user's real default one — the only
|
|
27
|
+
* home that uses tmux's default socket and the plain "agend" session (#1126).
|
|
28
|
+
*
|
|
29
|
+
* Before, "default" meant `AGEND_HOME === $HOME/.agend`. A throwaway fleet run
|
|
30
|
+
* with HOME and AGEND_HOME both pointed at a scratch directory matched that,
|
|
31
|
+
* attached to the LIVE fleet's default tmux server, and its startup cleanup
|
|
32
|
+
* killed 16 live windows as "orphaned" (2026-10-03). Comparing against the
|
|
33
|
+
* real home closes that, and changes nothing for anyone whose AGEND_HOME is
|
|
34
|
+
* unset or set to their real ~/.agend: their socket and session names stay.
|
|
35
|
+
*/
|
|
36
|
+
export function isDefaultAgendHome(home = getAgendHome()) {
|
|
37
|
+
// Exact string comparison, as before: only WHICH home it is compared with
|
|
38
|
+
// changed, so no existing AGEND_HOME value moves to another socket. An
|
|
39
|
+
// unknown real home is never matched: the fleet gets an isolated socket.
|
|
40
|
+
const real = realDefaultAgendHome();
|
|
41
|
+
return real !== null && home === real;
|
|
42
|
+
}
|
|
43
|
+
function isolatedSuffix(home) {
|
|
16
44
|
// sha256 instead of md5: this hash is not security-critical (we just need a
|
|
17
45
|
// short stable suffix so two custom AGEND_HOME values don't collide on the
|
|
18
46
|
// tmux session/socket namespace), but md5 trips FIPS-mode Node and security
|
|
19
|
-
// scanners.
|
|
20
|
-
// AGEND_HOME — that only affects an in-memory tmux session/socket name, so
|
|
21
|
-
// a single daemon restart resyncs cleanly (any orphan tmux session under
|
|
22
|
-
// the old name can be killed manually).
|
|
47
|
+
// scanners.
|
|
23
48
|
return "agend-" + createHash("sha256").update(home).digest("hex").slice(0, 6);
|
|
24
49
|
}
|
|
50
|
+
/** Tmux session name — unique per AGEND_HOME to avoid cross-instance interference. */
|
|
51
|
+
export function getTmuxSessionName() {
|
|
52
|
+
const home = getAgendHome();
|
|
53
|
+
return isDefaultAgendHome(home) ? "agend" : isolatedSuffix(home);
|
|
54
|
+
}
|
|
25
55
|
/**
|
|
26
|
-
* Tmux socket name for -L flag.
|
|
27
|
-
* (
|
|
28
|
-
*
|
|
56
|
+
* Tmux socket name for -L flag. Null only for the user's real default home
|
|
57
|
+
* (tmux's default socket, as always); any other AgEnD home gets a socket of
|
|
58
|
+
* its own, so it can never reach — and clean up — another fleet's server.
|
|
29
59
|
*/
|
|
30
60
|
export function getTmuxSocketName() {
|
|
31
61
|
const home = getAgendHome();
|
|
32
|
-
|
|
33
|
-
if (home === defaultHome)
|
|
34
|
-
return null;
|
|
35
|
-
// sha256 instead of md5: this hash is not security-critical (we just need a
|
|
36
|
-
// short stable suffix so two custom AGEND_HOME values don't collide on the
|
|
37
|
-
// tmux session/socket namespace), but md5 trips FIPS-mode Node and security
|
|
38
|
-
// scanners. The suffix value WILL change for users with a custom
|
|
39
|
-
// AGEND_HOME — that only affects an in-memory tmux session/socket name, so
|
|
40
|
-
// a single daemon restart resyncs cleanly (any orphan tmux session under
|
|
41
|
-
// the old name can be killed manually).
|
|
42
|
-
return "agend-" + createHash("sha256").update(home).digest("hex").slice(0, 6);
|
|
62
|
+
return isDefaultAgendHome(home) ? null : isolatedSuffix(home);
|
|
43
63
|
}
|
|
44
64
|
/** Ensure an auto-created workspace has a .git directory (best effort). */
|
|
45
65
|
export function ensureWorkspaceGit(dir) {
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,0EAA0E;AAC1E,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,YAAY,EAAE;IAC9D,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,YAAY;IACZ,OAAO,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACnC,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,CAAC;YAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACpG,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -78,7 +78,13 @@ export interface ChannelConfig {
|
|
|
78
78
|
}
|
|
79
79
|
export type DeliveryWorkerMode = "off" | "wake_only" | "on";
|
|
80
80
|
export declare const DELIVERY_WORKER_MODES: readonly DeliveryWorkerMode[];
|
|
81
|
-
|
|
81
|
+
export declare const DEFAULT_DELIVERY_WORKER_MODE: DeliveryWorkerMode;
|
|
82
|
+
/**
|
|
83
|
+
* The delivery_worker mode for `name`: instance override, then fleet default,
|
|
84
|
+
* then `wake_only` (#1129). The built-in default used to be `off`, which
|
|
85
|
+
* never woke a target paused across a fleet restart for queued work: the
|
|
86
|
+
* delegated task waited until someone ran /wake. An explicit `off` is kept.
|
|
87
|
+
*/
|
|
82
88
|
export declare function resolveDeliveryWorkerMode(config: {
|
|
83
89
|
defaults?: {
|
|
84
90
|
delivery_worker?: unknown;
|
|
@@ -106,10 +112,10 @@ export interface InstanceConfig {
|
|
|
106
112
|
warm_overflow?: number;
|
|
107
113
|
/**
|
|
108
114
|
* Phase 2 delivery owner for this target (docs/design/phase2-submit-contract.md):
|
|
109
|
-
* `off`
|
|
110
|
-
* coordinator (2b), `on` hands claim/submit to the per-target
|
|
111
|
-
* Read from `defaults.delivery_worker` with a per-instance
|
|
112
|
-
*
|
|
115
|
+
* `off` keeps the outbox pump alone, `wake_only` (default since #1129) adds
|
|
116
|
+
* the wake coordinator (2b), `on` hands claim/submit to the per-target
|
|
117
|
+
* worker (2c). Read from `defaults.delivery_worker` with a per-instance
|
|
118
|
+
* override.
|
|
113
119
|
*/
|
|
114
120
|
delivery_worker?: DeliveryWorkerMode;
|
|
115
121
|
/** Agent display name (e.g. "Kuro", "Luna") — chosen by the agent itself */
|
package/dist/types.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
export const DELIVERY_WORKER_MODES = ["off", "wake_only", "on"];
|
|
2
|
-
|
|
2
|
+
export const DEFAULT_DELIVERY_WORKER_MODE = "wake_only";
|
|
3
|
+
/**
|
|
4
|
+
* The delivery_worker mode for `name`: instance override, then fleet default,
|
|
5
|
+
* then `wake_only` (#1129). The built-in default used to be `off`, which
|
|
6
|
+
* never woke a target paused across a fleet restart for queued work: the
|
|
7
|
+
* delegated task waited until someone ran /wake. An explicit `off` is kept.
|
|
8
|
+
*/
|
|
3
9
|
export function resolveDeliveryWorkerMode(config, name) {
|
|
4
10
|
for (const value of [config?.instances?.[name]?.delivery_worker, config?.defaults?.delivery_worker]) {
|
|
5
11
|
if (typeof value === "string" && DELIVERY_WORKER_MODES.includes(value))
|
|
6
12
|
return value;
|
|
7
13
|
}
|
|
8
|
-
return
|
|
14
|
+
return DEFAULT_DELIVERY_WORKER_MODE;
|
|
9
15
|
}
|
|
10
16
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgFA,MAAM,CAAC,MAAM,qBAAqB,GAAkC,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgFA,MAAM,CAAC,MAAM,qBAAqB,GAAkC,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,4BAA4B,GAAuB,WAAW,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAkI,EAClI,IAAY;IAEZ,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;QACpG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,qBAA2C,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAA2B,CAAC;IACpI,CAAC;IACD,OAAO,4BAA4B,CAAC;AACtC,CAAC"}
|
package/dist/update-check.d.ts
CHANGED
|
@@ -13,6 +13,28 @@ export declare function getUpdateSelector(opts: UpdateVersionOptions): string;
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function lookupTargetVersion(selector: string, run?: typeof execFileSync): string | null;
|
|
15
15
|
export declare function shouldSkipUpdate(currentVersion: string, targetVersion: string | null, force?: boolean): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The running fleet started before the installed package was written: it is
|
|
18
|
+
* still executing the previous version's code (#1113 hotfix). That happens
|
|
19
|
+
* when an update installed the package but its restart did not go through —
|
|
20
|
+
* a second `agend update` then saw "already up to date" and left the old
|
|
21
|
+
* process running against the new files on disk. Unknown (no pid, no start
|
|
22
|
+
* time) is false: never restart on a guess.
|
|
23
|
+
*/
|
|
24
|
+
export declare function runningFleetPredatesInstall(opts: {
|
|
25
|
+
pid: number | null;
|
|
26
|
+
installedAtMs: number;
|
|
27
|
+
processStartMs: (pid: number) => number | null;
|
|
28
|
+
/**
|
|
29
|
+
* Whether `pid` is an AgEnD fleet process (its command line). A stale
|
|
30
|
+
* fleet.pid can name a recycled pid — an unrelated process that a restart
|
|
31
|
+
* would signal (#1125 review) — so anything not confirmed is not a fleet.
|
|
32
|
+
*/
|
|
33
|
+
isFleetProcess: (pid: number) => boolean;
|
|
34
|
+
marginMs?: number;
|
|
35
|
+
}): boolean;
|
|
36
|
+
/** Start time of a live process, via `ps -o lstart=` (Linux and macOS); null if gone. */
|
|
37
|
+
export declare function processStartMs(pid: number, run?: (args: string[]) => string): number | null;
|
|
16
38
|
interface UpdateOutput {
|
|
17
39
|
log(message: string): void;
|
|
18
40
|
error(message: string): void;
|
package/dist/update-check.js
CHANGED
|
@@ -30,6 +30,37 @@ export function shouldSkipUpdate(currentVersion, targetVersion, force = false) {
|
|
|
30
30
|
&& targetVersion !== null
|
|
31
31
|
&& normalizeVersion(currentVersion) === normalizeVersion(targetVersion);
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* The running fleet started before the installed package was written: it is
|
|
35
|
+
* still executing the previous version's code (#1113 hotfix). That happens
|
|
36
|
+
* when an update installed the package but its restart did not go through —
|
|
37
|
+
* a second `agend update` then saw "already up to date" and left the old
|
|
38
|
+
* process running against the new files on disk. Unknown (no pid, no start
|
|
39
|
+
* time) is false: never restart on a guess.
|
|
40
|
+
*/
|
|
41
|
+
export function runningFleetPredatesInstall(opts) {
|
|
42
|
+
if (opts.pid === null || !Number.isFinite(opts.installedAtMs))
|
|
43
|
+
return false;
|
|
44
|
+
if (!opts.isFleetProcess(opts.pid))
|
|
45
|
+
return false;
|
|
46
|
+
const started = opts.processStartMs(opts.pid);
|
|
47
|
+
if (started === null)
|
|
48
|
+
return false;
|
|
49
|
+
return started < opts.installedAtMs - (opts.marginMs ?? 2_000);
|
|
50
|
+
}
|
|
51
|
+
/** Start time of a live process, via `ps -o lstart=` (Linux and macOS); null if gone. */
|
|
52
|
+
export function processStartMs(pid, run = args => execFileSync("ps", args, { encoding: "utf8", env: { ...process.env, LC_ALL: "C", TZ: process.env.TZ }, stdio: ["ignore", "pipe", "ignore"], timeout: 5000 })) {
|
|
53
|
+
try {
|
|
54
|
+
const text = run(["-o", "lstart=", "-p", String(pid)]).trim();
|
|
55
|
+
if (!text)
|
|
56
|
+
return null;
|
|
57
|
+
const ms = Date.parse(text);
|
|
58
|
+
return Number.isFinite(ms) ? ms : null;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
33
64
|
/** Report restart status and let the CLI translate failure into exit code 1. */
|
|
34
65
|
export function reportUpdateRestart(status, output = console) {
|
|
35
66
|
if (status === 0) {
|
package/dist/update-check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQlD,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,IAA0B;IAC1D,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,MAA2B,YAAY;IAEvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAChB,KAAK,EACL,CAAC,MAAM,EAAE,kBAAkB,QAAQ,EAAE,EAAE,SAAS,CAAC,EACjD;YACE,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,MAAM;SAChB,CACF,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,cAAsB,EACtB,aAA4B,EAC5B,KAAK,GAAG,KAAK;IAEb,OAAO,CAAC,KAAK;WACR,aAAa,KAAK,IAAI;WACtB,gBAAgB,CAAC,cAAc,CAAC,KAAK,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAC5E,CAAC;AAOD,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,SAAuB,OAAO;IAE9B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
|
package/dist/wake-coordinator.js
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* only claims targets that are awake. Nothing here writes a pane or claims a
|
|
11
11
|
* row.
|
|
12
12
|
*
|
|
13
|
-
* Active
|
|
14
|
-
* `off`
|
|
13
|
+
* Active for targets whose `delivery_worker` is `wake_only` (the default
|
|
14
|
+
* since #1129) or `on`; an explicit `off` leaves every path as it was.
|
|
15
15
|
*/
|
|
16
16
|
import { t } from "./locale.js";
|
|
17
17
|
/** Row kinds that never warrant waking a target. Empty: every current kind asks for action (§1.2). */
|