agent-switchboard 0.3.6 → 0.3.7

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 (44) hide show
  1. package/README.md +9 -9
  2. package/dist/config/application-config.d.ts +1 -0
  3. package/dist/config/application-config.js +57 -38
  4. package/dist/config/application-config.js.map +1 -1
  5. package/dist/config/layered-config.d.ts +1 -0
  6. package/dist/config/layered-config.js +11 -1
  7. package/dist/config/layered-config.js.map +1 -1
  8. package/dist/config/schemas.d.ts +56 -35
  9. package/dist/config/schemas.js +24 -9
  10. package/dist/config/schemas.js.map +1 -1
  11. package/dist/index.js +69 -437
  12. package/dist/index.js.map +1 -1
  13. package/dist/library/distribute-bundle.js +6 -9
  14. package/dist/library/distribute-bundle.js.map +1 -1
  15. package/dist/library/distribute.js +7 -10
  16. package/dist/library/distribute.js.map +1 -1
  17. package/dist/library/state.d.ts +3 -0
  18. package/dist/library/state.js +25 -5
  19. package/dist/library/state.js.map +1 -1
  20. package/dist/mcp/distribution.d.ts +13 -0
  21. package/dist/mcp/distribution.js +121 -0
  22. package/dist/mcp/distribution.js.map +1 -0
  23. package/dist/rules/composer.js +22 -18
  24. package/dist/rules/composer.js.map +1 -1
  25. package/dist/rules/distribution.d.ts +1 -1
  26. package/dist/rules/distribution.js +22 -5
  27. package/dist/rules/distribution.js.map +1 -1
  28. package/dist/rules/state.d.ts +3 -0
  29. package/dist/rules/state.js +27 -3
  30. package/dist/rules/state.js.map +1 -1
  31. package/dist/sync/command.d.ts +15 -0
  32. package/dist/sync/command.js +268 -0
  33. package/dist/sync/command.js.map +1 -0
  34. package/dist/targets/registry.d.ts +1 -1
  35. package/dist/targets/registry.js +1 -1
  36. package/dist/ui/library-selector.js +25 -2
  37. package/dist/ui/library-selector.js.map +1 -1
  38. package/dist/ui/rule-ui.d.ts +2 -2
  39. package/dist/ui/rule-ui.js +13 -4
  40. package/dist/ui/rule-ui.js.map +1 -1
  41. package/dist/ui/selection-state.d.ts +7 -0
  42. package/dist/ui/selection-state.js +13 -0
  43. package/dist/ui/selection-state.js.map +1 -0
  44. package/package.json +1 -1
@@ -0,0 +1,268 @@
1
+ import chalk from 'chalk';
2
+ import { distributeCommands } from '../commands/distribution.js';
3
+ import { resolveScopedSectionConfig } from '../config/application-config.js';
4
+ import { scopeToLayerOptions } from '../config/scope.js';
5
+ import { loadSwitchboardConfigWithLayers } from '../config/switchboard-config.js';
6
+ import { distributeHooks } from '../hooks/distribution.js';
7
+ import { updateRemoteSources } from '../library/sources.js';
8
+ import { resetAgentSyncCache } from '../library/state.js';
9
+ import { distributeMcp } from '../mcp/distribution.js';
10
+ import { buildPluginIndex } from '../plugins/index.js';
11
+ import { distributeRules } from '../rules/distribution.js';
12
+ import { distributeSkills } from '../skills/distribution.js';
13
+ import { distributeSubagents } from '../subagents/distribution.js';
14
+ import { initTargets } from '../targets/init.js';
15
+ import { filterInstalled, getTargetById, getTargetsForSection, registerConfigTargets, } from '../targets/registry.js';
16
+ import { printCompactDistributions, shortenPath, } from '../util/cli.js';
17
+ export async function runSyncCommand(options) {
18
+ const { scope, updateSources = true } = options;
19
+ console.log(chalk.yellow('⚠ Sync overwrites agent config without diff.'));
20
+ console.log();
21
+ if (updateSources) {
22
+ const remoteResults = updateRemoteSources();
23
+ if (remoteResults.length > 0) {
24
+ console.log(chalk.blue('Sources:'));
25
+ for (const result of remoteResults) {
26
+ if (result.status === 'updated') {
27
+ console.log(` ${chalk.green('✓')} ${chalk.cyan(result.namespace)} ${chalk.dim(result.url)}`);
28
+ }
29
+ else {
30
+ console.log(` ${chalk.yellow('⚠')} ${chalk.cyan(result.namespace)} ${chalk.yellow(result.error ?? 'update failed')}`);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ if (scope?.project) {
36
+ const { config: globalConfig, layers: globalLayers } = loadSwitchboardConfigWithLayers(scopeToLayerOptions(undefined));
37
+ await initTargets(globalConfig);
38
+ console.log(chalk.blue.bold('── Global ──'));
39
+ const globalErrors = await runSyncPhase({
40
+ scope: undefined,
41
+ config: globalConfig,
42
+ layers: globalLayers,
43
+ });
44
+ console.log();
45
+ resetAgentSyncCache();
46
+ console.log(chalk.blue.bold(`── Project: ${shortenPath(scope.project)} ──`));
47
+ const { config: projectConfig, layers: projectLayers } = loadSwitchboardConfigWithLayers(scopeToLayerOptions(scope));
48
+ const projectTargets = projectConfig.targets;
49
+ if (projectTargets && Object.keys(projectTargets).length > 0) {
50
+ registerConfigTargets(projectTargets);
51
+ }
52
+ const projectErrors = await runSyncPhase({
53
+ scope,
54
+ config: projectConfig,
55
+ layers: projectLayers,
56
+ });
57
+ return globalErrors || projectErrors;
58
+ }
59
+ const { config, layers } = loadSwitchboardConfigWithLayers(scopeToLayerOptions(scope));
60
+ await initTargets(config);
61
+ return runSyncPhase({ scope, config, layers });
62
+ }
63
+ export async function runSyncPhase({ scope, config, layers }) {
64
+ const activeLayers = [];
65
+ if (layers.user.exists)
66
+ activeLayers.push(shortenPath(layers.user.path));
67
+ if (layers.profile?.exists)
68
+ activeLayers.push(shortenPath(layers.profile.path));
69
+ if (layers.project?.exists)
70
+ activeLayers.push(shortenPath(layers.project.path));
71
+ console.log(`${chalk.blue('Config:')} ${activeLayers.length > 0 ? chalk.dim(activeLayers.join(' + ')) : chalk.gray('no config files')}`);
72
+ const assumeInstalledSet = new Set(config.applications.assume_installed);
73
+ const appsLabel = config.applications.enabled.length > 0
74
+ ? config.applications.enabled
75
+ .map((id) => {
76
+ const target = getTargetById(id);
77
+ if (target?.isInstalled?.() === false) {
78
+ if (assumeInstalledSet.has(id))
79
+ return chalk.yellow(`${id} (assumed installed)`);
80
+ return chalk.gray(`${id} (not installed)`);
81
+ }
82
+ return chalk.cyan(id);
83
+ })
84
+ .join(', ')
85
+ : chalk.gray('none configured');
86
+ console.log(`${chalk.blue('Apps:')} ${appsLabel}`);
87
+ console.log();
88
+ const cursorSkillsDeduped = config.applications.enabled.includes('claude-code') &&
89
+ resolveScopedSectionConfig('skills', 'claude-code', scope).enabled.length > 0;
90
+ console.log(chalk.blue('Inventory:'));
91
+ {
92
+ const sections = ['mcp', 'rules', 'commands', 'agents', 'skills', 'hooks'];
93
+ const sectionPlatforms = {};
94
+ for (const section of sections) {
95
+ let ids = filterInstalled(getTargetsForSection(section), assumeInstalledSet).map((t) => t.id);
96
+ if (section === 'skills' && cursorSkillsDeduped) {
97
+ ids = ids.filter((id) => id !== 'cursor');
98
+ }
99
+ sectionPlatforms[section] = ids;
100
+ }
101
+ const termWidth = process.stdout.columns || 80;
102
+ const maxSectionLen = Math.max(...sections.map((section) => section.length));
103
+ const maxCountLen = Math.max(...sections.map((section) => `(${config[section].enabled.length})`.length));
104
+ const prefixPlainLen = 2 + maxSectionLen + 1 + maxCountLen + 2;
105
+ const fitPreview = (ids, maxWidth) => {
106
+ if (ids.length === 0)
107
+ return chalk.gray('none');
108
+ const full = ids.join(', ');
109
+ if (full.length <= maxWidth)
110
+ return full;
111
+ let text = '';
112
+ let shown = 0;
113
+ for (let index = 0; index < ids.length; index++) {
114
+ const separator = shown > 0 ? ', ' : '';
115
+ const candidate = text + separator + ids[index];
116
+ const remaining = ids.length - (index + 1);
117
+ if (remaining > 0) {
118
+ const suffix = `, ... (+${remaining} more)`;
119
+ if (candidate.length + suffix.length > maxWidth && shown > 0) {
120
+ const left = ids.length - shown;
121
+ return `${text}${chalk.gray(`, ... (+${left} more)`)}`;
122
+ }
123
+ }
124
+ text = candidate;
125
+ shown++;
126
+ }
127
+ return text;
128
+ };
129
+ for (const section of sections) {
130
+ const globalActive = config[section].enabled;
131
+ const globalCount = globalActive.length;
132
+ const supported = new Set(sectionPlatforms[section] ?? []);
133
+ const applicableApps = config.applications.enabled.filter((id) => supported.has(id));
134
+ const effectiveByApp = new Map();
135
+ for (const appId of applicableApps) {
136
+ effectiveByApp.set(appId, resolveScopedSectionConfig(section, appId, scope).enabled);
137
+ }
138
+ const perAppParts = applicableApps.map((appId) => {
139
+ const enabled = effectiveByApp.get(appId) ?? [];
140
+ const delta = enabled.length - globalCount;
141
+ const suffix = delta === 0 ? '' : delta > 0 ? `(+${delta})` : `(${delta})`;
142
+ return `${appId}:${enabled.length}${suffix}`;
143
+ });
144
+ const union = new Set();
145
+ for (const [, ids] of effectiveByApp) {
146
+ for (const id of ids)
147
+ union.add(id);
148
+ }
149
+ const previewIds = globalActive.length > 0 ? [...globalActive] : [...union];
150
+ const paddedSection = section.padEnd(maxSectionLen);
151
+ const countStr = `(${globalCount})`.padStart(maxCountLen);
152
+ const appsStr = perAppParts.join(' ');
153
+ console.log(` ${chalk.cyan(paddedSection)} ${chalk.gray(countStr)} ${appsStr}`);
154
+ if (previewIds.length > 0) {
155
+ const indent = ' '.repeat(prefixPlainLen);
156
+ const previewWidth = Math.max(20, termWidth - prefixPlainLen - 2);
157
+ const preview = fitPreview(previewIds, previewWidth);
158
+ console.log(`${indent}${chalk.gray('→')} ${preview}`);
159
+ }
160
+ }
161
+ }
162
+ {
163
+ const pluginIndex = buildPluginIndex();
164
+ const enabledPluginRefs = config.plugins.enabled;
165
+ if (enabledPluginRefs.length > 0) {
166
+ const names = enabledPluginRefs
167
+ .map((pluginId) => {
168
+ const plugin = pluginIndex.get(pluginId);
169
+ return plugin ? pluginId : chalk.strikethrough(pluginId);
170
+ })
171
+ .join(', ');
172
+ console.log(` ${chalk.magenta('plugins')} ${chalk.gray(`(${enabledPluginRefs.length})`)} ${names}`);
173
+ }
174
+ else if (pluginIndex.plugins.length > 0) {
175
+ console.log(` ${chalk.magenta('plugins')} ${chalk.gray('(0)')} ${chalk.gray(`${pluginIndex.plugins.length} available`)}`);
176
+ }
177
+ }
178
+ console.log();
179
+ const notes = [];
180
+ if (cursorSkillsDeduped && config.applications.enabled.includes('cursor')) {
181
+ notes.push('cursor reads skills via claude-code');
182
+ }
183
+ if (config.distribution.use_agents_dir) {
184
+ const agentsMembers = ['codex', 'gemini', 'opencode'].filter((appId) => config.applications.enabled.includes(appId));
185
+ if (agentsMembers.length > 0) {
186
+ notes.push(`skills for ${agentsMembers.join(', ')} sync to shared .agents/skills`);
187
+ }
188
+ }
189
+ for (let index = 0; index < notes.length; index++) {
190
+ const prefix = index === 0 ? ' Note: ' : ' ';
191
+ console.log(chalk.gray(`${prefix}${notes[index]}.`));
192
+ }
193
+ if (notes.length > 0)
194
+ console.log();
195
+ const activeAppIds = config.applications.enabled;
196
+ const mcpDistribution = await distributeMcp(scope, undefined, {
197
+ useSpinner: false,
198
+ assumeInstalled: assumeInstalledSet,
199
+ });
200
+ const ruleDistribution = distributeRules(undefined, { activeAppIds, assumeInstalled: assumeInstalledSet }, scope);
201
+ const commandDistribution = distributeCommands(scope, activeAppIds, assumeInstalledSet);
202
+ const agentDistribution = distributeSubagents(scope, activeAppIds, assumeInstalledSet);
203
+ const skillDistribution = distributeSkills(scope, {
204
+ useAgentsDir: config.distribution.use_agents_dir,
205
+ activeAppIds,
206
+ assumeInstalled: assumeInstalledSet,
207
+ });
208
+ const hookDistribution = distributeHooks(scope, activeAppIds, assumeInstalledSet);
209
+ const distSections = [
210
+ {
211
+ label: 'mcp',
212
+ results: mcpDistribution,
213
+ emptyMessage: 'no apps configured',
214
+ getTargetLabel: (result) => result.application,
215
+ getPath: (result) => result.filePath,
216
+ },
217
+ {
218
+ label: 'rules',
219
+ results: ruleDistribution.results,
220
+ emptyMessage: 'none',
221
+ getTargetLabel: (result) => result.agent,
222
+ getPath: (result) => result.filePath,
223
+ },
224
+ {
225
+ label: 'commands',
226
+ results: commandDistribution.results,
227
+ emptyMessage: 'none',
228
+ getTargetLabel: (result) => result.platform,
229
+ getPath: (result) => result.filePath,
230
+ },
231
+ {
232
+ label: 'agents',
233
+ results: agentDistribution.results,
234
+ emptyMessage: 'none',
235
+ getTargetLabel: (result) => result.platform,
236
+ getPath: (result) => result.filePath,
237
+ },
238
+ {
239
+ label: 'skills',
240
+ results: skillDistribution.results,
241
+ emptyMessage: 'none',
242
+ getTargetLabel: (result) => {
243
+ const skillResult = result;
244
+ if (skillResult.platform === 'agents') {
245
+ const members = ['codex', 'gemini', 'opencode'].filter((appId) => activeAppIds.includes(appId));
246
+ return members.length > 0 ? members.join('+') : 'agents';
247
+ }
248
+ return skillResult.platform;
249
+ },
250
+ getPath: (result) => result.targetDir,
251
+ },
252
+ {
253
+ label: 'hooks',
254
+ results: hookDistribution.results,
255
+ emptyMessage: 'none',
256
+ getTargetLabel: (result) => result.platform,
257
+ getPath: (result) => {
258
+ const hookResult = result;
259
+ return 'filePath' in hookResult
260
+ ? hookResult.filePath
261
+ : hookResult.targetDir;
262
+ },
263
+ },
264
+ ];
265
+ const { hasErrors } = printCompactDistributions(distSections);
266
+ return hasErrors;
267
+ }
268
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/sync/command.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export declare function getActiveTargetsForSection(section: TargetSection, activ
23
23
  export declare function registerExtensionTarget(target: ApplicationTarget): void;
24
24
  /**
25
25
  * Get all targets (built-in + extension) that support a given section,
26
- * regardless of whether they are in `applications.active`.
26
+ * regardless of whether they are in `applications.enabled`.
27
27
  * Used by distribution modules to enumerate all known platforms.
28
28
  */
29
29
  export declare function getTargetsForSection(section: TargetSection): ApplicationTarget[];
@@ -54,7 +54,7 @@ export function registerExtensionTarget(target) {
54
54
  }
55
55
  /**
56
56
  * Get all targets (built-in + extension) that support a given section,
57
- * regardless of whether they are in `applications.active`.
57
+ * regardless of whether they are in `applications.enabled`.
58
58
  * Used by distribution modules to enumerate all known platforms.
59
59
  */
60
60
  export function getTargetsForSection(section) {
@@ -1,7 +1,8 @@
1
1
  import { confirm, input } from '@inquirer/prompts';
2
2
  import chalk from 'chalk';
3
- import { loadLibraryStateSection, updateLibraryStateSection } from '../library/state.js';
3
+ import { loadLibraryStateSection, loadWritableLibraryStateSection, updateLibraryStateSection, } from '../library/state.js';
4
4
  import { fuzzyMultiSelect } from './fuzzy-multi-select.js';
5
+ import { shouldPersistSelection } from './selection-state.js';
5
6
  function formatOrderList(order, map, getTitle) {
6
7
  return order
7
8
  .map((id, index) => {
@@ -80,7 +81,8 @@ export async function showLibrarySelector(opts) {
80
81
  const map = new Map();
81
82
  for (const entry of entries)
82
83
  map.set(opts.getId(entry), entry);
83
- const state = loadLibraryStateSection(opts.section, opts.scope);
84
+ const state = loadWritableLibraryStateSection(opts.section, opts.scope);
85
+ const effectiveState = loadLibraryStateSection(opts.section, opts.scope);
84
86
  const buildChoiceList = (activeIds) => {
85
87
  const activeSet = new Set(activeIds);
86
88
  const orderedActive = [];
@@ -141,16 +143,37 @@ export async function showLibrarySelector(opts) {
141
143
  default: false,
142
144
  });
143
145
  if (confirmed) {
146
+ if (!shouldPersistSelection({
147
+ currentEnabled: currentSelection,
148
+ effectiveEnabled: effectiveState.enabled,
149
+ selectedEnabled: [],
150
+ })) {
151
+ return { enabled: [] };
152
+ }
144
153
  updateLibraryStateSection(opts.section, () => ({ enabled: [], agentSync: {} }), opts.scope);
145
154
  return { enabled: [] };
146
155
  }
147
156
  continue;
148
157
  }
149
158
  if (!allowOrdering) {
159
+ if (!shouldPersistSelection({
160
+ currentEnabled: currentSelection,
161
+ effectiveEnabled: effectiveState.enabled,
162
+ selectedEnabled: sanitized,
163
+ })) {
164
+ return { enabled: sanitized };
165
+ }
150
166
  updateLibraryStateSection(opts.section, () => ({ enabled: sanitized, agentSync: {} }), opts.scope);
151
167
  return { enabled: sanitized };
152
168
  }
153
169
  const ordered = await promptOrder(opts.noun, sanitized, map, opts.getTitle);
170
+ if (!shouldPersistSelection({
171
+ currentEnabled: currentSelection,
172
+ effectiveEnabled: effectiveState.enabled,
173
+ selectedEnabled: ordered,
174
+ })) {
175
+ return { enabled: ordered };
176
+ }
154
177
  updateLibraryStateSection(opts.section, () => ({ enabled: ordered, agentSync: {} }), opts.scope);
155
178
  return { enabled: ordered };
156
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"library-selector.js","sourceRoot":"","sources":["../../src/ui/library-selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library-selector.js","sourceRoot":"","sources":["../../src/ui/library-selector.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { ConfigScope } from '../config/scope.js';
2
- interface RuleSelectionResult {
2
+ export interface RuleSelectionResult {
3
3
  enabled: string[];
4
+ explicitEmpty: boolean;
4
5
  }
5
6
  export interface RuleSelectorOptions {
6
7
  scope?: ConfigScope;
7
8
  pageSize?: number;
8
9
  }
9
10
  export declare function showRuleSelector(options?: RuleSelectorOptions): Promise<RuleSelectionResult | null>;
10
- export {};
@@ -1,9 +1,10 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import chalk from 'chalk';
3
3
  import { loadRuleLibrary } from '../rules/library.js';
4
- import { loadRuleState } from '../rules/state.js';
4
+ import { loadRuleState, loadWritableRuleState } from '../rules/state.js';
5
5
  import { fuzzyMultiSelect } from './fuzzy-multi-select.js';
6
6
  import { promptOrder } from './library-selector.js';
7
+ import { shouldPersistSelection } from './selection-state.js';
7
8
  export async function showRuleSelector(options) {
8
9
  const scope = options?.scope;
9
10
  const pageSize = options?.pageSize ?? 20;
@@ -18,7 +19,8 @@ export async function showRuleSelector(options) {
18
19
  console.log(chalk.dim(` ---\n title: Example Rule\n description: Helpful note\n tags:\n - hygiene\n ---\n Always lint before committing.`));
19
20
  return null;
20
21
  }
21
- const state = loadRuleState(scope);
22
+ const state = loadWritableRuleState(scope);
23
+ const effectiveState = loadRuleState(scope);
22
24
  const ruleMap = new Map();
23
25
  for (const rule of rules) {
24
26
  ruleMap.set(rule.id, rule);
@@ -87,12 +89,19 @@ export async function showRuleSelector(options) {
87
89
  default: false,
88
90
  });
89
91
  if (confirmed) {
90
- return { enabled: [] };
92
+ return {
93
+ enabled: [],
94
+ explicitEmpty: shouldPersistSelection({
95
+ currentEnabled: state.enabled,
96
+ effectiveEnabled: effectiveState.enabled,
97
+ selectedEnabled: [],
98
+ }),
99
+ };
91
100
  }
92
101
  continue;
93
102
  }
94
103
  const ordered = await promptOrder('rule', sanitized, ruleMap, (rule) => rule.metadata.title ?? rule.id);
95
- return { enabled: ordered };
104
+ return { enabled: ordered, explicitEmpty: false };
96
105
  }
97
106
  }
98
107
  //# sourceMappingURL=rule-ui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-ui.js","sourceRoot":"","sources":["../../src/ui/rule-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-ui.js","sourceRoot":"","sources":["../../src/ui/rule-ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface SelectionPersistenceOptions {
2
+ currentEnabled: string[];
3
+ effectiveEnabled: string[];
4
+ selectedEnabled: string[];
5
+ }
6
+ export declare function arraysEqual(a: string[], b: string[]): boolean;
7
+ export declare function shouldPersistSelection(options: SelectionPersistenceOptions): boolean;
@@ -0,0 +1,13 @@
1
+ export function arraysEqual(a, b) {
2
+ if (a.length !== b.length)
3
+ return false;
4
+ return a.every((value, index) => value === b[index]);
5
+ }
6
+ export function shouldPersistSelection(options) {
7
+ const { currentEnabled, effectiveEnabled, selectedEnabled } = options;
8
+ if (selectedEnabled.length === 0) {
9
+ return currentEnabled.length > 0 || effectiveEnabled.length > 0;
10
+ }
11
+ return !arraysEqual(currentEnabled, selectedEnabled);
12
+ }
13
+ //# sourceMappingURL=selection-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-state.js","sourceRoot":"","sources":["../../src/ui/selection-state.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,WAAW,CAAC,CAAW,EAAE,CAAW;IAClD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAoC;IACzE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IACtE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-switchboard",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "Unified MCP server manager for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {