@agentuity/opencode 0.1.42 → 0.1.43

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.
@@ -1,9 +1,10 @@
1
- import { spawn, spawnSync } from 'bun';
1
+ import { spawnSync } from 'bun';
2
+ import { randomUUID } from 'node:crypto';
2
3
  import { POLL_INTERVAL_MS, SESSION_MISSING_GRACE_MS, SESSION_TIMEOUT_MS } from './types';
3
- import { getCurrentPaneId, getTmuxPath, isInsideTmux } from './utils';
4
+ import { canonicalizeServerUrl, getCurrentPaneId, getTmuxPath, getTmuxSessionId, isInsideTmux, } from './utils';
4
5
  import { queryWindowState } from './state-query';
5
6
  import { decideSpawnActions } from './decision-engine';
6
- import { executeActions, closeAgentsWindow, closeAgentsWindowSync, closePaneById, killProcessByPid, killOrphanedAttachProcesses, killOrphanedAttachProcessesSync, } from './executor';
7
+ import { executeActions, closeAgentsWindow, closeAgentsWindowSync, closePaneById, killProcessByPid, getPanePid, getPanePidSync, cleanupOwnedResources, cleanupOwnedResourcesSync, findOwnedAgentPanes, } from './executor';
7
8
  /**
8
9
  * Check if the OpenCode server is running by hitting the health endpoint
9
10
  */
@@ -36,12 +37,32 @@ export class TmuxSessionManager {
36
37
  pendingSessions = new Set();
37
38
  pollInterval;
38
39
  sourcePaneId;
40
+ tmuxSessionId;
41
+ instanceId = randomUUID().slice(0, 8);
42
+ ownerPid = process.pid;
43
+ serverKey;
44
+ statusMissingSince = new Map();
45
+ /**
46
+ * Operation queue to serialize tmux mutations.
47
+ * This prevents race conditions when multiple sessions are created rapidly.
48
+ */
49
+ tmuxOpQueue = Promise.resolve();
39
50
  constructor(ctx, config, callbacks) {
40
51
  this.ctx = ctx;
41
52
  this.config = config;
42
53
  this.callbacks = callbacks;
43
54
  this.sourcePaneId = getCurrentPaneId();
44
55
  }
56
+ /**
57
+ * Enqueue a tmux operation to ensure sequential execution.
58
+ * This prevents race conditions when multiple sessions are created/deleted rapidly.
59
+ */
60
+ enqueue(fn) {
61
+ const result = this.tmuxOpQueue.then(fn, fn); // Run even if previous failed
62
+ // Update queue but don't propagate errors to next operation
63
+ this.tmuxOpQueue = result.then(() => { }, () => { });
64
+ return result;
65
+ }
45
66
  /**
46
67
  * Check if tmux integration is enabled and available
47
68
  */
@@ -51,8 +72,17 @@ export class TmuxSessionManager {
51
72
  /**
52
73
  * Handle a new background session being created
53
74
  * This is called by BackgroundManager when a background task starts
75
+ *
76
+ * Operations are queued to prevent race conditions when multiple sessions
77
+ * are created rapidly.
54
78
  */
55
79
  async onSessionCreated(event) {
80
+ return this.enqueue(() => this.doSessionCreated(event));
81
+ }
82
+ /**
83
+ * Internal implementation of session creation (runs within the queue)
84
+ */
85
+ async doSessionCreated(event) {
56
86
  this.log(`onSessionCreated called for ${event.sessionId} (${event.title})`);
57
87
  if (!this.isEnabled()) {
58
88
  this.log(`Skipping - tmux not enabled (config: ${this.config.enabled}, insideTmux: ${isInsideTmux()})`);
@@ -76,6 +106,13 @@ export class TmuxSessionManager {
76
106
  this.log('Unable to determine source pane id.');
77
107
  return;
78
108
  }
109
+ // Get the tmux session ID for this pane (cached after first lookup)
110
+ if (!this.tmuxSessionId) {
111
+ this.tmuxSessionId = await getTmuxSessionId(this.sourcePaneId);
112
+ if (this.tmuxSessionId) {
113
+ this.log(`Resolved tmux session ID: ${this.tmuxSessionId}`);
114
+ }
115
+ }
79
116
  const state = await queryWindowState(this.sourcePaneId);
80
117
  if (!state) {
81
118
  this.log('Failed to query tmux window state.');
@@ -103,16 +140,25 @@ export class TmuxSessionManager {
103
140
  this.log(`Server not running at ${serverUrl}. Start opencode with --port flag to enable tmux integration.`);
104
141
  return;
105
142
  }
143
+ const serverKey = canonicalizeServerUrl(serverUrl);
144
+ this.serverKey = serverKey;
106
145
  const result = await executeActions(decision.actions, {
107
146
  config: this.config,
108
147
  serverUrl,
109
148
  windowState: state,
149
+ ownership: {
150
+ instanceId: this.instanceId,
151
+ ownerPid: this.ownerPid,
152
+ serverKey,
153
+ tmuxSessionId: this.tmuxSessionId,
154
+ },
110
155
  });
111
156
  if (!result.success) {
112
157
  this.log('Failed to execute tmux actions.');
113
158
  return;
114
159
  }
115
160
  this.applyActionResults(decision.actions, result.results);
161
+ await this.refreshMissingPids();
116
162
  this.log(`Successfully spawned pane for ${event.sessionId}. Tracking ${this.sessions.size} sessions. PIDs: ${this.getTrackedPids().join(', ') || 'none'}`);
117
163
  if (this.sessions.size > 0) {
118
164
  this.startPolling();
@@ -136,8 +182,16 @@ export class TmuxSessionManager {
136
182
  * Explicitly kills the pane when a background session completes.
137
183
  * We can't rely on `opencode attach` exiting because it's an interactive
138
184
  * terminal that keeps running even after the session goes idle.
185
+ *
186
+ * Operations are queued to prevent race conditions.
139
187
  */
140
188
  async onSessionDeleted(event) {
189
+ return this.enqueue(() => this.doSessionDeleted(event));
190
+ }
191
+ /**
192
+ * Internal implementation of session deletion (runs within the queue)
193
+ */
194
+ async doSessionDeleted(event) {
141
195
  this.log(`onSessionDeleted called for ${event.sessionId}`);
142
196
  if (!this.isEnabled()) {
143
197
  this.log(`Skipping delete - tmux not enabled`);
@@ -160,6 +214,7 @@ export class TmuxSessionManager {
160
214
  }
161
215
  // Update internal state
162
216
  this.sessions.delete(event.sessionId);
217
+ this.statusMissingSince.delete(event.sessionId);
163
218
  this.log(`Removed session from tracking. Now tracking ${this.sessions.size} sessions.`);
164
219
  if (this.sessions.size === 0) {
165
220
  this.stopPolling();
@@ -174,26 +229,31 @@ export class TmuxSessionManager {
174
229
  async cleanup() {
175
230
  this.log('Starting cleanup...');
176
231
  this.stopPolling();
177
- let pidCleanupFailed = false;
178
232
  for (const session of this.sessions.values()) {
179
- if (!session.pid)
233
+ let pid = session.pid;
234
+ if (!pid) {
235
+ pid = await getPanePid(session.paneId);
236
+ if (pid) {
237
+ session.pid = pid;
238
+ }
239
+ }
240
+ if (!pid)
180
241
  continue;
181
- this.log(`Killing process ${session.pid} for session ${session.sessionId}`);
182
- const success = await killProcessByPid(session.pid);
242
+ this.log(`Killing process ${pid} for session ${session.sessionId}`);
243
+ const success = await killProcessByPid(pid);
183
244
  if (!success) {
184
- this.log(`Failed to kill process ${session.pid} for session ${session.sessionId}`);
185
- pidCleanupFailed = true;
245
+ this.log(`Failed to kill process ${pid} for session ${session.sessionId}`);
186
246
  }
187
247
  }
188
- // Kill the entire agents window - this closes all panes at once
189
- await closeAgentsWindow();
190
- this.sessions.clear();
191
- // Fallback: if PID-based cleanup failed, use pkill to catch any orphans
192
- if (pidCleanupFailed) {
193
- this.log('PID-based cleanup had failures, running fallback cleanup...');
194
- const serverUrl = this.getServerUrl();
195
- await killOrphanedAttachProcesses(serverUrl, (msg) => this.log(msg));
248
+ const serverKey = this.getServerKey();
249
+ if (serverKey) {
250
+ await cleanupOwnedResources(serverKey, this.instanceId);
251
+ }
252
+ else {
253
+ await closeAgentsWindow();
196
254
  }
255
+ this.sessions.clear();
256
+ this.statusMissingSince.clear();
197
257
  this.log('Cleanup complete');
198
258
  }
199
259
  /**
@@ -205,30 +265,28 @@ export class TmuxSessionManager {
205
265
  cleanupSync() {
206
266
  this.log('Starting sync cleanup...');
207
267
  this.stopPolling();
208
- let pidCleanupFailed = false;
209
268
  for (const session of this.sessions.values()) {
210
- if (!session.pid)
211
- continue;
212
- this.log(`Killing process ${session.pid} for session ${session.sessionId}`);
213
- this.killProcessByPidSync(session.pid);
214
- // Check if process is still alive after kill attempt
215
- try {
216
- process.kill(session.pid, 0);
217
- pidCleanupFailed = true; // Process still exists
218
- }
219
- catch {
220
- // Process is dead, good
269
+ let pid = session.pid;
270
+ if (!pid) {
271
+ pid = getPanePidSync(session.paneId);
272
+ if (pid) {
273
+ session.pid = pid;
274
+ }
221
275
  }
276
+ if (!pid)
277
+ continue;
278
+ this.log(`Killing process ${pid} for session ${session.sessionId}`);
279
+ this.killProcessByPidSync(pid);
222
280
  }
223
- // Kill the entire agents window synchronously
224
- closeAgentsWindowSync();
225
- this.sessions.clear();
226
- // Fallback: if PID-based cleanup failed, use pkill to catch any orphans
227
- if (pidCleanupFailed) {
228
- this.log('PID-based cleanup had failures, running fallback cleanup...');
229
- const serverUrl = this.getServerUrl();
230
- killOrphanedAttachProcessesSync(serverUrl, (msg) => this.log(msg));
281
+ const serverKey = this.getServerKey();
282
+ if (serverKey) {
283
+ cleanupOwnedResourcesSync(serverKey, this.instanceId);
284
+ }
285
+ else {
286
+ closeAgentsWindowSync();
231
287
  }
288
+ this.sessions.clear();
289
+ this.statusMissingSince.clear();
232
290
  this.log('Sync cleanup complete');
233
291
  }
234
292
  /**
@@ -254,6 +312,12 @@ export class TmuxSessionManager {
254
312
  * Poll active sessions for status changes
255
313
  */
256
314
  async pollSessions() {
315
+ return this.enqueue(() => this.doPollSessions());
316
+ }
317
+ /**
318
+ * Poll active sessions for status changes
319
+ */
320
+ async doPollSessions() {
257
321
  if (!this.isEnabled())
258
322
  return;
259
323
  if (!this.sourcePaneId)
@@ -261,23 +325,56 @@ export class TmuxSessionManager {
261
325
  const state = await queryWindowState(this.sourcePaneId);
262
326
  if (!state)
263
327
  return;
328
+ const statusMap = await this.fetchSessionStatuses();
264
329
  const now = Date.now();
330
+ const sessionsToClose = [];
265
331
  for (const session of this.sessions.values()) {
266
332
  const pane = findPane(state, session.paneId);
267
333
  if (pane) {
268
334
  session.lastSeenAt = new Date();
269
- continue;
335
+ if (!session.pid) {
336
+ const pid = await getPanePid(session.paneId);
337
+ if (pid) {
338
+ session.pid = pid;
339
+ }
340
+ }
270
341
  }
271
- const missingFor = now - session.lastSeenAt.getTime();
272
- if (missingFor > SESSION_MISSING_GRACE_MS) {
273
- this.sessions.delete(session.sessionId);
274
- continue;
342
+ else {
343
+ const missingFor = now - session.lastSeenAt.getTime();
344
+ if (missingFor > SESSION_MISSING_GRACE_MS) {
345
+ if (session.pid) {
346
+ await killProcessByPid(session.pid);
347
+ }
348
+ this.sessions.delete(session.sessionId);
349
+ this.statusMissingSince.delete(session.sessionId);
350
+ continue;
351
+ }
352
+ }
353
+ const status = statusMap[session.sessionId];
354
+ if (status) {
355
+ this.statusMissingSince.delete(session.sessionId);
275
356
  }
357
+ else if (!this.statusMissingSince.has(session.sessionId)) {
358
+ this.statusMissingSince.set(session.sessionId, now);
359
+ }
360
+ const statusMissingAt = this.statusMissingSince.get(session.sessionId);
361
+ const missingTooLong = statusMissingAt !== undefined && now - statusMissingAt > SESSION_MISSING_GRACE_MS;
276
362
  const age = now - session.createdAt.getTime();
277
- if (age > SESSION_TIMEOUT_MS) {
278
- this.sessions.delete(session.sessionId);
363
+ const isTimedOut = age > SESSION_TIMEOUT_MS;
364
+ const isIdle = status?.type === 'idle';
365
+ if (isIdle || missingTooLong || isTimedOut) {
366
+ sessionsToClose.push(session);
279
367
  }
280
368
  }
369
+ for (const session of sessionsToClose) {
370
+ this.log(`Closing idle session ${session.sessionId} (pane: ${session.paneId})`);
371
+ const result = await closePaneById(session.paneId, session.pid);
372
+ if (!result.success) {
373
+ this.log(`Failed to close pane ${session.paneId} for session ${session.sessionId}: ${result.error}`);
374
+ }
375
+ this.sessions.delete(session.sessionId);
376
+ this.statusMissingSince.delete(session.sessionId);
377
+ }
281
378
  if (this.sessions.size === 0) {
282
379
  this.stopPolling();
283
380
  }
@@ -299,6 +396,22 @@ export class TmuxSessionManager {
299
396
  return undefined;
300
397
  return typeof serverUrl === 'string' ? serverUrl : serverUrl.toString();
301
398
  }
399
+ getServerKey() {
400
+ if (this.serverKey)
401
+ return this.serverKey;
402
+ const serverUrl = this.getServerUrl();
403
+ if (!serverUrl)
404
+ return undefined;
405
+ try {
406
+ const serverKey = canonicalizeServerUrl(serverUrl);
407
+ this.serverKey = serverKey;
408
+ return serverKey;
409
+ }
410
+ catch (error) {
411
+ this.log(`Failed to canonicalize server URL "${serverUrl}": ${error}`);
412
+ return undefined;
413
+ }
414
+ }
302
415
  applyActionResults(actions, results) {
303
416
  const now = new Date();
304
417
  for (const [index, action] of actions.entries()) {
@@ -309,6 +422,7 @@ export class TmuxSessionManager {
309
422
  break;
310
423
  case 'replace':
311
424
  this.sessions.delete(action.oldSessionId);
425
+ this.statusMissingSince.delete(action.oldSessionId);
312
426
  this.sessions.set(action.newSessionId, {
313
427
  sessionId: action.newSessionId,
314
428
  paneId: action.paneId,
@@ -335,6 +449,31 @@ export class TmuxSessionManager {
335
449
  }
336
450
  }
337
451
  }
452
+ async refreshMissingPids() {
453
+ for (const session of this.sessions.values()) {
454
+ if (session.pid)
455
+ continue;
456
+ const pid = await getPanePid(session.paneId);
457
+ if (pid) {
458
+ session.pid = pid;
459
+ }
460
+ }
461
+ }
462
+ async fetchSessionStatuses() {
463
+ try {
464
+ const result = await this.ctx.client.session.status({
465
+ path: undefined,
466
+ throwOnError: false,
467
+ });
468
+ const data = unwrapResponse(result);
469
+ if (!data || typeof data !== 'object')
470
+ return {};
471
+ return data;
472
+ }
473
+ catch {
474
+ return {};
475
+ }
476
+ }
338
477
  /**
339
478
  * Find and report orphaned processes (does NOT kill them by default).
340
479
  * Call this manually if you need to identify orphaned processes after a crash.
@@ -347,49 +486,26 @@ export class TmuxSessionManager {
347
486
  async reportOrphanedProcesses() {
348
487
  if (!this.isEnabled())
349
488
  return [];
350
- const serverUrl = this.getServerUrl();
351
- if (!serverUrl)
489
+ const serverKey = this.getServerKey();
490
+ if (!serverKey)
352
491
  return [];
353
492
  const trackedSessionIds = new Set(this.sessions.keys());
354
- const orphanedPids = await this.findOrphanedAttachPids(serverUrl, trackedSessionIds);
355
- if (orphanedPids.length > 0) {
356
- this.log(`Found ${orphanedPids.length} potentially orphaned processes: ${orphanedPids.join(', ')}`);
357
- this.log('These may be user-initiated sessions. Run "pkill -f opencode\\ attach" to clean them up manually if needed.');
358
- }
359
- return orphanedPids;
360
- }
361
- async findOrphanedAttachPids(serverUrl, trackedSessionIds) {
362
- try {
363
- const proc = spawn(['ps', 'aux'], { stdout: 'pipe', stderr: 'pipe' });
364
- await proc.exited;
365
- const output = await new Response(proc.stdout).text();
366
- const lines = output.split('\n');
367
- const matches = [];
368
- for (const line of lines) {
369
- if (!line.includes('opencode attach'))
370
- continue;
371
- if (!line.includes(serverUrl))
372
- continue;
373
- const parts = line.trim().split(/\s+/);
374
- const pid = Number(parts[1]);
375
- if (!Number.isFinite(pid) || pid <= 0)
376
- continue;
377
- if (pid === process.pid)
378
- continue;
379
- const sessionId = this.extractSessionId(line);
380
- if (sessionId && trackedSessionIds.has(sessionId))
381
- continue;
382
- matches.push(pid);
383
- }
384
- return matches;
385
- }
386
- catch {
387
- return [];
388
- }
389
- }
390
- extractSessionId(line) {
391
- const match = line.match(/--session\s+(['"]?)([^'";\s]+)\1/);
392
- return match?.[2];
493
+ const panes = await findOwnedAgentPanes(serverKey);
494
+ const orphanedPanes = panes.filter((pane) => {
495
+ if (!pane.sessionId)
496
+ return false;
497
+ return !trackedSessionIds.has(pane.sessionId);
498
+ });
499
+ if (orphanedPanes.length > 0) {
500
+ const sessionIds = orphanedPanes
501
+ .map((pane) => pane.sessionId)
502
+ .filter((sessionId) => !!sessionId);
503
+ this.log(`Found ${orphanedPanes.length} potentially orphaned sessions: ${sessionIds.join(', ')}`);
504
+ this.log('These may be user-initiated sessions. Close their tmux panes manually if needed.');
505
+ }
506
+ return orphanedPanes
507
+ .map((pane) => pane.panePid)
508
+ .filter((pid) => typeof pid === 'number');
393
509
  }
394
510
  /**
395
511
  * Kill a process and all its children synchronously.
@@ -459,25 +575,26 @@ export class TmuxSessionManager {
459
575
  *
460
576
  * @param serverUrl - Optional server URL to filter processes
461
577
  * @param logger - Optional logging function
578
+ * @param instanceId - Ownership instance id to target cleanup
462
579
  * @returns Object with cleanup results
463
580
  */
464
- static async cleanupOrphans(serverUrl, logger) {
581
+ static async cleanupOrphans(serverUrl, logger, instanceId) {
465
582
  const log = logger ?? (() => { });
466
583
  log('Starting orphan cleanup...');
467
- // First, try to close the agents window (recovers from persisted file)
468
- let windowClosed = false;
584
+ let serverKey;
469
585
  try {
470
- await closeAgentsWindow();
471
- windowClosed = true;
472
- log('Closed agents window');
586
+ serverKey = serverUrl ? canonicalizeServerUrl(serverUrl) : undefined;
473
587
  }
474
588
  catch {
475
- log('No agents window to close');
589
+ serverKey = undefined;
590
+ }
591
+ if (!serverKey || !instanceId) {
592
+ log('No server URL or instance ID provided; skipping ownership cleanup.');
593
+ return { killed: 0, windowClosed: false };
476
594
  }
477
- // Then kill any orphaned processes
478
- const killed = await killOrphanedAttachProcesses(serverUrl, log);
479
- log(`Orphan cleanup complete: ${killed} processes killed, window closed: ${windowClosed}`);
480
- return { killed, windowClosed };
595
+ const result = await cleanupOwnedResources(serverKey, instanceId);
596
+ log(`Orphan cleanup complete: ${result.panesClosed} panes closed, window closed: ${result.windowClosed}`);
597
+ return { killed: result.panesClosed, windowClosed: result.windowClosed };
481
598
  }
482
599
  }
483
600
  function findPane(state, paneId) {
@@ -485,4 +602,10 @@ function findPane(state, paneId) {
485
602
  return state.mainPane;
486
603
  return state.agentPanes.find((pane) => pane.paneId === paneId);
487
604
  }
605
+ function unwrapResponse(result) {
606
+ if (typeof result === 'object' && result !== null && 'data' in result) {
607
+ return result.data;
608
+ }
609
+ return result;
610
+ }
488
611
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/tmux/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/tmux/manager.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,16 @@ export interface TmuxPaneInfo {
10
10
  title: string;
11
11
  isActive: boolean;
12
12
  }
13
+ /**
14
+ * Ownership tags stored in tmux user options
15
+ */
16
+ export interface TmuxOwnershipTags {
17
+ isOpencode: boolean;
18
+ serverKey: string;
19
+ ownerPid: number;
20
+ instanceId: string;
21
+ sessionId?: string;
22
+ }
13
23
  /**
14
24
  * Current state of the tmux window
15
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tmux/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,UAAU,GACnB;IACA,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAC9B,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACnB,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAGD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,KAAK,CAAC;AAGlC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAiB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tmux/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,UAAU,GACnB;IACA,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAC9B,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACnB,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAGD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,eAAe,KAAK,CAAC;AAGlC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tmux/types.ts"],"names":[],"mappings":"AAmGA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,oBAAoB;AACpB,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tmux/types.ts"],"names":[],"mappings":"AA8GA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,oBAAoB;AACpB,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -29,4 +29,21 @@ export declare function runTmuxCommandSync(args: string[]): {
29
29
  * Get the path to the tmux binary synchronously
30
30
  */
31
31
  export declare function getTmuxPathSync(): string | null;
32
+ /**
33
+ * Get the tmux session ID for a given pane.
34
+ * This is used to ensure windows are created in the correct tmux session
35
+ * when multiple opencode instances run in different sessions.
36
+ */
37
+ export declare function getTmuxSessionId(paneId: string): Promise<string | undefined>;
38
+ /**
39
+ * Get the tmux session ID synchronously (for shutdown scenarios)
40
+ */
41
+ export declare function getTmuxSessionIdSync(paneId: string): string | undefined;
42
+ /**
43
+ * Canonicalize server URL for consistent ownership tagging.
44
+ * Normalizes loopback addresses (127.0.0.1, ::1) to localhost.
45
+ *
46
+ * @throws Error if URL is invalid
47
+ */
48
+ export declare function canonicalizeServerUrl(url: string): string;
32
49
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tmux/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS1D;AAED;;GAEG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgBvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAS/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tmux/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS1D;AAED;;GAEG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgBvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAS/C;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAIlF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIvE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWzD"}
@@ -77,4 +77,43 @@ export function getTmuxPathSync() {
77
77
  return null;
78
78
  }
79
79
  }
80
+ /**
81
+ * Get the tmux session ID for a given pane.
82
+ * This is used to ensure windows are created in the correct tmux session
83
+ * when multiple opencode instances run in different sessions.
84
+ */
85
+ export async function getTmuxSessionId(paneId) {
86
+ const result = await runTmuxCommand(['display', '-p', '-t', paneId, '#{session_id}']);
87
+ if (!result.success || !result.output)
88
+ return undefined;
89
+ return result.output.trim() || undefined;
90
+ }
91
+ /**
92
+ * Get the tmux session ID synchronously (for shutdown scenarios)
93
+ */
94
+ export function getTmuxSessionIdSync(paneId) {
95
+ const result = runTmuxCommandSync(['display', '-p', '-t', paneId, '#{session_id}']);
96
+ if (!result.success || !result.output)
97
+ return undefined;
98
+ return result.output.trim() || undefined;
99
+ }
100
+ /**
101
+ * Canonicalize server URL for consistent ownership tagging.
102
+ * Normalizes loopback addresses (127.0.0.1, ::1) to localhost.
103
+ *
104
+ * @throws Error if URL is invalid
105
+ */
106
+ export function canonicalizeServerUrl(url) {
107
+ try {
108
+ const parsed = new URL(url);
109
+ let host = parsed.hostname.toLowerCase();
110
+ if (host === '127.0.0.1' || host === '::1') {
111
+ host = 'localhost';
112
+ }
113
+ return `${parsed.protocol}//${host}:${parsed.port}`;
114
+ }
115
+ catch (error) {
116
+ throw new Error(`Invalid server URL: ${url}`, { cause: error });
117
+ }
118
+ }
80
119
  //# sourceMappingURL=utils.js.map