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.
Files changed (83) hide show
  1. package/dist/agents/claude-code.d.ts +2 -0
  2. package/dist/agents/claude-code.js +5 -5
  3. package/dist/agents/claude-code.js.map +1 -1
  4. package/dist/agents/codex.d.ts +6 -0
  5. package/dist/agents/codex.js +65 -2
  6. package/dist/agents/codex.js.map +1 -1
  7. package/dist/agents/cursor.d.ts +2 -0
  8. package/dist/agents/cursor.js +5 -3
  9. package/dist/agents/cursor.js.map +1 -1
  10. package/dist/agents/gemini.d.ts +2 -0
  11. package/dist/agents/gemini.js +23 -3
  12. package/dist/agents/gemini.js.map +1 -1
  13. package/dist/agents/json-utils.d.ts +5 -0
  14. package/dist/agents/json-utils.js +21 -0
  15. package/dist/agents/json-utils.js.map +1 -1
  16. package/dist/agents/opencode.d.ts +2 -0
  17. package/dist/agents/opencode.js +14 -6
  18. package/dist/agents/opencode.js.map +1 -1
  19. package/dist/agents/trae.d.ts +2 -0
  20. package/dist/agents/trae.js +5 -3
  21. package/dist/agents/trae.js.map +1 -1
  22. package/dist/commands/distribution.d.ts +2 -2
  23. package/dist/commands/distribution.js +4 -1
  24. package/dist/commands/distribution.js.map +1 -1
  25. package/dist/config/application-config.js +2 -2
  26. package/dist/config/application-config.js.map +1 -1
  27. package/dist/config/schemas.d.ts +683 -0
  28. package/dist/config/schemas.js +33 -0
  29. package/dist/config/schemas.js.map +1 -1
  30. package/dist/index.js +4 -28
  31. package/dist/index.js.map +1 -1
  32. package/dist/library/distribute-bundle.d.ts +13 -1
  33. package/dist/library/distribute-bundle.js +154 -35
  34. package/dist/library/distribute-bundle.js.map +1 -1
  35. package/dist/library/distribute.d.ts +16 -1
  36. package/dist/library/distribute.js +107 -34
  37. package/dist/library/distribute.js.map +1 -1
  38. package/dist/manifest/store.d.ts +53 -0
  39. package/dist/manifest/store.js +183 -0
  40. package/dist/manifest/store.js.map +1 -0
  41. package/dist/manifest/types.d.ts +52 -0
  42. package/dist/manifest/types.js +9 -0
  43. package/dist/manifest/types.js.map +1 -0
  44. package/dist/mcp/distribution.d.ts +5 -0
  45. package/dist/mcp/distribution.js +42 -10
  46. package/dist/mcp/distribution.js.map +1 -1
  47. package/dist/plugins/index.js +21 -7
  48. package/dist/plugins/index.js.map +1 -1
  49. package/dist/rules/block-merge.d.ts +24 -0
  50. package/dist/rules/block-merge.js +68 -0
  51. package/dist/rules/block-merge.js.map +1 -0
  52. package/dist/rules/distribution.d.ts +7 -0
  53. package/dist/rules/distribution.js +94 -8
  54. package/dist/rules/distribution.js.map +1 -1
  55. package/dist/skills/distribution.d.ts +5 -1
  56. package/dist/skills/distribution.js +9 -0
  57. package/dist/skills/distribution.js.map +1 -1
  58. package/dist/subagents/distribution.d.ts +2 -2
  59. package/dist/subagents/distribution.js +4 -1
  60. package/dist/subagents/distribution.js.map +1 -1
  61. package/dist/sync/command.js +58 -14
  62. package/dist/sync/command.js.map +1 -1
  63. package/dist/targets/builtin/claude-code.js +3 -1
  64. package/dist/targets/builtin/claude-code.js.map +1 -1
  65. package/dist/targets/builtin/codex.js +3 -1
  66. package/dist/targets/builtin/codex.js.map +1 -1
  67. package/dist/targets/builtin/cursor.js +3 -1
  68. package/dist/targets/builtin/cursor.js.map +1 -1
  69. package/dist/targets/builtin/gemini.js +1 -1
  70. package/dist/targets/builtin/gemini.js.map +1 -1
  71. package/dist/targets/builtin/opencode.js +1 -1
  72. package/dist/targets/builtin/opencode.js.map +1 -1
  73. package/dist/targets/builtin/trae.js +3 -1
  74. package/dist/targets/builtin/trae.js.map +1 -1
  75. package/dist/targets/types.d.ts +8 -1
  76. package/dist/targets/types.js.map +1 -1
  77. package/dist/types.d.ts +0 -11
  78. package/dist/types.js.map +1 -1
  79. package/dist/ui/mcp-ui.d.ts +1 -10
  80. package/dist/ui/mcp-ui.js +33 -28
  81. package/dist/ui/mcp-ui.js.map +1 -1
  82. package/dist/util/cli.d.ts +1 -1
  83. 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,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;KACjF;IAED,KAAK,EAAE;QACL,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;KAC7B;IAED,QAAQ,EAAE;QACR,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACzD,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK;QAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,EAAE,GAAG,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACvD,OAAO,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,qBAAqB,EAAE,WAAW;KACnC;IAED,MAAM,EAAE;QACN,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK;QAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,EAAE,GAAG,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACvD,OAAO,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,qBAAqB,EAAE,WAAW;KACnC;IAED,MAAM,EAAE;QACN,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,gBAAgB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC"}
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":"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"}
1
+ {"version":3,"file":"trae.js","sourceRoot":"","sources":["../../../src/targets/builtin/trae.ts"],"names":[],"mappings":"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"}
@@ -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;AAkGH,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"}
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;;AA0BH,mFAAmF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAcH,mFAAmF"}
@@ -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
- * Create checkbox items for MCP servers
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
- * Create checkbox items for MCP servers
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
- for (const [name] of Object.entries(config.mcpServers)) {
18
- const isEnabled = enabledSet.has(name);
19
- const icon = isEnabled ? chalk.green('✓') : chalk.red('✗');
20
- const status = isEnabled ? chalk.gray('(enabled)') : chalk.gray('(disabled)');
21
- items.push({
22
- name: `${icon} ${name} ${status}`,
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
- checked: isEnabled,
31
+ label: name,
32
+ hint: hint ? String(hint) : undefined,
33
+ keywords,
25
34
  });
26
35
  }
27
- return items.sort((a, b) => a.value.localeCompare(b.value));
36
+ return choices;
28
37
  }
29
38
  /**
30
- * Show interactive checkbox UI for MCP server selection
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 items = createMcpServerItems(options.enabled);
37
- if (items.length === 0) {
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
- console.log(chalk.blue('MCP Server Management'));
56
- console.log(chalk.gray('Select which MCP servers should be enabled:'));
57
- console.log();
58
- const selectedServers = await checkbox({
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
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-ui.js","sourceRoot":"","sources":["../../src/ui/mcp-ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQxD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAiB;IACpD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE9E,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE;YACjC,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2B;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC;;;;;;;;IAQZ,CAAC,CACA,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC;QACrC,OAAO,EAAE,wEAAwE;QACjF,OAAO,EAAE,KAAK;QACd,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"mcp-ui.js","sourceRoot":"","sources":["../../src/ui/mcp-ui.ts"],"names":[],"mappings":"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"}
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-switchboard",
3
- "version": "0.3.10",
3
+ "version": "0.4.1",
4
4
  "description": "Unified MCP server manager for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {