@dsiloed/silo-link 1.19.19 → 1.19.21

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.
@@ -13,7 +13,7 @@ export interface LaunchIdentity {
13
13
  token: string;
14
14
  conversationId?: number;
15
15
  }
16
- interface TmuxSessionInfo {
16
+ export interface TmuxSessionInfo {
17
17
  conversationId: number;
18
18
  startedAt: Date;
19
19
  cwd?: string;
@@ -187,9 +187,14 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
187
187
  * input instead of interpreting control chars / shortcuts. Gemini CLI needs
188
188
  * this: a raw paste of a long markdown prompt trips its `!` shell-mode toggle,
189
189
  * dropping the session into shell mode and running the prompt as a bash command.
190
- * Claude Code works fine without it, so this stays off by default and is
191
- * overridden in GeminiLauncher. The submit Enter is sent separately after a
192
- * delay, so bracketed paste doesn't swallow it. */
190
+ * Claude Code mostly works without it — but a RAW paste of a ~20KB prompt is a
191
+ * timing flake: twice (orch 231 on 2026-08-31, orch 259 on 2026-09-17) the TUI
192
+ * recorded only the last few hundred chars. The bracketed resend landed intact
193
+ * both times, and a resend is a worse turn than a clean first paste (a second
194
+ * "here are your instructions again" message read as a prompt injection to the
195
+ * 09-17 worker, which refused the stage). So bracketed is the default for every
196
+ * launcher now; the raw path is opt-out. The submit Enter is sent separately
197
+ * after a delay, so bracketed paste doesn't swallow it. */
193
198
  protected usesBracketedPaste(): boolean;
194
199
  /** Return the session prompt from config */
195
200
  protected abstract getSessionPrompt(): string | undefined;
@@ -236,6 +241,49 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
236
241
  */
237
242
  protected submitStillPending(pane: string, message: string): boolean;
238
243
  protected verifySubmitted(name: string, message: string, attempt: number): void;
244
+ /**
245
+ * Deliver `text` to the pane as the next input: load-buffer + paste-buffer +
246
+ * a separate Enter, then verifySubmitted. tmux send-keys has a per-command
247
+ * length limit ("command too long" around 10–20KB depending on platform),
248
+ * which silently broke long agent prompts (runbook + ticket context can be
249
+ * 15KB+). load-buffer reads from a file and has no such limit. Newlines are
250
+ * preserved so multi-line prompts paste cleanly; the trailing Enter is sent as
251
+ * a separate send-keys after a short delay (sidesteps bracketed-paste
252
+ * swallowing the submit).
253
+ *
254
+ * `bracketed` wraps the paste in bracketed-paste markers (`paste-buffer -p`)
255
+ * so the TUI takes the whole blob as ONE paste regardless of how the pty
256
+ * chunks it — see usesBracketedPaste() for why Claude Code normally runs
257
+ * without it, and verifyPromptDelivered() for the resend that turns it on.
258
+ * `onSubmitted` fires once the Enter has been sent (best-effort; never on a
259
+ * paste failure).
260
+ */
261
+ protected pastePromptIntoPane(name: string, text: string, opts?: {
262
+ bracketed?: boolean;
263
+ onSubmitted?: () => void;
264
+ }): void;
265
+ protected static readonly DELIVERY_VERIFY_DELAY_MS = 8000;
266
+ protected static readonly DELIVERY_VERIFY_POLL_MS = 5000;
267
+ protected static readonly DELIVERY_VERIFY_POLLS = 6;
268
+ protected static readonly DELIVERY_MIN_RATIO = 0.9;
269
+ protected static readonly DELIVERY_MAX_RESENDS = 1;
270
+ protected static readonly DELIVERY_RESEND_PREFIX: string;
271
+ /**
272
+ * How many chars of prompt the CLI actually recorded for this pane, or null
273
+ * when it can't be known yet / at all. Agent-agnostic seam: the base flow
274
+ * (verifyPromptDelivered) calls this; each launcher overrides it from its
275
+ * transcript format. Default null = delivery verification is skipped.
276
+ * Best-effort: must never throw into the launch path.
277
+ */
278
+ protected readDeliveredPromptLength(_info: TmuxSessionInfo): number | null;
279
+ /**
280
+ * After the submit registered, confirm the CLI recorded (close to) the whole
281
+ * prompt. No transcript yet → poll a few times, then stop quietly (the
282
+ * unsent case belongs to verifySubmitted). Short → log loudly, tell the
283
+ * conversation, and resend the full prompt once (bracketed paste). A second
284
+ * short delivery is reported and left alone rather than looping.
285
+ */
286
+ protected verifyPromptDelivered(name: string, expected: string, attempt: number, poll?: number): void;
239
287
  nudge(): boolean;
240
288
  /**
241
289
  * Nudge a single conversation's pane. Unlike nudge() this is not throttled:
@@ -667,5 +715,4 @@ export declare abstract class BaseTmuxLauncher implements AgentLauncher {
667
715
  * worse than a leaked pane, which the backend reconciles anyway.
668
716
  */
669
717
  export declare function shouldReapOrphanPane(ownerEnv: string | null, myEnv: string): boolean;
670
- export {};
671
718
  //# sourceMappingURL=base-tmux-launcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-tmux-launcher.d.ts","sourceRoot":"","sources":["../../src/core/base-tmux-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-tmux-launcher.d.ts","sourceRoot":"","sources":["../../src/core/base-tmux-launcher.ts"],"names":[],"mappings":"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"}
@@ -315,10 +315,15 @@ export class BaseTmuxLauncher {
315
315
  * input instead of interpreting control chars / shortcuts. Gemini CLI needs
316
316
  * this: a raw paste of a long markdown prompt trips its `!` shell-mode toggle,
317
317
  * dropping the session into shell mode and running the prompt as a bash command.
318
- * Claude Code works fine without it, so this stays off by default and is
319
- * overridden in GeminiLauncher. The submit Enter is sent separately after a
320
- * delay, so bracketed paste doesn't swallow it. */
321
- usesBracketedPaste() { return false; }
318
+ * Claude Code mostly works without it — but a RAW paste of a ~20KB prompt is a
319
+ * timing flake: twice (orch 231 on 2026-08-31, orch 259 on 2026-09-17) the TUI
320
+ * recorded only the last few hundred chars. The bracketed resend landed intact
321
+ * both times, and a resend is a worse turn than a clean first paste (a second
322
+ * "here are your instructions again" message read as a prompt injection to the
323
+ * 09-17 worker, which refused the stage). So bracketed is the default for every
324
+ * launcher now; the raw path is opt-out. The submit Enter is sent separately
325
+ * after a delay, so bracketed paste doesn't swallow it. */
326
+ usesBracketedPaste() { return true; }
322
327
  // --- AgentLauncher interface ---
323
328
  async launch(config) {
324
329
  if (config.workspace) {
@@ -466,6 +471,169 @@ export class BaseTmuxLauncher {
466
471
  this.verifySubmitted(name, message, attempt + 1);
467
472
  }, BaseTmuxLauncher.SUBMIT_VERIFY_DELAY_MS);
468
473
  }
474
+ /**
475
+ * Deliver `text` to the pane as the next input: load-buffer + paste-buffer +
476
+ * a separate Enter, then verifySubmitted. tmux send-keys has a per-command
477
+ * length limit ("command too long" around 10–20KB depending on platform),
478
+ * which silently broke long agent prompts (runbook + ticket context can be
479
+ * 15KB+). load-buffer reads from a file and has no such limit. Newlines are
480
+ * preserved so multi-line prompts paste cleanly; the trailing Enter is sent as
481
+ * a separate send-keys after a short delay (sidesteps bracketed-paste
482
+ * swallowing the submit).
483
+ *
484
+ * `bracketed` wraps the paste in bracketed-paste markers (`paste-buffer -p`)
485
+ * so the TUI takes the whole blob as ONE paste regardless of how the pty
486
+ * chunks it — see usesBracketedPaste() for why Claude Code normally runs
487
+ * without it, and verifyPromptDelivered() for the resend that turns it on.
488
+ * `onSubmitted` fires once the Enter has been sent (best-effort; never on a
489
+ * paste failure).
490
+ */
491
+ pastePromptIntoPane(name, text, opts = {}) {
492
+ const promptFile = join(tmpdir(), `silolink-prompt-${name}-${Date.now()}.txt`);
493
+ const bufferName = `silolink_${name.replace(/[^A-Za-z0-9_]/g, '_')}`;
494
+ try {
495
+ writeFileSync(promptFile, text);
496
+ }
497
+ catch (err) {
498
+ console.error(`${this.getLogTag()} Failed to write prompt tempfile for "${name}": ${err.message}`);
499
+ return;
500
+ }
501
+ const loadBuf = spawn('tmux', ['load-buffer', '-b', bufferName, promptFile], { stdio: 'pipe' });
502
+ let loadStderr = '';
503
+ loadBuf.stderr?.on('data', (chunk) => { loadStderr += chunk.toString(); });
504
+ loadBuf.on('error', (err) => {
505
+ console.error(`${this.getLogTag()} load-buffer spawn error for "${name}": ${err.message}`);
506
+ try {
507
+ unlinkSync(promptFile);
508
+ }
509
+ catch { /* ignore */ }
510
+ });
511
+ loadBuf.on('exit', (code) => {
512
+ try {
513
+ unlinkSync(promptFile);
514
+ }
515
+ catch { /* ignore */ }
516
+ if (code !== 0) {
517
+ console.error(`${this.getLogTag()} load-buffer exit ${code} for "${name}" ` +
518
+ `(prompt ${text.length} chars): ${loadStderr.trim() || '(no stderr)'}`);
519
+ return;
520
+ }
521
+ // -d: delete the buffer after pasting so we don't leak named buffers
522
+ // -p: bracketed paste — see the doc comment above.
523
+ const pasteArgs = ['paste-buffer', '-b', bufferName, '-t', name, '-d'];
524
+ if (opts.bracketed)
525
+ pasteArgs.push('-p');
526
+ const pasteBuf = spawn('tmux', pasteArgs, { stdio: 'pipe' });
527
+ let pasteStderr = '';
528
+ pasteBuf.stderr?.on('data', (chunk) => { pasteStderr += chunk.toString(); });
529
+ pasteBuf.on('error', (err) => {
530
+ console.error(`${this.getLogTag()} paste-buffer spawn error for "${name}": ${err.message}`);
531
+ });
532
+ pasteBuf.on('exit', (pCode) => {
533
+ if (pCode !== 0) {
534
+ console.error(`${this.getLogTag()} paste-buffer exit ${pCode} for "${name}": ${pasteStderr.trim() || '(no stderr)'}`);
535
+ return;
536
+ }
537
+ console.log(`${this.getLogTag()} Sent prompt to "${name}" (${text.length} chars via paste-buffer${opts.bracketed ? ', bracketed' : ''})`);
538
+ setTimeout(() => {
539
+ const enterKey = spawn('tmux', ['send-keys', '-t', name, 'Enter'], { stdio: 'pipe' });
540
+ let enterStderr = '';
541
+ enterKey.stderr?.on('data', (chunk) => { enterStderr += chunk.toString(); });
542
+ enterKey.on('error', (err) => {
543
+ console.error(`${this.getLogTag()} Enter sendKeys spawn error for "${name}": ${err.message}`);
544
+ });
545
+ enterKey.on('exit', (eCode) => {
546
+ if (eCode !== 0) {
547
+ console.error(`${this.getLogTag()} Enter sendKeys exit ${eCode} for "${name}": ${enterStderr.trim() || '(no stderr)'}`);
548
+ }
549
+ });
550
+ // The delay above is a race, not a guarantee — confirm the prompt
551
+ // actually left the input box (orch 194 verify: pasted, never sent).
552
+ this.verifySubmitted(name, text, 1);
553
+ opts.onSubmitted?.();
554
+ }, 500);
555
+ });
556
+ });
557
+ }
558
+ // Prompt DELIVERY verification (distinct from submit verification above).
559
+ // 2026-08-31, orch 231 audit: the daemon pasted the 16,116-char Health-Auditor
560
+ // prompt and the submit check passed — but Claude Code's transcript shows the
561
+ // agent received only the LAST 343 chars. The same prompt had landed intact on
562
+ // the four previous nights, so this is a timing flake in how the TUI takes a
563
+ // raw (non-bracketed) 16KB paste, not a size limit. The agent did the right
564
+ // thing (asked the dispatcher to resend, reported "blocked"), but nothing
565
+ // heard it: the stage sat 79 minutes until the wedge recycler killed it.
566
+ // Fix: read back what the CLI actually recorded and resend in full — in
567
+ // bracketed-paste mode, so the retry doesn't repeat the same raw-paste path.
568
+ static DELIVERY_VERIFY_DELAY_MS = 8000;
569
+ static DELIVERY_VERIFY_POLL_MS = 5000;
570
+ static DELIVERY_VERIFY_POLLS = 6;
571
+ static DELIVERY_MIN_RATIO = 0.9;
572
+ static DELIVERY_MAX_RESENDS = 1;
573
+ // Worded as a transport note, not an instruction to "disregard" anything: the
574
+ // 2026-09-17 worker (orch 259 verify) read the old "disregard the earlier
575
+ // fragment" framing as a prompt-injection tell and refused the whole stage.
576
+ static DELIVERY_RESEND_PREFIX = '[SiloLink daemon — delivery retry] The terminal paste of this session\'s launch prompt was cut short: ' +
577
+ 'Claude Code recorded only the tail of it, so the first turn you saw was a fragment of the launch prompt, ' +
578
+ 'not a message from a person. Below is the same launch prompt this session was started with, pasted again ' +
579
+ 'in full by the daemon.\n\n';
580
+ /**
581
+ * How many chars of prompt the CLI actually recorded for this pane, or null
582
+ * when it can't be known yet / at all. Agent-agnostic seam: the base flow
583
+ * (verifyPromptDelivered) calls this; each launcher overrides it from its
584
+ * transcript format. Default null = delivery verification is skipped.
585
+ * Best-effort: must never throw into the launch path.
586
+ */
587
+ readDeliveredPromptLength(_info) {
588
+ return null;
589
+ }
590
+ /**
591
+ * After the submit registered, confirm the CLI recorded (close to) the whole
592
+ * prompt. No transcript yet → poll a few times, then stop quietly (the
593
+ * unsent case belongs to verifySubmitted). Short → log loudly, tell the
594
+ * conversation, and resend the full prompt once (bracketed paste). A second
595
+ * short delivery is reported and left alone rather than looping.
596
+ */
597
+ verifyPromptDelivered(name, expected, attempt, poll = 1) {
598
+ const delay = poll === 1 ? BaseTmuxLauncher.DELIVERY_VERIFY_DELAY_MS : BaseTmuxLauncher.DELIVERY_VERIFY_POLL_MS;
599
+ setTimeout(() => {
600
+ const info = this.tmuxSessions.get(name);
601
+ if (!info)
602
+ return; // pane gone — dead-pane reconcile owns that case
603
+ let delivered;
604
+ try {
605
+ delivered = this.readDeliveredPromptLength(info);
606
+ }
607
+ catch (err) {
608
+ console.warn(`${this.getLogTag()} prompt delivery check failed for "${name}": ${err}`);
609
+ return;
610
+ }
611
+ if (delivered === null) {
612
+ if (poll < BaseTmuxLauncher.DELIVERY_VERIFY_POLLS)
613
+ this.verifyPromptDelivered(name, expected, attempt, poll + 1);
614
+ return;
615
+ }
616
+ if (delivered >= Math.floor(expected.length * BaseTmuxLauncher.DELIVERY_MIN_RATIO)) {
617
+ console.log(`${this.getLogTag()} Prompt delivery verified on "${name}" (${delivered}/${expected.length} chars${attempt > 1 ? `, after resend ${attempt - 1}` : ''})`);
618
+ return;
619
+ }
620
+ console.error(`${this.getLogTag()} PROMPT TRUNCATED on "${name}": CLI recorded ${delivered} of ${expected.length} chars` +
621
+ `${attempt > BaseTmuxLauncher.DELIVERY_MAX_RESENDS ? ' — still short after resend, giving up' : ' — resending in full (bracketed paste)'}`);
622
+ healthMonitor.noteLaunchFailure(`prompt truncated on ${name}: ${delivered}/${expected.length} chars`);
623
+ if (info.conversationId && this.dsiloedClient) {
624
+ const note = attempt > BaseTmuxLauncher.DELIVERY_MAX_RESENDS
625
+ ? `**[SiloLink]** ⚠️ Launch prompt still truncated after a resend (${delivered}/${expected.length} chars reached the agent). The agent does not have its instructions — relaunch this session.`
626
+ : `**[SiloLink]** ⚠️ Launch prompt was truncated in transit (${delivered}/${expected.length} chars reached the agent) — resending it in full.`;
627
+ this.dsiloedClient.postMessage(info.conversationId, note).catch(() => { });
628
+ }
629
+ if (attempt > BaseTmuxLauncher.DELIVERY_MAX_RESENDS)
630
+ return;
631
+ this.pastePromptIntoPane(name, BaseTmuxLauncher.DELIVERY_RESEND_PREFIX + expected, {
632
+ bracketed: true,
633
+ onSubmitted: () => this.verifyPromptDelivered(name, expected, attempt + 1),
634
+ });
635
+ }, delay);
636
+ }
469
637
  nudge() {
470
638
  if (this.tmuxSessions.size === 0)
471
639
  return false;
@@ -1502,78 +1670,11 @@ export class BaseTmuxLauncher {
1502
1670
  await new Promise(resolve => setTimeout(resolve, postDelay));
1503
1671
  }
1504
1672
  }
1505
- // Send the prompt via load-buffer + paste-buffer rather than send-keys.
1506
- // tmux send-keys has a per-command length limit ("command too long"
1507
- // around 10–20KB depending on platform), which silently broke long
1508
- // agent prompts (runbook + ticket context can be 15KB+). load-buffer
1509
- // reads from a file and has no such limit. Newlines are preserved so
1510
- // multi-line prompts paste cleanly; the trailing Enter is sent as a
1511
- // separate send-keys after a short delay (existing pattern that
1512
- // sidesteps bracketed-paste swallowing the submit).
1513
- const promptFile = join(tmpdir(), `silolink-prompt-${sessionToPrompt}-${Date.now()}.txt`);
1514
- const bufferName = `silolink_${sessionToPrompt.replace(/[^A-Za-z0-9_]/g, '_')}`;
1515
- try {
1516
- writeFileSync(promptFile, promptToSend);
1517
- }
1518
- catch (err) {
1519
- console.error(`${this.getLogTag()} Failed to write prompt tempfile for "${sessionToPrompt}": ${err.message}`);
1520
- return;
1521
- }
1522
- const loadBuf = spawn('tmux', ['load-buffer', '-b', bufferName, promptFile], { stdio: 'pipe' });
1523
- let loadStderr = '';
1524
- loadBuf.stderr?.on('data', (chunk) => { loadStderr += chunk.toString(); });
1525
- loadBuf.on('error', (err) => {
1526
- console.error(`${this.getLogTag()} load-buffer spawn error for "${sessionToPrompt}": ${err.message}`);
1527
- try {
1528
- unlinkSync(promptFile);
1529
- }
1530
- catch { /* ignore */ }
1531
- });
1532
- loadBuf.on('exit', (code) => {
1533
- try {
1534
- unlinkSync(promptFile);
1535
- }
1536
- catch { /* ignore */ }
1537
- if (code !== 0) {
1538
- console.error(`${this.getLogTag()} load-buffer exit ${code} for "${sessionToPrompt}" ` +
1539
- `(prompt ${promptToSend.length} chars): ${loadStderr.trim() || '(no stderr)'}`);
1540
- return;
1541
- }
1542
- // -d: delete the buffer after pasting so we don't leak named buffers
1543
- // -p: bracketed paste (Gemini only) so the prompt isn't interpreted as
1544
- // shell-mode input — see usesBracketedPaste().
1545
- const pasteArgs = ['paste-buffer', '-b', bufferName, '-t', sessionToPrompt, '-d'];
1546
- if (this.usesBracketedPaste())
1547
- pasteArgs.push('-p');
1548
- const pasteBuf = spawn('tmux', pasteArgs, { stdio: 'pipe' });
1549
- let pasteStderr = '';
1550
- pasteBuf.stderr?.on('data', (chunk) => { pasteStderr += chunk.toString(); });
1551
- pasteBuf.on('error', (err) => {
1552
- console.error(`${this.getLogTag()} paste-buffer spawn error for "${sessionToPrompt}": ${err.message}`);
1553
- });
1554
- pasteBuf.on('exit', (pCode) => {
1555
- if (pCode !== 0) {
1556
- console.error(`${this.getLogTag()} paste-buffer exit ${pCode} for "${sessionToPrompt}": ${pasteStderr.trim() || '(no stderr)'}`);
1557
- return;
1558
- }
1559
- console.log(`${this.getLogTag()} Sent prompt to "${sessionToPrompt}" (${promptToSend.length} chars via paste-buffer)`);
1560
- setTimeout(() => {
1561
- const enterKey = spawn('tmux', ['send-keys', '-t', sessionToPrompt, 'Enter'], { stdio: 'pipe' });
1562
- let enterStderr = '';
1563
- enterKey.stderr?.on('data', (chunk) => { enterStderr += chunk.toString(); });
1564
- enterKey.on('error', (err) => {
1565
- console.error(`${this.getLogTag()} Enter sendKeys spawn error for "${sessionToPrompt}": ${err.message}`);
1566
- });
1567
- enterKey.on('exit', (eCode) => {
1568
- if (eCode !== 0) {
1569
- console.error(`${this.getLogTag()} Enter sendKeys exit ${eCode} for "${sessionToPrompt}": ${enterStderr.trim() || '(no stderr)'}`);
1570
- }
1571
- });
1572
- // The delay above is a race, not a guarantee — confirm the prompt
1573
- // actually left the input box (orch 194 verify: pasted, never sent).
1574
- this.verifySubmitted(sessionToPrompt, promptToSend, 1);
1575
- }, 500);
1576
- });
1673
+ this.pastePromptIntoPane(sessionToPrompt, promptToSend, {
1674
+ bracketed: this.usesBracketedPaste(),
1675
+ // The submit check only proves the text LEFT the box — not that the
1676
+ // TUI took all of it (orch 231: 16,116 chars pasted, 343 arrived).
1677
+ onSubmitted: () => this.verifyPromptDelivered(sessionToPrompt, promptToSend, 1),
1577
1678
  });
1578
1679
  })();
1579
1680
  this.monitorTmuxSession(tmuxSession);