@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.
- package/CHANGELOG.md +19 -0
- package/dist/client-cache/index.d.ts +1 -0
- package/dist/client-cache/index.d.ts.map +1 -1
- package/dist/client-cache/index.js +1 -0
- package/dist/client-cache/index.js.map +1 -1
- package/dist/client-cache/native-history.d.ts +112 -4
- package/dist/client-cache/native-history.d.ts.map +1 -1
- package/dist/client-cache/native-history.js +368 -17
- package/dist/client-cache/native-history.js.map +1 -1
- package/dist/client-cache/terminal-text.d.ts +6 -0
- package/dist/client-cache/terminal-text.d.ts.map +1 -0
- package/dist/client-cache/terminal-text.js +27 -0
- package/dist/client-cache/terminal-text.js.map +1 -0
- package/dist/contracts/config.d.ts +12 -0
- package/dist/contracts/config.d.ts.map +1 -1
- package/dist/contracts/config.js +4 -0
- package/dist/contracts/config.js.map +1 -1
- package/dist/contracts/family.d.ts +2 -1
- package/dist/contracts/family.d.ts.map +1 -1
- package/dist/contracts/family.js.map +1 -1
- package/dist/contracts/runs.d.ts +16 -3
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js.map +1 -1
- package/dist/recipe/claim-overrides.d.ts +18 -0
- package/dist/recipe/claim-overrides.d.ts.map +1 -1
- package/dist/recipe/claim-overrides.js +1 -0
- package/dist/recipe/claim-overrides.js.map +1 -1
- package/dist/rpc/native-session.d.ts +32 -7
- package/dist/rpc/native-session.d.ts.map +1 -1
- package/dist/rpc/native-session.js.map +1 -1
- package/dist/rpc/registry.d.ts +2 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +2 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/run.d.ts +21 -0
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/run.js +1 -0
- package/dist/rpc/run.js.map +1 -1
- package/dist/runs/decision-resolution.d.ts +7 -3
- package/dist/runs/decision-resolution.d.ts.map +1 -1
- package/dist/runs/decision-resolution.js +18 -1
- package/dist/runs/decision-resolution.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
146
|
-
|
|
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: {
|
|
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
|
-
|
|
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
|
|
288
|
-
!
|
|
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":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAsB,aAAa,EAA2B,MAAM,eAAe,CAAC;AAU3F,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC;YACzE,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAE7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,IACE,IAAI,EAAE,IAAI,KAAK,WAAW;gBAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;gBACxC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAC1C,CAAC;gBACD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,CAAC;;gBACC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5E,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvE,QAAQ,CAAC,KAAK,GAAG;oBACf,GAAG,SAAS;oBACZ,IAAI,EAAE;wBACJ,GAAG,OAAO,CAAC,IAAI;wBACf,GAAG,SAAS,CAAC,IAAI;wBACjB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM;qBAC3D;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAwB;oBACjC,GAAG,EAAE,KAAK,CAAC,QAAQ;oBACnB,IAAI,EAAE,MAAM;oBACZ,KAAK;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM;iBACjC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,QAAQ;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG,EAAE,KAAK,CAAC,QAAQ;gBACnB,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,IAAI,EACF,KAAK,CAAC,IAAI;oBACV,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB;wBAC9B,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE;wBACvC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;4BACtB,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAChC,MAAiC,EACjC,OAAe;IAEf,OAAO,sBAAsB,CAC3B,OAAO,CAAC,mBAAmB,EAC3B,mBAAmB,CAAC,MAAM,CAAC,EAC3B,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,MAAe,EACf,OAAe;IAEf,OAAO,aAAa,CAAI,MAA4B,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC5B,OAAO,KAAK,GAAG,CAAC,IAAI,QAAQ,GAAG,uBAAuB,EAAE,CAAC;QACvD,KAAK,EAAE,CAAC;QACR,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,QAAQ,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,QAAQ,GAAG,QAAQ;SACtB,KAAK,CAAC,KAAK,CAAC;SACZ,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,QAAQ,IAAI,uBAAuB,CAAC;SACnF,OAAO,EAAE,CAAC;IACb,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,KAAK,CAAC,KAAK;QACd,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,CAA0B,EAC1B,CAA0B;IAE1B,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAE,EAAE,CACjD,IAAI,CAAC,SAAS,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,EAAE;QACf,IAAI,CAAC,OAAO,CAAC,eAAe;QAC5B,IAAI,CAAC,OAAO,CAAC,gBAAgB;QAC7B,IAAI,CAAC,OAAO,CAAC,SAAS;QACtB,IAAI,CAAC,OAAO,CAAC,gBAAgB;QAC7B,IAAI,CAAC,OAAO,CAAC,eAAe;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU;QACvB,IAAI,CAAC,OAAO,CAAC,aAAa;QAC1B,IAAI,CAAC,KAAK,EAAE,OAAO;KACpB,CAAC,CAAC;IACL,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,wFAAwF;AACxF,SAAS,eAAe,CACtB,CAAgC,EAChC,CAAgC;IAEhC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACtD,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAChE,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AASD,SAAS,uBAAuB,CAAC,MAAmB;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO;IAC5B,2EAA2E;IAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC;IACrD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiC,EACjC,QAA6C,EAC7C,OAA4B,EAC5B,MAAmB;IAEnB,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;IAC9B,IAAI,KAAoC,CAAC;IACzC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,YAAY,GAAI,QAA8C,EAAE,WAAW,CAAC;IAClF,IAAI,aAAa,GAAG,YAAY,EAAE,aAAa,IAAI,CAAC,CAAC;IACrD,IAAI,UAAU,GAAG,YAAY,EAAE,UAAU,IAAI,EAAE,CAAC;IAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CACzB,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAC7E,MAAM,CACP,CAAC;QACF,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChC,aAAa,EAAE,CAAC;QAChB,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IACE,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;YACpC,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;YAEpE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,EAAE;gBACjF,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,IACE,MAAM,CAAC,MAAM;YACb,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO;gBAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO;gBACpD,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YAEvD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,EAAE;gBACvE,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,IAAI,QAAQ,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,EAAE;gBACvF,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,CAAC;QACD,IACE,QAAQ,EAAE,KAAK;YACf,IAAI,CAAC,KAAK;YACV,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU;gBAClD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK;gBACvC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;oBACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAEzE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,EAAE;gBACxE,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAyB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;gBACtC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI;gBAAE,SAAS;YACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC9E,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;YAC5F,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAClF,KAAK,GAAG,KAAK,CAAC;QACd,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,OAAO;gBACL,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE;gBACjE,aAAa,EAAE,KAAK;aACrB,CAAC;IACN,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;AAChG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAc,EAAE,MAAe,EAAE,OAAe;IAC5F,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAI3B,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5F,MAAM,QAAQ,GACZ,MAAM,KAAK,OAAO,CAAC,mBAAmB,IAAI,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC;IACrF,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,KAAK,OAAO,CAAC,mBAAmB;QACnE,OAAO;YACL;gBACE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAE,UAAoB,CAAC,CAAC,CAAE,gBAA0B;gBACtE,KAAK,EAAE,OAAgB;gBACvB,OAAO;aACR;SACF,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;IACjD,IAAI,QAAQ;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,OAAO;QACL;YACE,MAAM,EAAE,gBAAyB;YACjC,MAAM;YACN,OAAO;YACP,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;KACF,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAkC,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAC3D,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,IACE,MAAM,CAAC,MAAM;QACb,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,IAAI,CAClD,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAO,EAAE,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAO,EAAE,GAAG,CAAC,CAC5F;QAED,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,OAAO;QAClD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CACpC,KAAsD;IAEtD,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;AACtI,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAiC,EACjC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,OAAO,CACL,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,MAAM,CAAC,SAAS;QACrC,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;QACpE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,MAAM;YACb,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO;gBAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO;gBACpD,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAoE,EACpE,QAA6C,EAC7C,SAAkB,EAClB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,OAAO,CACL,CAAC,CAAC,WAAW,EAAE,aAAa;QAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;QACrC,CAAC,CAAC,QAAQ;QACV,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,QAAQ,CAAC,OAAO,CAClB,CAAC;AACJ,CAAC;AAOD,qGAAqG;AACrG,MAAM,UAAU,gBAAgB,CAC9B,QAA0B,EAC1B,IAA6B;IAE7B,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM;YAAE,SAAS;QACvC,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,GAAG,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA8B;IAChE,IAAI,CAAC,OAAO;QAAE,OAAO,kBAAkB,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,0BAA0B,CAAC;IACtD,IAAI,OAAO,CAAC,OAAO,KAAK,aAAa;QAAE,OAAO,aAAa,CAAC;IAC5D,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,4BAA4B,CAAC;QACtC,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,wBAAwB,CACtC,OAAkD,EAClD,iBAAyB,EACzB,OAA8B,EAC9B,SAA+B,EAAE;IAEjC,OAAO,CACL,OAAO,CAAC,UAAU,KAAK,iBAAiB;QACxC,CAAC,CAAC,CAAC,OAAO;YACR,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;YACvC,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YACzC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CACT,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAC/B,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;YACrC,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAC1C,CACF,CAAC;AACJ,CAAC"}
|
|
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[];
|