@pellux/goodvibes-sdk 0.18.16 → 0.18.18
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/_internal/platform/agents/orchestrator-runner.d.ts +5 -4
- package/dist/_internal/platform/agents/orchestrator-runner.d.ts.map +1 -1
- package/dist/_internal/platform/agents/orchestrator-runner.js +9 -8
- package/dist/_internal/platform/agents/orchestrator.d.ts.map +1 -1
- package/dist/_internal/platform/agents/orchestrator.js +1 -0
- package/dist/_internal/platform/agents/wrfc-controller.d.ts +2 -1
- package/dist/_internal/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/_internal/platform/agents/wrfc-controller.js +6 -6
- package/dist/_internal/platform/agents/wrfc-workmap.d.ts +4 -1
- package/dist/_internal/platform/agents/wrfc-workmap.d.ts.map +1 -1
- package/dist/_internal/platform/agents/wrfc-workmap.js +4 -2
- package/dist/_internal/platform/automation/schedules.js +1 -1
- package/dist/_internal/platform/bookmarks/manager.d.ts +1 -1
- package/dist/_internal/platform/bookmarks/manager.js +1 -1
- package/dist/_internal/platform/config/manager.d.ts +3 -2
- package/dist/_internal/platform/config/manager.d.ts.map +1 -1
- package/dist/_internal/platform/config/manager.js +12 -7
- package/dist/_internal/platform/config/schema-domain-core.js +1 -1
- package/dist/_internal/platform/config/schema-domain-runtime.js +1 -1
- package/dist/_internal/platform/config/secrets.d.ts +6 -4
- package/dist/_internal/platform/config/secrets.d.ts.map +1 -1
- package/dist/_internal/platform/config/secrets.js +19 -16
- package/dist/_internal/platform/config/service-registry.d.ts +1 -1
- package/dist/_internal/platform/config/service-registry.js +1 -1
- package/dist/_internal/platform/config/subscription-providers.js +1 -1
- package/dist/_internal/platform/daemon/cli.js +1 -1
- package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade-composition.js +4 -0
- package/dist/_internal/platform/daemon/service-manager.d.ts +8 -0
- package/dist/_internal/platform/daemon/service-manager.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/service-manager.js +41 -27
- package/dist/_internal/platform/discovery/mcp-scanner.d.ts +3 -1
- package/dist/_internal/platform/discovery/mcp-scanner.d.ts.map +1 -1
- package/dist/_internal/platform/discovery/mcp-scanner.js +6 -5
- package/dist/_internal/platform/discovery/scanner.d.ts +3 -1
- package/dist/_internal/platform/discovery/scanner.d.ts.map +1 -1
- package/dist/_internal/platform/discovery/scanner.js +3 -2
- package/dist/_internal/platform/input/keybindings.d.ts +3 -1
- package/dist/_internal/platform/input/keybindings.d.ts.map +1 -1
- package/dist/_internal/platform/input/keybindings.js +7 -3
- package/dist/_internal/platform/intelligence/config.d.ts +1 -1
- package/dist/_internal/platform/intelligence/config.d.ts.map +1 -1
- package/dist/_internal/platform/intelligence/config.js +8 -4
- package/dist/_internal/platform/intelligence/facade.d.ts +1 -1
- package/dist/_internal/platform/intelligence/facade.js +2 -2
- package/dist/_internal/platform/plugins/manager.d.ts.map +1 -1
- package/dist/_internal/platform/plugins/manager.js +5 -3
- package/dist/_internal/platform/profiles/manager.d.ts +1 -1
- package/dist/_internal/platform/profiles/manager.js +1 -1
- package/dist/_internal/platform/providers/anthropic-compat.d.ts +1 -1
- package/dist/_internal/platform/providers/anthropic-compat.js +1 -1
- package/dist/_internal/platform/providers/custom-loader.d.ts +1 -1
- package/dist/_internal/platform/providers/registry.d.ts +2 -2
- package/dist/_internal/platform/providers/registry.js +2 -2
- package/dist/_internal/platform/runtime/bootstrap-background.d.ts +2 -0
- package/dist/_internal/platform/runtime/bootstrap-background.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/bootstrap-background.js +6 -6
- package/dist/_internal/platform/runtime/ecosystem/catalog.js +6 -6
- package/dist/_internal/platform/runtime/guidance.d.ts +1 -0
- package/dist/_internal/platform/runtime/guidance.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/guidance.js +6 -2
- package/dist/_internal/platform/runtime/remote/distributed-runtime-manager.d.ts +1 -1
- package/dist/_internal/platform/runtime/remote/distributed-runtime-manager.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/remote/distributed-runtime-manager.js +4 -3
- package/dist/_internal/platform/runtime/sandbox/provisioning.d.ts +7 -4
- package/dist/_internal/platform/runtime/sandbox/provisioning.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/sandbox/provisioning.js +9 -8
- package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/services.js +6 -4
- package/dist/_internal/platform/runtime/session-persistence.d.ts +1 -0
- package/dist/_internal/platform/runtime/session-persistence.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/session-persistence.js +4 -4
- package/dist/_internal/platform/runtime/surface-root.d.ts +4 -0
- package/dist/_internal/platform/runtime/surface-root.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/surface-root.js +15 -0
- package/dist/_internal/platform/runtime/worktree/registry.d.ts +5 -1
- package/dist/_internal/platform/runtime/worktree/registry.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/worktree/registry.js +20 -17
- package/dist/_internal/platform/scheduler/scheduler.d.ts +1 -1
- package/dist/_internal/platform/scheduler/scheduler.js +1 -1
- package/dist/_internal/platform/sessions/manager.d.ts +5 -2
- package/dist/_internal/platform/sessions/manager.d.ts.map +1 -1
- package/dist/_internal/platform/sessions/manager.js +4 -3
- package/dist/_internal/platform/sessions/orchestration/registry.d.ts +4 -5
- package/dist/_internal/platform/sessions/orchestration/registry.d.ts.map +1 -1
- package/dist/_internal/platform/sessions/orchestration/registry.js +7 -8
- package/dist/_internal/platform/tools/fetch/schema.d.ts +1 -1
- package/dist/_internal/platform/tools/fetch/schema.js +1 -1
- package/dist/_internal/platform/tools/index.js +6 -6
- package/dist/_internal/platform/tools/packet/index.d.ts +4 -1
- package/dist/_internal/platform/tools/packet/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/packet/index.js +5 -2
- package/dist/_internal/platform/tools/query/index.d.ts +4 -1
- package/dist/_internal/platform/tools/query/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/query/index.js +5 -2
- package/dist/_internal/platform/tools/registry-tool/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/registry-tool/index.js +2 -4
- package/dist/_internal/platform/tools/registry-tool/skill-loader.d.ts.map +1 -1
- package/dist/_internal/platform/tools/registry-tool/skill-loader.js +1 -2
- package/dist/_internal/platform/tools/team/index.d.ts +3 -0
- package/dist/_internal/platform/tools/team/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/team/index.js +124 -119
- package/dist/_internal/platform/tools/worklist/index.d.ts +3 -0
- package/dist/_internal/platform/tools/worklist/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/worklist/index.js +108 -103
- package/dist/_internal/platform/watchers/store.d.ts.map +1 -1
- package/dist/_internal/platform/watchers/store.js +3 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/facade-composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,6 +96,10 @@ export function resolveDaemonFacadeRuntime(config, fallbackConfigManager) {
|
|
|
96
96
|
platformServiceManager: new PlatformServiceManager(resolvedConfigManager, {
|
|
97
97
|
workingDirectory: runtimeServices.workingDirectory,
|
|
98
98
|
homeDirectory: runtimeServices.homeDirectory,
|
|
99
|
+
surfaceRoot: 'goodvibes',
|
|
100
|
+
binaryBaseName: 'goodvibes',
|
|
101
|
+
defaultServiceName: 'goodvibes',
|
|
102
|
+
defaultServiceDescription: 'goodvibes omnichannel daemon host',
|
|
99
103
|
}),
|
|
100
104
|
distributedRuntime: runtimeServices.distributedRuntime,
|
|
101
105
|
voiceService: runtimeServices.voiceService,
|
|
@@ -35,6 +35,10 @@ interface ManagedServicePaths {
|
|
|
35
35
|
export interface ManagedServiceManagerOptions extends ManagedServicePaths {
|
|
36
36
|
readonly definitionOverride?: ManagedServiceDefinition;
|
|
37
37
|
readonly actionRunner?: (command: string, args: readonly string[]) => ManagedServiceActionResult;
|
|
38
|
+
readonly surfaceRoot?: string;
|
|
39
|
+
readonly binaryBaseName?: string;
|
|
40
|
+
readonly defaultServiceName?: string;
|
|
41
|
+
readonly defaultServiceDescription?: string;
|
|
38
42
|
}
|
|
39
43
|
export declare class PlatformServiceManager {
|
|
40
44
|
private readonly configManager;
|
|
@@ -42,6 +46,10 @@ export declare class PlatformServiceManager {
|
|
|
42
46
|
private readonly homeDirectory;
|
|
43
47
|
private readonly definitionOverride?;
|
|
44
48
|
private readonly actionRunner?;
|
|
49
|
+
private readonly surfaceRoot?;
|
|
50
|
+
private readonly binaryBaseName?;
|
|
51
|
+
private readonly defaultServiceName?;
|
|
52
|
+
private readonly defaultServiceDescription?;
|
|
45
53
|
constructor(configManager: ConfigManager, options: ManagedServiceManagerOptions);
|
|
46
54
|
private getPaths;
|
|
47
55
|
status(): ManagedServiceStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/service-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"service-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/daemon/service-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { existsSync, mkdirSync, openSync, readFileSync, rmSync, writeFileSync }
|
|
|
2
2
|
import { dirname, join, resolve } from 'node:path';
|
|
3
3
|
import { spawnSync, spawn } from 'node:child_process';
|
|
4
4
|
import { ConfigManager } from '../config/manager.js';
|
|
5
|
+
import { resolveScopedDirectory } from '../runtime/surface-root.js';
|
|
5
6
|
function detectPlatform(platform) {
|
|
6
7
|
switch (platform) {
|
|
7
8
|
case 'systemd':
|
|
@@ -20,13 +21,14 @@ function detectPlatform(platform) {
|
|
|
20
21
|
return 'manual';
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
function buildDefaultDefinition(configManager, workingDirectory) {
|
|
24
|
-
const
|
|
24
|
+
function buildDefaultDefinition(configManager, workingDirectory, options) {
|
|
25
|
+
const binaryBaseName = options.binaryBaseName?.trim() || 'daemon';
|
|
26
|
+
const compiledBinary = resolve(workingDirectory, 'dist', process.platform === 'win32' ? `${binaryBaseName}-windows.exe` : binaryBaseName);
|
|
25
27
|
const useCompiledBinary = existsSync(compiledBinary);
|
|
26
|
-
const serviceName =
|
|
28
|
+
const serviceName = resolveServiceName(configManager, options.defaultServiceName);
|
|
27
29
|
return {
|
|
28
30
|
name: serviceName,
|
|
29
|
-
description:
|
|
31
|
+
description: options.defaultServiceDescription?.trim() || `${serviceName} daemon host`,
|
|
30
32
|
workingDirectory,
|
|
31
33
|
command: useCompiledBinary ? compiledBinary : process.execPath,
|
|
32
34
|
args: useCompiledBinary ? [] : ['run', resolve(workingDirectory, 'src', 'daemon', 'cli.ts')],
|
|
@@ -38,14 +40,14 @@ function buildDefaultDefinition(configManager, workingDirectory) {
|
|
|
38
40
|
restartOnFailure: Boolean(configManager.get('service.restartOnFailure')),
|
|
39
41
|
};
|
|
40
42
|
}
|
|
41
|
-
function resolveServiceName(configManager) {
|
|
42
|
-
return String(configManager.get('service.serviceName') ??
|
|
43
|
+
function resolveServiceName(configManager, defaultServiceName = 'daemon') {
|
|
44
|
+
return String(configManager.get('service.serviceName') ?? defaultServiceName).trim() || defaultServiceName;
|
|
43
45
|
}
|
|
44
|
-
function resolveLogPath(configManager, platform, workingDirectory) {
|
|
46
|
+
function resolveLogPath(configManager, platform, workingDirectory, surfaceRoot) {
|
|
45
47
|
const configured = String(configManager.get('service.logPath') ?? '').trim();
|
|
46
48
|
if (configured)
|
|
47
49
|
return resolve(workingDirectory, configured);
|
|
48
|
-
return
|
|
50
|
+
return resolveScopedDirectory(workingDirectory, surfaceRoot, 'service', `${platform}.log`);
|
|
49
51
|
}
|
|
50
52
|
function renderSystemdUnit(definition) {
|
|
51
53
|
const envLines = Object.entries(definition.env)
|
|
@@ -104,27 +106,27 @@ function renderWindowsCommand(definition) {
|
|
|
104
106
|
const commandLine = [definition.command, ...definition.args].join(' ');
|
|
105
107
|
return `schtasks /Create /SC ONLOGON /TN "${taskName}" /TR "${commandLine}" /F`;
|
|
106
108
|
}
|
|
107
|
-
function definitionPath(platform, serviceName, paths) {
|
|
109
|
+
function definitionPath(platform, serviceName, paths, surfaceRoot) {
|
|
108
110
|
switch (platform) {
|
|
109
111
|
case 'systemd':
|
|
110
112
|
return join(paths.homeDirectory, '.config', 'systemd', 'user', `${serviceName}.service`);
|
|
111
113
|
case 'launchd':
|
|
112
114
|
return join(paths.homeDirectory, 'Library', 'LaunchAgents', `${serviceName}.plist`);
|
|
113
115
|
case 'windows':
|
|
114
|
-
return
|
|
116
|
+
return resolveScopedDirectory(paths.workingDirectory, surfaceRoot, 'service', 'windows-task.txt');
|
|
115
117
|
case 'manual':
|
|
116
118
|
default:
|
|
117
|
-
return
|
|
119
|
+
return resolveScopedDirectory(paths.workingDirectory, surfaceRoot, 'service', 'manual-service.txt');
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
|
-
function pidFilePath(platform, workingDirectory) {
|
|
122
|
+
function pidFilePath(platform, workingDirectory, surfaceRoot) {
|
|
121
123
|
switch (platform) {
|
|
122
124
|
case 'systemd':
|
|
123
125
|
case 'launchd':
|
|
124
126
|
case 'windows':
|
|
125
127
|
case 'manual':
|
|
126
128
|
default:
|
|
127
|
-
return
|
|
129
|
+
return resolveScopedDirectory(workingDirectory, surfaceRoot, 'service', `${platform}.pid`);
|
|
128
130
|
}
|
|
129
131
|
}
|
|
130
132
|
function suggestedCommands(platform, path, serviceName) {
|
|
@@ -139,7 +141,7 @@ function suggestedCommands(platform, path, serviceName) {
|
|
|
139
141
|
return [
|
|
140
142
|
`launchctl unload ${path} || true`,
|
|
141
143
|
`launchctl load ${path}`,
|
|
142
|
-
`launchctl list | grep
|
|
144
|
+
`launchctl list | grep ${serviceName}`,
|
|
143
145
|
];
|
|
144
146
|
case 'windows':
|
|
145
147
|
return [
|
|
@@ -160,12 +162,20 @@ export class PlatformServiceManager {
|
|
|
160
162
|
homeDirectory;
|
|
161
163
|
definitionOverride;
|
|
162
164
|
actionRunner;
|
|
165
|
+
surfaceRoot;
|
|
166
|
+
binaryBaseName;
|
|
167
|
+
defaultServiceName;
|
|
168
|
+
defaultServiceDescription;
|
|
163
169
|
constructor(configManager, options) {
|
|
164
170
|
this.configManager = configManager;
|
|
165
171
|
this.workingDirectory = resolve(options.workingDirectory);
|
|
166
172
|
this.homeDirectory = resolve(options.homeDirectory);
|
|
167
173
|
this.definitionOverride = options.definitionOverride;
|
|
168
174
|
this.actionRunner = options.actionRunner;
|
|
175
|
+
this.surfaceRoot = options.surfaceRoot;
|
|
176
|
+
this.binaryBaseName = options.binaryBaseName;
|
|
177
|
+
this.defaultServiceName = options.defaultServiceName;
|
|
178
|
+
this.defaultServiceDescription = options.defaultServiceDescription;
|
|
169
179
|
}
|
|
170
180
|
getPaths() {
|
|
171
181
|
return {
|
|
@@ -175,10 +185,10 @@ export class PlatformServiceManager {
|
|
|
175
185
|
}
|
|
176
186
|
status() {
|
|
177
187
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
178
|
-
const serviceName = resolveServiceName(this.configManager);
|
|
179
|
-
const path = definitionPath(platform, serviceName, this.getPaths());
|
|
188
|
+
const serviceName = resolveServiceName(this.configManager, this.defaultServiceName);
|
|
189
|
+
const path = definitionPath(platform, serviceName, this.getPaths(), this.surfaceRoot);
|
|
180
190
|
const installed = existsSync(path);
|
|
181
|
-
const pidPath = pidFilePath(platform, this.workingDirectory);
|
|
191
|
+
const pidPath = pidFilePath(platform, this.workingDirectory, this.surfaceRoot);
|
|
182
192
|
const pid = existsSync(pidPath) ? this.readPid(pidPath) : undefined;
|
|
183
193
|
const running = pid !== undefined ? this.isPidRunning(pid) : false;
|
|
184
194
|
if (!running && existsSync(pidPath)) {
|
|
@@ -192,7 +202,7 @@ export class PlatformServiceManager {
|
|
|
192
202
|
autostart: Boolean(this.configManager.get('service.autostart')),
|
|
193
203
|
running,
|
|
194
204
|
...(pid !== undefined && running ? { pid } : {}),
|
|
195
|
-
logPath: resolveLogPath(this.configManager, platform, this.workingDirectory),
|
|
205
|
+
logPath: resolveLogPath(this.configManager, platform, this.workingDirectory, this.surfaceRoot),
|
|
196
206
|
commandPreview: installed ? path : [definition.command, ...definition.args].join(' '),
|
|
197
207
|
contents: installed ? readFileSync(path, 'utf-8') : undefined,
|
|
198
208
|
suggestedCommands: suggestedCommands(platform, path, serviceName),
|
|
@@ -201,9 +211,9 @@ export class PlatformServiceManager {
|
|
|
201
211
|
}
|
|
202
212
|
install() {
|
|
203
213
|
const platform = detectPlatform(String(this.configManager.get('service.platform')));
|
|
204
|
-
const serviceName = resolveServiceName(this.configManager);
|
|
214
|
+
const serviceName = resolveServiceName(this.configManager, this.defaultServiceName);
|
|
205
215
|
const definition = this.resolveDefinition();
|
|
206
|
-
const path = definitionPath(platform, serviceName, this.getPaths());
|
|
216
|
+
const path = definitionPath(platform, serviceName, this.getPaths(), this.surfaceRoot);
|
|
207
217
|
const contents = platform === 'systemd'
|
|
208
218
|
? renderSystemdUnit(definition)
|
|
209
219
|
: platform === 'launchd'
|
|
@@ -223,7 +233,7 @@ export class PlatformServiceManager {
|
|
|
223
233
|
if (existsSync(status.path)) {
|
|
224
234
|
rmSync(status.path, { force: true });
|
|
225
235
|
}
|
|
226
|
-
const pidPath = pidFilePath(status.platform, this.workingDirectory);
|
|
236
|
+
const pidPath = pidFilePath(status.platform, this.workingDirectory, this.surfaceRoot);
|
|
227
237
|
if (existsSync(pidPath)) {
|
|
228
238
|
rmSync(pidPath, { force: true });
|
|
229
239
|
}
|
|
@@ -255,7 +265,11 @@ export class PlatformServiceManager {
|
|
|
255
265
|
return this.runPlatformAction(platform, 'restart');
|
|
256
266
|
}
|
|
257
267
|
resolveDefinition() {
|
|
258
|
-
return this.definitionOverride ?? buildDefaultDefinition(this.configManager, this.workingDirectory
|
|
268
|
+
return this.definitionOverride ?? buildDefaultDefinition(this.configManager, this.workingDirectory, {
|
|
269
|
+
binaryBaseName: this.binaryBaseName,
|
|
270
|
+
defaultServiceName: this.defaultServiceName,
|
|
271
|
+
defaultServiceDescription: this.defaultServiceDescription,
|
|
272
|
+
});
|
|
259
273
|
}
|
|
260
274
|
startManual(platform, action = 'start') {
|
|
261
275
|
const current = this.status();
|
|
@@ -266,8 +280,8 @@ export class PlatformServiceManager {
|
|
|
266
280
|
};
|
|
267
281
|
}
|
|
268
282
|
const definition = this.resolveDefinition();
|
|
269
|
-
const logPath = resolveLogPath(this.configManager, platform, this.workingDirectory);
|
|
270
|
-
const pidPath = pidFilePath(platform, this.workingDirectory);
|
|
283
|
+
const logPath = resolveLogPath(this.configManager, platform, this.workingDirectory, this.surfaceRoot);
|
|
284
|
+
const pidPath = pidFilePath(platform, this.workingDirectory, this.surfaceRoot);
|
|
271
285
|
mkdirSync(dirname(pidPath), { recursive: true });
|
|
272
286
|
mkdirSync(dirname(logPath), { recursive: true });
|
|
273
287
|
const stdoutFd = openSync(logPath, 'a');
|
|
@@ -290,7 +304,7 @@ export class PlatformServiceManager {
|
|
|
290
304
|
};
|
|
291
305
|
}
|
|
292
306
|
stopManual(platform) {
|
|
293
|
-
const pidPath = pidFilePath(platform, this.workingDirectory);
|
|
307
|
+
const pidPath = pidFilePath(platform, this.workingDirectory, this.surfaceRoot);
|
|
294
308
|
const pid = existsSync(pidPath) ? this.readPid(pidPath) : undefined;
|
|
295
309
|
if (pid !== undefined && this.isPidRunning(pid)) {
|
|
296
310
|
try {
|
|
@@ -309,8 +323,8 @@ export class PlatformServiceManager {
|
|
|
309
323
|
};
|
|
310
324
|
}
|
|
311
325
|
runPlatformAction(platform, action) {
|
|
312
|
-
const serviceName = resolveServiceName(this.configManager);
|
|
313
|
-
const path = definitionPath(platform, serviceName, this.getPaths());
|
|
326
|
+
const serviceName = resolveServiceName(this.configManager, this.defaultServiceName);
|
|
327
|
+
const path = definitionPath(platform, serviceName, this.getPaths(), this.surfaceRoot);
|
|
314
328
|
const command = platform === 'systemd'
|
|
315
329
|
? ['systemctl', '--user', action === 'start' ? 'enable' : action, ...(action === 'start' ? ['--now'] : []), `${serviceName}.service`]
|
|
316
330
|
: platform === 'launchd'
|
|
@@ -6,7 +6,9 @@ export interface McpDiscoveryResult {
|
|
|
6
6
|
/** Number of locations scanned */
|
|
7
7
|
locationsScanned: number;
|
|
8
8
|
}
|
|
9
|
-
export type McpDiscoveryRoots = Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'
|
|
9
|
+
export type McpDiscoveryRoots = Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'> & {
|
|
10
|
+
readonly surfaceRoot: string;
|
|
11
|
+
};
|
|
10
12
|
/**
|
|
11
13
|
* Scan all common MCP server locations and return suggestions for
|
|
12
14
|
* servers not already registered in the given set of known server names.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-scanner.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/discovery/mcp-scanner.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-scanner.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/discovery/mcp-scanner.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,eAAe,CAAC,GAAG;IAC7F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AA4KF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,eAAe,GAAE,GAAG,CAAC,MAAM,CAAa,GACvC,OAAO,CAAC,kBAAkB,CAAC,CAiC7B"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Scan locations (in order):
|
|
8
8
|
* 1. Project .mcp/ directory — looks for mcp.json or index.js/index.ts scripts
|
|
9
|
-
* 2. ~/.goodvibes
|
|
9
|
+
* 2. ~/.goodvibes/<surface>/mcp/ — user-global MCP server definitions
|
|
10
10
|
* 3. Locally installed npx MCP packages (node_modules/.bin/@modelcontextprotocol/*)
|
|
11
11
|
*
|
|
12
12
|
* Returns suggested McpServerConfig[] for servers not already in the registry.
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import { existsSync, readdirSync, statSync } from 'fs';
|
|
15
15
|
import { join } from 'path';
|
|
16
16
|
import { logger } from '../utils/logger.js';
|
|
17
|
+
import { requireSurfaceRoot } from '../runtime/surface-root.js';
|
|
17
18
|
import { summarizeError } from '../utils/error-display.js';
|
|
18
19
|
/**
|
|
19
20
|
* Well-known npx-installable MCP server package names.
|
|
@@ -111,13 +112,13 @@ function scanProjectMcpDir(roots, knownNames) {
|
|
|
111
112
|
return suggestions;
|
|
112
113
|
}
|
|
113
114
|
/**
|
|
114
|
-
* Scan ~/.goodvibes
|
|
115
|
+
* Scan ~/.goodvibes/<surface>/mcp/ for user-global server scripts.
|
|
115
116
|
* Looks for:
|
|
116
117
|
* - <name>/index.js, <name>/server.js, etc.
|
|
117
118
|
* - <name>.js, <name>.ts standalone scripts
|
|
118
119
|
*/
|
|
119
120
|
function scanGoodvibesMcpDir(roots, knownNames) {
|
|
120
|
-
const mcpDir = join(roots.homeDirectory, '.goodvibes', '
|
|
121
|
+
const mcpDir = join(roots.homeDirectory, '.goodvibes', requireSurfaceRoot(roots.surfaceRoot, 'MCP discovery surfaceRoot'), 'mcp');
|
|
121
122
|
if (!existsSync(mcpDir))
|
|
122
123
|
return [];
|
|
123
124
|
const suggestions = [];
|
|
@@ -157,7 +158,7 @@ function scanGoodvibesMcpDir(roots, knownNames) {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
catch (err) {
|
|
160
|
-
logger.debug('[mcp-scanner] Failed to read
|
|
161
|
+
logger.debug('[mcp-scanner] Failed to read surface MCP directory', { error: summarizeError(err) });
|
|
161
162
|
}
|
|
162
163
|
return suggestions;
|
|
163
164
|
}
|
|
@@ -204,7 +205,7 @@ export async function scanMcpServers(roots, registeredNames = new Set()) {
|
|
|
204
205
|
// 1. Project .mcp/ directory
|
|
205
206
|
locationsScanned++;
|
|
206
207
|
addSuggestions(scanProjectMcpDir(roots, registeredNames));
|
|
207
|
-
// 2. ~/.goodvibes
|
|
208
|
+
// 2. ~/.goodvibes/<surface>/mcp/ user-global directory
|
|
208
209
|
locationsScanned++;
|
|
209
210
|
addSuggestions(scanGoodvibesMcpDir(roots, registeredNames));
|
|
210
211
|
// 3. Locally installed npx MCP packages
|
|
@@ -16,7 +16,9 @@ export interface ScanResult {
|
|
|
16
16
|
scannedPorts: number;
|
|
17
17
|
durationMs: number;
|
|
18
18
|
}
|
|
19
|
-
type DiscoveryRoots = Pick<ShellPathService, 'homeDirectory'
|
|
19
|
+
type DiscoveryRoots = Pick<ShellPathService, 'homeDirectory'> & {
|
|
20
|
+
readonly surfaceRoot: string;
|
|
21
|
+
};
|
|
20
22
|
/** Load previously discovered providers from disk. Returns empty array if file doesn't exist. */
|
|
21
23
|
export declare function loadPersistedProviders(roots: DiscoveryRoots): DiscoveredServer[];
|
|
22
24
|
/** Save discovered providers to disk. Merges with existing entries keyed by host:port. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/discovery/scanner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/discovery/scanner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAOlE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEtJ,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,KAAK,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAUF,iGAAiG;AACjG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,EAAE,CAiBhF;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CA+BzF;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAcrH;AAoMD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0KjC;AA4MD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACtD,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkC7B;AAMD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CASzD;AAED;;;GAGG;AACH,wBAAsB,IAAI,CACxB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACtD,OAAO,CAAC,UAAU,CAAC,CA8BrB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { networkInterfaces } from 'node:os';
|
|
2
2
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { dirname } from 'node:path';
|
|
4
4
|
import { logger } from '../utils/logger.js';
|
|
5
5
|
import { discoverContextWindows } from '../providers/context-discovery.js';
|
|
6
|
+
import { resolveSurfaceDirectory } from '../runtime/surface-root.js';
|
|
6
7
|
function getPersistedPath(roots) {
|
|
7
|
-
return
|
|
8
|
+
return resolveSurfaceDirectory(roots.homeDirectory, roots.surfaceRoot, 'discovered-providers.json');
|
|
8
9
|
}
|
|
9
10
|
/** Load previously discovered providers from disk. Returns empty array if file doesn't exist. */
|
|
10
11
|
export function loadPersistedProviders(roots) {
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* KeybindingsManager — loads and merges keyboard shortcut configuration.
|
|
3
3
|
*
|
|
4
4
|
* Default bindings are hardcoded here. Users can override any binding by
|
|
5
|
-
* creating ~/.goodvibes
|
|
5
|
+
* creating a surface keybindings file under ~/.goodvibes/<surface>/keybindings.json
|
|
6
|
+
* or by passing an explicit configPath.
|
|
6
7
|
*
|
|
7
8
|
* Config file format example:
|
|
8
9
|
* {
|
|
@@ -30,6 +31,7 @@ export interface KeybindingsManagerOptions {
|
|
|
30
31
|
readonly configPath?: string;
|
|
31
32
|
readonly userRoot?: string;
|
|
32
33
|
readonly homeDirectory?: string;
|
|
34
|
+
readonly surfaceRoot?: string;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* KeybindingsManager — owns the resolved keybinding table.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keybindings.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/input/keybindings.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"keybindings.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/input/keybindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,sDAAsD;AACtD,MAAM,WAAW,QAAQ;IACvB,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,MAAM,SAAS,GACjB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,aAAa,GACb,uBAAuB,GACvB,qBAAqB,GACrB,WAAW,GACX,cAAc,GACd,MAAM,GACN,MAAM,GACN,OAAO,GACP,cAAc,CAAC;AAEnB,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAuBzD,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAuB7D,CAAC;AAKF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAgBD;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,yBAAyB;IAM9C,OAAO,CAAC,aAAa;IAQrB;;;;OAIG;IACH,YAAY,IAAI,IAAI;IA4BpB,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,OAAO,CACL,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9E,OAAO;IAMV,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACH,MAAM,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ/E;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAMxC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IASpC,mCAAmC;IACnC,aAAa,IAAI,MAAM;CAGxB"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* KeybindingsManager — loads and merges keyboard shortcut configuration.
|
|
3
3
|
*
|
|
4
4
|
* Default bindings are hardcoded here. Users can override any binding by
|
|
5
|
-
* creating ~/.goodvibes
|
|
5
|
+
* creating a surface keybindings file under ~/.goodvibes/<surface>/keybindings.json
|
|
6
|
+
* or by passing an explicit configPath.
|
|
6
7
|
*
|
|
7
8
|
* Config file format example:
|
|
8
9
|
* {
|
|
@@ -13,8 +14,8 @@
|
|
|
13
14
|
* Each value is a KeyCombo or an array of KeyCombos for multi-binding support.
|
|
14
15
|
*/
|
|
15
16
|
import { readFileSync, existsSync } from 'node:fs';
|
|
16
|
-
import { join } from 'node:path';
|
|
17
17
|
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
18
|
+
import { resolveSurfaceDirectory } from '../runtime/surface-root.js';
|
|
18
19
|
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
19
20
|
/** Human-readable description for each action (used in /keybindings display). */
|
|
20
21
|
export const ACTION_DESCRIPTIONS = {
|
|
@@ -74,7 +75,10 @@ function resolveKeybindingsPath(options) {
|
|
|
74
75
|
if (!userRoot) {
|
|
75
76
|
throw new Error('KeybindingsManager requires configPath or an explicit userRoot/homeDirectory.');
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
if (!options?.surfaceRoot) {
|
|
79
|
+
throw new Error('KeybindingsManager requires surfaceRoot when deriving a config path.');
|
|
80
|
+
}
|
|
81
|
+
return resolveSurfaceDirectory(userRoot, options.surfaceRoot, 'keybindings.json');
|
|
78
82
|
}
|
|
79
83
|
/**
|
|
80
84
|
* KeybindingsManager — owns the resolved keybinding table.
|
|
@@ -16,7 +16,7 @@ export interface LanguageConfig {
|
|
|
16
16
|
args: string[];
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
export type IntelligenceRoots = Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'
|
|
19
|
+
export type IntelligenceRoots = Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'> & Partial<Pick<ShellPathService, 'resolveProjectPath' | 'resolveUserPath'>>;
|
|
20
20
|
/**
|
|
21
21
|
* Built-in defaults for common languages.
|
|
22
22
|
* These are used when no user or project override exists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/intelligence/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjD,CAAC;IACF,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/intelligence/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjD,CAAC;IACF,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,CAAC;AAMzK;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAsD/D;AAuBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA4BzF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,cAAc,GAAG,IAAI,CAEjG"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Per-language configuration for CodeIntelligence.
|
|
3
3
|
*
|
|
4
4
|
* Config is loaded from (in priority order, higher overrides lower):
|
|
5
|
-
* 1.
|
|
6
|
-
* 2.
|
|
5
|
+
* 1. configured project languages/{langId}.json path
|
|
6
|
+
* 2. configured user languages/{langId}.json path
|
|
7
7
|
* 3. Built-in defaults (this file)
|
|
8
8
|
*/
|
|
9
9
|
import { existsSync, readFileSync } from 'fs';
|
|
@@ -88,8 +88,12 @@ function readConfigFile(filePath) {
|
|
|
88
88
|
*/
|
|
89
89
|
export function loadLanguageConfigs(roots) {
|
|
90
90
|
const result = getDefaultConfigs();
|
|
91
|
-
const userDir =
|
|
92
|
-
|
|
91
|
+
const userDir = roots.resolveUserPath
|
|
92
|
+
? roots.resolveUserPath('languages')
|
|
93
|
+
: join(roots.homeDirectory, '.goodvibes', 'languages');
|
|
94
|
+
const projectDir = roots.resolveProjectPath
|
|
95
|
+
? roots.resolveProjectPath('languages')
|
|
96
|
+
: join(roots.workingDirectory, '.goodvibes', 'languages');
|
|
93
97
|
// Collect all known language IDs (from defaults + scan would go here).
|
|
94
98
|
// For now we apply overrides only for IDs we already know about.
|
|
95
99
|
for (const [langId, defaultCfg] of result.entries()) {
|
|
@@ -32,7 +32,7 @@ export declare class CodeIntelligence {
|
|
|
32
32
|
/**
|
|
33
33
|
* Initialize all services. Call once at startup.
|
|
34
34
|
* Loads language configs and registers LSP server commands with LspService
|
|
35
|
-
* so that user/project overrides in
|
|
35
|
+
* so that user/project overrides in the configured languages directory are respected.
|
|
36
36
|
*/
|
|
37
37
|
initialize(): Promise<void>;
|
|
38
38
|
/** Shutdown all owned services for this facade instance. */
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - LSP is optional; falls back to tree-sitter where possible.
|
|
7
7
|
* - Tree-sitter is optional; falls back to empty arrays/null.
|
|
8
8
|
* - On initialization, language configs are read and registered with LspService
|
|
9
|
-
* so user/project overrides in
|
|
9
|
+
* so user/project overrides in the configured languages directory take effect.
|
|
10
10
|
*/
|
|
11
11
|
import { resolve } from 'path';
|
|
12
12
|
import { pathToFileURL, fileURLToPath } from 'url';
|
|
@@ -52,7 +52,7 @@ export class CodeIntelligence {
|
|
|
52
52
|
/**
|
|
53
53
|
* Initialize all services. Call once at startup.
|
|
54
54
|
* Loads language configs and registers LSP server commands with LspService
|
|
55
|
-
* so that user/project overrides in
|
|
55
|
+
* so that user/project overrides in the configured languages directory are respected.
|
|
56
56
|
*/
|
|
57
57
|
async initialize() {
|
|
58
58
|
if (!this.shellPaths) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/plugins/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAmBjG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,SAAS,EAAE,eAAe,CAAC;IAC3B,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,IAAI,IAAI,YAAY,EAAE,CAAC;IACvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAC1B,EAAE,EAAE,OAAO,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,IAAI,EAAE,eAAe,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACtE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CAC3E;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,KAAK,CAAyF;IACtG,OAAO,CAAC,IAAI,CAA+B;IAE3C,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/plugins/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAmBjG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,SAAS,EAAE,eAAe,CAAC;IAC3B,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,IAAI,IAAI,YAAY,EAAE,CAAC;IACvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAC1B,EAAE,EAAE,OAAO,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,IAAI,EAAE,eAAe,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACtE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CAC3E;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,KAAK,CAAyF;IACtG,OAAO,CAAC,IAAI,CAA+B;IAE3C,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,EAAE,oBAAoB;IAQzC;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,kEAAkE;IAClE,IAAI,IAAI,YAAY,EAAE;IAiBtB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAK3C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAIrE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS;IAIzE;;;;;OAKG;IACH,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAyBlC;;OAEG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAwBxD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,GAAG,yBAAyB;IAiBrF;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAC1B,EAAE,EAAE,OAAO,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,IAAI,EAAE,eAAe,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,GAAG,IAAI;IAiBR;;;;;;OAMG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IA8BlC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAe7D,2EAA2E;IACrE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BpE,sEAAsE;IAChE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBrE,yEAAyE;IACnE,MAAM,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmC7D,wEAAwE;IACxE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,8DAA8D;IAC9D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAMxC,kBAAkB;IAahC,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,iBAAiB;CAY1B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
2
|
-
import { dirname
|
|
2
|
+
import { dirname } from 'path';
|
|
3
3
|
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
4
4
|
import { discoverPlugins, getPluginDirectories, loadPlugin, unloadPlugin, } from './loader.js';
|
|
5
5
|
import { PluginTrustStore, } from '../runtime/plugins/trust.js';
|
|
@@ -23,8 +23,10 @@ export class PluginManager {
|
|
|
23
23
|
stateFilePath;
|
|
24
24
|
constructor(options) {
|
|
25
25
|
this.pathOptions = options.pathOptions;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
if (!options.stateFilePath) {
|
|
27
|
+
throw new Error('PluginManager requires an explicit stateFilePath.');
|
|
28
|
+
}
|
|
29
|
+
this.stateFilePath = options.stateFilePath;
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* init — Must be called once at startup with application dependencies.
|
|
@@ -19,7 +19,7 @@ export interface ProfileInfo {
|
|
|
19
19
|
/**
|
|
20
20
|
* ProfileManager - Save and load named SDK host config profiles.
|
|
21
21
|
*
|
|
22
|
-
* Profiles are stored as JSON files in
|
|
22
|
+
* Profiles are stored as JSON files in the configured profile directory.
|
|
23
23
|
* Only host-surface settings (display, provider, behavior categories) are saved;
|
|
24
24
|
* permissions and API keys are never included.
|
|
25
25
|
*/
|
|
@@ -5,7 +5,7 @@ import { summarizeError } from '../utils/error-display.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* ProfileManager - Save and load named SDK host config profiles.
|
|
7
7
|
*
|
|
8
|
-
* Profiles are stored as JSON files in
|
|
8
|
+
* Profiles are stored as JSON files in the configured profile directory.
|
|
9
9
|
* Only host-surface settings (display, provider, behavior categories) are saved;
|
|
10
10
|
* permissions and API keys are never included.
|
|
11
11
|
*/
|
|
@@ -36,7 +36,7 @@ export interface AnthropicCompatOptions {
|
|
|
36
36
|
* Anthropic Messages API spec.
|
|
37
37
|
*
|
|
38
38
|
* Configured via a custom provider JSON file with `"type": "anthropic-compat"`
|
|
39
|
-
* in
|
|
39
|
+
* in the configured providers directory.
|
|
40
40
|
*/
|
|
41
41
|
export declare class AnthropicCompatProvider implements LLMProvider {
|
|
42
42
|
readonly name: string;
|
|
@@ -12,7 +12,7 @@ const ANTHROPIC_API_VERSION = '2023-06-01';
|
|
|
12
12
|
* Anthropic Messages API spec.
|
|
13
13
|
*
|
|
14
14
|
* Configured via a custom provider JSON file with `"type": "anthropic-compat"`
|
|
15
|
-
* in
|
|
15
|
+
* in the configured providers directory.
|
|
16
16
|
*/
|
|
17
17
|
export class AnthropicCompatProvider {
|
|
18
18
|
name;
|
|
@@ -4,7 +4,7 @@ import type { ModelDefinition } from './registry.js';
|
|
|
4
4
|
import { LocalContextIngestionService } from '@pellux/goodvibes-sdk/platform/providers/local-context-ingestion';
|
|
5
5
|
/**
|
|
6
6
|
* JSON schema for a custom provider configuration file.
|
|
7
|
-
* Place a *.json file in
|
|
7
|
+
* Place a *.json file in the configured providers directory to define a custom provider.
|
|
8
8
|
*/
|
|
9
9
|
export interface CustomProviderConfig {
|
|
10
10
|
/** Unique provider identifier, e.g. 'ollama' */
|