xiaotime 0.5.0 → 0.5.3

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 (56) hide show
  1. package/dist/__tests__/ansi_tags.test.d.ts +9 -0
  2. package/dist/__tests__/ansi_tags.test.d.ts.map +1 -0
  3. package/dist/__tests__/ansi_tags.test.js +58 -0
  4. package/dist/__tests__/ansi_tags.test.js.map +1 -0
  5. package/dist/__tests__/paste_transform_submit.test.d.ts +2 -0
  6. package/dist/__tests__/paste_transform_submit.test.d.ts.map +1 -0
  7. package/dist/__tests__/paste_transform_submit.test.js +74 -0
  8. package/dist/__tests__/paste_transform_submit.test.js.map +1 -0
  9. package/dist/__tests__/session_match.test.d.ts +10 -0
  10. package/dist/__tests__/session_match.test.d.ts.map +1 -0
  11. package/dist/__tests__/session_match.test.js +55 -0
  12. package/dist/__tests__/session_match.test.js.map +1 -0
  13. package/dist/__tests__/tools.test.js +165 -0
  14. package/dist/__tests__/tools.test.js.map +1 -1
  15. package/dist/__tests__/ui_state_listener_lifecycle.test.d.ts +2 -0
  16. package/dist/__tests__/ui_state_listener_lifecycle.test.d.ts.map +1 -0
  17. package/dist/__tests__/ui_state_listener_lifecycle.test.js +152 -0
  18. package/dist/__tests__/ui_state_listener_lifecycle.test.js.map +1 -0
  19. package/dist/ansi_tags.d.ts +20 -0
  20. package/dist/ansi_tags.d.ts.map +1 -0
  21. package/dist/ansi_tags.js +38 -0
  22. package/dist/ansi_tags.js.map +1 -0
  23. package/dist/config.d.ts +1 -1
  24. package/dist/config.js +1 -1
  25. package/dist/display.d.ts +53 -22
  26. package/dist/display.d.ts.map +1 -1
  27. package/dist/display.js +773 -47
  28. package/dist/display.js.map +1 -1
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +34 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/session.d.ts.map +1 -1
  34. package/dist/session.js +5 -2
  35. package/dist/session.js.map +1 -1
  36. package/dist/session_match.d.ts +19 -0
  37. package/dist/session_match.d.ts.map +1 -0
  38. package/dist/session_match.js +9 -0
  39. package/dist/session_match.js.map +1 -0
  40. package/dist/sidebar.d.ts +84 -0
  41. package/dist/sidebar.d.ts.map +1 -0
  42. package/dist/sidebar.js +310 -0
  43. package/dist/sidebar.js.map +1 -0
  44. package/dist/tools.d.ts +4 -0
  45. package/dist/tools.d.ts.map +1 -1
  46. package/dist/tools.js +64 -49
  47. package/dist/tools.js.map +1 -1
  48. package/dist/ui_state.d.ts +41 -87
  49. package/dist/ui_state.d.ts.map +1 -1
  50. package/dist/ui_state.js +216 -162
  51. package/dist/ui_state.js.map +1 -1
  52. package/dist/ws.d.ts +10 -14
  53. package/dist/ws.d.ts.map +1 -1
  54. package/dist/ws.js +236 -119
  55. package/dist/ws.js.map +1 -1
  56. package/package.json +10 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../src/sidebar.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -10,6 +10,10 @@
10
10
  *
11
11
  * Read-only tools (`read_file`, `list_directory`, `git_status`,
12
12
  * `git_diff`) never gate (ISC-6509-006).
13
+ *
14
+ * SPRINT-CLI-BLESSED-SIDEBAR-1:
15
+ * - write_file: uses printFileDiff (styled diff box) instead of raw chalk createPatch
16
+ * - shell_command, git_commit: uses printApprovalPrompt (yellow bordered box)
13
17
  */
14
18
  import type { SessionUI } from "./ui_state.js";
15
19
  export interface ToolCall {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiBD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACrF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE,iBAAiB,EAiF5C,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,QAExC;AA2ED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,UAAU,CAAC,CA2KrB"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiBD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACrF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE,iBAAiB,EAiF5C,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,QAExC;AAsED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,SAAS,GACZ,OAAO,CAAC,UAAU,CAAC,CAkMrB"}
package/dist/tools.js CHANGED
@@ -11,6 +11,10 @@
11
11
  *
12
12
  * Read-only tools (`read_file`, `list_directory`, `git_status`,
13
13
  * `git_diff`) never gate (ISC-6509-006).
14
+ *
15
+ * SPRINT-CLI-BLESSED-SIDEBAR-1:
16
+ * - write_file: uses printFileDiff (styled diff box) instead of raw chalk createPatch
17
+ * - shell_command, git_commit: uses printApprovalPrompt (yellow bordered box)
14
18
  */
15
19
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
20
  if (k2 === undefined) k2 = k;
@@ -55,8 +59,8 @@ exports.executeTool = executeTool;
55
59
  const fs = __importStar(require("fs"));
56
60
  const path = __importStar(require("path"));
57
61
  const child_process = __importStar(require("child_process"));
58
- const diff_1 = require("diff");
59
62
  const chalk_1 = __importDefault(require("chalk"));
63
+ const display_js_1 = require("./display.js");
60
64
  const settings_js_1 = require("./settings.js");
61
65
  exports.TOOL_MANIFEST = [
62
66
  {
@@ -154,34 +158,26 @@ function resolvePath(p) {
154
158
  * SessionUI menu; if the user chose "Run and don't ask again",
155
159
  * persists the derived pattern.
156
160
  *
157
- * The header is printed in both paths (allowlist hit + menu prompt)
158
- * so the user always sees what's about to run. The `(auto-approved)`
159
- * indicator is appended to the caller's post-execute status line
160
- * not added by this helper so tool-specific status text
161
- * (`✓ Written` / `✓ Ran` / `✓ Committed`) stays where the tool
162
- * defines it.
161
+ * SPRINT-CLI-BLESSED-SIDEBAR-1: header is now a plain string passed
162
+ * to printApprovalPrompt() by each tool case _gateApproval no longer
163
+ * writes raw chalk output itself. The allowlist-hit path still writes
164
+ * via printApprovalPrompt so the styled yellow box appears in both paths.
163
165
  */
164
- async function _gateApproval(ui, tool, input, header) {
166
+ async function _gateApproval(ui, tool, input, title, body) {
165
167
  const allowlist = (0, settings_js_1.loadAllowlist)();
166
168
  const match = (0, settings_js_1.matchAllowlist)(tool, input, allowlist);
169
+ // Always show the styled approval box — auto-approved or not
170
+ (0, display_js_1.printApprovalPrompt)(title, body);
167
171
  if (match) {
168
- // Print the header so the user sees what's about to run, then
169
- // short-circuit the menu.
170
- process.stdout.write(header);
171
172
  return { approved: true, autoApproved: true };
172
173
  }
173
- const result = await ui.promptApprovalMenu(header);
174
+ const result = await ui.promptApprovalMenu("");
174
175
  if (!result.approved) {
175
176
  return { approved: false, rejectReason: result.rejectReason };
176
177
  }
177
178
  if (result.allowlistRequested) {
178
179
  const pattern = (0, settings_js_1.derivePattern)(tool, input);
179
180
  if (pattern !== null) {
180
- // #6538 CR-r1: wrap the persist call so a disk-full /
181
- // permission-denied / chmod failure doesn't abort the tool
182
- // run. The user already approved the action; the allowlist
183
- // write is a UX convenience, not a correctness gate. Log a
184
- // yellow warning to stderr so the failure isn't silent.
185
181
  try {
186
182
  (0, settings_js_1.appendAllowlist)({ tool, pattern });
187
183
  process.stdout.write(chalk_1.default.dim(` (allowlist updated: ${tool} → ${pattern})\n`));
@@ -218,22 +214,15 @@ async function executeTool(call, ui) {
218
214
  case "write_file": {
219
215
  const filePath = resolvePath(input.path);
220
216
  const newContent = input.content;
221
- let oldContent = "";
217
+ let oldContent = null;
222
218
  if (fs.existsSync(filePath)) {
223
219
  oldContent = fs.readFileSync(filePath, "utf-8");
224
220
  }
225
- const patch = (0, diff_1.createPatch)(filePath, oldContent, newContent);
226
- const lines = patch.split("\n").slice(4); // skip header
227
- const colored = lines.map((l) => {
228
- if (l.startsWith("+"))
229
- return chalk_1.default.green(l);
230
- if (l.startsWith("-"))
231
- return chalk_1.default.red(l);
232
- return chalk_1.default.dim(l);
233
- });
234
- const header = chalk_1.default.yellow(`\n[write_file] ${filePath}\n`) +
235
- colored.join("\n") + "\n";
236
- const gate = await _gateApproval(ui, "write_file", input, header);
221
+ // Show styled diff box before the approval gate
222
+ (0, display_js_1.printFileDiff)(filePath, oldContent, newContent);
223
+ const gate = await _gateApproval(ui, "write_file", input, `write_file ${filePath}`, oldContent === null
224
+ ? `New file — ${newContent.split("\n").length} lines`
225
+ : `Modifying existing file`);
237
226
  if (!gate.approved) {
238
227
  const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
239
228
  return {
@@ -244,37 +233,54 @@ async function executeTool(call, ui) {
244
233
  }
245
234
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
246
235
  fs.writeFileSync(filePath, newContent, "utf-8");
247
- console.log(chalk_1.default.green(` ✓ Written`) + _approvedSuffix(gate));
236
+ console.log(chalk_1.default.hex("#a6e3a1")(" ✓ Written") + _approvedSuffix(gate));
248
237
  return { tool_use_id, content: `File written: ${filePath}`, is_error: false };
249
238
  }
250
239
  case "list_directory": {
251
240
  const dirPath = resolvePath(input.path);
252
241
  const pattern = input.pattern;
253
242
  const recursive = input.recursive;
254
- let entries = [];
243
+ // SPRINT-CLI-INPUT-AND-TOOL-HARDENING-1 (#7299) PR1 — bounded
244
+ // result size.
245
+ const cap = _listDirectoryMax();
246
+ let entries;
247
+ let truncated = false;
255
248
  if (recursive) {
256
- entries = listRecursive(dirPath, pattern);
249
+ entries = listRecursive(dirPath, pattern, cap + 1);
250
+ if (entries.length > cap) {
251
+ entries = entries.slice(0, cap);
252
+ truncated = true;
253
+ }
257
254
  }
258
255
  else {
259
- entries = fs.readdirSync(dirPath).map((e) => {
256
+ let raw = fs.readdirSync(dirPath).map((e) => {
260
257
  const full = path.join(dirPath, e);
261
258
  const stat = fs.statSync(full);
262
259
  return stat.isDirectory() ? `${e}/` : e;
263
260
  });
264
261
  if (pattern) {
265
262
  const regex = globToRegex(pattern);
266
- entries = entries.filter((e) => regex.test(e));
263
+ raw = raw.filter((e) => regex.test(e));
264
+ }
265
+ if (raw.length > cap) {
266
+ entries = raw.slice(0, cap);
267
+ truncated = true;
268
+ }
269
+ else {
270
+ entries = raw;
267
271
  }
268
272
  }
269
- console.log(chalk_1.default.dim(` [list_directory] ${dirPath} (${entries.length} entries)`));
270
- return { tool_use_id, content: entries.join("\n"), is_error: false };
273
+ const truncMarker = truncated
274
+ ? `\n... (truncated to ${cap}; more entries exist narrow with a pattern or list a subdirectory)`
275
+ : "";
276
+ const truncLabel = truncated ? ` (capped at ${cap})` : "";
277
+ console.log(chalk_1.default.dim(` [list_directory] ${dirPath} (${entries.length} entries${truncLabel})`));
278
+ return { tool_use_id, content: entries.join("\n") + truncMarker, is_error: false };
271
279
  }
272
280
  case "shell_command": {
273
281
  const command = input.command;
274
282
  const cwd = input.cwd ? resolvePath(input.cwd) : sessionCwd;
275
- const header = chalk_1.default.yellow(`\n[shell_command] ${command}\n`) +
276
- chalk_1.default.dim(` cwd: ${cwd}\n`);
277
- const gate = await _gateApproval(ui, "shell_command", input, header);
283
+ const gate = await _gateApproval(ui, "shell_command", input, `shell_command`, `${command}\ncwd: ${cwd}`);
278
284
  if (!gate.approved) {
279
285
  const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
280
286
  return {
@@ -289,7 +295,7 @@ async function executeTool(call, ui) {
289
295
  stdio: ["pipe", "pipe", "pipe"],
290
296
  timeout: 60000,
291
297
  });
292
- console.log(chalk_1.default.green(` ✓ Ran`) + _approvedSuffix(gate));
298
+ console.log(chalk_1.default.hex("#a6e3a1")(" ✓ Ran") + _approvedSuffix(gate));
293
299
  console.log(chalk_1.default.dim(result.slice(0, 500)));
294
300
  return { tool_use_id, content: result, is_error: false };
295
301
  }
@@ -315,15 +321,11 @@ async function executeTool(call, ui) {
315
321
  }
316
322
  case "git_commit": {
317
323
  const message = input.message;
318
- // Show what's staged
319
324
  const staged = child_process.execSync("git diff --staged --stat", {
320
325
  cwd: sessionCwd,
321
326
  encoding: "utf-8",
322
327
  });
323
- const header = chalk_1.default.yellow(`\n[git_commit]\n`) +
324
- chalk_1.default.dim(`Staged:\n${staged}\n`) +
325
- chalk_1.default.dim(`Message: ${message}\n`);
326
- const gate = await _gateApproval(ui, "git_commit", input, header);
328
+ const gate = await _gateApproval(ui, "git_commit", input, `git_commit`, `Message: ${message}\n\nStaged:\n${staged}`);
327
329
  if (!gate.approved) {
328
330
  const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
329
331
  return {
@@ -333,7 +335,7 @@ async function executeTool(call, ui) {
333
335
  };
334
336
  }
335
337
  const out = child_process.execSync(`git commit -m ${JSON.stringify(message)}`, { cwd: sessionCwd, encoding: "utf-8" });
336
- console.log(chalk_1.default.green(` ✓ Committed`) + _approvedSuffix(gate));
338
+ console.log(chalk_1.default.hex("#a6e3a1")(" ✓ Committed") + _approvedSuffix(gate));
337
339
  return { tool_use_id, content: out, is_error: false };
338
340
  }
339
341
  default:
@@ -349,7 +351,7 @@ async function executeTool(call, ui) {
349
351
  return { tool_use_id, content: msg, is_error: true };
350
352
  }
351
353
  }
352
- function listRecursive(dir, pattern) {
354
+ function listRecursive(dir, pattern, cap) {
353
355
  const results = [];
354
356
  const regex = pattern ? globToRegex(pattern) : null;
355
357
  function walk(current, rel) {
@@ -361,18 +363,31 @@ function listRecursive(dir, pattern) {
361
363
  const relPath = path.join(rel, entry);
362
364
  const stat = fs.statSync(full);
363
365
  if (stat.isDirectory()) {
364
- walk(full, relPath + "/");
366
+ if (walk(full, relPath + "/"))
367
+ return true;
365
368
  }
366
369
  else {
367
370
  if (!regex || regex.test(relPath)) {
368
371
  results.push(relPath);
372
+ if (cap !== undefined && results.length >= cap)
373
+ return true;
369
374
  }
370
375
  }
371
376
  }
377
+ return false;
372
378
  }
373
379
  walk(dir, "");
374
380
  return results;
375
381
  }
382
+ function _listDirectoryMax() {
383
+ const raw = process.env.XIAOTIME_LIST_DIRECTORY_MAX;
384
+ if (raw) {
385
+ const parsed = Number.parseInt(raw, 10);
386
+ if (Number.isInteger(parsed) && parsed > 0)
387
+ return parsed;
388
+ }
389
+ return 500;
390
+ }
376
391
  function globToRegex(glob) {
377
392
  const escaped = glob
378
393
  .replace(/[.+^${}()|[\]\\]/g, "\\$&")
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,39 @@
1
1
  /**
2
2
  * Session-UI state machine for the xiaotime dev CLI.
3
3
  *
4
- * SPRINT-CLI-STATE-MACHINE-1 (#6163 / closes #6127) shipped the original
5
- * state machine + raw-mode approval prompt. That fix eliminated the
6
- * defaults-to-N half of the "yy" double-echo bug but the visible-yy half
7
- * persisted because `readline.createInterface({ terminal: true })` attaches
8
- * its own keypress handler to stdin that echoes characters via its own
9
- * stdout writes; `rl.pause()` stops `line` events but does NOT detach that
10
- * echo path, and `setRawMode(true)` only suppresses kernel-level echo, not
11
- * readline's.
4
+ * SPRINT-CLI-STATE-MACHINE-1 (#6163 / closes #6127)
5
+ * SPRINT-CLI-APPROVAL-MENU-1 (#6509)
6
+ * SPRINT-CLI-INPUT-AND-TOOL-HARDENING-1 (#7299) PR2
7
+ * SPRINT-CLI-PASTE-MODE-4 push-based paste interception.
12
8
  *
13
- * SPRINT-CLI-APPROVAL-MENU-1 (#6509) replaces `promptApproval`'s `[y/N]`
14
- * one-shot prompt with `promptApprovalMenu` — a three-option numbered menu
15
- * (Run / Run + allowlist / Reject + feedback). The rl is explicitly
16
- * **closed and recreated** around the menu render so its keypress echo
17
- * physically can't fire (the rl object is gone for the duration of the
18
- * menu). Persistent close listeners survive the recreation via
19
- * `onRlClose()` — callers that need a stable close hook register through
20
- * that instead of `getRl().on("close", ...)`.
9
+ * Two strategies run together:
21
10
  *
22
- * The state machine has four states:
11
+ * 1. Bracketed paste (ESC[200~ / ESC[201~) — the clean path. When the
12
+ * terminal sends these markers the PasteTransform buffers everything
13
+ * between them, collapses newlines, and emits a single block. Readline
14
+ * never sees a raw newline, so it cannot auto-submit.
23
15
  *
24
- * IDLE at the `you:` prompt, awaiting user input.
25
- * GENERATING — model is streaming tokens (or about to). Spinner.
26
- * RUNNING_TOOL a server-side tool is running. Spinner.
27
- * AWAITING_APPROVAL user must navigate the approval menu for a
28
- * client-side tool. Main rl is closed; raw stdin
29
- * captures keystrokes.
16
+ * 2. Rapid-chunk coalescing — the fallback. When bracketed paste mode is
17
+ * not supported by the terminal (Termius, older SSH clients) chunks
18
+ * arriving with gaps < RAPID_PASTE_GAP_MS are held in a buffer.
19
+ * After RAPID_PASTE_IDLE_MS of silence the buffer is flushed as a
20
+ * single block with internal newlines collapsed.
30
21
  *
31
- * The WS handler in `ws.ts` is the sole driver. Transitions:
22
+ * Root-cause fix (PASTE-MODE-4): readline must NOT receive the
23
+ * PasteTransform stream directly as `input` with `terminal: true`.
24
+ * When readline sees a Transform as input in terminal mode it internally
25
+ * calls readline.emitKeypressEvents() on that stream, which installs its
26
+ * own `data` listener that fires keypress events — including \r/\n — before
27
+ * our _transform() can intercept them.
32
28
  *
33
- * IDLE -- user line received -> GENERATING
34
- * GENERATING -- text_delta -> GENERATING (refresh)
35
- * GENERATING -- tool_call (server) -> RUNNING_TOOL
36
- * GENERATING -- tool_call (client+approval) -> AWAITING_APPROVAL
37
- * AWAITING_APPROVAL -- menu selection -> RUNNING_TOOL
38
- * RUNNING_TOOL -- tool_result sent -> GENERATING
39
- * GENERATING -- message_stop -> IDLE
40
- * ANY -- error -> IDLE
29
+ * Solution: push-based forwarding. PasteTransform processes chunks from
30
+ * stdin and pushes safe output into a PassThrough. Readline reads from the
31
+ * PassThrough. readline.emitKeypressEvents() is called on the PassThrough,
32
+ * which only ever sees already-safe data — newlines inside paste blocks have
33
+ * already been collapsed to spaces.
41
34
  */
42
35
  import * as readline from "readline";
36
+ import { Transform, PassThrough } from "stream";
43
37
  export type CliState = "idle" | "generating" | "running_tool" | "awaiting_approval";
44
38
  export type ApprovalMenuResult = {
45
39
  approved: true;
@@ -48,6 +42,19 @@ export type ApprovalMenuResult = {
48
42
  approved: false;
49
43
  rejectReason: string;
50
44
  };
45
+ export declare class PasteTransform extends Transform {
46
+ private _inBracketedPaste;
47
+ private _bracketedBuf;
48
+ private _rapidBuf;
49
+ private _lastChunkAt;
50
+ private _rapidTimer;
51
+ readonly sink: PassThrough;
52
+ constructor();
53
+ _transform(chunk: Buffer, _enc: string, cb: () => void): void;
54
+ private _scheduleRapidFlush;
55
+ private _flushRapidBuf;
56
+ _flush(cb: () => void): void;
57
+ }
51
58
  export declare class SessionUI {
52
59
  private state;
53
60
  private spinnerTimer;
@@ -57,67 +64,18 @@ export declare class SessionUI {
57
64
  private spinnerLineDirty;
58
65
  private rl;
59
66
  private lineListener;
60
- /**
61
- * Close-listener callbacks that should survive rl recreations. The
62
- * approval-menu path closes + recreates `rl` to physically detach
63
- * readline's keypress echo. ws.ts registers its "Session paused"
64
- * resume hint here so it stays attached across recreations.
65
- */
66
67
  private closeListeners;
68
+ private _pasteTransform;
67
69
  constructor();
68
- /** Hand the underlying readline to callers that need it for cleanup. */
69
70
  getRl(): readline.Interface;
70
- /**
71
- * Register a callback to fire when the rl reports a non-suppressed
72
- * `close` event (the only one users observe is Ctrl+C at the main
73
- * prompt — close-during-approval is suppressed via removeAllListeners
74
- * before `rl.close()`). Callbacks are re-attached on every rl
75
- * recreation so they outlive `promptApprovalMenu`.
76
- */
77
71
  onRlClose(listener: () => void): void;
78
- /** Set the explicit current state. Drives spinner start/stop. */
79
72
  setState(next: CliState): void;
80
73
  getState(): CliState;
81
- /** Wait for one line of user input on the main rl. */
82
74
  promptLine(): Promise<string>;
83
- /**
84
- * Three-option numbered approval menu. Replaces the pre-#6509
85
- * `[y/N]` one-shot prompt.
86
- *
87
- * Visual:
88
- * ❯ 1. Run
89
- * 2. Run and don't ask again
90
- * 3. Reject and tell Claude why
91
- * (1-3, ↑↓ Enter, Esc to reject)
92
- *
93
- * Controls:
94
- * - Number key 1/2/3 — one-shot select
95
- * - Arrow Up/Down — move focus
96
- * - Enter — select focused
97
- * - Esc — equivalent to option 3 (reject)
98
- * - Ctrl+C — reject + propagate SIGINT (cancels session)
99
- *
100
- * The rl is closed before the menu render and recreated after. This
101
- * physically removes readline's keypress echo from stdin for the
102
- * duration of the menu — the bug fix the #6163 patch attempted via
103
- * `rl.pause()` (which only stops `line` events, not the keypress
104
- * echo). Persistent close listeners are stashed in
105
- * `this.closeListeners` and re-attached on recreate; the close event
106
- * triggered by THIS close() is suppressed via removeAllListeners
107
- * before the call so it doesn't fire the "Session paused" hint.
108
- *
109
- * For option 3, after the menu resolves the recreated rl prompts
110
- * once for a free-form rejection reason (line-mode). Empty input is
111
- * allowed.
112
- *
113
- * The returned `allowlistRequested: true` (option 2) is a signal to
114
- * the caller — PR2 wires it to write the pattern to
115
- * `~/.xiaotime/settings.json`. PR1 callers may ignore it.
116
- */
117
75
  promptApprovalMenu(toolHeader?: string): Promise<ApprovalMenuResult>;
76
+ private _destroyPasteTransform;
118
77
  private _makeRl;
119
78
  private _renderMenuAndGetSelection;
120
- /** Total lines the menu occupies: one per option + one hint line. */
121
79
  private _menuLineCount;
122
80
  private _renderMenu;
123
81
  private _rerenderMenu;
@@ -125,10 +83,6 @@ export declare class SessionUI {
125
83
  private startSpinner;
126
84
  private renderSpinnerFrame;
127
85
  private stopSpinner;
128
- /** Called by the text_delta renderer the first time a real model
129
- * token arrives during a `generating` state. Clears the spinner so
130
- * the token prints cleanly, but leaves the state at `generating`
131
- * (token streaming continues without re-spinning). */
132
86
  onFirstToken(): void;
133
87
  }
134
88
  //# sourceMappingURL=ui_state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui_state.d.ts","sourceRoot":"","sources":["../src/ui_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,YAAY,GACZ,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAa9C,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAM;IAK1B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,YAAY,CAAyC;IAC7D;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAyB;;IAM/C,wEAAwE;IACxE,KAAK,IAAI,QAAQ,CAAC,SAAS;IAI3B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKrC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAoB9B,QAAQ,IAAI,QAAQ;IAIpB,sDAAsD;IACtD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAe7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgD1E,OAAO,CAAC,OAAO;YAYD,0BAA0B;IAmIxC,qEAAqE;IACrE,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW;IAYnB;;;0DAGsD;IACtD,YAAY,IAAI,IAAI;CAUrB"}
1
+ {"version":3,"file":"ui_state.d.ts","sourceRoot":"","sources":["../src/ui_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGhD,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,YAAY,GACZ,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAiC9C,qBAAa,cAAe,SAAQ,SAAS;IAE3C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAM;IAG3B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAA+B;IAGlD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;;IAS3B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAkE7D,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,cAAc;IActB,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAW7B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,cAAc,CAAyB;IAE/C,OAAO,CAAC,eAAe,CAA+B;;IAUtD,KAAK,IAAI,QAAQ,CAAC,SAAS;IAI3B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAgB9B,QAAQ,IAAI,QAAQ;IAIpB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoC1E,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,OAAO;YAqCD,0BAA0B;IA4ExC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,WAAW;IAYnB,YAAY,IAAI,IAAI;CAWrB"}