autodev-cli 1.4.0 → 1.4.3
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/bin/autodev.js +0 -0
- package/out/agentBackup/archive.d.ts +44 -0
- package/out/agentBackup/archive.js +131 -0
- package/out/agentBackup/archive.js.map +1 -0
- package/out/agentBackup/export.d.ts +18 -0
- package/out/agentBackup/export.js +92 -0
- package/out/agentBackup/export.js.map +1 -0
- package/out/agentBackup/import.d.ts +21 -0
- package/out/agentBackup/import.js +40 -0
- package/out/agentBackup/import.js.map +1 -0
- package/out/agentBackup/index.d.ts +6 -0
- package/out/agentBackup/index.js +11 -0
- package/out/agentBackup/index.js.map +1 -0
- package/out/agentBackup/layout.d.ts +30 -0
- package/out/agentBackup/layout.js +126 -0
- package/out/agentBackup/layout.js.map +1 -0
- package/out/agentBackup/manifest.d.ts +24 -0
- package/out/agentBackup/manifest.js +70 -0
- package/out/agentBackup/manifest.js.map +1 -0
- package/out/agentBackup/opencodeDb.d.ts +20 -0
- package/out/agentBackup/opencodeDb.js +213 -0
- package/out/agentBackup/opencodeDb.js.map +1 -0
- package/out/agentBackup/sessionProviders.d.ts +35 -0
- package/out/agentBackup/sessionProviders.js +263 -0
- package/out/agentBackup/sessionProviders.js.map +1 -0
- package/out/agentBackup/upload.d.ts +9 -0
- package/out/agentBackup/upload.js +121 -0
- package/out/agentBackup/upload.js.map +1 -0
- package/out/cli.d.ts +1 -0
- package/out/cli.js +8 -0
- package/out/cli.js.map +1 -1
- package/out/cliExit.d.ts +34 -0
- package/out/cliExit.js +159 -0
- package/out/cliExit.js.map +1 -0
- package/out/commands/config.d.ts +2 -0
- package/out/commands/config.js +7 -7
- package/out/commands/config.js.map +1 -1
- package/out/commands/connect.d.ts +2 -0
- package/out/commands/connect.js +11 -0
- package/out/commands/connect.js.map +1 -1
- package/out/commands/export.d.ts +2 -0
- package/out/commands/export.js +79 -0
- package/out/commands/export.js.map +1 -0
- package/out/commands/import.d.ts +2 -0
- package/out/commands/import.js +92 -0
- package/out/commands/import.js.map +1 -0
- package/out/commands/init.d.ts +16 -0
- package/out/commands/init.js +9 -5
- package/out/commands/init.js.map +1 -1
- package/out/commands/resume.d.ts +2 -0
- package/out/commands/resume.js +65 -0
- package/out/commands/resume.js.map +1 -0
- package/out/commands/sessions.d.ts +2 -0
- package/out/commands/sessions.js +64 -0
- package/out/commands/sessions.js.map +1 -0
- package/out/commands/start.d.ts +2 -0
- package/out/commands/start.js +40 -7
- package/out/commands/start.js.map +1 -1
- package/out/commands/status.d.ts +2 -0
- package/out/commands/status.js +3 -3
- package/out/commands/status.js.map +1 -1
- package/out/commands/tailOutput.d.ts +12 -0
- package/out/commands/up.d.ts +3 -0
- package/out/configManager.d.ts +42 -0
- package/out/configManager.js +430 -0
- package/out/configManager.js.map +1 -0
- package/out/connect.d.ts +4 -0
- package/out/connect.js +7 -7
- package/out/connect.js.map +1 -1
- package/out/core/adapters.d.ts +34 -0
- package/out/core/adapters.js +84 -0
- package/out/core/adapters.js.map +1 -0
- package/out/core/commandHelpers.d.ts +12 -0
- package/out/core/commandHelpers.js +96 -0
- package/out/core/commandHelpers.js.map +1 -0
- package/out/core/projectMcp.d.ts +25 -0
- package/out/core/projectMcp.js +144 -0
- package/out/core/projectMcp.js.map +1 -0
- package/out/core/provider/BaseProvider.d.ts +14 -0
- package/out/core/provider/BaseProvider.js +25 -0
- package/out/core/provider/BaseProvider.js.map +1 -0
- package/out/core/provider/ProviderRegistry.d.ts +12 -0
- package/out/core/provider/ProviderRegistry.js +40 -0
- package/out/core/provider/ProviderRegistry.js.map +1 -0
- package/out/core/provider/contract.d.ts +62 -0
- package/out/core/provider/contract.js +9 -0
- package/out/core/provider/contract.js.map +1 -0
- package/out/core/provider/implementations.d.ts +54 -0
- package/out/core/provider/implementations.js +147 -0
- package/out/core/provider/implementations.js.map +1 -0
- package/out/core/settingsLoader.d.ts +221 -0
- package/out/core/settingsLoader.js +176 -0
- package/out/core/settingsLoader.js.map +1 -0
- package/out/discordGateway.d.ts +26 -0
- package/out/discordGateway.js +230 -0
- package/out/discordGateway.js.map +1 -0
- package/out/discordPoller.d.ts +28 -0
- package/out/discordPoller.js +247 -0
- package/out/discordPoller.js.map +1 -0
- package/out/dispatcher.d.ts +12 -0
- package/out/dispatcher.js +214 -0
- package/out/dispatcher.js.map +1 -0
- package/out/emailPoller.d.ts +42 -0
- package/out/emailPoller.js +221 -0
- package/out/emailPoller.js.map +1 -0
- package/out/git/gitService.d.ts +36 -0
- package/out/git/gitService.js +165 -0
- package/out/git/gitService.js.map +1 -0
- package/out/hookEventNormalizer.d.ts +39 -0
- package/out/hookEventNormalizer.js +397 -0
- package/out/hookEventNormalizer.js.map +1 -0
- package/out/hooksManager.d.ts +25 -0
- package/out/hooksManager.js +471 -0
- package/out/hooksManager.js.map +1 -0
- package/out/launchIde.d.ts +14 -0
- package/out/logger.d.ts +12 -0
- package/out/mcpEmailTest.d.ts +29 -0
- package/out/mcpEmailTest.js +245 -0
- package/out/mcpEmailTest.js.map +1 -0
- package/out/mcpInstallCheck.d.ts +23 -0
- package/out/mcpInstallCheck.js +219 -0
- package/out/mcpInstallCheck.js.map +1 -0
- package/out/mcpManager.d.ts +35 -0
- package/out/mcpManager.js +371 -0
- package/out/mcpManager.js.map +1 -0
- package/out/messageBuilder.d.ts +54 -0
- package/out/messageBuilder.js +373 -0
- package/out/messageBuilder.js.map +1 -0
- package/out/openCodeHooksManager.d.ts +23 -0
- package/out/openCodeHooksManager.js +511 -0
- package/out/openCodeHooksManager.js.map +1 -0
- package/out/periodicActions.d.ts +63 -0
- package/out/periodicActions.js +237 -0
- package/out/periodicActions.js.map +1 -0
- package/out/profileBuilder.d.ts +29 -0
- package/out/profileBuilder.js +366 -0
- package/out/profileBuilder.js.map +1 -0
- package/out/prompt.d.ts +12 -0
- package/out/prompt.js +18 -0
- package/out/prompt.js.map +1 -0
- package/out/protocolSections.d.ts +26 -0
- package/out/protocolSections.js +209 -0
- package/out/protocolSections.js.map +1 -0
- package/out/providers/claudeCliProvider.d.ts +71 -0
- package/out/providers/claudeCliProvider.js +425 -0
- package/out/providers/claudeCliProvider.js.map +1 -0
- package/out/providers/claudeTuiProvider.d.ts +23 -0
- package/out/providers/claudeTuiProvider.js +296 -0
- package/out/providers/claudeTuiProvider.js.map +1 -0
- package/out/providers/copilotCliProvider.d.ts +16 -0
- package/out/providers/copilotCliProvider.js +44 -0
- package/out/providers/copilotCliProvider.js.map +1 -0
- package/out/providers/copilotSdkProvider.d.ts +12 -0
- package/out/providers/copilotSdkProvider.js +445 -0
- package/out/providers/copilotSdkProvider.js.map +1 -0
- package/out/providers/grokTuiProvider.d.ts +14 -0
- package/out/providers/grokTuiProvider.js +271 -0
- package/out/providers/grokTuiProvider.js.map +1 -0
- package/out/providers/opencodeCliProvider.d.ts +29 -0
- package/out/providers/opencodeCliProvider.js +199 -0
- package/out/providers/opencodeCliProvider.js.map +1 -0
- package/out/providers/opencodeSdkProvider.d.ts +22 -0
- package/out/providers/opencodeSdkProvider.js +557 -0
- package/out/providers/opencodeSdkProvider.js.map +1 -0
- package/out/providers.d.ts +9 -0
- package/out/providers.js +44 -0
- package/out/providers.js.map +1 -0
- package/out/rateLimit.d.ts +18 -0
- package/out/rateLimit.js +90 -0
- package/out/rateLimit.js.map +1 -0
- package/out/rdp/auth.d.ts +55 -0
- package/out/rdp/auth.js +197 -0
- package/out/rdp/auth.js.map +1 -0
- package/out/rdp/bridge.d.ts +86 -0
- package/out/rdp/bridge.js +1398 -0
- package/out/rdp/bridge.js.map +1 -0
- package/out/rdp/constants.d.ts +86 -0
- package/out/rdp/constants.js +182 -0
- package/out/rdp/constants.js.map +1 -0
- package/out/rdp/index.d.ts +7 -0
- package/out/rdp/index.js +14 -0
- package/out/rdp/index.js.map +1 -0
- package/out/rdp/session.d.ts +30 -0
- package/out/rdp/session.js +196 -0
- package/out/rdp/session.js.map +1 -0
- package/out/rdp/types.d.ts +27 -0
- package/out/rdp/types.js +6 -0
- package/out/rdp/types.js.map +1 -0
- package/out/sdk/index.d.ts +22 -0
- package/out/sdk/index.js +81 -0
- package/out/sdk/index.js.map +1 -0
- package/out/sessionState.d.ts +54 -0
- package/out/sessionState.js +284 -0
- package/out/sessionState.js.map +1 -0
- package/out/sessions.d.ts +11 -0
- package/out/sessions.js +32 -0
- package/out/sessions.js.map +1 -0
- package/out/taskLoop.d.ts +152 -0
- package/out/taskLoop.js +2505 -0
- package/out/taskLoop.js.map +1 -0
- package/out/todo.d.ts +42 -0
- package/out/todo.js +311 -0
- package/out/todo.js.map +1 -0
- package/out/todoWriteManager.d.ts +26 -0
- package/out/todoWriteManager.js +44 -0
- package/out/todoWriteManager.js.map +1 -0
- package/out/vnc/auth.d.ts +52 -0
- package/out/vnc/auth.js +181 -0
- package/out/vnc/auth.js.map +1 -0
- package/out/vnc/bridge.d.ts +40 -0
- package/out/vnc/bridge.js +540 -0
- package/out/vnc/bridge.js.map +1 -0
- package/out/vnc/constants.d.ts +8 -0
- package/out/vnc/constants.js +34 -0
- package/out/vnc/constants.js.map +1 -0
- package/out/vnc/des.d.ts +6 -0
- package/out/vnc/des.js +93 -0
- package/out/vnc/des.js.map +1 -0
- package/out/vnc/index.d.ts +7 -0
- package/out/vnc/index.js +13 -0
- package/out/vnc/index.js.map +1 -0
- package/out/vnc/session.d.ts +18 -0
- package/out/vnc/session.js +193 -0
- package/out/vnc/session.js.map +1 -0
- package/out/vnc/types.d.ts +16 -0
- package/out/vnc/types.js +6 -0
- package/out/vnc/types.js.map +1 -0
- package/out/webSocketPoller.d.ts +95 -0
- package/out/webSocketPoller.js +986 -0
- package/out/webSocketPoller.js.map +1 -0
- package/out/webhook.d.ts +37 -0
- package/out/webhook.js +265 -0
- package/out/webhook.js.map +1 -0
- package/out/webhookPoller.d.ts +40 -0
- package/out/webhookPoller.js +378 -0
- package/out/webhookPoller.js.map +1 -0
- package/package.json +54 -41
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ConfigManager = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const os = __importStar(require("os"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const mcpManager_1 = require("./mcpManager");
|
|
41
|
+
const settingsLoader_1 = require("./core/settingsLoader");
|
|
42
|
+
const projectMcp_1 = require("./core/projectMcp");
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// ConfigManager — applies permission/settings files for each CLI provider
|
|
45
|
+
// and syncs default MCP servers to all of them.
|
|
46
|
+
//
|
|
47
|
+
// Covers:
|
|
48
|
+
// Claude CLI : ~/.claude/settings.json (permissions)
|
|
49
|
+
// <root>/.claude/settings.json (project-level allow:*)
|
|
50
|
+
// Copilot CLI : ~/.copilot/mcp-config.json (MCP only — no extra perms)
|
|
51
|
+
// OpenCode CLI: %APPDATA%/opencode/config.json (permission: {"*":"allow"})
|
|
52
|
+
// <root>/opencode.json (project-level)
|
|
53
|
+
//
|
|
54
|
+
// MCP entries are merged in via McpServerManager.addDefaults().
|
|
55
|
+
// This class is vscode-free so it can be tested or called independently.
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
class ConfigManager {
|
|
58
|
+
// -------------------------------------------------------------------------
|
|
59
|
+
// Claude CLI
|
|
60
|
+
// -------------------------------------------------------------------------
|
|
61
|
+
/**
|
|
62
|
+
* Write bypassPermissions to ~/.claude/settings.json and, if a workspace
|
|
63
|
+
* root is provided, allow:* to <root>/.claude/settings.json.
|
|
64
|
+
*/
|
|
65
|
+
static applyClaudePermissions(root, log) {
|
|
66
|
+
// User-level: bypass all permission prompts
|
|
67
|
+
const userFile = path.join(os.homedir(), '.claude', 'settings.json');
|
|
68
|
+
_mergeJson(userFile, (cfg) => {
|
|
69
|
+
const perms = _obj(cfg['permissions']);
|
|
70
|
+
perms['defaultMode'] = 'bypassPermissions';
|
|
71
|
+
perms['skipDangerousModePermissionPrompt'] = true;
|
|
72
|
+
cfg['permissions'] = perms;
|
|
73
|
+
}, log, 'Claude user settings');
|
|
74
|
+
// Project-level: allow all tools
|
|
75
|
+
if (root) {
|
|
76
|
+
const projectFile = path.join(root, '.claude', 'settings.json');
|
|
77
|
+
_mergeJson(projectFile, (cfg) => {
|
|
78
|
+
const perms = _obj(cfg['permissions']);
|
|
79
|
+
perms['allow'] = ['*'];
|
|
80
|
+
cfg['permissions'] = perms;
|
|
81
|
+
}, log, 'Claude project settings');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// -------------------------------------------------------------------------
|
|
85
|
+
// OpenCode CLI
|
|
86
|
+
// -------------------------------------------------------------------------
|
|
87
|
+
/**
|
|
88
|
+
* Write permission:{"*":"allow"} to the OpenCode user config and optionally
|
|
89
|
+
* to <root>/opencode.json (project-level).
|
|
90
|
+
*/
|
|
91
|
+
static applyOpenCodePermissions(root, log) {
|
|
92
|
+
// User-level config path reused from McpServerManager
|
|
93
|
+
const userFile = mcpManager_1.McpServerManager.configPathFor('opencode-cli');
|
|
94
|
+
_mergeJson(userFile, (cfg) => {
|
|
95
|
+
cfg['permission'] = { '*': 'allow' };
|
|
96
|
+
}, log, 'OpenCode user config');
|
|
97
|
+
// Project-level
|
|
98
|
+
if (root) {
|
|
99
|
+
const projectFile = path.join(root, 'opencode.json');
|
|
100
|
+
_mergeJson(projectFile, (cfg) => {
|
|
101
|
+
// Preserve any existing provider/model keys, only touch permission
|
|
102
|
+
cfg['permission'] = { '*': 'allow' };
|
|
103
|
+
}, log, 'OpenCode project config');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Enable or disable `setCacheKey: true` for all provider sections in the
|
|
108
|
+
* project-level `opencode.json`. When `enabled` is true, every existing
|
|
109
|
+
* provider entry gets `options.setCacheKey = true` added. When false, the
|
|
110
|
+
* key is deleted (options object is pruned if it becomes empty).
|
|
111
|
+
*/
|
|
112
|
+
static applyOpenCodeCacheSettings(root, enabled, log) {
|
|
113
|
+
const projectFile = path.join(root, 'opencode.json');
|
|
114
|
+
_mergeJson(projectFile, (cfg) => {
|
|
115
|
+
const provider = _obj(cfg['provider']);
|
|
116
|
+
// Apply to every provider section that already exists in the file.
|
|
117
|
+
// We don't create new provider entries — only touch what's there so
|
|
118
|
+
// we don't accidentally set a key for a provider that isn't configured.
|
|
119
|
+
for (const providerName of Object.keys(provider)) {
|
|
120
|
+
const prov = _obj(provider[providerName]);
|
|
121
|
+
if (enabled) {
|
|
122
|
+
const opts = _obj(prov['options']);
|
|
123
|
+
opts['setCacheKey'] = true;
|
|
124
|
+
prov['options'] = opts;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const opts = prov['options'];
|
|
128
|
+
if (opts && typeof opts === 'object') {
|
|
129
|
+
delete opts['setCacheKey'];
|
|
130
|
+
if (Object.keys(opts).length === 0) {
|
|
131
|
+
delete prov['options'];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
provider[providerName] = prov;
|
|
136
|
+
}
|
|
137
|
+
cfg['provider'] = provider;
|
|
138
|
+
}, log, 'OpenCode cache settings');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Apply `timeout` and `chunkTimeout` to every provider section in the
|
|
142
|
+
* project-level `opencode.json`. Values of 0 mean "remove the key" so the
|
|
143
|
+
* OpenCode default applies.
|
|
144
|
+
*/
|
|
145
|
+
static applyOpenCodeTimeoutSettings(root, timeoutMs, chunkTimeoutMs, log) {
|
|
146
|
+
const projectFile = path.join(root, 'opencode.json');
|
|
147
|
+
_mergeJson(projectFile, (cfg) => {
|
|
148
|
+
const provider = _obj(cfg['provider']);
|
|
149
|
+
for (const providerName of Object.keys(provider)) {
|
|
150
|
+
const prov = _obj(provider[providerName]);
|
|
151
|
+
const opts = _obj(prov['options']);
|
|
152
|
+
if (timeoutMs > 0) {
|
|
153
|
+
opts['timeout'] = timeoutMs;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
delete opts['timeout'];
|
|
157
|
+
}
|
|
158
|
+
if (chunkTimeoutMs > 0) {
|
|
159
|
+
opts['chunkTimeout'] = chunkTimeoutMs;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
delete opts['chunkTimeout'];
|
|
163
|
+
}
|
|
164
|
+
if (Object.keys(opts).length > 0) {
|
|
165
|
+
prov['options'] = opts;
|
|
166
|
+
}
|
|
167
|
+
else if ('options' in prov && Object.keys(_obj(prov['options'])).length === 0) {
|
|
168
|
+
delete prov['options'];
|
|
169
|
+
}
|
|
170
|
+
provider[providerName] = prov;
|
|
171
|
+
}
|
|
172
|
+
cfg['provider'] = provider;
|
|
173
|
+
}, log, 'OpenCode timeout settings');
|
|
174
|
+
}
|
|
175
|
+
// -------------------------------------------------------------------------
|
|
176
|
+
// MCP sync — project-local only (no global config modifications)
|
|
177
|
+
// -------------------------------------------------------------------------
|
|
178
|
+
/**
|
|
179
|
+
* Write MCP server definitions to project-local config files only.
|
|
180
|
+
* Covers: .claude/settings.local.json, .vscode/mcp.json, opencode.json, .mcp.json
|
|
181
|
+
* The memory server uses <root>/.autodev/memories/.mcp-graph.json as its storage file.
|
|
182
|
+
*
|
|
183
|
+
* The full server set is `DEFAULT_MCP_SERVERS` ∪ user-defined entries from
|
|
184
|
+
* `.autodev/settings.json:mcpServers`. User entries with the same name as
|
|
185
|
+
* a default override the default — that lets users tune env vars / args of
|
|
186
|
+
* the built-in servers (e.g. point `memory` at a different file).
|
|
187
|
+
*/
|
|
188
|
+
static syncProjectMcpServers(root, log) {
|
|
189
|
+
const baseServers = [
|
|
190
|
+
...mcpManager_1.DEFAULT_MCP_SERVERS,
|
|
191
|
+
{
|
|
192
|
+
name: 'memory',
|
|
193
|
+
command: 'npx',
|
|
194
|
+
args: ['-y', '@modelcontextprotocol/server-memory'],
|
|
195
|
+
env: {
|
|
196
|
+
MEMORY_FILE_PATH: '.autodev/memories/.mcp-graph.json',
|
|
197
|
+
},
|
|
198
|
+
tools: ['*'],
|
|
199
|
+
},
|
|
200
|
+
];
|
|
201
|
+
// One-time migration: if .autodev/settings.json still carries an
|
|
202
|
+
// mcpServers block from before .mcp.json was the source of truth, copy
|
|
203
|
+
// the user entries into .mcp.json and strip them from settings.
|
|
204
|
+
let disabledBuiltins = [];
|
|
205
|
+
try {
|
|
206
|
+
const s = (0, settingsLoader_1.loadSettingsForRoot)(root);
|
|
207
|
+
disabledBuiltins = s.disabledBuiltinMcp ?? [];
|
|
208
|
+
const stale = s.mcpServers;
|
|
209
|
+
if (stale && Object.keys(stale).length > 0) {
|
|
210
|
+
_migrateLegacyMcpServers(root, stale, log);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch { /* ignore */ }
|
|
214
|
+
// User entries now live in .mcp.json — read them straight from there.
|
|
215
|
+
let userMcp = (0, projectMcp_1.loadProjectUserMcp)(root);
|
|
216
|
+
// Heal mis-tagged migrations: any entry whose name matches a default
|
|
217
|
+
// server is a built-in, not a user entry — even if a previous migration
|
|
218
|
+
// tagged it _meta.kind="user". Re-tagging here lets the built-in toggle
|
|
219
|
+
// (disabledBuiltinMcp) actually take effect for these entries.
|
|
220
|
+
const defaultNames = new Set(baseServers.map(s => s.name));
|
|
221
|
+
const misTagged = Object.keys(userMcp).filter(n => defaultNames.has(n));
|
|
222
|
+
if (misTagged.length > 0) {
|
|
223
|
+
const cleaned = {};
|
|
224
|
+
for (const [name, e] of Object.entries(userMcp)) {
|
|
225
|
+
if (defaultNames.has(name))
|
|
226
|
+
continue;
|
|
227
|
+
cleaned[name] = { command: e.command, args: e.args, ...(e.env ? { env: e.env } : {}) };
|
|
228
|
+
}
|
|
229
|
+
try {
|
|
230
|
+
(0, projectMcp_1.saveProjectUserMcp)(root, cleaned);
|
|
231
|
+
log?.(`ConfigManager: re-tagged ${misTagged.length} mis-classified built-in entr${misTagged.length === 1 ? 'y' : 'ies'} (${misTagged.join(', ')})`);
|
|
232
|
+
userMcp = (0, projectMcp_1.loadProjectUserMcp)(root);
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
log?.(`ConfigManager: failed re-tagging built-ins: ${e}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
const builtinByName = new Map();
|
|
239
|
+
for (const s of baseServers) {
|
|
240
|
+
if (disabledBuiltins.includes(s.name))
|
|
241
|
+
continue;
|
|
242
|
+
builtinByName.set(s.name, s);
|
|
243
|
+
}
|
|
244
|
+
// User entries override built-ins (so a user can re-tune a default).
|
|
245
|
+
// Disabled entries (enabled:false) don't override — the builtin still syncs.
|
|
246
|
+
for (const [userName, userEntry] of Object.entries(userMcp)) {
|
|
247
|
+
if (userEntry.enabled === false)
|
|
248
|
+
continue;
|
|
249
|
+
builtinByName.delete(userName);
|
|
250
|
+
}
|
|
251
|
+
// Persist built-ins back to .mcp.json with _meta.kind="builtin" so the
|
|
252
|
+
// sidebar can tell them apart from user entries on the next read.
|
|
253
|
+
const builtinsForJson = {};
|
|
254
|
+
for (const [name, s] of builtinByName) {
|
|
255
|
+
builtinsForJson[name] = { command: s.command, args: s.args, ...(s.env ? { env: s.env } : {}) };
|
|
256
|
+
}
|
|
257
|
+
try {
|
|
258
|
+
(0, projectMcp_1.replaceProjectBuiltinMcp)(root, builtinsForJson);
|
|
259
|
+
}
|
|
260
|
+
catch (e) {
|
|
261
|
+
log?.(`ConfigManager: failed updating .mcp.json built-ins: ${e}`);
|
|
262
|
+
}
|
|
263
|
+
// Combined set fed to the legacy fan-out files (.vscode/mcp.json + opencode.json).
|
|
264
|
+
// Disabled user entries (enabled:false) are kept in .mcp.json for credential
|
|
265
|
+
// preservation but must NOT be propagated to other provider configs.
|
|
266
|
+
const servers = [
|
|
267
|
+
...builtinByName.values(),
|
|
268
|
+
...Object.entries(userMcp)
|
|
269
|
+
.filter(([, raw]) => raw.enabled !== false)
|
|
270
|
+
.map(([name, raw]) => ({
|
|
271
|
+
name,
|
|
272
|
+
command: raw.command,
|
|
273
|
+
args: Array.isArray(raw.args) ? raw.args : [],
|
|
274
|
+
...(raw.env && typeof raw.env === 'object' ? { env: raw.env } : {}),
|
|
275
|
+
tools: ['*'],
|
|
276
|
+
})),
|
|
277
|
+
];
|
|
278
|
+
// Strip any stale mcpServers we previously wrote into .claude/settings.json
|
|
279
|
+
// or .claude/settings.local.json so they don't shadow .mcp.json.
|
|
280
|
+
for (const stale of ['settings.json', 'settings.local.json']) {
|
|
281
|
+
const p = path.join(root, '.claude', stale);
|
|
282
|
+
if (!fs.existsSync(p))
|
|
283
|
+
continue;
|
|
284
|
+
try {
|
|
285
|
+
const cfg = JSON.parse(fs.readFileSync(p, 'utf8'));
|
|
286
|
+
if (cfg && typeof cfg.mcpServers === 'object' && cfg.mcpServers) {
|
|
287
|
+
delete cfg.mcpServers;
|
|
288
|
+
fs.writeFileSync(p, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
|
|
289
|
+
log?.(`ConfigManager: removed stale mcpServers from .claude/${stale}`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
catch { /* ignore */ }
|
|
293
|
+
}
|
|
294
|
+
// VS Code workspace MCP: .vscode/mcp.json
|
|
295
|
+
_mergeJson(path.join(root, '.vscode', 'mcp.json'), (cfg) => {
|
|
296
|
+
const srv = _obj(cfg['servers']);
|
|
297
|
+
for (const s of servers) {
|
|
298
|
+
srv[s.name] = { command: s.command, args: s.args, ...(s.env ? { env: s.env } : {}) };
|
|
299
|
+
}
|
|
300
|
+
cfg['servers'] = srv;
|
|
301
|
+
}, log, 'VS Code MCP (.vscode/mcp.json)');
|
|
302
|
+
// OpenCode project config: opencode.json (merged with existing permission key)
|
|
303
|
+
_mergeJson(path.join(root, 'opencode.json'), (cfg) => {
|
|
304
|
+
const mcp = _obj(cfg['mcp']);
|
|
305
|
+
for (const s of servers) {
|
|
306
|
+
const entry = {
|
|
307
|
+
type: 'local',
|
|
308
|
+
command: [s.command, ...s.args],
|
|
309
|
+
enabled: true,
|
|
310
|
+
};
|
|
311
|
+
if (s.env && Object.keys(s.env).length > 0) {
|
|
312
|
+
entry['environment'] = s.env;
|
|
313
|
+
}
|
|
314
|
+
mcp[s.name] = entry;
|
|
315
|
+
}
|
|
316
|
+
cfg['mcp'] = mcp;
|
|
317
|
+
}, log, 'OpenCode project MCP (opencode.json)');
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* @deprecated Use syncProjectMcpServers(root) instead.
|
|
321
|
+
* Kept for backwards compat — no longer called from applyAll.
|
|
322
|
+
*/
|
|
323
|
+
static syncDefaultMcpServers(log) {
|
|
324
|
+
mcpManager_1.McpServerManager.addDefaults(undefined, log);
|
|
325
|
+
}
|
|
326
|
+
// -------------------------------------------------------------------------
|
|
327
|
+
// Master entry point — call once at extension activation
|
|
328
|
+
// -------------------------------------------------------------------------
|
|
329
|
+
static applyAll(root, log) {
|
|
330
|
+
try {
|
|
331
|
+
ConfigManager.applyClaudePermissions(root, log);
|
|
332
|
+
}
|
|
333
|
+
catch (err) {
|
|
334
|
+
log?.(`ConfigManager: Claude permissions error: ${err}`);
|
|
335
|
+
}
|
|
336
|
+
try {
|
|
337
|
+
ConfigManager.applyOpenCodePermissions(root, log);
|
|
338
|
+
}
|
|
339
|
+
catch (err) {
|
|
340
|
+
log?.(`ConfigManager: OpenCode permissions error: ${err}`);
|
|
341
|
+
}
|
|
342
|
+
// Project-local MCP sync — no global config files are modified
|
|
343
|
+
if (root) {
|
|
344
|
+
try {
|
|
345
|
+
ConfigManager.syncProjectMcpServers(root, log);
|
|
346
|
+
}
|
|
347
|
+
catch (err) {
|
|
348
|
+
log?.(`ConfigManager: Project MCP sync error: ${err}`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.ConfigManager = ConfigManager;
|
|
354
|
+
// ---------------------------------------------------------------------------
|
|
355
|
+
// Internal helpers
|
|
356
|
+
// ---------------------------------------------------------------------------
|
|
357
|
+
function _obj(val) {
|
|
358
|
+
return (typeof val === 'object' && val !== null ? val : {});
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Move any user-defined `mcpServers` block from .autodev/settings.json into
|
|
362
|
+
* .mcp.json (one-time, idempotent — once stripped from settings it doesn't run
|
|
363
|
+
* again). Existing user entries already in .mcp.json take precedence.
|
|
364
|
+
*/
|
|
365
|
+
function _migrateLegacyMcpServers(root, legacy, log) {
|
|
366
|
+
try {
|
|
367
|
+
const existing = (0, projectMcp_1.loadProjectUserMcp)(root);
|
|
368
|
+
const merged = { ...existing };
|
|
369
|
+
let migratedCount = 0;
|
|
370
|
+
const defaultNames = new Set(mcpManager_1.DEFAULT_MCP_SERVERS.map(s => s.name).concat('memory'));
|
|
371
|
+
for (const [name, raw] of Object.entries(legacy)) {
|
|
372
|
+
if (!raw || typeof raw.command !== 'string')
|
|
373
|
+
continue;
|
|
374
|
+
if (raw.enabled === false)
|
|
375
|
+
continue; // disabled = drop, per the new model
|
|
376
|
+
if (defaultNames.has(name))
|
|
377
|
+
continue; // built-in — never a user entry
|
|
378
|
+
if (existing[name])
|
|
379
|
+
continue; // .mcp.json wins
|
|
380
|
+
merged[name] = { command: raw.command, args: raw.args, ...(raw.env ? { env: raw.env } : {}) };
|
|
381
|
+
migratedCount += 1;
|
|
382
|
+
}
|
|
383
|
+
if (migratedCount > 0) {
|
|
384
|
+
(0, projectMcp_1.saveProjectUserMcp)(root, merged);
|
|
385
|
+
log?.(`ConfigManager: migrated ${migratedCount} mcpServers entr${migratedCount === 1 ? 'y' : 'ies'} from .autodev/settings.json → .mcp.json`);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
catch (e) {
|
|
389
|
+
log?.(`ConfigManager: legacy MCP migration failed: ${e}`);
|
|
390
|
+
}
|
|
391
|
+
// Strip the field from settings.json regardless — the file is no longer the source.
|
|
392
|
+
try {
|
|
393
|
+
const settingsFile = path.join(root, '.autodev', 'settings.json');
|
|
394
|
+
if (!fs.existsSync(settingsFile))
|
|
395
|
+
return;
|
|
396
|
+
const cfg = JSON.parse(fs.readFileSync(settingsFile, 'utf8'));
|
|
397
|
+
if (cfg && 'mcpServers' in cfg) {
|
|
398
|
+
delete cfg['mcpServers'];
|
|
399
|
+
fs.writeFileSync(settingsFile, JSON.stringify(cfg, null, 2), 'utf8');
|
|
400
|
+
log?.('ConfigManager: stripped legacy mcpServers from .autodev/settings.json');
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
catch { /* ignore */ }
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Read a JSON file, apply a mutation, and write it back.
|
|
407
|
+
* Creates missing parent directories automatically.
|
|
408
|
+
*/
|
|
409
|
+
function _mergeJson(filePath, mutate, log, label) {
|
|
410
|
+
try {
|
|
411
|
+
const dir = path.dirname(filePath);
|
|
412
|
+
if (!fs.existsSync(dir)) {
|
|
413
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
414
|
+
}
|
|
415
|
+
let cfg = {};
|
|
416
|
+
if (fs.existsSync(filePath)) {
|
|
417
|
+
try {
|
|
418
|
+
cfg = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
419
|
+
}
|
|
420
|
+
catch { }
|
|
421
|
+
}
|
|
422
|
+
mutate(cfg);
|
|
423
|
+
fs.writeFileSync(filePath, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
|
|
424
|
+
log?.(`ConfigManager: applied ${label}`);
|
|
425
|
+
}
|
|
426
|
+
catch (err) {
|
|
427
|
+
log?.(`ConfigManager: failed ${label}: ${err}`);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
//# sourceMappingURL=configManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configManager.js","sourceRoot":"","sources":["../src/configManager.ts"],"names":[],"mappings":"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"}
|
package/out/connect.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Save a full WS URL (with token+endpoint query params) into the workspace settings. */
|
|
2
|
+
export declare function applyWsUrl(cwd: string, wsUrl: string): void;
|
|
3
|
+
/** Fetch credentials from a signed setup URL and apply them to the workspace. */
|
|
4
|
+
export declare function applySetupUrl(cwd: string, setupUrl: string): Promise<void>;
|
package/out/connect.js
CHANGED
|
@@ -41,8 +41,8 @@ const http = __importStar(require("http"));
|
|
|
41
41
|
const https = __importStar(require("https"));
|
|
42
42
|
const url_1 = require("url");
|
|
43
43
|
const logger_1 = require("./logger");
|
|
44
|
-
const
|
|
45
|
-
const
|
|
44
|
+
const settingsLoader_1 = require("./core/settingsLoader");
|
|
45
|
+
const hooksManager_1 = require("./hooksManager");
|
|
46
46
|
function configWritePath(cwd) {
|
|
47
47
|
return path.join(cwd, '.autodev', 'settings.json');
|
|
48
48
|
}
|
|
@@ -55,7 +55,7 @@ function saveSettings(cwd, settings) {
|
|
|
55
55
|
fs.writeFileSync(file, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
56
56
|
}
|
|
57
57
|
function loadOrDefault(cwd) {
|
|
58
|
-
return { ...
|
|
58
|
+
return { ...settingsLoader_1.SETTINGS_DEFAULTS, ...(0, settingsLoader_1.loadSettingsForRoot)(cwd) };
|
|
59
59
|
}
|
|
60
60
|
/** Fetch JSON from a URL using the built-in http/https module (no deps). */
|
|
61
61
|
function fetchJson(url, timeoutMs = 15_000) {
|
|
@@ -97,7 +97,7 @@ function fetchJson(url, timeoutMs = 15_000) {
|
|
|
97
97
|
}
|
|
98
98
|
/** Save a full WS URL (with token+endpoint query params) into the workspace settings. */
|
|
99
99
|
function applyWsUrl(cwd, wsUrl) {
|
|
100
|
-
const parsed = (0,
|
|
100
|
+
const parsed = (0, settingsLoader_1.parseWsUrl)(wsUrl);
|
|
101
101
|
if (!parsed) {
|
|
102
102
|
throw new Error(`--connect URL must be a ws:// or wss:// URL with token & endpoint params, got: ${wsUrl}`);
|
|
103
103
|
}
|
|
@@ -118,8 +118,8 @@ function applyWsUrl(cwd, wsUrl) {
|
|
|
118
118
|
}
|
|
119
119
|
function ensureHooksInstalled(cwd) {
|
|
120
120
|
try {
|
|
121
|
-
if (!(0,
|
|
122
|
-
(0,
|
|
121
|
+
if (!(0, hooksManager_1.areHooksInstalled)('project', cwd)) {
|
|
122
|
+
(0, hooksManager_1.installHooks)('project', cwd);
|
|
123
123
|
logger_1.log.gray(' hooks installed (Claude + Copilot)');
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -151,7 +151,7 @@ async function applySetupUrl(cwd, setupUrl) {
|
|
|
151
151
|
}
|
|
152
152
|
// Override the parsed values from the wsUrl (in case the server reports a
|
|
153
153
|
// different externally-visible base URL than the WS URL host).
|
|
154
|
-
const parsed = (0,
|
|
154
|
+
const parsed = (0, settingsLoader_1.parseWsUrl)(d.wsUrl);
|
|
155
155
|
if (parsed && !d.serverBaseUrl) {
|
|
156
156
|
settings.serverBaseUrl = parsed.serverBaseUrl;
|
|
157
157
|
}
|
package/out/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,gCAmBC;AAcD,sCA8BC;AAnJD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAC7B,6CAA+B;AAC/B,6BAA0B;AAC1B,qCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface IDisposable {
|
|
2
|
+
dispose(): void;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Watches a file path for change/create events.
|
|
6
|
+
* VS Code implementation uses `vscode.workspace.createFileSystemWatcher`.
|
|
7
|
+
* Node.js implementation uses `fs.watch` on the parent directory.
|
|
8
|
+
*/
|
|
9
|
+
export interface IFileWatcher {
|
|
10
|
+
watch(filePath: string, onChange: () => void): IDisposable;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Launches a shell command in a named context.
|
|
14
|
+
* VS Code implementation creates an integrated terminal.
|
|
15
|
+
* Node.js implementation uses `child_process.spawn`.
|
|
16
|
+
*/
|
|
17
|
+
export interface IProcessLauncher {
|
|
18
|
+
launch(cmd: string, name: string, cwd: string): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Watches the parent directory of `filePath` and fires `onChange` whenever
|
|
22
|
+
* the target file changes or is created. Handles non-existent directories
|
|
23
|
+
* gracefully (watcher is a no-op until the directory appears).
|
|
24
|
+
*/
|
|
25
|
+
export declare class NodeFileWatcher implements IFileWatcher {
|
|
26
|
+
watch(filePath: string, onChange: () => void): IDisposable;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Spawns a shell process (stdout/stderr inherited to the parent process).
|
|
30
|
+
* On Windows uses `powershell -Command`; on Unix uses `/bin/sh -c`.
|
|
31
|
+
*/
|
|
32
|
+
export declare class NodeProcessLauncher implements IProcessLauncher {
|
|
33
|
+
launch(cmd: string, name: string, cwd: string): void;
|
|
34
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NodeProcessLauncher = exports.NodeFileWatcher = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const child_process_1 = require("child_process");
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Node.js implementations
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
/**
|
|
44
|
+
* Watches the parent directory of `filePath` and fires `onChange` whenever
|
|
45
|
+
* the target file changes or is created. Handles non-existent directories
|
|
46
|
+
* gracefully (watcher is a no-op until the directory appears).
|
|
47
|
+
*/
|
|
48
|
+
class NodeFileWatcher {
|
|
49
|
+
watch(filePath, onChange) {
|
|
50
|
+
const dir = path.dirname(filePath);
|
|
51
|
+
const base = path.basename(filePath);
|
|
52
|
+
let watcher;
|
|
53
|
+
try {
|
|
54
|
+
if (fs.existsSync(dir)) {
|
|
55
|
+
watcher = fs.watch(dir, { persistent: false }, (_event, filename) => {
|
|
56
|
+
if (filename === base) {
|
|
57
|
+
onChange();
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch { /* directory may not exist yet — no-op watcher */ }
|
|
63
|
+
return { dispose: () => { try {
|
|
64
|
+
watcher?.close();
|
|
65
|
+
}
|
|
66
|
+
catch { /* ignore */ } } };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.NodeFileWatcher = NodeFileWatcher;
|
|
70
|
+
/**
|
|
71
|
+
* Spawns a shell process (stdout/stderr inherited to the parent process).
|
|
72
|
+
* On Windows uses `powershell -Command`; on Unix uses `/bin/sh -c`.
|
|
73
|
+
*/
|
|
74
|
+
class NodeProcessLauncher {
|
|
75
|
+
launch(cmd, name, cwd) {
|
|
76
|
+
const [shell, flag] = process.platform === 'win32'
|
|
77
|
+
? ['powershell', '-Command']
|
|
78
|
+
: ['/bin/sh', '-c'];
|
|
79
|
+
const proc = (0, child_process_1.spawn)(shell, [flag, cmd], { cwd, stdio: 'inherit', detached: false });
|
|
80
|
+
proc.on('error', (err) => console.error(`[${name}] spawn error:`, err.message));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.NodeProcessLauncher = NodeProcessLauncher;
|
|
84
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/core/adapters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAsC;AA6BtC,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E;;;;GAIG;AACH,MAAa,eAAe;IAC1B,KAAK,CAAC,QAAgB,EAAE,QAAoB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,OAAiC,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;oBAClE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;wBAAC,QAAQ,EAAE,CAAC;oBAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,iDAAiD,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;CACF;AAdD,0CAcC;AAED;;;GAGG;AACH,MAAa,mBAAmB;IAC9B,MAAM,CAAC,GAAW,EAAE,IAAY,EAAE,GAAW;QAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YAChD,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC;YAC5B,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AARD,kDAQC"}
|