@farmslot/protocol 0.74.3 → 0.74.5

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 (39) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/client-cache/held-data.d.ts +20 -0
  3. package/dist/client-cache/held-data.d.ts.map +1 -0
  4. package/dist/client-cache/held-data.js +34 -0
  5. package/dist/client-cache/held-data.js.map +1 -0
  6. package/dist/client-cache/index.d.ts +2 -0
  7. package/dist/client-cache/index.d.ts.map +1 -1
  8. package/dist/client-cache/index.js +2 -0
  9. package/dist/client-cache/index.js.map +1 -1
  10. package/dist/client-cache/native-history.d.ts +110 -7
  11. package/dist/client-cache/native-history.d.ts.map +1 -1
  12. package/dist/client-cache/native-history.js +382 -11
  13. package/dist/client-cache/native-history.js.map +1 -1
  14. package/dist/client-cache/terminal-text.d.ts +6 -0
  15. package/dist/client-cache/terminal-text.d.ts.map +1 -0
  16. package/dist/client-cache/terminal-text.js +27 -0
  17. package/dist/client-cache/terminal-text.js.map +1 -0
  18. package/dist/contracts/evals.d.ts +41 -0
  19. package/dist/contracts/evals.d.ts.map +1 -1
  20. package/dist/contracts/evals.js +25 -0
  21. package/dist/contracts/evals.js.map +1 -1
  22. package/dist/contracts/family.d.ts +2 -1
  23. package/dist/contracts/family.d.ts.map +1 -1
  24. package/dist/contracts/family.js.map +1 -1
  25. package/dist/contracts/runs.d.ts +7 -0
  26. package/dist/contracts/runs.d.ts.map +1 -1
  27. package/dist/contracts/runs.js.map +1 -1
  28. package/dist/rpc/auth.d.ts +9 -0
  29. package/dist/rpc/auth.d.ts.map +1 -1
  30. package/dist/rpc/auth.js +15 -0
  31. package/dist/rpc/auth.js.map +1 -1
  32. package/dist/rpc/eval.d.ts +2 -1
  33. package/dist/rpc/eval.d.ts.map +1 -1
  34. package/dist/rpc/eval.js.map +1 -1
  35. package/dist/rpc/native-session.d.ts +20 -6
  36. package/dist/rpc/native-session.d.ts.map +1 -1
  37. package/dist/version.d.ts +1 -1
  38. package/dist/version.js +1 -1
  39. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  import { Methods } from '../rpc/registry.js';
2
+ import { canActOn } from './held-data.js';
2
3
  import { resourceQuery } from './registry.js';
4
+ import { terminalLinesFromText } from './terminal-text.js';
3
5
  export function nativeTimeline(events) {
4
6
  const entries = [];
5
7
  const userCommands = new Set();
@@ -36,27 +38,40 @@ export function nativeTimeline(events) {
36
38
  if (previous) {
37
39
  const completed = previous.event.type === 'tool.completed' ? previous.event : event;
38
40
  const started = event.type === 'tool.started' ? event : previous.event;
41
+ // Keep the entry's sequence: cached history keeps only this merged event, and the next read
42
+ // keys the tool by it, so a card the reader opened stays the same card when it finishes.
39
43
  previous.event = {
40
44
  ...completed,
45
+ sequence: previous.key,
41
46
  tool: {
42
47
  ...started.tool,
43
48
  ...completed.tool,
44
49
  name: started.tool?.name ?? completed.tool?.name ?? 'Tool',
45
50
  },
46
51
  };
52
+ // A runner can name the command or files only after the call started (Cursor does).
53
+ previous.text = nativeToolLabel(previous.event.tool);
47
54
  }
48
55
  else {
49
56
  const entry = {
50
57
  key: event.sequence,
51
58
  kind: 'tool',
52
59
  event,
53
- text: event.tool?.name ?? 'Tool',
60
+ text: nativeToolLabel(event.tool),
54
61
  };
55
62
  entries.push(entry);
56
63
  if (identity)
57
64
  tools.set(identity, entry);
58
65
  }
59
66
  }
67
+ else if (event.type === 'approval.resolved' && event.request) {
68
+ entries.push({
69
+ key: event.sequence,
70
+ kind: 'resolution',
71
+ event,
72
+ text: nativeResolutionText(event.request, event.response),
73
+ });
74
+ }
60
75
  else if (['turn.completed', 'session.closed', 'error'].includes(event.type)) {
61
76
  entries.push({
62
77
  key: event.sequence,
@@ -73,6 +88,30 @@ export function nativeTimeline(events) {
73
88
  }
74
89
  return entries;
75
90
  }
91
+ /**
92
+ * "Approved: rm -r build", "Declined: …", "Answered: Which file? → a.ts", or "Resolved: …" when
93
+ * the host did not deliver the response (the runner resolved it), so the decision is unknown.
94
+ */
95
+ function nativeResolutionText(request, response) {
96
+ const questions = request.questions ?? [];
97
+ const answered = questions.flatMap((question) => {
98
+ const answer = response?.answers?.[question.id];
99
+ return answer?.length ? [`${question.prompt} → ${answer.join(', ')}`] : [];
100
+ });
101
+ if (answered.length)
102
+ return `Answered: ${answered.join('; ')}`;
103
+ const subject = questions.length
104
+ ? questions.map((question) => question.prompt).join('; ')
105
+ : (request.detail ?? request.tool?.name ?? request.title);
106
+ const outcome = response?.decision === 'approve'
107
+ ? 'Approved'
108
+ : response?.decision === 'deny'
109
+ ? 'Declined'
110
+ : 'Resolved';
111
+ return `${outcome}: ${subject}`;
112
+ }
113
+ /** Bumped when retention keeps more: a snapshot saved by an older reader is read again from its start, once. */
114
+ const NATIVE_HISTORY_PROJECTION = 3;
76
115
  export const NATIVE_HISTORY_MESSAGES = 200;
77
116
  export const NATIVE_HISTORY_SESSIONS = 10;
78
117
  /** One durable observation per opened session/binding, never per cursor page. */
@@ -98,10 +137,17 @@ export function retainNativeMessages(events) {
98
137
  .reverse()
99
138
  .filter((entry) => entry.kind !== 'status' || ++statuses <= NATIVE_HISTORY_MESSAGES)
100
139
  .reverse();
101
- return retained.map((entry) => ({
140
+ const kept = retained.map((entry) => ({
102
141
  ...entry.event,
103
142
  ...(entry.kind === 'assistant' || entry.kind === 'user' ? { text: entry.text } : {}),
104
143
  }));
144
+ // A running turn's start is not a timeline entry, but its working time is counted from it.
145
+ // Appended: the timeline skips it and nativeWork compares sequences, so its place does not
146
+ // matter, and sorting would move tool cards that finished out of order.
147
+ const turn = nativeOpenTurn(events);
148
+ if (!turn || kept.some((item) => item.sequence === turn.sequence))
149
+ return kept;
150
+ return [...kept, turn];
105
151
  }
106
152
  export function sameNativeHistoryIdentity(a, b) {
107
153
  const identity = (page) => JSON.stringify([
@@ -141,11 +187,13 @@ function assertHistoryNotAborted(signal) {
141
187
  * Cursor drains remain read-only. Neither receipts nor pending intents are dispatched here.
142
188
  */
143
189
  export async function readNativeHistory(target, previous, request, signal) {
144
- let retained = previous;
145
- let cursor = previous?.cursor;
190
+ const previousRead = previous?.historyRead;
191
+ // Saved by a reader that dropped the running turn's start: keep its identity, reread its events.
192
+ const replay = previousRead !== undefined && previousRead.projection !== NATIVE_HISTORY_PROJECTION;
193
+ let retained = previous && replay ? { ...previous, events: [] } : previous;
194
+ let cursor = replay ? undefined : previous?.cursor;
146
195
  let stamp;
147
196
  let first = true;
148
- const previousRead = previous?.historyRead;
149
197
  let pageReadCount = previousRead?.pageReadCount ?? 0;
150
198
  let pageAfters = previousRead?.pageAfters ?? [];
151
199
  for (let pages = 0; pages < 1000; pages++) {
@@ -201,7 +249,10 @@ export async function readNativeHistory(target, previous, request, signal) {
201
249
  cursor = page.cursor;
202
250
  if (!page.hasMore)
203
251
  return {
204
- data: { ...retained, historyRead: { pageReadCount, pageAfters } },
252
+ data: {
253
+ ...retained,
254
+ historyRead: { pageReadCount, pageAfters, projection: NATIVE_HISTORY_PROJECTION },
255
+ },
205
256
  resourceState: stamp,
206
257
  };
207
258
  }
@@ -275,11 +326,331 @@ export function storedNativeHistoryMatches(target, value) {
275
326
  page.session.workerLeaseId === target.worker.leaseId &&
276
327
  page.session.generation === target.worker.generation)));
277
328
  }
278
- export function nativeHistoryCanAct(observation, rendered, connected) {
279
- return (connected &&
280
- observation?.status === 'ready' &&
329
+ /** Current, complete history under the shared held-data rule. */
330
+ function nativeHistoryCurrent(observation, connected, now) {
331
+ return (!!observation?.resourceState &&
332
+ canActOn(observation, connected, now) &&
333
+ !!observation.data &&
334
+ !observation.data.hasMore);
335
+ }
336
+ /**
337
+ * Sending a message: current, complete history of the conversation on screen. A newer read of it,
338
+ * landing while a turn streams, does not refuse the message; a resumed generation, another worker
339
+ * lease or a released task scope does. Native actions do not reread first, so history restored from
340
+ * storage (no read stamp) waits for a live read.
341
+ */
342
+ export function nativeHistoryCanSend(observation, rendered, connected, now = Date.now()) {
343
+ return (nativeHistoryCurrent(observation, connected, now) &&
281
344
  !!rendered &&
282
- observation.data === rendered &&
283
- !rendered.hasMore);
345
+ sameNativeHistoryIdentity(observation.data, rendered) &&
346
+ !observation.data.scope?.released);
347
+ }
348
+ /** An answer or stop acts on the exact history snapshot on screen. */
349
+ export function nativeHistoryCanAct(observation, rendered, connected, now = Date.now()) {
350
+ return nativeHistoryCurrent(observation, connected, now) && observation.data === rendered;
351
+ }
352
+ /** Page sequence is authoritative. Ignore repeats; reject a gap rather than hide missing history. */
353
+ export function appendNativePage(previous, page) {
354
+ const events = [...previous.events];
355
+ let cursor = previous.cursor;
356
+ for (const event of page.events) {
357
+ if (event.sessionId !== page.session.id)
358
+ throw new Error('Native replay changed session');
359
+ if (event.sequence <= cursor)
360
+ continue;
361
+ if (event.sequence !== cursor + 1)
362
+ throw new Error('Native history has a gap. Reload this session.');
363
+ events.push(event);
364
+ cursor = event.sequence;
365
+ }
366
+ return cursor === previous.cursor ? previous : { events, cursor };
367
+ }
368
+ /**
369
+ * The composer's send action for a session in this state: "Send" when it is idle, "Queue message"
370
+ * for the next turn while a turn runs or waits on a request. Undefined: it takes no input now.
371
+ */
372
+ export function nativeSendLabel(state) {
373
+ if (state === 'idle')
374
+ return 'Send';
375
+ if (state === 'running' || state === 'waiting')
376
+ return 'Queue message';
377
+ return undefined;
378
+ }
379
+ export function nativeDeliveryLabel(receipt) {
380
+ if (!receipt)
381
+ return 'Delivery unknown';
382
+ if (receipt.queued)
383
+ return 'Queued for the next turn';
384
+ if (receipt.outcome === 'interrupted')
385
+ return 'Interrupted';
386
+ switch (receipt.state) {
387
+ case 'pending':
388
+ return 'Submitting';
389
+ case 'unknown':
390
+ return 'Awaiting runner acceptance';
391
+ case 'accepted':
392
+ return 'Accepted';
393
+ case 'completed':
394
+ return 'Completed';
395
+ case 'failed':
396
+ return 'Failed';
397
+ }
398
+ }
399
+ /** A confirmed replacement generation must not inherit the old browser input lock. */
400
+ export function nativeCommandLockSettled(command, currentGeneration, receipt, events = []) {
401
+ return (command.generation !== currentGeneration ||
402
+ (!!receipt &&
403
+ receipt.commandId === command.commandId &&
404
+ receipt.generation === command.generation &&
405
+ ['completed', 'failed'].includes(receipt.state)) ||
406
+ events.some((event) => event.type === 'turn.completed' &&
407
+ event.commandId === command.commandId &&
408
+ event.generation === command.generation));
409
+ }
410
+ /** A reader within this distance of the end of a conversation follows new output. */
411
+ const NATIVE_FOLLOW_SLACK_PX = 80;
412
+ /** Opening a conversation, or jumping to its latest entry, follows again. */
413
+ export const NATIVE_FOLLOW_LATEST = { following: true, unseen: 0 };
414
+ /** The reader scrolled. Back at the end means caught up. */
415
+ export function nativeFollowScrolled(state, distanceFromEnd) {
416
+ if (distanceFromEnd < NATIVE_FOLLOW_SLACK_PX)
417
+ return NATIVE_FOLLOW_LATEST;
418
+ return state.following ? { following: false, unseen: 0 } : state;
419
+ }
420
+ /** Entries arrived. A reader away from the end has that many more to catch up on. */
421
+ export function nativeFollowGrew(state, added) {
422
+ return state.following || added <= 0 ? state : { ...state, unseen: state.unseen + added };
423
+ }
424
+ /** The jump control's label, or none while the reader follows. */
425
+ export function nativeFollowLabel(state) {
426
+ if (state.following)
427
+ return undefined;
428
+ return state.unseen ? `Latest · ${state.unseen} new` : 'Latest';
429
+ }
430
+ const NATIVE_MESSAGE_PREVIEW_LINES = 8;
431
+ const NATIVE_MESSAGE_PREVIEW_CHARS = 600;
432
+ // A message collapses only when that hides a real amount, never a line or a few characters.
433
+ const NATIVE_MESSAGE_COLLAPSE_LINES = 12;
434
+ const NATIVE_MESSAGE_COLLAPSE_CHARS = 900;
435
+ /** A long message (a worker's dispatch prompt) shows its start until the reader expands it. */
436
+ export function nativeMessagePreview(text) {
437
+ // A trailing newline is not a line the reader sees.
438
+ const body = text.replace(/\n+$/, '');
439
+ const lines = body.split('\n');
440
+ if (body.length <= NATIVE_MESSAGE_COLLAPSE_CHARS && lines.length <= NATIVE_MESSAGE_COLLAPSE_LINES)
441
+ return undefined;
442
+ const head = lines.slice(0, NATIVE_MESSAGE_PREVIEW_LINES).join('\n');
443
+ return { text: nativeClip(head, NATIVE_MESSAGE_PREVIEW_CHARS), lines: lines.length };
444
+ }
445
+ /** At most `max` characters, then "…" where it was cut, never splitting a surrogate pair. */
446
+ function nativeClip(text, max) {
447
+ if (text.length <= max)
448
+ return text;
449
+ return `${text
450
+ .slice(0, max)
451
+ .replace(/[\uD800-\uDBFF]$/, '')
452
+ .trimEnd()}…`;
453
+ }
454
+ /** Only the reader's own messages collapse; assistant, tool and status entries show in full. */
455
+ export function nativeEntryPreview(entry) {
456
+ return entry.kind === 'user' ? nativeMessagePreview(entry.text) : undefined;
457
+ }
458
+ export function nativeMessageToggleLabel(preview, expanded) {
459
+ if (expanded)
460
+ return 'Show less';
461
+ return `Show all · ${preview.lines} ${preview.lines === 1 ? 'line' : 'lines'}`;
462
+ }
463
+ /** The start of the turn still running, if any. A restarted host cannot continue a turn. */
464
+ function nativeOpenTurn(events) {
465
+ let turn;
466
+ for (const event of events) {
467
+ if (event.type === 'turn.started')
468
+ turn = event;
469
+ else if (['turn.completed', 'session.closed', 'session.started'].includes(event.type))
470
+ turn = undefined;
471
+ }
472
+ return turn;
473
+ }
474
+ /** The turn in progress, if any: when it started and the tool it is running now. */
475
+ export function nativeWork(events) {
476
+ const turn = nativeOpenTurn(events);
477
+ if (!turn)
478
+ return undefined;
479
+ const tools = new Map();
480
+ for (const event of events) {
481
+ if (event.sequence <= turn.sequence || !event.nativeId || !event.tool)
482
+ continue;
483
+ if (event.type === 'tool.started')
484
+ tools.set(event.nativeId, nativeToolLabel(event.tool));
485
+ else if (event.type === 'tool.completed')
486
+ tools.delete(event.nativeId);
487
+ }
488
+ return { since: Date.parse(turn.at), tool: [...tools.values()].at(-1) };
489
+ }
490
+ /**
491
+ * "Working · 1m 12s · Bash": how long the turn has run, and its current tool.
492
+ * `since` is the execution host's clock: a client clock ahead of it overstates the time by the skew.
493
+ */
494
+ export function nativeWorkLabel(work, now) {
495
+ return `Working · ${nativeElapsed(now - work.since)}${work.tool ? ` · ${work.tool}` : ''}`;
496
+ }
497
+ /** "12s", "1m 12s", "1h 3m". */
498
+ function nativeElapsed(ms) {
499
+ const seconds = Math.max(0, Math.floor(ms / 1000));
500
+ const minutes = Math.floor(seconds / 60);
501
+ if (minutes >= 60)
502
+ return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
503
+ return minutes ? `${minutes}m ${seconds % 60}s` : `${seconds}s`;
504
+ }
505
+ const NATIVE_TOOL_LABEL_CHARS = 120;
506
+ const NATIVE_TOOL_LABEL_FILES = 3;
507
+ // Fits a tool card's box without scrolling, so the end of the output is what the reader sees.
508
+ const NATIVE_TOOL_OUTPUT_LINES = 10;
509
+ const NATIVE_COMMAND_CHARS = 200;
510
+ // "Change", not "Edit": the kind also covers creating, deleting and moving a file.
511
+ const NATIVE_TOOL_VERBS = {
512
+ command: 'Run',
513
+ 'file-edit': 'Change',
514
+ 'file-read': 'Read',
515
+ search: 'Search',
516
+ };
517
+ /**
518
+ * A tool call as a reader reads it: "Run npm test", "Change a.ts, b.ts", "Read a.ts", "Search src",
519
+ * at most 120 characters before an ellipsis. A tool whose adapter gave no kind or subject keeps the
520
+ * runner's own name.
521
+ */
522
+ export function nativeToolLabel(tool) {
523
+ if (!tool)
524
+ return 'Tool';
525
+ const names = (tool.paths ?? []).map((path) => path.replace(/\/+$/, '').split('/').at(-1) || path);
526
+ const files = names.length > NATIVE_TOOL_LABEL_FILES
527
+ ? `${names.slice(0, NATIVE_TOOL_LABEL_FILES).join(', ')} and ${names.length - NATIVE_TOOL_LABEL_FILES} more`
528
+ : names.join(', ');
529
+ const verb = tool.kind && NATIVE_TOOL_VERBS[tool.kind];
530
+ const subject = tool.kind === 'command' ? tool.command?.trim().split(/\r?\n/)[0] : files;
531
+ if (!verb || !subject)
532
+ return tool.name;
533
+ return nativeClip(`${verb} ${subject}`, NATIVE_TOOL_LABEL_CHARS);
534
+ }
535
+ /**
536
+ * A command card's text: "$ npm test", then the last 10 lines it printed, with "… 12 earlier lines"
537
+ * above them; its raw input and output stay one tap away. Undefined for any other tool, whose card
538
+ * shows its raw input and output.
539
+ */
540
+ export function nativeCommandText(tool) {
541
+ if (tool?.kind !== 'command' || !tool.command)
542
+ return undefined;
543
+ // One line of the command: a heredoc would push the output out of view. All of it is in Raw.
544
+ const lines = tool.command.trim().split(/\r?\n/);
545
+ const command = `$ ${nativeClip(lines.length > 1 ? `${lines[0]} …` : lines[0], NATIVE_COMMAND_CHARS)}`;
546
+ if (tool.output === undefined)
547
+ return command;
548
+ const text = nativeOutputText(tool.output);
549
+ // Output that is not text would look like no output here; its raw card shows it.
550
+ if (text === undefined)
551
+ return undefined;
552
+ const output = terminalLinesFromText(text.replace(/[\r\n]+$/, ''));
553
+ if (!output.join(''))
554
+ return command;
555
+ const hidden = Math.max(0, output.length - NATIVE_TOOL_OUTPUT_LINES);
556
+ return [
557
+ command,
558
+ ...(hidden ? [`… ${hidden} earlier ${hidden === 1 ? 'line' : 'lines'}`] : []),
559
+ ...output.slice(hidden),
560
+ ].join('\n');
561
+ }
562
+ /**
563
+ * Runners return output as a string, as text blocks (`{ text }` or `{ content: { text } }`), or as a
564
+ * process result (`{ stdout, stderr }`).
565
+ */
566
+ function nativeOutputText(output) {
567
+ if (typeof output === 'string')
568
+ return output;
569
+ if (output && typeof output === 'object' && !Array.isArray(output)) {
570
+ const { stdout, stderr } = output;
571
+ const streams = [stdout, stderr].filter((stream) => typeof stream === 'string');
572
+ if (!streams.length)
573
+ return undefined;
574
+ return streams
575
+ .map((stream) => stream.replace(/[\r\n]+$/, ''))
576
+ .filter(Boolean)
577
+ .join('\n');
578
+ }
579
+ if (!Array.isArray(output))
580
+ return undefined;
581
+ const texts = output.flatMap((block) => {
582
+ const value = block && typeof block === 'object' ? block : {};
583
+ const content = value.content && typeof value.content === 'object'
584
+ ? value.content
585
+ : {};
586
+ const text = typeof value.text === 'string' ? value.text : content.text;
587
+ return typeof text === 'string' ? [text] : [];
588
+ });
589
+ return texts.length ? texts.join('\n') : undefined;
590
+ }
591
+ /**
592
+ * The timeline with a summary row for each finished turn's tool calls, "Worked for 4m 12s ·
593
+ * 6 tools", just before the turn's end, and those tools marked with it. Nothing moves when a
594
+ * turn finishes: the tools keep their place and their keys, and the row is added below them.
595
+ * A turn ends at `turn.completed`, or at `session.closed` when its host stopped mid-turn.
596
+ * Messages and statuses stay; a running turn has no summary.
597
+ */
598
+ export function nativeTimelineRows(entries) {
599
+ const rows = [];
600
+ let turn = [];
601
+ for (const entry of entries) {
602
+ const ends = entry.kind === 'status' && ['turn.completed', 'session.closed'].includes(entry.event.type);
603
+ if (!ends) {
604
+ turn.push(entry);
605
+ continue;
606
+ }
607
+ const tools = turn.filter((item) => item.kind === 'tool');
608
+ for (const item of turn)
609
+ rows.push({
610
+ kind: 'entry',
611
+ key: item.key,
612
+ entry: item,
613
+ ...(tools.length && item.kind === 'tool' ? { fold: entry.key } : {}),
614
+ });
615
+ if (tools.length) {
616
+ const prompt = turn.find((item) => item.kind === 'user' &&
617
+ entry.event.commandId !== undefined &&
618
+ item.event.commandId === entry.event.commandId) ?? turn.find((item) => item.kind === 'user');
619
+ // Without its prompt in the kept history, the turn's first kept entry is the best start.
620
+ const opened = prompt ?? turn[0];
621
+ const elapsed = nativeElapsed(Date.parse(entry.event.at) - Date.parse(opened.event.at));
622
+ const outcome = entry.event.type === 'session.closed' || entry.event.status === 'interrupted'
623
+ ? 'Stopped after'
624
+ : entry.event.status === 'failed'
625
+ ? 'Failed after'
626
+ : 'Worked for';
627
+ rows.push({
628
+ kind: 'work',
629
+ key: entry.key,
630
+ label: `${outcome} ${elapsed} · ${tools.length} ${tools.length === 1 ? 'tool' : 'tools'}`,
631
+ tools: tools.map((tool) => tool.key),
632
+ });
633
+ }
634
+ rows.push({ kind: 'entry', key: entry.key, entry });
635
+ turn = [];
636
+ }
637
+ for (const item of turn)
638
+ rows.push({ kind: 'entry', key: item.key, entry: item });
639
+ return rows;
640
+ }
641
+ /**
642
+ * Tools shown running in a live read here. A turn the reader watched starts open when it
643
+ * finishes, so its tools don't fold away under them. A stored snapshot is not live: a turn that
644
+ * finished while the reader was away starts folded.
645
+ */
646
+ export function nativeWatchTools(rows, watched, live) {
647
+ if (!live)
648
+ return;
649
+ for (const row of rows)
650
+ if (row.kind === 'entry' && row.entry.kind === 'tool' && row.fold === undefined)
651
+ watched.add(row.key);
652
+ }
653
+ export function nativeFoldWatched(row, watched) {
654
+ return row.tools.some((key) => watched.has(key));
284
655
  }
285
656
  //# sourceMappingURL=native-history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-history.js","sourceRoot":"","sources":["../../src/client-cache/native-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-history.js","sourceRoot":"","sources":["../../src/client-cache/native-history.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** Terminal output as plain text: escape sequences and control characters removed. */
2
+ export declare function stripTerminalControls(rawText: string): string;
3
+ /** The lines a terminal shows: controls stripped, a carriage return starts a line, no final empty line. */
4
+ export declare function terminalLinesFromText(rawText: string): string[];
5
+ export declare function terminalTailLinesFromText(rawText: string, maxLines: number): string[];
6
+ //# sourceMappingURL=terminal-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-text.d.ts","sourceRoot":"","sources":["../../src/client-cache/terminal-text.ts"],"names":[],"mappings":"AAMA,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/D;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrF"}
@@ -0,0 +1,27 @@
1
+ // The body stops at the first ESC: a hyperlink (OSC 8) ends at its own terminator, so its text stays.
2
+ const OSC_SEQUENCE_PATTERN = /\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
3
+ const CSI_SEQUENCE_PATTERN = /\x1b\[[0-?]*[ -/]*[@-~]/g;
4
+ const ANSI_ESCAPE_PATTERN = /\x1b[@-Z\\-_]/g;
5
+ const CONTROL_CHARS_PATTERN = /[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g;
6
+ /** Terminal output as plain text: escape sequences and control characters removed. */
7
+ export function stripTerminalControls(rawText) {
8
+ return rawText
9
+ .replace(OSC_SEQUENCE_PATTERN, '')
10
+ .replace(CSI_SEQUENCE_PATTERN, '')
11
+ .replace(ANSI_ESCAPE_PATTERN, '')
12
+ .replace(CONTROL_CHARS_PATTERN, '');
13
+ }
14
+ /** The lines a terminal shows: controls stripped, a carriage return starts a line, no final empty line. */
15
+ export function terminalLinesFromText(rawText) {
16
+ return stripTerminalControls(rawText)
17
+ .replace(/\r\n/g, '\n')
18
+ .replace(/\r/g, '\n')
19
+ .split('\n')
20
+ .filter((line, index, lines) => line.length > 0 || index < lines.length - 1);
21
+ }
22
+ export function terminalTailLinesFromText(rawText, maxLines) {
23
+ if (maxLines <= 0)
24
+ return [];
25
+ return terminalLinesFromText(rawText).slice(-maxLines);
26
+ }
27
+ //# sourceMappingURL=terminal-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-text.js","sourceRoot":"","sources":["../../src/client-cache/terminal-text.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,MAAM,oBAAoB,GAAG,oCAAoC,CAAC;AAClE,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AACxD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,qBAAqB,GAAG,mCAAmC,CAAC;AAElE,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,OAAO;SACX,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,qBAAqB,CAAC,OAAO,CAAC;SAClC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe,EAAE,QAAgB;IACzE,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC"}