mindweave 3.3.0 → 3.4.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 (131) hide show
  1. package/dist/alternator/chassis/lsp.js +1 -1
  2. package/dist/alternator/chassis/lsp.js.map +1 -1
  3. package/dist/alternator/chassis/provision.js +2 -2
  4. package/dist/alternator/chassis/provision.js.map +1 -1
  5. package/dist/cli/App.js +221 -57
  6. package/dist/cli/App.js.map +1 -1
  7. package/dist/cli/attachments.js +2 -1
  8. package/dist/cli/attachments.js.map +1 -1
  9. package/dist/cli/blockHeights.js +14 -0
  10. package/dist/cli/blockHeights.js.map +1 -1
  11. package/dist/cli/components/BlockView.js +9 -1
  12. package/dist/cli/components/BlockView.js.map +1 -1
  13. package/dist/cli/components/EditGroup.js +50 -0
  14. package/dist/cli/components/EditGroup.js.map +1 -0
  15. package/dist/cli/components/FadeText.js +47 -0
  16. package/dist/cli/components/FadeText.js.map +1 -0
  17. package/dist/cli/components/PromptInput.js +26 -4
  18. package/dist/cli/components/PromptInput.js.map +1 -1
  19. package/dist/cli/components/ToolLine.js +5 -3
  20. package/dist/cli/components/ToolLine.js.map +1 -1
  21. package/dist/cli/components/WorkGroup.js +34 -23
  22. package/dist/cli/components/WorkGroup.js.map +1 -1
  23. package/dist/cli/diffRows.js +16 -0
  24. package/dist/cli/diffRows.js.map +1 -1
  25. package/dist/cli/editGroup.js +122 -0
  26. package/dist/cli/editGroup.js.map +1 -0
  27. package/dist/cli/entrance.js +95 -0
  28. package/dist/cli/entrance.js.map +1 -0
  29. package/dist/cli/framebuffer/parse.js +99 -16
  30. package/dist/cli/framebuffer/parse.js.map +1 -1
  31. package/dist/cli/framebuffer/writer.js +46 -28
  32. package/dist/cli/framebuffer/writer.js.map +1 -1
  33. package/dist/cli/help.js +6 -0
  34. package/dist/cli/help.js.map +1 -1
  35. package/dist/cli/inkSpeedLoader.js +9 -5
  36. package/dist/cli/inkSpeedLoader.js.map +1 -1
  37. package/dist/cli/inkThrottlePatch.js +43 -0
  38. package/dist/cli/inkThrottlePatch.js.map +1 -0
  39. package/dist/cli/screenMode.js +8 -1
  40. package/dist/cli/screenMode.js.map +1 -1
  41. package/dist/cli/sessionCarry.js.map +1 -1
  42. package/dist/cli/toolDisplay.js +2 -2
  43. package/dist/cli/toolDisplay.js.map +1 -1
  44. package/dist/cli/transcript.js +67 -14
  45. package/dist/cli/transcript.js.map +1 -1
  46. package/dist/cli/workLines.js +27 -4
  47. package/dist/cli/workLines.js.map +1 -1
  48. package/dist/core/turnRunner.js +98 -7
  49. package/dist/core/turnRunner.js.map +1 -1
  50. package/dist/drivers/anthropic/client.js +16 -3
  51. package/dist/drivers/anthropic/client.js.map +1 -1
  52. package/dist/drivers/anthropic/manifest.js +10 -0
  53. package/dist/drivers/anthropic/manifest.js.map +1 -1
  54. package/dist/drivers/glm/manifest.js +9 -0
  55. package/dist/drivers/glm/manifest.js.map +1 -1
  56. package/dist/drivers/groq/manifest.js +5 -0
  57. package/dist/drivers/groq/manifest.js.map +1 -1
  58. package/dist/drivers/mistral/client.js +3 -0
  59. package/dist/drivers/mistral/client.js.map +1 -1
  60. package/dist/drivers/openai/client.js +3 -0
  61. package/dist/drivers/openai/client.js.map +1 -1
  62. package/dist/drivers/openai/manifest.js +5 -0
  63. package/dist/drivers/openai/manifest.js.map +1 -1
  64. package/dist/drivers/openaiCompat/wire.js +7 -2
  65. package/dist/drivers/openaiCompat/wire.js.map +1 -1
  66. package/dist/drivers/openrouter/client.js +6 -0
  67. package/dist/drivers/openrouter/client.js.map +1 -1
  68. package/dist/drivers/xai/client.js +9 -0
  69. package/dist/drivers/xai/client.js.map +1 -1
  70. package/dist/dynamo/cacheBreak.js +8 -5
  71. package/dist/dynamo/cacheBreak.js.map +1 -1
  72. package/dist/dynamo/contextWindow.js +64 -12
  73. package/dist/dynamo/contextWindow.js.map +1 -1
  74. package/dist/dynamo/engine.js +132 -66
  75. package/dist/dynamo/engine.js.map +1 -1
  76. package/dist/dynamo/prompt.js +8 -2
  77. package/dist/dynamo/prompt.js.map +1 -1
  78. package/dist/dynamo/toolAliases.js +73 -0
  79. package/dist/dynamo/toolAliases.js.map +1 -0
  80. package/dist/dynamo/toolArgs.js +82 -0
  81. package/dist/dynamo/toolArgs.js.map +1 -0
  82. package/dist/dynamo/verify.js +16 -2
  83. package/dist/dynamo/verify.js.map +1 -1
  84. package/dist/memory/clearedArchive.js +2 -20
  85. package/dist/memory/clearedArchive.js.map +1 -1
  86. package/dist/memory/compaction.js +3 -1
  87. package/dist/memory/compaction.js.map +1 -1
  88. package/dist/memory/localCommand.js +30 -3
  89. package/dist/memory/localCommand.js.map +1 -1
  90. package/dist/memory/presence.js +44 -0
  91. package/dist/memory/presence.js.map +1 -1
  92. package/dist/memory/session.js +4 -0
  93. package/dist/memory/session.js.map +1 -1
  94. package/dist/memory/store.js +27 -4
  95. package/dist/memory/store.js.map +1 -1
  96. package/dist/memory/types.js.map +1 -1
  97. package/dist/memory/userNotes.js +17 -0
  98. package/dist/memory/userNotes.js.map +1 -0
  99. package/dist/tools/backgroundShells.js +38 -7
  100. package/dist/tools/backgroundShells.js.map +1 -1
  101. package/dist/tools/deferredNative.js +24 -0
  102. package/dist/tools/deferredNative.js.map +1 -1
  103. package/dist/tools/edit.js +18 -3
  104. package/dist/tools/edit.js.map +1 -1
  105. package/dist/tools/editCore.js +107 -1
  106. package/dist/tools/editCore.js.map +1 -1
  107. package/dist/tools/mcpSearch.js +8 -2
  108. package/dist/tools/mcpSearch.js.map +1 -1
  109. package/dist/tools/readFile.js +16 -1
  110. package/dist/tools/readFile.js.map +1 -1
  111. package/dist/tools/rebuildDetail.js +94 -3
  112. package/dist/tools/rebuildDetail.js.map +1 -1
  113. package/dist/tools/registry.js +12 -12
  114. package/dist/tools/registry.js.map +1 -1
  115. package/dist/tools/runCommand.js +10 -3
  116. package/dist/tools/runCommand.js.map +1 -1
  117. package/dist/tools/screenshot.js +42 -3
  118. package/dist/tools/screenshot.js.map +1 -1
  119. package/dist/tools/screenshotWin.js +221 -216
  120. package/dist/tools/screenshotWin.js.map +1 -1
  121. package/dist/tools/search.js +4 -1
  122. package/dist/tools/search.js.map +1 -1
  123. package/dist/tools/shellTools.js +17 -25
  124. package/dist/tools/shellTools.js.map +1 -1
  125. package/dist/tools/ui.js +26 -9
  126. package/dist/tools/ui.js.map +1 -1
  127. package/dist/tools/uiWin.js +4 -1
  128. package/dist/tools/uiWin.js.map +1 -1
  129. package/dist/tools/untrusted.js +24 -0
  130. package/dist/tools/untrusted.js.map +1 -1
  131. package/package.json +78 -78
@@ -150,20 +150,20 @@ function blank(screen, from, to) {
150
150
  screen.attrs.fill(0, lo, hi);
151
151
  }
152
152
  /**
153
- * Draw `frame` into `screen`, starting at row `top`.
153
+ * Interpret one line of a frame: text and SGR styling, written at the cursor.
154
154
  *
155
- * The screen is NOT cleared first — the caller decides that, because a resize
156
- * wants a clean grid while an ordinary frame is a complete repaint of the rows it
157
- * covers and clearing would be redundant work. Rows the frame does not reach are
158
- * left alone.
155
+ * Returns whether the line was PURE: nothing but printable characters and SGR sequences, so that what it
156
+ * leaves in the grid depends only on the line itself, the pen it started with and the grid's width. Only a
157
+ * pure line may be remembered (see `parseFrame`); anything that moves the cursor, erases, or is a control
158
+ * character makes the result depend on more than the text.
159
159
  */
160
- export function parseFrame(screen, frame, top = 0) {
161
- const pen = { fg: DEFAULT_COLOR, bg: DEFAULT_COLOR, attrs: 0 };
162
- let x = 0;
163
- let y = top;
160
+ function parseLine(screen, frame, pen, cursor, top) {
161
+ let pure = true;
162
+ let x = cursor.x;
163
+ let y = cursor.y;
164
164
  for (let i = 0; i < frame.length;) {
165
165
  const ch = frame[i];
166
- if (ch === "") {
166
+ if (ch === "\x1b") {
167
167
  // CSI: ESC [ params... final-byte
168
168
  if (frame[i + 1] === "[") {
169
169
  let j = i + 2;
@@ -182,18 +182,22 @@ export function parseFrame(screen, frame, top = 0) {
182
182
  applySgr(pen, params);
183
183
  }
184
184
  else if (final === "H" || final === "f") {
185
+ pure = false;
185
186
  // Absolute cursor position, 1-based on the real screen. `top` is where
186
187
  // row 0 of this grid sits, so it comes back off to get a grid row.
187
188
  y = (params[0] ?? 1) - 1 + top;
188
189
  x = (params[1] ?? 1) - 1;
189
190
  }
190
191
  else if (final === "C") {
192
+ pure = false;
191
193
  x += Math.max(1, params[0] ?? 1);
192
194
  }
193
195
  else if (final === "D") {
196
+ pure = false;
194
197
  x = Math.max(0, x - Math.max(1, params[0] ?? 1));
195
198
  }
196
199
  else if (final === "J") {
200
+ pure = false;
197
201
  // Erase display. A real terminal blanks the cells; skipping it left this
198
202
  // parser believing text was still there that the terminal had already wiped,
199
203
  // which is a difference that only shows up on a resize (the one time the
@@ -204,6 +208,7 @@ export function parseFrame(screen, frame, top = 0) {
204
208
  blank(screen, from, to);
205
209
  }
206
210
  else if (final === "K") {
211
+ pure = false;
207
212
  // Erase in line, same three modes but bounded to the current row.
208
213
  const mode = params[0] ?? 0;
209
214
  const rowStart = y * screen.width;
@@ -211,10 +216,14 @@ export function parseFrame(screen, frame, top = 0) {
211
216
  const to = mode === 1 ? rowStart + x + 1 : rowStart + screen.width;
212
217
  blank(screen, from, to);
213
218
  }
219
+ else {
220
+ pure = false;
221
+ }
214
222
  // Every other CSI is skipped whole — see the file header.
215
223
  i = j + 1;
216
224
  continue;
217
225
  }
226
+ pure = false;
218
227
  const introducer = frame[i + 1];
219
228
  if (introducer === "]" || introducer === "P" || introducer === "X" || introducer === "^" || introducer === "_") {
220
229
  // A STRING sequence: OSC, DCS, SOS, PM, APC. What follows the introducer is
@@ -253,18 +262,14 @@ export function parseFrame(screen, frame, top = 0) {
253
262
  i = j;
254
263
  continue;
255
264
  }
256
- if (ch === "\n") {
257
- y++;
258
- x = 0;
259
- i += 1;
260
- continue;
261
- }
262
265
  if (ch === "\r") {
266
+ pure = false;
263
267
  x = 0;
264
268
  i += 1;
265
269
  continue;
266
270
  }
267
271
  if (ch === "\t") {
272
+ pure = false;
268
273
  // Tab stops every eight columns. Stamping the tab itself would put a character in
269
274
  // the model that `paint` then writes back out, and the terminal would advance the
270
275
  // cursor for it — knocking the rest of the row, and everything the diff believes
@@ -275,6 +280,7 @@ export function parseFrame(screen, frame, top = 0) {
275
280
  }
276
281
  const control = frame.charCodeAt(i);
277
282
  if (control < 0x20 || control === 0x7f) {
283
+ pure = false;
278
284
  // Every remaining C0 control and DEL. A terminal acts on these; none of them leave
279
285
  // a glyph behind, so neither may the model.
280
286
  if (control === 0x08)
@@ -318,5 +324,82 @@ export function parseFrame(screen, frame, top = 0) {
318
324
  }
319
325
  x += w;
320
326
  }
327
+ cursor.x = x;
328
+ cursor.y = y;
329
+ return pure;
330
+ }
331
+ /** Remembered lines. Most of a frame is the same lines as the one before it, and reading a line is the cost. */
332
+ const ROW_MEMO_MAX = 800;
333
+ const rowMemo = new Map();
334
+ /**
335
+ * Draw `frame` into `screen`, starting at row `top`.
336
+ *
337
+ * The screen is NOT cleared first — the caller decides that, because a resize
338
+ * wants a clean grid while an ordinary frame is a complete repaint of the rows it
339
+ * covers and clearing would be redundant work. Rows the frame does not reach are
340
+ * left alone.
341
+ *
342
+ * A frame is its lines, and between two frames nearly all of them are the same, so a line that has been
343
+ * read before (same text, same starting pen, same grid width) is copied in from memory instead of being
344
+ * read again. Only lines that are pure (see `parseLine`) are remembered, and the copy writes exactly the
345
+ * cells reading would have written. `memo: false` reads everything, for comparing the two.
346
+ */
347
+ export function parseFrame(screen, frame, top = 0, memo = true) {
348
+ const pen = { fg: DEFAULT_COLOR, bg: DEFAULT_COLOR, attrs: 0 };
349
+ const cursor = { x: 0, y: top };
350
+ let at = 0;
351
+ for (;;) {
352
+ const nl = frame.indexOf("\n", at);
353
+ const line = nl === -1 ? frame.slice(at) : frame.slice(at, nl);
354
+ if (line !== "")
355
+ readLine(screen, line, pen, cursor, top, memo);
356
+ if (nl === -1)
357
+ return;
358
+ cursor.y++;
359
+ cursor.x = 0;
360
+ at = nl + 1;
361
+ }
362
+ }
363
+ function readLine(screen, line, pen, cursor, top, memo) {
364
+ const y = cursor.y;
365
+ const inRange = y >= 0 && y < screen.height;
366
+ // Only a line read from the start of its row, which is every line of a frame.
367
+ if (!memo || cursor.x !== 0) {
368
+ parseLine(screen, line, pen, cursor, top);
369
+ return;
370
+ }
371
+ const key = `${screen.width}\u0001${pen.fg}\u0001${pen.bg}\u0001${pen.attrs}\u0001${line}`;
372
+ const known = rowMemo.get(key);
373
+ if (known) {
374
+ if (inRange) {
375
+ const base = y * screen.width;
376
+ screen.chars.set(known.chars, base);
377
+ screen.fg.set(known.fg, base);
378
+ screen.bg.set(known.bg, base);
379
+ screen.attrs.set(known.attrs, base);
380
+ }
381
+ pen.fg = known.endFg;
382
+ pen.bg = known.endBg;
383
+ pen.attrs = known.endAttrs;
384
+ cursor.x = known.endX;
385
+ return;
386
+ }
387
+ const pure = parseLine(screen, line, pen, cursor, top);
388
+ if (!pure || !inRange || cursor.y !== y)
389
+ return;
390
+ const base = y * screen.width;
391
+ const extent = Math.min(cursor.x, screen.width);
392
+ if (rowMemo.size >= ROW_MEMO_MAX)
393
+ rowMemo.delete(rowMemo.keys().next().value);
394
+ rowMemo.set(key, {
395
+ chars: screen.chars.slice(base, base + extent),
396
+ fg: screen.fg.slice(base, base + extent),
397
+ bg: screen.bg.slice(base, base + extent),
398
+ attrs: screen.attrs.slice(base, base + extent),
399
+ endFg: pen.fg,
400
+ endBg: pen.bg,
401
+ endAttrs: pen.attrs,
402
+ endX: cursor.x,
403
+ });
321
404
  }
322
405
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/parse.ts"],"names":[],"mappings":"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"}
@@ -234,6 +234,12 @@ export function framebufferStdout(real, onFrame) {
234
234
  /** When every cell was last written, which is what bounds how long a disagreement
235
235
  * with the real terminal can survive. */
236
236
  let lastFull = 0;
237
+ /**
238
+ * The body of the last frame that was painted onto a clean screen, or null when the screen may no
239
+ * longer show it (anything repainted it, or a selection tinted it). A frame with the same body has
240
+ * nothing to parse or diff: it would change no cell.
241
+ */
242
+ let lastBody = null;
237
243
  /** The pending after-the-burst repaint, cancelled and re-armed by each frame. */
238
244
  let idle;
239
245
  /**
@@ -286,6 +292,7 @@ export function framebufferStdout(real, onFrame) {
286
292
  function invalidate() {
287
293
  onScreen.invalidate();
288
294
  lastFull = Date.now();
295
+ lastBody = null;
289
296
  }
290
297
  // Coming back from the inline shell: the terminal has been scrolling and printing on
291
298
  // its own, so nothing the model believes about the screen is still true. Forget all of
@@ -399,6 +406,7 @@ export function framebufferStdout(real, onFrame) {
399
406
  clean.copyFrom(onScreen);
400
407
  cleanValid = true;
401
408
  }
409
+ lastBody = null;
402
410
  pending.copyFrom(clean);
403
411
  applyFrameOverlay(pending);
404
412
  const escape = paint(onScreen, pending, 1);
@@ -578,38 +586,48 @@ export function framebufferStdout(real, onFrame) {
578
586
  return true;
579
587
  }
580
588
  heldFrame = null;
581
- if (syncSize() || repaintRequested || Date.now() - lastFull >= repaintEvery)
589
+ const invalidated = syncSize() || repaintRequested || Date.now() - lastFull >= repaintEvery;
590
+ if (invalidated)
582
591
  invalidate();
583
592
  repaintRequested = false;
584
- // Build the new frame. Cleared first because a frame is a complete statement
585
- // about the rows it covers: a line that got shorter must leave blanks behind,
586
- // not the tail of what used to be there.
587
- pending.clear();
588
- parseFrame(pending, body);
589
- // A selection highlight is added HERE, to the finished frame, and never reaches
590
- // React. `clean` keeps the untinted frame so the highlight can be moved without a
591
- // re-render (see `refreshOverlay`); it is only maintained while something is
592
- // actually tinting, so a session that never drags pays nothing for it.
593
- if (hasFrameOverlay()) {
594
- if (clean.width !== pending.width || clean.height !== pending.height) {
595
- clean.resize(pending.width, pending.height);
593
+ // The same picture as the one already drawn: nothing to parse and nothing to diff. In the
594
+ // full-screen layout Ink repeats a frame it has already written, so a screen that is not
595
+ // changing still arrives as a frame many times a second, and most of the work of a frame is
596
+ // reading it. Never with a selection showing, which tints the screen on top of the frame.
597
+ const same = !invalidated && lastBody === body && !hasFrameOverlay();
598
+ let escape = "";
599
+ if (!same) {
600
+ // Build the new frame. Cleared first because a frame is a complete statement
601
+ // about the rows it covers: a line that got shorter must leave blanks behind,
602
+ // not the tail of what used to be there.
603
+ pending.clear();
604
+ parseFrame(pending, body);
605
+ // A selection highlight is added HERE, to the finished frame, and never reaches
606
+ // React. `clean` keeps the untinted frame so the highlight can be moved without a
607
+ // re-render (see `refreshOverlay`); it is only maintained while something is
608
+ // actually tinting, so a session that never drags pays nothing for it.
609
+ if (hasFrameOverlay()) {
610
+ if (clean.width !== pending.width || clean.height !== pending.height) {
611
+ clean.resize(pending.width, pending.height);
612
+ }
613
+ clean.copyFrom(pending);
614
+ cleanValid = true;
615
+ applyFrameOverlay(pending);
596
616
  }
597
- clean.copyFrom(pending);
598
- cleanValid = true;
599
- applyFrameOverlay(pending);
600
- }
601
- else {
602
- cleanValid = false;
617
+ else {
618
+ cleanValid = false;
619
+ }
620
+ escape = paint(onScreen, pending, 1);
621
+ // Swap rather than copy. Both grids are the same shape and `pending` is fully
622
+ // rewritten at the start of every frame, so the old on-screen grid is free to
623
+ // become the next scratch buffer — no allocation, no memcpy.
624
+ const previous = onScreen;
625
+ onScreen = pending;
626
+ pending = previous;
627
+ publishScreen(onScreen);
628
+ lastBody = hasFrameOverlay() ? null : body;
603
629
  }
604
- const escape = paint(onScreen, pending, 1);
605
- // Swap rather than copy. Both grids are the same shape and `pending` is fully
606
- // rewritten at the start of every frame, so the old on-screen grid is free to
607
- // become the next scratch buffer — no allocation, no memcpy.
608
- const previous = onScreen;
609
- onScreen = pending;
610
- pending = previous;
611
- publishScreen(onScreen);
612
- onFrame?.({ inBytes: data.length, outBytes: escape.length });
630
+ onFrame?.({ inBytes: data.length, outBytes: escape.length, unchanged: same });
613
631
  // Put the screen beyond doubt once this burst of frames stops. During a burst it
614
632
  // is only ever cancelled and re-armed, so it costs nothing until things settle.
615
633
  armIdleRepaint();
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,kCAAkC,CAAC;AAEtD,iFAAiF;AACjF,MAAM,UAAU,GAAG,yEAAyE,CAAC;AAE7F;;;;;;;;;;;GAWG;AACH,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B;;;;;;GAMG;AACH,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB;;;;;;;;;GASG;AACH,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,EAAW;IAC9C,MAAM,GAAG,EAAE,CAAC;AACd,CAAC;AACD;;;;;;;;;GASG;AACH,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,mFAAmF;AACnF,MAAM,UAAU,kBAAkB;IAChC,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,iFAAiF;AACjF,IAAI,UAAU,GAAwB,IAAI,CAAC;AAC3C,mFAAmF;AACnF,IAAI,SAAS,GAAwB,IAAI,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAW;IAC/C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO;IAC3B,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,EAAE;QAAE,UAAU,EAAE,EAAE,CAAC;;QAClB,SAAS,EAAE,EAAE,CAAC;AACrB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC;AAoBD;;;;;GAKG;AACH;;;;;;GAMG;AACH,SAAS,SAAS;IAChB,oFAAoF;IACpF,EAAE;IACF,mFAAmF;IACnF,qFAAqF;IACrF,qFAAqF;IACrF,qFAAqF;IACrF,oFAAoF;IACpF,mFAAmF;IACnF,+BAA+B;IAC/B,EAAE;IACF,sFAAsF;IACtF,uFAAuF;IACvF,qFAAqF;IACrF,yCAAyC;IACzC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAyB,IAAO,EAAE,OAAqC;IACtG,yFAAyF;IACzF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAuC,EAAW,EAAE;QAC9E,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,kFAAkF;IAClF,gFAAgF;IAChF,2CAA2C;IAC3C,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/D,IAAI,OAAO,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,uFAAuF;IACvF,qFAAqF;IACrF,uFAAuF;IACvF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D;;;8CAG0C;IAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB;;;;;;;;OAQG;IACH,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB;;yCAEqC;IACrC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,qFAAqF;IACrF,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;IACrC;8CAC0C;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,iFAAiF;IACjF,IAAI,IAA+C,CAAC;IAEpD;;;;;;;;;;OAUG;IACH,SAAS,QAAQ;QACf,mFAAmF;QACnF,kFAAkF;QAClF,qFAAqF;QACrF,mFAAmF;QACnF,sDAAsD;QACtD,MAAM,GAAG,GAAI,IAAmD,CAAC,aAAa,EAAE,EAAE,CAAC;QACnF,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC;QACxD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAChE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,UAAU;QACjB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,qFAAqF;IACrF,uFAAuF;IACvF,sFAAsF;IACtF,iEAAiE;IACjE,UAAU,GAAG,GAAG,EAAE;QAChB,UAAU,EAAE,CAAC;QACb,UAAU,GAAG,EAAE,CAAC;QAChB,SAAS,GAAG,EAAE,CAAC;QACf,UAAU,GAAG,KAAK,CAAC;QACnB,4DAA4D;QAC5D,EAAE;QACF,mFAAmF;QACnF,kFAAkF;QAClF,gFAAgF;QAChF,4EAA4E;QAC5E,oFAAoF;QACpF,qFAAqF;QACrF,mFAAmF;QACnF,6DAA6D;QAC7D,EAAE;QACF,qFAAqF;QACrF,oFAAoF;QACpF,mFAAmF;QACnF,gFAAgF;QAChF,gEAAgE;QAChE,IAAI,aAAa,KAAK,EAAE;YAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,kFAAkF;IAClF,oFAAoF;IACpF,oFAAoF;IACpF,uFAAuF;IACvF,SAAS,GAAG,GAAG,EAAE;QACf,IAAI,IAAI;YAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,GAAG,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,SAAS,UAAU;QACjB,oFAAoF;QACpF,mFAAmF;QACnF,2EAA2E;QAC3E,EAAE;QACF,kFAAkF;QAClF,kFAAkF;QAClF,gFAAgF;QAChF,uBAAuB;QACvB,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3B,UAAU,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC;QAC1B,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,QAAQ,CAAC;QACnB,+EAA+E;QAC/E,+EAA+E;QAC/E,sEAAsE;QACtE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxB,uCAAuC;QACvC,EAAE;QACF,oFAAoF;QACpF,mFAAmF;QACnF,iFAAiF;QACjF,qFAAqF;QACrF,gFAAgF;QAChF,8DAA8D;QAC9D,UAAU,GAAG,SAAS,EAAE,CAAC;QACzB,SAAS,GAAG,UAAU,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QACzF,IAAI,OAAO,KAAK,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,cAAc;QACrB,qFAAqF;QACrF,2DAA2D;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QAC/B,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC1D,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,kFAAkF;QAClF,mFAAmF;QACnF,oFAAoF;QACpF,sDAAsD;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC;QAC1B,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,QAAQ,CAAC;QACnB,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxB,uCAAuC;QACvC,EAAE;QACF,oFAAoF;QACpF,mFAAmF;QACnF,iFAAiF;QACjF,qFAAqF;QACrF,gFAAgF;QAChF,8DAA8D;QAC9D,UAAU,GAAG,SAAS,EAAE,CAAC;QACzB,SAAS,GAAG,UAAU,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QACzF,IAAI,OAAO,KAAK,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAElC;;;;;;;;;;;;OAYG;IACH,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,UAAU;YAAE,OAAO;QACvB,UAAU,GAAG,IAAI,CAAC;QAClB,cAAc,CAAC,GAAG,EAAE;YAClB,UAAU,GAAG,KAAK,CAAC;YACnB,4EAA4E;YAC5E,kFAAkF;YAClF,kFAAkF;YAClF,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;YACjC,SAAS,GAAG,MAAM,CAAC;YACnB,UAAU,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;6CACyC;IACzC,SAAS,cAAc;QACrB,IAAI,IAAI;YAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE;YACrB,IAAI,GAAG,SAAS,CAAC;YACjB,UAAU,EAAE,CAAC;QACf,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,+FAA+F;IAC/F,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,YAAY,CAAC,GAAG,EAAE;QAChB,MAAM,IAAI,GAAG,SAAS,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,QAAuC,EAAW,EAAE;QAC/E,8EAA8E;QAC9E,EAAE;QACF,gFAAgF;QAChF,iFAAiF;QACjF,8EAA8E;QAC9E,kFAAkF;QAClF,mFAAmF;QACnF,+EAA+E;QAC/E,EAAE;QACF,iFAAiF;QACjF,iFAAiF;QACjF,8CAA8C;QAC9C,+EAA+E;QAC/E,iFAAiF;QACjF,+EAA+E;QAC/E,iFAAiF;QACjF,yBAAyB;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,4EAA4E;YAC5E,wEAAwE;YACxE,+EAA+E;YAC/E,+EAA+E;YAC/E,yEAAyE;YACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,aAAa,GAAG,IAAI,CAAC;YACrE,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,kFAAkF;QAClF,oCAAoC;QACpC,EAAE;QACF,oFAAoF;QACpF,qFAAqF;QACrF,kFAAkF;QAClF,mFAAmF;QACnF,qFAAqF;QACrF,gDAAgD;QAChD,EAAE;QACF,8EAA8E;QAC9E,kFAAkF;QAClF,+EAA+E;QAC/E,mFAAmF;QACnF,qFAAqF;QACrF,kFAAkF;QAClF,EAAE;QACF,qFAAqF;QACrF,qFAAqF;QACrF,qEAAqE;QACrE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1C,kFAAkF;QAClF,6EAA6E;QAC7E,kFAAkF;QAClF,WAAW;QACX,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE7C,6EAA6E;QAC7E,EAAE;QACF,iFAAiF;QACjF,8EAA8E;QAC9E,kFAAkF;QAClF,mFAAmF;QACnF,gFAAgF;QAChF,mFAAmF;QACnF,EAAE;QACF,iFAAiF;QACjF,mFAAmF;QACnF,mFAAmF;QACnF,oFAAoF;QACpF,8CAA8C;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/C,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kFAAkF;QAClF,wFAAwF;QACxF,mFAAmF;QACnF,yBAAyB;QACzB,yFAAyF;QACzF,uFAAuF;QACvF,6EAA6E;QAC7E,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;QAEjB,IAAI,QAAQ,EAAE,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,YAAY;YAAE,UAAU,EAAE,CAAC;QAC1F,gBAAgB,GAAG,KAAK,CAAC;QAEzB,6EAA6E;QAC7E,8EAA8E;QAC9E,yCAAyC;QACzC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE1B,gFAAgF;QAChF,kFAAkF;QAClF,6EAA6E;QAC7E,uEAAuE;QACvE,IAAI,eAAe,EAAE,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC;YAClB,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAE3C,8EAA8E;QAC9E,8EAA8E;QAC9E,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC;QAC1B,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,QAAQ,CAAC;QACnB,aAAa,CAAC,QAAQ,CAAC,CAAC;QAExB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7D,iFAAiF;QACjF,gFAAgF;QAChF,cAAc,EAAE,CAAC;QAEjB,gFAAgF;QAChF,EAAE;QACF,mFAAmF;QACnF,kFAAkF;QAClF,oFAAoF;QACpF,oEAAoE;QACpE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,UAAU,GAAG,MAAM,CAAC;QACpB,+EAA+E;QAC/E,EAAE;QACF,qFAAqF;QACrF,qFAAqF;QACrF,gFAAgF;QAChF,kFAAkF;QAClF,EAAE;QACF,mFAAmF;QACnF,8DAA8D;QAC9D,MAAM,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;QAC3G,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS,GAAG,MAAM,CAAC;QACnC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,4EAA4E;YAC5E,iEAAiE;YACjE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,OAAO,CAAC;YACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAChD,yEAAyE;YACzE,4EAA4E;YAC5E,kEAAkE;YAClE,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/framebuffer/writer.ts"],"names":[],"mappings":"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"}
package/dist/cli/help.js CHANGED
@@ -56,6 +56,12 @@ export function formatHelp(sections) {
56
56
  " that was read (lines 410–551, or the whole file). Click a command to see what it\n" +
57
57
  " printed. When it tests your app, each step is a line too (Tested 4 steps), and a\n" +
58
58
  " step that failed says why. A long output, a file written whole or an edit works the same way.",
59
+ "About a message you want sent now\n" +
60
+ " Typing while the agent works queues your message, and it reaches the agent when its\n" +
61
+ " current step ends. Press ctrl+F instead of Enter to get it there sooner: a command the\n" +
62
+ " agent is waiting on moves to the background (as with ctrl+X) and keeps running, so the\n" +
63
+ " step ends and your message arrives at once. Nothing is stopped. With the box empty,\n" +
64
+ " ctrl+F does that for what is already queued. Esc is the key that stops things.",
59
65
  "About a command that takes long\n" +
60
66
  " After a couple of seconds the command's own line offers ctrl+X. Press it and the\n" +
61
67
  " command the agent is waiting on keeps running as a background shell, and the agent\n" +
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,wEAAwE;AACxE,SAAS,MAAM,CAAC,QAAgC;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgC;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,8EAA8E;QAC9E,oEAAoE;QACpE,QAAQ;YACN,8EAA8E;YAC9E,sGAAsG;YACtG,2CAA2C;YAC3C,qEAAqE;YACrE,yEAAyE;YACzE,6EAA6E;YAC7E,+EAA+E;YAC/E,2EAA2E;YAC3E,2EAA2E;YAC3E,mFAAmF;YACnF,sFAAsF;YACtF,4FAA4F;YAC5F,gGAAgG;YAChG,6FAA6F;QAC/F,0FAA0F;QAC1F,sFAAsF;QACtF,6BAA6B;YAC3B,2EAA2E;YAC3E,gDAAgD;YAChD,0FAA0F;YAC1F,0FAA0F;YAC1F,sFAAsF;YACtF,sFAAsF;YACtF,iGAAiG;QACnG,mCAAmC;YACjC,sFAAsF;YACtF,wFAAwF;YACxF,yFAAyF;YACzF,8EAA8E;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,iFAAiF;QACjF,qEAAqE;QACrE,oBAAoB;YAClB,+EAA+E;YAC/E,oFAAoF;YACpF,mFAAmF;YACnF,mFAAmF;YACnF,oFAAoF;YACpF,8EAA8E;YAC9E,uFAAuF;YACvF,2FAA2F;KAC9F,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,wEAAwE;AACxE,SAAS,MAAM,CAAC,QAAgC;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgC;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,8EAA8E;QAC9E,oEAAoE;QACpE,QAAQ;YACN,8EAA8E;YAC9E,sGAAsG;YACtG,2CAA2C;YAC3C,qEAAqE;YACrE,yEAAyE;YACzE,6EAA6E;YAC7E,+EAA+E;YAC/E,2EAA2E;YAC3E,2EAA2E;YAC3E,mFAAmF;YACnF,sFAAsF;YACtF,4FAA4F;YAC5F,gGAAgG;YAChG,6FAA6F;QAC/F,0FAA0F;QAC1F,sFAAsF;QACtF,6BAA6B;YAC3B,2EAA2E;YAC3E,gDAAgD;YAChD,0FAA0F;YAC1F,0FAA0F;YAC1F,sFAAsF;YACtF,sFAAsF;YACtF,iGAAiG;QACnG,qCAAqC;YACnC,yFAAyF;YACzF,4FAA4F;YAC5F,4FAA4F;YAC5F,yFAAyF;YACzF,kFAAkF;QACpF,mCAAmC;YACjC,sFAAsF;YACtF,wFAAwF;YACxF,yFAAyF;YACzF,8EAA8E;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,iFAAiF;QACjF,qEAAqE;QACrE,oBAAoB;YAClB,+EAA+E;YAC/E,oFAAoF;YACpF,mFAAmF;YACnF,mFAAmF;YACnF,oFAAoF;YACpF,8EAA8E;YAC9E,uFAAuF;YACvF,2FAA2F;KAC9F,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * inkSpeedLoader.ts — the module load hook that swaps in the faster Ink renderer text.
3
3
  *
4
- * It touches exactly two files, `ink/build/output.js` and `widest-line/index.js`, and each only
5
- * when its content is the stock one this was written against (see inkOutputPatch.ts and
6
- * widestLinePatch.ts); everything else passes through untouched.
4
+ * It touches exactly three files, `ink/build/output.js`, `widest-line/index.js` and
5
+ * `ink/build/ink.js`, and each only when its content is the stock one this was written against
6
+ * (see inkOutputPatch.ts, widestLinePatch.ts and inkThrottlePatch.ts); everything else passes
7
+ * through untouched.
7
8
  *
8
9
  * Two shapes of the same hook. `loadSync` is the one used: it runs in the main thread through
9
10
  * `module.registerHooks`. `load` is the asynchronous form for `module.register`, kept only as a
@@ -13,12 +14,15 @@
13
14
  */
14
15
  import { patchInkOutput } from "./inkOutputPatch.js";
15
16
  import { patchWidestLine } from "./widestLinePatch.js";
16
- /** The patch for this module, or null when it is not one of the two this changes. */
17
+ import { patchInkThrottle } from "./inkThrottlePatch.js";
18
+ /** The patch for this module, or null when it is not one of the three this changes. */
17
19
  function patchFor(url) {
18
20
  if (/\/node_modules\/ink\/build\/output\.js$/.test(url))
19
21
  return patchInkOutput;
20
22
  if (/\/node_modules\/widest-line\/index\.js$/.test(url))
21
23
  return patchWidestLine;
24
+ if (/\/node_modules\/ink\/build\/ink\.js$/.test(url))
25
+ return patchInkThrottle;
22
26
  return null;
23
27
  }
24
28
  function asText(source) {
@@ -32,7 +36,7 @@ function apply(url, result) {
32
36
  const patch = patchFor(url);
33
37
  if (!patch || result.source == null)
34
38
  return result;
35
- const patched = patch(asText(result.source));
39
+ const patched = patch(asText(result.source), url);
36
40
  return patched ? { ...result, source: patched } : result;
37
41
  }
38
42
  /** For `module.registerHooks`: synchronous, in the main thread. */
@@ -1 +1 @@
1
- {"version":3,"file":"inkSpeedLoader.js","sourceRoot":"","sources":["../../src/cli/inkSpeedLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,qFAAqF;AACrF,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC;IAC/E,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,eAAe,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,MAAM,CAAC,MAAc;IAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,MAAkB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAgB,EAAE,QAAuD;IAC7G,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,OAAgB,EAAE,QAAgE;IACxH,OAAO,KAAK,CAAC,GAAG,EAAE,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"inkSpeedLoader.js","sourceRoot":"","sources":["../../src/cli/inkSpeedLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKzD,uFAAuF;AACvF,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC;IAC/E,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,eAAe,CAAC;IAChF,IAAI,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,MAAM,CAAC,MAAc;IAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,MAAkB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAgB,EAAE,QAAuD;IAC7G,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,OAAgB,EAAE,QAAgE;IACxH,OAAO,KAAK,CAAC,GAAG,EAAE,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * inkThrottlePatch.ts — load Ink's `throttle` from the one file that holds it.
3
+ *
4
+ * Ink imports a single function, `throttle`, from `es-toolkit/compat`. That entry point is an
5
+ * index which loads the whole compatibility layer behind it: hundreds of small files, opened and
6
+ * checked one by one before the first screen. On Windows each file costs real time (more on a cold
7
+ * disk or under a virus scanner), and this one import was close to half of all the files read at
8
+ * startup and about 0.3s of a 0.9s launch.
9
+ *
10
+ * `es-toolkit/compat/function/throttle.mjs` is the very module the index re-exports, so the
11
+ * function is the same one, not a lookalike. The package does not export that path, so the hook
12
+ * points Ink at it by file address.
13
+ *
14
+ * Same mechanism as inkOutputPatch.ts: the loader hook rewrites the module text, and
15
+ * `MINDWEAVE_NO_INK_PATCH=1` turns it off. Unlike that one it keys on the exact stock import line
16
+ * instead of a whole-file hash, so an Ink update that keeps the line keeps the speedup; one that
17
+ * changes it simply loads the stock import. If the target file is not where it is expected, the
18
+ * stock import is kept too.
19
+ */
20
+ import { existsSync } from "node:fs";
21
+ import { fileURLToPath } from "node:url";
22
+ /** The line this replaces, exactly as Ink writes it. */
23
+ export const STOCK_THROTTLE_IMPORT = "import { throttle } from 'es-toolkit/compat';";
24
+ /** Where the throttle module sits, relative to `ink/build/ink.js`: hoisted beside Ink, or nested under it. */
25
+ export const THROTTLE_LOCATIONS = [
26
+ "../../es-toolkit/dist/compat/function/throttle.mjs",
27
+ "../node_modules/es-toolkit/dist/compat/function/throttle.mjs",
28
+ ];
29
+ /** The patched text for Ink's `ink.js` at `url`, or null when it is not the stock import (or patching is off). */
30
+ export function patchInkThrottle(source, url) {
31
+ if (process.env["MINDWEAVE_NO_INK_PATCH"] === "1")
32
+ return null;
33
+ if (!source.includes(STOCK_THROTTLE_IMPORT))
34
+ return null;
35
+ for (const location of THROTTLE_LOCATIONS) {
36
+ const target = new URL(location, url);
37
+ if (target.protocol === "file:" && existsSync(fileURLToPath(target))) {
38
+ return source.replace(STOCK_THROTTLE_IMPORT, `import { throttle } from '${target.href}';`);
39
+ }
40
+ }
41
+ return null;
42
+ }
43
+ //# sourceMappingURL=inkThrottlePatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inkThrottlePatch.js","sourceRoot":"","sources":["../../src/cli/inkThrottlePatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,wDAAwD;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAErF,8GAA8G;AAC9G,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,oDAAoD;IACpD,8DAA8D;CAC/D,CAAC;AAEF,kHAAkH;AAClH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,6BAA6B,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -111,8 +111,15 @@ export function screenChoices(current) {
111
111
  {
112
112
  mode: "inline",
113
113
  label: `Inline (beta)${tick("inline")}`,
114
- description: "prints to scrollback; a work in progress, still has rough edges",
114
+ description: INLINE_UNAVAILABLE,
115
115
  },
116
116
  ];
117
117
  }
118
+ /**
119
+ * Whether the inline shell can be chosen. It cannot, for now: it has too many bugs to hand
120
+ * to anyone. The row stays in the chooser so it is clear the shell exists and is coming;
121
+ * choosing it, in the list or with `/screen inline`, only says so.
122
+ */
123
+ export const INLINE_AVAILABLE = false;
124
+ export const INLINE_UNAVAILABLE = "not available yet — we are working on it, it has too many bugs to use for now";
118
125
  //# sourceMappingURL=screenMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenMode.js","sourceRoot":"","sources":["../../src/cli/screenMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAyB;IAC1F,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAClD,OAAO,KAAK,IAAI,YAAY,CAAC;AAC/B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAChF,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IACnF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,2EAA2E;QAC7E,CAAC,CAAC,8EAA8E,CAAC;AACrF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAe,QAAQ,CAAC;AAShD;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,OAAmB;IAC/C,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO;QACL;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa,IAAI,CAAC,YAAY,CAAC,EAAE;YACxC,WAAW,EAAE,yEAAyE;SACvF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,WAAW,EAAE,iEAAiE;SAC/E;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"screenMode.js","sourceRoot":"","sources":["../../src/cli/screenMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAyB;IAC1F,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAClD,OAAO,KAAK,IAAI,YAAY,CAAC;AAC/B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAChF,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IACnF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,2EAA2E;QAC7E,CAAC,CAAC,8EAA8E,CAAC;AACrF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAe,QAAQ,CAAC;AAShD;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,OAAmB;IAC/C,MAAM,IAAI,GAAG,CAAC,IAAgB,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO;QACL;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa,IAAI,CAAC,YAAY,CAAC,EAAE;YACxC,WAAW,EAAE,yEAAyE;SACvF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,WAAW,EAAE,kBAAkB;SAChC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,+EAA+E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionCarry.js","sourceRoot":"","sources":["../../src/cli/sessionCarry.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiB,EAAE,EAAe;IACxE,4EAA4E;IAC5E,6CAA6C;IAC7C,IAAI,IAAI,CAAC,WAAW;QAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"sessionCarry.js","sourceRoot":"","sources":["../../src/cli/sessionCarry.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAiB,EAAE,EAAe;IACxE,4EAA4E;IAC5E,6CAA6C;IAC7C,IAAI,IAAI,CAAC,WAAW;QAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1D,CAAC"}
@@ -74,7 +74,7 @@ export const UNKNOWN_TOOL = "Unknown tool";
74
74
  // it to stay out of the stream. `todo_write` is silent for the same reason: its
75
75
  // reader is the model, not the user. Mutating tools (edit/write/run) were never
76
76
  // grouped and still keep their own row with the diff/output.
77
- const GROUPABLE = new Set(["read_file", "read_symbol"]);
77
+ const GROUPABLE = new Set(["read_file", "read_symbol", "search"]);
78
78
  /**
79
79
  * The agent working in the shell: running a command, checking on one it left running, stopping
80
80
  * one. Consecutive calls fold into ONE commands row (see WorkGroup), however many there are
@@ -155,7 +155,7 @@ export function noteReads(calls, readBefore) {
155
155
  * now appear while a call works, so these are left out from the start instead of flashing up and
156
156
  * disappearing.
157
157
  */
158
- const NEVER_SHOWN = new Set(["search", "outline", "definition", "references", "relevant", "todo_write", "find_tools"]);
158
+ const NEVER_SHOWN = new Set(["outline", "definition", "references", "relevant", "todo_write", "find_tools"]);
159
159
  /** Whether a tool's calls are never drawn in the conversation. */
160
160
  export function neverShown(name) {
161
161
  return NEVER_SHOWN.has(name);