@fnndsc/calypso 0.11.0 → 0.13.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/calypso.js CHANGED
@@ -12,11 +12,11 @@
12
12
  */
13
13
  import { fileURLToPath } from 'node:url';
14
14
  import { realpathSync } from 'node:fs';
15
- import { engine_create, procIndex_snapshot, sessionConnect_fromSaved } from '@fnndsc/brasa';
15
+ import { engine_create, sessionConnect_fromSaved } from '@fnndsc/brasa';
16
16
  import chalk from 'chalk';
17
17
  import { daemon_launch } from './daemon/launch.js';
18
- import { hostControl_describe, hostControl_parseArgv } from './daemon/hostControl.js';
19
- import { face_start } from './daemon/face.js';
18
+ import { daemonConsole_run } from './daemon/consoleSession.js';
19
+ import { hostControl_parseArgv } from './daemon/hostControl.js';
20
20
  import { LocalBerthResolver, berthUrl_isAlive } from './daemon/berth.js';
21
21
  /**
22
22
  * Creates the engine, restores the saved session, and hosts the daemon.
@@ -40,30 +40,13 @@ async function calypso_start() {
40
40
  }
41
41
  const policy = parsedPolicy.policy;
42
42
  const info = await daemon_launch(engine, undefined, { hostControl: policy });
43
- // On a TTY, the terminal's resting state is the console face; off one
44
- // (systemd, nohup) face_start declines and logging stays sequential.
45
- face_start({
46
- ...(policy.tiers.size > 0
47
- ? { hostControl: { tiers: hostControl_describe(policy), ...(policy.exposed && info.bindHost !== '127.0.0.1' ? { exposedOn: info.bindHost } : {}) } }
48
- : {}),
49
- info: [
50
- { label: 'identity', value: info.identity },
51
- { label: 'wire', value: info.url },
52
- ...(info.argusUrl !== null ? [{ label: 'ARGUS', value: info.argusUrl }] : []),
53
- { label: 'token', value: info.token },
54
- { label: 'berth', value: info.berthPath },
55
- { label: 'attach', value: `chell --remote --attach ${info.url} --token ${info.token}` },
56
- ],
57
- telemetry_get: () => {
58
- const index = procIndex_snapshot();
59
- return {
60
- sessions: info.daemon.surfaces_count(),
61
- busy: info.daemon.busy_get(),
62
- jobs: index.jobs,
63
- feeds: index.feeds,
64
- };
65
- },
66
- });
43
+ // The boot ends at a login, the same as `chell --daemon`: on a TTY the
44
+ // daemon's own terminal becomes its first surface, an ordinary
45
+ // `chell --remote` spawned onto it. Off a TTY (systemd, nohup) there is
46
+ // no terminal to attach, so the daemon just keeps listening.
47
+ if (process.stdin.isTTY === true && process.stdout.isTTY === true) {
48
+ await daemonConsole_run({ identity: info.identity, url: info.url, token: info.token });
49
+ }
67
50
  }
68
51
  /**
69
52
  * Prints how to attach to each live daemon.
@@ -1 +1 @@
1
- {"version":3,"file":"calypso.js","sourceRoot":"","sources":["../src/calypso.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calypso.js","sourceRoot":"","sources":["../src/calypso.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Starts holding everything this process writes to its terminal.
3
+ *
4
+ * Idempotent: a second start while caged changes nothing.
5
+ */
6
+ export declare function consoleCage_start(): void;
7
+ /**
8
+ * Restores the terminal's own writes and returns what was held.
9
+ *
10
+ * @returns The lines written while caged, oldest first; empty when nothing
11
+ * was written, or when no cage was in place.
12
+ */
13
+ export declare function consoleCage_stop(): string[];
14
+ /** Whether the daemon's console output is currently being held. */
15
+ export declare function consoleCage_isActive(): boolean;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @file The daemon's own console output, caged while a surface holds the
3
+ * terminal.
4
+ *
5
+ * When the daemon's terminal is handed to an attached console surface, the
6
+ * daemon keeps writing: a roster row, a topology row, a warm-up that settles
7
+ * late. Written straight to the terminal they would land across the
8
+ * surface's prompt. They are held here instead and handed back when the
9
+ * surface detaches, so nothing is lost, only re-homed.
10
+ *
11
+ * @module
12
+ */
13
+ import { FaceLogRing } from './face.js';
14
+ let cage = null;
15
+ /**
16
+ * Starts holding everything this process writes to its terminal.
17
+ *
18
+ * Idempotent: a second start while caged changes nothing.
19
+ */
20
+ export function consoleCage_start() {
21
+ if (cage !== null)
22
+ return;
23
+ const ring = new FaceLogRing();
24
+ const capture = ((chunk) => {
25
+ ring.push(typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8'));
26
+ return true;
27
+ });
28
+ cage = { ring, stdoutWrite: process.stdout.write, stderrWrite: process.stderr.write };
29
+ process.stdout.write = capture;
30
+ process.stderr.write = capture;
31
+ }
32
+ /**
33
+ * Restores the terminal's own writes and returns what was held.
34
+ *
35
+ * @returns The lines written while caged, oldest first; empty when nothing
36
+ * was written, or when no cage was in place.
37
+ */
38
+ export function consoleCage_stop() {
39
+ if (cage === null)
40
+ return [];
41
+ process.stdout.write = cage.stdoutWrite;
42
+ process.stderr.write = cage.stderrWrite;
43
+ const held = cage.ring.drain();
44
+ cage = null;
45
+ return held;
46
+ }
47
+ /** Whether the daemon's console output is currently being held. */
48
+ export function consoleCage_isActive() {
49
+ return cage !== null;
50
+ }
51
+ //# sourceMappingURL=console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/daemon/console.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,IAAI,IAAI,GAAqB,IAAI,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,IAAI,GAAgB,IAAI,WAAW,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,KAA0B,EAAW,EAAE;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC,CAAgC,CAAC;IAClC,IAAI,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtF,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAsC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,MAAM,IAAI,GAAa,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACzC,IAAI,GAAG,IAAI,CAAC;IACZ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,KAAK,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @file The daemon console: the terminal a daemon booted in becomes its
3
+ * first surface.
4
+ *
5
+ * A Linux boot ends at a login. A daemon boot ended at a resting face — a
6
+ * brain animation and a status line, with the boot log a keypress away —
7
+ * that was a screensaver where a session belonged. The identity is already
8
+ * resolved by the time the engine is ready, so the login is the attach: an
9
+ * ordinary `chell --remote` surface is put on the daemon's own terminal.
10
+ *
11
+ * It is a child process on the wire, not an in-process shortcut. The daemon
12
+ * process holds one output sink and one interaction surface for every
13
+ * attached session; a REPL started inside it would take those over and
14
+ * every other surface would go quiet. A child pays one loopback hop, which
15
+ * is what every surface pays, and shares nothing else.
16
+ *
17
+ * `exit` in the console detaches; the daemon stays up, its terminal idle.
18
+ * Enter attaches again. Ctrl-C at that idle terminal stops the daemon, as
19
+ * it always did. While the console holds the terminal, whatever the daemon
20
+ * itself writes — a roster row, a late warm-up settling — is held and
21
+ * handed back on detach, so it lands after the surface's last line and
22
+ * never across its prompt.
23
+ *
24
+ * The console lives here, in the daemon's own package, because both the
25
+ * chell `--daemon` host and the standalone `calypso` binary end their boot
26
+ * this way. What differs between them is only how the surface is launched —
27
+ * chell spawns itself, the calypso binary spawns `chell` from the path — so
28
+ * that is the one injected part.
29
+ *
30
+ * @module
31
+ */
32
+ import { type ChildProcess } from 'node:child_process';
33
+ import type { EventEmitter } from 'node:events';
34
+ /** What the console needs to know about the daemon it attaches to. */
35
+ export interface DaemonConsoleTarget {
36
+ identity: string;
37
+ url: string;
38
+ token: string;
39
+ }
40
+ /** How to launch the surface: the executable and the args before `--remote`. */
41
+ export interface SurfaceLaunch {
42
+ /** The program to run — `chell` on the path, or a node with an entry. */
43
+ exec: string;
44
+ /** Args that precede the surface flags (a script entry, or nothing). */
45
+ prefixArgs: string[];
46
+ }
47
+ /** The default: the `chell` a user would run, found on the path. */
48
+ export declare const CHELL_ON_PATH: SurfaceLaunch;
49
+ /** The running attached surface: settles with its exit code. */
50
+ export interface ConsoleChild {
51
+ exited: Promise<number>;
52
+ }
53
+ /** The seams the console loop runs on, replaceable under test. */
54
+ export interface DaemonConsoleDeps {
55
+ /** Starts a `chell --remote` surface on this terminal. */
56
+ attach: (target: DaemonConsoleTarget) => ConsoleChild;
57
+ /** Holds the daemon's own console writes. */
58
+ cage_start: () => void;
59
+ /** Hands back what was held. */
60
+ cage_stop: () => string[];
61
+ /** Resolves true on Enter, false when the terminal's input ends. */
62
+ enter_wait: () => Promise<boolean>;
63
+ /** The terminal's own line writer. */
64
+ log: (line: string) => void;
65
+ }
66
+ /** What the spawner needs of a child: its exit and error events. */
67
+ export type SpawnedChild = Pick<ChildProcess, 'once'>;
68
+ /** A process spawner with the shape of `child_process.spawn`. */
69
+ export type Spawn = (command: string, args: string[], options: {
70
+ stdio: 'inherit';
71
+ env: NodeJS.ProcessEnv;
72
+ }) => SpawnedChild;
73
+ /** What the Enter wait needs of the terminal's input. */
74
+ export type ConsoleInput = Pick<EventEmitter, 'on' | 'once' | 'off'> & {
75
+ resume(): unknown;
76
+ pause(): unknown;
77
+ };
78
+ /**
79
+ * Starts a remote surface on this terminal, attached by address.
80
+ *
81
+ * @param target - The daemon's wire address and token.
82
+ * @param launch - How to launch the surface; `chell` on the path by default.
83
+ * @param spawn - The process spawner; `child_process.spawn` by default.
84
+ * @returns The child, settling with its exit code when the operator detaches.
85
+ */
86
+ export declare function surface_spawn(target: DaemonConsoleTarget, launch?: SurfaceLaunch, spawn?: Spawn): ConsoleChild;
87
+ /**
88
+ * Waits for the operator to press Enter at the idle daemon terminal.
89
+ *
90
+ * @param input - The terminal's input; `process.stdin` by default.
91
+ * @returns True on a line of input; false when the input ends.
92
+ */
93
+ export declare function enter_await(input?: ConsoleInput): Promise<boolean>;
94
+ /**
95
+ * The live seams for a given surface launch: a real child on the wire, the
96
+ * real cage, the real terminal.
97
+ *
98
+ * @param launch - How to launch the surface.
99
+ * @returns The deps `daemonConsole_run` uses in production.
100
+ */
101
+ export declare function consoleDeps_live(launch?: SurfaceLaunch): DaemonConsoleDeps;
102
+ /**
103
+ * Runs the daemon console until the operator leaves the terminal idle for
104
+ * good: attach, detach on `exit`, attach again on Enter, until stdin ends.
105
+ *
106
+ * @param target - The daemon to attach to.
107
+ * @param deps - The seams; the live ones (chell on the path) by default.
108
+ * @returns Resolves when the operator will not attach again.
109
+ */
110
+ export declare function daemonConsole_run(target: DaemonConsoleTarget, deps?: DaemonConsoleDeps): Promise<void>;
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @file The daemon console: the terminal a daemon booted in becomes its
3
+ * first surface.
4
+ *
5
+ * A Linux boot ends at a login. A daemon boot ended at a resting face — a
6
+ * brain animation and a status line, with the boot log a keypress away —
7
+ * that was a screensaver where a session belonged. The identity is already
8
+ * resolved by the time the engine is ready, so the login is the attach: an
9
+ * ordinary `chell --remote` surface is put on the daemon's own terminal.
10
+ *
11
+ * It is a child process on the wire, not an in-process shortcut. The daemon
12
+ * process holds one output sink and one interaction surface for every
13
+ * attached session; a REPL started inside it would take those over and
14
+ * every other surface would go quiet. A child pays one loopback hop, which
15
+ * is what every surface pays, and shares nothing else.
16
+ *
17
+ * `exit` in the console detaches; the daemon stays up, its terminal idle.
18
+ * Enter attaches again. Ctrl-C at that idle terminal stops the daemon, as
19
+ * it always did. While the console holds the terminal, whatever the daemon
20
+ * itself writes — a roster row, a late warm-up settling — is held and
21
+ * handed back on detach, so it lands after the surface's last line and
22
+ * never across its prompt.
23
+ *
24
+ * The console lives here, in the daemon's own package, because both the
25
+ * chell `--daemon` host and the standalone `calypso` binary end their boot
26
+ * this way. What differs between them is only how the surface is launched —
27
+ * chell spawns itself, the calypso binary spawns `chell` from the path — so
28
+ * that is the one injected part.
29
+ *
30
+ * @module
31
+ */
32
+ import { spawn as childSpawn } from 'node:child_process';
33
+ import chalk from 'chalk';
34
+ import { consoleCage_start, consoleCage_stop } from './console.js';
35
+ /** The default: the `chell` a user would run, found on the path. */
36
+ export const CHELL_ON_PATH = { exec: 'chell', prefixArgs: [] };
37
+ /**
38
+ * Starts a remote surface on this terminal, attached by address.
39
+ *
40
+ * @param target - The daemon's wire address and token.
41
+ * @param launch - How to launch the surface; `chell` on the path by default.
42
+ * @param spawn - The process spawner; `child_process.spawn` by default.
43
+ * @returns The child, settling with its exit code when the operator detaches.
44
+ */
45
+ export function surface_spawn(target, launch = CHELL_ON_PATH, spawn = childSpawn) {
46
+ // The identity rides along so the surface greets with it, not with the
47
+ // address twice; the environment mark tells it whose terminal it is on,
48
+ // so it skips the greeting the daemon's banner already gave.
49
+ const child = spawn(launch.exec, [...launch.prefixArgs, '--remote', target.identity, '--attach', target.url, '--token', target.token], { stdio: 'inherit', env: { ...process.env, CHELL_CONSOLE: '1' } });
50
+ const exited = new Promise((resolve) => {
51
+ child.once('exit', (code) => { resolve(code ?? 0); });
52
+ child.once('error', (error) => {
53
+ // A surface that cannot start at all (no `chell` on the path) must say
54
+ // so, or the loop would offer to attach again with nothing to show for
55
+ // it. Named so the operator knows what to install.
56
+ process.stderr.write(chalk.red(`[!] Could not start the console surface (${launch.exec}): ${error.message}\n`));
57
+ resolve(1);
58
+ });
59
+ });
60
+ return { exited };
61
+ }
62
+ /**
63
+ * Waits for the operator to press Enter at the idle daemon terminal.
64
+ *
65
+ * @param input - The terminal's input; `process.stdin` by default.
66
+ * @returns True on a line of input; false when the input ends.
67
+ */
68
+ export function enter_await(input = process.stdin) {
69
+ return new Promise((resolve) => {
70
+ const cleanup = () => {
71
+ input.off('data', onData);
72
+ input.off('end', onEnd);
73
+ input.pause();
74
+ };
75
+ const onData = () => { cleanup(); resolve(true); };
76
+ const onEnd = () => { cleanup(); resolve(false); };
77
+ input.on('data', onData);
78
+ input.once('end', onEnd);
79
+ input.resume();
80
+ });
81
+ }
82
+ /**
83
+ * The live seams for a given surface launch: a real child on the wire, the
84
+ * real cage, the real terminal.
85
+ *
86
+ * @param launch - How to launch the surface.
87
+ * @returns The deps `daemonConsole_run` uses in production.
88
+ */
89
+ export function consoleDeps_live(launch = CHELL_ON_PATH) {
90
+ return {
91
+ attach: (target) => surface_spawn(target, launch),
92
+ cage_start: consoleCage_start,
93
+ cage_stop: consoleCage_stop,
94
+ enter_wait: () => enter_await(),
95
+ log: (line) => { console.log(line); },
96
+ };
97
+ }
98
+ /**
99
+ * Holds the terminal's interrupt while a surface has it.
100
+ *
101
+ * The surface's readline owns Ctrl-C while attached (it clears the typed
102
+ * line, as chell always has); the daemon's own stop-on-interrupt is put
103
+ * back once the surface detaches, so Ctrl-C at the idle terminal stops
104
+ * the daemon as before.
105
+ *
106
+ * @returns A restore function.
107
+ */
108
+ function interrupt_hold() {
109
+ const held = process.listeners('SIGINT');
110
+ process.removeAllListeners('SIGINT');
111
+ const ignore = () => { };
112
+ process.on('SIGINT', ignore);
113
+ return () => {
114
+ process.off('SIGINT', ignore);
115
+ for (const listener of held)
116
+ process.on('SIGINT', listener);
117
+ };
118
+ }
119
+ /**
120
+ * Runs the daemon console until the operator leaves the terminal idle for
121
+ * good: attach, detach on `exit`, attach again on Enter, until stdin ends.
122
+ *
123
+ * @param target - The daemon to attach to.
124
+ * @param deps - The seams; the live ones (chell on the path) by default.
125
+ * @returns Resolves when the operator will not attach again.
126
+ */
127
+ export async function daemonConsole_run(target, deps = consoleDeps_live()) {
128
+ for (;;) {
129
+ deps.log(chalk.green(`[+] Console attached to ${target.identity} — 'exit' detaches, Enter attaches again, Ctrl-C then stops the daemon`));
130
+ deps.cage_start();
131
+ const restore = interrupt_hold();
132
+ let held;
133
+ try {
134
+ await deps.attach(target).exited;
135
+ }
136
+ finally {
137
+ restore();
138
+ held = deps.cage_stop();
139
+ }
140
+ if (held.length > 0) {
141
+ deps.log(chalk.gray('[+] While the console was attached:'));
142
+ for (const line of held)
143
+ deps.log(line);
144
+ }
145
+ deps.log(chalk.green('[+] Console detached; the daemon is still running. Enter attaches again, Ctrl-C stops the daemon.'));
146
+ if (!(await deps.enter_wait()))
147
+ return;
148
+ }
149
+ }
150
+ //# sourceMappingURL=consoleSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consoleSession.js","sourceRoot":"","sources":["../../src/daemon/consoleSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** The resolvers the lookup runs on, replaceable under test. */
2
+ export interface HostResolvers {
3
+ hostname: () => string;
4
+ lookup: (host: string) => Promise<{
5
+ address: string;
6
+ }>;
7
+ reverse: (address: string) => Promise<string[]>;
8
+ }
9
+ /**
10
+ * Resolves this host's fully qualified name.
11
+ *
12
+ * The hostname's own address is looked up and reversed; the first name
13
+ * carrying a domain is the answer. Anything short of that — no address,
14
+ * no reverse record, a bare name back — falls back to the hostname, which
15
+ * is what was advertised before and still resolves locally.
16
+ *
17
+ * @param resolvers - The resolvers to consult; defaults to the system's.
18
+ * @returns The fully qualified name, or the bare hostname.
19
+ */
20
+ export declare function hostFqdn_get(resolvers?: HostResolvers): Promise<string>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @file The name this host is advertised under.
3
+ *
4
+ * A daemon bound to every interface prints addresses meant to be pasted
5
+ * from another machine, and a bare hostname resolves only inside its own
6
+ * search domain. The fully qualified name resolves from anywhere the
7
+ * network reaches.
8
+ *
9
+ * @module
10
+ */
11
+ import { promises as dns } from 'node:dns';
12
+ import { hostname } from 'node:os';
13
+ /** The live resolvers: the OS hostname and the system resolver. */
14
+ const SYSTEM_RESOLVERS = {
15
+ hostname,
16
+ lookup: (host) => dns.lookup(host, { family: 4 }),
17
+ reverse: (address) => dns.reverse(address),
18
+ };
19
+ /**
20
+ * Resolves this host's fully qualified name.
21
+ *
22
+ * The hostname's own address is looked up and reversed; the first name
23
+ * carrying a domain is the answer. Anything short of that — no address,
24
+ * no reverse record, a bare name back — falls back to the hostname, which
25
+ * is what was advertised before and still resolves locally.
26
+ *
27
+ * @param resolvers - The resolvers to consult; defaults to the system's.
28
+ * @returns The fully qualified name, or the bare hostname.
29
+ */
30
+ export async function hostFqdn_get(resolvers = SYSTEM_RESOLVERS) {
31
+ const short = resolvers.hostname();
32
+ try {
33
+ const { address } = await resolvers.lookup(short);
34
+ const names = await resolvers.reverse(address);
35
+ const qualified = names.find((name) => name.includes('.'));
36
+ return qualified ?? short;
37
+ }
38
+ catch {
39
+ return short;
40
+ }
41
+ }
42
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/daemon/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AASnC,mEAAmE;AACnE,MAAM,gBAAgB,GAAkB;IACtC,QAAQ;IACR,MAAM,EAAE,CAAC,IAAY,EAAgC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvF,OAAO,EAAE,CAAC,OAAe,EAAqB,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;CACtE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAA2B,gBAAgB;IAC5E,MAAM,KAAK,GAAW,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAwB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,GAAa,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,SAAS,GAAuB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,OAAO,SAAS,IAAI,KAAK,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -11,16 +11,16 @@
11
11
  *
12
12
  * @module
13
13
  */
14
- import { hostname } from 'node:os';
15
14
  import * as path from 'node:path';
16
15
  import chalk from 'chalk';
17
16
  import { CalypsoDaemon } from './server.js';
18
- import { bundledWebRoot_find, webRoot_resolve } from './static.js';
17
+ import { bundledWebRoot_find, webRoot_resolve, webRootVersion_read } from './static.js';
18
+ import { hostFqdn_get } from './host.js';
19
19
  import { token_generate } from './token.js';
20
20
  import { sink_set } from '@fnndsc/brasa';
21
21
  import { surface_set } from '@fnndsc/brasa';
22
22
  import { procIndex_snapshot, sessionPromptContext_build } from '@fnndsc/brasa';
23
- import { welcomeLine_build, versionReport_build, versions_get, buildHash_get, fortune_random } from '@fnndsc/brasa';
23
+ import { stackBanner_rows, stackBannerRow_paint, versions_get, buildHash_get } from '@fnndsc/brasa';
24
24
  import { chrisContext } from '@fnndsc/cumin';
25
25
  import { identity_forSession, berth_write, berth_read, berth_path, berthUrl_isAlive, DISCONNECTED_IDENTITY } from './berth.js';
26
26
  import { attachFile_write, attachFile_remove } from './attachFile.js';
@@ -172,8 +172,12 @@ export async function daemon_launch(engine, beforeListen, options = {}) {
172
172
  // wire to the network: a berth copied to another machine, or an address
173
173
  // pasted into `chell --remote --attach`, has to name a host that resolves
174
174
  // from somewhere else.
175
- const wireHost = bindHost === '0.0.0.0' ? hostname() : bindHost;
176
- const url = `ws://${wireHost}:${port}`;
175
+ // Every address printed or written below names this host once, and by
176
+ // its fully qualified name: a wildcard bind has no routable form, and the
177
+ // bare hostname resolves only inside its own search domain. Pasted on
178
+ // another machine, the qualified name still works.
179
+ const displayHost = bindHost === '0.0.0.0' ? await hostFqdn_get() : bindHost;
180
+ const url = `ws://${displayHost}:${port}`;
177
181
  const berth = { identity, url, token };
178
182
  berth_write(berth);
179
183
  const attachHint = identity === DISCONNECTED_IDENTITY ? '' : ` ${identity}`;
@@ -185,7 +189,7 @@ export async function daemon_launch(engine, beforeListen, options = {}) {
185
189
  `wire: ${url}`,
186
190
  `token: ${token}`,
187
191
  ...(webRoot !== null
188
- ? [`ARGUS: http://${bindHost === '0.0.0.0' ? hostname() : bindHost}:${port}/?token=${token}`]
192
+ ? [`ARGUS: http://${displayHost}:${port}/?token=${token}`]
189
193
  : []),
190
194
  `attach: chell --remote --attach ${url} --token ${token}`,
191
195
  ...(hostControl.tiers.size > 0
@@ -199,12 +203,14 @@ export async function daemon_launch(engine, beforeListen, options = {}) {
199
203
  process.once('SIGINT', () => { cleanup(); process.exit(0); });
200
204
  process.once('SIGTERM', () => { cleanup(); process.exit(0); });
201
205
  }
202
- console.log(chalk.bold.cyan(welcomeLine_build('calypso')));
203
- for (const line of versionReport_build().split('\n')) {
204
- console.log(chalk.gray(` ${line}`));
206
+ // The stack, every package written out once, versions in a clean column:
207
+ // the build hash rides the listening line below rather than one row's
208
+ // version, which pushed that row past the column the rest share.
209
+ const build = buildHash_get();
210
+ for (const row of stackBanner_rows(versions_get(), webRoot !== null ? webRootVersion_read(webRoot) : null)) {
211
+ console.log(` ${stackBannerRow_paint(row, { name: chalk.bold.cyan, phrase: chalk.white, version: chalk.gray })}`);
205
212
  }
206
- console.log(chalk.gray(fortune_random(4)));
207
- console.log(chalk.green(`[+] CALYPSO listening on ${url}`));
213
+ console.log(chalk.green(`[+] CALYPSO listening on ${url} ${chalk.gray(`(build ${build})`)}`));
208
214
  if (hostControl.tiers.size > 0) {
209
215
  // Annunciated every launch: this daemon acts on its own host.
210
216
  console.log(chalk.yellow(`[!] HOST CONTROL: ${hostControl_describe(hostControl)} — \`!\`, pipes, and the disk are this host's`));
@@ -223,9 +229,6 @@ export async function daemon_launch(engine, beforeListen, options = {}) {
223
229
  console.log(chalk.gray(` from another machine: chell --remote --attach ${url} --token ${token}`));
224
230
  }
225
231
  if (webRoot !== null) {
226
- // A wildcard bind has no routable form for a URL; name the machine so
227
- // the printed address works from another host.
228
- const displayHost = bindHost === '0.0.0.0' ? hostname() : bindHost;
229
232
  console.log(chalk.green(`[+] ARGUS web surface at http://${displayHost}:${port}/?token=${token}`));
230
233
  console.log(chalk.gray(` serving: ${webRoot}`));
231
234
  }
@@ -233,7 +236,6 @@ export async function daemon_launch(engine, beforeListen, options = {}) {
233
236
  console.log(chalk.gray(` these lines also in: ${notePath}`));
234
237
  console.log(chalk.gray(' or run: calypso --berths'));
235
238
  }
236
- const displayHost = bindHost === '0.0.0.0' ? hostname() : bindHost;
237
239
  return {
238
240
  identity,
239
241
  url,
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/daemon/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/daemon/launch.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,23 @@ export declare function contentType_forPath(filePath: string): string;
19
19
  * none qualifies.
20
20
  */
21
21
  export declare function webRoot_resolve(candidates: Array<string | undefined>): string | null;
22
+ /**
23
+ * How many directory levels above this module may hold a source checkout.
24
+ *
25
+ * A built calypso sits at `packages/calypso/dist/daemon/`, four levels below
26
+ * the checkout root; the extra margin covers a workspace symlinked through
27
+ * `node_modules/@fnndsc/calypso`.
28
+ */
29
+ /**
30
+ * Reads the version of the app a web root was built from.
31
+ *
32
+ * The bundle carries no manifest of its own; the app's package.json sits
33
+ * beside its dist directory in the checkout that built it.
34
+ *
35
+ * @param webRoot - The resolved web root (the app's dist directory).
36
+ * @returns The app's version, or `unknown` when no package.json is beside it.
37
+ */
38
+ export declare function webRootVersion_read(webRoot: string): string;
22
39
  /**
23
40
  * Finds the argus bundle belonging to the checkout that built this calypso.
24
41
  *
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @module
14
14
  */
15
- import { createReadStream, existsSync, statSync } from 'node:fs';
15
+ import { createReadStream, existsSync, readFileSync, statSync } from 'node:fs';
16
16
  import * as path from 'node:path';
17
17
  import { fileURLToPath } from 'node:url';
18
18
  /** Content types for web-bundle assets and the file kinds `/vfs` serves. */
@@ -78,6 +78,24 @@ export function webRoot_resolve(candidates) {
78
78
  * the checkout root; the extra margin covers a workspace symlinked through
79
79
  * `node_modules/@fnndsc/calypso`.
80
80
  */
81
+ /**
82
+ * Reads the version of the app a web root was built from.
83
+ *
84
+ * The bundle carries no manifest of its own; the app's package.json sits
85
+ * beside its dist directory in the checkout that built it.
86
+ *
87
+ * @param webRoot - The resolved web root (the app's dist directory).
88
+ * @returns The app's version, or `unknown` when no package.json is beside it.
89
+ */
90
+ export function webRootVersion_read(webRoot) {
91
+ try {
92
+ const manifest = JSON.parse(readFileSync(path.join(webRoot, '..', 'package.json'), 'utf8'));
93
+ return typeof manifest.version === 'string' ? manifest.version : 'unknown';
94
+ }
95
+ catch {
96
+ return 'unknown';
97
+ }
98
+ }
81
99
  const CHECKOUT_SEARCH_DEPTH = 6;
82
100
  /**
83
101
  * Finds the argus bundle belonging to the checkout that built this calypso.
@@ -1 +1 @@
1
- {"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/daemon/static.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/daemon/static.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,5 +27,7 @@ export { HOST_CONTROL_OFF, HOST_CONTROL_TIERS, hostControl_fromInputs, hostContr
27
27
  export { RequestBroker } from './daemon/broker.js';
28
28
  export { daemon_launch, daemonSurface_create, DaemonSink, type DaemonLaunchInfo } from './daemon/launch.js';
29
29
  export { face_start, face_boot, face_ready, face_suspend, face_resume, face_stop, face_isActive, face_frameCompose, uptime_format, FaceLogRing, type FaceInfo, type FaceTelemetry, type FaceOptions, type FaceFrame, } from './daemon/face.js';
30
+ export { consoleCage_start, consoleCage_stop, consoleCage_isActive } from './daemon/console.js';
31
+ export { daemonConsole_run, surface_spawn, enter_await, consoleDeps_live, CHELL_ON_PATH, type DaemonConsoleTarget, type DaemonConsoleDeps, type ConsoleChild, type ConsoleInput, type Spawn, type SpawnedChild, type SurfaceLaunch, } from './daemon/consoleSession.js';
30
32
  export { discovery_read, discovery_write, discovery_path, type Discovery } from './daemon/discovery.js';
31
33
  export { identity_normalise, identity_forSession, DISCONNECTED_IDENTITY, berthKey_compute, berthDir_path, berth_path, berth_write, berth_read, berthAll_read, berth_remove, berthUrl_isAlive, LocalBerthResolver, type Berth, type BerthResolver, type BerthLivenessProbe, } from './daemon/berth.js';
package/dist/index.js CHANGED
@@ -26,6 +26,8 @@ export { HOST_CONTROL_OFF, HOST_CONTROL_TIERS, hostControl_fromInputs, hostContr
26
26
  export { RequestBroker } from './daemon/broker.js';
27
27
  export { daemon_launch, daemonSurface_create, DaemonSink } from './daemon/launch.js';
28
28
  export { face_start, face_boot, face_ready, face_suspend, face_resume, face_stop, face_isActive, face_frameCompose, uptime_format, FaceLogRing, } from './daemon/face.js';
29
+ export { consoleCage_start, consoleCage_stop, consoleCage_isActive } from './daemon/console.js';
30
+ export { daemonConsole_run, surface_spawn, enter_await, consoleDeps_live, CHELL_ON_PATH, } from './daemon/consoleSession.js';
29
31
  export { discovery_read, discovery_write, discovery_path } from './daemon/discovery.js';
30
32
  export { identity_normalise, identity_forSession, DISCONNECTED_IDENTITY, berthKey_compute, berthDir_path, berth_path, berth_write, berth_read, berthAll_read, berth_remove, berthUrl_isAlive, LocalBerthResolver, } from './daemon/berth.js';
31
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GAIpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,GAEb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAwC,MAAM,oBAAoB,CAAC;AACzF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAyB,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,GAKZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AACxG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GAInB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GAIpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,GAEb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAwC,MAAM,oBAAoB,CAAC;AACzF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAyB,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,GAKZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,aAAa,GAQd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AACxG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GAInB,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fnndsc/calypso",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "CALYPSO: the ChRIS session daemon — hosts a brasa engine for attached surfaces over a WebSocket",
5
5
  "repository": {
6
6
  "type": "git",
@@ -51,11 +51,11 @@
51
51
  "typescript": "^5.0.0"
52
52
  },
53
53
  "dependencies": {
54
- "@fnndsc/brasa": "^0.19.0",
55
- "@fnndsc/cumin": "^3.20.0",
54
+ "@fnndsc/brasa": "^0.20.0",
55
+ "@fnndsc/cumin": "^3.21.0",
56
56
  "chalk": "^4.1.2",
57
57
  "ws": "^8.18.0",
58
58
  "zod": "^3.23.8",
59
- "@fnndsc/menu": "^0.6.0"
59
+ "@fnndsc/menu": "^0.7.0"
60
60
  }
61
61
  }