zcode-acp-server 0.21.4 → 0.23.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.
Files changed (70) hide show
  1. package/README.md +6 -7
  2. package/dist/cli.d.ts +8 -5
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +22 -14
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config/user-config.d.ts +48 -0
  7. package/dist/config/user-config.d.ts.map +1 -0
  8. package/dist/config/user-config.js +101 -0
  9. package/dist/config/user-config.js.map +1 -0
  10. package/dist/handlers/session.d.ts +33 -3
  11. package/dist/handlers/session.d.ts.map +1 -1
  12. package/dist/handlers/session.js +152 -9
  13. package/dist/handlers/session.js.map +1 -1
  14. package/dist/i18n.d.ts +2 -0
  15. package/dist/i18n.d.ts.map +1 -1
  16. package/dist/i18n.js +2 -0
  17. package/dist/i18n.js.map +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/remote/config.d.ts +36 -24
  22. package/dist/remote/config.d.ts.map +1 -1
  23. package/dist/remote/config.js +70 -36
  24. package/dist/remote/config.js.map +1 -1
  25. package/dist/remote/hub-server.d.ts +24 -13
  26. package/dist/remote/hub-server.d.ts.map +1 -1
  27. package/dist/remote/hub-server.js +78 -63
  28. package/dist/remote/hub-server.js.map +1 -1
  29. package/dist/server.d.ts +22 -0
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +25 -0
  32. package/dist/server.js.map +1 -1
  33. package/dist/tui.d.ts +38 -0
  34. package/dist/tui.d.ts.map +1 -0
  35. package/dist/tui.js +96 -0
  36. package/dist/tui.js.map +1 -0
  37. package/dist/utils.d.ts +8 -0
  38. package/dist/utils.d.ts.map +1 -1
  39. package/dist/utils.js +10 -0
  40. package/dist/utils.js.map +1 -1
  41. package/docs/CLI.md +33 -76
  42. package/docs/REMOTE-CLIENTS.md +26 -20
  43. package/docs/REMOTE.md +62 -23
  44. package/docs/TROUBLESHOOTING.md +5 -1
  45. package/docs/adr/0007-unified-cli-entry-and-bin-pruning.md +2 -0
  46. package/package.json +3 -7
  47. package/dist/repl/App.d.ts +0 -108
  48. package/dist/repl/App.d.ts.map +0 -1
  49. package/dist/repl/App.js +0 -732
  50. package/dist/repl/App.js.map +0 -1
  51. package/dist/repl/history.d.ts +0 -25
  52. package/dist/repl/history.d.ts.map +0 -1
  53. package/dist/repl/history.js +0 -73
  54. package/dist/repl/history.js.map +0 -1
  55. package/dist/repl/hub.d.ts +0 -87
  56. package/dist/repl/hub.d.ts.map +0 -1
  57. package/dist/repl/hub.js +0 -188
  58. package/dist/repl/hub.js.map +0 -1
  59. package/dist/repl/input-buffer.d.ts +0 -77
  60. package/dist/repl/input-buffer.d.ts.map +0 -1
  61. package/dist/repl/input-buffer.js +0 -174
  62. package/dist/repl/input-buffer.js.map +0 -1
  63. package/dist/repl/model.d.ts +0 -312
  64. package/dist/repl/model.d.ts.map +0 -1
  65. package/dist/repl/model.js +0 -674
  66. package/dist/repl/model.js.map +0 -1
  67. package/dist/repl/run.d.ts +0 -12
  68. package/dist/repl/run.d.ts.map +0 -1
  69. package/dist/repl/run.js +0 -1245
  70. package/dist/repl/run.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/repl/App.tsx"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Per-project prompt history (ADR-0008): JSONL at
3
- * ~/.zcode/acp/repl-history/<sha1(cwd)>.jsonl, one submitted line per JSON
4
- * string. Pure fs-in/file-fs-out helpers — the entry list itself lives in
5
- * run.ts's external store, so Ctrl-L repaints and session swaps never lose
6
- * it. The reader is tolerant: malformed lines are skipped, never fatal.
7
- */
8
- /** Entries kept per project; enforced on load (truncate-rewrite) and save. */
9
- export declare const HISTORY_MAX = 500;
10
- /** Absolute path of this project's history file. */
11
- export declare function historyPath(cwd: string): string;
12
- /**
13
- * Read and parse a history file, oldest first. Bad lines are dropped;
14
- * when the file grew past HISTORY_MAX it is rewritten with the newest tail
15
- * so the cap holds without a separate maintenance pass.
16
- */
17
- export declare function loadHistory(filePath: string, max?: number): string[];
18
- /** Persist the whole list (≤ max entries), creating the directory once. */
19
- export declare function saveHistory(filePath: string, entries: readonly string[], max?: number): void;
20
- /**
21
- * Pure consecutive-duplicate suppression: resubmitting the recalled newest
22
- * entry (or mashing enter on the same line) must not spam the file.
23
- */
24
- export declare function pushHistory(entries: readonly string[], text: string): string[];
25
- //# sourceMappingURL=history.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/repl/history.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,8EAA8E;AAC9E,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAc,GAAG,MAAM,EAAE,CAqBzE;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,SAAc,GAAG,IAAI,CAWjG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI9E"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Per-project prompt history (ADR-0008): JSONL at
3
- * ~/.zcode/acp/repl-history/<sha1(cwd)>.jsonl, one submitted line per JSON
4
- * string. Pure fs-in/file-fs-out helpers — the entry list itself lives in
5
- * run.ts's external store, so Ctrl-L repaints and session swaps never lose
6
- * it. The reader is tolerant: malformed lines are skipped, never fatal.
7
- */
8
- import { createHash } from "node:crypto";
9
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
10
- import { homedir } from "node:os";
11
- import { dirname, join } from "node:path";
12
- /** Entries kept per project; enforced on load (truncate-rewrite) and save. */
13
- export const HISTORY_MAX = 500;
14
- /** Absolute path of this project's history file. */
15
- export function historyPath(cwd) {
16
- const digest = createHash("sha1").update(cwd).digest("hex");
17
- return join(homedir(), ".zcode", "acp", "repl-history", `${digest}.jsonl`);
18
- }
19
- /**
20
- * Read and parse a history file, oldest first. Bad lines are dropped;
21
- * when the file grew past HISTORY_MAX it is rewritten with the newest tail
22
- * so the cap holds without a separate maintenance pass.
23
- */
24
- export function loadHistory(filePath, max = HISTORY_MAX) {
25
- if (!existsSync(filePath))
26
- return [];
27
- let entries = [];
28
- try {
29
- for (const line of readFileSync(filePath, "utf8").split("\n")) {
30
- if (!line.trim())
31
- continue;
32
- try {
33
- const parsed = JSON.parse(line);
34
- if (typeof parsed === "string" && parsed.trim())
35
- entries.push(parsed);
36
- }
37
- catch {
38
- // torn write / manual edit — skip the line
39
- }
40
- }
41
- }
42
- catch {
43
- return []; // unreadable file: start fresh rather than crash the REPL
44
- }
45
- if (entries.length > max) {
46
- entries = entries.slice(-max);
47
- saveHistory(filePath, entries, max);
48
- }
49
- return entries;
50
- }
51
- /** Persist the whole list (≤ max entries), creating the directory once. */
52
- export function saveHistory(filePath, entries, max = HISTORY_MAX) {
53
- const tail = entries.slice(-max);
54
- try {
55
- mkdirSync(dirname(filePath), { recursive: true });
56
- writeFileSync(filePath, tail.map((line) => JSON.stringify(line)).join("\n") + (tail.length ? "\n" : ""));
57
- }
58
- catch {
59
- // best-effort persistence: an unwritable home dir must not break submits
60
- }
61
- }
62
- /**
63
- * Pure consecutive-duplicate suppression: resubmitting the recalled newest
64
- * entry (or mashing enter on the same line) must not spam the file.
65
- */
66
- export function pushHistory(entries, text) {
67
- if (!text.trim())
68
- return [...entries];
69
- if (entries[entries.length - 1] === text)
70
- return [...entries];
71
- return [...entries, text];
72
- }
73
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/repl/history.ts"],"names":[],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- /**
2
- * REPL-side hub client (ADR-0018): discover bridge instances through the hub
3
- * daemon and open a proxied WebSocket to a session-owning bridge, so the REPL
4
- * can attach to a session ANOTHER process is driving (mobile via a serve
5
- * bridge) and receive its updates live. The CLI's own backend sees only a
6
- * frozen resident snapshot of such sessions — cross-process pushes do not
7
- * exist — so live watching requires attaching at the owner, exactly like the
8
- * mobile App does.
9
- *
10
- * Everything here is best-effort discovery plumbing: the REPL degrades to its
11
- * plain local-bridge behaviour whenever the hub is unconfigured, unreachable,
12
- * or the picked session is not live anywhere.
13
- */
14
- import { Duplex } from "node:stream";
15
- import { WebSocket } from "ws";
16
- /** Where to reach the hub. The hub itself is what binds and authenticates. */
17
- export interface HubRef {
18
- port: number;
19
- token: string;
20
- /** http://127.0.0.1:<port> — /api/instances and friends. */
21
- baseUrl: string;
22
- /** ws://127.0.0.1:<port> — the /acp proxy upgrade endpoint. */
23
- wsBase: string;
24
- }
25
- /**
26
- * Resolve the hub from the same env the bridges and hub process use. The
27
- * REMOTE gate is deliberately NOT required: this is a client, not a bridge —
28
- * the token plus port are enough to talk to an existing hub. Loopback only,
29
- * matching bridge registration (remote/endpoint.ts): ZCODE_ACP_HUB_HOST is a
30
- * bind address, not a dial address.
31
- */
32
- export declare function resolveHubClient(env?: NodeJS.ProcessEnv): HubRef | null;
33
- /** One registered bridge instance as /api/instances returns it (additive-only). */
34
- export interface HubInstance {
35
- id: string;
36
- port: number;
37
- pid: number;
38
- startedAt?: string;
39
- workspace?: string;
40
- origin?: string;
41
- sessions?: Array<{
42
- sessionId: string;
43
- title?: string;
44
- updatedAt?: string;
45
- status?: string;
46
- }>;
47
- }
48
- /** GET /api/instances (Bearer auth). Rejects on non-2xx, timeout, bad payload. */
49
- export declare function fetchInstances(hub: HubRef, opts?: {
50
- probe?: boolean;
51
- timeoutMs?: number;
52
- }): Promise<HubInstance[]>;
53
- /**
54
- * The instance currently owning a session. The hub dedupes sessions across
55
- * instances on write (same session stays only on the freshest instance), so
56
- * the first hit is the right one.
57
- */
58
- export declare function findInstanceForSession(instances: HubInstance[], sessionId: string): HubInstance | null;
59
- /**
60
- * Whether a hub instance's workspace is the given project directory. Pure
61
- * path-resolution compare — a remote attach is only offered for the REPL's
62
- * own project, matching what the local session/list already shows.
63
- */
64
- export declare function sameWorkspace(a: string | undefined, b: string): boolean;
65
- /**
66
- * Bridge a WebSocket to the byte streams `acp.ndJsonStream` expects. Outgoing
67
- * bytes are buffered and each "\n"-terminated line is sent as one WS message;
68
- * each incoming WS message is re-terminated with "\n" (ACP frames are single
69
- * JSON documents — 1 message = 1 frame, the newline is for ndJsonStream's
70
- * parser). Close/error end or destroy the stream so the SDK's pending reads
71
- * surface the loss instead of hanging.
72
- */
73
- export declare function wsToStream(ws: WebSocket): Duplex;
74
- export interface HubSocket {
75
- /** Raw socket — attach close/error listeners for loss detection. */
76
- ws: WebSocket;
77
- /** ndJson-ready byte stream pair feeding `acp.ndJsonStream`. */
78
- duplex: Duplex;
79
- }
80
- /**
81
- * Open the hub's proxied ACP WebSocket to one bridge instance. The hub
82
- * destroys the socket without an HTTP error on unknown instance or bad token,
83
- * so failures surface as a close/error rather than an HTTP status. Rejects on
84
- * open timeout.
85
- */
86
- export declare function openHubSocket(hub: HubRef, instanceId: string, timeoutMs?: number): Promise<HubSocket>;
87
- //# sourceMappingURL=hub.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/repl/hub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,8EAA8E;AAC9E,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAWpF;AAED,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,kFAAkF;AAClF,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,WAAW,EAAE,CAAC,CAexB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,WAAW,EAAE,EACxB,SAAS,EAAE,MAAM,GAChB,WAAW,GAAG,IAAI,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOvE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAwChD;AAED,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,EAAE,EAAE,SAAS,CAAC;IACd,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,SAAS,SAAO,GACf,OAAO,CAAC,SAAS,CAAC,CA0CpB"}
package/dist/repl/hub.js DELETED
@@ -1,188 +0,0 @@
1
- /**
2
- * REPL-side hub client (ADR-0018): discover bridge instances through the hub
3
- * daemon and open a proxied WebSocket to a session-owning bridge, so the REPL
4
- * can attach to a session ANOTHER process is driving (mobile via a serve
5
- * bridge) and receive its updates live. The CLI's own backend sees only a
6
- * frozen resident snapshot of such sessions — cross-process pushes do not
7
- * exist — so live watching requires attaching at the owner, exactly like the
8
- * mobile App does.
9
- *
10
- * Everything here is best-effort discovery plumbing: the REPL degrades to its
11
- * plain local-bridge behaviour whenever the hub is unconfigured, unreachable,
12
- * or the picked session is not live anywhere.
13
- */
14
- import { Duplex } from "node:stream";
15
- import path from "node:path";
16
- import process from "node:process";
17
- import { WebSocket } from "ws";
18
- /**
19
- * Resolve the hub from the same env the bridges and hub process use. The
20
- * REMOTE gate is deliberately NOT required: this is a client, not a bridge —
21
- * the token plus port are enough to talk to an existing hub. Loopback only,
22
- * matching bridge registration (remote/endpoint.ts): ZCODE_ACP_HUB_HOST is a
23
- * bind address, not a dial address.
24
- */
25
- export function resolveHubClient(env = process.env) {
26
- const token = env.ZCODE_ACP_REMOTE_TOKEN;
27
- if (!token)
28
- return null;
29
- const parsed = Number.parseInt(env.ZCODE_ACP_HUB_PORT ?? "", 10);
30
- const port = Number.isFinite(parsed) && parsed > 0 ? parsed : 8377;
31
- return {
32
- port,
33
- token,
34
- baseUrl: `http://127.0.0.1:${port}`,
35
- wsBase: `ws://127.0.0.1:${port}`,
36
- };
37
- }
38
- /** GET /api/instances (Bearer auth). Rejects on non-2xx, timeout, bad payload. */
39
- export async function fetchInstances(hub, opts = {}) {
40
- const controller = new AbortController();
41
- const timer = setTimeout(() => controller.abort(), opts.timeoutMs ?? 2000);
42
- try {
43
- const res = await fetch(`${hub.baseUrl}/api/instances${opts.probe ? "?probe=1" : ""}`, {
44
- headers: { Authorization: `Bearer ${hub.token}` },
45
- signal: controller.signal,
46
- });
47
- if (!res.ok)
48
- throw new Error(`HTTP ${res.status}`);
49
- const data = await res.json();
50
- if (!Array.isArray(data))
51
- throw new Error("unexpected payload");
52
- return data;
53
- }
54
- finally {
55
- clearTimeout(timer);
56
- }
57
- }
58
- /**
59
- * The instance currently owning a session. The hub dedupes sessions across
60
- * instances on write (same session stays only on the freshest instance), so
61
- * the first hit is the right one.
62
- */
63
- export function findInstanceForSession(instances, sessionId) {
64
- for (const inst of instances) {
65
- if ((inst.sessions ?? []).some((s) => s.sessionId === sessionId))
66
- return inst;
67
- }
68
- return null;
69
- }
70
- /**
71
- * Whether a hub instance's workspace is the given project directory. Pure
72
- * path-resolution compare — a remote attach is only offered for the REPL's
73
- * own project, matching what the local session/list already shows.
74
- */
75
- export function sameWorkspace(a, b) {
76
- if (!a)
77
- return false;
78
- try {
79
- return path.resolve(a) === path.resolve(b);
80
- }
81
- catch {
82
- return false;
83
- }
84
- }
85
- /**
86
- * Bridge a WebSocket to the byte streams `acp.ndJsonStream` expects. Outgoing
87
- * bytes are buffered and each "\n"-terminated line is sent as one WS message;
88
- * each incoming WS message is re-terminated with "\n" (ACP frames are single
89
- * JSON documents — 1 message = 1 frame, the newline is for ndJsonStream's
90
- * parser). Close/error end or destroy the stream so the SDK's pending reads
91
- * surface the loss instead of hanging.
92
- */
93
- export function wsToStream(ws) {
94
- let pending = "";
95
- let ended = false;
96
- const duplex = new Duplex({
97
- read() { },
98
- write(chunk, _enc, cb) {
99
- pending += typeof chunk === "string" ? chunk : chunk.toString("utf8");
100
- let idx;
101
- while ((idx = pending.indexOf("\n")) >= 0) {
102
- const line = pending.slice(0, idx);
103
- pending = pending.slice(idx + 1);
104
- if (line)
105
- ws.send(line);
106
- }
107
- cb();
108
- },
109
- final(cb) {
110
- ws.close();
111
- cb();
112
- },
113
- });
114
- ws.on("message", (data) => {
115
- if (ended)
116
- return;
117
- const bytes = Array.isArray(data)
118
- ? Buffer.concat(data)
119
- : Buffer.isBuffer(data)
120
- ? data
121
- : Buffer.from(data);
122
- duplex.push(Buffer.concat([bytes, Buffer.from("\n")]));
123
- });
124
- ws.on("close", () => {
125
- if (ended)
126
- return;
127
- ended = true;
128
- duplex.push(null);
129
- });
130
- ws.on("error", (err) => {
131
- if (ended)
132
- return;
133
- ended = true;
134
- duplex.destroy(err);
135
- });
136
- return duplex;
137
- }
138
- /**
139
- * Open the hub's proxied ACP WebSocket to one bridge instance. The hub
140
- * destroys the socket without an HTTP error on unknown instance or bad token,
141
- * so failures surface as a close/error rather than an HTTP status. Rejects on
142
- * open timeout.
143
- */
144
- export async function openHubSocket(hub, instanceId, timeoutMs = 5000) {
145
- const ws = new WebSocket(`${hub.wsBase}/acp?instance=${encodeURIComponent(instanceId)}&token=${encodeURIComponent(hub.token)}`);
146
- const duplex = wsToStream(ws);
147
- await new Promise((resolve, reject) => {
148
- // The hub rejects an upgrade with an HTTP status and then destroys the
149
- // socket, so an ECONNRESET and the error response can arrive in either
150
- // order — two error events on the same ws. The error listener therefore
151
- // stays attached for the socket's lifetime and settles once; anything
152
- // after the handshake resolved or rejected is swallowed here instead of
153
- // reaching the process as an uncaught 'error'.
154
- let done = false;
155
- const timer = setTimeout(() => {
156
- finish(new Error(`hub ws open timeout (${timeoutMs}ms)`));
157
- ws.terminate();
158
- }, timeoutMs);
159
- const onOpen = () => finish(null);
160
- const onClose = () => finish(new Error("hub ws closed during open"));
161
- const onError = (err) => finish(err);
162
- const finish = (err) => {
163
- if (done)
164
- return;
165
- done = true;
166
- clearTimeout(timer);
167
- ws.removeListener("open", onOpen);
168
- ws.removeListener("close", onClose);
169
- if (err)
170
- reject(err);
171
- else
172
- resolve();
173
- };
174
- ws.once("open", onOpen);
175
- ws.once("close", onClose);
176
- ws.on("error", onError);
177
- // The hub rejects upgrades with a real HTTP status (401/404/502). ws only
178
- // surfaces those as `unexpected-response`; with nobody listening it falls
179
- // back to abortHandshake, which fires an uncaught error on the upgrade
180
- // request. Consume the pair here and settle with a readable reason.
181
- ws.on("unexpected-response", (_req, res) => {
182
- res.destroy();
183
- finish(new Error(`hub rejected the upgrade (HTTP ${res.statusCode})`));
184
- });
185
- });
186
- return { ws, duplex };
187
- }
188
- //# sourceMappingURL=hub.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/repl/hub.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Single-line editor state for the REPL input box — caret movement plus
3
- * insertion/deletion at the caret. Pure functions so the component stays a
4
- * thin shell and the behavior is unit-testable.
5
- *
6
- * The caret counts CODE POINTS (`Array.from`), not UTF-16 units, so emoji
7
- * (surrogate pairs) step over as one position even though typical CJK input
8
- * needs no special handling either way.
9
- */
10
- export interface LineEditor {
11
- /** The editable line text. */
12
- text: string;
13
- /** Caret as a code-point offset; always within [0, cpCount(text)]. */
14
- caret: number;
15
- }
16
- export declare function createLineEditor(): LineEditor;
17
- /**
18
- * Hard cap on prompt size (code points). Image-drag/paste dumps from some
19
- * terminals deliver megabytes of junk in one chunk; without a cap the editor
20
- * renders a colossal wrapped box and ink goes down with it.
21
- */
22
- export declare const MAX_PROMPT_CHARS = 20000;
23
- /**
24
- * Strip control characters (C0 + DEL) from a raw input chunk. Terminal
25
- * bracketed-paste wrappers (\x1b[200~ … \x1b[201~) and image-drop binary
26
- * fragments must never reach editor state: every later render re-wraps the
27
- * whole text, so smuggled escape bytes corrupt frames on all subsequent
28
- * keystrokes. Printable text, emoji, and CJK pass through untouched.
29
- */
30
- export declare function sanitizeInputChunk(chunk: string): string;
31
- /**
32
- * One planned step for replaying a coalesced input chunk into the editor:
33
- * contiguous printable runs batch as a single insert, while semantic bytes
34
- * (\r submit, \t complete, backspace, ctrl chords) stay per-character so
35
- * their usual key semantics apply.
36
- */
37
- export type ChunkOp = {
38
- kind: "insert";
39
- text: string;
40
- } | {
41
- kind: "char";
42
- ch: string;
43
- };
44
- /**
45
- * Split a raw coalesced chunk into ops such that the caller issues ONE
46
- * editor application per insert (not one per character). Applying per char
47
- * used to mean one full ink rerender per char inside a single tick — a long
48
- * paste blew through React's nested-update limit ("Maximum update depth
49
- * exceeded") and killed the REPL.
50
- *
51
- * Escape sequences never reach here (the caller routes those chunks by their
52
- * ink-parsed flags); control characters are dropped from runs by
53
- * sanitizeInputChunk at plan time.
54
- */
55
- export declare function planChunkOps(chunk: string): ChunkOp[];
56
- /** Whole-line replacement (completion results), caret parked at the end. */
57
- export declare function replaceText(text: string): LineEditor;
58
- /**
59
- * Fold a pasted chunk into single-line text (ADR-0009). Bracketed-paste
60
- * wrappers are stripped, CRLF/CR/LF runs and tabs collapse to single
61
- * spaces, and remaining control bytes are sanitized away — a newline inside
62
- * a paste must never keep its Enter semantics (pre-fix pastes fired
63
- * line-by-line as separate prompts). Printable text, emoji, CJK pass
64
- * through; the prompt-size cap still bounds the result.
65
- */
66
- export declare function foldPasteChunk(chunk: string): string;
67
- export declare function insertAtCaret(editor: LineEditor, str: string): LineEditor;
68
- /** Remove the character BEFORE the caret (Backspace). */
69
- export declare function backspaceAtCaret(editor: LineEditor): LineEditor;
70
- /** Remove the character AT/after the caret (Forward Delete). */
71
- export declare function deleteAtCaret(editor: LineEditor): LineEditor;
72
- export declare function caretLeft(editor: LineEditor): LineEditor;
73
- export declare function caretRight(editor: LineEditor): LineEditor;
74
- export declare function caretToStart(editor: LineEditor): LineEditor;
75
- export declare function caretToEnd(editor: LineEditor): LineEditor;
76
- export declare function ctrlChord(ch: string): "b" | "f" | "a" | "e" | "u" | null;
77
- //# sourceMappingURL=input-buffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-buffer.d.ts","sourceRoot":"","sources":["../../src/repl/input-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAID;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAC;AAEvC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAyBrD;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CASzE;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAK/D;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAK5D;AAQD,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAExD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAEzD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAEzD;AAYD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAaxE"}