agent-switchboard 0.1.19 → 0.1.25
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 +4 -4
- package/dist/agents/codex.d.ts +32 -1
- package/dist/agents/codex.js +105 -18
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/cursor.d.ts +1 -4
- package/dist/agents/cursor.js +4 -12
- package/dist/agents/cursor.js.map +1 -1
- package/dist/commands/distribution.d.ts +1 -1
- package/dist/commands/distribution.js +20 -4
- package/dist/commands/distribution.js.map +1 -1
- package/dist/commands/importer.d.ts +1 -1
- package/dist/commands/importer.js +4 -0
- package/dist/commands/importer.js.map +1 -1
- package/dist/config/paths.d.ts +14 -0
- package/dist/config/paths.js +22 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/schemas.d.ts +50 -0
- package/dist/config/schemas.js +18 -0
- package/dist/config/schemas.js.map +1 -1
- package/dist/index.js +41 -16
- package/dist/index.js.map +1 -1
- package/dist/rules/agents.d.ts +2 -1
- package/dist/rules/agents.js +2 -1
- package/dist/rules/agents.js.map +1 -1
- package/dist/rules/distribution.d.ts +1 -0
- package/dist/rules/distribution.js +4 -1
- package/dist/rules/distribution.js.map +1 -1
- package/dist/skills/distribution.d.ts +21 -9
- package/dist/skills/distribution.js +155 -31
- package/dist/skills/distribution.js.map +1 -1
- package/dist/skills/importer.d.ts +1 -1
- package/dist/subagents/distribution.d.ts +1 -1
- package/dist/subagents/distribution.js +38 -2
- package/dist/subagents/distribution.js.map +1 -1
- package/dist/subagents/importer.d.ts +1 -1
- package/dist/subagents/importer.js +2 -1
- package/dist/subagents/importer.js.map +1 -1
- package/dist/subagents/inventory.js +2 -2
- package/dist/subagents/inventory.js.map +1 -1
- package/dist/ui/subagent-ui.js +5 -1
- package/dist/ui/subagent-ui.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import type { ConfigScope } from '../config/scope.js';
|
|
2
2
|
import { type BundleDistributionResult } from '../library/distribute-bundle.js';
|
|
3
|
-
export type SkillPlatform = 'claude-code' | 'codex' | 'gemini' | 'opencode';
|
|
3
|
+
export type SkillPlatform = 'claude-code' | 'codex' | 'gemini' | 'opencode' | 'cursor';
|
|
4
4
|
export declare const SKILL_PLATFORMS: SkillPlatform[];
|
|
5
|
+
export type SkillTarget = 'claude-code' | 'agents';
|
|
6
|
+
export declare const SKILL_TARGETS: SkillTarget[];
|
|
5
7
|
/**
|
|
6
|
-
* Resolve target directory for a skill on a specific
|
|
8
|
+
* Resolve target directory for a skill on a specific target.
|
|
7
9
|
*/
|
|
8
|
-
export declare function resolveSkillTargetDir(
|
|
10
|
+
export declare function resolveSkillTargetDir(target: string, id: string, scope?: ConfigScope): string;
|
|
9
11
|
export interface SkillDistributionOutcome {
|
|
10
|
-
results: BundleDistributionResult<
|
|
11
|
-
/**
|
|
12
|
-
|
|
12
|
+
results: BundleDistributionResult<string>[];
|
|
13
|
+
/** Targets where skills were successfully distributed */
|
|
14
|
+
successTargets: string[];
|
|
13
15
|
/** Total skills written */
|
|
14
16
|
totalWritten: number;
|
|
15
17
|
/** Total skills skipped (up-to-date) */
|
|
@@ -18,7 +20,17 @@ export interface SkillDistributionOutcome {
|
|
|
18
20
|
totalErrors: number;
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
|
-
* Distribute active skills to supported
|
|
22
|
-
*
|
|
23
|
+
* Distribute active skills to supported targets.
|
|
24
|
+
*
|
|
25
|
+
* When `useAgentsDir` is true (2-target mode):
|
|
26
|
+
* - `claude-code`: uses Claude Code's per-agent active skills
|
|
27
|
+
* - `agents`: uses the union of active skills across Codex, Gemini, and OpenCode
|
|
28
|
+
* - Legacy platform-specific paths (gemini, opencode) are cleaned up
|
|
29
|
+
*
|
|
30
|
+
* When `useAgentsDir` is false (default, 4-target mode):
|
|
31
|
+
* - Distributes to each platform individually: claude-code, codex, gemini, opencode
|
|
32
|
+
* - Only cleans up OpenCode's legacy plural `skills/` path
|
|
23
33
|
*/
|
|
24
|
-
export declare function distributeSkills(scope?: ConfigScope
|
|
34
|
+
export declare function distributeSkills(scope?: ConfigScope, options?: {
|
|
35
|
+
useAgentsDir?: boolean;
|
|
36
|
+
}): SkillDistributionOutcome;
|
|
@@ -1,27 +1,52 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { getClaudeDir, getCodexDir, getGeminiDir, getOpencodeRoot, getProjectClaudeDir, getProjectGeminiDir, getProjectOpencodeRoot, } from '../config/paths.js';
|
|
3
|
+
import { getClaudeDir, getCodexDir, getCodexSkillsDir, getCursorDir, getGeminiDir, getOpencodeRoot, getProjectClaudeDir, getProjectCodexSkillsDir, getProjectCursorDir, getProjectGeminiDir, getProjectOpencodeRoot, } from '../config/paths.js';
|
|
4
4
|
import { distributeBundle, } from '../library/distribute-bundle.js';
|
|
5
5
|
import { loadLibraryStateSectionForAgent } from '../library/state.js';
|
|
6
6
|
import { listSkillFiles, loadSkillLibrary } from './library.js';
|
|
7
|
-
export const SKILL_PLATFORMS = [
|
|
7
|
+
export const SKILL_PLATFORMS = [
|
|
8
|
+
'claude-code',
|
|
9
|
+
'codex',
|
|
10
|
+
'gemini',
|
|
11
|
+
'opencode',
|
|
12
|
+
'cursor',
|
|
13
|
+
];
|
|
14
|
+
export const SKILL_TARGETS = ['claude-code', 'agents'];
|
|
15
|
+
const AGENTS_TARGET_PLATFORMS = ['codex', 'gemini', 'opencode'];
|
|
8
16
|
/**
|
|
9
|
-
*
|
|
17
|
+
* Check whether cursor skills should be deduped because claude-code already
|
|
18
|
+
* has non-empty active skills for the same scope. Cursor natively scans
|
|
19
|
+
* `.claude/skills/`, so distributing to `.cursor/skills/` as well would
|
|
20
|
+
* create duplicates. Returning `true` means the caller should return an
|
|
21
|
+
* empty selection for cursor (but keep cursor in the platforms array so
|
|
22
|
+
* cleanup of orphan `.cursor/skills/` directories still executes).
|
|
10
23
|
*/
|
|
11
|
-
function
|
|
12
|
-
|
|
24
|
+
function shouldDedupCursorSkills(scope) {
|
|
25
|
+
const claudeState = loadLibraryStateSectionForAgent('skills', 'claude-code', scope);
|
|
26
|
+
return claudeState.active.length > 0;
|
|
13
27
|
}
|
|
14
28
|
/**
|
|
15
|
-
* Resolve parent directory containing all skills for a platform.
|
|
29
|
+
* Resolve parent directory containing all skills for a target/platform.
|
|
30
|
+
*
|
|
31
|
+
* Handles all 7 possible values across both distribution modes:
|
|
32
|
+
* - `'claude-code'` -> `~/.claude/skills/`
|
|
33
|
+
* - `'codex'` -> `~/.codex/skills/`
|
|
34
|
+
* - `'gemini'` -> `~/.gemini/skills/`
|
|
35
|
+
* - `'opencode'` -> `~/.config/opencode/skill/`
|
|
36
|
+
* - `'cursor'` -> `~/.cursor/skills/`
|
|
37
|
+
* - `'agents'` -> `~/.agents/skills/`
|
|
16
38
|
*/
|
|
17
|
-
function resolveSkillsParentDir(
|
|
18
|
-
switch (
|
|
39
|
+
function resolveSkillsParentDir(target, scope) {
|
|
40
|
+
switch (target) {
|
|
19
41
|
case 'claude-code':
|
|
20
42
|
if (scope?.project) {
|
|
21
43
|
return path.join(getProjectClaudeDir(scope.project), 'skills');
|
|
22
44
|
}
|
|
23
45
|
return path.join(getClaudeDir(), 'skills');
|
|
24
46
|
case 'codex':
|
|
47
|
+
if (scope?.project) {
|
|
48
|
+
return path.join(getProjectCodexSkillsDir(scope.project));
|
|
49
|
+
}
|
|
25
50
|
return path.join(getCodexDir(), 'skills');
|
|
26
51
|
case 'gemini':
|
|
27
52
|
if (scope?.project) {
|
|
@@ -33,49 +58,146 @@ function resolveSkillsParentDir(platform, scope) {
|
|
|
33
58
|
return path.join(getProjectOpencodeRoot(scope.project), 'skill');
|
|
34
59
|
}
|
|
35
60
|
return path.join(getOpencodeRoot(), 'skill');
|
|
61
|
+
case 'cursor':
|
|
62
|
+
if (scope?.project) {
|
|
63
|
+
return path.join(getProjectCursorDir(scope.project), 'skills');
|
|
64
|
+
}
|
|
65
|
+
return path.join(getCursorDir(), 'skills');
|
|
66
|
+
case 'agents':
|
|
67
|
+
if (scope?.project) {
|
|
68
|
+
return getProjectCodexSkillsDir(scope.project);
|
|
69
|
+
}
|
|
70
|
+
return getCodexSkillsDir();
|
|
71
|
+
default:
|
|
72
|
+
throw new Error(`Unknown skill target: ${target}`);
|
|
36
73
|
}
|
|
37
74
|
}
|
|
38
75
|
/**
|
|
39
|
-
* Resolve target directory for a skill on a specific
|
|
76
|
+
* Resolve target directory for a skill on a specific target.
|
|
40
77
|
*/
|
|
41
|
-
export function resolveSkillTargetDir(
|
|
42
|
-
return path.join(resolveSkillsParentDir(
|
|
78
|
+
export function resolveSkillTargetDir(target, id, scope) {
|
|
79
|
+
return path.join(resolveSkillsParentDir(target, scope), id);
|
|
43
80
|
}
|
|
44
81
|
/**
|
|
45
|
-
* Distribute active skills to supported
|
|
46
|
-
*
|
|
82
|
+
* Distribute active skills to supported targets.
|
|
83
|
+
*
|
|
84
|
+
* When `useAgentsDir` is true (2-target mode):
|
|
85
|
+
* - `claude-code`: uses Claude Code's per-agent active skills
|
|
86
|
+
* - `agents`: uses the union of active skills across Codex, Gemini, and OpenCode
|
|
87
|
+
* - Legacy platform-specific paths (gemini, opencode) are cleaned up
|
|
88
|
+
*
|
|
89
|
+
* When `useAgentsDir` is false (default, 4-target mode):
|
|
90
|
+
* - Distributes to each platform individually: claude-code, codex, gemini, opencode
|
|
91
|
+
* - Only cleans up OpenCode's legacy plural `skills/` path
|
|
47
92
|
*/
|
|
48
|
-
export function distributeSkills(scope) {
|
|
93
|
+
export function distributeSkills(scope, options) {
|
|
94
|
+
const useAgentsDir = options?.useAgentsDir ?? false;
|
|
49
95
|
const entries = loadSkillLibrary();
|
|
50
|
-
|
|
96
|
+
if (useAgentsDir) {
|
|
97
|
+
return distributeAgentsMode(entries, scope);
|
|
98
|
+
}
|
|
99
|
+
return distributeLegacyMode(entries, scope);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 2-target mode: claude-code + agents
|
|
103
|
+
*/
|
|
104
|
+
function distributeAgentsMode(entries, scope) {
|
|
51
105
|
const cleanup = {
|
|
52
|
-
resolveParentDir: (
|
|
106
|
+
resolveParentDir: (target) => resolveSkillsParentDir(target, scope),
|
|
53
107
|
};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
108
|
+
const filterSelected = (target, allEntries) => {
|
|
109
|
+
if (target === 'cursor') {
|
|
110
|
+
if (shouldDedupCursorSkills(scope))
|
|
111
|
+
return [];
|
|
112
|
+
const state = loadLibraryStateSectionForAgent('skills', target, scope);
|
|
113
|
+
const activeIds = new Set(state.active);
|
|
114
|
+
return allEntries.filter((e) => activeIds.has(e.id));
|
|
115
|
+
}
|
|
116
|
+
if (target === 'agents') {
|
|
117
|
+
const unionIds = new Set();
|
|
118
|
+
for (const agentId of AGENTS_TARGET_PLATFORMS) {
|
|
119
|
+
const state = loadLibraryStateSectionForAgent('skills', agentId, scope);
|
|
120
|
+
for (const id of state.active) {
|
|
121
|
+
unionIds.add(id);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return allEntries.filter((e) => unionIds.has(e.id));
|
|
125
|
+
}
|
|
126
|
+
const state = loadLibraryStateSectionForAgent('skills', target, scope);
|
|
58
127
|
const activeIds = new Set(state.active);
|
|
59
128
|
return allEntries.filter((e) => activeIds.has(e.id));
|
|
60
129
|
};
|
|
61
130
|
const outcome = distributeBundle({
|
|
62
131
|
section: 'skills',
|
|
63
|
-
selected: entries,
|
|
132
|
+
selected: entries,
|
|
133
|
+
platforms: [...SKILL_TARGETS, 'cursor'],
|
|
134
|
+
resolveTargetDir: (target, entry) => resolveSkillTargetDir(target, entry.id, scope),
|
|
135
|
+
listFiles: listSkillFiles,
|
|
136
|
+
getId: (entry) => entry.id,
|
|
137
|
+
cleanup,
|
|
138
|
+
scope,
|
|
139
|
+
filterSelected,
|
|
140
|
+
});
|
|
141
|
+
// Legacy cleanup: remove platform-specific paths that are no longer needed
|
|
142
|
+
// in agents mode (gemini, opencode wrote their own paths in older versions).
|
|
143
|
+
const legacyDirs = [
|
|
144
|
+
path.join(getGeminiDir(), 'skills'),
|
|
145
|
+
path.join(getOpencodeRoot(), 'skill'),
|
|
146
|
+
path.join(getOpencodeRoot(), 'skills'),
|
|
147
|
+
...(scope?.project
|
|
148
|
+
? [
|
|
149
|
+
path.join(getProjectGeminiDir(scope.project), 'skills'),
|
|
150
|
+
path.join(getProjectOpencodeRoot(scope.project), 'skill'),
|
|
151
|
+
path.join(getProjectOpencodeRoot(scope.project), 'skills'),
|
|
152
|
+
]
|
|
153
|
+
: []),
|
|
154
|
+
];
|
|
155
|
+
for (const legacyDir of legacyDirs) {
|
|
156
|
+
if (fs.existsSync(legacyDir) && fs.statSync(legacyDir).isDirectory()) {
|
|
157
|
+
fs.rmSync(legacyDir, { recursive: true });
|
|
158
|
+
outcome.results.push({
|
|
159
|
+
platform: 'agents',
|
|
160
|
+
targetDir: legacyDir,
|
|
161
|
+
status: 'deleted',
|
|
162
|
+
reason: 'legacy platform-specific path',
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return summarize(outcome);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* 5-target mode: claude-code, codex, gemini, opencode, cursor (legacy compatible)
|
|
170
|
+
*/
|
|
171
|
+
function distributeLegacyMode(entries, scope) {
|
|
172
|
+
const cleanup = {
|
|
173
|
+
resolveParentDir: (target) => resolveSkillsParentDir(target, scope),
|
|
174
|
+
};
|
|
175
|
+
const filterSelected = (target, allEntries) => {
|
|
176
|
+
if (target === 'cursor') {
|
|
177
|
+
if (shouldDedupCursorSkills(scope))
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
const state = loadLibraryStateSectionForAgent('skills', target, scope);
|
|
181
|
+
const activeIds = new Set(state.active);
|
|
182
|
+
return allEntries.filter((e) => activeIds.has(e.id));
|
|
183
|
+
};
|
|
184
|
+
const outcome = distributeBundle({
|
|
185
|
+
section: 'skills',
|
|
186
|
+
selected: entries,
|
|
64
187
|
platforms: SKILL_PLATFORMS,
|
|
65
|
-
resolveTargetDir: (
|
|
188
|
+
resolveTargetDir: (target, entry) => resolveSkillTargetDir(target, entry.id, scope),
|
|
66
189
|
listFiles: listSkillFiles,
|
|
67
190
|
getId: (entry) => entry.id,
|
|
68
191
|
cleanup,
|
|
69
192
|
scope,
|
|
70
193
|
filterSelected,
|
|
71
194
|
});
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
const legacyOpencodeDirs = [
|
|
195
|
+
// Legacy cleanup: only clean OpenCode's plural `skills/` path (original behavior)
|
|
196
|
+
const legacyDirs = [
|
|
75
197
|
path.join(getOpencodeRoot(), 'skills'),
|
|
76
198
|
...(scope?.project ? [path.join(getProjectOpencodeRoot(scope.project), 'skills')] : []),
|
|
77
199
|
];
|
|
78
|
-
for (const legacyDir of
|
|
200
|
+
for (const legacyDir of legacyDirs) {
|
|
79
201
|
if (fs.existsSync(legacyDir) && fs.statSync(legacyDir).isDirectory()) {
|
|
80
202
|
fs.rmSync(legacyDir, { recursive: true });
|
|
81
203
|
outcome.results.push({
|
|
@@ -86,18 +208,20 @@ export function distributeSkills(scope) {
|
|
|
86
208
|
});
|
|
87
209
|
}
|
|
88
210
|
}
|
|
89
|
-
|
|
90
|
-
|
|
211
|
+
return summarize(outcome);
|
|
212
|
+
}
|
|
213
|
+
function summarize(outcome) {
|
|
214
|
+
const successTargets = new Set();
|
|
91
215
|
let totalWritten = 0;
|
|
92
216
|
let totalSkipped = 0;
|
|
93
217
|
let totalErrors = 0;
|
|
94
218
|
for (const result of outcome.results) {
|
|
95
219
|
if (result.status === 'written') {
|
|
96
|
-
|
|
220
|
+
successTargets.add(result.platform);
|
|
97
221
|
totalWritten++;
|
|
98
222
|
}
|
|
99
223
|
else if (result.status === 'skipped') {
|
|
100
|
-
|
|
224
|
+
successTargets.add(result.platform);
|
|
101
225
|
totalSkipped++;
|
|
102
226
|
}
|
|
103
227
|
else {
|
|
@@ -106,7 +230,7 @@ export function distributeSkills(scope) {
|
|
|
106
230
|
}
|
|
107
231
|
return {
|
|
108
232
|
results: outcome.results,
|
|
109
|
-
|
|
233
|
+
successTargets: [...successTargets],
|
|
110
234
|
totalWritten,
|
|
111
235
|
totalSkipped,
|
|
112
236
|
totalErrors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/skills/distribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAIL,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAIjF,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/skills/distribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ConfigScope } from '../config/scope.js';
|
|
2
2
|
import { type DistributeOutcome } from '../library/distribute.js';
|
|
3
|
-
export type SubagentPlatform = 'claude-code' | 'opencode';
|
|
3
|
+
export type SubagentPlatform = 'claude-code' | 'opencode' | 'cursor';
|
|
4
4
|
export interface SubagentDistributionResult {
|
|
5
5
|
platform: SubagentPlatform;
|
|
6
6
|
filePath: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { getClaudeDir, getOpencodePath, getProjectClaudeDir, getProjectOpencodePath, } from '../config/paths.js';
|
|
2
|
+
import { getClaudeDir, getCursorDir, getOpencodePath, getProjectClaudeDir, getProjectCursorDir, getProjectOpencodePath, } from '../config/paths.js';
|
|
3
3
|
import { distributeLibrary, } from '../library/distribute.js';
|
|
4
4
|
import { loadLibraryStateSectionForAgent } from '../library/state.js';
|
|
5
5
|
import { wrapFrontmatter } from '../util/frontmatter.js';
|
|
@@ -28,6 +28,12 @@ function resolveSubagentTargetDir(platform, scope) {
|
|
|
28
28
|
}
|
|
29
29
|
return getOpencodePath('agent');
|
|
30
30
|
}
|
|
31
|
+
case 'cursor': {
|
|
32
|
+
if (projectRoot && projectRoot.length > 0) {
|
|
33
|
+
return path.join(getProjectCursorDir(projectRoot), 'agents');
|
|
34
|
+
}
|
|
35
|
+
return path.join(getCursorDir(), 'agents');
|
|
36
|
+
}
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
39
|
function buildFrontmatterForClaude(entry) {
|
|
@@ -59,6 +65,32 @@ function buildFrontmatterForOpencode(entry) {
|
|
|
59
65
|
}
|
|
60
66
|
return base;
|
|
61
67
|
}
|
|
68
|
+
const CURSOR_SUBAGENT_FIELDS = new Set([
|
|
69
|
+
'name',
|
|
70
|
+
'description',
|
|
71
|
+
'model',
|
|
72
|
+
'readonly',
|
|
73
|
+
'is_background',
|
|
74
|
+
]);
|
|
75
|
+
function buildFrontmatterForCursor(entry) {
|
|
76
|
+
const extras = entry.metadata.extras;
|
|
77
|
+
const cursor = extras?.cursor ?? undefined;
|
|
78
|
+
const base = {};
|
|
79
|
+
if (entry.metadata.description)
|
|
80
|
+
base.description = entry.metadata.description;
|
|
81
|
+
base.name = entry.id;
|
|
82
|
+
if (cursor && typeof cursor === 'object') {
|
|
83
|
+
for (const [k, v] of Object.entries(cursor)) {
|
|
84
|
+
if (CURSOR_SUBAGENT_FIELDS.has(k))
|
|
85
|
+
base[k] = v;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (!base.name)
|
|
89
|
+
base.name = entry.id;
|
|
90
|
+
if (!base.model)
|
|
91
|
+
base.model = 'inherit';
|
|
92
|
+
return base;
|
|
93
|
+
}
|
|
62
94
|
function renderForPlatform(platform, entry) {
|
|
63
95
|
switch (platform) {
|
|
64
96
|
case 'claude-code': {
|
|
@@ -69,12 +101,16 @@ function renderForPlatform(platform, entry) {
|
|
|
69
101
|
const fm = buildFrontmatterForOpencode(entry);
|
|
70
102
|
return wrapFrontmatter(fm, entry.content);
|
|
71
103
|
}
|
|
104
|
+
case 'cursor': {
|
|
105
|
+
const fm = buildFrontmatterForCursor(entry);
|
|
106
|
+
return wrapFrontmatter(fm, entry.content);
|
|
107
|
+
}
|
|
72
108
|
}
|
|
73
109
|
}
|
|
74
110
|
export function distributeSubagents(scope) {
|
|
75
111
|
const entries = loadSubagentLibrary();
|
|
76
112
|
const byId = new Map(entries.map((e) => [e.id, e]));
|
|
77
|
-
const platforms = ['claude-code', 'opencode'];
|
|
113
|
+
const platforms = ['claude-code', 'opencode', 'cursor'];
|
|
78
114
|
// Cleanup config to remove orphan subagent files
|
|
79
115
|
const cleanup = {
|
|
80
116
|
resolveTargetDir: (p) => resolveSubagentTargetDir(p, scope),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/subagents/distribution.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/subagents/distribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,8 @@ export function importSubagentFromFile(platform, filePath) {
|
|
|
10
10
|
const baseSlug = slugify(path.basename(filePath, path.extname(filePath)));
|
|
11
11
|
switch (platform) {
|
|
12
12
|
case 'claude-code':
|
|
13
|
-
case 'opencode':
|
|
13
|
+
case 'opencode':
|
|
14
|
+
case 'cursor': {
|
|
14
15
|
// Minimal conversion: description + extras.<platform> = source frontmatter without description
|
|
15
16
|
const extracted = extractMergedFrontmatter(raw, { trimBodyStart: true });
|
|
16
17
|
const metaRecord = extracted.meta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/subagents/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAUxE,MAAM,UAAU,sBAAsB,CACpC,QAA0B,EAC1B,QAAgB;IAEhB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/subagents/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAUxE,MAAM,UAAU,sBAAsB,CACpC,QAA0B,EAC1B,QAAgB;IAEhB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,+FAA+F;YAC/F,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;YAClC,MAAM,WAAW,GACf,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAE,UAAU,CAAC,WAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAChE,CAAC;YACF,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACzD,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;YAC5F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7E,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,wEAAwE;YACxE,MAAM,KAAK,GAAQ,QAAQ,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -18,10 +18,10 @@ function getSubagentTitle(entry) {
|
|
|
18
18
|
return typeof title === 'string' ? title : null;
|
|
19
19
|
}
|
|
20
20
|
function getSubagentModel(entry) {
|
|
21
|
-
return pickFirstPlatformString(entry.metadata.extras, ['claude-code', 'opencode'], 'model');
|
|
21
|
+
return pickFirstPlatformString(entry.metadata.extras, ['claude-code', 'opencode', 'cursor'], 'model');
|
|
22
22
|
}
|
|
23
23
|
function getSubagentTools(entry) {
|
|
24
|
-
return pickFirstPlatformArray(entry.metadata.extras, ['claude-code', 'opencode'], 'tools');
|
|
24
|
+
return pickFirstPlatformArray(entry.metadata.extras, ['claude-code', 'opencode', 'cursor'], 'tools');
|
|
25
25
|
}
|
|
26
26
|
function buildSubagentRow(entry, active, order) {
|
|
27
27
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/subagents/inventory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAqB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAsB,MAAM,cAAc,CAAC;AAmBvE,SAAS,YAAY,CAAC,OAAwB;IAC5C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAmC,CAAC;QACpD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAmC,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAgB,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAgB,CAAC;QACtC,MAAM,MAAM,GAAG,CACb,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,CACb,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAmC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgB,CAAC;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,OAAO,uBAAuB,
|
|
1
|
+
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/subagents/inventory.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/subagent-ui.js
CHANGED
|
@@ -16,13 +16,17 @@ export async function showSubagentSelector(options) {
|
|
|
16
16
|
const extras = e.metadata.extras;
|
|
17
17
|
const cc = extras?.['claude-code'] ?? undefined;
|
|
18
18
|
const oc = extras?.opencode ?? undefined;
|
|
19
|
+
const cu = extras?.cursor ?? undefined;
|
|
19
20
|
const m1 = cc?.model;
|
|
20
21
|
const m2 = oc?.model;
|
|
22
|
+
const m3 = cu?.model;
|
|
21
23
|
return typeof m1 === 'string' && m1.trim().length > 0
|
|
22
24
|
? m1
|
|
23
25
|
: typeof m2 === 'string' && m2.trim().length > 0
|
|
24
26
|
? m2
|
|
25
|
-
:
|
|
27
|
+
: typeof m3 === 'string' && m3.trim().length > 0
|
|
28
|
+
? m3
|
|
29
|
+
: undefined;
|
|
26
30
|
},
|
|
27
31
|
scope: options?.scope,
|
|
28
32
|
pageSize: options?.pageSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-ui.js","sourceRoot":"","sources":["../../src/ui/subagent-ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAA+B,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AASzF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAiC;IAEjC,OAAO,mBAAmB,CAAgB;QACxC,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,0CAA0C;QACrD,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE;QACxC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,CAAC,GAAI,CAAC,CAAC,QAAoC,CAAC,KAAgB,CAAC;YACnE,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAA6C,CAAC;YACxE,MAAM,EAAE,GAAI,MAAM,EAAE,CAAC,aAAa,CAA6B,IAAI,SAAS,CAAC;YAC7E,MAAM,EAAE,GAAI,MAAM,EAAE,QAAoC,IAAI,SAAS,CAAC;YACtE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAsC,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,EAAE,KAAsC,CAAC;YACtD,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBACnD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBAC9C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"subagent-ui.js","sourceRoot":"","sources":["../../src/ui/subagent-ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAA+B,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AASzF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAiC;IAEjC,OAAO,mBAAmB,CAAgB;QACxC,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,0CAA0C;QACrD,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE;QACxC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,CAAC,GAAI,CAAC,CAAC,QAAoC,CAAC,KAAgB,CAAC;YACnE,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAA6C,CAAC;YACxE,MAAM,EAAE,GAAI,MAAM,EAAE,CAAC,aAAa,CAA6B,IAAI,SAAS,CAAC;YAC7E,MAAM,EAAE,GAAI,MAAM,EAAE,QAAoC,IAAI,SAAS,CAAC;YACtE,MAAM,EAAE,GAAI,MAAM,EAAE,MAAkC,IAAI,SAAS,CAAC;YACpE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAsC,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,EAAE,KAAsC,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,EAAE,KAAsC,CAAC;YACtD,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBACnD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBAC9C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;wBAC9C,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,SAAS,CAAC;QACpB,CAAC;QACD,KAAK,EAAE,OAAO,EAAE,KAAK;QACrB,QAAQ,EAAE,OAAO,EAAE,QAAQ;KAC5B,CAAC,CAAC;AACL,CAAC"}
|