agent-switchboard 0.4.2 → 0.4.4
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/README.md +45 -0
- package/dist/agents/codex.d.ts +2 -2
- package/dist/agents/codex.js +13 -7
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/cursor.js +5 -17
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/gemini.js +10 -50
- package/dist/agents/gemini.js.map +1 -1
- package/dist/agents/json-utils.d.ts +12 -0
- package/dist/agents/json-utils.js +27 -1
- package/dist/agents/json-utils.js.map +1 -1
- package/dist/agents/opencode.js +3 -3
- package/dist/agents/opencode.js.map +1 -1
- package/dist/agents/trae.js +5 -17
- package/dist/agents/trae.js.map +1 -1
- package/dist/commands/distribution.js +6 -1
- package/dist/commands/distribution.js.map +1 -1
- package/dist/config/application-config.d.ts +1 -0
- package/dist/config/application-config.js +36 -4
- package/dist/config/application-config.js.map +1 -1
- package/dist/config/layered-config.js +1 -5
- package/dist/config/layered-config.js.map +1 -1
- package/dist/config/mcp-config.d.ts +2 -3
- package/dist/config/mcp-config.js +2 -7
- package/dist/config/mcp-config.js.map +1 -1
- package/dist/config/schemas.js +1 -1
- package/dist/config/schemas.js.map +1 -1
- package/dist/extensions/api.d.ts +9 -0
- package/dist/extensions/api.js +40 -16
- package/dist/extensions/api.js.map +1 -1
- package/dist/extensions/loader.d.ts +2 -0
- package/dist/extensions/loader.js +9 -5
- package/dist/extensions/loader.js.map +1 -1
- package/dist/hooks/distribution.d.ts +3 -1
- package/dist/hooks/distribution.js +32 -13
- package/dist/hooks/distribution.js.map +1 -1
- package/dist/index.js +150 -37
- package/dist/index.js.map +1 -1
- package/dist/library/distribute-bundle.js +89 -28
- package/dist/library/distribute-bundle.js.map +1 -1
- package/dist/library/distribute.d.ts +2 -2
- package/dist/library/distribute.js +40 -16
- package/dist/library/distribute.js.map +1 -1
- package/dist/library/state.js +12 -4
- package/dist/library/state.js.map +1 -1
- package/dist/manifest/store.d.ts +12 -1
- package/dist/manifest/store.js +63 -8
- package/dist/manifest/store.js.map +1 -1
- package/dist/marketplace/plugin-loader.d.ts +2 -2
- package/dist/marketplace/plugin-loader.js +8 -6
- package/dist/marketplace/plugin-loader.js.map +1 -1
- package/dist/marketplace/source-loader.js +3 -1
- package/dist/marketplace/source-loader.js.map +1 -1
- package/dist/mcp/distribution.js +109 -41
- package/dist/mcp/distribution.js.map +1 -1
- package/dist/plugins/identity.d.ts +8 -0
- package/dist/plugins/identity.js +22 -0
- package/dist/plugins/identity.js.map +1 -0
- package/dist/plugins/index.d.ts +4 -0
- package/dist/plugins/index.js +59 -35
- package/dist/plugins/index.js.map +1 -1
- package/dist/rules/block-merge.d.ts +0 -7
- package/dist/rules/block-merge.js +2 -1
- package/dist/rules/block-merge.js.map +1 -1
- package/dist/rules/distribution.js +18 -5
- package/dist/rules/distribution.js.map +1 -1
- package/dist/rules/state.js +11 -2
- package/dist/rules/state.js.map +1 -1
- package/dist/skills/distribution.js +39 -9
- package/dist/skills/distribution.js.map +1 -1
- package/dist/subagents/distribution.js +6 -1
- package/dist/subagents/distribution.js.map +1 -1
- package/dist/subagents/inventory.js +3 -3
- package/dist/subagents/inventory.js.map +1 -1
- package/dist/sync/command.js +23 -5
- package/dist/sync/command.js.map +1 -1
- package/dist/targets/builtin/claude-code.js +3 -1
- package/dist/targets/builtin/claude-code.js.map +1 -1
- package/dist/targets/builtin/common.d.ts +4 -1
- package/dist/targets/builtin/common.js +11 -1
- package/dist/targets/builtin/common.js.map +1 -1
- package/dist/targets/builtin/cursor.js +2 -7
- package/dist/targets/builtin/cursor.js.map +1 -1
- package/dist/targets/builtin/opencode.js +3 -1
- package/dist/targets/builtin/opencode.js.map +1 -1
- package/dist/targets/dsl/compiler.js +60 -26
- package/dist/targets/dsl/compiler.js.map +1 -1
- package/dist/targets/init.d.ts +1 -1
- package/dist/targets/init.js +3 -2
- package/dist/targets/init.js.map +1 -1
- package/dist/ui/fuzzy-multi-select.js +2 -1
- package/dist/ui/fuzzy-multi-select.js.map +1 -1
- package/dist/ui/library-selector.js +8 -9
- package/dist/ui/library-selector.js.map +1 -1
- package/dist/ui/mcp-ui.d.ts +2 -0
- package/dist/ui/mcp-ui.js +4 -4
- package/dist/ui/mcp-ui.js.map +1 -1
- package/dist/ui/plugin-ui.js +2 -2
- package/dist/ui/plugin-ui.js.map +1 -1
- package/dist/ui/rule-ui.js +4 -5
- package/dist/ui/rule-ui.js.map +1 -1
- package/dist/ui/selection-state.d.ts +0 -1
- package/dist/ui/selection-state.js +2 -5
- package/dist/ui/selection-state.js.map +1 -1
- package/dist/ui/subagent-ui.js +2 -16
- package/dist/ui/subagent-ui.js.map +1 -1
- package/dist/util/cli.d.ts +1 -0
- package/dist/util/cli.js +14 -3
- package/dist/util/cli.js.map +1 -1
- package/dist/util/extras.d.ts +2 -0
- package/dist/util/extras.js +3 -1
- package/dist/util/extras.js.map +1 -1
- package/dist/util/markdown.js +8 -2
- package/dist/util/markdown.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,6 +183,41 @@ asb agent -p team --project /path/to/repo # both
|
|
|
183
183
|
|
|
184
184
|
When `--project` is used, outputs target the project directory (e.g. `<project>/AGENTS.md`, `<project>/.claude/commands/`).
|
|
185
185
|
|
|
186
|
+
Interactive selectors follow the writable layer you target:
|
|
187
|
+
|
|
188
|
+
- User scope shows and edits the merged user selection.
|
|
189
|
+
- `-p/--profile` shows only that profile layer's explicit selection.
|
|
190
|
+
- `-P/--project` shows only that project layer's explicit selection.
|
|
191
|
+
|
|
192
|
+
Inherited entries from higher-priority layers do not participate in scoped sync until you write them into that profile or project layer. Saving an empty scoped selection creates an explicit empty override for that layer.
|
|
193
|
+
|
|
194
|
+
### Project Distribution Modes
|
|
195
|
+
|
|
196
|
+
Project-scoped sync supports three modes under `[distribution.project]`:
|
|
197
|
+
|
|
198
|
+
```toml
|
|
199
|
+
[distribution.project]
|
|
200
|
+
mode = "managed" # or: "exclusive", "none"
|
|
201
|
+
collision = "warn-skip" # managed only: "warn-skip", "error", "takeover"
|
|
202
|
+
|
|
203
|
+
[distribution.project.rules]
|
|
204
|
+
placement = "prepend" # or: "append"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
| Mode | Behavior |
|
|
208
|
+
|:------------|:---------|
|
|
209
|
+
| `exclusive` | ASB writes project-scoped outputs directly and cleans up inactive entries in target directories. |
|
|
210
|
+
| `managed` | Default. Uses a manifest at `<project>/.asb/state/distribution.json` so cleanup only removes files and directories previously written by ASB. Shared rule files use block merge instead of full replacement. |
|
|
211
|
+
| `none` | Disables all project-scoped writes. Selections can still be edited in `.asb.toml`, but project distribution commands and `asb sync -P <project>` skip output generation. |
|
|
212
|
+
|
|
213
|
+
Managed-mode collision policy controls what happens when ASB encounters a foreign file or directory at a target path:
|
|
214
|
+
|
|
215
|
+
| Policy | Behavior |
|
|
216
|
+
|:------------|:---------|
|
|
217
|
+
| `warn-skip` | Report a conflict and leave the foreign path untouched. |
|
|
218
|
+
| `error` | Report a hard error and fail the affected distribution step. |
|
|
219
|
+
| `takeover` | Treat the path as ASB-managed and overwrite it. |
|
|
220
|
+
|
|
186
221
|
## Libraries
|
|
187
222
|
|
|
188
223
|
All library types follow the same pattern:
|
|
@@ -345,8 +380,12 @@ asb plugin list # show all discovered plugins
|
|
|
345
380
|
asb plugin info context7 # show plugin details + components
|
|
346
381
|
```
|
|
347
382
|
|
|
383
|
+
Discovered plugin MCP servers appear in the MCP picker alongside locally-defined servers and can be enabled per user, profile, or project scope.
|
|
384
|
+
|
|
348
385
|
Enabled plugin components are expanded into entry-level `enabled` arrays during `asb sync`. Components appear with a namespace prefix (e.g. `context7:docs-researcher`) and can be individually controlled via per-application overrides.
|
|
349
386
|
|
|
387
|
+
Plugin MCP servers are also addressable directly through `[mcp].enabled` and the `asb mcp` selector. As long as the plugin source is discoverable, a plugin MCP server can be enabled directly without adding its parent plugin to `[plugins].enabled`.
|
|
388
|
+
|
|
350
389
|
## Sync
|
|
351
390
|
|
|
352
391
|
Push all libraries and MCP config to every active application in one step:
|
|
@@ -357,6 +396,12 @@ asb sync [-p <profile>] [-P <path>]
|
|
|
357
396
|
|
|
358
397
|
This merges layered config, applies per-application overrides, and writes target files in place. Files are only rewritten when content changes.
|
|
359
398
|
|
|
399
|
+
For project scope, sync honors `[distribution.project].mode`:
|
|
400
|
+
|
|
401
|
+
- `managed` keeps a manifest and cleans up only ASB-owned project outputs
|
|
402
|
+
- `exclusive` writes directly to the project targets
|
|
403
|
+
- `none` skips project writes entirely
|
|
404
|
+
|
|
360
405
|
## Environment
|
|
361
406
|
|
|
362
407
|
| Variable | Default | Purpose |
|
package/dist/agents/codex.d.ts
CHANGED
|
@@ -37,11 +37,11 @@ export declare class CodexAgent implements AgentAdapter {
|
|
|
37
37
|
* Preserves unrelated top-level tables/keys; rewrites mcp_servers in canonical form
|
|
38
38
|
* Note: SSE servers are filtered out as Codex only supports stdio and http
|
|
39
39
|
*/
|
|
40
|
-
export declare function mergeConfig(content: string, mcpServers: Record<string, Omit<McpServer, 'enabled'>>): string;
|
|
40
|
+
export declare function mergeConfig(content: string, mcpServers: Record<string, Omit<McpServer, 'enabled'>>): string | null;
|
|
41
41
|
/**
|
|
42
42
|
* Managed merge for TOML: preserve foreign servers, only upsert/remove ASB-owned.
|
|
43
43
|
*/
|
|
44
|
-
export declare function managedMergeConfig(content: string, mcpServers: Record<string, Omit<McpServer, 'enabled'>>, previouslyOwned: ReadonlySet<string>): string;
|
|
44
|
+
export declare function managedMergeConfig(content: string, mcpServers: Record<string, Omit<McpServer, 'enabled'>>, previouslyOwned: ReadonlySet<string>): string | null;
|
|
45
45
|
/**
|
|
46
46
|
* Ensure a project trust entry exists in the global config TOML content.
|
|
47
47
|
* Returns the (possibly updated) content and whether it changed.
|
package/dist/agents/codex.js
CHANGED
|
@@ -23,9 +23,12 @@ export class CodexAgent {
|
|
|
23
23
|
return path.join(path.resolve(projectRoot), '.codex', 'config.toml');
|
|
24
24
|
}
|
|
25
25
|
applyConfig(config) {
|
|
26
|
-
const
|
|
26
|
+
const configPath = this.configPath();
|
|
27
|
+
const content = this._loadConfig(configPath);
|
|
27
28
|
const updated = mergeConfig(content, sanitizeServerKeys(config.mcpServers));
|
|
28
|
-
|
|
29
|
+
if (updated === null)
|
|
30
|
+
return;
|
|
31
|
+
this._saveConfig(configPath, updated);
|
|
29
32
|
}
|
|
30
33
|
applyProjectConfig(projectRoot, config, options) {
|
|
31
34
|
const configPath = this.projectConfigPath(projectRoot);
|
|
@@ -33,6 +36,8 @@ export class CodexAgent {
|
|
|
33
36
|
const updated = options?.previouslyOwned
|
|
34
37
|
? managedMergeConfig(content, sanitizeServerKeys(config.mcpServers), options.previouslyOwned)
|
|
35
38
|
: mergeConfig(content, sanitizeServerKeys(config.mcpServers));
|
|
39
|
+
if (updated === null)
|
|
40
|
+
return;
|
|
36
41
|
this._saveConfig(configPath, updated);
|
|
37
42
|
this._ensureProjectTrusted(projectRoot);
|
|
38
43
|
}
|
|
@@ -82,9 +87,9 @@ export function mergeConfig(content, mcpServers) {
|
|
|
82
87
|
otherTopLevel = rest;
|
|
83
88
|
}
|
|
84
89
|
}
|
|
85
|
-
catch {
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.warn(`[codex] Failed to parse existing config: ${error instanceof Error ? error.message : error}; skipping write to avoid data loss`);
|
|
92
|
+
return null;
|
|
88
93
|
}
|
|
89
94
|
// Filter out SSE servers - Codex only supports stdio and http
|
|
90
95
|
const filteredServers = {};
|
|
@@ -130,8 +135,9 @@ export function managedMergeConfig(content, mcpServers, previouslyOwned) {
|
|
|
130
135
|
parsed = parseToml(content);
|
|
131
136
|
}
|
|
132
137
|
}
|
|
133
|
-
catch {
|
|
134
|
-
|
|
138
|
+
catch (error) {
|
|
139
|
+
console.warn(`[codex] Failed to parse existing config: ${error instanceof Error ? error.message : error}; skipping write to avoid data loss`);
|
|
140
|
+
return null;
|
|
135
141
|
}
|
|
136
142
|
const { mcp_servers: existingMcp, ...rest } = parsed;
|
|
137
143
|
const existingServers = existingMcp ?? {};
|
package/dist/agents/codex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/agents/codex.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/cursor.js
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* Cursor agent adapter
|
|
3
3
|
* Manages MCP server configuration for Cursor IDE/CLI
|
|
4
4
|
*/
|
|
5
|
-
import fs from 'node:fs';
|
|
6
5
|
import path from 'node:path';
|
|
7
6
|
import { getCursorDir, getProjectCursorDir } from '../config/paths.js';
|
|
8
|
-
import {
|
|
7
|
+
import { applyJsonMcpConfig } from './json-utils.js';
|
|
9
8
|
/**
|
|
10
9
|
* Cursor agent adapter
|
|
11
10
|
* Config location: ~/.cursor/mcp.json
|
|
@@ -22,23 +21,12 @@ export class CursorAgent {
|
|
|
22
21
|
return path.join(getProjectCursorDir(projectRoot), 'mcp.json');
|
|
23
22
|
}
|
|
24
23
|
applyConfig(config) {
|
|
25
|
-
|
|
26
|
-
const agentConfig = loadJsonFile(configPath, { mcpServers: {} });
|
|
27
|
-
const servers = sanitizeServerKeys(config.mcpServers);
|
|
28
|
-
const merged = mergeMcpIntoAgent(agentConfig, servers);
|
|
29
|
-
saveJsonFile(configPath, merged);
|
|
24
|
+
applyJsonMcpConfig(this.configPath(), config.mcpServers);
|
|
30
25
|
}
|
|
31
26
|
applyProjectConfig(projectRoot, config, options) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const merged = options?.previouslyOwned
|
|
36
|
-
? managedMergeMcp(existing, servers, options.previouslyOwned)
|
|
37
|
-
: mergeMcpIntoAgent(existing, servers);
|
|
38
|
-
const dir = path.dirname(configPath);
|
|
39
|
-
if (!fs.existsSync(dir))
|
|
40
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
41
|
-
saveJsonFile(configPath, merged);
|
|
27
|
+
applyJsonMcpConfig(this.projectConfigPath(projectRoot), config.mcpServers, {
|
|
28
|
+
previouslyOwned: options?.previouslyOwned,
|
|
29
|
+
});
|
|
42
30
|
}
|
|
43
31
|
}
|
|
44
32
|
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACb,EAAE,GAAG,QAAiB,CAAC;IAEhC,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,MAAkE;QAC5E,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,UAAoC,CAAC,CAAC;IACrF,CAAC;IAED,kBAAkB,CAChB,WAAmB,EACnB,MAAkE,EAClE,OAAmD;QAEnD,kBAAkB,CAChB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACnC,MAAM,CAAC,UAAoC,EAC3C;YACE,eAAe,EAAE,OAAO,EAAE,eAAe;SAC1C,CACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/agents/gemini.js
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* Gemini CLI agent adapter
|
|
3
3
|
* Manages MCP server configuration for Gemini CLI
|
|
4
4
|
*/
|
|
5
|
-
import fs from 'node:fs';
|
|
6
5
|
import path from 'node:path';
|
|
7
6
|
import { getGeminiSettingsPath } from '../config/paths.js';
|
|
8
|
-
import {
|
|
7
|
+
import { applyJsonMcpConfig } from './json-utils.js';
|
|
9
8
|
/**
|
|
10
9
|
* Map MCP server config to Gemini format
|
|
11
10
|
* - stdio: {command, args, env} (no type field)
|
|
@@ -15,48 +14,13 @@ import { loadJsonFile, saveJsonFile } from './json-utils.js';
|
|
|
15
14
|
function mapServerForGemini(server) {
|
|
16
15
|
const { type, url, command, args, env, ...rest } = server;
|
|
17
16
|
if (type === 'http' && typeof url === 'string') {
|
|
18
|
-
// HTTP transport uses httpUrl field in Gemini
|
|
19
17
|
return { httpUrl: url, ...rest };
|
|
20
18
|
}
|
|
21
19
|
if ((type === 'sse' || type === undefined) && typeof url === 'string' && !command) {
|
|
22
|
-
// SSE transport (or inferred remote) uses url field
|
|
23
20
|
return { url, ...rest };
|
|
24
21
|
}
|
|
25
|
-
// stdio transport
|
|
26
22
|
return { command, args, env, ...rest };
|
|
27
23
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Merge MCP servers into Gemini config with proper field mapping
|
|
30
|
-
*/
|
|
31
|
-
function mergeMcpForGemini(agentConfig, mcpServers) {
|
|
32
|
-
const merged = { ...agentConfig };
|
|
33
|
-
merged.mcpServers = {};
|
|
34
|
-
for (const [name, server] of Object.entries(mcpServers)) {
|
|
35
|
-
const existing = agentConfig.mcpServers?.[name] ?? {};
|
|
36
|
-
const mapped = mapServerForGemini(server);
|
|
37
|
-
merged.mcpServers[name] = { ...existing, ...mapped };
|
|
38
|
-
}
|
|
39
|
-
return merged;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Managed merge for Gemini: preserve foreign servers, only upsert/remove ASB-owned.
|
|
43
|
-
*/
|
|
44
|
-
function managedMergeMcpForGemini(agentConfig, mcpServers, previouslyOwned) {
|
|
45
|
-
const merged = { ...agentConfig };
|
|
46
|
-
const existing = { ...(agentConfig.mcpServers ?? {}) };
|
|
47
|
-
for (const name of previouslyOwned) {
|
|
48
|
-
if (!(name in mcpServers)) {
|
|
49
|
-
delete existing[name];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
for (const [name, server] of Object.entries(mcpServers)) {
|
|
53
|
-
const prev = existing[name] ?? {};
|
|
54
|
-
const mapped = mapServerForGemini(server);
|
|
55
|
-
existing[name] = { ...prev, ...mapped };
|
|
56
|
-
}
|
|
57
|
-
merged.mcpServers = existing;
|
|
58
|
-
return merged;
|
|
59
|
-
}
|
|
60
24
|
/**
|
|
61
25
|
* Gemini CLI agent adapter
|
|
62
26
|
* Config location: ~/.gemini/settings.json
|
|
@@ -73,21 +37,17 @@ export class GeminiAgent {
|
|
|
73
37
|
return path.join(path.resolve(projectRoot), '.gemini', 'settings.json');
|
|
74
38
|
}
|
|
75
39
|
applyConfig(config) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
40
|
+
applyJsonMcpConfig(this.configPath(), config.mcpServers, {
|
|
41
|
+
sanitize: false,
|
|
42
|
+
serverMapper: mapServerForGemini,
|
|
43
|
+
});
|
|
80
44
|
}
|
|
81
45
|
applyProjectConfig(projectRoot, config, options) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const dir = path.dirname(configPath);
|
|
88
|
-
if (!fs.existsSync(dir))
|
|
89
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
90
|
-
saveJsonFile(configPath, merged);
|
|
46
|
+
applyJsonMcpConfig(this.projectConfigPath(projectRoot), config.mcpServers, {
|
|
47
|
+
sanitize: false,
|
|
48
|
+
serverMapper: mapServerForGemini,
|
|
49
|
+
previouslyOwned: options?.previouslyOwned,
|
|
50
|
+
});
|
|
91
51
|
}
|
|
92
52
|
}
|
|
93
53
|
//# sourceMappingURL=gemini.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/agents/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/agents/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAiC,CAAC;IAErF,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAClF,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,WAAW;IACb,EAAE,GAAG,QAAiB,CAAC;IAEhC,UAAU;QACR,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,MAAkE;QAC5E,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,UAAoC,EAAE;YACjF,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,kBAAkB;SACjC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,WAAmB,EACnB,MAAkE,EAClE,OAAmD;QAEnD,kBAAkB,CAChB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACnC,MAAM,CAAC,UAAoC,EAC3C;YACE,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,kBAAkB;YAChC,eAAe,EAAE,OAAO,EAAE,eAAe;SAC1C,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -16,6 +16,18 @@ export declare function sanitizeMcpName(name: string): string;
|
|
|
16
16
|
* Warns on collision (e.g. `foo:bar` and `foo-bar` both map to `foo-bar`).
|
|
17
17
|
*/
|
|
18
18
|
export declare function sanitizeServerKeys<T>(servers: Record<string, T>): Record<string, T>;
|
|
19
|
+
/**
|
|
20
|
+
* Common apply flow for JSON-based agent adapters.
|
|
21
|
+
* Handles: load -> sanitize -> merge (exclusive or managed) -> mkdir -> save.
|
|
22
|
+
*
|
|
23
|
+
* @param serverMapper Optional per-server transform (e.g., Gemini httpUrl mapping).
|
|
24
|
+
* When omitted, servers are passed through as-is.
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyJsonMcpConfig(configPath: string, mcpServers: Record<string, object>, options?: {
|
|
27
|
+
previouslyOwned?: ReadonlySet<string>;
|
|
28
|
+
serverMapper?: (server: object) => Record<string, unknown>;
|
|
29
|
+
sanitize?: boolean;
|
|
30
|
+
}): void;
|
|
19
31
|
export declare function mergeMcpIntoAgent(agentConfig: JsonAgentConfig, mcpServers: Record<string, object>): JsonAgentConfig;
|
|
20
32
|
/**
|
|
21
33
|
* Managed merge: preserve foreign servers, only upsert/remove ASB-owned servers.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared JSON file helpers for agent adapters
|
|
3
3
|
*/
|
|
4
4
|
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
5
6
|
export function loadJsonFile(filePath, fallback) {
|
|
6
7
|
if (!fs.existsSync(filePath))
|
|
7
8
|
return fallback;
|
|
@@ -30,13 +31,38 @@ export function sanitizeServerKeys(servers) {
|
|
|
30
31
|
const key = sanitizeMcpName(name);
|
|
31
32
|
const prev = seen.get(key);
|
|
32
33
|
if (prev !== undefined && prev !== name) {
|
|
33
|
-
|
|
34
|
+
throw new Error(`MCP name collision: "${prev}" and "${name}" both sanitize to "${key}". Rename one of the servers to avoid data loss.`);
|
|
34
35
|
}
|
|
35
36
|
seen.set(key, name);
|
|
36
37
|
result[key] = server;
|
|
37
38
|
}
|
|
38
39
|
return result;
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Common apply flow for JSON-based agent adapters.
|
|
43
|
+
* Handles: load -> sanitize -> merge (exclusive or managed) -> mkdir -> save.
|
|
44
|
+
*
|
|
45
|
+
* @param serverMapper Optional per-server transform (e.g., Gemini httpUrl mapping).
|
|
46
|
+
* When omitted, servers are passed through as-is.
|
|
47
|
+
*/
|
|
48
|
+
export function applyJsonMcpConfig(configPath, mcpServers, options) {
|
|
49
|
+
const existing = loadJsonFile(configPath, { mcpServers: {} });
|
|
50
|
+
const sanitize = options?.sanitize !== false;
|
|
51
|
+
const servers = sanitize
|
|
52
|
+
? sanitizeServerKeys(mcpServers)
|
|
53
|
+
: mcpServers;
|
|
54
|
+
const serverMapper = options?.serverMapper;
|
|
55
|
+
const mapped = serverMapper
|
|
56
|
+
? Object.fromEntries(Object.entries(servers).map(([name, server]) => [name, serverMapper(server)]))
|
|
57
|
+
: servers;
|
|
58
|
+
const merged = options?.previouslyOwned
|
|
59
|
+
? managedMergeMcp(existing, mapped, options.previouslyOwned)
|
|
60
|
+
: mergeMcpIntoAgent(existing, mapped);
|
|
61
|
+
const dir = path.dirname(configPath);
|
|
62
|
+
if (!fs.existsSync(dir))
|
|
63
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
64
|
+
saveJsonFile(configPath, merged);
|
|
65
|
+
}
|
|
40
66
|
export function mergeMcpIntoAgent(agentConfig, mcpServers) {
|
|
41
67
|
const merged = { ...agentConfig };
|
|
42
68
|
// Replace mcpServers entirely - only keep servers in the new config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-utils.js","sourceRoot":"","sources":["../../src/agents/json-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"json-utils.js","sourceRoot":"","sources":["../../src/agents/json-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,UAAU,YAAY,CAAmB,QAAgB,EAAE,QAAW;IAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IACzD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAI,OAA0B;IAC9D,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,UAAU,IAAI,uBAAuB,GAAG,kDAAkD,CACvH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,UAAkC,EAClC,OAIC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAkB,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,KAAK,KAAK,CAAC;IAC7C,MAAM,OAAO,GAAG,QAAQ;QACtB,CAAC,CAAE,kBAAkB,CAAC,UAAU,CAA4B;QAC5D,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAC3C,MAAM,MAAM,GAA2B,YAAY;QACjD,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAC9E;QACH,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,MAAM,GAAG,OAAO,EAAE,eAAe;QACrC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC;QAC5D,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAExC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,WAA4B,EAC5B,UAAkC;IAElC,MAAM,MAAM,GAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;IAEnD,oEAAoE;IACpE,wDAAwD;IACxD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,gFAAgF;QAChF,MAAM,QAAQ,GAAI,WAAW,CAAC,UAAU,EAAE,CAAC,IAAI,CAA6B,IAAI,EAAE,CAAC;QACnF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,WAA4B,EAC5B,UAAkC,EAClC,eAAoC;IAEpC,MAAM,MAAM,GAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;IAEvD,6DAA6D;IAC7D,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAI,CAA6B,IAAI,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/agents/opencode.js
CHANGED
|
@@ -57,9 +57,9 @@ export class OpencodeAgent {
|
|
|
57
57
|
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
58
58
|
current = parseConfigContent(raw, isJsonc);
|
|
59
59
|
}
|
|
60
|
-
catch {
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.warn(`[opencode] Failed to parse ${filePath}: ${error instanceof Error ? error.message : error}; skipping write to avoid data loss`);
|
|
62
|
+
return;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
const out = { ...current };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAI7E;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC;IACtC,MAAM,QAAQ,GAAG,GAAG,QAAQ,OAAO,CAAC;IAEpC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe,EAAE,OAAgB;IAC3D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,OAAO,CAAmB,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAYD,MAAM,OAAO,aAAa;IACf,EAAE,GAAG,UAAmB,CAAC;IAElC,UAAU;QACR,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,MAAkE;QAC5E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAChB,WAAmB,EACnB,MAAkE,EAClE,OAAmD;QAEnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC3F,CAAC;IAEO,YAAY,CAClB,QAAgB,EAChB,MAAkE,EAClE,eAAqC;QAErC,oCAAoC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5C,gBAAgB;QAChB,IAAI,OAAO,GAAmB,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;YAAC,
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/trae.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
1
|
import path from 'node:path';
|
|
3
2
|
import { getProjectTraeDir, getTraeConfigPath } from '../config/paths.js';
|
|
4
|
-
import {
|
|
3
|
+
import { applyJsonMcpConfig } from './json-utils.js';
|
|
5
4
|
export class TraeAgent {
|
|
6
5
|
id;
|
|
7
6
|
variant;
|
|
@@ -16,23 +15,12 @@ export class TraeAgent {
|
|
|
16
15
|
return path.join(getProjectTraeDir(projectRoot), 'mcp.json');
|
|
17
16
|
}
|
|
18
17
|
applyConfig(config) {
|
|
19
|
-
|
|
20
|
-
const agentConfig = loadJsonFile(configPath, { mcpServers: {} });
|
|
21
|
-
const servers = sanitizeServerKeys(config.mcpServers);
|
|
22
|
-
const merged = mergeMcpIntoAgent(agentConfig, servers);
|
|
23
|
-
saveJsonFile(configPath, merged);
|
|
18
|
+
applyJsonMcpConfig(this.configPath(), config.mcpServers);
|
|
24
19
|
}
|
|
25
20
|
applyProjectConfig(projectRoot, config, options) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const merged = options?.previouslyOwned
|
|
30
|
-
? managedMergeMcp(existing, servers, options.previouslyOwned)
|
|
31
|
-
: mergeMcpIntoAgent(existing, servers);
|
|
32
|
-
const dir = path.dirname(configPath);
|
|
33
|
-
if (!fs.existsSync(dir))
|
|
34
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
35
|
-
saveJsonFile(configPath, merged);
|
|
21
|
+
applyJsonMcpConfig(this.projectConfigPath(projectRoot), config.mcpServers, {
|
|
22
|
+
previouslyOwned: options?.previouslyOwned,
|
|
23
|
+
});
|
|
36
24
|
}
|
|
37
25
|
}
|
|
38
26
|
//# sourceMappingURL=trae.js.map
|
package/dist/agents/trae.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trae.js","sourceRoot":"","sources":["../../src/agents/trae.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"trae.js","sourceRoot":"","sources":["../../src/agents/trae.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAoB,MAAM,oBAAoB,CAAC;AAG5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,OAAO,SAAS;IACX,EAAE,CAAS;IACH,OAAO,CAAc;IAEtC,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;IACpB,CAAC;IAED,UAAU;QACR,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW,CAAC,MAAkE;QAC5E,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,UAAoC,CAAC,CAAC;IACrF,CAAC;IAED,kBAAkB,CAChB,WAAmB,EACnB,MAAkE,EAClE,OAAmD;QAEnD,kBAAkB,CAChB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACnC,MAAM,CAAC,UAAoC,EAC3C;YACE,eAAe,EAAE,OAAO,EAAE,eAAe;SAC1C,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -27,7 +27,12 @@ export function distributeCommands(scope, activeAppIds, assumeInstalled, managed
|
|
|
27
27
|
};
|
|
28
28
|
const cleanup = {
|
|
29
29
|
resolveTargetDir: (p) => getHandler(p).resolveTargetDir(scope),
|
|
30
|
-
extractId: (filename) => {
|
|
30
|
+
extractId: (filename, platform) => {
|
|
31
|
+
if (platform) {
|
|
32
|
+
const h = handlerMap.get(platform);
|
|
33
|
+
if (h)
|
|
34
|
+
return h.extractIdFromFilename(filename);
|
|
35
|
+
}
|
|
31
36
|
if (filename.endsWith('.toml'))
|
|
32
37
|
return filename.slice(0, -5);
|
|
33
38
|
if (filename.endsWith('.md'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/commands/distribution.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAIL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAqB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAYrE,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,EAAU,EAAE,KAAmB;IACtF,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAmB,EACnB,YAAuB,EACvB,eAAqC,EACrC,cAAsC;IAEtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,6EAA6E;IAC7E,MAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC7E,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,CAAC,CAAS,EAAwB,EAAE;QACrD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,OAAO,GAA0B;QACrC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAC9D,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/commands/distribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ export declare function mergeIncrementalSelection(base: string[], override?: Inc
|
|
|
22
22
|
* Get per-application override configuration for a specific section
|
|
23
23
|
*/
|
|
24
24
|
export declare function getApplicationOverride(config: SwitchboardConfig, appId: string, section: ConfigSection): IncrementalSelection | undefined;
|
|
25
|
+
export declare function normalizeSectionEntryIds(_section: ConfigSection, ids: string[], scope?: ConfigScope): string[];
|
|
25
26
|
/**
|
|
26
27
|
* Resolve effective configuration for a specific application and section.
|
|
27
28
|
* Applies per-application overrides to the global section config.
|
|
@@ -56,6 +56,23 @@ function getGlobalEnabled(config, section) {
|
|
|
56
56
|
const sectionConfig = config[section];
|
|
57
57
|
return Array.isArray(sectionConfig?.enabled) ? [...sectionConfig.enabled] : [];
|
|
58
58
|
}
|
|
59
|
+
function dedupeIds(ids) {
|
|
60
|
+
const seen = new Set();
|
|
61
|
+
const result = [];
|
|
62
|
+
for (const id of ids) {
|
|
63
|
+
if (seen.has(id))
|
|
64
|
+
continue;
|
|
65
|
+
seen.add(id);
|
|
66
|
+
result.push(id);
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
export function normalizeSectionEntryIds(_section, ids, scope) {
|
|
71
|
+
if (ids.length === 0)
|
|
72
|
+
return [];
|
|
73
|
+
const index = buildPluginIndex(scope);
|
|
74
|
+
return dedupeIds(ids.map((id) => index.normalizeComponentId(id)));
|
|
75
|
+
}
|
|
59
76
|
function getPluginEnabledRefs(config) {
|
|
60
77
|
return Array.isArray(config.plugins?.enabled) ? [...config.plugins.enabled] : [];
|
|
61
78
|
}
|
|
@@ -64,12 +81,27 @@ function getPluginExcludeList(config, section) {
|
|
|
64
81
|
const excludeList = exclude?.[section];
|
|
65
82
|
return Array.isArray(excludeList) ? [...excludeList] : [];
|
|
66
83
|
}
|
|
84
|
+
function normalizeIncrementalSelection(section, override, scope) {
|
|
85
|
+
if (!override)
|
|
86
|
+
return undefined;
|
|
87
|
+
const normalized = {};
|
|
88
|
+
if (override.enabled) {
|
|
89
|
+
normalized.enabled = normalizeSectionEntryIds(section, override.enabled, scope);
|
|
90
|
+
}
|
|
91
|
+
if (override.add) {
|
|
92
|
+
normalized.add = normalizeSectionEntryIds(section, override.add, scope);
|
|
93
|
+
}
|
|
94
|
+
if (override.remove) {
|
|
95
|
+
normalized.remove = normalizeSectionEntryIds(section, override.remove, scope);
|
|
96
|
+
}
|
|
97
|
+
return normalized;
|
|
98
|
+
}
|
|
67
99
|
function resolveSectionConfigFromConfig(config, section, appId, scope) {
|
|
68
|
-
const globalEnabled = getGlobalEnabled(config, section);
|
|
100
|
+
const globalEnabled = normalizeSectionEntryIds(section, getGlobalEnabled(config, section), scope);
|
|
69
101
|
const enabledPluginRefs = getPluginEnabledRefs(config);
|
|
102
|
+
const index = buildPluginIndex(scope);
|
|
70
103
|
let merged;
|
|
71
104
|
if (enabledPluginRefs.length > 0) {
|
|
72
|
-
const index = buildPluginIndex(scope);
|
|
73
105
|
const expanded = index.expand(enabledPluginRefs);
|
|
74
106
|
const pluginSection = section;
|
|
75
107
|
const pluginEntryIds = expanded[pluginSection] ?? [];
|
|
@@ -81,7 +113,7 @@ function resolveSectionConfigFromConfig(config, section, appId, scope) {
|
|
|
81
113
|
seen.add(id);
|
|
82
114
|
}
|
|
83
115
|
}
|
|
84
|
-
const excludeList = getPluginExcludeList(config, pluginSection);
|
|
116
|
+
const excludeList = normalizeSectionEntryIds(section, getPluginExcludeList(config, pluginSection), scope);
|
|
85
117
|
if (excludeList.length > 0) {
|
|
86
118
|
const excludeSet = new Set(excludeList);
|
|
87
119
|
merged = merged.filter((id) => !excludeSet.has(id));
|
|
@@ -90,7 +122,7 @@ function resolveSectionConfigFromConfig(config, section, appId, scope) {
|
|
|
90
122
|
else {
|
|
91
123
|
merged = globalEnabled;
|
|
92
124
|
}
|
|
93
|
-
const override = getApplicationOverrideFromConfig(config, appId, section);
|
|
125
|
+
const override = normalizeIncrementalSelection(section, getApplicationOverrideFromConfig(config, appId, section), scope);
|
|
94
126
|
return {
|
|
95
127
|
enabled: mergeIncrementalSelection(merged, override),
|
|
96
128
|
};
|