@telora/daemon 0.22.87 → 0.22.91
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/build-info.json +2 -2
- package/dist/backends/index.d.ts +1 -1
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +1 -1
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/resolve.d.ts +37 -8
- package/dist/backends/resolve.d.ts.map +1 -1
- package/dist/backends/resolve.js +62 -28
- package/dist/backends/resolve.js.map +1 -1
- package/dist/cli/connect/config-write.d.ts +7 -4
- package/dist/cli/connect/config-write.d.ts.map +1 -1
- package/dist/cli/connect/config-write.js +13 -7
- package/dist/cli/connect/config-write.js.map +1 -1
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +11 -1
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/update-commands.d.ts.map +1 -1
- package/dist/cli/update-commands.js +2 -1
- package/dist/cli/update-commands.js.map +1 -1
- package/dist/drift/staleness-sensor.d.ts +6 -0
- package/dist/drift/staleness-sensor.d.ts.map +1 -1
- package/dist/drift/staleness-sensor.js +24 -20
- package/dist/drift/staleness-sensor.js.map +1 -1
- package/dist/drift/staleness.d.ts +18 -5
- package/dist/drift/staleness.d.ts.map +1 -1
- package/dist/drift/staleness.js +28 -15
- package/dist/drift/staleness.js.map +1 -1
- package/dist/focus/focus-executor.js +2 -2
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +18 -0
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
- package/dist/shell/heartbeat-metadata.js +24 -0
- package/dist/shell/heartbeat-metadata.js.map +1 -1
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +6 -17
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/model-resolution.d.ts +9 -4
- package/dist/shell/model-resolution.d.ts.map +1 -1
- package/dist/shell/model-resolution.js +46 -7
- package/dist/shell/model-resolution.js.map +1 -1
- package/dist/shell/unified-init.d.ts +24 -0
- package/dist/shell/unified-init.d.ts.map +1 -1
- package/dist/shell/unified-init.js +22 -17
- package/dist/shell/unified-init.js.map +1 -1
- package/dist/spawn/model-id-guards.d.ts +50 -0
- package/dist/spawn/model-id-guards.d.ts.map +1 -0
- package/dist/spawn/model-id-guards.js +110 -0
- package/dist/spawn/model-id-guards.js.map +1 -0
- package/dist/spawn/model-routing.d.ts +1 -43
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +3 -94
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/shared.d.ts +1 -1
- package/dist/spawn/shared.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +1 -0
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +1 -0
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +4 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +19 -15
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/update/auto-update.d.ts +20 -3
- package/dist/update/auto-update.d.ts.map +1 -1
- package/dist/update/auto-update.js +8 -24
- package/dist/update/auto-update.js.map +1 -1
- package/dist/update/self-update.d.ts +43 -4
- package/dist/update/self-update.d.ts.map +1 -1
- package/dist/update/self-update.js +61 -38
- package/dist/update/self-update.js.map +1 -1
- package/dist/update/version-check.d.ts +29 -45
- package/dist/update/version-check.d.ts.map +1 -1
- package/dist/update/version-check.js +48 -79
- package/dist/update/version-check.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,106 +1,74 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/drift/staleness-signal.test.ts,
|
|
3
|
-
// packages/daemon/src/update/version-check.test.ts
|
|
3
|
+
// packages/daemon/src/shell/heartbeat-version-lag.test.ts, packages/daemon/src/update/version-check.test.ts
|
|
4
4
|
// PINNED-BY-END
|
|
5
5
|
/**
|
|
6
|
-
* Non-blocking npm registry version check
|
|
6
|
+
* Non-blocking npm registry version check, and the daemon's declared update
|
|
7
|
+
* channel.
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* The daemon updates from ONE channel: the public npmjs registry infra
|
|
10
|
+
* publishes releases to, overridable only by TELORA_REGISTRY_URL. The version
|
|
11
|
+
* check reads that channel, every install pins the @telora scope to it, and the
|
|
12
|
+
* staleness sensor / heartbeat attribute readings to it -- the host's ~/.npmrc
|
|
13
|
+
* (Gitea-scoped on the daemon hosts, for development tooling) never decides where
|
|
14
|
+
* @telora/daemon comes from.
|
|
15
|
+
*
|
|
16
|
+
* The check fails open on any error -- a registry outage never prevents startup
|
|
17
|
+
* or normal operation -- but logs a warn line so a broken update path produces a
|
|
18
|
+
* signal instead of silent rot.
|
|
12
19
|
*/
|
|
13
|
-
import {
|
|
20
|
+
import { loadEnvConfig } from '@telora/daemon-core';
|
|
14
21
|
import { createLogger } from '../shell/log.js';
|
|
15
22
|
const log = createLogger({ module: 'auto-update' });
|
|
16
23
|
const CHECK_TIMEOUT_MS = 5000;
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
const NPMJS_FALLBACK = 'https://registry.npmjs.org/';
|
|
20
|
-
/**
|
|
21
|
-
* Read a single npm config value via `npm config get <key>`.
|
|
22
|
-
*
|
|
23
|
-
* Returns a trimmed http(s) URL, or null when npm is unavailable, the key is
|
|
24
|
-
* unset (npm prints an empty line or the literal "undefined"/"null"), or the
|
|
25
|
-
* value is not an http(s) URL. Fails soft so a host without `npm` on PATH still
|
|
26
|
-
* resolves through the fallback chain rather than throwing.
|
|
27
|
-
*/
|
|
28
|
-
export function readNpmConfigValue(key) {
|
|
29
|
-
try {
|
|
30
|
-
const out = execFileSync('npm', ['config', 'get', key], {
|
|
31
|
-
encoding: 'utf-8',
|
|
32
|
-
timeout: 5000,
|
|
33
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
34
|
-
}).trim();
|
|
35
|
-
if (!out || out === 'undefined' || out === 'null')
|
|
36
|
-
return null;
|
|
37
|
-
if (!/^https?:\/\//i.test(out))
|
|
38
|
-
return null;
|
|
39
|
-
return out;
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
24
|
+
/** The public npmjs registry: the release channel infra publishes @telora/daemon to. */
|
|
25
|
+
export const NPMJS_RELEASE_REGISTRY = 'https://registry.npmjs.org/';
|
|
45
26
|
/**
|
|
46
|
-
* Resolve the
|
|
47
|
-
*
|
|
48
|
-
* `npm install -g @telora/daemon@latest`, which resolves the @telora scope from
|
|
49
|
-
* npm config (~/.npmrc -> Gitea on the daemon hosts); a check that targeted a
|
|
50
|
-
* different registry would be blind to a Gitea-only publish -- the exact failure
|
|
51
|
-
* this focus exists to close.
|
|
27
|
+
* Resolve the daemon's update channel: TELORA_REGISTRY_URL when set (trimmed; a
|
|
28
|
+
* blank value is unset), otherwise the npmjs release registry.
|
|
52
29
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
30
|
+
* npm config is deliberately NOT consulted. The daemon hosts scope @telora to the
|
|
31
|
+
* Gitea development registry in ~/.npmrc, and inheriting that made running
|
|
32
|
+
* daemons track unreleased development builds. Check and install must still
|
|
33
|
+
* agree on ONE registry (a check=npmjs / install=Gitea split once made
|
|
34
|
+
* Gitea-only publishes invisible), so both resolve through this function: the
|
|
35
|
+
* check fetches from it and every install pins `--@telora:registry=` to it
|
|
36
|
+
* ({@link scopedInstallArgs}).
|
|
60
37
|
*
|
|
61
|
-
*
|
|
38
|
+
* Read on every call (not memoized): the env can change between calls in tests,
|
|
39
|
+
* and resolution is a cheap parse with no shell-out.
|
|
62
40
|
*/
|
|
63
|
-
export function
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
return override.trim();
|
|
67
|
-
}
|
|
68
|
-
return (deps.npmConfigGet(SCOPE_REGISTRY_KEY) ??
|
|
69
|
-
deps.npmConfigGet(DEFAULT_REGISTRY_KEY) ??
|
|
70
|
-
NPMJS_FALLBACK);
|
|
41
|
+
export function resolveUpdateChannelUrl(env = process.env) {
|
|
42
|
+
const configured = loadEnvConfig(env).TELORA_REGISTRY_URL.trim();
|
|
43
|
+
return configured.length > 0 ? configured : NPMJS_RELEASE_REGISTRY;
|
|
71
44
|
}
|
|
72
45
|
/**
|
|
73
|
-
* The
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* an operator who points the check elsewhere (override) has not changed where
|
|
78
|
-
* an install lands, so a reading from the override registry cannot certify the
|
|
79
|
-
* installed version is current.
|
|
46
|
+
* The npm argv that installs `target` from `channel`, pinning ONLY the @telora
|
|
47
|
+
* scope (`--@telora:registry=<channel>`). Never a global `--registry`: that would
|
|
48
|
+
* send every non-@telora dependency to the channel host too, and against a wrong
|
|
49
|
+
* host/port npm hangs in SYN-SENT with no output.
|
|
80
50
|
*/
|
|
81
|
-
export function
|
|
82
|
-
return
|
|
51
|
+
export function scopedInstallArgs(target, channel) {
|
|
52
|
+
return ['install', '-g', `--@telora:registry=${channel}`, target];
|
|
53
|
+
}
|
|
54
|
+
/** The same install as {@link scopedInstallArgs}, rendered as a command a human can run. */
|
|
55
|
+
export function scopedInstallCommand(target, channel) {
|
|
56
|
+
return ['npm', ...scopedInstallArgs(target, channel)].join(' ');
|
|
83
57
|
}
|
|
84
58
|
function normalizeRegistry(url) {
|
|
85
59
|
return url.trim().replace(/\/+$/, '').toLowerCase();
|
|
86
60
|
}
|
|
87
61
|
/**
|
|
88
62
|
* True when a reading taken from `readingRegistry` can be ATTRIBUTED to the
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
63
|
+
* update channel (`channelRegistry`) -- only then does the agreement/lag it
|
|
64
|
+
* reports count. A null/absent reading registry (legacy cache, unstamped) is
|
|
65
|
+
* unattributable, and so is a reading from any other registry (e.g. a cache
|
|
66
|
+
* stamped with the Gitea URL). Trailing-slash / case insensitive.
|
|
93
67
|
*/
|
|
94
|
-
export function isReadingAttributable(readingRegistry,
|
|
68
|
+
export function isReadingAttributable(readingRegistry, channelRegistry) {
|
|
95
69
|
if (!readingRegistry)
|
|
96
70
|
return false;
|
|
97
|
-
return normalizeRegistry(readingRegistry) === normalizeRegistry(
|
|
98
|
-
}
|
|
99
|
-
function getRegistryUrl() {
|
|
100
|
-
// Read the LIVE environment + npm config on every call (the update check can
|
|
101
|
-
// run long after startup, and tests mutate the env between calls) rather than
|
|
102
|
-
// a memoized startup snapshot.
|
|
103
|
-
return resolveRegistryUrl({ env: process.env, npmConfigGet: readNpmConfigValue });
|
|
71
|
+
return normalizeRegistry(readingRegistry) === normalizeRegistry(channelRegistry);
|
|
104
72
|
}
|
|
105
73
|
/**
|
|
106
74
|
* Parse a semver string's numeric major.minor.patch core, ignoring any
|
|
@@ -166,8 +134,9 @@ export function versionDistance(running, newest) {
|
|
|
166
134
|
* resolved registry URL so a broken update path is observable in the daemon log.
|
|
167
135
|
*/
|
|
168
136
|
export async function checkForUpdates(currentVersion, packageName = '@telora/daemon') {
|
|
169
|
-
|
|
137
|
+
let registryUrl = '(unresolved update channel)';
|
|
170
138
|
try {
|
|
139
|
+
registryUrl = resolveUpdateChannelUrl();
|
|
171
140
|
const base = registryUrl.endsWith('/') ? registryUrl : registryUrl + '/';
|
|
172
141
|
// Scoped package names use URL-encoded slash in the npm protocol
|
|
173
142
|
const encodedName = packageName.replace('/', '%2F');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/update/version-check.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/update/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.91",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
},
|
|
38
38
|
"//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. Test files live beside the modules they exercise (owner-directory layout); the runner discovers them recursively.",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@telora/daemon-core": "^0.2.
|
|
41
|
-
"@telora/mcp-products": "^0.22.
|
|
40
|
+
"@telora/daemon-core": "^0.2.97",
|
|
41
|
+
"@telora/mcp-products": "^0.22.147",
|
|
42
42
|
"commander": "^14.0.3",
|
|
43
43
|
"yaml": "^2.4.0",
|
|
44
44
|
"zod": "^4.3.6"
|