zcode-acp-server 0.11.9 → 0.14.1
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 +144 -32
- package/dist/backend/client.d.ts.map +1 -1
- package/dist/backend/client.js +10 -0
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/listener.d.ts.map +1 -1
- package/dist/backend/listener.js +6 -5
- package/dist/backend/listener.js.map +1 -1
- package/dist/backend/resolve.d.ts.map +1 -1
- package/dist/backend/resolve.js +35 -1
- package/dist/backend/resolve.js.map +1 -1
- package/dist/bin/hub.d.ts +3 -3
- package/dist/bin/hub.d.ts.map +1 -1
- package/dist/bin/hub.js +22 -12
- package/dist/bin/hub.js.map +1 -1
- package/dist/bin/quota.d.ts +14 -6
- package/dist/bin/quota.d.ts.map +1 -1
- package/dist/bin/quota.js +27 -19
- package/dist/bin/quota.js.map +1 -1
- package/dist/cli.d.ts +38 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +129 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/runtime-model.d.ts +10 -10
- package/dist/config/runtime-model.js +10 -10
- package/dist/handlers/account.d.ts +1 -1
- package/dist/handlers/account.js +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +42 -36
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/io.d.ts.map +1 -1
- package/dist/handlers/io.js +19 -13
- package/dist/handlers/io.js.map +1 -1
- package/dist/handlers/session.d.ts +58 -4
- package/dist/handlers/session.d.ts.map +1 -1
- package/dist/handlers/session.js +288 -56
- package/dist/handlers/session.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -8
- package/dist/index.js.map +1 -1
- package/dist/interaction/adapter.d.ts +1 -0
- package/dist/interaction/adapter.d.ts.map +1 -1
- package/dist/interaction/adapter.js +5 -1
- package/dist/interaction/adapter.js.map +1 -1
- package/dist/quota/color.d.ts +4 -4
- package/dist/quota/color.d.ts.map +1 -1
- package/dist/quota/color.js +7 -5
- package/dist/quota/color.js.map +1 -1
- package/dist/quota/combined.d.ts +1 -1
- package/dist/quota/combined.js +4 -4
- package/dist/quota/combined.js.map +1 -1
- package/dist/quota/format.d.ts +1 -1
- package/dist/quota/opencode-go/format.d.ts.map +1 -1
- package/dist/quota/opencode-go/format.js +5 -1
- package/dist/quota/opencode-go/format.js.map +1 -1
- package/dist/quota/opencode-go/index.d.ts +1 -1
- package/dist/quota/opencode-go/index.js +1 -1
- package/dist/quota/opencode-go/types.d.ts +1 -1
- package/dist/quota/opencode-go/types.js +1 -1
- package/dist/quota/rounding.d.ts +8 -0
- package/dist/quota/rounding.d.ts.map +1 -0
- package/dist/quota/rounding.js +10 -0
- package/dist/quota/rounding.js.map +1 -0
- package/dist/remote/config.d.ts +1 -1
- package/dist/remote/config.d.ts.map +1 -1
- package/dist/remote/config.js +1 -1
- package/dist/remote/config.js.map +1 -1
- package/dist/remote/endpoint.d.ts +1 -1
- package/dist/remote/endpoint.js +1 -1
- package/dist/remote/hub-server.d.ts +1 -1
- package/dist/remote/hub-server.js +1 -1
- package/dist/repl/App.d.ts +108 -0
- package/dist/repl/App.d.ts.map +1 -0
- package/dist/repl/App.js +706 -0
- package/dist/repl/App.js.map +1 -0
- package/dist/repl/history.d.ts +25 -0
- package/dist/repl/history.d.ts.map +1 -0
- package/dist/repl/history.js +73 -0
- package/dist/repl/history.js.map +1 -0
- package/dist/repl/input-buffer.d.ts +77 -0
- package/dist/repl/input-buffer.d.ts.map +1 -0
- package/dist/repl/input-buffer.js +174 -0
- package/dist/repl/input-buffer.js.map +1 -0
- package/dist/repl/model.d.ts +275 -0
- package/dist/repl/model.d.ts.map +1 -0
- package/dist/repl/model.js +596 -0
- package/dist/repl/model.js.map +1 -0
- package/dist/repl/mouse.d.ts +49 -0
- package/dist/repl/mouse.d.ts.map +1 -0
- package/dist/repl/mouse.js +165 -0
- package/dist/repl/mouse.js.map +1 -0
- package/dist/repl/run.d.ts +12 -0
- package/dist/repl/run.d.ts.map +1 -0
- package/dist/repl/run.js +902 -0
- package/dist/repl/run.js.map +1 -0
- package/dist/server.d.ts +18 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +31 -3
- package/dist/server.js.map +1 -1
- package/dist/translators/tool-helpers.d.ts.map +1 -1
- package/dist/translators/tool-helpers.js +3 -0
- package/dist/translators/tool-helpers.js.map +1 -1
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/BACKLOG.md +40 -21
- package/docs/REMOTE-CLIENTS.md +2 -2
- package/docs/TROUBLESHOOTING.md +1 -1
- package/docs/adr/0007-unified-cli-entry-and-bin-pruning.md +40 -0
- package/package.json +9 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/repl/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/repl/history.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,oDAAoD;AACpD,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAG,GAAG,WAAW;IAC7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,0DAA0D;IACvE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9B,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,OAA0B,EAAE,GAAG,GAAG,WAAW;IACzF,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CACX,QAAQ,EACR,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAChF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAA0B,EAAE,IAAY;IAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
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 function createLineEditor() {
|
|
11
|
+
return { text: "", caret: 0 };
|
|
12
|
+
}
|
|
13
|
+
const toArray = (text) => Array.from(text);
|
|
14
|
+
/**
|
|
15
|
+
* Hard cap on prompt size (code points). Image-drag/paste dumps from some
|
|
16
|
+
* terminals deliver megabytes of junk in one chunk; without a cap the editor
|
|
17
|
+
* renders a colossal wrapped box and ink goes down with it.
|
|
18
|
+
*/
|
|
19
|
+
export const MAX_PROMPT_CHARS = 20_000;
|
|
20
|
+
/**
|
|
21
|
+
* Strip control characters (C0 + DEL) from a raw input chunk. Terminal
|
|
22
|
+
* bracketed-paste wrappers (\x1b[200~ … \x1b[201~) and image-drop binary
|
|
23
|
+
* fragments must never reach editor state: every later render re-wraps the
|
|
24
|
+
* whole text, so smuggled escape bytes corrupt frames on all subsequent
|
|
25
|
+
* keystrokes. Printable text, emoji, and CJK pass through untouched.
|
|
26
|
+
*/
|
|
27
|
+
export function sanitizeInputChunk(chunk) {
|
|
28
|
+
let out = "";
|
|
29
|
+
for (const ch of chunk) {
|
|
30
|
+
const cp = ch.codePointAt(0);
|
|
31
|
+
if (cp < 0x20 || cp === 0x7f)
|
|
32
|
+
continue;
|
|
33
|
+
out += ch;
|
|
34
|
+
}
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Split a raw coalesced chunk into ops such that the caller issues ONE
|
|
39
|
+
* editor application per insert (not one per character). Applying per char
|
|
40
|
+
* used to mean one full ink rerender per char inside a single tick — a long
|
|
41
|
+
* paste blew through React's nested-update limit ("Maximum update depth
|
|
42
|
+
* exceeded") and killed the REPL.
|
|
43
|
+
*
|
|
44
|
+
* Escape sequences never reach here (the caller routes those chunks by their
|
|
45
|
+
* ink-parsed flags); control characters are dropped from runs by
|
|
46
|
+
* sanitizeInputChunk at plan time.
|
|
47
|
+
*/
|
|
48
|
+
export function planChunkOps(chunk) {
|
|
49
|
+
const isSemantic = (ch) => {
|
|
50
|
+
if (ch === "\r" || ch === "\n" || ch === "\t")
|
|
51
|
+
return true;
|
|
52
|
+
if (ch === "\x7f" || ch === "\b")
|
|
53
|
+
return true;
|
|
54
|
+
const cp = ch.codePointAt(0);
|
|
55
|
+
return cp >= 1 && cp <= 26;
|
|
56
|
+
};
|
|
57
|
+
const ops = [];
|
|
58
|
+
let run = "";
|
|
59
|
+
const flush = () => {
|
|
60
|
+
if (!run)
|
|
61
|
+
return;
|
|
62
|
+
const clean = sanitizeInputChunk(run);
|
|
63
|
+
if (clean)
|
|
64
|
+
ops.push({ kind: "insert", text: clean });
|
|
65
|
+
run = "";
|
|
66
|
+
};
|
|
67
|
+
for (const ch of chunk) {
|
|
68
|
+
if (isSemantic(ch)) {
|
|
69
|
+
flush();
|
|
70
|
+
ops.push({ kind: "char", ch });
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
run += ch;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
flush();
|
|
77
|
+
return ops;
|
|
78
|
+
}
|
|
79
|
+
/** Whole-line replacement (completion results), caret parked at the end. */
|
|
80
|
+
export function replaceText(text) {
|
|
81
|
+
return { text, caret: toArray(text).length };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Fold a pasted chunk into single-line text (ADR-0009). Bracketed-paste
|
|
85
|
+
* wrappers are stripped, CRLF/CR/LF runs and tabs collapse to single
|
|
86
|
+
* spaces, and remaining control bytes are sanitized away — a newline inside
|
|
87
|
+
* a paste must never keep its Enter semantics (pre-fix pastes fired
|
|
88
|
+
* line-by-line as separate prompts). Printable text, emoji, CJK pass
|
|
89
|
+
* through; the prompt-size cap still bounds the result.
|
|
90
|
+
*/
|
|
91
|
+
export function foldPasteChunk(chunk) {
|
|
92
|
+
// replaceAll with string needles: the wrappers contain ESC, which ESLint's
|
|
93
|
+
// no-control-regex (rightly) refuses inside a regex literal.
|
|
94
|
+
const stripped = chunk.replaceAll("\x1b[200~", "").replaceAll("\x1b[201~", "");
|
|
95
|
+
const folded = stripped.replace(/\r\n?/g, "\n").replace(/\n+/g, " ").replace(/\t/g, " ");
|
|
96
|
+
// Cap by CODE POINTS (Array.from), matching insertAtCaret's quota —
|
|
97
|
+
// String.slice counts UTF-16 units and would cleave a surrogate pair at
|
|
98
|
+
// the boundary on emoji-dense pastes.
|
|
99
|
+
const clean = Array.from(sanitizeInputChunk(folded)).slice(0, MAX_PROMPT_CHARS).join("");
|
|
100
|
+
// A whitespace-only paste (blank lines, stray wrappers) inserts nothing.
|
|
101
|
+
return clean.trim() ? clean : "";
|
|
102
|
+
}
|
|
103
|
+
export function insertAtCaret(editor, str) {
|
|
104
|
+
if (!str)
|
|
105
|
+
return editor;
|
|
106
|
+
// Silent tail-drop past the cap — the alternative is an unusable frame.
|
|
107
|
+
const allowed = Math.max(0, MAX_PROMPT_CHARS - toArray(editor.text).length);
|
|
108
|
+
const incoming = toArray(str).slice(0, allowed);
|
|
109
|
+
if (incoming.length === 0)
|
|
110
|
+
return editor;
|
|
111
|
+
const parts = toArray(editor.text);
|
|
112
|
+
parts.splice(editor.caret, 0, ...incoming);
|
|
113
|
+
return { text: parts.join(""), caret: editor.caret + incoming.length };
|
|
114
|
+
}
|
|
115
|
+
/** Remove the character BEFORE the caret (Backspace). */
|
|
116
|
+
export function backspaceAtCaret(editor) {
|
|
117
|
+
if (editor.caret === 0)
|
|
118
|
+
return editor;
|
|
119
|
+
const parts = toArray(editor.text);
|
|
120
|
+
parts.splice(editor.caret - 1, 1);
|
|
121
|
+
return { text: parts.join(""), caret: editor.caret - 1 };
|
|
122
|
+
}
|
|
123
|
+
/** Remove the character AT/after the caret (Forward Delete). */
|
|
124
|
+
export function deleteAtCaret(editor) {
|
|
125
|
+
const parts = toArray(editor.text);
|
|
126
|
+
if (editor.caret >= parts.length)
|
|
127
|
+
return editor;
|
|
128
|
+
parts.splice(editor.caret, 1);
|
|
129
|
+
return { ...editor, text: parts.join("") };
|
|
130
|
+
}
|
|
131
|
+
function move(editor, delta) {
|
|
132
|
+
const max = toArray(editor.text).length;
|
|
133
|
+
const caret = Math.min(max, Math.max(0, editor.caret + delta));
|
|
134
|
+
return caret === editor.caret ? editor : { ...editor, caret };
|
|
135
|
+
}
|
|
136
|
+
export function caretLeft(editor) {
|
|
137
|
+
return move(editor, -1);
|
|
138
|
+
}
|
|
139
|
+
export function caretRight(editor) {
|
|
140
|
+
return move(editor, 1);
|
|
141
|
+
}
|
|
142
|
+
export function caretToStart(editor) {
|
|
143
|
+
return { ...editor, caret: 0 };
|
|
144
|
+
}
|
|
145
|
+
export function caretToEnd(editor) {
|
|
146
|
+
return replaceText(editor.text);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resolve a Ctrl-B/F/A/E/U chord to its letter, or null when the key isn't
|
|
150
|
+
* one of our chords. Two delivery shapes exist and both must match:
|
|
151
|
+
* - single keypress: ink's parse-keypress normalizes `\x02` to name "b" plus
|
|
152
|
+
* the ctrl flag, so useInput hands us the LETTER;
|
|
153
|
+
* - control bytes coalesced into one multi-char data chunk get decomposed by
|
|
154
|
+
* InputLine's derivedKey() and arrive as the RAW byte (`"\x02"`).
|
|
155
|
+
*/
|
|
156
|
+
const CHORD_LETTERS = ["b", "f", "a", "e", "u"];
|
|
157
|
+
export function ctrlChord(ch) {
|
|
158
|
+
if (ch.length !== 1)
|
|
159
|
+
return null;
|
|
160
|
+
let letter;
|
|
161
|
+
if (ch >= "a" && ch <= "z") {
|
|
162
|
+
letter = ch;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const code = ch.charCodeAt(0); // \x01..\x1a — Ctrl-letter byte form
|
|
166
|
+
if (code < 1 || code > 26)
|
|
167
|
+
return null;
|
|
168
|
+
letter = String.fromCharCode(code + 96);
|
|
169
|
+
}
|
|
170
|
+
return CHORD_LETTERS.includes(letter)
|
|
171
|
+
? letter
|
|
172
|
+
: null;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=input-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-buffer.js","sourceRoot":"","sources":["../../src/repl/input-buffer.ts"],"names":[],"mappings":"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"}
|