dmux 5.10.0 → 5.11.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 (132) hide show
  1. package/README.ja.md +1 -1
  2. package/README.md +5 -2
  3. package/dist/actions/implementations/renameAction.d.ts.map +1 -1
  4. package/dist/actions/implementations/renameAction.js +11 -2
  5. package/dist/actions/implementations/renameAction.js.map +1 -1
  6. package/dist/components/panes/MergePane.d.ts.map +1 -1
  7. package/dist/components/panes/MergePane.js +3 -22
  8. package/dist/components/panes/MergePane.js.map +1 -1
  9. package/dist/components/panes/PaneCard.d.ts.map +1 -1
  10. package/dist/components/panes/PaneCard.js +13 -5
  11. package/dist/components/panes/PaneCard.js.map +1 -1
  12. package/dist/components/popups/inferenceSetupPopup.d.ts +21 -0
  13. package/dist/components/popups/inferenceSetupPopup.d.ts.map +1 -0
  14. package/dist/components/popups/inferenceSetupPopup.js +939 -0
  15. package/dist/components/popups/inferenceSetupPopup.js.map +1 -0
  16. package/dist/components/popups/settingsPopup.js +4 -0
  17. package/dist/components/popups/settingsPopup.js.map +1 -1
  18. package/dist/dashboard.js +2 -2
  19. package/dist/hooks/useAgentStatus.d.ts.map +1 -1
  20. package/dist/hooks/useAgentStatus.js +9 -2
  21. package/dist/hooks/useAgentStatus.js.map +1 -1
  22. package/dist/hooks/useInputHandling.d.ts.map +1 -1
  23. package/dist/hooks/useInputHandling.js +4 -0
  24. package/dist/hooks/useInputHandling.js.map +1 -1
  25. package/dist/hooks/usePaneLoading.d.ts +8 -5
  26. package/dist/hooks/usePaneLoading.d.ts.map +1 -1
  27. package/dist/hooks/usePaneLoading.js +115 -68
  28. package/dist/hooks/usePaneLoading.js.map +1 -1
  29. package/dist/hooks/usePaneSync.d.ts +4 -7
  30. package/dist/hooks/usePaneSync.d.ts.map +1 -1
  31. package/dist/hooks/usePaneSync.js +12 -30
  32. package/dist/hooks/usePaneSync.js.map +1 -1
  33. package/dist/hooks/usePanes.d.ts.map +1 -1
  34. package/dist/hooks/usePanes.js +71 -30
  35. package/dist/hooks/usePanes.js.map +1 -1
  36. package/dist/i18n/locales/en.d.ts.map +1 -1
  37. package/dist/i18n/locales/en.js +2 -0
  38. package/dist/i18n/locales/en.js.map +1 -1
  39. package/dist/i18n/locales/ja.d.ts.map +1 -1
  40. package/dist/i18n/locales/ja.js +2 -0
  41. package/dist/i18n/locales/ja.js.map +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/services/CodexAppServerClient.d.ts +58 -0
  45. package/dist/services/CodexAppServerClient.d.ts.map +1 -0
  46. package/dist/services/CodexAppServerClient.js +263 -0
  47. package/dist/services/CodexAppServerClient.js.map +1 -0
  48. package/dist/services/GrokBuildClient.d.ts +17 -0
  49. package/dist/services/GrokBuildClient.d.ts.map +1 -0
  50. package/dist/services/GrokBuildClient.js +150 -0
  51. package/dist/services/GrokBuildClient.js.map +1 -0
  52. package/dist/services/InferenceService.d.ts +22 -0
  53. package/dist/services/InferenceService.d.ts.map +1 -0
  54. package/dist/services/InferenceService.js +342 -0
  55. package/dist/services/InferenceService.js.map +1 -0
  56. package/dist/services/PaneAnalyzer.d.ts +1 -16
  57. package/dist/services/PaneAnalyzer.d.ts.map +1 -1
  58. package/dist/services/PaneAnalyzer.js +17 -101
  59. package/dist/services/PaneAnalyzer.js.map +1 -1
  60. package/dist/services/PaneWorkerManager.d.ts +1 -1
  61. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  62. package/dist/services/PaneWorkerManager.js +9 -5
  63. package/dist/services/PaneWorkerManager.js.map +1 -1
  64. package/dist/services/PopupManager.d.ts +6 -1
  65. package/dist/services/PopupManager.d.ts.map +1 -1
  66. package/dist/services/PopupManager.js +30 -0
  67. package/dist/services/PopupManager.js.map +1 -1
  68. package/dist/services/StatusDetector.d.ts.map +1 -1
  69. package/dist/services/StatusDetector.js +15 -8
  70. package/dist/services/StatusDetector.js.map +1 -1
  71. package/dist/services/TerminalPaneNamingService.d.ts +57 -0
  72. package/dist/services/TerminalPaneNamingService.d.ts.map +1 -0
  73. package/dist/services/TerminalPaneNamingService.js +392 -0
  74. package/dist/services/TerminalPaneNamingService.js.map +1 -0
  75. package/dist/services/TmuxService.d.ts +5 -0
  76. package/dist/services/TmuxService.d.ts.map +1 -1
  77. package/dist/services/TmuxService.js +10 -3
  78. package/dist/services/TmuxService.js.map +1 -1
  79. package/dist/types.d.ts +18 -0
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/utils/agentLaunch.d.ts +3 -2
  82. package/dist/utils/agentLaunch.d.ts.map +1 -1
  83. package/dist/utils/agentLaunch.js +9 -4
  84. package/dist/utils/agentLaunch.js.map +1 -1
  85. package/dist/utils/aiMerge.d.ts +4 -2
  86. package/dist/utils/aiMerge.d.ts.map +1 -1
  87. package/dist/utils/aiMerge.js +14 -59
  88. package/dist/utils/aiMerge.js.map +1 -1
  89. package/dist/utils/envKeySetup.d.ts +10 -0
  90. package/dist/utils/envKeySetup.d.ts.map +1 -0
  91. package/dist/utils/envKeySetup.js +58 -0
  92. package/dist/utils/envKeySetup.js.map +1 -0
  93. package/dist/utils/generated-agents-doc.d.ts +1 -1
  94. package/dist/utils/generated-agents-doc.js +1 -1
  95. package/dist/utils/inferenceProviders.d.ts +34 -0
  96. package/dist/utils/inferenceProviders.d.ts.map +1 -0
  97. package/dist/utils/inferenceProviders.js +265 -0
  98. package/dist/utils/inferenceProviders.js.map +1 -0
  99. package/dist/utils/inferenceSetup.d.ts +19 -0
  100. package/dist/utils/inferenceSetup.d.ts.map +1 -0
  101. package/dist/utils/inferenceSetup.js +37 -0
  102. package/dist/utils/inferenceSetup.js.map +1 -0
  103. package/dist/utils/inferenceWizard.d.ts +61 -0
  104. package/dist/utils/inferenceWizard.d.ts.map +1 -0
  105. package/dist/utils/inferenceWizard.js +175 -0
  106. package/dist/utils/inferenceWizard.js.map +1 -0
  107. package/dist/utils/onboarding.d.ts +4 -2
  108. package/dist/utils/onboarding.d.ts.map +1 -1
  109. package/dist/utils/onboarding.js +26 -53
  110. package/dist/utils/onboarding.js.map +1 -1
  111. package/dist/utils/openRouterApiKeySetup.d.ts +7 -0
  112. package/dist/utils/openRouterApiKeySetup.d.ts.map +1 -1
  113. package/dist/utils/openRouterApiKeySetup.js +21 -0
  114. package/dist/utils/openRouterApiKeySetup.js.map +1 -1
  115. package/dist/utils/paneAgentTracking.d.ts +31 -0
  116. package/dist/utils/paneAgentTracking.d.ts.map +1 -0
  117. package/dist/utils/paneAgentTracking.js +261 -0
  118. package/dist/utils/paneAgentTracking.js.map +1 -0
  119. package/dist/utils/prSummary.d.ts +1 -1
  120. package/dist/utils/prSummary.js +3 -3
  121. package/dist/utils/prSummary.js.map +1 -1
  122. package/dist/utils/settingsManager.d.ts.map +1 -1
  123. package/dist/utils/settingsManager.js +43 -0
  124. package/dist/utils/settingsManager.js.map +1 -1
  125. package/dist/utils/shellPaneDetection.d.ts.map +1 -1
  126. package/dist/utils/shellPaneDetection.js +2 -0
  127. package/dist/utils/shellPaneDetection.js.map +1 -1
  128. package/dist/utils/slug.d.ts.map +1 -1
  129. package/dist/utils/slug.js +9 -41
  130. package/dist/utils/slug.js.map +1 -1
  131. package/native/macos/prebuilt/dmux-helper.app/Contents/MacOS/dmux-helper +0 -0
  132. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { WorkerMessageBus } from './WorkerMessageBus.js';
3
- import { PaneWorkerManager } from './PaneWorkerManager.js';
3
+ import { PaneWorkerManager, shouldMonitorPaneForStatusTracking, } from './PaneWorkerManager.js';
4
4
  import { PaneAnalyzer } from './PaneAnalyzer.js';
5
5
  import { StateManager } from '../shared/StateManager.js';
6
6
  import { LogService } from './LogService.js';
@@ -74,6 +74,13 @@ export class StatusDetector extends EventEmitter {
74
74
  });
75
75
  // Update workers based on current panes
76
76
  await this.workerManager.updateWorkers(panes);
77
+ const monitoredPaneIds = new Set(panes.filter(shouldMonitorPaneForStatusTracking).map((pane) => pane.id));
78
+ for (const paneId of this.paneStatuses.keys()) {
79
+ if (!monitoredPaneIds.has(paneId)) {
80
+ this.paneStatuses.delete(paneId);
81
+ this.cancelLLMRequest(paneId, LLM_ABORT_REASON_SUPERSEDED);
82
+ }
83
+ }
77
84
  }
78
85
  /**
79
86
  * Handle status change from worker
@@ -255,16 +262,16 @@ export class StatusDetector extends EventEmitter {
255
262
  if (error.message) {
256
263
  // Clean up common API error patterns
257
264
  if (error.message.includes('API error')) {
258
- // Extract model name and status from API errors
265
+ // Extract model name and status from provider API errors
259
266
  const match = error.message.match(/API error \(([^)]+)\): (\d+)/);
260
267
  if (match) {
261
268
  const [, model, status] = match;
262
269
  // Provide helpful messages for common status codes
263
270
  if (status === '401') {
264
- errorMessage = `API auth failed - check OPENROUTER_API_KEY`;
271
+ errorMessage = `Inference authentication failed - check the provider key`;
265
272
  }
266
273
  else if (status === '402') {
267
- errorMessage = `Insufficient credits - add credits to OpenRouter account`;
274
+ errorMessage = `Inference provider credits are exhausted`;
268
275
  }
269
276
  else if (status === '429') {
270
277
  errorMessage = `Rate limited - wait before retrying`;
@@ -280,11 +287,11 @@ export class StatusDetector extends EventEmitter {
280
287
  errorMessage = error.message;
281
288
  }
282
289
  }
283
- else if (error.message.includes('API key')) {
284
- errorMessage = 'Set OPENROUTER_API_KEY env var';
290
+ else if (error.message.includes('API key') || error.message.includes('Missing ')) {
291
+ errorMessage = 'Configure an inference provider key in settings';
285
292
  }
286
- else if (error.message.includes('All models')) {
287
- errorMessage = 'All models failed - check API key & credits';
293
+ else if (error.message.includes('All inference targets')) {
294
+ errorMessage = 'Primary and backup inference targets failed';
288
295
  }
289
296
  else if (error.message.includes('fetch')) {
290
297
  errorMessage = 'Network error - check connection';
@@ -1 +1 @@
1
- {"version":3,"file":"StatusDetector.js","sourceRoot":"","sources":["../../src/services/StatusDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusDetector.js","sourceRoot":"","sources":["../../src/services/StatusDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { DmuxPane } from '../types.js';
2
+ export declare const TERMINAL_NAME_CAPTURE_INTERVAL_MS = 2500;
3
+ export declare const TERMINAL_NAME_NAMED_CHECK_INTERVAL_MS = 10000;
4
+ export declare const TERMINAL_NAME_SETTLE_MS = 15000;
5
+ export declare const TERMINAL_NAME_FAST_SETTLE_MS = 5000;
6
+ export declare const TERMINAL_RENAME_COOLDOWN_MS: number;
7
+ export interface PaneActivity {
8
+ signature: string;
9
+ alternateScreen: boolean;
10
+ }
11
+ interface TerminalPaneNamingOptions {
12
+ getPanes: () => DmuxPane[];
13
+ savePanes: (panes: DmuxPane[]) => Promise<void>;
14
+ capturePane?: (paneId: string) => Promise<string>;
15
+ probePaneActivity?: () => Promise<Map<string, PaneActivity> | null>;
16
+ generateName?: (content: string, pane: DmuxPane) => Promise<string | null>;
17
+ canGenerateName?: () => boolean;
18
+ setPaneTitle?: (paneId: string, title: string) => Promise<void>;
19
+ intervalMs?: number;
20
+ namedCheckIntervalMs?: number;
21
+ settleMs?: number;
22
+ fastSettleMs?: number;
23
+ renameCooldownMs?: number;
24
+ }
25
+ export declare function normalizeTerminalCapture(content: string): string;
26
+ export declare function hasMeaningfulTerminalWork(content: string): boolean;
27
+ export declare function isHumanNamedTerminalPane(pane: Pick<DmuxPane, 'displayName' | 'displayNameSource'>): boolean;
28
+ export declare function sanitizeGeneratedTerminalName(value: string): string | null;
29
+ /** Reject status-only labels that do not communicate what the pane is for. */
30
+ export declare function isLowInformationTerminalName(value: string): boolean;
31
+ export declare function generateTerminalPaneName(content: string, pane: DmuxPane): Promise<string | null>;
32
+ export declare class TerminalPaneNamingService {
33
+ private readonly getPanes;
34
+ private readonly savePanes;
35
+ private readonly capturePane;
36
+ private readonly probePaneActivity;
37
+ private readonly generateName;
38
+ private readonly canGenerateName;
39
+ private readonly setPaneTitle;
40
+ private readonly intervalMs;
41
+ private readonly namedCheckIntervalMs;
42
+ private readonly settleMs;
43
+ private readonly fastSettleMs;
44
+ private readonly renameCooldownMs;
45
+ private readonly captureStates;
46
+ private readonly inFlight;
47
+ private timer?;
48
+ private checking;
49
+ constructor(options: TerminalPaneNamingOptions);
50
+ start(): void;
51
+ stop(): void;
52
+ checkNow(now?: number): Promise<void>;
53
+ private isDueForInspection;
54
+ private inspectPane;
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=TerminalPaneNamingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalPaneNamingService.d.ts","sourceRoot":"","sources":["../../src/services/TerminalPaneNamingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,392 @@
1
+ import { createHash } from 'crypto';
2
+ import { callInference } from '../utils/aiMerge.js';
3
+ import { hasConfiguredInferenceSync } from './InferenceService.js';
4
+ import { capturePaneContentAsync } from '../utils/paneCapture.js';
5
+ import { execAsync } from '../utils/execAsync.js';
6
+ import { getPaneTmuxTitle, sanitizePaneDisplayName } from '../utils/paneTitle.js';
7
+ import { LogService } from './LogService.js';
8
+ import { TmuxService } from './TmuxService.js';
9
+ export const TERMINAL_NAME_CAPTURE_INTERVAL_MS = 2_500;
10
+ export const TERMINAL_NAME_NAMED_CHECK_INTERVAL_MS = 10_000;
11
+ export const TERMINAL_NAME_SETTLE_MS = 15_000;
12
+ export const TERMINAL_NAME_FAST_SETTLE_MS = 5_000;
13
+ export const TERMINAL_RENAME_COOLDOWN_MS = 5 * 60_000;
14
+ const TERMINAL_NAME_FAILURE_RETRY_MS = 60_000;
15
+ const TERMINAL_NAME_FAST_FAILURE_RETRY_MS = 10_000;
16
+ const TERMINAL_NAME_MAX_LENGTH = 48;
17
+ const TERMINAL_CAPTURE_LINES = 60;
18
+ const TERMINAL_CAPTURE_MAX_CHARS = 6_000;
19
+ const TERMINAL_HISTORY_MAX_SNAPSHOTS = 4;
20
+ const TERMINAL_HISTORY_MAX_CHARS = 12_000;
21
+ /**
22
+ * One batched tmux call covering every pane on the server. Output only
23
+ * reaches a pane's scrollback or moves its cursor when something actually
24
+ * ran, so comparing these counters between ticks detects change without
25
+ * capturing any content.
26
+ */
27
+ async function probeTmuxPaneActivity() {
28
+ const output = await execAsync(`tmux list-panes -a -F '#{pane_id}|#{alternate_on}|#{history_bytes},#{cursor_x},#{cursor_y},#{pane_width},#{pane_height},#{pane_current_command}'`, { silent: true, timeout: 5000 });
29
+ if (!output)
30
+ return null;
31
+ const activity = new Map();
32
+ for (const line of output.split('\n')) {
33
+ const first = line.indexOf('|');
34
+ const second = line.indexOf('|', first + 1);
35
+ if (first <= 0 || second < 0)
36
+ continue;
37
+ activity.set(line.slice(0, first), {
38
+ alternateScreen: line.slice(first + 1, second) === '1',
39
+ signature: line.slice(second + 1),
40
+ });
41
+ }
42
+ return activity.size > 0 ? activity : null;
43
+ }
44
+ function fingerprintContent(content) {
45
+ return createHash('sha256').update(content).digest('hex').slice(0, 20);
46
+ }
47
+ export function normalizeTerminalCapture(content) {
48
+ return content
49
+ .replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, '')
50
+ .replace(/\r/g, '')
51
+ .split('\n')
52
+ .map((line) => line.replace(/\s+$/g, ''))
53
+ .filter((line, index, lines) => {
54
+ if (line.trim())
55
+ return true;
56
+ return index > 0 && index < lines.length - 1;
57
+ })
58
+ .slice(-TERMINAL_CAPTURE_LINES)
59
+ .join('\n')
60
+ .trim()
61
+ .slice(-TERMINAL_CAPTURE_MAX_CHARS);
62
+ }
63
+ export function hasMeaningfulTerminalWork(content) {
64
+ const lines = content
65
+ .split('\n')
66
+ .map((line) => line.trim())
67
+ .filter(Boolean)
68
+ .filter((line) => !/^(?:[^\s]+@[^\s]+[: ])?[^\n]*[$#>%❯]\s*$/.test(line));
69
+ return lines.length >= 2 && lines.join(' ').length >= 24;
70
+ }
71
+ export function isHumanNamedTerminalPane(pane) {
72
+ return Boolean(pane.displayName
73
+ && pane.displayNameSource !== 'auto');
74
+ }
75
+ export function sanitizeGeneratedTerminalName(value) {
76
+ const firstLine = value
77
+ .trim()
78
+ .replace(/^```(?:text)?\s*/i, '')
79
+ .replace(/```$/i, '')
80
+ .split('\n')[0]
81
+ .replace(/^(?:title|name)\s*:\s*/i, '')
82
+ .replace(/^[`"']+|[`"']+$/g, '');
83
+ const sanitized = sanitizePaneDisplayName(firstLine)
84
+ .replace(/[.!:;,-]+$/g, '')
85
+ .trim();
86
+ if (!sanitized
87
+ || sanitized.length > TERMINAL_NAME_MAX_LENGTH
88
+ || isLowInformationTerminalName(sanitized)) {
89
+ return null;
90
+ }
91
+ return sanitized;
92
+ }
93
+ const GENERIC_TERMINAL_TITLE_WORDS = new Set([
94
+ 'a', 'active', 'activity', 'an', 'at', 'command', 'dmux', 'empty', 'for',
95
+ 'idle', 'in', 'inactive', 'inside', 'on', 'pane', 'project', 'prompt',
96
+ 'ready', 'session', 'shell', 'terminal', 'the', 'waiting', 'work', 'working',
97
+ ]);
98
+ /** Reject status-only labels that do not communicate what the pane is for. */
99
+ export function isLowInformationTerminalName(value) {
100
+ const words = value
101
+ .toLowerCase()
102
+ .replace(/[^a-z0-9]+/g, ' ')
103
+ .trim()
104
+ .split(/\s+/)
105
+ .filter(Boolean);
106
+ return words.length === 0 || words.every((word) => GENERIC_TERMINAL_TITLE_WORDS.has(word));
107
+ }
108
+ function appendTerminalHistory(history, content, meaningful) {
109
+ if (!meaningful || history[history.length - 1] === content)
110
+ return history;
111
+ const next = [...history, content].slice(-TERMINAL_HISTORY_MAX_SNAPSHOTS);
112
+ while (next.length > 1 && next.join('\n').length > TERMINAL_HISTORY_MAX_CHARS) {
113
+ next.shift();
114
+ }
115
+ return next;
116
+ }
117
+ function formatTerminalHistory(history, currentContent) {
118
+ const snapshots = history.length > 0 ? history : [currentContent];
119
+ return snapshots
120
+ .map((snapshot, index) => `[Activity snapshot ${index + 1} of ${snapshots.length}]\n${snapshot}`)
121
+ .join('\n\n');
122
+ }
123
+ export async function generateTerminalPaneName(content, pane) {
124
+ const response = await callInference([
125
+ 'Create a concise 2-5 word title for this terminal pane based on its recent work.',
126
+ 'Infer the pane’s enduring purpose from the full activity timeline, not merely its latest idle state.',
127
+ 'Use plain title case. Describe the task, command, or result—not the shell, pane, project, or status itself.',
128
+ 'Never return generic state labels such as Idle, Waiting, Terminal, Shell, or Working in Project.',
129
+ pane.displayName
130
+ ? `Existing automatic title: ${pane.displayName}. Keep it unless the history supports a more specific title.`
131
+ : 'There is no existing automatic title.',
132
+ 'Reply with only the title, with no quotes, punctuation, markdown, or explanation.',
133
+ `Working directory: ${pane.shellCwd || pane.projectRoot || 'unknown'}`,
134
+ 'Terminal activity timeline (oldest to newest):',
135
+ content,
136
+ ].join('\n\n'), 24, 10_000);
137
+ return response ? sanitizeGeneratedTerminalName(response) : null;
138
+ }
139
+ function isEligibleTerminalPane(pane) {
140
+ return pane.type === 'shell'
141
+ && !pane.browserPath
142
+ && !isHumanNamedTerminalPane(pane);
143
+ }
144
+ export class TerminalPaneNamingService {
145
+ getPanes;
146
+ savePanes;
147
+ capturePane;
148
+ probePaneActivity;
149
+ generateName;
150
+ canGenerateName;
151
+ setPaneTitle;
152
+ intervalMs;
153
+ namedCheckIntervalMs;
154
+ settleMs;
155
+ fastSettleMs;
156
+ renameCooldownMs;
157
+ captureStates = new Map();
158
+ inFlight = new Set();
159
+ timer;
160
+ checking = false;
161
+ constructor(options) {
162
+ this.getPanes = options.getPanes;
163
+ this.savePanes = options.savePanes;
164
+ this.capturePane = options.capturePane
165
+ || ((paneId) => capturePaneContentAsync(paneId, TERMINAL_CAPTURE_LINES));
166
+ this.probePaneActivity = options.probePaneActivity || probeTmuxPaneActivity;
167
+ this.generateName = options.generateName || generateTerminalPaneName;
168
+ this.canGenerateName = options.canGenerateName
169
+ || (() => hasConfiguredInferenceSync());
170
+ this.setPaneTitle = options.setPaneTitle
171
+ || ((paneId, title) => TmuxService.getInstance().setPaneTitle(paneId, title));
172
+ this.intervalMs = options.intervalMs ?? TERMINAL_NAME_CAPTURE_INTERVAL_MS;
173
+ this.namedCheckIntervalMs = options.namedCheckIntervalMs ?? TERMINAL_NAME_NAMED_CHECK_INTERVAL_MS;
174
+ this.settleMs = options.settleMs ?? TERMINAL_NAME_SETTLE_MS;
175
+ this.fastSettleMs = options.fastSettleMs ?? TERMINAL_NAME_FAST_SETTLE_MS;
176
+ this.renameCooldownMs = options.renameCooldownMs ?? TERMINAL_RENAME_COOLDOWN_MS;
177
+ }
178
+ start() {
179
+ if (this.timer)
180
+ return;
181
+ void this.checkNow();
182
+ this.timer = setInterval(() => void this.checkNow(), this.intervalMs);
183
+ this.timer.unref?.();
184
+ }
185
+ stop() {
186
+ if (this.timer)
187
+ clearInterval(this.timer);
188
+ this.timer = undefined;
189
+ this.captureStates.clear();
190
+ }
191
+ async checkNow(now = Date.now()) {
192
+ if (this.checking || !this.canGenerateName())
193
+ return;
194
+ this.checking = true;
195
+ try {
196
+ const panes = this.getPanes();
197
+ const eligible = panes.filter(isEligibleTerminalPane);
198
+ const eligibleIds = new Set(eligible.map((pane) => pane.id));
199
+ for (const paneId of this.captureStates.keys()) {
200
+ if (!eligibleIds.has(paneId))
201
+ this.captureStates.delete(paneId);
202
+ }
203
+ // A tick where every pane is throttled or busy costs no tmux calls at
204
+ // all; otherwise one batched probe decides which panes need capturing.
205
+ const due = eligible.filter((pane) => this.isDueForInspection(pane, now));
206
+ if (due.length === 0)
207
+ return;
208
+ const activity = await this.probePaneActivity();
209
+ await Promise.all(due.map((pane) => this.inspectPane(pane, now, activity?.get(pane.paneId) ?? null, activity !== null)));
210
+ }
211
+ finally {
212
+ this.checking = false;
213
+ }
214
+ }
215
+ // Once a pane has earned a title, watching it closely buys nothing: fall
216
+ // back to a relaxed cadence. Untitled panes are looked at on every tick so
217
+ // a fresh terminal gets its first title quickly.
218
+ isDueForInspection(pane, now) {
219
+ if (this.inFlight.has(pane.id))
220
+ return false;
221
+ const state = this.captureStates.get(pane.id);
222
+ return !(Boolean(pane.displayName)
223
+ && state
224
+ && now - state.lastCapturedAt < this.namedCheckIntervalMs);
225
+ }
226
+ async inspectPane(pane, now, activity, probed) {
227
+ if (!this.isDueForInspection(pane, now))
228
+ return;
229
+ // A pane absent from a successful probe no longer exists in tmux.
230
+ if (probed && !activity)
231
+ return;
232
+ const hasAutoName = Boolean(pane.displayName);
233
+ const previousState = this.captureStates.get(pane.id);
234
+ // When the probe shows no counter movement since the last look, the pane
235
+ // produced no new output: reuse the previous capture instead of spawning
236
+ // another capture-pane process. Full-screen apps (alternate_on) can
237
+ // repaint without moving any counter, so they are always recaptured.
238
+ const unchanged = Boolean(activity
239
+ && !activity.alternateScreen
240
+ && previousState?.activitySignature
241
+ && previousState.activitySignature === activity.signature);
242
+ let content;
243
+ if (unchanged) {
244
+ content = previousState.lastContent;
245
+ }
246
+ else {
247
+ try {
248
+ content = normalizeTerminalCapture(await this.capturePane(pane.paneId));
249
+ }
250
+ catch {
251
+ return;
252
+ }
253
+ }
254
+ if (!content) {
255
+ // Keep an existing state through a cleared or transiently empty screen
256
+ // so an empty pane is not recaptured every tick.
257
+ if (previousState) {
258
+ previousState.lastCapturedAt = now;
259
+ previousState.activitySignature = activity?.signature;
260
+ }
261
+ else {
262
+ this.captureStates.set(pane.id, {
263
+ fingerprint: fingerprintContent(''),
264
+ stableSince: now,
265
+ lastCapturedAt: now,
266
+ meaningful: false,
267
+ lastContent: '',
268
+ activitySignature: activity?.signature,
269
+ history: [],
270
+ });
271
+ }
272
+ return;
273
+ }
274
+ const fingerprint = fingerprintContent(content);
275
+ let state = this.captureStates.get(pane.id);
276
+ if (!state || state.fingerprint !== fingerprint) {
277
+ const meaningful = hasMeaningfulTerminalWork(content);
278
+ state = {
279
+ fingerprint,
280
+ stableSince: now,
281
+ lastCapturedAt: now,
282
+ meaningful,
283
+ meaningfulSince: meaningful ? state?.meaningfulSince ?? now : undefined,
284
+ lastContent: content,
285
+ activitySignature: activity?.signature,
286
+ lastAttemptAt: state?.lastAttemptAt,
287
+ history: appendTerminalHistory(state?.history || [], content, meaningful),
288
+ };
289
+ this.captureStates.set(pane.id, state);
290
+ // A titled pane only renames from settled output; an untitled one keeps
291
+ // going, since a streaming agent may never hold a stable screen.
292
+ if (hasAutoName)
293
+ return;
294
+ }
295
+ else {
296
+ state.lastCapturedAt = now;
297
+ state.activitySignature = activity?.signature;
298
+ }
299
+ if (!state.meaningful)
300
+ return;
301
+ const readyAt = hasAutoName
302
+ ? state.stableSince + this.settleMs
303
+ : (state.meaningfulSince ?? now) + this.fastSettleMs;
304
+ if (now < readyAt)
305
+ return;
306
+ if (pane.lastAutoNameFingerprint === fingerprint)
307
+ return;
308
+ // Content that already produced an unusable name will produce one again;
309
+ // wait for the pane to show something new before asking the model again.
310
+ if (state.lastRejectedFingerprint === fingerprint)
311
+ return;
312
+ if (pane.lastAutoNamedAt
313
+ && now - pane.lastAutoNamedAt < this.renameCooldownMs) {
314
+ return;
315
+ }
316
+ const failureRetryMs = hasAutoName
317
+ ? TERMINAL_NAME_FAILURE_RETRY_MS
318
+ : TERMINAL_NAME_FAST_FAILURE_RETRY_MS;
319
+ if (state.lastAttemptAt
320
+ && now - state.lastAttemptAt < failureRetryMs) {
321
+ return;
322
+ }
323
+ state.lastAttemptAt = now;
324
+ this.inFlight.add(pane.id);
325
+ try {
326
+ const generatedName = await this.generateName(formatTerminalHistory(state.history, content), pane);
327
+ if (!generatedName || isLowInformationTerminalName(generatedName)) {
328
+ state.lastRejectedFingerprint = fingerprint;
329
+ return;
330
+ }
331
+ // Do not replace a title using stale output if the user started another
332
+ // command while the model request was in flight. An untitled pane keeps
333
+ // the name anyway: its screen churns constantly while an agent streams,
334
+ // and an early title about the pane's purpose beats having none.
335
+ const latestContent = normalizeTerminalCapture(await this.capturePane(pane.paneId));
336
+ const latestFingerprint = latestContent
337
+ ? fingerprintContent(latestContent)
338
+ : '';
339
+ if (latestFingerprint !== fingerprint) {
340
+ if (latestFingerprint) {
341
+ const latestMeaningful = hasMeaningfulTerminalWork(latestContent);
342
+ this.captureStates.set(pane.id, {
343
+ fingerprint: latestFingerprint,
344
+ stableSince: now,
345
+ lastCapturedAt: now,
346
+ meaningful: latestMeaningful,
347
+ meaningfulSince: latestMeaningful ? state.meaningfulSince ?? now : undefined,
348
+ lastContent: latestContent,
349
+ lastAttemptAt: state.lastAttemptAt,
350
+ history: appendTerminalHistory(state.history, latestContent, latestMeaningful),
351
+ });
352
+ }
353
+ if (hasAutoName)
354
+ return;
355
+ }
356
+ const latestPanes = this.getPanes();
357
+ const latestPane = latestPanes.find((candidate) => candidate.id === pane.id);
358
+ if (!latestPane || !isEligibleTerminalPane(latestPane))
359
+ return;
360
+ let updatedPane;
361
+ const updatedPanes = latestPanes.map((candidate) => {
362
+ if (candidate.id !== pane.id)
363
+ return candidate;
364
+ updatedPane = {
365
+ ...candidate,
366
+ displayName: generatedName,
367
+ displayNameSource: 'auto',
368
+ lastAutoNamedAt: now,
369
+ lastAutoNameFingerprint: fingerprint,
370
+ };
371
+ return updatedPane;
372
+ });
373
+ await this.savePanes(updatedPanes);
374
+ if (updatedPane) {
375
+ try {
376
+ await this.setPaneTitle(updatedPane.paneId, getPaneTmuxTitle(updatedPane));
377
+ }
378
+ catch {
379
+ // Periodic title enforcement will reconcile transient tmux failures.
380
+ }
381
+ }
382
+ LogService.getInstance().debug(`Automatically named terminal ${pane.id} "${generatedName}"`, 'terminalNaming', pane.id);
383
+ }
384
+ catch (error) {
385
+ LogService.getInstance().debug(`Terminal auto-naming failed for ${pane.id}: ${error instanceof Error ? error.message : String(error)}`, 'terminalNaming', pane.id);
386
+ }
387
+ finally {
388
+ this.inFlight.delete(pane.id);
389
+ }
390
+ }
391
+ }
392
+ //# sourceMappingURL=TerminalPaneNamingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalPaneNamingService.js","sourceRoot":"","sources":["../../src/services/TerminalPaneNamingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AACvD,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAC5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAC9C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAG,MAAM,CAAC;AACtD,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,mCAAmC,GAAG,MAAM,CAAC;AACnD,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AACzC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAoB1C;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB;IAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,kJAAkJ,EAClJ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAChC,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,SAAS;QACvC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;YACjC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG;YACtD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAiBD,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,OAAO;SACX,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACxC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,sBAAsB,CAAC;SAC9B,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,0BAA0B,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5E,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAyD;IAEzD,OAAO,OAAO,CACZ,IAAI,CAAC,WAAW;WACb,IAAI,CAAC,iBAAiB,KAAK,MAAM,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,MAAM,SAAS,GAAG,KAAK;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACd,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;SACtC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC;SACjD,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAC;IAEV,IACE,CAAC,SAAS;WACP,SAAS,CAAC,MAAM,GAAG,wBAAwB;WAC3C,4BAA4B,CAAC,SAAS,CAAC,EAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;IACxE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ;IACrE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;CAC7E,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,KAAK,GAAG,KAAK;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAiB,EAAE,OAAe,EAAE,UAAmB;IACpF,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3E,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;QAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAiB,EAAE,cAAsB;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAClE,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,KAAK,GAAG,CAAC,OAAO,SAAS,CAAC,MAAM,MAAM,QAAQ,EAAE,CAAC;SAChG,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,IAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC;QACE,kFAAkF;QAClF,sGAAsG;QACtG,6GAA6G;QAC7G,kGAAkG;QAClG,IAAI,CAAC,WAAW;YACd,CAAC,CAAC,6BAA6B,IAAI,CAAC,WAAW,8DAA8D;YAC7G,CAAC,CAAC,uCAAuC;QAC3C,mFAAmF;QACnF,sBAAsB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE;QACtE,gDAAgD;QAChD,OAAO;KACR,CAAC,IAAI,CAAC,MAAM,CAAC,EACd,EAAE,EACF,MAAM,CACP,CAAC;IAEF,OAAO,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAc;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO;WACvB,CAAC,IAAI,CAAC,WAAW;WACjB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,yBAAyB;IACnB,QAAQ,CAAmB;IAC3B,SAAS,CAAuC;IAChD,WAAW,CAAsC;IACjD,iBAAiB,CAAkD;IACnE,YAAY,CAA8D;IAC1E,eAAe,CAAgB;IAC/B,YAAY,CAAmD;IAC/D,UAAU,CAAS;IACnB,oBAAoB,CAAS;IAC7B,QAAQ,CAAS;IACjB,YAAY,CAAS;IACrB,gBAAgB,CAAS;IACzB,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,CAAkB;IACvB,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,OAAkC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;eACjC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,qBAAqB,CAAC;QAC5E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;eACzC,CAAC,GAAG,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;eACnC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iCAAiC,CAAC;QAC1E,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,qCAAqC,CAAC;QAClG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,uBAAuB,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,4BAA4B,CAAC;QACzE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,2BAA2B,CAAC;IAClF,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACrC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClE,CAAC;YAED,sEAAsE;YACtE,uEAAuE;YACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1E,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEhD,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAChC,IAAI,EACJ,GAAG,EACH,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAClC,QAAQ,KAAK,IAAI,CAClB,CAAC,CACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,iDAAiD;IACzC,kBAAkB,CAAC,IAAc,EAAE,GAAW;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,CACN,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;eACtB,KAAK;eACL,GAAG,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAC1D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,IAAc,EACd,GAAW,EACX,QAA6B,EAC7B,MAAe;QAEf,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO;QAChD,kEAAkE;QAClE,IAAI,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEhC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtD,yEAAyE;QACzE,yEAAyE;QACzE,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,SAAS,GAAG,OAAO,CACvB,QAAQ;eACL,CAAC,QAAQ,CAAC,eAAe;eACzB,aAAa,EAAE,iBAAiB;eAChC,aAAa,CAAC,iBAAiB,KAAK,QAAQ,CAAC,SAAS,CAC1D,CAAC;QAEF,IAAI,OAAe,CAAC;QACpB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,aAAc,CAAC,WAAW,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,OAAO,GAAG,wBAAwB,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,uEAAuE;YACvE,iDAAiD;YACjD,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;gBACnC,aAAa,CAAC,iBAAiB,GAAG,QAAQ,EAAE,SAAS,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC9B,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;oBACnC,WAAW,EAAE,GAAG;oBAChB,cAAc,EAAE,GAAG;oBACnB,UAAU,EAAE,KAAK;oBACjB,WAAW,EAAE,EAAE;oBACf,iBAAiB,EAAE,QAAQ,EAAE,SAAS;oBACtC,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACtD,KAAK,GAAG;gBACN,WAAW;gBACX,WAAW,EAAE,GAAG;gBAChB,cAAc,EAAE,GAAG;gBACnB,UAAU;gBACV,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS;gBACvE,WAAW,EAAE,OAAO;gBACpB,iBAAiB,EAAE,QAAQ,EAAE,SAAS;gBACtC,aAAa,EAAE,KAAK,EAAE,aAAa;gBACnC,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC;aAC1E,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,wEAAwE;YACxE,iEAAiE;YACjE,IAAI,WAAW;gBAAE,OAAO;QAC1B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;YAC3B,KAAK,CAAC,iBAAiB,GAAG,QAAQ,EAAE,SAAS,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,OAAO;QAE9B,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ;YACnC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QACvD,IAAI,GAAG,GAAG,OAAO;YAAE,OAAO;QAE1B,IAAI,IAAI,CAAC,uBAAuB,KAAK,WAAW;YAAE,OAAO;QACzD,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,KAAK,CAAC,uBAAuB,KAAK,WAAW;YAAE,OAAO;QAC1D,IACE,IAAI,CAAC,eAAe;eACjB,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,EACrD,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,cAAc,GAAG,WAAW;YAChC,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,mCAAmC,CAAC;QACxC,IACE,KAAK,CAAC,aAAa;eAChB,GAAG,GAAG,KAAK,CAAC,aAAa,GAAG,cAAc,EAC7C,CAAC;YACD,OAAO;QACT,CAAC;QAED,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAC3C,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,IAAI,CACL,CAAC;YACF,IAAI,CAAC,aAAa,IAAI,4BAA4B,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,KAAK,CAAC,uBAAuB,GAAG,WAAW,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,MAAM,iBAAiB,GAAG,aAAa;gBACrC,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC;gBACnC,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;gBACtC,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;wBAC9B,WAAW,EAAE,iBAAiB;wBAC9B,WAAW,EAAE,GAAG;wBAChB,cAAc,EAAE,GAAG;wBACnB,UAAU,EAAE,gBAAgB;wBAC5B,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS;wBAC5E,WAAW,EAAE,aAAa;wBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,OAAO,EAAE,qBAAqB,CAC5B,KAAK,CAAC,OAAO,EACb,aAAa,EACb,gBAAgB,CACjB;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,WAAW;oBAAE,OAAO;YAC1B,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;gBAAE,OAAO;YAE/D,IAAI,WAAiC,CAAC;YACtC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBACjD,IAAI,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;oBAAE,OAAO,SAAS,CAAC;gBAC/C,WAAW,GAAG;oBACZ,GAAG,SAAS;oBACZ,WAAW,EAAE,aAAa;oBAC1B,iBAAiB,EAAE,MAAe;oBAClC,eAAe,EAAE,GAAG;oBACpB,uBAAuB,EAAE,WAAW;iBACrC,CAAC;gBACF,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7E,CAAC;gBAAC,MAAM,CAAC;oBACP,qEAAqE;gBACvE,CAAC;YACH,CAAC;YACD,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAC5B,gCAAgC,IAAI,CAAC,EAAE,KAAK,aAAa,GAAG,EAC5D,gBAAgB,EAChB,IAAI,CAAC,EAAE,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAC5B,mCAAmC,IAAI,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACvG,gBAAgB,EAChB,IAAI,CAAC,EAAE,CACR,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF"}
@@ -65,6 +65,7 @@ export declare class TmuxService {
65
65
  */
66
66
  getAllPaneInfo(scope?: PaneListScope): Promise<Array<PanePosition & {
67
67
  title: string;
68
+ currentPath?: string;
68
69
  }>>;
69
70
  /**
70
71
  * Get current pane ID
@@ -163,6 +164,10 @@ export declare class TmuxService {
163
164
  * Get the current foreground command for a pane as reported by tmux.
164
165
  */
165
166
  getPaneCurrentCommand(paneId: string): Promise<string>;
167
+ /**
168
+ * Get the current working directory reported by tmux for a pane.
169
+ */
170
+ getPaneCurrentPath(paneId: string): Promise<string>;
166
171
  /**
167
172
  * Set global tmux option
168
173
  */