dmux 3.0.2 → 3.1.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.
- package/dist/DmuxApp.d.ts.map +1 -1
- package/dist/DmuxApp.js +242 -23
- package/dist/DmuxApp.js.map +1 -1
- package/dist/PaneAnalyzer.d.ts +0 -4
- package/dist/PaneAnalyzer.d.ts.map +1 -1
- package/dist/PaneAnalyzer.js +2 -17
- package/dist/PaneAnalyzer.js.map +1 -1
- package/dist/_plugin-vue_export-helper.css +1 -1
- package/dist/actions/paneActions.d.ts.map +1 -1
- package/dist/actions/paneActions.js +94 -40
- package/dist/actions/paneActions.js.map +1 -1
- package/dist/components/ActionConfirmDialog.js +1 -1
- package/dist/components/ActionConfirmDialog.js.map +1 -1
- package/dist/components/CloseOptionsDialog.d.ts.map +1 -1
- package/dist/components/CloseOptionsDialog.js +9 -7
- package/dist/components/CloseOptionsDialog.js.map +1 -1
- package/dist/components/FooterHelp.js +1 -1
- package/dist/components/FooterHelp.js.map +1 -1
- package/dist/components/HooksDialog.d.ts +12 -0
- package/dist/components/HooksDialog.d.ts.map +1 -0
- package/dist/components/HooksDialog.js +52 -0
- package/dist/components/HooksDialog.js.map +1 -0
- package/dist/components/MergeConfirmationDialog.d.ts.map +1 -1
- package/dist/components/MergeConfirmationDialog.js +2 -1
- package/dist/components/MergeConfirmationDialog.js.map +1 -1
- package/dist/components/NewPaneDialog.d.ts.map +1 -1
- package/dist/components/NewPaneDialog.js +1 -3
- package/dist/components/NewPaneDialog.js.map +1 -1
- package/dist/components/SettingsDialog.d.ts +16 -0
- package/dist/components/SettingsDialog.d.ts.map +1 -0
- package/dist/components/SettingsDialog.js +95 -0
- package/dist/components/SettingsDialog.js.map +1 -0
- package/dist/dashboard.js +2 -2
- package/dist/hooks/useAutoUpdater.js +2 -2
- package/dist/hooks/useAutoUpdater.js.map +1 -1
- package/dist/hooks/usePaneCreation.d.ts.map +1 -1
- package/dist/hooks/usePaneCreation.js +22 -3
- package/dist/hooks/usePaneCreation.js.map +1 -1
- package/dist/hooks/usePanes.js +2 -2
- package/dist/hooks/usePanes.js.map +1 -1
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
- package/dist/hooks/useTerminalWidth.js +5 -0
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/hooks/useWorktreeActions.js +4 -4
- package/dist/hooks/useWorktreeActions.js.map +1 -1
- package/dist/server/embedded-assets.d.ts.map +1 -1
- package/dist/server/embedded-assets.js +251 -47
- package/dist/server/embedded-assets.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +195 -55
- package/dist/server/routes.js.map +1 -1
- package/dist/services/ConfigWatcher.d.ts +9 -0
- package/dist/services/ConfigWatcher.d.ts.map +1 -1
- package/dist/services/ConfigWatcher.js +17 -0
- package/dist/services/ConfigWatcher.js.map +1 -1
- package/dist/services/StatusDetector.js +7 -7
- package/dist/services/StatusDetector.js.map +1 -1
- package/dist/services/TunnelService.d.ts.map +1 -1
- package/dist/services/TunnelService.js +25 -3
- package/dist/services/TunnelService.js.map +1 -1
- package/dist/shared/StateManager.d.ts +11 -0
- package/dist/shared/StateManager.d.ts.map +1 -1
- package/dist/shared/StateManager.js +26 -0
- package/dist/shared/StateManager.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
- package/dist/utils/conflictResolutionPane.js +3 -2
- package/dist/utils/conflictResolutionPane.js.map +1 -1
- package/dist/utils/generated-agents-doc.d.ts +6 -0
- package/dist/utils/generated-agents-doc.d.ts.map +1 -0
- package/dist/utils/generated-agents-doc.js +430 -0
- package/dist/utils/generated-agents-doc.js.map +1 -0
- package/dist/utils/hooks.d.ts +70 -0
- package/dist/utils/hooks.d.ts.map +1 -0
- package/dist/utils/hooks.js +216 -0
- package/dist/utils/hooks.js.map +1 -0
- package/dist/utils/hooksDocs.d.ts +42 -0
- package/dist/utils/hooksDocs.d.ts.map +1 -0
- package/dist/utils/hooksDocs.js +325 -0
- package/dist/utils/hooksDocs.js.map +1 -0
- package/dist/utils/paneCapture.d.ts +21 -0
- package/dist/utils/paneCapture.d.ts.map +1 -0
- package/dist/utils/paneCapture.js +96 -0
- package/dist/utils/paneCapture.js.map +1 -0
- package/dist/utils/paneCreation.d.ts +1 -0
- package/dist/utils/paneCreation.d.ts.map +1 -1
- package/dist/utils/paneCreation.js +90 -18
- package/dist/utils/paneCreation.js.map +1 -1
- package/dist/utils/settingsManager.d.ts +49 -0
- package/dist/utils/settingsManager.d.ts.map +1 -0
- package/dist/utils/settingsManager.js +172 -0
- package/dist/utils/settingsManager.js.map +1 -0
- package/dist/utils/tmux.d.ts.map +1 -1
- package/dist/utils/tmux.js +79 -20
- package/dist/utils/tmux.js.map +1 -1
- package/dist/workers/PaneWorker.js +3 -6
- package/dist/workers/PaneWorker.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paneCapture.d.ts","sourceRoot":"","sources":["../../src/utils/paneCapture.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAW,EAClB,WAAW,GAAE,MAAU,GACtB,MAAM,CA8ER;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAWhF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Captures the last N lines from a tmux pane, automatically skipping trailing blank lines.
|
|
4
|
+
* If the captured content ends with blank lines, it will fetch more lines to ensure
|
|
5
|
+
* we get actual content.
|
|
6
|
+
*
|
|
7
|
+
* @param paneId - The tmux pane ID to capture from
|
|
8
|
+
* @param lines - Number of non-blank lines to capture (default: 50)
|
|
9
|
+
* @param maxAttempts - Maximum number of fetch attempts to find content (default: 5)
|
|
10
|
+
* @returns The captured content with trailing blank lines removed, or empty string on failure
|
|
11
|
+
*/
|
|
12
|
+
export function capturePaneContent(paneId, lines = 50, maxAttempts = 5) {
|
|
13
|
+
try {
|
|
14
|
+
let currentLines = lines;
|
|
15
|
+
let attempt = 0;
|
|
16
|
+
while (attempt < maxAttempts) {
|
|
17
|
+
attempt++;
|
|
18
|
+
// Capture pane content with line history
|
|
19
|
+
// -p prints to stdout, -S -<lines> starts from <lines> lines back
|
|
20
|
+
const content = execSync(`tmux capture-pane -t '${paneId}' -p -S -${currentLines}`, { encoding: 'utf8', stdio: 'pipe' });
|
|
21
|
+
if (!content) {
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
// Split into lines and count trailing blank lines
|
|
25
|
+
const allLines = content.split('\n');
|
|
26
|
+
let trailingBlankCount = 0;
|
|
27
|
+
// Count blank lines from the end
|
|
28
|
+
for (let i = allLines.length - 1; i >= 0; i--) {
|
|
29
|
+
if (allLines[i].trim() === '') {
|
|
30
|
+
trailingBlankCount++;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Calculate actual content lines (non-blank)
|
|
37
|
+
const contentLineCount = allLines.length - trailingBlankCount;
|
|
38
|
+
// If we have enough actual content lines, return trimmed content
|
|
39
|
+
if (contentLineCount >= lines) {
|
|
40
|
+
return allLines.slice(0, -trailingBlankCount || allLines.length).join('\n');
|
|
41
|
+
}
|
|
42
|
+
// If we have some content but not enough, and there might be more above
|
|
43
|
+
if (contentLineCount > 0 && contentLineCount < lines) {
|
|
44
|
+
// Fetch more lines to try to get the desired amount
|
|
45
|
+
// Add the number of trailing blanks we found plus some buffer
|
|
46
|
+
currentLines = currentLines + trailingBlankCount + 20;
|
|
47
|
+
}
|
|
48
|
+
else if (contentLineCount === 0) {
|
|
49
|
+
// All blank lines - the pane might have been cleared
|
|
50
|
+
// Try fetching from a much larger history
|
|
51
|
+
if (attempt === 1) {
|
|
52
|
+
currentLines = 200; // Try a larger window
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Give up, pane is truly empty or cleared
|
|
56
|
+
return '';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// After max attempts, return whatever we have (trimmed)
|
|
61
|
+
const finalContent = execSync(`tmux capture-pane -t '${paneId}' -p -S -${currentLines}`, { encoding: 'utf8', stdio: 'pipe' });
|
|
62
|
+
const finalLines = finalContent.split('\n');
|
|
63
|
+
let finalTrailingBlankCount = 0;
|
|
64
|
+
for (let i = finalLines.length - 1; i >= 0; i--) {
|
|
65
|
+
if (finalLines[i].trim() === '') {
|
|
66
|
+
finalTrailingBlankCount++;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return finalLines.slice(0, -finalTrailingBlankCount || finalLines.length).join('\n');
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
// Failed to capture pane content
|
|
76
|
+
return '';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Captures the last N lines from a tmux pane without filtering blank lines.
|
|
81
|
+
* Use this when you specifically want raw output including blanks.
|
|
82
|
+
*
|
|
83
|
+
* @param paneId - The tmux pane ID to capture from
|
|
84
|
+
* @param lines - Number of lines to capture (default: 50)
|
|
85
|
+
* @returns The raw captured content, or empty string on failure
|
|
86
|
+
*/
|
|
87
|
+
export function capturePaneContentRaw(paneId, lines = 50) {
|
|
88
|
+
try {
|
|
89
|
+
const content = execSync(`tmux capture-pane -t '${paneId}' -p -S -${lines}`, { encoding: 'utf8', stdio: 'pipe' });
|
|
90
|
+
return content;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
return '';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=paneCapture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paneCapture.js","sourceRoot":"","sources":["../../src/utils/paneCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paneCreation.d.ts","sourceRoot":"","sources":["../../src/utils/paneCreation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paneCreation.d.ts","sourceRoot":"","sources":["../../src/utils/paneCreation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,eAAe,EAAE,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,GAC5C,OAAO,CAAC,gBAAgB,CAAC,CA0P3B"}
|
|
@@ -1,14 +1,59 @@
|
|
|
1
1
|
import { execSync } from 'child_process';
|
|
2
2
|
import path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
3
4
|
import { applySmartLayout } from './tmux.js';
|
|
4
5
|
import { generateSlug } from './slug.js';
|
|
6
|
+
import { capturePaneContent } from './paneCapture.js';
|
|
7
|
+
import { triggerHook } from './hooks.js';
|
|
5
8
|
/**
|
|
6
9
|
* Core pane creation logic that can be used by both TUI and API
|
|
7
10
|
* Returns the newly created pane and whether agent choice is needed
|
|
8
11
|
*/
|
|
9
12
|
export async function createPane(options, availableAgents) {
|
|
10
13
|
const { prompt, projectName, existingPanes } = options;
|
|
11
|
-
let { agent } = options;
|
|
14
|
+
let { agent, projectRoot: optionsProjectRoot } = options;
|
|
15
|
+
// Load settings to check for default agent and autopilot
|
|
16
|
+
const { SettingsManager } = await import('./settingsManager.js');
|
|
17
|
+
// Get project root (handle git worktrees correctly)
|
|
18
|
+
let projectRoot;
|
|
19
|
+
if (optionsProjectRoot) {
|
|
20
|
+
projectRoot = optionsProjectRoot;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
try {
|
|
24
|
+
// For git worktrees, we need to get the main repository root, not the worktree root
|
|
25
|
+
// git rev-parse --git-common-dir gives us the main .git directory
|
|
26
|
+
const gitCommonDir = execSync('git rev-parse --git-common-dir', {
|
|
27
|
+
encoding: 'utf-8',
|
|
28
|
+
stdio: 'pipe',
|
|
29
|
+
}).trim();
|
|
30
|
+
// If it's a worktree, gitCommonDir will be an absolute path to main .git
|
|
31
|
+
// If it's the main repo, it will be just '.git'
|
|
32
|
+
if (gitCommonDir === '.git') {
|
|
33
|
+
// We're in the main repo
|
|
34
|
+
projectRoot = execSync('git rev-parse --show-toplevel', {
|
|
35
|
+
encoding: 'utf-8',
|
|
36
|
+
stdio: 'pipe',
|
|
37
|
+
}).trim();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// We're in a worktree, get the parent directory of the .git directory
|
|
41
|
+
projectRoot = path.dirname(gitCommonDir);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
projectRoot = process.cwd();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const settingsManager = new SettingsManager(projectRoot);
|
|
49
|
+
const settings = settingsManager.getSettings();
|
|
50
|
+
// If no agent specified, check settings for default agent
|
|
51
|
+
if (!agent && settings.defaultAgent) {
|
|
52
|
+
// Only use default if it's available
|
|
53
|
+
if (availableAgents.includes(settings.defaultAgent)) {
|
|
54
|
+
agent = settings.defaultAgent;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
12
57
|
// Determine if we need agent choice
|
|
13
58
|
if (!agent && availableAgents.length > 1) {
|
|
14
59
|
// Need to ask which agent to use
|
|
@@ -21,19 +66,13 @@ export async function createPane(options, availableAgents) {
|
|
|
21
66
|
if (!agent && availableAgents.length === 1) {
|
|
22
67
|
agent = availableAgents[0];
|
|
23
68
|
}
|
|
69
|
+
// Trigger before_pane_create hook
|
|
70
|
+
await triggerHook('before_pane_create', projectRoot, undefined, {
|
|
71
|
+
DMUX_PROMPT: prompt,
|
|
72
|
+
DMUX_AGENT: agent || 'unknown',
|
|
73
|
+
});
|
|
24
74
|
// Generate slug
|
|
25
75
|
const slug = await generateSlug(prompt);
|
|
26
|
-
// Get project root
|
|
27
|
-
let projectRoot;
|
|
28
|
-
try {
|
|
29
|
-
projectRoot = execSync('git rev-parse --show-toplevel', {
|
|
30
|
-
encoding: 'utf-8',
|
|
31
|
-
stdio: 'pipe',
|
|
32
|
-
}).trim();
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
projectRoot = process.cwd();
|
|
36
|
-
}
|
|
37
76
|
const worktreePath = path.join(projectRoot, '.dmux', 'worktrees', slug);
|
|
38
77
|
const originalPaneId = execSync('tmux display-message -p "#{pane_id}"', {
|
|
39
78
|
encoding: 'utf-8',
|
|
@@ -65,17 +104,46 @@ export async function createPane(options, availableAgents) {
|
|
|
65
104
|
// Apply smart layout based on pane count
|
|
66
105
|
const newPaneCount = paneCount + 1;
|
|
67
106
|
applySmartLayout(newPaneCount);
|
|
107
|
+
// Trigger pane_created hook (after pane created, before worktree)
|
|
108
|
+
await triggerHook('pane_created', projectRoot, undefined, {
|
|
109
|
+
DMUX_PANE_ID: `dmux-${Date.now()}`,
|
|
110
|
+
DMUX_SLUG: slug,
|
|
111
|
+
DMUX_PROMPT: prompt,
|
|
112
|
+
DMUX_AGENT: agent || 'unknown',
|
|
113
|
+
DMUX_TMUX_PANE_ID: paneInfo,
|
|
114
|
+
});
|
|
115
|
+
// Check if this is a hooks editing session (before worktree creation)
|
|
116
|
+
const isHooksEditingSession = prompt && /edit.*dmux.*hooks/i.test(prompt);
|
|
68
117
|
// Create git worktree and cd into it
|
|
69
118
|
try {
|
|
70
119
|
const worktreeCmd = `git worktree add "${worktreePath}" -b ${slug} 2>/dev/null ; cd "${worktreePath}"`;
|
|
71
120
|
execSync(`tmux send-keys -t '${paneInfo}' '${worktreeCmd}' Enter`, {
|
|
72
121
|
stdio: 'pipe',
|
|
73
122
|
});
|
|
74
|
-
// Wait for worktree
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
123
|
+
// Wait for worktree to actually exist on the filesystem
|
|
124
|
+
const maxWaitTime = 5000; // 5 seconds max
|
|
125
|
+
const checkInterval = 100; // Check every 100ms
|
|
126
|
+
const startTime = Date.now();
|
|
127
|
+
while (!fs.existsSync(worktreePath) && (Date.now() - startTime) < maxWaitTime) {
|
|
128
|
+
await new Promise((resolve) => setTimeout(resolve, checkInterval));
|
|
129
|
+
}
|
|
130
|
+
// Give a bit more time for git to finish setting up the worktree
|
|
78
131
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
132
|
+
// Initialize .dmux-hooks if this is a hooks editing session
|
|
133
|
+
if (isHooksEditingSession) {
|
|
134
|
+
const hooksDir = path.join(worktreePath, '.dmux-hooks');
|
|
135
|
+
// Check if .dmux-hooks already exists
|
|
136
|
+
if (!fs.existsSync(hooksDir)) {
|
|
137
|
+
// Create the directory
|
|
138
|
+
fs.mkdirSync(hooksDir, { recursive: true });
|
|
139
|
+
// Import and write the documentation content
|
|
140
|
+
const { AGENTS_MD } = await import('./generated-agents-doc.js');
|
|
141
|
+
// Write AGENTS.md
|
|
142
|
+
fs.writeFileSync(path.join(hooksDir, 'AGENTS.md'), AGENTS_MD, 'utf-8');
|
|
143
|
+
// Copy to CLAUDE.md
|
|
144
|
+
fs.writeFileSync(path.join(hooksDir, 'CLAUDE.md'), AGENTS_MD, 'utf-8');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
79
147
|
}
|
|
80
148
|
catch (error) {
|
|
81
149
|
// Even if worktree creation failed, try to cd to the directory
|
|
@@ -138,7 +206,11 @@ export async function createPane(options, availableAgents) {
|
|
|
138
206
|
paneId: paneInfo,
|
|
139
207
|
worktreePath,
|
|
140
208
|
agent,
|
|
209
|
+
// Set autopilot based on settings (use ?? to properly handle false vs undefined)
|
|
210
|
+
autopilot: settings.enableAutopilotByDefault ?? false,
|
|
141
211
|
};
|
|
212
|
+
// Trigger worktree_created hook (after full pane setup)
|
|
213
|
+
await triggerHook('worktree_created', projectRoot, newPane);
|
|
142
214
|
// Switch back to the original pane
|
|
143
215
|
execSync(`tmux select-pane -t '${originalPaneId}'`, { stdio: 'pipe' });
|
|
144
216
|
// Re-set the title for the dmux pane
|
|
@@ -196,7 +268,7 @@ async function autoApproveTrustPrompt(paneInfo, prompt) {
|
|
|
196
268
|
await new Promise((resolve) => setTimeout(resolve, checkInterval));
|
|
197
269
|
try {
|
|
198
270
|
// Capture the pane content
|
|
199
|
-
const paneContent =
|
|
271
|
+
const paneContent = capturePaneContent(paneInfo, 30);
|
|
200
272
|
// Check if content has stabilized
|
|
201
273
|
if (paneContent === lastContent) {
|
|
202
274
|
stableContentCount++;
|
|
@@ -240,7 +312,7 @@ async function autoApproveTrustPrompt(paneInfo, prompt) {
|
|
|
240
312
|
// Wait and check if prompt is gone
|
|
241
313
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
242
314
|
// Verify the prompt is gone
|
|
243
|
-
const updatedContent =
|
|
315
|
+
const updatedContent = capturePaneContent(paneInfo, 10);
|
|
244
316
|
const promptGone = !trustPromptPatterns.some((p) => p.test(updatedContent));
|
|
245
317
|
if (promptGone) {
|
|
246
318
|
// Check if Claude is running
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paneCreation.js","sourceRoot":"","sources":["../../src/utils/paneCreation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paneCreation.js","sourceRoot":"","sources":["../../src/utils/paneCreation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { DmuxSettings, SettingsScope, SettingDefinition } from '../types.js';
|
|
2
|
+
export declare const SETTING_DEFINITIONS: SettingDefinition[];
|
|
3
|
+
export declare class SettingsManager {
|
|
4
|
+
private globalPath;
|
|
5
|
+
private projectPath;
|
|
6
|
+
private globalSettings;
|
|
7
|
+
private projectSettings;
|
|
8
|
+
constructor(projectRoot?: string);
|
|
9
|
+
private loadSettings;
|
|
10
|
+
/**
|
|
11
|
+
* Get merged settings (project settings override global)
|
|
12
|
+
*/
|
|
13
|
+
getSettings(): DmuxSettings;
|
|
14
|
+
/**
|
|
15
|
+
* Get a specific setting value (with project override)
|
|
16
|
+
*/
|
|
17
|
+
getSetting<K extends keyof DmuxSettings>(key: K): DmuxSettings[K];
|
|
18
|
+
/**
|
|
19
|
+
* Get global settings only
|
|
20
|
+
*/
|
|
21
|
+
getGlobalSettings(): DmuxSettings;
|
|
22
|
+
/**
|
|
23
|
+
* Get project settings only
|
|
24
|
+
*/
|
|
25
|
+
getProjectSettings(): DmuxSettings;
|
|
26
|
+
/**
|
|
27
|
+
* Update a setting at the specified scope
|
|
28
|
+
*/
|
|
29
|
+
updateSetting<K extends keyof DmuxSettings>(key: K, value: DmuxSettings[K], scope: SettingsScope): void;
|
|
30
|
+
/**
|
|
31
|
+
* Update multiple settings at once
|
|
32
|
+
*/
|
|
33
|
+
updateSettings(settings: Partial<DmuxSettings>, scope: SettingsScope): void;
|
|
34
|
+
/**
|
|
35
|
+
* Remove a setting from the specified scope
|
|
36
|
+
*/
|
|
37
|
+
removeSetting(key: keyof DmuxSettings, scope: SettingsScope): void;
|
|
38
|
+
private saveGlobalSettings;
|
|
39
|
+
private saveProjectSettings;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a setting is overridden at the project level
|
|
42
|
+
*/
|
|
43
|
+
isProjectOverride(key: keyof DmuxSettings): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get the effective scope for a setting (where it's currently defined)
|
|
46
|
+
*/
|
|
47
|
+
getEffectiveScope(key: keyof DmuxSettings): SettingsScope | null;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=settingsManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsManager.d.ts","sourceRoot":"","sources":["../../src/utils/settingsManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIlF,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAwBlD,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,eAAe,CAAoB;gBAE/B,WAAW,CAAC,EAAE,MAAM;IAMhC,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,WAAW,IAAI,YAAY;IAO3B;;OAEG;IACH,UAAU,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAKjE;;OAEG;IACH,iBAAiB,IAAI,YAAY;IAIjC;;OAEG;IACH,kBAAkB,IAAI,YAAY;IAIlC;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,YAAY,EACxC,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,aAAa,GACnB,IAAI;IAUP;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAU3E;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAUlE,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,OAAO;IAInD;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,aAAa,GAAG,IAAI;CAKjE"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
2
|
+
import { dirname, join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
const GLOBAL_SETTINGS_PATH = join(homedir(), '.dmux.global.json');
|
|
5
|
+
export const SETTING_DEFINITIONS = [
|
|
6
|
+
{
|
|
7
|
+
key: 'enableAutopilotByDefault',
|
|
8
|
+
label: 'Enable Autopilot by Default',
|
|
9
|
+
description: 'Automatically accept options when no risk is detected for new panes',
|
|
10
|
+
type: 'boolean',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
key: 'defaultAgent',
|
|
14
|
+
label: 'Default Agent',
|
|
15
|
+
description: 'Skip agent selection and use this agent for all new panes',
|
|
16
|
+
type: 'select',
|
|
17
|
+
options: [
|
|
18
|
+
{ value: '', label: 'Ask each time' },
|
|
19
|
+
{ value: 'claude', label: 'Claude Code' },
|
|
20
|
+
{ value: 'opencode', label: 'OpenCode' },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
key: 'hooks',
|
|
25
|
+
label: 'Manage Hooks',
|
|
26
|
+
description: 'View and edit dmux lifecycle hooks',
|
|
27
|
+
type: 'action',
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
export class SettingsManager {
|
|
31
|
+
globalPath;
|
|
32
|
+
projectPath;
|
|
33
|
+
globalSettings = {};
|
|
34
|
+
projectSettings = {};
|
|
35
|
+
constructor(projectRoot) {
|
|
36
|
+
this.globalPath = GLOBAL_SETTINGS_PATH;
|
|
37
|
+
this.projectPath = join(projectRoot || process.cwd(), '.dmux', 'settings.json');
|
|
38
|
+
this.loadSettings();
|
|
39
|
+
}
|
|
40
|
+
loadSettings() {
|
|
41
|
+
// Load global settings
|
|
42
|
+
if (existsSync(this.globalPath)) {
|
|
43
|
+
try {
|
|
44
|
+
const data = readFileSync(this.globalPath, 'utf-8');
|
|
45
|
+
this.globalSettings = JSON.parse(data);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error('Failed to load global settings:', error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Load project settings
|
|
52
|
+
if (existsSync(this.projectPath)) {
|
|
53
|
+
try {
|
|
54
|
+
const data = readFileSync(this.projectPath, 'utf-8');
|
|
55
|
+
this.projectSettings = JSON.parse(data);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('Failed to load project settings:', error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get merged settings (project settings override global)
|
|
64
|
+
*/
|
|
65
|
+
getSettings() {
|
|
66
|
+
return {
|
|
67
|
+
...this.globalSettings,
|
|
68
|
+
...this.projectSettings,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get a specific setting value (with project override)
|
|
73
|
+
*/
|
|
74
|
+
getSetting(key) {
|
|
75
|
+
const merged = this.getSettings();
|
|
76
|
+
return merged[key];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get global settings only
|
|
80
|
+
*/
|
|
81
|
+
getGlobalSettings() {
|
|
82
|
+
return { ...this.globalSettings };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get project settings only
|
|
86
|
+
*/
|
|
87
|
+
getProjectSettings() {
|
|
88
|
+
return { ...this.projectSettings };
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Update a setting at the specified scope
|
|
92
|
+
*/
|
|
93
|
+
updateSetting(key, value, scope) {
|
|
94
|
+
if (scope === 'global') {
|
|
95
|
+
this.globalSettings[key] = value;
|
|
96
|
+
this.saveGlobalSettings();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.projectSettings[key] = value;
|
|
100
|
+
this.saveProjectSettings();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Update multiple settings at once
|
|
105
|
+
*/
|
|
106
|
+
updateSettings(settings, scope) {
|
|
107
|
+
if (scope === 'global') {
|
|
108
|
+
this.globalSettings = { ...this.globalSettings, ...settings };
|
|
109
|
+
this.saveGlobalSettings();
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.projectSettings = { ...this.projectSettings, ...settings };
|
|
113
|
+
this.saveProjectSettings();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove a setting from the specified scope
|
|
118
|
+
*/
|
|
119
|
+
removeSetting(key, scope) {
|
|
120
|
+
if (scope === 'global') {
|
|
121
|
+
delete this.globalSettings[key];
|
|
122
|
+
this.saveGlobalSettings();
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
delete this.projectSettings[key];
|
|
126
|
+
this.saveProjectSettings();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
saveGlobalSettings() {
|
|
130
|
+
try {
|
|
131
|
+
const dir = dirname(this.globalPath);
|
|
132
|
+
if (!existsSync(dir)) {
|
|
133
|
+
mkdirSync(dir, { recursive: true });
|
|
134
|
+
}
|
|
135
|
+
writeFileSync(this.globalPath, JSON.stringify(this.globalSettings, null, 2));
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
console.error('Failed to save global settings:', error);
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
saveProjectSettings() {
|
|
143
|
+
try {
|
|
144
|
+
const dir = dirname(this.projectPath);
|
|
145
|
+
if (!existsSync(dir)) {
|
|
146
|
+
mkdirSync(dir, { recursive: true });
|
|
147
|
+
}
|
|
148
|
+
writeFileSync(this.projectPath, JSON.stringify(this.projectSettings, null, 2));
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
console.error('Failed to save project settings:', error);
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Check if a setting is overridden at the project level
|
|
157
|
+
*/
|
|
158
|
+
isProjectOverride(key) {
|
|
159
|
+
return key in this.projectSettings;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get the effective scope for a setting (where it's currently defined)
|
|
163
|
+
*/
|
|
164
|
+
getEffectiveScope(key) {
|
|
165
|
+
if (key in this.projectSettings)
|
|
166
|
+
return 'project';
|
|
167
|
+
if (key in this.globalSettings)
|
|
168
|
+
return 'global';
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=settingsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsManager.js","sourceRoot":"","sources":["../../src/utils/settingsManager.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tmux.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,gBAAgB,QAAO,YAAY,EAoB/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,gBAAgB,QAAO,YAAY,EAoB/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,SAmBjD,CAAC"}
|