@fnndsc/calypso 0.2.0 → 0.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/dist/calypso.d.ts +13 -0
- package/dist/calypso.js +45 -0
- package/dist/calypso.js.map +1 -0
- package/dist/daemon/discovery.d.ts +23 -0
- package/dist/daemon/discovery.js +55 -0
- package/dist/daemon/discovery.js.map +1 -0
- package/dist/daemon/engine.js +1 -2
- package/dist/daemon/launch.d.ts +9 -0
- package/dist/daemon/launch.js +83 -0
- package/dist/daemon/launch.js.map +1 -0
- package/dist/daemon/server.d.ts +6 -5
- package/dist/daemon/server.js +43 -41
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/token.js +8 -13
- package/dist/daemon/token.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -42
- package/dist/index.js.map +1 -1
- package/dist/protocol/envelope.js +20 -23
- package/dist/protocol/envelope.js.map +1 -1
- package/dist/protocol/messages.d.ts +175 -10
- package/dist/protocol/messages.js +132 -117
- package/dist/protocol/messages.js.map +1 -1
- package/dist/protocol/validate.js +10 -16
- package/dist/protocol/validate.js.map +1 -1
- package/dist/protocol/version.js +3 -7
- package/dist/protocol/version.js.map +1 -1
- package/package.json +10 -5
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @file The `calypso` daemon entry.
|
|
4
|
+
*
|
|
5
|
+
* Starts the session daemon on its own: create a brasa engine, restore a saved
|
|
6
|
+
* session, and host the engine over a WebSocket for surfaces to attach. The
|
|
7
|
+
* daemon is non-interactive — it runs from credentials already saved by the
|
|
8
|
+
* CLI. If none are present it still starts (attachable, but offline until a
|
|
9
|
+
* surface connects), telling the operator to log in with `chell` first.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
package/dist/calypso.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @file The `calypso` daemon entry.
|
|
4
|
+
*
|
|
5
|
+
* Starts the session daemon on its own: create a brasa engine, restore a saved
|
|
6
|
+
* session, and host the engine over a WebSocket for surfaces to attach. The
|
|
7
|
+
* daemon is non-interactive — it runs from credentials already saved by the
|
|
8
|
+
* CLI. If none are present it still starts (attachable, but offline until a
|
|
9
|
+
* surface connects), telling the operator to log in with `chell` first.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import { fileURLToPath } from 'node:url';
|
|
14
|
+
import { realpathSync } from 'node:fs';
|
|
15
|
+
import { engine_create, sessionConnect_fromSaved } from '@fnndsc/brasa';
|
|
16
|
+
import { daemon_launch } from './daemon/launch.js';
|
|
17
|
+
/**
|
|
18
|
+
* Creates the engine, restores the saved session, and hosts the daemon.
|
|
19
|
+
*
|
|
20
|
+
* @returns A promise that resolves once the daemon is listening; the process
|
|
21
|
+
* then stays alive on the WebSocket server.
|
|
22
|
+
*/
|
|
23
|
+
async function calypso_start() {
|
|
24
|
+
const engine = await engine_create();
|
|
25
|
+
const result = await sessionConnect_fromSaved();
|
|
26
|
+
if (result.status === 'restored') {
|
|
27
|
+
console.error(`[+] Session restored: ${result.context.user}@${result.context.URL}`);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
console.error(`[!] No active session (${result.status}). Log in with 'chell' first; hosting offline.`);
|
|
31
|
+
}
|
|
32
|
+
await daemon_launch(engine);
|
|
33
|
+
}
|
|
34
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
35
|
+
let isMain = false;
|
|
36
|
+
try {
|
|
37
|
+
isMain = realpathSync(process.argv[1]) === realpathSync(currentFile);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Not invoked as a script.
|
|
41
|
+
}
|
|
42
|
+
if (isMain) {
|
|
43
|
+
void calypso_start();
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=calypso.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calypso.js","sourceRoot":"","sources":["../src/calypso.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAA6C,MAAM,eAAe,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;GAKG;AACH,KAAK,UAAU,aAAa;IAC1B,MAAM,MAAM,GAAgB,MAAM,aAAa,EAAE,CAAC;IAElD,MAAM,MAAM,GAAuB,MAAM,wBAAwB,EAAE,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,gDAAgD,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,WAAW,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D,IAAI,MAAM,GAAY,KAAK,CAAC;AAC5B,IAAI,CAAC;IACH,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC;AACvE,CAAC;AAAC,MAAM,CAAC;IACP,2BAA2B;AAC7B,CAAC;AAED,IAAI,MAAM,EAAE,CAAC;IACX,KAAK,aAAa,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** What the discovery file records. */
|
|
2
|
+
export interface Discovery {
|
|
3
|
+
url: string;
|
|
4
|
+
token: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The per-user discovery file path.
|
|
8
|
+
*
|
|
9
|
+
* @returns The path the daemon writes and a client reads.
|
|
10
|
+
*/
|
|
11
|
+
export declare function discovery_path(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Writes the discovery file, readable only by the current user.
|
|
14
|
+
*
|
|
15
|
+
* @param discovery - The URL and token to record.
|
|
16
|
+
*/
|
|
17
|
+
export declare function discovery_write(discovery: Discovery): void;
|
|
18
|
+
/**
|
|
19
|
+
* Reads the discovery file.
|
|
20
|
+
*
|
|
21
|
+
* @returns The recorded URL and token, or null when no daemon has advertised.
|
|
22
|
+
*/
|
|
23
|
+
export declare function discovery_read(): Discovery | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Same-user daemon discovery.
|
|
3
|
+
*
|
|
4
|
+
* The daemon writes its URL and attach token to a user-only-readable file so a
|
|
5
|
+
* `chell --remote` client running as the same user can find it without the
|
|
6
|
+
* token crossing any other channel. This mirrors the local-daemon model: the
|
|
7
|
+
* perimeter is the loopback bind plus a token whose only distribution is a
|
|
8
|
+
* 0600 file on the same machine.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
import { writeFileSync, readFileSync, existsSync } from 'fs';
|
|
13
|
+
import { join } from 'path';
|
|
14
|
+
import { tmpdir } from 'os';
|
|
15
|
+
import { userInfo } from 'os';
|
|
16
|
+
/**
|
|
17
|
+
* The per-user discovery file path.
|
|
18
|
+
*
|
|
19
|
+
* @returns The path the daemon writes and a client reads.
|
|
20
|
+
*/
|
|
21
|
+
export function discovery_path() {
|
|
22
|
+
return join(tmpdir(), `chell-calypso-${userInfo().username}.json`);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Writes the discovery file, readable only by the current user.
|
|
26
|
+
*
|
|
27
|
+
* @param discovery - The URL and token to record.
|
|
28
|
+
*/
|
|
29
|
+
export function discovery_write(discovery) {
|
|
30
|
+
writeFileSync(discovery_path(), JSON.stringify(discovery), { mode: 0o600 });
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Reads the discovery file.
|
|
34
|
+
*
|
|
35
|
+
* @returns The recorded URL and token, or null when no daemon has advertised.
|
|
36
|
+
*/
|
|
37
|
+
export function discovery_read() {
|
|
38
|
+
const path = discovery_path();
|
|
39
|
+
if (!existsSync(path)) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
44
|
+
if (typeof parsed === 'object' && parsed !== null &&
|
|
45
|
+
typeof parsed.url === 'string' &&
|
|
46
|
+
typeof parsed.token === 'string') {
|
|
47
|
+
return parsed;
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/daemon/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAQ9B;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,QAAQ,EAAE,CAAC,QAAQ,OAAO,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,aAAa,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAW,cAAc,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,IACE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAC7C,OAAQ,MAAoB,CAAC,GAAG,KAAK,QAAQ;YAC7C,OAAQ,MAAoB,CAAC,KAAK,KAAK,QAAQ,EAC/C,CAAC;YACD,OAAO,MAAmB,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/daemon/engine.js
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BrasaEngine } from '@fnndsc/brasa';
|
|
2
|
+
/**
|
|
3
|
+
* Starts the daemon over an engine and advertises it for same-user discovery.
|
|
4
|
+
*
|
|
5
|
+
* @param engine - The engine to host (already created and connected by boot).
|
|
6
|
+
* @returns A promise that resolves once the daemon is listening; the process
|
|
7
|
+
* then stays alive on the WebSocket server.
|
|
8
|
+
*/
|
|
9
|
+
export declare function daemon_launch(engine: BrasaEngine): Promise<void>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file The `chell --daemon` launcher.
|
|
3
|
+
*
|
|
4
|
+
* Hosts the already-created chell engine behind a CALYPSO daemon. Two host
|
|
5
|
+
* concerns are handled here that the transport-agnostic daemon (in calypso)
|
|
6
|
+
* cannot: color is forced on (a daemon has no TTY, so chalk would otherwise
|
|
7
|
+
* strip it, and the rendered text must carry color for a remote terminal to
|
|
8
|
+
* reproduce the local experience), and the engine's live sink output is
|
|
9
|
+
* routed through the command's origin surface rather than rendered on the
|
|
10
|
+
* daemon's own console.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
import { CalypsoDaemon } from './server.js';
|
|
16
|
+
import { token_generate } from './token.js';
|
|
17
|
+
import { sink_set } from '@fnndsc/brasa';
|
|
18
|
+
import { surface_set } from '@fnndsc/brasa';
|
|
19
|
+
import { sessionPromptContext_build } from '@fnndsc/brasa';
|
|
20
|
+
import { discovery_write, discovery_path } from './discovery.js';
|
|
21
|
+
/** The daemon sink forwards live command output to the executing surface. */
|
|
22
|
+
class DaemonSink {
|
|
23
|
+
daemon;
|
|
24
|
+
liveEnvelopeOutput = true;
|
|
25
|
+
constructor(daemon) {
|
|
26
|
+
this.daemon = daemon;
|
|
27
|
+
}
|
|
28
|
+
/** @inheritdoc */
|
|
29
|
+
data_write(chunk) { this.output_write('data', chunk); }
|
|
30
|
+
/** @inheritdoc */
|
|
31
|
+
err_write(chunk) { this.output_write('err', chunk); }
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
status_write(text) { this.daemon.output_current('status', text); }
|
|
34
|
+
/** @inheritdoc */
|
|
35
|
+
progress_write(event) { this.daemon.progress_current(event); }
|
|
36
|
+
output_write(channel, chunk) {
|
|
37
|
+
const text = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
|
|
38
|
+
this.daemon.output_current(channel, text);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Starts the daemon over an engine and advertises it for same-user discovery.
|
|
43
|
+
*
|
|
44
|
+
* @param engine - The engine to host (already created and connected by boot).
|
|
45
|
+
* @returns A promise that resolves once the daemon is listening; the process
|
|
46
|
+
* then stays alive on the WebSocket server.
|
|
47
|
+
*/
|
|
48
|
+
export async function daemon_launch(engine) {
|
|
49
|
+
// Force color into the engine's rendered text: no TTY here to auto-detect.
|
|
50
|
+
if (chalk.level < 1) {
|
|
51
|
+
chalk.level = 3;
|
|
52
|
+
}
|
|
53
|
+
const token = token_generate();
|
|
54
|
+
const daemon = new CalypsoDaemon({
|
|
55
|
+
engine,
|
|
56
|
+
token,
|
|
57
|
+
host: '127.0.0.1',
|
|
58
|
+
port: 0,
|
|
59
|
+
// Only the daemon holds the session context, so it renders the themed
|
|
60
|
+
// prompt and pushes it to surfaces.
|
|
61
|
+
promptProvider: () => sessionPromptContext_build(),
|
|
62
|
+
});
|
|
63
|
+
sink_set(new DaemonSink(daemon));
|
|
64
|
+
// Interactivity is a surface capability: a builtin that prompts, or a
|
|
65
|
+
// pipeline segment, reaches the surface running the command through the
|
|
66
|
+
// daemon's brokers, over the wire, without knowing the transport — and
|
|
67
|
+
// nothing ever spawns on the daemon host.
|
|
68
|
+
const surface = {
|
|
69
|
+
capabilities: { hiddenInput: true, localEdit: true, tty: true, pipeSegments: true },
|
|
70
|
+
prompt: (request) => daemon.prompt_current(request.message, request.hidden ?? false),
|
|
71
|
+
pipeSegment: (command, input) => daemon.pipe_current(command, input),
|
|
72
|
+
localEdit: (request) => daemon.edit_current(request.content, request.extension),
|
|
73
|
+
};
|
|
74
|
+
surface_set(surface);
|
|
75
|
+
const port = await daemon.start();
|
|
76
|
+
const url = `ws://127.0.0.1:${port}`;
|
|
77
|
+
discovery_write({ url, token });
|
|
78
|
+
console.log(chalk.green(`[+] CALYPSO daemon listening on ${url}`));
|
|
79
|
+
console.log(chalk.gray(` token: ${token}`));
|
|
80
|
+
console.log(chalk.gray(` discovery: ${discovery_path()}`));
|
|
81
|
+
console.log(chalk.gray(' attach a surface with: chell --remote'));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=launch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/daemon/launch.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { HostedEngine } from './engine.js';
|
|
2
|
-
import type { ProgressEvent } from '../protocol/messages.js';
|
|
2
|
+
import type { ProgressEvent, PromptContext } from '../protocol/messages.js';
|
|
3
3
|
/** The result of a surface's local edit, returned by {@link CalypsoDaemon.edit_current}. */
|
|
4
4
|
export interface EditOutcome {
|
|
5
5
|
content: string;
|
|
@@ -14,9 +14,10 @@ export interface EditOutcome {
|
|
|
14
14
|
* @property host - The interface to bind; loopback (`127.0.0.1`) by default.
|
|
15
15
|
* @property scrollbackSize - How many recent envelopes to retain for replay
|
|
16
16
|
* to an attaching surface; defaults to 200.
|
|
17
|
-
* @property promptProvider -
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* @property promptProvider - Supplies the current session's prompt context,
|
|
18
|
+
* which the daemon pushes to surfaces after each command and on attach; each
|
|
19
|
+
* surface renders it with its own theme. Omitted when a host does not push a
|
|
20
|
+
* prompt (e.g. tests).
|
|
20
21
|
*/
|
|
21
22
|
export interface DaemonOptions {
|
|
22
23
|
engine: HostedEngine;
|
|
@@ -24,7 +25,7 @@ export interface DaemonOptions {
|
|
|
24
25
|
port?: number;
|
|
25
26
|
host?: string;
|
|
26
27
|
scrollbackSize?: number;
|
|
27
|
-
promptProvider?: () =>
|
|
28
|
+
promptProvider?: () => PromptContext | Promise<PromptContext>;
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* A WebSocket daemon hosting one engine for attached surfaces, with a session
|
package/dist/daemon/server.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CalypsoDaemon = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* @file The CALYPSO daemon: a WebSocket host over one engine, with a session
|
|
6
3
|
* bus.
|
|
@@ -27,42 +24,48 @@ exports.CalypsoDaemon = void 0;
|
|
|
27
24
|
*
|
|
28
25
|
* @module
|
|
29
26
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
import { randomBytes } from 'node:crypto';
|
|
28
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
29
|
+
import { token_matches } from './token.js';
|
|
30
|
+
import { CONTRACT_VERSION } from '../protocol/version.js';
|
|
31
|
+
import { clientMessage_parse, attach_parse } from '../protocol/validate.js';
|
|
35
32
|
/** The default number of envelopes retained for scrollback replay. */
|
|
36
33
|
const SCROLLBACK_DEFAULT = 200;
|
|
37
34
|
/**
|
|
38
35
|
* A WebSocket daemon hosting one engine for attached surfaces, with a session
|
|
39
36
|
* bus broadcasting activity across them.
|
|
40
37
|
*/
|
|
41
|
-
class CalypsoDaemon {
|
|
38
|
+
export class CalypsoDaemon {
|
|
39
|
+
engine;
|
|
40
|
+
token;
|
|
41
|
+
port;
|
|
42
|
+
host;
|
|
43
|
+
scrollbackSize;
|
|
44
|
+
promptProvider;
|
|
45
|
+
/** The one session all surfaces share; returned in each attach ack. */
|
|
46
|
+
sessionId = randomBytes(8).toString('hex');
|
|
47
|
+
surfaces = new Set();
|
|
48
|
+
scrollback = [];
|
|
49
|
+
wss = null;
|
|
50
|
+
/**
|
|
51
|
+
* Execution is serialized across the whole session (one foreground command
|
|
52
|
+
* at a time), so a prompt raised mid-command has one unambiguous surface to
|
|
53
|
+
* ask — the one running the current command.
|
|
54
|
+
*/
|
|
55
|
+
queue = Promise.resolve();
|
|
56
|
+
currentOrigin = null;
|
|
57
|
+
currentId = null;
|
|
58
|
+
pendingPrompts = new Map();
|
|
59
|
+
promptSeq = 0;
|
|
60
|
+
pendingPipes = new Map();
|
|
61
|
+
pipeSeq = 0;
|
|
62
|
+
pendingEdits = new Map();
|
|
63
|
+
editSeq = 0;
|
|
42
64
|
/**
|
|
43
65
|
* @param options - The engine to host, the attach token, the bind address,
|
|
44
66
|
* and the scrollback size.
|
|
45
67
|
*/
|
|
46
68
|
constructor(options) {
|
|
47
|
-
/** The one session all surfaces share; returned in each attach ack. */
|
|
48
|
-
this.sessionId = (0, node_crypto_1.randomBytes)(8).toString('hex');
|
|
49
|
-
this.surfaces = new Set();
|
|
50
|
-
this.scrollback = [];
|
|
51
|
-
this.wss = null;
|
|
52
|
-
/**
|
|
53
|
-
* Execution is serialized across the whole session (one foreground command
|
|
54
|
-
* at a time), so a prompt raised mid-command has one unambiguous surface to
|
|
55
|
-
* ask — the one running the current command.
|
|
56
|
-
*/
|
|
57
|
-
this.queue = Promise.resolve();
|
|
58
|
-
this.currentOrigin = null;
|
|
59
|
-
this.currentId = null;
|
|
60
|
-
this.pendingPrompts = new Map();
|
|
61
|
-
this.promptSeq = 0;
|
|
62
|
-
this.pendingPipes = new Map();
|
|
63
|
-
this.pipeSeq = 0;
|
|
64
|
-
this.pendingEdits = new Map();
|
|
65
|
-
this.editSeq = 0;
|
|
66
69
|
this.engine = options.engine;
|
|
67
70
|
this.token = options.token;
|
|
68
71
|
this.port = options.port ?? 0;
|
|
@@ -77,7 +80,7 @@ class CalypsoDaemon {
|
|
|
77
80
|
*/
|
|
78
81
|
start() {
|
|
79
82
|
return new Promise((resolve, reject) => {
|
|
80
|
-
const wss = new
|
|
83
|
+
const wss = new WebSocketServer({ host: this.host, port: this.port });
|
|
81
84
|
wss.on('listening', () => resolve(wss.address().port));
|
|
82
85
|
wss.on('error', reject);
|
|
83
86
|
wss.on('connection', (socket) => this.connection_handle(socket));
|
|
@@ -124,7 +127,7 @@ class CalypsoDaemon {
|
|
|
124
127
|
surface = this.attach_handle(socket, parsed);
|
|
125
128
|
return;
|
|
126
129
|
}
|
|
127
|
-
const message =
|
|
130
|
+
const message = clientMessage_parse(parsed);
|
|
128
131
|
if (!message.ok || message.value === undefined) {
|
|
129
132
|
this.send(socket, { type: 'error', reason: message.error ?? 'invalid message' });
|
|
130
133
|
return;
|
|
@@ -168,22 +171,22 @@ class CalypsoDaemon {
|
|
|
168
171
|
* @returns The registered surface, or null when the attach was refused.
|
|
169
172
|
*/
|
|
170
173
|
attach_handle(socket, raw) {
|
|
171
|
-
const attach =
|
|
174
|
+
const attach = attach_parse(raw);
|
|
172
175
|
if (!attach.ok || attach.value === undefined) {
|
|
173
176
|
this.send(socket, { type: 'error', reason: attach.error ?? 'invalid attach' });
|
|
174
177
|
socket.close();
|
|
175
178
|
return null;
|
|
176
179
|
}
|
|
177
|
-
if (!
|
|
180
|
+
if (!token_matches(this.token, attach.value.token)) {
|
|
178
181
|
this.send(socket, { type: 'error', reason: 'invalid token' });
|
|
179
182
|
socket.close();
|
|
180
183
|
return null;
|
|
181
184
|
}
|
|
182
185
|
// Each connection is a distinct surface (its own bus tag); all attach to
|
|
183
186
|
// the one shared session returned in the ack.
|
|
184
|
-
const surface = { socket, id:
|
|
187
|
+
const surface = { socket, id: randomBytes(8).toString('hex') };
|
|
185
188
|
this.surfaces.add(surface);
|
|
186
|
-
this.send(socket, { type: 'attached', session: this.sessionId, protocolVersion:
|
|
189
|
+
this.send(socket, { type: 'attached', session: this.sessionId, protocolVersion: CONTRACT_VERSION });
|
|
187
190
|
this.scrollback_replay(socket);
|
|
188
191
|
// The newcomer shows the right prompt immediately, before any command.
|
|
189
192
|
void this.promptline_push(surface);
|
|
@@ -200,13 +203,13 @@ class CalypsoDaemon {
|
|
|
200
203
|
if (!this.promptProvider) {
|
|
201
204
|
return;
|
|
202
205
|
}
|
|
203
|
-
const
|
|
206
|
+
const context = await this.promptProvider();
|
|
204
207
|
if (target) {
|
|
205
|
-
this.send(target.socket, { type: 'promptline',
|
|
208
|
+
this.send(target.socket, { type: 'promptline', context });
|
|
206
209
|
return;
|
|
207
210
|
}
|
|
208
211
|
for (const surface of this.surfaces) {
|
|
209
|
-
this.send(surface.socket, { type: 'promptline',
|
|
212
|
+
this.send(surface.socket, { type: 'promptline', context });
|
|
210
213
|
}
|
|
211
214
|
}
|
|
212
215
|
/**
|
|
@@ -309,7 +312,7 @@ class CalypsoDaemon {
|
|
|
309
312
|
progress_current(event) {
|
|
310
313
|
const origin = this.currentOrigin;
|
|
311
314
|
const id = this.currentId;
|
|
312
|
-
if (!origin || !id || origin.socket.readyState !==
|
|
315
|
+
if (!origin || !id || origin.socket.readyState !== WebSocket.OPEN) {
|
|
313
316
|
return false;
|
|
314
317
|
}
|
|
315
318
|
this.send(origin.socket, { type: 'progress', id, ...event });
|
|
@@ -327,7 +330,7 @@ class CalypsoDaemon {
|
|
|
327
330
|
output_current(channel, chunk) {
|
|
328
331
|
const origin = this.currentOrigin;
|
|
329
332
|
const id = this.currentId;
|
|
330
|
-
if (!origin || !id || origin.socket.readyState !==
|
|
333
|
+
if (!origin || !id || origin.socket.readyState !== WebSocket.OPEN) {
|
|
331
334
|
return false;
|
|
332
335
|
}
|
|
333
336
|
this.send(origin.socket, { type: 'output', id, channel, chunk });
|
|
@@ -457,10 +460,9 @@ class CalypsoDaemon {
|
|
|
457
460
|
* @param message - The message to send.
|
|
458
461
|
*/
|
|
459
462
|
send(socket, message) {
|
|
460
|
-
if (socket.readyState ===
|
|
463
|
+
if (socket.readyState === WebSocket.OPEN) {
|
|
461
464
|
socket.send(JSON.stringify(message));
|
|
462
465
|
}
|
|
463
466
|
}
|
|
464
467
|
}
|
|
465
|
-
exports.CalypsoDaemon = CalypsoDaemon;
|
|
466
468
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/token.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.token_generate = token_generate;
|
|
4
|
-
exports.token_writeFile = token_writeFile;
|
|
5
|
-
exports.token_matches = token_matches;
|
|
6
1
|
/**
|
|
7
2
|
* @file The attach token: generation, discovery file, and constant-time
|
|
8
3
|
* comparison.
|
|
@@ -16,15 +11,15 @@ exports.token_matches = token_matches;
|
|
|
16
11
|
*
|
|
17
12
|
* @module
|
|
18
13
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
15
|
+
import { writeFileSync } from 'node:fs';
|
|
21
16
|
/**
|
|
22
17
|
* Generates a fresh attach token: 256 bits of randomness, hex-encoded.
|
|
23
18
|
*
|
|
24
19
|
* @returns The token string.
|
|
25
20
|
*/
|
|
26
|
-
function token_generate() {
|
|
27
|
-
return
|
|
21
|
+
export function token_generate() {
|
|
22
|
+
return randomBytes(32).toString('hex');
|
|
28
23
|
}
|
|
29
24
|
/**
|
|
30
25
|
* Writes the token to a file readable only by the current user (mode 0600),
|
|
@@ -33,8 +28,8 @@ function token_generate() {
|
|
|
33
28
|
* @param token - The token to write.
|
|
34
29
|
* @param path - The destination file path.
|
|
35
30
|
*/
|
|
36
|
-
function token_writeFile(token, path) {
|
|
37
|
-
|
|
31
|
+
export function token_writeFile(token, path) {
|
|
32
|
+
writeFileSync(path, `${token}\n`, { mode: 0o600 });
|
|
38
33
|
}
|
|
39
34
|
/**
|
|
40
35
|
* Compares a provided token against the expected one in constant time, so a
|
|
@@ -45,12 +40,12 @@ function token_writeFile(token, path) {
|
|
|
45
40
|
* @param provided - The token a surface presented at attach.
|
|
46
41
|
* @returns True when the tokens match exactly.
|
|
47
42
|
*/
|
|
48
|
-
function token_matches(expected, provided) {
|
|
43
|
+
export function token_matches(expected, provided) {
|
|
49
44
|
const expectedBytes = Buffer.from(expected, 'utf-8');
|
|
50
45
|
const providedBytes = Buffer.from(provided, 'utf-8');
|
|
51
46
|
if (expectedBytes.length !== providedBytes.length) {
|
|
52
47
|
return false;
|
|
53
48
|
}
|
|
54
|
-
return
|
|
49
|
+
return timingSafeEqual(expectedBytes, providedBytes);
|
|
55
50
|
}
|
|
56
51
|
//# sourceMappingURL=token.js.map
|
package/dist/daemon/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/daemon/token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/daemon/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,IAAY;IACzD,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,QAAgB;IAC9D,MAAM,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,eAAe,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,3 +17,5 @@ export { clientMessage_parse, serverMessage_parse, clientMessage_fromJson, attac
|
|
|
17
17
|
export { type HostedEngine, type CompletionResult } from './daemon/engine.js';
|
|
18
18
|
export { token_generate, token_writeFile, token_matches } from './daemon/token.js';
|
|
19
19
|
export { CalypsoDaemon, type DaemonOptions, type EditOutcome } from './daemon/server.js';
|
|
20
|
+
export { daemon_launch } from './daemon/launch.js';
|
|
21
|
+
export { discovery_read, discovery_write, discovery_path, type Discovery } from './daemon/discovery.js';
|