@agentuity/opencode 0.1.41 → 0.1.42

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 (41) hide show
  1. package/README.md +3 -10
  2. package/dist/agents/lead.d.ts +1 -1
  3. package/dist/agents/lead.d.ts.map +1 -1
  4. package/dist/agents/lead.js +2 -3
  5. package/dist/agents/lead.js.map +1 -1
  6. package/dist/plugin/hooks/cadence.d.ts.map +1 -1
  7. package/dist/plugin/hooks/cadence.js +3 -1
  8. package/dist/plugin/hooks/cadence.js.map +1 -1
  9. package/dist/plugin/plugin.d.ts.map +1 -1
  10. package/dist/plugin/plugin.js +49 -11
  11. package/dist/plugin/plugin.js.map +1 -1
  12. package/dist/skills/frontmatter.js +1 -1
  13. package/dist/skills/frontmatter.js.map +1 -1
  14. package/dist/tmux/executor.d.ts +29 -1
  15. package/dist/tmux/executor.d.ts.map +1 -1
  16. package/dist/tmux/executor.js +328 -13
  17. package/dist/tmux/executor.js.map +1 -1
  18. package/dist/tmux/index.d.ts +1 -1
  19. package/dist/tmux/index.d.ts.map +1 -1
  20. package/dist/tmux/index.js +1 -1
  21. package/dist/tmux/index.js.map +1 -1
  22. package/dist/tmux/manager.d.ts +36 -0
  23. package/dist/tmux/manager.d.ts.map +1 -1
  24. package/dist/tmux/manager.js +222 -10
  25. package/dist/tmux/manager.js.map +1 -1
  26. package/dist/tmux/state-query.d.ts.map +1 -1
  27. package/dist/tmux/state-query.js +4 -1
  28. package/dist/tmux/state-query.js.map +1 -1
  29. package/dist/tmux/types.d.ts +1 -0
  30. package/dist/tmux/types.d.ts.map +1 -1
  31. package/dist/tmux/types.js.map +1 -1
  32. package/package.json +3 -3
  33. package/src/agents/lead.ts +2 -3
  34. package/src/plugin/hooks/cadence.ts +2 -1
  35. package/src/plugin/plugin.ts +62 -11
  36. package/src/skills/frontmatter.ts +1 -1
  37. package/src/tmux/executor.ts +345 -13
  38. package/src/tmux/index.ts +3 -0
  39. package/src/tmux/manager.ts +255 -9
  40. package/src/tmux/state-query.ts +4 -1
  41. package/src/tmux/types.ts +1 -0
@@ -1,4 +1,15 @@
1
1
  import { runTmuxCommand, runTmuxCommandSync } from './utils';
2
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
3
+ import { homedir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { spawn, spawnSync } from 'bun';
6
+ /**
7
+ * Path to persist the agents window ID for crash recovery.
8
+ * Uses ~/.config/agentuity/coder/cache/ which is consistent with other Agentuity paths
9
+ * and likely exists for any Agentuity user.
10
+ */
11
+ const CACHE_DIR = join(homedir(), '.config', 'agentuity', 'coder', 'cache');
12
+ const AGENTS_WINDOW_FILE = join(CACHE_DIR, 'agents-window-id');
2
13
  /**
3
14
  * Escape a string for safe use in shell commands.
4
15
  * Wraps in single quotes and escapes any internal single quotes.
@@ -9,10 +20,137 @@ function shellEscape(str) {
9
20
  }
10
21
  /** Maximum retries for recursive spawn attempts to prevent infinite loops */
11
22
  const MAX_SPAWN_RETRIES = 3;
23
+ const PROCESS_TERM_WAIT_MS = 1000;
24
+ function isProcessAlive(pid) {
25
+ try {
26
+ process.kill(pid, 0);
27
+ return true;
28
+ }
29
+ catch (error) {
30
+ const code = error.code;
31
+ return code !== 'ESRCH';
32
+ }
33
+ }
34
+ async function getPanePid(paneId) {
35
+ if (!paneId)
36
+ return undefined;
37
+ const result = await runTmuxCommand(['display', '-p', '-t', paneId, '#{pane_pid}']);
38
+ if (!result.success)
39
+ return undefined;
40
+ const pid = Number(result.output.trim());
41
+ if (!Number.isFinite(pid) || pid <= 0)
42
+ return undefined;
43
+ return pid;
44
+ }
45
+ /**
46
+ * Kill a process and all its children (the entire process tree).
47
+ *
48
+ * This is necessary because we spawn `bash -c "opencode attach ...; tmux kill-pane"`
49
+ * and #{pane_pid} returns the bash PID, not the opencode attach PID.
50
+ * We need to kill the children (opencode attach) not just the parent (bash).
51
+ */
52
+ export async function killProcessByPid(pid) {
53
+ if (!Number.isFinite(pid) || pid <= 0)
54
+ return false;
55
+ // First, kill all child processes
56
+ try {
57
+ const proc = spawn(['pkill', '-TERM', '-P', String(pid)], {
58
+ stdout: 'pipe',
59
+ stderr: 'pipe',
60
+ });
61
+ await proc.exited;
62
+ }
63
+ catch {
64
+ // Ignore errors - children may not exist
65
+ }
66
+ // Then kill the parent
67
+ try {
68
+ process.kill(pid, 'SIGTERM');
69
+ }
70
+ catch (error) {
71
+ const code = error.code;
72
+ if (code === 'ESRCH')
73
+ return true;
74
+ return false;
75
+ }
76
+ await new Promise((resolve) => setTimeout(resolve, PROCESS_TERM_WAIT_MS));
77
+ // Check if parent and children are dead
78
+ if (!isProcessAlive(pid))
79
+ return true;
80
+ // Force kill children
81
+ try {
82
+ const proc = spawn(['pkill', '-KILL', '-P', String(pid)], {
83
+ stdout: 'pipe',
84
+ stderr: 'pipe',
85
+ });
86
+ await proc.exited;
87
+ }
88
+ catch {
89
+ // Ignore errors
90
+ }
91
+ // Force kill parent
92
+ try {
93
+ process.kill(pid, 'SIGKILL');
94
+ }
95
+ catch (error) {
96
+ const code = error.code;
97
+ if (code === 'ESRCH')
98
+ return true;
99
+ return false;
100
+ }
101
+ return !isProcessAlive(pid);
102
+ }
12
103
  /**
13
104
  * State for separate-window mode - tracks the dedicated "Agents" window
14
105
  */
15
106
  let agentsWindowId;
107
+ /**
108
+ * Ensure the cache directory exists
109
+ */
110
+ function ensureCacheDir() {
111
+ if (!existsSync(CACHE_DIR)) {
112
+ mkdirSync(CACHE_DIR, { recursive: true });
113
+ }
114
+ }
115
+ /**
116
+ * Persist the agents window ID to disk for crash recovery
117
+ */
118
+ function persistAgentsWindowId(windowId) {
119
+ try {
120
+ ensureCacheDir();
121
+ writeFileSync(AGENTS_WINDOW_FILE, windowId, 'utf-8');
122
+ }
123
+ catch {
124
+ // Ignore write errors - persistence is best-effort
125
+ }
126
+ }
127
+ /**
128
+ * Load the agents window ID from disk (for crash recovery)
129
+ */
130
+ function loadPersistedAgentsWindowId() {
131
+ try {
132
+ if (!existsSync(AGENTS_WINDOW_FILE))
133
+ return undefined;
134
+ const windowId = readFileSync(AGENTS_WINDOW_FILE, 'utf-8').trim();
135
+ return windowId || undefined;
136
+ }
137
+ catch {
138
+ return undefined;
139
+ }
140
+ }
141
+ /**
142
+ * Clear the persisted agents window ID
143
+ */
144
+ function clearPersistedAgentsWindowId() {
145
+ try {
146
+ if (existsSync(AGENTS_WINDOW_FILE)) {
147
+ unlinkSync(AGENTS_WINDOW_FILE);
148
+ }
149
+ }
150
+ catch {
151
+ // Ignore delete errors
152
+ }
153
+ }
16
154
  /**
17
155
  * Execute a single pane action
18
156
  *
@@ -51,17 +189,20 @@ export async function executeActions(actions, ctx) {
51
189
  * Uses: tmux kill-pane -t <paneId>
52
190
  */
53
191
  async function closePane(action) {
54
- const result = await runTmuxCommand(['kill-pane', '-t', action.paneId]);
55
- if (!result.success) {
56
- return { success: false, error: result.output };
57
- }
58
- return { success: true };
192
+ return closePaneById(action.paneId);
59
193
  }
60
194
  /**
61
195
  * Close a pane by its ID
62
196
  * Exported for use by TmuxSessionManager when sessions complete
63
197
  */
64
- export async function closePaneById(paneId) {
198
+ export async function closePaneById(paneId, pid) {
199
+ let resolvedPid = pid;
200
+ if (!resolvedPid) {
201
+ resolvedPid = await getPanePid(paneId);
202
+ }
203
+ if (resolvedPid) {
204
+ await killProcessByPid(resolvedPid);
205
+ }
65
206
  const result = await runTmuxCommand(['kill-pane', '-t', paneId]);
66
207
  if (!result.success) {
67
208
  return { success: false, error: result.output };
@@ -82,7 +223,8 @@ async function replacePane(action, ctx) {
82
223
  if (!result.success) {
83
224
  return { success: false, error: result.output };
84
225
  }
85
- return { success: true, paneId: action.paneId };
226
+ const pid = await getPanePid(action.paneId);
227
+ return { success: true, paneId: action.paneId, pid };
86
228
  }
87
229
  /**
88
230
  * Spawn agent in a dedicated "Agents" window with tiled grid layout
@@ -143,11 +285,16 @@ async function spawnInAgentsWindow(action, ctx, retryCount = 0) {
143
285
  const output = createResult.output?.trim() || '';
144
286
  const [windowId, paneId] = output.split(':');
145
287
  agentsWindowId = windowId;
288
+ // Persist for crash recovery
289
+ if (agentsWindowId) {
290
+ persistAgentsWindowId(agentsWindowId);
291
+ }
146
292
  // Apply initial layout (useful when more panes are added later)
147
293
  if (agentsWindowId && layout) {
148
294
  await runTmuxCommand(['select-layout', '-t', agentsWindowId, layout]);
149
295
  }
150
- return { success: true, paneId, windowId };
296
+ const pid = paneId ? await getPanePid(paneId) : undefined;
297
+ return { success: true, paneId, windowId, pid };
151
298
  }
152
299
  // Agents window exists - split within it
153
300
  // First, get the first pane in the agents window to use as split target
@@ -188,10 +335,12 @@ async function spawnInAgentsWindow(action, ctx, retryCount = 0) {
188
335
  if (agentsWindowId && layout) {
189
336
  await runTmuxCommand(['select-layout', '-t', agentsWindowId, layout]);
190
337
  }
338
+ const pid = paneId ? await getPanePid(paneId) : undefined;
191
339
  return {
192
340
  success: true,
193
341
  paneId: paneId || undefined,
194
342
  windowId: agentsWindowId,
343
+ pid,
195
344
  };
196
345
  }
197
346
  /**
@@ -199,33 +348,199 @@ async function spawnInAgentsWindow(action, ctx, retryCount = 0) {
199
348
  */
200
349
  export function resetAgentsWindow() {
201
350
  agentsWindowId = undefined;
351
+ clearPersistedAgentsWindowId();
202
352
  }
203
353
  /**
204
354
  * Close the agents window if it exists
205
355
  * This kills the entire window, which closes all panes within it
206
356
  */
207
357
  export async function closeAgentsWindow() {
208
- if (!agentsWindowId)
358
+ // Try to recover window ID from disk if not in memory
359
+ const windowId = agentsWindowId ?? loadPersistedAgentsWindowId();
360
+ if (!windowId)
209
361
  return;
210
362
  // Kill the entire window (closes all panes within it)
211
- await runTmuxCommand(['kill-window', '-t', agentsWindowId]);
363
+ await runTmuxCommand(['kill-window', '-t', windowId]);
212
364
  agentsWindowId = undefined;
365
+ clearPersistedAgentsWindowId();
213
366
  }
214
367
  /**
215
368
  * Synchronously close the agents window (for shutdown)
216
369
  * Uses spawnSync to ensure it completes before process exit
217
370
  */
218
371
  export function closeAgentsWindowSync() {
219
- if (!agentsWindowId)
372
+ // Try to recover window ID from disk if not in memory
373
+ const windowId = agentsWindowId ?? loadPersistedAgentsWindowId();
374
+ if (!windowId)
220
375
  return;
221
376
  // Kill the entire window synchronously
222
- runTmuxCommandSync(['kill-window', '-t', agentsWindowId]);
377
+ runTmuxCommandSync(['kill-window', '-t', windowId]);
223
378
  agentsWindowId = undefined;
379
+ clearPersistedAgentsWindowId();
224
380
  }
225
381
  /**
226
382
  * Get the current agents window ID (for testing/debugging)
383
+ * Also checks persisted file for crash recovery
227
384
  */
228
385
  export function getAgentsWindowId() {
229
- return agentsWindowId;
386
+ return agentsWindowId ?? loadPersistedAgentsWindowId();
387
+ }
388
+ /**
389
+ * Kill all orphaned opencode attach processes for a given server URL.
390
+ * This is a fallback cleanup method when PID-based cleanup fails.
391
+ *
392
+ * @param serverUrl - The server URL to match (optional, kills all if not provided)
393
+ * @param logger - Optional logging function for debug output
394
+ * @returns Number of processes killed
395
+ */
396
+ export async function killOrphanedAttachProcesses(serverUrl, logger) {
397
+ const log = logger ?? (() => { });
398
+ try {
399
+ // Use pkill with pattern matching for opencode attach
400
+ const { spawn } = await import('bun');
401
+ // First, find matching processes to log what we're killing
402
+ const psProc = spawn(['ps', 'aux'], { stdout: 'pipe', stderr: 'pipe' });
403
+ await psProc.exited;
404
+ const psOutput = await new Response(psProc.stdout).text();
405
+ const lines = psOutput.split('\n');
406
+ const matchingPids = [];
407
+ for (const line of lines) {
408
+ if (!line.includes('opencode attach'))
409
+ continue;
410
+ if (serverUrl && !line.includes(serverUrl))
411
+ continue;
412
+ // Don't kill ourselves
413
+ if (line.includes(String(process.pid)))
414
+ continue;
415
+ const parts = line.trim().split(/\s+/);
416
+ const pid = Number(parts[1]);
417
+ if (Number.isFinite(pid) && pid > 0) {
418
+ matchingPids.push(pid);
419
+ }
420
+ }
421
+ if (matchingPids.length === 0) {
422
+ log('No orphaned opencode attach processes found');
423
+ return 0;
424
+ }
425
+ log(`Found ${matchingPids.length} orphaned processes: ${matchingPids.join(', ')}`);
426
+ // Kill each process individually for better control
427
+ let killed = 0;
428
+ for (const pid of matchingPids) {
429
+ try {
430
+ // Try SIGTERM first
431
+ process.kill(pid, 'SIGTERM');
432
+ log(`Sent SIGTERM to PID ${pid}`);
433
+ killed++;
434
+ }
435
+ catch (error) {
436
+ const code = error.code;
437
+ if (code !== 'ESRCH') {
438
+ log(`Failed to kill PID ${pid}: ${code}`);
439
+ }
440
+ }
441
+ }
442
+ // Wait a bit then SIGKILL any survivors
443
+ await new Promise((resolve) => setTimeout(resolve, PROCESS_TERM_WAIT_MS));
444
+ for (const pid of matchingPids) {
445
+ if (!isProcessAlive(pid))
446
+ continue;
447
+ try {
448
+ process.kill(pid, 'SIGKILL');
449
+ log(`Sent SIGKILL to PID ${pid}`);
450
+ }
451
+ catch {
452
+ // Ignore errors on SIGKILL
453
+ }
454
+ }
455
+ log(`Cleanup complete: killed ${killed} processes`);
456
+ return killed;
457
+ }
458
+ catch (error) {
459
+ log(`Fallback cleanup failed: ${error}`);
460
+ return 0;
461
+ }
462
+ }
463
+ /**
464
+ * Synchronous version of killOrphanedAttachProcesses for shutdown handlers.
465
+ * Uses spawnSync to ensure completion before process exit.
466
+ *
467
+ * @param serverUrl - The server URL to match (optional, kills all if not provided)
468
+ * @param logger - Optional logging function for debug output
469
+ * @returns Number of processes killed
470
+ */
471
+ export function killOrphanedAttachProcessesSync(serverUrl, logger) {
472
+ const log = logger ?? (() => { });
473
+ try {
474
+ // Find matching processes
475
+ const psResult = spawnSync(['ps', 'aux'], { timeout: 2000 });
476
+ if (psResult.exitCode !== 0) {
477
+ log('Failed to list processes');
478
+ return 0;
479
+ }
480
+ const psOutput = psResult.stdout?.toString() ?? '';
481
+ const lines = psOutput.split('\n');
482
+ const matchingPids = [];
483
+ for (const line of lines) {
484
+ if (!line.includes('opencode attach'))
485
+ continue;
486
+ if (serverUrl && !line.includes(serverUrl))
487
+ continue;
488
+ // Don't kill ourselves
489
+ if (line.includes(String(process.pid)))
490
+ continue;
491
+ const parts = line.trim().split(/\s+/);
492
+ const pid = Number(parts[1]);
493
+ if (Number.isFinite(pid) && pid > 0) {
494
+ matchingPids.push(pid);
495
+ }
496
+ }
497
+ if (matchingPids.length === 0) {
498
+ log('No orphaned opencode attach processes found');
499
+ return 0;
500
+ }
501
+ log(`Found ${matchingPids.length} orphaned processes: ${matchingPids.join(', ')}`);
502
+ // Kill each process
503
+ let killed = 0;
504
+ for (const pid of matchingPids) {
505
+ try {
506
+ process.kill(pid, 'SIGTERM');
507
+ log(`Sent SIGTERM to PID ${pid}`);
508
+ killed++;
509
+ }
510
+ catch (error) {
511
+ const code = error.code;
512
+ if (code !== 'ESRCH') {
513
+ log(`Failed to kill PID ${pid}: ${code}`);
514
+ }
515
+ }
516
+ }
517
+ // Brief wait using SharedArrayBuffer (sync sleep)
518
+ try {
519
+ const buffer = new SharedArrayBuffer(4);
520
+ const view = new Int32Array(buffer);
521
+ Atomics.wait(view, 0, 0, PROCESS_TERM_WAIT_MS);
522
+ }
523
+ catch {
524
+ // Ignore sleep errors
525
+ }
526
+ // SIGKILL survivors
527
+ for (const pid of matchingPids) {
528
+ if (!isProcessAlive(pid))
529
+ continue;
530
+ try {
531
+ process.kill(pid, 'SIGKILL');
532
+ log(`Sent SIGKILL to PID ${pid}`);
533
+ }
534
+ catch {
535
+ // Ignore errors
536
+ }
537
+ }
538
+ log(`Cleanup complete: killed ${killed} processes`);
539
+ return killed;
540
+ }
541
+ catch (error) {
542
+ log(`Fallback cleanup failed: ${error}`);
543
+ return 0;
544
+ }
230
545
  }
231
546
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/tmux/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/tmux/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAEvC;;;;GAIG;AACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAE/D;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW;IAC/B,0EAA0E;IAC1E,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAU5B,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC,SAAS,cAAc,CAAC,GAAW;IAClC,IAAI,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;QACnD,OAAO,IAAI,KAAK,OAAO,CAAC;IACzB,CAAC;AACF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpD,kCAAkC;IAClC,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACR,yCAAyC;IAC1C,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE1E,wCAAwC;IACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,sBAAsB;IACtB,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACR,gBAAgB;IACjB,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,IAAI,cAAkC,CAAC;AAEvC;;GAEG;AACH,SAAS,cAAc;IACtB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACJ,cAAc,EAAE,CAAC;QACjB,aAAa,CAAC,kBAAkB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,mDAAmD;IACpD,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B;IACnC,IAAI,CAAC;QACJ,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,OAAO,SAAS,CAAC;QACtD,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,QAAQ,IAAI,SAAS,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B;IACpC,IAAI,CAAC;QACJ,IAAI,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,uBAAuB;IACxB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAkB,EAClB,GAAwE;IAExE,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,OAAO;YACX,OAAO,mBAAmB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAClE,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,OAAqB,EACrB,GAAwE;IAMxE,MAAM,OAAO,GAAwD,EAAE,CAAC;IACxE,IAAI,aAAiC,CAAC;IAEtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9C,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS,CAAC,MAA8C;IACtE,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,GAAY;IAC/D,IAAI,WAAW,GAAG,GAAG,CAAC;IACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,WAAW,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,WAAW,CACzB,MAAgD,EAChD,GAA0B;IAE1B,gEAAgE;IAChE,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,mBAAmB,gBAAgB,cAAc,gBAAgB,kBAAkB,CAAC;IACpG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,mBAAmB,CACjC,MAA8C,EAC9C,GAA0B,EAC1B,UAAU,GAAG,CAAC;IAEd,mDAAmD;IACnD,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;QACrC,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oCAAoC,iBAAiB,WAAW;SACvE,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,mBAAmB,gBAAgB,cAAc,gBAAgB,kBAAkB,CAAC;IACpG,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,+CAA+C;IAEvE,oEAAoE;IACpE,IAAI,cAAc,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;YACxC,YAAY;YACZ,IAAI;YACJ,cAAc;YACd,IAAI;YACJ,YAAY;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1B,2CAA2C;YAC3C,cAAc,GAAG,SAAS,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;YACzC,YAAY;YACZ,IAAI,EAAE,6BAA6B;YACnC,IAAI;YACJ,IAAI;YACJ,yBAAyB;YACzB,IAAI;YACJ,QAAQ;YACR,OAAO;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;QACvD,CAAC;QAED,sCAAsC;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,cAAc,GAAG,QAAQ,CAAC;QAE1B,6BAA6B;QAC7B,IAAI,cAAc,EAAE,CAAC;YACpB,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,gEAAgE;QAChE,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,cAAc,CAAC,CAAC,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACjD,CAAC;IAED,yCAAyC;IACzC,wEAAwE;IACxE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC;QACvC,YAAY;QACZ,IAAI;QACJ,cAAc;QACd,IAAI;QACJ,YAAY;KACZ,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC/C,mDAAmD;QACnD,cAAc,GAAG,SAAS,CAAC;QAC3B,OAAO,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,mDAAmD;QACnD,cAAc,GAAG,SAAS,CAAC;QAC3B,OAAO,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;QACxC,cAAc;QACd,MAAM,CAAC,cAAc;QACrB,IAAI;QACJ,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,OAAO;KACP,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAE1C,0EAA0E;IAC1E,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,cAAc,CAAC,CAAC,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,QAAQ,EAAE,cAAc;QACxB,GAAG;KACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAChC,cAAc,GAAG,SAAS,CAAC;IAC3B,4BAA4B,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACtC,sDAAsD;IACtD,MAAM,QAAQ,GAAG,cAAc,IAAI,2BAA2B,EAAE,CAAC;IACjE,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,sDAAsD;IACtD,MAAM,cAAc,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtD,cAAc,GAAG,SAAS,CAAC;IAC3B,4BAA4B,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACpC,sDAAsD;IACtD,MAAM,QAAQ,GAAG,cAAc,IAAI,2BAA2B,EAAE,CAAC;IACjE,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,uCAAuC;IACvC,kBAAkB,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,cAAc,GAAG,SAAS,CAAC;IAC3B,4BAA4B,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAChC,OAAO,cAAc,IAAI,2BAA2B,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,SAAkB,EAClB,MAA8B;IAE9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEjC,IAAI,CAAC;QACJ,sDAAsD;QACtD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,CAAC,MAAM,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAAE,SAAS;YAChD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,SAAS;YACrD,uBAAuB;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAE,SAAS;YAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,6CAA6C,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC;QACV,CAAC;QAED,GAAG,CAAC,SAAS,YAAY,CAAC,MAAM,wBAAwB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnF,oDAAoD;QACpD,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAClC,MAAM,EAAE,CAAC;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;gBACnD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACtB,GAAG,CAAC,sBAAsB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC;QAED,wCAAwC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAE1E,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnC,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACR,2BAA2B;YAC5B,CAAC;QACF,CAAC;QAED,GAAG,CAAC,4BAA4B,MAAM,YAAY,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACV,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC9C,SAAkB,EAClB,MAA8B;IAE9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEjC,IAAI,CAAC;QACJ,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAChC,OAAO,CAAC,CAAC;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAAE,SAAS;YAChD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,SAAS;YACrD,uBAAuB;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAE,SAAS;YAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,6CAA6C,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC;QACV,CAAC;QAED,GAAG,CAAC,SAAS,YAAY,CAAC,MAAM,wBAAwB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnF,oBAAoB;QACpB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAClC,MAAM,EAAE,CAAC;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;gBACnD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACtB,GAAG,CAAC,sBAAsB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC;QAED,kDAAkD;QAClD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACR,sBAAsB;QACvB,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnC,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACR,gBAAgB;YACjB,CAAC;QACF,CAAC;QAED,GAAG,CAAC,4BAA4B,MAAM,YAAY,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACV,CAAC;AACF,CAAC"}
@@ -2,6 +2,6 @@ export * from './types';
2
2
  export * from './utils';
3
3
  export { queryWindowState } from './state-query';
4
4
  export { decideSpawnActions, calculateCapacity } from './decision-engine';
5
- export { executeAction, executeActions, closeAgentsWindow, closeAgentsWindowSync, } from './executor';
5
+ export { executeAction, executeActions, closeAgentsWindow, closeAgentsWindowSync, getAgentsWindowId, killOrphanedAttachProcesses, killOrphanedAttachProcessesSync, } from './executor';
6
6
  export { TmuxSessionManager } from './manager';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tmux/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tmux/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,+BAA+B,GAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -2,6 +2,6 @@ export * from './types';
2
2
  export * from './utils';
3
3
  export { queryWindowState } from './state-query';
4
4
  export { decideSpawnActions, calculateCapacity } from './decision-engine';
5
- export { executeAction, executeActions, closeAgentsWindow, closeAgentsWindowSync, } from './executor';
5
+ export { executeAction, executeActions, closeAgentsWindow, closeAgentsWindowSync, getAgentsWindowId, killOrphanedAttachProcesses, killOrphanedAttachProcessesSync, } from './executor';
6
6
  export { TmuxSessionManager } from './manager';
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tmux/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tmux/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,+BAA+B,GAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -34,6 +34,10 @@ export declare class TmuxSessionManager {
34
34
  parentId: string;
35
35
  title: string;
36
36
  }): Promise<void>;
37
+ /**
38
+ * Get all tracked PIDs for logging
39
+ */
40
+ private getTrackedPids;
37
41
  /**
38
42
  * Handle a session being deleted
39
43
  *
@@ -48,6 +52,7 @@ export declare class TmuxSessionManager {
48
52
  * Clean up all panes on shutdown
49
53
  *
50
54
  * Kills the entire "Agents" window, which closes all agent panes at once.
55
+ * Falls back to pkill if PID-based cleanup fails.
51
56
  */
52
57
  cleanup(): Promise<void>;
53
58
  /**
@@ -75,6 +80,37 @@ export declare class TmuxSessionManager {
75
80
  private getSessionMappings;
76
81
  private getServerUrl;
77
82
  private applyActionResults;
83
+ /**
84
+ * Find and report orphaned processes (does NOT kill them by default).
85
+ * Call this manually if you need to identify orphaned processes after a crash.
86
+ *
87
+ * Note: This method only reports - it does not kill processes because we cannot
88
+ * reliably distinguish between processes we spawned vs user-initiated sessions.
89
+ * The shutdown cleanup (cleanup/cleanupSync) is safe because it only kills PIDs
90
+ * we explicitly tracked during this session.
91
+ */
92
+ reportOrphanedProcesses(): Promise<number[]>;
93
+ private findOrphanedAttachPids;
94
+ private extractSessionId;
95
+ /**
96
+ * Kill a process and all its children synchronously.
97
+ *
98
+ * This is necessary because we spawn `bash -c "opencode attach ...; tmux kill-pane"`
99
+ * and #{pane_pid} returns the bash PID, not the opencode attach PID.
100
+ */
101
+ private killProcessByPidSync;
78
102
  private log;
103
+ /**
104
+ * Static method to clean up orphaned processes without needing an instance.
105
+ * This is useful for manual cleanup commands.
106
+ *
107
+ * @param serverUrl - Optional server URL to filter processes
108
+ * @param logger - Optional logging function
109
+ * @returns Object with cleanup results
110
+ */
111
+ static cleanupOrphans(serverUrl?: string, logger?: (msg: string) => void): Promise<{
112
+ killed: number;
113
+ windowClosed: boolean;
114
+ }>;
79
115
  }
80
116
  //# sourceMappingURL=manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/tmux/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAEX,UAAU,EAKV,MAAM,SAAS,CAAC;AA2BjB,MAAM,WAAW,2BAA2B;IAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAO7B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS,CAAC;IARnB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAqB;gBAGhC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,UAAU,EAClB,SAAS,CAAC,EAAE,2BAA2B,YAAA;IAKhD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFjB;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnE;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;;;OAKG;IACH,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;YACW,YAAY;IAgC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,GAAG;CAGX"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/tmux/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAEX,UAAU,EAKV,MAAM,SAAS,CAAC;AA8BjB,MAAM,WAAW,2BAA2B;IAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAO7B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS,CAAC;IARnB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAqB;gBAGhC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,UAAU,EAClB,SAAS,CAAC,EAAE,2BAA2B,YAAA;IAKhD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCnE;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B9B;;;;;OAKG;IACH,WAAW,IAAI,IAAI;IAgCnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;YACW,YAAY;IAgC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,kBAAkB;IAuC1B;;;;;;;;OAQG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAoBpC,sBAAsB;IA6BpC,OAAO,CAAC,gBAAgB;IAKxB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,GAAG;IAIX;;;;;;;OAOG;WACU,cAAc,CAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;CAqBrD"}