@indianic/dialout 1.11.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +14 -0
  2. package/dist/ai-sessions.d.ts +45 -1
  3. package/dist/ai-sessions.d.ts.map +1 -1
  4. package/dist/ai-sessions.js +68 -10
  5. package/dist/ai-sessions.js.map +1 -1
  6. package/dist/cli-client.d.ts +60 -0
  7. package/dist/cli-client.d.ts.map +1 -0
  8. package/dist/cli-client.js +246 -0
  9. package/dist/cli-client.js.map +1 -0
  10. package/dist/cli-terminal.d.ts +101 -0
  11. package/dist/cli-terminal.d.ts.map +1 -0
  12. package/dist/cli-terminal.js +1121 -0
  13. package/dist/cli-terminal.js.map +1 -0
  14. package/dist/cli.js +84 -0
  15. package/dist/cli.js.map +1 -1
  16. package/dist/file-transfer.d.ts +18 -0
  17. package/dist/file-transfer.d.ts.map +1 -0
  18. package/dist/file-transfer.js +266 -0
  19. package/dist/file-transfer.js.map +1 -0
  20. package/dist/fs-browser.d.ts +3 -1
  21. package/dist/fs-browser.d.ts.map +1 -1
  22. package/dist/fs-browser.js +35 -6
  23. package/dist/fs-browser.js.map +1 -1
  24. package/dist/mcp-stdio.d.ts +10 -0
  25. package/dist/mcp-stdio.d.ts.map +1 -0
  26. package/dist/mcp-stdio.js +199 -0
  27. package/dist/mcp-stdio.js.map +1 -0
  28. package/dist/shared-shell.d.ts +77 -0
  29. package/dist/shared-shell.d.ts.map +1 -0
  30. package/dist/shared-shell.js +282 -0
  31. package/dist/shared-shell.js.map +1 -0
  32. package/dist/websocket.d.ts.map +1 -1
  33. package/dist/websocket.js +413 -1
  34. package/dist/websocket.js.map +1 -1
  35. package/node_modules/@indianic/dialout-shared/dist/captured.d.ts +27 -0
  36. package/node_modules/@indianic/dialout-shared/dist/captured.d.ts.map +1 -0
  37. package/node_modules/@indianic/dialout-shared/dist/captured.js +23 -0
  38. package/node_modules/@indianic/dialout-shared/dist/captured.test.d.ts +2 -0
  39. package/node_modules/@indianic/dialout-shared/dist/captured.test.d.ts.map +1 -0
  40. package/node_modules/@indianic/dialout-shared/dist/captured.test.js +27 -0
  41. package/node_modules/@indianic/dialout-shared/dist/chat-blocks.d.ts +5 -0
  42. package/node_modules/@indianic/dialout-shared/dist/chat-blocks.d.ts.map +1 -1
  43. package/node_modules/@indianic/dialout-shared/dist/chat-blocks.js +14 -3
  44. package/node_modules/@indianic/dialout-shared/dist/chat-blocks.test.js +14 -0
  45. package/node_modules/@indianic/dialout-shared/dist/event-merge.d.ts +7 -0
  46. package/node_modules/@indianic/dialout-shared/dist/event-merge.d.ts.map +1 -1
  47. package/node_modules/@indianic/dialout-shared/dist/event-merge.test.js +24 -0
  48. package/node_modules/@indianic/dialout-shared/dist/index.d.ts +5 -1
  49. package/node_modules/@indianic/dialout-shared/dist/index.d.ts.map +1 -1
  50. package/node_modules/@indianic/dialout-shared/dist/index.js +11 -1
  51. package/node_modules/@indianic/dialout-shared/dist/notices.d.ts +37 -0
  52. package/node_modules/@indianic/dialout-shared/dist/notices.d.ts.map +1 -0
  53. package/node_modules/@indianic/dialout-shared/dist/notices.js +124 -0
  54. package/node_modules/@indianic/dialout-shared/dist/notices.test.d.ts +2 -0
  55. package/node_modules/@indianic/dialout-shared/dist/notices.test.d.ts.map +1 -0
  56. package/node_modules/@indianic/dialout-shared/dist/notices.test.js +92 -0
  57. package/node_modules/@indianic/dialout-shared/dist/notify.d.ts +9 -0
  58. package/node_modules/@indianic/dialout-shared/dist/notify.d.ts.map +1 -1
  59. package/node_modules/@indianic/dialout-shared/dist/notify.js +27 -0
  60. package/node_modules/@indianic/dialout-shared/dist/session-announce.d.ts +20 -0
  61. package/node_modules/@indianic/dialout-shared/dist/session-announce.d.ts.map +1 -0
  62. package/node_modules/@indianic/dialout-shared/dist/session-announce.js +20 -0
  63. package/node_modules/@indianic/dialout-shared/dist/session-announce.test.d.ts +2 -0
  64. package/node_modules/@indianic/dialout-shared/dist/session-announce.test.d.ts.map +1 -0
  65. package/node_modules/@indianic/dialout-shared/dist/session-announce.test.js +30 -0
  66. package/node_modules/@indianic/dialout-shared/package.json +2 -2
  67. package/node_modules/@indianic/dialout-shared/src/captured.test.ts +29 -0
  68. package/node_modules/@indianic/dialout-shared/src/captured.ts +46 -0
  69. package/node_modules/@indianic/dialout-shared/src/chat-blocks.test.ts +14 -0
  70. package/node_modules/@indianic/dialout-shared/src/chat-blocks.ts +12 -3
  71. package/node_modules/@indianic/dialout-shared/src/event-merge.test.ts +27 -0
  72. package/node_modules/@indianic/dialout-shared/src/event-merge.ts +11 -0
  73. package/node_modules/@indianic/dialout-shared/src/index.ts +14 -1
  74. package/node_modules/@indianic/dialout-shared/src/notices.test.ts +102 -0
  75. package/node_modules/@indianic/dialout-shared/src/notices.ts +159 -0
  76. package/node_modules/@indianic/dialout-shared/src/notify.ts +51 -0
  77. package/package.json +2 -2
package/dist/websocket.js CHANGED
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -9,13 +42,17 @@ exports.connect = connect;
9
42
  exports.disconnect = disconnect;
10
43
  exports.isConnected = isConnected;
11
44
  const ws_1 = __importDefault(require("ws"));
45
+ const child_process_1 = require("child_process");
46
+ const os = __importStar(require("os"));
12
47
  const config_1 = require("./config");
13
48
  const heartbeat_1 = require("./heartbeat");
14
49
  const port_scanner_1 = require("./port-scanner");
15
50
  const fs_browser_1 = require("./fs-browser");
51
+ const file_transfer_1 = require("./file-transfer");
16
52
  const project_scanner_1 = require("./project-scanner");
17
53
  const command_runner_1 = require("./command-runner");
18
54
  const pty_manager_1 = require("./pty-manager");
55
+ const shared_shell_1 = require("./shared-shell");
19
56
  const tmux_manager_1 = require("./tmux-manager");
20
57
  const ai_attachments_1 = require("./ai-attachments");
21
58
  const ai_sessions_1 = require("./ai-sessions");
@@ -144,6 +181,9 @@ function connect(config, onConnected) {
144
181
  ws = new ws_1.default(url, {
145
182
  headers: { 'X-API-Key': config.apiKey },
146
183
  });
184
+ // Captured so a delayed 'close' from this socket cannot free an upload
185
+ // the replacement connection has already accepted.
186
+ const socket = ws;
147
187
  ws.on('open', () => {
148
188
  console.log('[dialout] Connected to server');
149
189
  reconnectAttempt = 0; // a good connection resets the backoff
@@ -182,6 +222,9 @@ function connect(config, onConnected) {
182
222
  (0, heartbeat_1.stopHeartbeat)();
183
223
  stopTmuxPolling();
184
224
  stopAiPolling();
225
+ // fs_write_end will never arrive on a dead socket. The buffered base64
226
+ // is the leak; the file was not written yet.
227
+ dropPendingWritesFor(socket);
185
228
  // Keep PTY sessions alive across reconnects — output resumes on the new
186
229
  // socket once we're back (sessions are only killed by explicit pty_close
187
230
  // or agent shutdown).
@@ -221,6 +264,142 @@ function scheduleReconnect(config, onConnected) {
221
264
  connect(config, onConnected);
222
265
  }, delay);
223
266
  }
267
+ // Node's default maxBuffer is 1 MiB. The shared shell's history-limit is
268
+ // 100000 lines and the marker parser has to see the whole pane, so the
269
+ // default cap would fail a normal exec with ERR_CHILD_PROCESS_STDIO_MAXBUFFER.
270
+ const CAPTURE_MAX_BUFFER = 32 * 1024 * 1024;
271
+ // Same `@devdash_created` stamp as a browser session: UTC, no milliseconds, no Z.
272
+ function createdStamp() {
273
+ return new Date().toISOString().replace(/\.\d+Z$/, '').replace('Z', '');
274
+ }
275
+ // Best-effort. The shell starts in the home directory, and this value is
276
+ // stamped once at create — a later `cd` must not be asked to rewrite it.
277
+ // Not a git checkout is the common case, so a throw is an empty branch.
278
+ function gitBranch(cwd) {
279
+ try {
280
+ return (0, child_process_1.execFileSync)('git', ['-C', cwd, 'rev-parse', '--abbrev-ref', 'HEAD'], {
281
+ timeout: 3000,
282
+ stdio: 'pipe',
283
+ }).toString().trim();
284
+ }
285
+ catch {
286
+ return '';
287
+ }
288
+ }
289
+ // One deps object per message. `capture` closes over that message's session
290
+ // and reads from history start (`-S -`); the helpers tail and parse the text.
291
+ // A line count here would hide an exec marker that has scrolled off the window.
292
+ function shellDeps(session) {
293
+ const homedir = os.homedir();
294
+ return {
295
+ exists: pty_manager_1.tmuxSessionExists,
296
+ run(args) {
297
+ (0, child_process_1.execFileSync)('tmux', args, { timeout: 5000, stdio: 'pipe' });
298
+ },
299
+ capture() {
300
+ return (0, child_process_1.execFileSync)('tmux', ['capture-pane', '-p', '-t', session, '-S', '-'], {
301
+ timeout: 5000,
302
+ stdio: 'pipe',
303
+ maxBuffer: CAPTURE_MAX_BUFFER,
304
+ }).toString();
305
+ },
306
+ homedir,
307
+ branch: gitBranch(homedir),
308
+ created: createdStamp(),
309
+ sleep(ms) {
310
+ return new Promise((resolve) => { setTimeout(resolve, ms); });
311
+ },
312
+ now: Date.now,
313
+ };
314
+ }
315
+ function sendJson(payload) {
316
+ if (!ws || ws.readyState !== ws_1.default.OPEN)
317
+ return;
318
+ // handleMessage is not awaited. A throw from a dead socket would be an
319
+ // unhandled rejection, which is worse than dropping one reply.
320
+ try {
321
+ ws.send(JSON.stringify(payload));
322
+ }
323
+ catch { /* socket closed between the readyState check and the write */ }
324
+ }
325
+ function thrownMessage(err) {
326
+ if (err instanceof Error && err.message)
327
+ return err.message;
328
+ return 'tmux failed';
329
+ }
330
+ // Optional fields stay off the object when the message did not send them, so
331
+ // the helper's own defaults apply. `null` is present and is passed through.
332
+ function sharedExecRequest(msg) {
333
+ const req = {
334
+ session: msg.session,
335
+ command: msg.command,
336
+ };
337
+ if (msg.cwd !== undefined)
338
+ req.cwd = msg.cwd;
339
+ if (msg.timeoutMs !== undefined)
340
+ req.timeoutMs = msg.timeoutMs;
341
+ return req;
342
+ }
343
+ function sharedReadRequest(msg) {
344
+ const req = { session: msg.session };
345
+ if (msg.lines !== undefined)
346
+ req.lines = msg.lines;
347
+ return req;
348
+ }
349
+ function sharedKeysRequest(msg) {
350
+ const req = { session: msg.session };
351
+ if (msg.text !== undefined)
352
+ req.text = msg.text;
353
+ if (msg.keys !== undefined)
354
+ req.keys = msg.keys;
355
+ return req;
356
+ }
357
+ // A 10 MB body base64-encodes to this many characters. That is also the most
358
+ // chunks a legal body can split into, even at one character per frame.
359
+ // Padding makes 10 MB and 10 MB + 2 encode to the same length, so this only
360
+ // stops the buffer growing; writeFileFromTransfer still checks decoded size.
361
+ const MAX_WRITE_B64 = 4 * Math.ceil(file_transfer_1.MAX_FILE_BYTES / 3);
362
+ const FILE_WRITE_TIMEOUT_MS = 60_000;
363
+ const pendingWrites = new Map();
364
+ function dropPendingWrite(requestId) {
365
+ const pending = pendingWrites.get(requestId);
366
+ if (!pending)
367
+ return;
368
+ clearTimeout(pending.timer);
369
+ pendingWrites.delete(requestId);
370
+ }
371
+ function dropPendingWritesFor(socket) {
372
+ for (const [id, pending] of pendingWrites) {
373
+ if (pending.socket === socket)
374
+ dropPendingWrite(id);
375
+ }
376
+ }
377
+ function rememberWrite(requestId, fields) {
378
+ dropPendingWrite(requestId);
379
+ const timer = setTimeout(() => {
380
+ const current = pendingWrites.get(requestId);
381
+ // A newer begin for this id replaced the timer. Do not delete that one.
382
+ if (current && current.timer === timer)
383
+ pendingWrites.delete(requestId);
384
+ }, FILE_WRITE_TIMEOUT_MS);
385
+ pendingWrites.set(requestId, { ...fields, timer });
386
+ }
387
+ function transferError(err) {
388
+ if (err instanceof Error && err.message)
389
+ return err.message;
390
+ return 'transfer failed';
391
+ }
392
+ function writePartsComplete(pending) {
393
+ if (pending.received !== pending.totalChunks)
394
+ return false;
395
+ if (pending.parts.length !== pending.totalChunks)
396
+ return false;
397
+ for (let i = 0; i < pending.totalChunks; i++) {
398
+ if (pending.parts[i] === undefined)
399
+ return false;
400
+ }
401
+ return true;
402
+ }
224
403
  async function handleMessage(msg, config) {
225
404
  if (!ws || ws.readyState !== ws_1.default.OPEN)
226
405
  return;
@@ -252,6 +431,162 @@ async function handleMessage(msg, config) {
252
431
  ws.send(JSON.stringify({ type: 'fs_list', requestId: msg.requestId, path: msg.path, entries }));
253
432
  break;
254
433
  }
434
+ case 'fs_stat': {
435
+ try {
436
+ const resolved = (0, file_transfer_1.validateTargetPath)(typeof msg.path === 'string' ? msg.path : '');
437
+ const stat = await (0, file_transfer_1.statPath)(resolved);
438
+ sendJson({ type: 'fs_stat_result', requestId: msg.requestId, ok: true, stat });
439
+ }
440
+ catch (err) {
441
+ sendJson({ type: 'fs_stat_result', requestId: msg.requestId, ok: false, error: transferError(err) });
442
+ }
443
+ break;
444
+ }
445
+ case 'fs_read': {
446
+ try {
447
+ const resolved = (0, file_transfer_1.validateTargetPath)(typeof msg.path === 'string' ? msg.path : '');
448
+ const { data, sha256 } = await (0, file_transfer_1.readFileForTransfer)(resolved);
449
+ const b64 = data.toString('base64');
450
+ // Same framing as http_request. The threshold comes from the server
451
+ // on each request. An older server does not send it, so this branch
452
+ // is skipped and the agent sends one frame the other end can read.
453
+ // The metadata frame is last and carries no body: it is what tells
454
+ // the server the parts are all sent and how many to expect.
455
+ const threshold = typeof msg.chunkThreshold === 'number' && msg.chunkThreshold > 0
456
+ ? msg.chunkThreshold
457
+ : undefined;
458
+ if (threshold && b64.length > threshold) {
459
+ const total = Math.ceil(b64.length / threshold);
460
+ for (let i = 0; i < total; i++) {
461
+ sendJson({
462
+ type: 'fs_read_chunk',
463
+ requestId: msg.requestId,
464
+ index: i,
465
+ data: b64.slice(i * threshold, (i + 1) * threshold),
466
+ });
467
+ }
468
+ sendJson({
469
+ type: 'fs_read_result',
470
+ requestId: msg.requestId,
471
+ ok: true,
472
+ size: data.length,
473
+ sha256,
474
+ chunked: true,
475
+ totalChunks: total,
476
+ });
477
+ }
478
+ else {
479
+ sendJson({
480
+ type: 'fs_read_result',
481
+ requestId: msg.requestId,
482
+ ok: true,
483
+ size: data.length,
484
+ sha256,
485
+ data: b64,
486
+ });
487
+ }
488
+ if (ws && ws.readyState === ws_1.default.OPEN) {
489
+ console.log(`[dialout] sent ${resolved} (${data.length} bytes)`);
490
+ }
491
+ }
492
+ catch (err) {
493
+ sendJson({ type: 'fs_read_result', requestId: msg.requestId, ok: false, error: transferError(err) });
494
+ }
495
+ break;
496
+ }
497
+ case 'fs_write_begin': {
498
+ const socket = ws;
499
+ if (!socket)
500
+ break;
501
+ const requestId = String(msg.requestId);
502
+ let resolved = '';
503
+ let error;
504
+ try {
505
+ // Validate before any chunk is buffered. The reply still waits for
506
+ // fs_write_end: that is the only result frame the server waits on.
507
+ resolved = (0, file_transfer_1.validateTargetPath)(typeof msg.path === 'string' ? msg.path : '');
508
+ }
509
+ catch (err) {
510
+ error = transferError(err);
511
+ }
512
+ const totalChunks = msg.totalChunks;
513
+ if (!error && (!Number.isInteger(totalChunks) || totalChunks < 0 || totalChunks > MAX_WRITE_B64)) {
514
+ error = 'incomplete transfer';
515
+ }
516
+ rememberWrite(requestId, {
517
+ socket,
518
+ resolved,
519
+ sha256: typeof msg.sha256 === 'string' ? msg.sha256 : undefined,
520
+ overwrite: msg.overwrite === true,
521
+ totalChunks: error ? 0 : totalChunks,
522
+ parts: [],
523
+ received: 0,
524
+ buffered: 0,
525
+ error,
526
+ });
527
+ break;
528
+ }
529
+ case 'fs_write_chunk': {
530
+ const pending = pendingWrites.get(String(msg.requestId));
531
+ if (!pending || pending.error)
532
+ break;
533
+ const index = msg.index;
534
+ if (typeof msg.data !== 'string')
535
+ break;
536
+ if (!Number.isInteger(index) || index < 0 || index >= pending.totalChunks)
537
+ break;
538
+ const prev = pending.parts[index];
539
+ const prevLen = prev === undefined ? 0 : prev.length;
540
+ const next = pending.buffered - prevLen + msg.data.length;
541
+ if (next > MAX_WRITE_B64) {
542
+ // Same string writeFileFromTransfer throws, so the cap has one wording.
543
+ // Drop what we already held; the end frame is what reports it.
544
+ pending.error = 'file exceeds 10 MB';
545
+ pending.parts = [];
546
+ pending.received = 0;
547
+ pending.buffered = 0;
548
+ break;
549
+ }
550
+ if (prev === undefined)
551
+ pending.received++;
552
+ pending.parts[index] = msg.data;
553
+ pending.buffered = next;
554
+ break;
555
+ }
556
+ case 'fs_write_end': {
557
+ const requestId = msg.requestId;
558
+ const pending = pendingWrites.get(String(requestId));
559
+ if (!pending) {
560
+ sendJson({ type: 'fs_write_result', requestId, ok: false, error: 'incomplete transfer' });
561
+ break;
562
+ }
563
+ // Drop before the await. handleMessage is not serialized: a second
564
+ // fs_write_end for this requestId would otherwise start another write
565
+ // while this one is still in fsync. The 60s timer is cleared with it.
566
+ dropPendingWrite(String(requestId));
567
+ if (pending.error || !writePartsComplete(pending)) {
568
+ sendJson({
569
+ type: 'fs_write_result',
570
+ requestId,
571
+ ok: false,
572
+ error: pending.error ?? 'incomplete transfer',
573
+ });
574
+ break;
575
+ }
576
+ try {
577
+ const data = Buffer.from(pending.parts.join(''), 'base64');
578
+ const stat = await (0, file_transfer_1.writeFileFromTransfer)(pending.resolved, data, {
579
+ overwrite: pending.overwrite,
580
+ sha256: pending.sha256,
581
+ });
582
+ console.log(`[dialout] wrote ${pending.resolved} (${data.length} bytes)`);
583
+ sendJson({ type: 'fs_write_result', requestId, ok: true, stat });
584
+ }
585
+ catch (err) {
586
+ sendJson({ type: 'fs_write_result', requestId, ok: false, error: transferError(err) });
587
+ }
588
+ break;
589
+ }
255
590
  case 'project_scan': {
256
591
  try {
257
592
  const projects = await (0, project_scanner_1.scanProjects)(msg.path || process.env.HOME || '/', msg.depth ?? 2);
@@ -282,6 +617,36 @@ async function handleMessage(msg, config) {
282
617
  ws.send(JSON.stringify({ type: 'pty_error', id: msg.id, error: 'node-pty not available' }));
283
618
  break;
284
619
  }
620
+ // CLI shared shell. A name that is not dd-m<digits>, or an attach target
621
+ // that is not that same name, is refused — this is not a way to open an
622
+ // arbitrary tmux session. Do not fall through into cowork: that creates
623
+ // a second session and turns mouse on. ensureSharedShell is the only
624
+ // create path, and openAttach does not call applyBrowserSessionOptions.
625
+ if (msg.ensureSession != null) {
626
+ const cols = msg.cols || 80;
627
+ const rows = msg.rows || 24;
628
+ if (!(0, shared_shell_1.isSharedShellName)(msg.ensureSession) || msg.tmuxSession !== msg.ensureSession) {
629
+ ws.send(JSON.stringify({ type: 'pty_error', id: msg.id, error: 'refused' }));
630
+ break;
631
+ }
632
+ try {
633
+ const ensured = (0, shared_shell_1.ensureSharedShell)(msg.ensureSession, cols, rows, shellDeps(msg.ensureSession));
634
+ if (!ensured.ok) {
635
+ ws.send(JSON.stringify({ type: 'pty_error', id: msg.id, error: ensured.error }));
636
+ break;
637
+ }
638
+ const opened = (0, pty_manager_1.openAttach)(msg.id, msg.ensureSession, false, cols, rows);
639
+ if (!opened) {
640
+ ws.send(JSON.stringify({ type: 'pty_error', id: msg.id, error: 'Failed to attach to session' }));
641
+ }
642
+ }
643
+ catch (err) {
644
+ // One bad tmux call must not reject handleMessage — the caller does
645
+ // not await it, so a throw is an unhandled rejection.
646
+ sendJson({ type: 'pty_error', id: msg.id, error: thrownMessage(err) });
647
+ }
648
+ break;
649
+ }
285
650
  let opened;
286
651
  if (msg.tmuxSession) {
287
652
  opened = (0, pty_manager_1.openAttach)(msg.id, String(msg.tmuxSession), !!msg.readOnly, msg.cols || 80, msg.rows || 24);
@@ -312,6 +677,46 @@ async function handleMessage(msg, config) {
312
677
  (0, pty_manager_1.detachPtySession)(msg.id);
313
678
  break;
314
679
  }
680
+ case 'tmux_exec': {
681
+ // No requestId means there is nobody to answer. Do not invent one.
682
+ if (msg.requestId == null)
683
+ break;
684
+ const req = sharedExecRequest(msg);
685
+ try {
686
+ const result = await (0, shared_shell_1.runSharedExec)(req, shellDeps(req.session));
687
+ sendJson({ type: 'tmux_exec_result', requestId: msg.requestId, ...result });
688
+ }
689
+ catch (err) {
690
+ sendJson({ type: 'tmux_exec_result', requestId: msg.requestId, ok: false, error: thrownMessage(err) });
691
+ }
692
+ break;
693
+ }
694
+ case 'tmux_read': {
695
+ if (msg.requestId == null)
696
+ break;
697
+ const req = sharedReadRequest(msg);
698
+ try {
699
+ const result = await (0, shared_shell_1.runSharedRead)(req, shellDeps(req.session));
700
+ sendJson({ type: 'tmux_read_result', requestId: msg.requestId, ...result });
701
+ }
702
+ catch (err) {
703
+ sendJson({ type: 'tmux_read_result', requestId: msg.requestId, ok: false, error: thrownMessage(err) });
704
+ }
705
+ break;
706
+ }
707
+ case 'tmux_keys': {
708
+ if (msg.requestId == null)
709
+ break;
710
+ const req = sharedKeysRequest(msg);
711
+ try {
712
+ const result = await (0, shared_shell_1.runSharedKeys)(req, shellDeps(req.session));
713
+ sendJson({ type: 'tmux_keys_result', requestId: msg.requestId, ...result });
714
+ }
715
+ catch (err) {
716
+ sendJson({ type: 'tmux_keys_result', requestId: msg.requestId, ok: false, error: thrownMessage(err) });
717
+ }
718
+ break;
719
+ }
315
720
  case 'ai_session_list_request': {
316
721
  const sessions = await (0, ai_sessions_1.discoverAiSessions)();
317
722
  ws.send(JSON.stringify({ type: 'ai_session_list', requestId: msg.requestId, sessions }));
@@ -329,11 +734,18 @@ async function handleMessage(msg, config) {
329
734
  const name = String(msg.tmuxName || '');
330
735
  if (!name)
331
736
  break;
737
+ // What the client already painted from the server's captured copy, so
738
+ // only the suffix comes back. Both halves or neither: a seq without the
739
+ // transcript it counts is not something to guess at.
740
+ const have = typeof msg.haveThrough === 'number' && Number.isInteger(msg.haveThrough)
741
+ && typeof msg.haveKey === 'string' && msg.haveKey
742
+ ? { key: msg.haveKey, through: msg.haveThrough }
743
+ : null;
332
744
  (0, ai_sessions_1.openAiSession)(name, (events, status, usage, meta) => {
333
745
  if (ws && ws.readyState === ws_1.default.OPEN) {
334
746
  ws.send(JSON.stringify({ type: 'ai_session_events', tmuxName: name, events, status, usage, ...meta }));
335
747
  }
336
- });
748
+ }, have);
337
749
  break;
338
750
  }
339
751
  case 'ai_session_create': {
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":";;;;;;AAwCA,wCAGC;AAyGD,0BAqDC;AAED,gCAcC;AAED,kCAEC;AA7ND,4CAA2B;AAC3B,qCAAiF;AACjF,2CAAsE;AACtE,iDAAsD;AACtD,6CAA6C;AAC7C,uDAAiD;AACjD,qDAA8C;AAC9C,+CAauB;AACvB,iDAA2F;AAC3F,qDAAkD;AAClD,+CAGuB;AACvB,uDAAyD;AAEzD,IAAI,EAAE,GAAqB,IAAI,CAAC;AAChC,IAAI,cAAc,GAA0B,IAAI,CAAC;AACjD,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEZ,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAEvC,+EAA+E;AAC/E,6EAA6E;AAC7E,iDAAiD;AACjD,SAAgB,cAAc,CAAC,OAAe,EAAE,OAAqB,IAAI,CAAC,MAAM;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAiB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,wBAAgB,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,IAAI,aAAa,GAA0B,IAAI,CAAC;AAChD,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI;QAAE,OAAO;IACpD,IAAI,CAAC,CAAC,MAAM,IAAA,4BAAa,GAAE,CAAC;QAAE,OAAO;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAY,GAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC;YACJ,SAAS,EAAE,MAAM,IAAA,0BAAW,EAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;SAClD,CAAC,CAAC,CAAC,CAAC;QACL,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,KAAK,gBAAgB,IAAI,GAAG,GAAG,cAAc,GAAG,cAAc,EAAE,CAAC;YAC3E,gBAAgB,GAAG,QAAQ,CAAC;YAC5B,cAAc,GAAG,GAAG,CAAC;YACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,uEAAuE;YACvE,oEAAoE;YACpE,EAAE;YACF,0EAA0E;YAC1E,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,oBAAoB,GAAG,IAAI,CAAC;gBAC5B,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;gBAC3F,OAAO,CAAC,GAAG,CACT,uBAAuB,QAAQ,CAAC,MAAM,kBAAkB;sBACtD,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;wBACtB,CAAC,CAAC,wBAAwB,GAAG,YAAY,MAAM,GAAG;8BAC9C,8DAA8D;8BAC9D,sDAAsD;8BACtD,2BAA2B;wBAC/B,CAAC,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,eAAe,EAAE,CAAC;IAClB,gBAAgB,GAAG,EAAE,CAAC;IACtB,oBAAoB,GAAG,KAAK,CAAC;IAC7B,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9E,KAAK,gBAAgB,EAAE,CAAC,CAAC,4BAA4B;AACvD,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,aAAa,EAAE,CAAC;QAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAAC,aAAa,GAAG,IAAI,CAAC;IAAC,CAAC;AAC5E,CAAC;AAED,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,oBAAoB;AACpB,IAAI,WAAW,GAA0B,IAAI,CAAC;AAC9C,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI;QAAE,OAAO;IACpD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAkB,GAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAO;QACxC,cAAc,GAAG,QAAQ,CAAC;QAC1B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,aAAa,EAAE,CAAC;IAChB,cAAc,GAAG,EAAE,CAAC;IACpB,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACxE,KAAK,cAAc,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,WAAW,EAAE,CAAC;QAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAAC,WAAW,GAAG,IAAI,CAAC;IAAC,CAAC;IACpE,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAA,gCAAkB,GAAE,CAAC;AACvB,CAAC;AAED,SAAgB,OAAO,CAAC,MAAmB,EAAE,WAAwB;IACnE,cAAc,GAAG,KAAK,CAAC;IAEvB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5D,EAAE,GAAG,IAAI,YAAS,CAAC,GAAG,EAAE;QACtB,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;KACxC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,gBAAgB,GAAG,CAAC,CAAC,CAAC,uCAAuC;QAC7D,IAAA,6BAAe,EAAC,EAAE,CAAC,CAAC;QACpB,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAA,0BAAc,EAAC,EAAG,EAAE,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACjD,IAAI,CAAC;gBAAC,EAAE,EAAE,SAAS,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;QACjB,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,qDAAqD;QACrD,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,IAAA,+BAAiB,GAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAA,oCAAsB,EAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wFAAwF;QAC1I,WAAW,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,GAAG,CAAC,CAAC;QACtD,IAAA,yBAAa,GAAE,CAAC;QAChB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,wEAAwE;QACxE,yEAAyE;QACzE,sBAAsB;QACtB,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,UAAU;IACxB,cAAc,GAAG,IAAI,CAAC;IACtB,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAA,yBAAa,GAAE,CAAC;IAChB,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC;IAChB,IAAA,8BAAgB,GAAE,CAAC;IACnB,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAmB,EAAE,WAAwB;IACtE,IAAI,cAAc;QAAE,OAAO;IAC3B,IAAI,cAAc;QAAE,OAAO;IAE3B,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,gBAAgB,MAAM,CAAC,CAAC;IACxG,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;QAC/B,cAAc,GAAG,IAAI,CAAC;QACtB,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAQ,EAAE,MAAmB;IACxD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI;QAAE,OAAO;IAEpD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,MAAM;QAER,KAAK,MAAM;YACT,sEAAsE;YACtE,IAAA,oBAAQ,GAAE,CAAC;YACX,MAAM;QAER,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;YAChC,IAAI,SAAmB,CAAC;YACxB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,SAAS,GAAG,MAAM,IAAA,wBAAS,EAAC,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBACtC,SAAS,GAAG,MAAM,IAAA,wBAAS,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,MAAM,IAAA,wBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAC3F,MAAM;QACR,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAC/C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAChG,MAAM;QACR,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAY,EAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBACzF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/F,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,qBAAqB;oBAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,aAAa;iBACrC,CAAC,CAAC,CAAC;YACN,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAU,EAAC;gBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;gBAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7F,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,IAAA,4BAAc,GAAE,EAAE,CAAC;gBACtB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;gBAC5F,MAAM;YACR,CAAC;YACD,IAAI,MAAe,CAAC;YACpB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAA,wBAAU,EACjB,GAAG,CAAC,EAAE,EACN,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,QAAQ,EACd,GAAG,CAAC,IAAI,IAAI,EAAE,EACd,GAAG,CAAC,IAAI,IAAI,EAAE,CACf,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAA,yBAAW,EAClB,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,OAAO,IAAI,EAAE,EACjB,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAClC,GAAG,CAAC,IAAI,IAAI,EAAE,EACd,GAAG,CAAC,IAAI,IAAI,EAAE,EACd,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAChC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;YAChJ,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAA,4BAAc,EAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAA,2BAAa,EAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM;QACR,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,KAAK,IAAA,0BAAY,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,sEAAsE;YACtE,yDAAyD;YACzD,IAAA,8BAAgB,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;QAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAkB,GAAE,CAAC;YAC5C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzF,MAAM;QACR,CAAC;QAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC/B,uEAAuE;YACvE,yEAAyE;YACzE,+BAA+B;YAC/B,MAAM,IAAI,GAAG,IAAA,sCAAoB,EAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EACtB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CACtB,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACrF,MAAM;QACR,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI;gBAAE,MAAM;YACjB,IAAA,2BAAa,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAClD,IAAI,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;oBAC3C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzG,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,IAAA,6BAAe,EAAC;gBACzB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,UAAU,EAAE,GAAG,CAAC,UAAU;aAC3B,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE;aACzD,CAAC,CAAC,CAAC;YACJ,uEAAuE;YACvE,6BAA6B;YAC7B,cAAc,GAAG,EAAE,CAAC;YACpB,KAAK,cAAc,EAAE,CAAC;YACtB,MAAM;QACR,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,GAAG,IAAA,6BAAe,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE;aACzD,CAAC,CAAC,CAAC;YACJ,cAAc,GAAG,EAAE,CAAC;YACpB,KAAK,cAAc,EAAE,CAAC;YACtB,MAAM;QACR,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,qEAAqE;YACrE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,IAAA,2BAAa,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM;QACR,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,IAAA,4BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM;QACR,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,yEAAyE;YACzE,+DAA+D;YAC/D,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBAAC,MAAM,GAAG,IAAA,+BAAc,EAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YAChG,OAAO,GAAQ,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,yBAAyB,EAAE,CAAC;YAAC,CAAC;YACnF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9F,MAAM;QACR,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,iEAAiE;YACjE,IAAI,GAAG,CAAC,QAAQ;gBAAE,IAAA,wBAAU,EAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM;QACR,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,oEAAoE;YACpE,+DAA+D;YAC/D,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjD,IAAA,yBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,uEAAuE;YACvE,yEAAyE;YACzE,8DAA8D;YAC9D,oEAAoE;YACpE,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;gBACnB,IAAA,gCAAkB,GAAE,CAAC,CAAC,+CAA+C;gBACrE,IAAA,oCAAsB,EAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,+CAA+C,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,2EAA2E;YAC3E,4EAA4E;YAC5E,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAe,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,IAAI,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC,CAAC;YACJ,MAAM;QACR,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO;oBACrB,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE;oBAC7B,CAAC,CAAC,oBAAoB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAgB;oBAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;oBAC3B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;iBAC3B,CAAC;gBACF,+CAA+C;gBAC/C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC/E,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtD,MAAM,WAAW,GAA2B,EAAE,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEhE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAEvC,4CAA4C;gBAC5C,EAAE;gBACF,wEAAwE;gBACxE,iEAAiE;gBACjE,uEAAuE;gBACvE,sEAAsE;gBACtE,sCAAsC;gBACtC,EAAE;gBACF,uEAAuE;gBACvE,yEAAyE;gBACzE,oEAAoE;gBACpE,8DAA8D;gBAC9D,MAAM,SAAS,GACb,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC;oBAC9D,CAAC,CAAC,GAAG,CAAC,cAAc;oBACpB,CAAC,CAAC,SAAS,CAAC;gBAEhB,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;oBAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;4BACrB,IAAI,EAAE,qBAAqB;4BAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,KAAK,EAAE,CAAC;4BACR,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;yBACpD,CAAC,CAAC,CAAC;oBACN,CAAC;oBACD,qEAAqE;oBACrE,iEAAiE;oBACjE,8DAA8D;oBAC9D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,eAAe;wBACrB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,OAAO,EAAE,WAAW;wBACpB,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,eAAe;wBACrB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,OAAO,EAAE,WAAW;wBACpB,IAAI,EAAE,GAAG;qBACV,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,eAAe;oBACrB,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;oBACzC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACrE,CAAC,CAAC,CAAC;YACN,CAAC;YACD,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { AiEvent } from './events';
2
+ export interface CapturedTranscript {
3
+ /** The transcript file this conversation is, or '' when nothing is captured. */
4
+ sessionKey: string;
5
+ events: AiEvent[];
6
+ /** Absolute index of events[0]; null when there are none. */
7
+ firstSeq: number | null;
8
+ /** Captured events older than firstSeq — what "load earlier" can still reach. */
9
+ earlier: number;
10
+ /** Absolute index of the last event held, for an open's `haveThrough`. */
11
+ lastSeq: number | null;
12
+ /** When the capture last grew, so a screen can say how fresh the copy is. */
13
+ updatedAt: string | null;
14
+ }
15
+ export declare const EMPTY_CAPTURE: CapturedTranscript;
16
+ /** A page of captured events is at most a replay's worth, never less than one. */
17
+ export declare const MAX_CAPTURE_PAGE = 200;
18
+ /**
19
+ * Clamp a ?before=&limit= pair off the wire. `before` is exclusive and absent
20
+ * means "the newest page"; 0 is a legitimate index, so only a non-integer or a
21
+ * negative number counts as absent.
22
+ */
23
+ export declare function parseCapturePage(before: unknown, limit: unknown): {
24
+ before: number | null;
25
+ limit: number;
26
+ };
27
+ //# sourceMappingURL=captured.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captured.d.ts","sourceRoot":"","sources":["../src/captured.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAYxC,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,aAAa,EAAE,kBAE3B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,MAAe,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAO1G"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_CAPTURE_PAGE = exports.EMPTY_CAPTURE = void 0;
4
+ exports.parseCapturePage = parseCapturePage;
5
+ const session_1 = require("./session");
6
+ exports.EMPTY_CAPTURE = {
7
+ sessionKey: '', events: [], firstSeq: null, earlier: 0, lastSeq: null, updatedAt: null,
8
+ };
9
+ /** A page of captured events is at most a replay's worth, never less than one. */
10
+ exports.MAX_CAPTURE_PAGE = session_1.REPLAY_LIMIT;
11
+ /**
12
+ * Clamp a ?before=&limit= pair off the wire. `before` is exclusive and absent
13
+ * means "the newest page"; 0 is a legitimate index, so only a non-integer or a
14
+ * negative number counts as absent.
15
+ */
16
+ function parseCapturePage(before, limit) {
17
+ const b = Number(before);
18
+ const l = Math.floor(Number(limit));
19
+ return {
20
+ before: Number.isInteger(b) && b > 0 ? b : null,
21
+ limit: Number.isFinite(l) && l > 0 ? Math.min(l, exports.MAX_CAPTURE_PAGE) : exports.MAX_CAPTURE_PAGE,
22
+ };
23
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=captured.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captured.test.d.ts","sourceRoot":"","sources":["../src/captured.test.ts"],"names":[],"mappings":""}