@fnndsc/chell 5.2.2 → 5.3.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/README.md +119 -27
- package/dist/config/settings.js +14 -4
- package/dist/config/settings.js.map +1 -1
- package/dist/core/boot.js +16 -4
- package/dist/core/boot.js.map +1 -1
- package/dist/core/bootFlags.js +2 -1
- package/dist/core/bootFlags.js.map +1 -1
- package/dist/core/cli.js +3 -0
- package/dist/core/cli.js.map +1 -1
- package/dist/core/cliSurface.js +25 -2
- package/dist/core/cliSurface.js.map +1 -1
- package/dist/core/progressRenderer.d.ts +13 -0
- package/dist/core/progressRenderer.js +44 -0
- package/dist/core/progressRenderer.js.map +1 -1
- package/dist/core/prompt/index.d.ts +3 -4
- package/dist/core/prompt/index.js.map +1 -1
- package/dist/core/prompt/palette.d.ts +41 -0
- package/dist/core/prompt/palette.js +35 -0
- package/dist/core/prompt/palette.js.map +1 -0
- package/dist/core/prompt/theme_default.js +27 -10
- package/dist/core/prompt/theme_default.js.map +1 -1
- package/dist/core/prompt/theme_p10k.d.ts +3 -3
- package/dist/core/prompt/theme_p10k.js +73 -36
- package/dist/core/prompt/theme_p10k.js.map +1 -1
- package/dist/core/prompt/utils.d.ts +22 -0
- package/dist/core/prompt/utils.js +34 -0
- package/dist/core/prompt/utils.js.map +1 -1
- package/dist/core/repl.js +9 -1
- package/dist/core/repl.js.map +1 -1
- package/dist/core/startupWarmup.d.ts +10 -4
- package/dist/core/startupWarmup.js +152 -22
- package/dist/core/startupWarmup.js.map +1 -1
- package/dist/lib/bootsequence.d.ts +2 -2
- package/dist/lib/bootsequence.js +1 -0
- package/dist/lib/bootsequence.js.map +1 -1
- package/dist/remote/client.d.ts +3 -1
- package/dist/remote/client.js +60 -6
- package/dist/remote/client.js.map +1 -1
- package/dist/remote/remoteEngine.d.ts +41 -8
- package/dist/remote/remoteEngine.js +119 -41
- package/dist/remote/remoteEngine.js.map +1 -1
- package/package.json +12 -11
|
@@ -11,6 +11,24 @@
|
|
|
11
11
|
export function ansi_visibleLength(s) {
|
|
12
12
|
return s.replace(/\x1b\[[0-9;]*m/g, '').length;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Replaces the authenticated user's home-directory prefix with `~`.
|
|
16
|
+
*
|
|
17
|
+
* Other users' home directories and similarly prefixed usernames remain
|
|
18
|
+
* unchanged.
|
|
19
|
+
*
|
|
20
|
+
* @param path - Logical working-directory path.
|
|
21
|
+
* @param user - Authenticated username that owns `/home/<user>`.
|
|
22
|
+
* @returns Home-relative display path, or the original path when outside home.
|
|
23
|
+
*/
|
|
24
|
+
export function homePath_abbreviate(path, user) {
|
|
25
|
+
if (!user)
|
|
26
|
+
return path;
|
|
27
|
+
const home = `/home/${user}`;
|
|
28
|
+
if (path === home || path === `${home}/`)
|
|
29
|
+
return '~';
|
|
30
|
+
return path.startsWith(`${home}/`) ? `~${path.slice(home.length)}` : path;
|
|
31
|
+
}
|
|
14
32
|
/**
|
|
15
33
|
* Truncates a filesystem path to fit within `maxLen` visible columns.
|
|
16
34
|
*
|
|
@@ -37,4 +55,20 @@ export function path_truncate(path, maxLen) {
|
|
|
37
55
|
const budget = maxLen - 3;
|
|
38
56
|
return '...' + leaf.slice(-Math.max(budget, 0));
|
|
39
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Formats active `/proc` warm-up progress for prompt themes.
|
|
60
|
+
*
|
|
61
|
+
* Active work is capped at 99%; completion removes the prompt segment instead
|
|
62
|
+
* of briefly presenting a misleading 100% while the sweep is still settling.
|
|
63
|
+
*
|
|
64
|
+
* @param loaded - Number of unique plugin instances loaded.
|
|
65
|
+
* @param total - Server-reported visible plugin-instance total.
|
|
66
|
+
* @returns Compact `N/M f%` progress text, or `N/?` before total is known.
|
|
67
|
+
*/
|
|
68
|
+
export function procProgress_format(loaded, total) {
|
|
69
|
+
if (total <= 0)
|
|
70
|
+
return `${loaded}/?`;
|
|
71
|
+
const percent = Math.min(99, Math.floor((loaded / total) * 100));
|
|
72
|
+
return `${loaded}/${total} ${percent}%`;
|
|
73
|
+
}
|
|
40
74
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/prompt/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,MAAc;IACxD,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,QAAQ,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3D,KAAK,IAAI,IAAI,GAAW,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAW,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM;YAAE,OAAO,SAAS,CAAC;IACnD,CAAC;IAED,MAAM,IAAI,GAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAW,MAAM,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/prompt/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAW,SAAS,IAAI,EAAE,CAAC;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACrD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,MAAc;IACxD,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,QAAQ,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3D,KAAK,IAAI,IAAI,GAAW,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAW,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,MAAM,IAAI,MAAM;YAAE,OAAO,SAAS,CAAC;IACnD,CAAC;IAED,MAAM,IAAI,GAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAW,MAAM,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,KAAa;IAC/D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IACrC,MAAM,OAAO,GAAW,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACzE,OAAO,GAAG,MAAM,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC;AAC1C,CAAC"}
|
package/dist/core/repl.js
CHANGED
|
@@ -43,6 +43,9 @@ export class REPL {
|
|
|
43
43
|
completer: (line, callback) => {
|
|
44
44
|
this.engine.line_complete(line)
|
|
45
45
|
.then((result) => callback(null, [result.candidates, result.prefix]))
|
|
46
|
+
// Deliberate absorption, adjudicated 2026-08: a completion failure
|
|
47
|
+
// degrades to no candidates; surfacing it would corrupt the
|
|
48
|
+
// readline display mid-keystroke.
|
|
46
49
|
.catch(() => callback(null, [[], line]));
|
|
47
50
|
},
|
|
48
51
|
});
|
|
@@ -80,8 +83,13 @@ export class REPL {
|
|
|
80
83
|
}
|
|
81
84
|
});
|
|
82
85
|
this.rl.on('SIGINT', () => {
|
|
83
|
-
//
|
|
86
|
+
// A cancellable foreground command (currently recursive scans) gets the
|
|
87
|
+
// interrupt first. Otherwise Ctrl+C retains readline's usual behavior:
|
|
88
|
+
// clear an unfinished input line and redraw the prompt.
|
|
84
89
|
process.stdout.write('\n');
|
|
90
|
+
if (this.engine.line_cancel?.()) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
85
93
|
readline.clearLine(process.stdout, 0);
|
|
86
94
|
this.prompt_update();
|
|
87
95
|
});
|
package/dist/core/repl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/core/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAmBjE;;GAEG;AACH,MAAM,OAAO,IAAI;IACP,EAAE,CAAqB;IACvB,MAAM,CAAc;IACpB,MAAM,GAAY,IAAI,CAAC;IACvB,qBAAqB,GAAW,CAAC,CAAC;IAClC,YAAY,GAAW,CAAC,CAAC;IACzB,UAAU,CAAsC;IAExD;;;;;OAKG;IACH,YAAY,MAAmB,EAAE,OAAqB;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QACtC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,IAAY,EAAE,QAAiE,EAAQ,EAAE;gBACnG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;qBAC5B,IAAI,CAAC,CAAC,MAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/core/repl.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Warms the VFS and process caches, reports each outcome through a small host
|
|
5
5
|
* seam, and starts non-blocking job-topology warming after the jobs index is
|
|
6
|
-
* available. Daemon startup
|
|
7
|
-
* its listening berth.
|
|
6
|
+
* available. Daemon startup waits for the blocking cache indexes before
|
|
7
|
+
* publishing its listening berth, then reports topology settlement separately.
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
@@ -29,6 +29,10 @@ export interface StartupWarmupCache {
|
|
|
29
29
|
export interface StartupWarmupReporter {
|
|
30
30
|
log(status: BootStatus, label: string, message: string): void;
|
|
31
31
|
}
|
|
32
|
+
/** Operator choice after a daemon exhausts its startup retries. */
|
|
33
|
+
export type DaemonWarmupFailureDecision = 'continue' | 'exit';
|
|
34
|
+
/** Injectable operator-decision seam for daemon warm-up failures. */
|
|
35
|
+
export type DaemonWarmupRecovery = (failures: string[]) => Promise<DaemonWarmupFailureDecision>;
|
|
32
36
|
/**
|
|
33
37
|
* Warms startup caches and begins non-blocking job-topology warming.
|
|
34
38
|
*
|
|
@@ -36,9 +40,11 @@ export interface StartupWarmupReporter {
|
|
|
36
40
|
* @param user - Authenticated username used to construct the feed path.
|
|
37
41
|
* @param interactive - Whether progress may use an interactive spinner.
|
|
38
42
|
* @param reporter - Host status logger, or null for silent status reporting.
|
|
43
|
+
* @param reportTopologySettlement - Whether to report the asynchronous topology
|
|
44
|
+
* result; daemon hosts enable this, while interactive hosts use prompt progress.
|
|
39
45
|
* @returns Cache counts and the labels of any failed warm-up operations.
|
|
40
46
|
*/
|
|
41
|
-
export declare function startupWarmup_run(flags: StartupWarmupFlags, user: string | undefined, interactive: boolean, reporter: StartupWarmupReporter | null): Promise<StartupWarmupCache>;
|
|
47
|
+
export declare function startupWarmup_run(flags: StartupWarmupFlags, user: string | undefined, interactive: boolean, reporter: StartupWarmupReporter | null, reportTopologySettlement?: boolean): Promise<StartupWarmupCache>;
|
|
42
48
|
/**
|
|
43
49
|
* Warms a connected engine, reports readiness, then publishes its daemon.
|
|
44
50
|
*
|
|
@@ -48,4 +54,4 @@ export declare function startupWarmup_run(flags: StartupWarmupFlags, user: strin
|
|
|
48
54
|
* @param interactive - Whether progress may use an interactive spinner.
|
|
49
55
|
* @param reporter - Daemon boot status logger.
|
|
50
56
|
*/
|
|
51
|
-
export declare function daemonSession_run(engine: BrasaEngine, user: string | undefined, flags: StartupWarmupFlags, interactive: boolean, reporter: StartupWarmupReporter): Promise<void>;
|
|
57
|
+
export declare function daemonSession_run(engine: BrasaEngine, user: string | undefined, flags: StartupWarmupFlags, interactive: boolean, reporter: StartupWarmupReporter, recovery?: DaemonWarmupRecovery): Promise<void>;
|
|
@@ -3,15 +3,75 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Warms the VFS and process caches, reports each outcome through a small host
|
|
5
5
|
* seam, and starts non-blocking job-topology warming after the jobs index is
|
|
6
|
-
* available. Daemon startup
|
|
7
|
-
* its listening berth.
|
|
6
|
+
* available. Daemon startup waits for the blocking cache indexes before
|
|
7
|
+
* publishing its listening berth, then reports topology settlement separately.
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
11
|
-
import { error_stripDebugPrefix, prefetch_path, prefetch_withSpinner, session, vfs, } from '@fnndsc/brasa';
|
|
12
|
-
import { daemon_launch } from '@fnndsc/calypso';
|
|
13
|
-
import { errorStack, procCache_get } from '@fnndsc/cumin';
|
|
14
|
-
import { procCache_refresh, procTopology_warmup } from '@fnndsc/salsa';
|
|
11
|
+
import { error_stripDebugPrefix, prefetch_path, prefetch_withSpinner, repl_question, session, vfs, } from '@fnndsc/brasa';
|
|
12
|
+
import { daemon_launch, identity_forSession } from '@fnndsc/calypso';
|
|
13
|
+
import { chrisContext, errorStack, procCache_get, procCheckpoint_restore, procCheckpoint_watch, } from '@fnndsc/cumin';
|
|
14
|
+
import { procCache_refresh, procTopology_reconcileFeeds, procTopology_status, procTopology_warmup, vfsDispatcher, } from '@fnndsc/salsa';
|
|
15
|
+
/** Number of attempts for a blocking startup cache operation. */
|
|
16
|
+
const STARTUP_WARMUP_ATTEMPTS = 3;
|
|
17
|
+
/** Brief backoff before the second and third startup attempts. */
|
|
18
|
+
const STARTUP_WARMUP_RETRY_DELAYS_MS = [250, 500];
|
|
19
|
+
/** Sentinel used to prevent CALYPSO from binding after the operator exits boot. */
|
|
20
|
+
class DaemonWarmupAbortedError extends Error {
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Waits briefly between transient startup attempts without retaining a timer.
|
|
24
|
+
*
|
|
25
|
+
* @param attempt - One-based attempt that just failed.
|
|
26
|
+
* @returns Nothing after the corresponding retry delay.
|
|
27
|
+
*/
|
|
28
|
+
async function startupRetry_wait(attempt) {
|
|
29
|
+
const delay = STARTUP_WARMUP_RETRY_DELAYS_MS[attempt - 1] ?? 0;
|
|
30
|
+
if (delay === 0)
|
|
31
|
+
return;
|
|
32
|
+
await new Promise((resolve) => { setTimeout(resolve, delay); });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Runs one blocking warm-up action with a bounded retry policy.
|
|
36
|
+
*
|
|
37
|
+
* @param label - Stable boot-step label.
|
|
38
|
+
* @param message - Description shown while the action is running.
|
|
39
|
+
* @param interactive - Whether an interactive spinner may render.
|
|
40
|
+
* @param reporter - Optional boot-status reporter.
|
|
41
|
+
* @param action - One attempt at the cache operation.
|
|
42
|
+
* @returns The first successful result, or the last failed result.
|
|
43
|
+
*/
|
|
44
|
+
async function startupPrefetch_retry(label, message, interactive, reporter, action) {
|
|
45
|
+
let last = { ok: false, message: 'Warm-up did not run.' };
|
|
46
|
+
for (let attempt = 1; attempt <= STARTUP_WARMUP_ATTEMPTS; attempt++) {
|
|
47
|
+
last = await prefetch_withSpinner(label, message, interactive, action);
|
|
48
|
+
if (last.ok || attempt === STARTUP_WARMUP_ATTEMPTS)
|
|
49
|
+
return last;
|
|
50
|
+
reporter?.log('retry', label, `Attempt ${attempt}/${STARTUP_WARMUP_ATTEMPTS} failed: ${last.message ?? 'unknown error'}; retrying.`);
|
|
51
|
+
await startupRetry_wait(attempt);
|
|
52
|
+
}
|
|
53
|
+
return last;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Asks a terminal operator whether a daemon with incomplete caches may start.
|
|
57
|
+
*
|
|
58
|
+
* A non-interactive launch retains the existing availability-first behavior:
|
|
59
|
+
* it starts degraded rather than hanging or silently terminating.
|
|
60
|
+
*
|
|
61
|
+
* @param failures - Labels of cache steps that exhausted their retries.
|
|
62
|
+
* @returns Whether to start degraded or exit before binding the daemon.
|
|
63
|
+
*/
|
|
64
|
+
async function daemonWarmupFailure_decide(failures) {
|
|
65
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY)
|
|
66
|
+
return 'continue';
|
|
67
|
+
try {
|
|
68
|
+
const answer = await repl_question(`Warm-up incomplete (${failures.join(', ')}). Continue with degraded caches? [c]ontinue/[E]xit: `);
|
|
69
|
+
return /^(c|continue)$/i.test(answer.trim()) ? 'continue' : 'exit';
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return 'exit';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
15
75
|
/**
|
|
16
76
|
* Warms startup caches and begins non-blocking job-topology warming.
|
|
17
77
|
*
|
|
@@ -19,12 +79,14 @@ import { procCache_refresh, procTopology_warmup } from '@fnndsc/salsa';
|
|
|
19
79
|
* @param user - Authenticated username used to construct the feed path.
|
|
20
80
|
* @param interactive - Whether progress may use an interactive spinner.
|
|
21
81
|
* @param reporter - Host status logger, or null for silent status reporting.
|
|
82
|
+
* @param reportTopologySettlement - Whether to report the asynchronous topology
|
|
83
|
+
* result; daemon hosts enable this, while interactive hosts use prompt progress.
|
|
22
84
|
* @returns Cache counts and the labels of any failed warm-up operations.
|
|
23
85
|
*/
|
|
24
|
-
export async function startupWarmup_run(flags, user, interactive, reporter) {
|
|
86
|
+
export async function startupWarmup_run(flags, user, interactive, reporter, reportTopologySettlement = false) {
|
|
25
87
|
const result = { failures: [] };
|
|
26
88
|
if (!session.offline && flags.plugins) {
|
|
27
|
-
const pluginsResult = await
|
|
89
|
+
const pluginsResult = await startupPrefetch_retry('Plugins', 'Prefetching /bin for completions', interactive, reporter, async () => {
|
|
28
90
|
const listingResult = await vfs.data_get('/bin');
|
|
29
91
|
if (listingResult.ok) {
|
|
30
92
|
return {
|
|
@@ -55,10 +117,31 @@ export async function startupWarmup_run(flags, user, interactive, reporter) {
|
|
|
55
117
|
reporter?.log('skip', 'Plugins', 'Offline mode');
|
|
56
118
|
reporter?.log('skip', 'Pipelines', 'Offline mode');
|
|
57
119
|
}
|
|
120
|
+
if (!session.offline) {
|
|
121
|
+
const groupsResult = await startupPrefetch_retry('Groups', 'Resolving /etc/group memberships', interactive, reporter, async () => {
|
|
122
|
+
const projection = await vfsDispatcher.read('/etc/group');
|
|
123
|
+
if (projection.ok) {
|
|
124
|
+
const count = projection.value.split('\n').filter(Boolean).length;
|
|
125
|
+
return { ok: true, count };
|
|
126
|
+
}
|
|
127
|
+
const error = errorStack.stack_pop();
|
|
128
|
+
return { ok: false, message: error?.message ?? 'Failed to resolve /etc/group' };
|
|
129
|
+
});
|
|
130
|
+
if (groupsResult.ok) {
|
|
131
|
+
reporter?.log('ok', 'Groups', `Cached ${groupsResult.count ?? 0} group(s)`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
result.failures.push('Groups');
|
|
135
|
+
reporter?.log('fail', 'Groups', groupsResult.message || 'Failed to resolve /etc/group');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
reporter?.log('skip', 'Groups', 'Offline mode');
|
|
140
|
+
}
|
|
58
141
|
if (!session.offline && flags.feeds) {
|
|
59
142
|
const feedPath = user ? `/home/${user}/feeds` : undefined;
|
|
60
143
|
if (feedPath) {
|
|
61
|
-
const feedsResult = await
|
|
144
|
+
const feedsResult = await startupPrefetch_retry('Feeds', 'Prefetching user feeds', interactive, reporter, () => prefetch_path(feedPath));
|
|
62
145
|
if (feedsResult.ok) {
|
|
63
146
|
result.feeds = feedsResult.count;
|
|
64
147
|
reporter?.log('ok', 'Feeds', `Cached ${feedsResult.count ?? 0} item(s) from ${feedPath}`);
|
|
@@ -72,7 +155,7 @@ export async function startupWarmup_run(flags, user, interactive, reporter) {
|
|
|
72
155
|
reporter?.log('skip', 'Feeds', 'No user context');
|
|
73
156
|
}
|
|
74
157
|
if (flags.publicFeeds) {
|
|
75
|
-
const publicResult = await
|
|
158
|
+
const publicResult = await startupPrefetch_retry('Public', 'Prefetching public feeds', interactive, reporter, () => prefetch_path('/PUBLIC'));
|
|
76
159
|
if (publicResult.ok) {
|
|
77
160
|
result.public = publicResult.count;
|
|
78
161
|
reporter?.log('ok', 'Public', `Cached ${publicResult.count ?? 0} item(s) from /PUBLIC`);
|
|
@@ -90,20 +173,55 @@ export async function startupWarmup_run(flags, user, interactive, reporter) {
|
|
|
90
173
|
reporter?.log('skip', 'Feeds', 'Offline mode');
|
|
91
174
|
}
|
|
92
175
|
if (!session.offline && flags.jobs) {
|
|
93
|
-
|
|
176
|
+
let checkpoint = null;
|
|
177
|
+
let reconciliationFeedIDs = [];
|
|
178
|
+
if (reportTopologySettlement && user) {
|
|
179
|
+
const cubeUrl = await chrisContext.ChRISURL_get();
|
|
180
|
+
if (cubeUrl) {
|
|
181
|
+
const identity = identity_forSession(user, cubeUrl);
|
|
182
|
+
checkpoint = await procCheckpoint_restore(identity);
|
|
183
|
+
procCheckpoint_watch(identity);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const jobsResult = await startupPrefetch_retry('Jobs', 'Indexing /proc/jobs (feed list)...', interactive, reporter, async () => {
|
|
94
187
|
try {
|
|
95
|
-
await procCache_refresh();
|
|
188
|
+
reconciliationFeedIDs = await procCache_refresh();
|
|
96
189
|
return { ok: true, count: procCache_get().feedIDs_get().length };
|
|
97
190
|
}
|
|
98
191
|
catch (error) {
|
|
192
|
+
if (procCache_get().lifecycle_get().checkpointAt)
|
|
193
|
+
procCache_get().cache_clear();
|
|
99
194
|
const message = error instanceof Error ? error.message : String(error);
|
|
100
195
|
return { ok: false, message };
|
|
101
196
|
}
|
|
102
197
|
});
|
|
103
198
|
if (jobsResult.ok) {
|
|
104
|
-
|
|
199
|
+
const jobsMessage = checkpoint?.restored
|
|
200
|
+
? `Restored ${checkpoint.count} job(s); indexed ${jobsResult.count ?? 0} feed(s) — topology reconciling in background`
|
|
201
|
+
: `Indexed ${jobsResult.count ?? 0} feed(s) — topology reconciling in background`;
|
|
202
|
+
reporter?.log('ok', 'Jobs', jobsMessage);
|
|
105
203
|
errorStack.scope_run(() => {
|
|
106
|
-
|
|
204
|
+
const topologySweep = checkpoint?.restored
|
|
205
|
+
? procTopology_reconcileFeeds(reconciliationFeedIDs)
|
|
206
|
+
: procTopology_warmup();
|
|
207
|
+
if (reportTopologySettlement) {
|
|
208
|
+
void topologySweep.then(() => {
|
|
209
|
+
const topology = procTopology_status();
|
|
210
|
+
if (topology.state !== 'complete') {
|
|
211
|
+
reporter?.log('fail', 'Topology', `Warm-up failed: ${topology.failure ?? 'the topology index did not complete'}`);
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const progress = procCache_get().warmupProgress_get();
|
|
215
|
+
const total = progress.total > 0 ? progress.total : progress.loaded;
|
|
216
|
+
reporter?.log('ok', 'Topology', `Ready — ${progress.loaded}/${total} job(s) indexed`);
|
|
217
|
+
}, (error) => {
|
|
218
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
219
|
+
reporter?.log('fail', 'Topology', `Warm-up failed: ${message}`);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
void topologySweep.catch(() => { });
|
|
224
|
+
}
|
|
107
225
|
});
|
|
108
226
|
}
|
|
109
227
|
else {
|
|
@@ -128,15 +246,27 @@ export async function startupWarmup_run(flags, user, interactive, reporter) {
|
|
|
128
246
|
* @param interactive - Whether progress may use an interactive spinner.
|
|
129
247
|
* @param reporter - Daemon boot status logger.
|
|
130
248
|
*/
|
|
131
|
-
export async function daemonSession_run(engine, user, flags, interactive, reporter) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
249
|
+
export async function daemonSession_run(engine, user, flags, interactive, reporter, recovery = daemonWarmupFailure_decide) {
|
|
250
|
+
try {
|
|
251
|
+
await daemon_launch(engine, async () => {
|
|
252
|
+
const cache = await startupWarmup_run(flags, user, interactive, reporter, true);
|
|
253
|
+
if (cache.failures.length === 0) {
|
|
254
|
+
reporter.log('ok', 'Engine', 'Ready');
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
if (await recovery(cache.failures) === 'exit') {
|
|
258
|
+
reporter.log('fail', 'Engine', `Startup aborted after incomplete warm-up: ${cache.failures.join(', ')}`);
|
|
259
|
+
throw new DaemonWarmupAbortedError();
|
|
260
|
+
}
|
|
138
261
|
reporter.log('fail', 'Engine', `Starting with incomplete warm-up: ${cache.failures.join(', ')}`);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
if (error instanceof DaemonWarmupAbortedError) {
|
|
266
|
+
process.exitCode = 1;
|
|
267
|
+
return;
|
|
139
268
|
}
|
|
140
|
-
|
|
269
|
+
throw error;
|
|
270
|
+
}
|
|
141
271
|
}
|
|
142
272
|
//# sourceMappingURL=startupWarmup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startupWarmup.js","sourceRoot":"","sources":["../../src/core/startupWarmup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,OAAO,EACP,GAAG,GAGJ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"startupWarmup.js","sourceRoot":"","sources":["../../src/core/startupWarmup.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,9 @@ export interface BootPanels {
|
|
|
27
27
|
chris: BootInfoItem[];
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Status of a boot step: ok, skip, or fail.
|
|
30
|
+
* Status of a boot step: ok, retry, skip, or fail.
|
|
31
31
|
*/
|
|
32
|
-
export type BootStatus = 'ok' | 'skip' | 'fail';
|
|
32
|
+
export type BootStatus = 'ok' | 'retry' | 'skip' | 'fail';
|
|
33
33
|
/**
|
|
34
34
|
* Creates a boot logger that renders a titled status box.
|
|
35
35
|
*
|
package/dist/lib/bootsequence.js
CHANGED
|
@@ -28,6 +28,7 @@ export function bootLogger_create(title, useAscii) {
|
|
|
28
28
|
const statusTag = (status) => {
|
|
29
29
|
switch (status) {
|
|
30
30
|
case 'ok': return chalk.green('[ OK ]');
|
|
31
|
+
case 'retry': return chalk.yellow('[RETRY]');
|
|
31
32
|
case 'skip': return chalk.yellow('[SKIP]');
|
|
32
33
|
case 'fail': return chalk.red('[FAIL]');
|
|
33
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootsequence.js","sourceRoot":"","sources":["../../src/lib/bootsequence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootsequence.js","sourceRoot":"","sources":["../../src/lib/bootsequence.ts"],"names":[],"mappings":"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"}
|
package/dist/remote/client.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export declare function berth_probeLive(berth: Berth): Promise<boolean>;
|
|
|
14
14
|
*
|
|
15
15
|
* @param identity - The normalised `<user>@<url>` to attach to, or undefined to
|
|
16
16
|
* resolve the sole/most-suitable berth.
|
|
17
|
+
* @param commandToExecute - An optional one-shot command. When present, execute
|
|
18
|
+
* it and detach without creating an interactive REPL.
|
|
17
19
|
* @returns A promise that resolves when the client session ends.
|
|
18
20
|
*/
|
|
19
|
-
export declare function remote_run(identity?: string): Promise<void>;
|
|
21
|
+
export declare function remote_run(identity?: string, commandToExecute?: string): Promise<void>;
|
package/dist/remote/client.js
CHANGED
|
@@ -21,7 +21,10 @@ import chalk from 'chalk';
|
|
|
21
21
|
import { REPL } from '../core/repl.js';
|
|
22
22
|
import { RemoteEngine } from './remoteEngine.js';
|
|
23
23
|
import { LocalBerthResolver } from '@fnndsc/calypso';
|
|
24
|
-
import { surface_get } from '@fnndsc/brasa';
|
|
24
|
+
import { sink_set, StdoutSink, surface_get, surface_set, welcomeLine_build, welcomeLine_compose, fortune_random } from '@fnndsc/brasa';
|
|
25
|
+
import { cliSurface_create } from '../core/cliSurface.js';
|
|
26
|
+
import { TerminalProgressRenderer } from '../core/progressRenderer.js';
|
|
27
|
+
import { surfaceLine_execute } from '../core/surfaceDispatch.js';
|
|
25
28
|
/**
|
|
26
29
|
* Probes whether a berth's daemon is reachable, by performing the real attach
|
|
27
30
|
* handshake and immediately closing. A rejected connect means the daemon is
|
|
@@ -106,23 +109,28 @@ async function berth_select(identity) {
|
|
|
106
109
|
*
|
|
107
110
|
* @param identity - The normalised `<user>@<url>` to attach to, or undefined to
|
|
108
111
|
* resolve the sole/most-suitable berth.
|
|
112
|
+
* @param commandToExecute - An optional one-shot command. When present, execute
|
|
113
|
+
* it and detach without creating an interactive REPL.
|
|
109
114
|
* @returns A promise that resolves when the client session ends.
|
|
110
115
|
*/
|
|
111
|
-
export async function remote_run(identity) {
|
|
116
|
+
export async function remote_run(identity, commandToExecute) {
|
|
112
117
|
const berth = await berth_select(identity);
|
|
113
118
|
if (!berth) {
|
|
114
119
|
process.exit(1);
|
|
115
120
|
}
|
|
116
121
|
let engine;
|
|
122
|
+
let intentionalClose = false;
|
|
117
123
|
try {
|
|
118
124
|
engine = await RemoteEngine.connect({
|
|
119
125
|
url: berth.url,
|
|
120
126
|
token: berth.token,
|
|
121
|
-
onSession:
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
onSession: commandToExecute === undefined
|
|
128
|
+
? (surface, envelope) => {
|
|
129
|
+
if (envelope.rendered.length > 0) {
|
|
130
|
+
process.stdout.write(`\n${chalk.gray(`[surface ${surface.slice(0, 6)}]`)}\n${envelope.rendered}`);
|
|
131
|
+
}
|
|
124
132
|
}
|
|
125
|
-
|
|
133
|
+
: undefined,
|
|
126
134
|
onPrompt: (message, hidden) =>
|
|
127
135
|
// The REPL has installed the CLI surface (readline-backed) by the time
|
|
128
136
|
// a prompt can arrive, so this reads from the local terminal.
|
|
@@ -131,10 +139,16 @@ export async function remote_run(identity) {
|
|
|
131
139
|
// Pipeline segments run on this machine, through the client's own
|
|
132
140
|
// tools — never on the daemon host.
|
|
133
141
|
surface_get().pipeSegment(command, input),
|
|
142
|
+
onShell: (command) =>
|
|
143
|
+
// Host-shell escapes belong to the attached surface, so `!cmd` runs
|
|
144
|
+
// on this client machine and never on the daemon host.
|
|
145
|
+
surface_get().shellCommand(command),
|
|
134
146
|
onEdit: (content, extension) =>
|
|
135
147
|
// Editing happens in this machine's editor.
|
|
136
148
|
surface_get().localEdit({ content, extension }),
|
|
137
149
|
onClose: () => {
|
|
150
|
+
if (intentionalClose)
|
|
151
|
+
return;
|
|
138
152
|
console.log(chalk.yellow('\n[!] Daemon disconnected.'));
|
|
139
153
|
process.exit(0);
|
|
140
154
|
},
|
|
@@ -146,8 +160,48 @@ export async function remote_run(identity) {
|
|
|
146
160
|
process.exit(1);
|
|
147
161
|
return;
|
|
148
162
|
}
|
|
163
|
+
if (commandToExecute !== undefined) {
|
|
164
|
+
sink_set(new StdoutSink(new TerminalProgressRenderer()));
|
|
165
|
+
surface_set(cliSurface_create());
|
|
166
|
+
try {
|
|
167
|
+
const envelopes = await surfaceLine_execute(engine, commandToExecute);
|
|
168
|
+
process.exitCode = envelopes.some((envelope) => envelope.status === 'error') ? 1 : 0;
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
172
|
+
process.exitCode = 1;
|
|
173
|
+
console.error(chalk.red(`Command error: ${message}`));
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
intentionalClose = true;
|
|
177
|
+
engine.close();
|
|
178
|
+
}
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
// Greet with the daemon's own reported versions and build hash; a daemon
|
|
182
|
+
// that predates the handshake field falls back to the local install's.
|
|
183
|
+
const stack = engine.daemonStack();
|
|
184
|
+
const welcome = stack !== undefined
|
|
185
|
+
? welcomeLine_compose('chell', stack.chell, stack.build)
|
|
186
|
+
: welcomeLine_build('chell');
|
|
187
|
+
console.log(chalk.bold.cyan(welcome));
|
|
149
188
|
console.log(chalk.green(`[+] Attached to CALYPSO daemon ${berth.identity} at ${berth.url}`));
|
|
189
|
+
if (stack !== undefined) {
|
|
190
|
+
// Banner the daemon's whole stack, one aligned line per layer; older
|
|
191
|
+
// daemons report only chell and calypso.
|
|
192
|
+
const layers = [
|
|
193
|
+
['chell', stack.chell], ['brasa', stack.brasa], ['chili', stack.chili],
|
|
194
|
+
['salsa', stack.salsa], ['cumin', stack.cumin], ['calypso', stack.calypso],
|
|
195
|
+
];
|
|
196
|
+
const present = layers.filter((entry) => entry[1] !== undefined);
|
|
197
|
+
const pkgWidth = Math.max(...present.map(([pkg]) => pkg.length));
|
|
198
|
+
for (const [pkg, version] of present) {
|
|
199
|
+
console.log(chalk.gray(` ${pkg.padEnd(pkgWidth)} ${version}`));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
150
202
|
console.log(chalk.gray(" Type 'exit' to detach.\n"));
|
|
203
|
+
console.log(chalk.gray(fortune_random(4)));
|
|
204
|
+
console.log('');
|
|
151
205
|
// The daemon pushes the themed prompt string; the REPL renders whatever the
|
|
152
206
|
// daemon last sent, falling back until the first push arrives.
|
|
153
207
|
const repl = new REPL(engine, {
|