agent-switchboard 0.3.10 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/claude-code.d.ts +2 -0
- package/dist/agents/claude-code.js +5 -5
- package/dist/agents/claude-code.js.map +1 -1
- package/dist/agents/codex.d.ts +6 -0
- package/dist/agents/codex.js +65 -2
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/cursor.d.ts +2 -0
- package/dist/agents/cursor.js +5 -3
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/gemini.d.ts +2 -0
- package/dist/agents/gemini.js +23 -3
- package/dist/agents/gemini.js.map +1 -1
- package/dist/agents/json-utils.d.ts +5 -0
- package/dist/agents/json-utils.js +21 -0
- package/dist/agents/json-utils.js.map +1 -1
- package/dist/agents/opencode.d.ts +2 -0
- package/dist/agents/opencode.js +14 -6
- package/dist/agents/opencode.js.map +1 -1
- package/dist/agents/trae.d.ts +2 -0
- package/dist/agents/trae.js +5 -3
- package/dist/agents/trae.js.map +1 -1
- package/dist/commands/distribution.d.ts +2 -2
- package/dist/commands/distribution.js +4 -1
- package/dist/commands/distribution.js.map +1 -1
- package/dist/config/application-config.js +2 -2
- package/dist/config/application-config.js.map +1 -1
- package/dist/config/schemas.d.ts +683 -0
- package/dist/config/schemas.js +33 -0
- package/dist/config/schemas.js.map +1 -1
- package/dist/index.js +4 -28
- package/dist/index.js.map +1 -1
- package/dist/library/distribute-bundle.d.ts +13 -1
- package/dist/library/distribute-bundle.js +154 -35
- package/dist/library/distribute-bundle.js.map +1 -1
- package/dist/library/distribute.d.ts +16 -1
- package/dist/library/distribute.js +107 -34
- package/dist/library/distribute.js.map +1 -1
- package/dist/manifest/store.d.ts +53 -0
- package/dist/manifest/store.js +183 -0
- package/dist/manifest/store.js.map +1 -0
- package/dist/manifest/types.d.ts +52 -0
- package/dist/manifest/types.js +9 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/mcp/distribution.d.ts +5 -0
- package/dist/mcp/distribution.js +42 -10
- package/dist/mcp/distribution.js.map +1 -1
- package/dist/plugins/index.js +21 -7
- package/dist/plugins/index.js.map +1 -1
- package/dist/rules/block-merge.d.ts +24 -0
- package/dist/rules/block-merge.js +68 -0
- package/dist/rules/block-merge.js.map +1 -0
- package/dist/rules/distribution.d.ts +7 -0
- package/dist/rules/distribution.js +94 -8
- package/dist/rules/distribution.js.map +1 -1
- package/dist/skills/distribution.d.ts +5 -1
- package/dist/skills/distribution.js +9 -0
- package/dist/skills/distribution.js.map +1 -1
- package/dist/subagents/distribution.d.ts +2 -2
- package/dist/subagents/distribution.js +4 -1
- package/dist/subagents/distribution.js.map +1 -1
- package/dist/sync/command.js +58 -14
- 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/codex.js +3 -1
- package/dist/targets/builtin/codex.js.map +1 -1
- package/dist/targets/builtin/cursor.js +3 -1
- package/dist/targets/builtin/cursor.js.map +1 -1
- package/dist/targets/builtin/gemini.js +1 -1
- package/dist/targets/builtin/gemini.js.map +1 -1
- package/dist/targets/builtin/opencode.js +1 -1
- package/dist/targets/builtin/opencode.js.map +1 -1
- package/dist/targets/builtin/trae.js +3 -1
- package/dist/targets/builtin/trae.js.map +1 -1
- package/dist/targets/types.d.ts +8 -1
- package/dist/targets/types.js.map +1 -1
- package/dist/types.d.ts +0 -11
- package/dist/types.js.map +1 -1
- package/dist/ui/mcp-ui.d.ts +1 -10
- package/dist/ui/mcp-ui.js +33 -28
- package/dist/ui/mcp-ui.js.map +1 -1
- package/dist/util/cli.d.ts +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ export const opencodeTarget = {
|
|
|
12
12
|
configPath: () => adapter.configPath(),
|
|
13
13
|
projectConfigPath: (root) => adapter.projectConfigPath?.(root),
|
|
14
14
|
applyConfig: (config) => adapter.applyConfig(config),
|
|
15
|
-
applyProjectConfig: (root, config) => adapter.applyProjectConfig?.(root, config),
|
|
15
|
+
applyProjectConfig: (root, config, options) => adapter.applyProjectConfig?.(root, config, options),
|
|
16
16
|
},
|
|
17
17
|
rules: {
|
|
18
18
|
resolveFilePath: (scope) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/targets/builtin/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExF,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IAEnD,GAAG,EAAE;QACH,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE;QACtC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC;QAC9D,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;QACpD,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/targets/builtin/opencode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { sanitizeMcpName } from '../../agents/json-utils.js';
|
|
3
4
|
import { TraeAgent } from '../../agents/trae.js';
|
|
4
5
|
import { getProjectTraeDir, getTraeDataDir, getTraeUserDataDir, } from '../../config/paths.js';
|
|
5
6
|
import { resolveProjectRoot, wrapMdcFrontmatter } from './common.js';
|
|
@@ -24,7 +25,8 @@ function createTraeTarget(variant) {
|
|
|
24
25
|
configPath: () => adapter.configPath(),
|
|
25
26
|
projectConfigPath: (root) => adapter.projectConfigPath(root),
|
|
26
27
|
applyConfig: (config) => adapter.applyConfig(stripMcpType(config)),
|
|
27
|
-
applyProjectConfig: (root, config) => adapter.applyProjectConfig(root, stripMcpType(config)),
|
|
28
|
+
applyProjectConfig: (root, config, options) => adapter.applyProjectConfig(root, stripMcpType(config), options),
|
|
29
|
+
sanitizeServerName: sanitizeMcpName,
|
|
28
30
|
},
|
|
29
31
|
rules: {
|
|
30
32
|
resolveFilePath: (scope) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trae.js","sourceRoot":"","sources":["../../../src/targets/builtin/trae.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GAEnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAkE;IAGtF,MAAM,OAAO,GAA+C,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAI,MAAkC,EAAE,IAAI,EAAE,SAAS,EAGxE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvC,OAAO;QACL,EAAE,EAAE,OAAO;QACX,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE7D,GAAG,EAAE;YACH,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE;YACtC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC5D,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClE,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"trae.js","sourceRoot":"","sources":["../../../src/targets/builtin/trae.ts"],"names":[],"mappings":"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"}
|
package/dist/targets/types.d.ts
CHANGED
|
@@ -23,6 +23,10 @@ export interface GenericLibraryEntry {
|
|
|
23
23
|
};
|
|
24
24
|
readonly content: string;
|
|
25
25
|
}
|
|
26
|
+
export interface ManagedMcpOptions {
|
|
27
|
+
/** Server names previously owned by ASB (for managed merge) */
|
|
28
|
+
previouslyOwned?: ReadonlySet<string>;
|
|
29
|
+
}
|
|
26
30
|
/** MCP distribution handler */
|
|
27
31
|
export interface TargetMcpHandler {
|
|
28
32
|
configPath(): string;
|
|
@@ -32,7 +36,10 @@ export interface TargetMcpHandler {
|
|
|
32
36
|
}): void;
|
|
33
37
|
applyProjectConfig?(projectRoot: string, config: {
|
|
34
38
|
mcpServers: Record<string, Omit<McpServer, 'enabled'>>;
|
|
35
|
-
}): void;
|
|
39
|
+
}, options?: ManagedMcpOptions): void;
|
|
40
|
+
/** Transform a server name to match what this adapter writes to config.
|
|
41
|
+
* Used by manifest recording to store the actual key written to disk. */
|
|
42
|
+
sanitizeServerName?(name: string): string;
|
|
36
43
|
}
|
|
37
44
|
/** Rules distribution handler */
|
|
38
45
|
export interface TargetRulesHandler {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2GH,sEAAsE;AACtE,MAAM,UAAU,qBAAqB,CACnC,OAAyD;IAEzD,OAAO,QAAQ,IAAI,OAAO,IAAK,OAAqC,CAAC,MAAM,KAAK,IAAI,CAAC;AACvF,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,14 +6,3 @@
|
|
|
6
6
|
* These are inferred from Zod schemas to maintain single source of truth
|
|
7
7
|
*/
|
|
8
8
|
export type { McpConfig, McpServer, SwitchboardConfig, } from './config/schemas.js';
|
|
9
|
-
/**
|
|
10
|
-
* Checkbox item for interactive UI
|
|
11
|
-
*/
|
|
12
|
-
export interface CheckboxItem {
|
|
13
|
-
/** Display name with status indicators */
|
|
14
|
-
name: string;
|
|
15
|
-
/** Actual server name (value returned when selected) */
|
|
16
|
-
value: string;
|
|
17
|
-
/** Initial checkbox state */
|
|
18
|
-
checked: boolean;
|
|
19
|
-
}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAcH,mFAAmF"}
|
package/dist/ui/mcp-ui.d.ts
CHANGED
|
@@ -2,20 +2,11 @@
|
|
|
2
2
|
* Interactive UI for managing MCP servers
|
|
3
3
|
* Server definitions from mcp.json, enabled state from config.toml
|
|
4
4
|
*/
|
|
5
|
-
import type { CheckboxItem } from '../types.js';
|
|
6
5
|
export interface McpServerUIOptions {
|
|
7
6
|
pageSize?: number;
|
|
8
7
|
enabled: string[];
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
* @param enabled - List of enabled server names (from config.toml)
|
|
13
|
-
* @returns Array of checkbox items sorted alphabetically
|
|
14
|
-
*/
|
|
15
|
-
export declare function createMcpServerItems(enabled: string[]): CheckboxItem[];
|
|
16
|
-
/**
|
|
17
|
-
* Show interactive checkbox UI for MCP server selection
|
|
18
|
-
* @param options.enabled - List of currently enabled server names
|
|
19
|
-
* @returns Array of selected server names
|
|
10
|
+
* Show interactive fuzzy-filterable UI for MCP server selection
|
|
20
11
|
*/
|
|
21
12
|
export declare function showMcpServerUI(options: McpServerUIOptions): Promise<string[]>;
|
package/dist/ui/mcp-ui.js
CHANGED
|
@@ -2,39 +2,46 @@
|
|
|
2
2
|
* Interactive UI for managing MCP servers
|
|
3
3
|
* Server definitions from mcp.json, enabled state from config.toml
|
|
4
4
|
*/
|
|
5
|
-
import { checkbox } from '@inquirer/prompts';
|
|
6
5
|
import chalk from 'chalk';
|
|
7
6
|
import { loadMcpConfig } from '../config/mcp-config.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* @param enabled - List of enabled server names (from config.toml)
|
|
11
|
-
* @returns Array of checkbox items sorted alphabetically
|
|
12
|
-
*/
|
|
13
|
-
export function createMcpServerItems(enabled) {
|
|
7
|
+
import { fuzzyMultiSelect } from './fuzzy-multi-select.js';
|
|
8
|
+
function buildMcpChoices(enabled) {
|
|
14
9
|
const config = loadMcpConfig();
|
|
15
|
-
const items = [];
|
|
16
10
|
const enabledSet = new Set(enabled);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
const choices = [];
|
|
12
|
+
// Enabled servers first (in enabled order), then remaining alphabetically
|
|
13
|
+
const remaining = Object.keys(config.mcpServers)
|
|
14
|
+
.filter((name) => !enabledSet.has(name))
|
|
15
|
+
.sort();
|
|
16
|
+
for (const name of [...enabled, ...remaining]) {
|
|
17
|
+
const server = config.mcpServers[name];
|
|
18
|
+
if (!server)
|
|
19
|
+
continue;
|
|
20
|
+
const keywords = [name];
|
|
21
|
+
const raw = server;
|
|
22
|
+
if (raw.command)
|
|
23
|
+
keywords.push(String(raw.command));
|
|
24
|
+
if (raw.url)
|
|
25
|
+
keywords.push(String(raw.url));
|
|
26
|
+
if (raw.type)
|
|
27
|
+
keywords.push(String(raw.type));
|
|
28
|
+
const hint = raw.type ?? (raw.url ? 'http' : raw.command ? 'stdio' : undefined);
|
|
29
|
+
choices.push({
|
|
23
30
|
value: name,
|
|
24
|
-
|
|
31
|
+
label: name,
|
|
32
|
+
hint: hint ? String(hint) : undefined,
|
|
33
|
+
keywords,
|
|
25
34
|
});
|
|
26
35
|
}
|
|
27
|
-
return
|
|
36
|
+
return choices;
|
|
28
37
|
}
|
|
29
38
|
/**
|
|
30
|
-
* Show interactive
|
|
31
|
-
* @param options.enabled - List of currently enabled server names
|
|
32
|
-
* @returns Array of selected server names
|
|
39
|
+
* Show interactive fuzzy-filterable UI for MCP server selection
|
|
33
40
|
*/
|
|
34
41
|
export async function showMcpServerUI(options) {
|
|
35
42
|
const pageSize = options.pageSize ?? 15;
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
43
|
+
const choices = buildMcpChoices(options.enabled);
|
|
44
|
+
if (choices.length === 0) {
|
|
38
45
|
console.log(chalk.yellow('⚠ No MCP servers found in ~/.agent-switchboard/mcp.json'));
|
|
39
46
|
console.log();
|
|
40
47
|
console.log('Please add servers manually to the config file:');
|
|
@@ -52,14 +59,12 @@ export async function showMcpServerUI(options) {
|
|
|
52
59
|
}`));
|
|
53
60
|
return [];
|
|
54
61
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
message: 'Toggle MCP servers (Space: toggle, a: all, i: invert, Enter: confirm):',
|
|
60
|
-
choices: items,
|
|
62
|
+
return fuzzyMultiSelect({
|
|
63
|
+
message: 'Select MCP servers to enable',
|
|
64
|
+
choices,
|
|
65
|
+
initialSelected: options.enabled,
|
|
61
66
|
pageSize,
|
|
67
|
+
allowEmpty: true,
|
|
62
68
|
});
|
|
63
|
-
return selectedServers;
|
|
64
69
|
}
|
|
65
70
|
//# sourceMappingURL=mcp-ui.js.map
|
package/dist/ui/mcp-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-ui.js","sourceRoot":"","sources":["../../src/ui/mcp-ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-ui.js","sourceRoot":"","sources":["../../src/ui/mcp-ui.ts"],"names":[],"mappings":"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"}
|
package/dist/util/cli.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type Cell = {
|
|
|
4
4
|
formatted: string;
|
|
5
5
|
};
|
|
6
6
|
export declare function printTable(header: string[], rows: Cell[][]): void;
|
|
7
|
-
export type DistributionStatus = 'written' | 'skipped' | 'error' | 'deleted';
|
|
7
|
+
export type DistributionStatus = 'written' | 'skipped' | 'error' | 'deleted' | 'conflict';
|
|
8
8
|
export interface DistributionResultLike {
|
|
9
9
|
status: DistributionStatus;
|
|
10
10
|
reason?: string;
|