agent-switchboard 0.1.18 → 0.1.19

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 CHANGED
@@ -126,7 +126,7 @@ Project-aware outputs (when using `--project <path>`):
126
126
  - Skills (project-level supported):
127
127
  - Claude Code → `<project>/.claude/skills/`
128
128
  - Gemini → `<project>/.gemini/skills/`
129
- - OpenCode → `<project>/.opencode/skills/`
129
+ - OpenCode → `<project>/.opencode/skill/`
130
130
  - Codex → global only (`~/.codex/skills/`)
131
131
 
132
132
  ## Rule Library
@@ -285,7 +285,7 @@ Type to fuzzy filter the list, then confirm to persist the selection. Skills are
285
285
  - Claude Code → `~/.claude/skills/<skill-id>/`
286
286
  - Codex → `~/.codex/skills/<skill-id>/`
287
287
  - Gemini → `~/.gemini/skills/<skill-id>/`
288
- - OpenCode → `~/.config/opencode/skills/<skill-id>/`
288
+ - OpenCode → `~/.config/opencode/skill/<skill-id>/`
289
289
 
290
290
  ### Inventory
291
291
 
@@ -1,3 +1,4 @@
1
+ import fs from 'node:fs';
1
2
  import path from 'node:path';
2
3
  import { getClaudeDir, getCodexDir, getGeminiDir, getOpencodeRoot, getProjectClaudeDir, getProjectGeminiDir, getProjectOpencodeRoot, } from '../config/paths.js';
3
4
  import { distributeBundle, } from '../library/distribute-bundle.js';
@@ -29,9 +30,9 @@ function resolveSkillsParentDir(platform, scope) {
29
30
  return path.join(getGeminiDir(), 'skills');
30
31
  case 'opencode':
31
32
  if (scope?.project) {
32
- return path.join(getProjectOpencodeRoot(scope.project), 'skills');
33
+ return path.join(getProjectOpencodeRoot(scope.project), 'skill');
33
34
  }
34
- return path.join(getOpencodeRoot(), 'skills');
35
+ return path.join(getOpencodeRoot(), 'skill');
35
36
  }
36
37
  }
37
38
  /**
@@ -68,6 +69,23 @@ export function distributeSkills(scope) {
68
69
  scope,
69
70
  filterSelected,
70
71
  });
72
+ // Remove legacy OpenCode `skills/` (plural) directories left by earlier versions.
73
+ // OpenCode uses singular `skill/`; the plural form is rejected by its INVALID_DIRS guard.
74
+ const legacyOpencodeDirs = [
75
+ path.join(getOpencodeRoot(), 'skills'),
76
+ ...(scope?.project ? [path.join(getProjectOpencodeRoot(scope.project), 'skills')] : []),
77
+ ];
78
+ for (const legacyDir of legacyOpencodeDirs) {
79
+ if (fs.existsSync(legacyDir) && fs.statSync(legacyDir).isDirectory()) {
80
+ fs.rmSync(legacyDir, { recursive: true });
81
+ outcome.results.push({
82
+ platform: 'opencode',
83
+ targetDir: legacyDir,
84
+ status: 'deleted',
85
+ reason: 'legacy plural path',
86
+ });
87
+ }
88
+ }
71
89
  // Calculate summary
72
90
  const successPlatforms = new Set();
73
91
  let totalWritten = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/skills/distribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/skills/distribution.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-switchboard",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "Unified MCP server manager for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {