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.
Files changed (108) hide show
  1. package/README.md +144 -32
  2. package/dist/backend/client.d.ts.map +1 -1
  3. package/dist/backend/client.js +10 -0
  4. package/dist/backend/client.js.map +1 -1
  5. package/dist/backend/listener.d.ts.map +1 -1
  6. package/dist/backend/listener.js +6 -5
  7. package/dist/backend/listener.js.map +1 -1
  8. package/dist/backend/resolve.d.ts.map +1 -1
  9. package/dist/backend/resolve.js +35 -1
  10. package/dist/backend/resolve.js.map +1 -1
  11. package/dist/bin/hub.d.ts +3 -3
  12. package/dist/bin/hub.d.ts.map +1 -1
  13. package/dist/bin/hub.js +22 -12
  14. package/dist/bin/hub.js.map +1 -1
  15. package/dist/bin/quota.d.ts +14 -6
  16. package/dist/bin/quota.d.ts.map +1 -1
  17. package/dist/bin/quota.js +27 -19
  18. package/dist/bin/quota.js.map +1 -1
  19. package/dist/cli.d.ts +38 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +129 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/config/runtime-model.d.ts +10 -10
  24. package/dist/config/runtime-model.js +10 -10
  25. package/dist/handlers/account.d.ts +1 -1
  26. package/dist/handlers/account.js +1 -1
  27. package/dist/handlers/dispatch.d.ts.map +1 -1
  28. package/dist/handlers/dispatch.js +42 -36
  29. package/dist/handlers/dispatch.js.map +1 -1
  30. package/dist/handlers/io.d.ts.map +1 -1
  31. package/dist/handlers/io.js +19 -13
  32. package/dist/handlers/io.js.map +1 -1
  33. package/dist/handlers/session.d.ts +58 -4
  34. package/dist/handlers/session.d.ts.map +1 -1
  35. package/dist/handlers/session.js +288 -56
  36. package/dist/handlers/session.js.map +1 -1
  37. package/dist/index.d.ts +4 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +27 -8
  40. package/dist/index.js.map +1 -1
  41. package/dist/interaction/adapter.d.ts +1 -0
  42. package/dist/interaction/adapter.d.ts.map +1 -1
  43. package/dist/interaction/adapter.js +5 -1
  44. package/dist/interaction/adapter.js.map +1 -1
  45. package/dist/quota/color.d.ts +4 -4
  46. package/dist/quota/color.d.ts.map +1 -1
  47. package/dist/quota/color.js +7 -5
  48. package/dist/quota/color.js.map +1 -1
  49. package/dist/quota/combined.d.ts +1 -1
  50. package/dist/quota/combined.js +4 -4
  51. package/dist/quota/combined.js.map +1 -1
  52. package/dist/quota/format.d.ts +1 -1
  53. package/dist/quota/opencode-go/format.d.ts.map +1 -1
  54. package/dist/quota/opencode-go/format.js +5 -1
  55. package/dist/quota/opencode-go/format.js.map +1 -1
  56. package/dist/quota/opencode-go/index.d.ts +1 -1
  57. package/dist/quota/opencode-go/index.js +1 -1
  58. package/dist/quota/opencode-go/types.d.ts +1 -1
  59. package/dist/quota/opencode-go/types.js +1 -1
  60. package/dist/quota/rounding.d.ts +8 -0
  61. package/dist/quota/rounding.d.ts.map +1 -0
  62. package/dist/quota/rounding.js +10 -0
  63. package/dist/quota/rounding.js.map +1 -0
  64. package/dist/remote/config.d.ts +1 -1
  65. package/dist/remote/config.d.ts.map +1 -1
  66. package/dist/remote/config.js +1 -1
  67. package/dist/remote/config.js.map +1 -1
  68. package/dist/remote/endpoint.d.ts +1 -1
  69. package/dist/remote/endpoint.js +1 -1
  70. package/dist/remote/hub-server.d.ts +1 -1
  71. package/dist/remote/hub-server.js +1 -1
  72. package/dist/repl/App.d.ts +108 -0
  73. package/dist/repl/App.d.ts.map +1 -0
  74. package/dist/repl/App.js +706 -0
  75. package/dist/repl/App.js.map +1 -0
  76. package/dist/repl/history.d.ts +25 -0
  77. package/dist/repl/history.d.ts.map +1 -0
  78. package/dist/repl/history.js +73 -0
  79. package/dist/repl/history.js.map +1 -0
  80. package/dist/repl/input-buffer.d.ts +77 -0
  81. package/dist/repl/input-buffer.d.ts.map +1 -0
  82. package/dist/repl/input-buffer.js +174 -0
  83. package/dist/repl/input-buffer.js.map +1 -0
  84. package/dist/repl/model.d.ts +275 -0
  85. package/dist/repl/model.d.ts.map +1 -0
  86. package/dist/repl/model.js +596 -0
  87. package/dist/repl/model.js.map +1 -0
  88. package/dist/repl/mouse.d.ts +49 -0
  89. package/dist/repl/mouse.d.ts.map +1 -0
  90. package/dist/repl/mouse.js +165 -0
  91. package/dist/repl/mouse.js.map +1 -0
  92. package/dist/repl/run.d.ts +12 -0
  93. package/dist/repl/run.d.ts.map +1 -0
  94. package/dist/repl/run.js +902 -0
  95. package/dist/repl/run.js.map +1 -0
  96. package/dist/server.d.ts +18 -0
  97. package/dist/server.d.ts.map +1 -1
  98. package/dist/server.js +31 -3
  99. package/dist/server.js.map +1 -1
  100. package/dist/translators/tool-helpers.d.ts.map +1 -1
  101. package/dist/translators/tool-helpers.js +3 -0
  102. package/dist/translators/tool-helpers.js.map +1 -1
  103. package/docs/ARCHITECTURE.md +1 -1
  104. package/docs/BACKLOG.md +40 -21
  105. package/docs/REMOTE-CLIENTS.md +2 -2
  106. package/docs/TROUBLESHOOTING.md +1 -1
  107. package/docs/adr/0007-unified-cli-entry-and-bin-pruning.md +40 -0
  108. 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":"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"}
@@ -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":"AAAA;;;;;;;;GAQG;AASH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAC9B,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI;YAAE,SAAS;QACvC,GAAG,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAUD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAW,EAAE;QACzC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,GAAG,GAAG,EAAE,CAAC;IACX,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,2EAA2E;IAC3E,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzF,oEAAoE;IACpE,wEAAwE;IACxE,sCAAsC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzF,yEAAyE;IACzE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAkB,EAAE,GAAW;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,MAAM,CAAC;IACxB,wEAAwE;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;AACzE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAChD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,IAAI,CAAC,MAAkB,EAAE,KAAa;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAkB;IAC1C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEhD,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,MAAc,CAAC;IACnB,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;QAC3B,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;QACpE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAQ,aAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjD,CAAC,CAAE,MAAsC;QACzC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC"}