@farmslot/protocol 0.74.4 → 0.74.6

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 (45) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/client-cache/index.d.ts +1 -0
  3. package/dist/client-cache/index.d.ts.map +1 -1
  4. package/dist/client-cache/index.js +1 -0
  5. package/dist/client-cache/index.js.map +1 -1
  6. package/dist/client-cache/native-history.d.ts +112 -4
  7. package/dist/client-cache/native-history.d.ts.map +1 -1
  8. package/dist/client-cache/native-history.js +368 -17
  9. package/dist/client-cache/native-history.js.map +1 -1
  10. package/dist/client-cache/terminal-text.d.ts +6 -0
  11. package/dist/client-cache/terminal-text.d.ts.map +1 -0
  12. package/dist/client-cache/terminal-text.js +27 -0
  13. package/dist/client-cache/terminal-text.js.map +1 -0
  14. package/dist/contracts/config.d.ts +12 -0
  15. package/dist/contracts/config.d.ts.map +1 -1
  16. package/dist/contracts/config.js +4 -0
  17. package/dist/contracts/config.js.map +1 -1
  18. package/dist/contracts/family.d.ts +2 -1
  19. package/dist/contracts/family.d.ts.map +1 -1
  20. package/dist/contracts/family.js.map +1 -1
  21. package/dist/contracts/runs.d.ts +16 -3
  22. package/dist/contracts/runs.d.ts.map +1 -1
  23. package/dist/contracts/runs.js.map +1 -1
  24. package/dist/recipe/claim-overrides.d.ts +18 -0
  25. package/dist/recipe/claim-overrides.d.ts.map +1 -1
  26. package/dist/recipe/claim-overrides.js +1 -0
  27. package/dist/recipe/claim-overrides.js.map +1 -1
  28. package/dist/rpc/native-session.d.ts +32 -7
  29. package/dist/rpc/native-session.d.ts.map +1 -1
  30. package/dist/rpc/native-session.js.map +1 -1
  31. package/dist/rpc/registry.d.ts +2 -0
  32. package/dist/rpc/registry.d.ts.map +1 -1
  33. package/dist/rpc/registry.js +2 -0
  34. package/dist/rpc/registry.js.map +1 -1
  35. package/dist/rpc/run.d.ts +21 -0
  36. package/dist/rpc/run.d.ts.map +1 -1
  37. package/dist/rpc/run.js +1 -0
  38. package/dist/rpc/run.js.map +1 -1
  39. package/dist/runs/decision-resolution.d.ts +7 -3
  40. package/dist/runs/decision-resolution.d.ts.map +1 -1
  41. package/dist/runs/decision-resolution.js +18 -1
  42. package/dist/runs/decision-resolution.js.map +1 -1
  43. package/dist/version.d.ts +1 -1
  44. package/dist/version.js +1 -1
  45. package/package.json +1 -1
@@ -1,16 +1,14 @@
1
1
  import { Methods } from '../rpc/registry.js';
2
2
  import { canActOn } from './held-data.js';
3
3
  import { resourceQuery } from './registry.js';
4
+ import { terminalLinesFromText } from './terminal-text.js';
4
5
  export function nativeTimeline(events) {
5
6
  const entries = [];
6
7
  const userCommands = new Set();
7
8
  const tools = new Map();
8
9
  const prompts = new Map();
9
10
  for (const event of events) {
10
- if ((event.type === 'command.submitted' || event.type === 'command.accepted') &&
11
- event.commandId &&
12
- event.text !== undefined &&
13
- !prompts.has(event.commandId))
11
+ if (nativePrompt(event) && !prompts.has(event.commandId))
14
12
  prompts.set(event.commandId, event);
15
13
  }
16
14
  for (const event of events) {
@@ -37,27 +35,40 @@ export function nativeTimeline(events) {
37
35
  if (previous) {
38
36
  const completed = previous.event.type === 'tool.completed' ? previous.event : event;
39
37
  const started = event.type === 'tool.started' ? event : previous.event;
38
+ // Keep the entry's sequence: cached history keeps only this merged event, and the next read
39
+ // keys the tool by it, so a card the reader opened stays the same card when it finishes.
40
40
  previous.event = {
41
41
  ...completed,
42
+ sequence: previous.key,
42
43
  tool: {
43
44
  ...started.tool,
44
45
  ...completed.tool,
45
46
  name: started.tool?.name ?? completed.tool?.name ?? 'Tool',
46
47
  },
47
48
  };
49
+ // A runner can name the command or files only after the call started (Cursor does).
50
+ previous.text = nativeToolLabel(previous.event.tool);
48
51
  }
49
52
  else {
50
53
  const entry = {
51
54
  key: event.sequence,
52
55
  kind: 'tool',
53
56
  event,
54
- text: event.tool?.name ?? 'Tool',
57
+ text: nativeToolLabel(event.tool),
55
58
  };
56
59
  entries.push(entry);
57
60
  if (identity)
58
61
  tools.set(identity, entry);
59
62
  }
60
63
  }
64
+ else if (event.type === 'approval.resolved' && event.request) {
65
+ entries.push({
66
+ key: event.sequence,
67
+ kind: 'resolution',
68
+ event,
69
+ text: nativeResolutionText(event.request, event.response),
70
+ });
71
+ }
61
72
  else if (['turn.completed', 'session.closed', 'error'].includes(event.type)) {
62
73
  entries.push({
63
74
  key: event.sequence,
@@ -74,6 +85,30 @@ export function nativeTimeline(events) {
74
85
  }
75
86
  return entries;
76
87
  }
88
+ /**
89
+ * "Approved: rm -r build", "Declined: …", "Answered: Which file? → a.ts", or "Resolved: …" when
90
+ * the host did not deliver the response (the runner resolved it), so the decision is unknown.
91
+ */
92
+ function nativeResolutionText(request, response) {
93
+ const questions = request.questions ?? [];
94
+ const answered = questions.flatMap((question) => {
95
+ const answer = response?.answers?.[question.id];
96
+ return answer?.length ? [`${question.prompt} → ${answer.join(', ')}`] : [];
97
+ });
98
+ if (answered.length)
99
+ return `Answered: ${answered.join('; ')}`;
100
+ const subject = questions.length
101
+ ? questions.map((question) => question.prompt).join('; ')
102
+ : (request.detail ?? request.tool?.name ?? request.title);
103
+ const outcome = response?.decision === 'approve'
104
+ ? 'Approved'
105
+ : response?.decision === 'deny'
106
+ ? 'Declined'
107
+ : 'Resolved';
108
+ return `${outcome}: ${subject}`;
109
+ }
110
+ /** Bumped when retention keeps more: a snapshot saved by an older reader is read again from its start, once. */
111
+ const NATIVE_HISTORY_PROJECTION = 3;
77
112
  export const NATIVE_HISTORY_MESSAGES = 200;
78
113
  export const NATIVE_HISTORY_SESSIONS = 10;
79
114
  /** One durable observation per opened session/binding, never per cursor page. */
@@ -99,10 +134,17 @@ export function retainNativeMessages(events) {
99
134
  .reverse()
100
135
  .filter((entry) => entry.kind !== 'status' || ++statuses <= NATIVE_HISTORY_MESSAGES)
101
136
  .reverse();
102
- return retained.map((entry) => ({
137
+ const kept = retained.map((entry) => ({
103
138
  ...entry.event,
104
139
  ...(entry.kind === 'assistant' || entry.kind === 'user' ? { text: entry.text } : {}),
105
140
  }));
141
+ // A running turn's start is not a timeline entry, but its working time is counted from it.
142
+ // Appended: the timeline skips it and nativeWork compares sequences, so its place does not
143
+ // matter, and sorting would move tool cards that finished out of order.
144
+ const turn = nativeOpenTurn(events);
145
+ if (!turn || kept.some((item) => item.sequence === turn.sequence))
146
+ return kept;
147
+ return [...kept, turn];
106
148
  }
107
149
  export function sameNativeHistoryIdentity(a, b) {
108
150
  const identity = (page) => JSON.stringify([
@@ -142,11 +184,13 @@ function assertHistoryNotAborted(signal) {
142
184
  * Cursor drains remain read-only. Neither receipts nor pending intents are dispatched here.
143
185
  */
144
186
  export async function readNativeHistory(target, previous, request, signal) {
145
- let retained = previous;
146
- let cursor = previous?.cursor;
187
+ const previousRead = previous?.historyRead;
188
+ // Saved by a reader that dropped the running turn's start: keep its identity, reread its events.
189
+ const replay = previousRead !== undefined && previousRead.projection !== NATIVE_HISTORY_PROJECTION;
190
+ let retained = previous && replay ? { ...previous, events: [] } : previous;
191
+ let cursor = replay ? undefined : previous?.cursor;
147
192
  let stamp;
148
193
  let first = true;
149
- const previousRead = previous?.historyRead;
150
194
  let pageReadCount = previousRead?.pageReadCount ?? 0;
151
195
  let pageAfters = previousRead?.pageAfters ?? [];
152
196
  for (let pages = 0; pages < 1000; pages++) {
@@ -202,7 +246,10 @@ export async function readNativeHistory(target, previous, request, signal) {
202
246
  cursor = page.cursor;
203
247
  if (!page.hasMore)
204
248
  return {
205
- data: { ...retained, historyRead: { pageReadCount, pageAfters } },
249
+ data: {
250
+ ...retained,
251
+ historyRead: { pageReadCount, pageAfters, projection: NATIVE_HISTORY_PROJECTION },
252
+ },
206
253
  resourceState: stamp,
207
254
  };
208
255
  }
@@ -276,16 +323,28 @@ export function storedNativeHistoryMatches(target, value) {
276
323
  page.session.workerLeaseId === target.worker.leaseId &&
277
324
  page.session.generation === target.worker.generation)));
278
325
  }
279
- /**
280
- * The shared held-data action rule, for the exact history snapshot on screen. Native actions do
281
- * not reread first, so history restored from storage (no read stamp) waits for a live read.
282
- */
283
- export function nativeHistoryCanAct(observation, rendered, connected, now = Date.now()) {
326
+ /** Current, complete history under the shared held-data rule. */
327
+ function nativeHistoryCurrent(observation, connected, now) {
284
328
  return (!!observation?.resourceState &&
285
329
  canActOn(observation, connected, now) &&
330
+ !!observation.data &&
331
+ !observation.data.hasMore);
332
+ }
333
+ /**
334
+ * Sending a message: current, complete history of the conversation on screen. A newer read of it,
335
+ * landing while a turn streams, does not refuse the message; a resumed generation, another worker
336
+ * lease or a released task scope does. Native actions do not reread first, so history restored from
337
+ * storage (no read stamp) waits for a live read.
338
+ */
339
+ export function nativeHistoryCanSend(observation, rendered, connected, now = Date.now()) {
340
+ return (nativeHistoryCurrent(observation, connected, now) &&
286
341
  !!rendered &&
287
- observation.data === rendered &&
288
- !rendered.hasMore);
342
+ sameNativeHistoryIdentity(observation.data, rendered) &&
343
+ !observation.data.scope?.released);
344
+ }
345
+ /** An answer or stop acts on the exact history snapshot on screen. */
346
+ export function nativeHistoryCanAct(observation, rendered, connected, now = Date.now()) {
347
+ return nativeHistoryCurrent(observation, connected, now) && observation.data === rendered;
289
348
  }
290
349
  /** Page sequence is authoritative. Ignore repeats; reject a gap rather than hide missing history. */
291
350
  export function appendNativePage(previous, page) {
@@ -303,6 +362,17 @@ export function appendNativePage(previous, page) {
303
362
  }
304
363
  return cursor === previous.cursor ? previous : { events, cursor };
305
364
  }
365
+ /**
366
+ * The composer's send action for a session in this state: "Send" when it is idle, "Queue message"
367
+ * for the next turn while a turn runs or waits on a request. Undefined: it takes no input now.
368
+ */
369
+ export function nativeSendLabel(state) {
370
+ if (state === 'idle')
371
+ return 'Send';
372
+ if (state === 'running' || state === 'waiting')
373
+ return 'Queue message';
374
+ return undefined;
375
+ }
306
376
  export function nativeDeliveryLabel(receipt) {
307
377
  if (!receipt)
308
378
  return 'Delivery unknown';
@@ -310,6 +380,8 @@ export function nativeDeliveryLabel(receipt) {
310
380
  return 'Queued for the next turn';
311
381
  if (receipt.outcome === 'interrupted')
312
382
  return 'Interrupted';
383
+ if (receipt.outcome === 'cancelled')
384
+ return 'Removed';
313
385
  switch (receipt.state) {
314
386
  case 'pending':
315
387
  return 'Submitting';
@@ -323,6 +395,39 @@ export function nativeDeliveryLabel(receipt) {
323
395
  return 'Failed';
324
396
  }
325
397
  }
398
+ /** A sent message the timeline shows: its submission or acceptance, with the message text. */
399
+ function nativePrompt(event) {
400
+ return ((event.type === 'command.submitted' || event.type === 'command.accepted') &&
401
+ !!event.commandId &&
402
+ event.text !== undefined);
403
+ }
404
+ /**
405
+ * Whether the timeline shows the message sent as `commandId`. Until it does, a
406
+ * client shows the message itself, with its delivery state.
407
+ */
408
+ export function nativeMessageShown(events, commandId) {
409
+ return events.some((event) => event.commandId === commandId && nativePrompt(event));
410
+ }
411
+ /**
412
+ * Whether the host failed a sent message without submitting it, as it does with a queued
413
+ * message when the session closes or its worker lease changes. The runner never got the
414
+ * text and nothing else keeps it, so a client gives it back to the reader. The host's
415
+ * receipt decides, not the client's events: those may no longer hold a delivered prompt.
416
+ */
417
+ export function nativeMessageDropped(receipt) {
418
+ return receipt?.state === 'failed' && !receipt.submitted;
419
+ }
420
+ /**
421
+ * Whether a sent message can still be taken back: its host removes queued messages, and this one
422
+ * waits in the current generation's queue, unsubmitted. Removing it drops it, so
423
+ * `nativeMessageDropped` returns its text to the composer: that is how a client edits it.
424
+ */
425
+ export function nativeMessageCancelable(session, receipt) {
426
+ return (!!session?.capabilities.cancelQueued &&
427
+ !!receipt?.queued &&
428
+ !receipt.submitted &&
429
+ receipt.generation === session.generation);
430
+ }
326
431
  /** A confirmed replacement generation must not inherit the old browser input lock. */
327
432
  export function nativeCommandLockSettled(command, currentGeneration, receipt, events = []) {
328
433
  return (command.generation !== currentGeneration ||
@@ -334,4 +439,250 @@ export function nativeCommandLockSettled(command, currentGeneration, receipt, ev
334
439
  event.commandId === command.commandId &&
335
440
  event.generation === command.generation));
336
441
  }
442
+ /** A reader within this distance of the end of a conversation follows new output. */
443
+ const NATIVE_FOLLOW_SLACK_PX = 80;
444
+ /** Opening a conversation, or jumping to its latest entry, follows again. */
445
+ export const NATIVE_FOLLOW_LATEST = { following: true, unseen: 0 };
446
+ /** The reader scrolled. Back at the end means caught up. */
447
+ export function nativeFollowScrolled(state, distanceFromEnd) {
448
+ if (distanceFromEnd < NATIVE_FOLLOW_SLACK_PX)
449
+ return NATIVE_FOLLOW_LATEST;
450
+ return state.following ? { following: false, unseen: 0 } : state;
451
+ }
452
+ /** Entries arrived. A reader away from the end has that many more to catch up on. */
453
+ export function nativeFollowGrew(state, added) {
454
+ return state.following || added <= 0 ? state : { ...state, unseen: state.unseen + added };
455
+ }
456
+ /** The jump control's label, or none while the reader follows. */
457
+ export function nativeFollowLabel(state) {
458
+ if (state.following)
459
+ return undefined;
460
+ return state.unseen ? `Latest · ${state.unseen} new` : 'Latest';
461
+ }
462
+ const NATIVE_MESSAGE_PREVIEW_LINES = 8;
463
+ const NATIVE_MESSAGE_PREVIEW_CHARS = 600;
464
+ // A message collapses only when that hides a real amount, never a line or a few characters.
465
+ const NATIVE_MESSAGE_COLLAPSE_LINES = 12;
466
+ const NATIVE_MESSAGE_COLLAPSE_CHARS = 900;
467
+ /** A long message (a worker's dispatch prompt) shows its start until the reader expands it. */
468
+ export function nativeMessagePreview(text) {
469
+ // A trailing newline is not a line the reader sees.
470
+ const body = text.replace(/\n+$/, '');
471
+ const lines = body.split('\n');
472
+ if (body.length <= NATIVE_MESSAGE_COLLAPSE_CHARS && lines.length <= NATIVE_MESSAGE_COLLAPSE_LINES)
473
+ return undefined;
474
+ const head = lines.slice(0, NATIVE_MESSAGE_PREVIEW_LINES).join('\n');
475
+ return { text: nativeClip(head, NATIVE_MESSAGE_PREVIEW_CHARS), lines: lines.length };
476
+ }
477
+ /** At most `max` characters, then "…" where it was cut, never splitting a surrogate pair. */
478
+ function nativeClip(text, max) {
479
+ if (text.length <= max)
480
+ return text;
481
+ return `${text
482
+ .slice(0, max)
483
+ .replace(/[\uD800-\uDBFF]$/, '')
484
+ .trimEnd()}…`;
485
+ }
486
+ /** Only the reader's own messages collapse; assistant, tool and status entries show in full. */
487
+ export function nativeEntryPreview(entry) {
488
+ return entry.kind === 'user' ? nativeMessagePreview(entry.text) : undefined;
489
+ }
490
+ export function nativeMessageToggleLabel(preview, expanded) {
491
+ if (expanded)
492
+ return 'Show less';
493
+ return `Show all · ${preview.lines} ${preview.lines === 1 ? 'line' : 'lines'}`;
494
+ }
495
+ /** The start of the turn still running, if any. A restarted host cannot continue a turn. */
496
+ function nativeOpenTurn(events) {
497
+ let turn;
498
+ for (const event of events) {
499
+ if (event.type === 'turn.started')
500
+ turn = event;
501
+ else if (['turn.completed', 'session.closed', 'session.started'].includes(event.type))
502
+ turn = undefined;
503
+ }
504
+ return turn;
505
+ }
506
+ /** The turn in progress, if any: when it started and the tool it is running now. */
507
+ export function nativeWork(events) {
508
+ const turn = nativeOpenTurn(events);
509
+ if (!turn)
510
+ return undefined;
511
+ const tools = new Map();
512
+ for (const event of events) {
513
+ if (event.sequence <= turn.sequence || !event.nativeId || !event.tool)
514
+ continue;
515
+ if (event.type === 'tool.started')
516
+ tools.set(event.nativeId, nativeToolLabel(event.tool));
517
+ else if (event.type === 'tool.completed')
518
+ tools.delete(event.nativeId);
519
+ }
520
+ return { since: Date.parse(turn.at), tool: [...tools.values()].at(-1) };
521
+ }
522
+ /**
523
+ * "Working · 1m 12s · Bash": how long the turn has run, and its current tool.
524
+ * `since` is the execution host's clock: a client clock ahead of it overstates the time by the skew.
525
+ */
526
+ export function nativeWorkLabel(work, now) {
527
+ return `Working · ${nativeElapsed(now - work.since)}${work.tool ? ` · ${work.tool}` : ''}`;
528
+ }
529
+ /** "12s", "1m 12s", "1h 3m". */
530
+ function nativeElapsed(ms) {
531
+ const seconds = Math.max(0, Math.floor(ms / 1000));
532
+ const minutes = Math.floor(seconds / 60);
533
+ if (minutes >= 60)
534
+ return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
535
+ return minutes ? `${minutes}m ${seconds % 60}s` : `${seconds}s`;
536
+ }
537
+ const NATIVE_TOOL_LABEL_CHARS = 120;
538
+ const NATIVE_TOOL_LABEL_FILES = 3;
539
+ // Fits a tool card's box without scrolling, so the end of the output is what the reader sees.
540
+ const NATIVE_TOOL_OUTPUT_LINES = 10;
541
+ const NATIVE_COMMAND_CHARS = 200;
542
+ // "Change", not "Edit": the kind also covers creating, deleting and moving a file.
543
+ const NATIVE_TOOL_VERBS = {
544
+ command: 'Run',
545
+ 'file-edit': 'Change',
546
+ 'file-read': 'Read',
547
+ search: 'Search',
548
+ };
549
+ /**
550
+ * A tool call as a reader reads it: "Run npm test", "Change a.ts, b.ts", "Read a.ts", "Search src",
551
+ * at most 120 characters before an ellipsis. A tool whose adapter gave no kind or subject keeps the
552
+ * runner's own name.
553
+ */
554
+ export function nativeToolLabel(tool) {
555
+ if (!tool)
556
+ return 'Tool';
557
+ const names = (tool.paths ?? []).map((path) => path.replace(/\/+$/, '').split('/').at(-1) || path);
558
+ const files = names.length > NATIVE_TOOL_LABEL_FILES
559
+ ? `${names.slice(0, NATIVE_TOOL_LABEL_FILES).join(', ')} and ${names.length - NATIVE_TOOL_LABEL_FILES} more`
560
+ : names.join(', ');
561
+ const verb = tool.kind && NATIVE_TOOL_VERBS[tool.kind];
562
+ const subject = tool.kind === 'command' ? tool.command?.trim().split(/\r?\n/)[0] : files;
563
+ if (!verb || !subject)
564
+ return tool.name;
565
+ return nativeClip(`${verb} ${subject}`, NATIVE_TOOL_LABEL_CHARS);
566
+ }
567
+ /**
568
+ * A command card's text: "$ npm test", then the last 10 lines it printed, with "… 12 earlier lines"
569
+ * above them; its raw input and output stay one tap away. Undefined for any other tool, whose card
570
+ * shows its raw input and output.
571
+ */
572
+ export function nativeCommandText(tool) {
573
+ if (tool?.kind !== 'command' || !tool.command)
574
+ return undefined;
575
+ // One line of the command: a heredoc would push the output out of view. All of it is in Raw.
576
+ const lines = tool.command.trim().split(/\r?\n/);
577
+ const command = `$ ${nativeClip(lines.length > 1 ? `${lines[0]} …` : lines[0], NATIVE_COMMAND_CHARS)}`;
578
+ if (tool.output === undefined)
579
+ return command;
580
+ const text = nativeOutputText(tool.output);
581
+ // Output that is not text would look like no output here; its raw card shows it.
582
+ if (text === undefined)
583
+ return undefined;
584
+ const output = terminalLinesFromText(text.replace(/[\r\n]+$/, ''));
585
+ if (!output.join(''))
586
+ return command;
587
+ const hidden = Math.max(0, output.length - NATIVE_TOOL_OUTPUT_LINES);
588
+ return [
589
+ command,
590
+ ...(hidden ? [`… ${hidden} earlier ${hidden === 1 ? 'line' : 'lines'}`] : []),
591
+ ...output.slice(hidden),
592
+ ].join('\n');
593
+ }
594
+ /**
595
+ * Runners return output as a string, as text blocks (`{ text }` or `{ content: { text } }`), or as a
596
+ * process result (`{ stdout, stderr }`).
597
+ */
598
+ function nativeOutputText(output) {
599
+ if (typeof output === 'string')
600
+ return output;
601
+ if (output && typeof output === 'object' && !Array.isArray(output)) {
602
+ const { stdout, stderr } = output;
603
+ const streams = [stdout, stderr].filter((stream) => typeof stream === 'string');
604
+ if (!streams.length)
605
+ return undefined;
606
+ return streams
607
+ .map((stream) => stream.replace(/[\r\n]+$/, ''))
608
+ .filter(Boolean)
609
+ .join('\n');
610
+ }
611
+ if (!Array.isArray(output))
612
+ return undefined;
613
+ const texts = output.flatMap((block) => {
614
+ const value = block && typeof block === 'object' ? block : {};
615
+ const content = value.content && typeof value.content === 'object'
616
+ ? value.content
617
+ : {};
618
+ const text = typeof value.text === 'string' ? value.text : content.text;
619
+ return typeof text === 'string' ? [text] : [];
620
+ });
621
+ return texts.length ? texts.join('\n') : undefined;
622
+ }
623
+ /**
624
+ * The timeline with a summary row for each finished turn's tool calls, "Worked for 4m 12s ·
625
+ * 6 tools", just before the turn's end, and those tools marked with it. Nothing moves when a
626
+ * turn finishes: the tools keep their place and their keys, and the row is added below them.
627
+ * A turn ends at `turn.completed`, or at `session.closed` when its host stopped mid-turn.
628
+ * Messages and statuses stay; a running turn has no summary.
629
+ */
630
+ export function nativeTimelineRows(entries) {
631
+ const rows = [];
632
+ let turn = [];
633
+ for (const entry of entries) {
634
+ const ends = entry.kind === 'status' && ['turn.completed', 'session.closed'].includes(entry.event.type);
635
+ if (!ends) {
636
+ turn.push(entry);
637
+ continue;
638
+ }
639
+ const tools = turn.filter((item) => item.kind === 'tool');
640
+ for (const item of turn)
641
+ rows.push({
642
+ kind: 'entry',
643
+ key: item.key,
644
+ entry: item,
645
+ ...(tools.length && item.kind === 'tool' ? { fold: entry.key } : {}),
646
+ });
647
+ if (tools.length) {
648
+ const prompt = turn.find((item) => item.kind === 'user' &&
649
+ entry.event.commandId !== undefined &&
650
+ item.event.commandId === entry.event.commandId) ?? turn.find((item) => item.kind === 'user');
651
+ // Without its prompt in the kept history, the turn's first kept entry is the best start.
652
+ const opened = prompt ?? turn[0];
653
+ const elapsed = nativeElapsed(Date.parse(entry.event.at) - Date.parse(opened.event.at));
654
+ const outcome = entry.event.type === 'session.closed' || entry.event.status === 'interrupted'
655
+ ? 'Stopped after'
656
+ : entry.event.status === 'failed'
657
+ ? 'Failed after'
658
+ : 'Worked for';
659
+ rows.push({
660
+ kind: 'work',
661
+ key: entry.key,
662
+ label: `${outcome} ${elapsed} · ${tools.length} ${tools.length === 1 ? 'tool' : 'tools'}`,
663
+ tools: tools.map((tool) => tool.key),
664
+ });
665
+ }
666
+ rows.push({ kind: 'entry', key: entry.key, entry });
667
+ turn = [];
668
+ }
669
+ for (const item of turn)
670
+ rows.push({ kind: 'entry', key: item.key, entry: item });
671
+ return rows;
672
+ }
673
+ /**
674
+ * Tools shown running in a live read here. A turn the reader watched starts open when it
675
+ * finishes, so its tools don't fold away under them. A stored snapshot is not live: a turn that
676
+ * finished while the reader was away starts folded.
677
+ */
678
+ export function nativeWatchTools(rows, watched, live) {
679
+ if (!live)
680
+ return;
681
+ for (const row of rows)
682
+ if (row.kind === 'entry' && row.entry.kind === 'tool' && row.fold === undefined)
683
+ watched.add(row.key);
684
+ }
685
+ export function nativeFoldWatched(row, watched) {
686
+ return row.tools.some((key) => watched.has(key));
687
+ }
337
688
  //# 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"}
@@ -178,12 +178,24 @@ export interface ProjectRecipeConfig {
178
178
  }
179
179
  /** Validate recipe metadata before resolving or importing any executable source. */
180
180
  export declare function validateProjectRecipeConfig(value: unknown): asserts value is ProjectRecipeConfig;
181
+ /**
182
+ * project.json `slot_selection.physical_devices` (ADR-054 amendment, 2026-10-31).
183
+ * `on-request` keeps automatic selection off physical device slots unless the run
184
+ * requests a capability or an operator pins the slot. Absent means `any`.
185
+ */
186
+ export type PhysicalDeviceSlotPolicy = 'any' | 'on-request';
187
+ export declare const PHYSICAL_DEVICE_SLOT_POLICIES: readonly PhysicalDeviceSlotPolicy[];
188
+ export interface ProjectSlotSelectionConfig {
189
+ physicalDevices: PhysicalDeviceSlotPolicy;
190
+ }
181
191
  export interface ProjectConfig {
182
192
  name: string;
183
193
  repoUrl: string;
184
194
  defaultBranch: string;
185
195
  /** Linked-worktree idle branch template (e.g. wt/{{session}}). See ADR-042. */
186
196
  slotTrackingBranch?: string;
197
+ /** Automatic slot selection policy; absent selects any slot (`physicalDevices: 'any'`). */
198
+ slotSelection?: ProjectSlotSelectionConfig;
187
199
  /** Operator/docs hint for worktree sandboxes. Stale/idle inference uses fleet-probed linkedWorktree on SlotStatus, not this path. */
188
200
  worktreeBase?: string;
189
201
  apps?: string[];