agent-switchboard 0.2.3 → 0.3.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 (104) hide show
  1. package/README.md +29 -28
  2. package/dist/agents/registry.d.ts +0 -6
  3. package/dist/agents/registry.js +0 -13
  4. package/dist/agents/registry.js.map +1 -1
  5. package/dist/commands/distribution.d.ts +3 -4
  6. package/dist/commands/distribution.js +18 -116
  7. package/dist/commands/distribution.js.map +1 -1
  8. package/dist/config/application-config.d.ts +1 -1
  9. package/dist/config/application-config.js +2 -10
  10. package/dist/config/application-config.js.map +1 -1
  11. package/dist/config/mcp-config.js +1 -3
  12. package/dist/config/mcp-config.js.map +1 -1
  13. package/dist/config/paths.d.ts +11 -7
  14. package/dist/config/paths.js +29 -9
  15. package/dist/config/paths.js.map +1 -1
  16. package/dist/config/schemas.d.ts +331 -43
  17. package/dist/config/schemas.js +109 -15
  18. package/dist/config/schemas.js.map +1 -1
  19. package/dist/config/switchboard-config.js +0 -1
  20. package/dist/config/switchboard-config.js.map +1 -1
  21. package/dist/extensions/api.d.ts +49 -0
  22. package/dist/extensions/api.js +41 -0
  23. package/dist/extensions/api.js.map +1 -0
  24. package/dist/extensions/loader.d.ts +17 -0
  25. package/dist/extensions/loader.js +73 -0
  26. package/dist/extensions/loader.js.map +1 -0
  27. package/dist/hooks/distribution.js +1 -16
  28. package/dist/hooks/distribution.js.map +1 -1
  29. package/dist/index.js +77 -123
  30. package/dist/index.js.map +1 -1
  31. package/dist/library/distribute-bundle.js +1 -19
  32. package/dist/library/distribute-bundle.js.map +1 -1
  33. package/dist/library/fs.d.ts +12 -0
  34. package/dist/library/fs.js +81 -0
  35. package/dist/library/fs.js.map +1 -1
  36. package/dist/library/sources.d.ts +6 -1
  37. package/dist/library/sources.js +73 -16
  38. package/dist/library/sources.js.map +1 -1
  39. package/dist/rules/agents.d.ts +0 -4
  40. package/dist/rules/agents.js +0 -10
  41. package/dist/rules/agents.js.map +1 -1
  42. package/dist/rules/distribution.d.ts +1 -2
  43. package/dist/rules/distribution.js +20 -79
  44. package/dist/rules/distribution.js.map +1 -1
  45. package/dist/skills/distribution.d.ts +0 -22
  46. package/dist/skills/distribution.js +70 -185
  47. package/dist/skills/distribution.js.map +1 -1
  48. package/dist/skills/importer.js +2 -33
  49. package/dist/skills/importer.js.map +1 -1
  50. package/dist/subagents/codex-distribute.d.ts +13 -0
  51. package/dist/subagents/codex-distribute.js +273 -0
  52. package/dist/subagents/codex-distribute.js.map +1 -0
  53. package/dist/subagents/distribution.d.ts +3 -4
  54. package/dist/subagents/distribution.js +30 -410
  55. package/dist/subagents/distribution.js.map +1 -1
  56. package/dist/targets/builtin/claude-code.d.ts +2 -0
  57. package/dist/targets/builtin/claude-code.js +73 -0
  58. package/dist/targets/builtin/claude-code.js.map +1 -0
  59. package/dist/targets/builtin/claude-desktop.d.ts +2 -0
  60. package/dist/targets/builtin/claude-desktop.js +14 -0
  61. package/dist/targets/builtin/claude-desktop.js.map +1 -0
  62. package/dist/targets/builtin/codex.d.ts +3 -0
  63. package/dist/targets/builtin/codex.js +57 -0
  64. package/dist/targets/builtin/codex.js.map +1 -0
  65. package/dist/targets/builtin/common.d.ts +22 -0
  66. package/dist/targets/builtin/common.js +55 -0
  67. package/dist/targets/builtin/common.js.map +1 -0
  68. package/dist/targets/builtin/cursor.d.ts +2 -0
  69. package/dist/targets/builtin/cursor.js +95 -0
  70. package/dist/targets/builtin/cursor.js.map +1 -0
  71. package/dist/targets/builtin/gemini.d.ts +2 -0
  72. package/dist/targets/builtin/gemini.js +62 -0
  73. package/dist/targets/builtin/gemini.js.map +1 -0
  74. package/dist/targets/builtin/index.d.ts +10 -0
  75. package/dist/targets/builtin/index.js +19 -0
  76. package/dist/targets/builtin/index.js.map +1 -0
  77. package/dist/targets/builtin/opencode.d.ts +2 -0
  78. package/dist/targets/builtin/opencode.js +67 -0
  79. package/dist/targets/builtin/opencode.js.map +1 -0
  80. package/dist/targets/builtin/trae.d.ts +3 -0
  81. package/dist/targets/builtin/trae.js +56 -0
  82. package/dist/targets/builtin/trae.js.map +1 -0
  83. package/dist/targets/dsl/compiler.d.ts +13 -0
  84. package/dist/targets/dsl/compiler.js +215 -0
  85. package/dist/targets/dsl/compiler.js.map +1 -0
  86. package/dist/targets/dsl/index.d.ts +2 -0
  87. package/dist/targets/dsl/index.js +3 -0
  88. package/dist/targets/dsl/index.js.map +1 -0
  89. package/dist/targets/dsl/transforms.d.ts +77 -0
  90. package/dist/targets/dsl/transforms.js +159 -0
  91. package/dist/targets/dsl/transforms.js.map +1 -0
  92. package/dist/targets/init.d.ts +14 -0
  93. package/dist/targets/init.js +28 -0
  94. package/dist/targets/init.js.map +1 -0
  95. package/dist/targets/registry.d.ts +38 -0
  96. package/dist/targets/registry.js +101 -0
  97. package/dist/targets/registry.js.map +1 -0
  98. package/dist/targets/types.d.ts +93 -0
  99. package/dist/targets/types.js +28 -0
  100. package/dist/targets/types.js.map +1 -0
  101. package/dist/ui/plugin-ui.d.ts +1 -1
  102. package/dist/ui/plugin-ui.js +5 -12
  103. package/dist/ui/plugin-ui.js.map +1 -1
  104. package/package.json +1 -1
@@ -1,414 +1,30 @@
1
- import fs from 'node:fs';
2
1
  import path from 'node:path';
3
- import { parse as parseToml, stringify as tomlStringify } from '@iarna/toml';
4
- import { getClaudeDir, getCodexAgentsDir, getCodexConfigPath, getCursorDir, getOpencodePath, getProjectClaudeDir, getProjectCursorDir, getProjectOpencodePath, } from '../config/paths.js';
5
2
  import { distributeLibrary, } from '../library/distribute.js';
6
- import { ensureParentDir } from '../library/fs.js';
7
3
  import { loadLibraryStateSectionForApplication } from '../library/state.js';
8
- import { wrapFrontmatter } from '../util/frontmatter.js';
4
+ import { filterInstalled, getTargetById, getTargetsForSection } from '../targets/registry.js';
5
+ import { isCustomAgentsHandler } from '../targets/types.js';
9
6
  import { loadSubagentLibrary } from './library.js';
10
- function platformToAgentId(platform) {
11
- return platform;
12
- }
13
7
  export function resolveSubagentFilePath(platform, id, scope) {
14
- const dir = resolveSubagentTargetDir(platform, scope);
15
- const ext = platform === 'codex' ? '.toml' : '.md';
16
- return path.join(dir, `${id}${ext}`);
17
- }
18
- function resolveSubagentTargetDir(platform, scope) {
19
- const projectRoot = scope?.project?.trim();
20
- switch (platform) {
21
- case 'claude-code': {
22
- if (projectRoot && projectRoot.length > 0) {
23
- return path.join(getProjectClaudeDir(projectRoot), 'agents');
24
- }
25
- return path.join(getClaudeDir(), 'agents');
26
- }
27
- case 'opencode': {
28
- if (projectRoot && projectRoot.length > 0) {
29
- return getProjectOpencodePath(projectRoot, 'agent');
30
- }
31
- return getOpencodePath('agent');
32
- }
33
- case 'cursor': {
34
- if (projectRoot && projectRoot.length > 0) {
35
- return path.join(getProjectCursorDir(projectRoot), 'agents');
36
- }
37
- return path.join(getCursorDir(), 'agents');
38
- }
39
- case 'codex': {
40
- return getCodexAgentsDir();
41
- }
42
- }
43
- }
44
- // ---------------------------------------------------------------------------
45
- // Markdown-based platforms (Claude Code, OpenCode, Cursor)
46
- // ---------------------------------------------------------------------------
47
- function buildFrontmatterForClaude(entry) {
48
- const extras = entry.metadata.extras;
49
- const cc = extras?.['claude-code'] ?? undefined;
50
- const base = {};
51
- if (entry.metadata.description)
52
- base.description = entry.metadata.description;
53
- if (cc && typeof cc === 'object') {
54
- for (const [k, v] of Object.entries(cc))
55
- base[k] = v;
56
- }
57
- const rawName = base.name;
58
- if (typeof rawName !== 'string' || rawName.trim().length === 0) {
59
- base.name = entry.id;
60
- }
61
- return base;
62
- }
63
- function buildFrontmatterForOpencode(entry) {
64
- const extras = entry.metadata.extras;
65
- const op = extras?.opencode ?? undefined;
66
- const base = {};
67
- if (entry.metadata.description)
68
- base.description = entry.metadata.description;
69
- if (op && typeof op === 'object') {
70
- for (const [k, v] of Object.entries(op))
71
- base[k] = v;
72
- }
73
- return base;
74
- }
75
- const CURSOR_SUBAGENT_FIELDS = new Set([
76
- 'name',
77
- 'description',
78
- 'model',
79
- 'readonly',
80
- 'is_background',
81
- ]);
82
- function buildFrontmatterForCursor(entry) {
83
- const extras = entry.metadata.extras;
84
- const cursor = extras?.cursor ?? undefined;
85
- const base = {};
86
- if (entry.metadata.description)
87
- base.description = entry.metadata.description;
88
- base.name = entry.id;
89
- if (cursor && typeof cursor === 'object') {
90
- for (const [k, v] of Object.entries(cursor)) {
91
- if (CURSOR_SUBAGENT_FIELDS.has(k))
92
- base[k] = v;
93
- }
94
- }
95
- if (!base.name)
96
- base.name = entry.id;
97
- if (!base.model)
98
- base.model = 'inherit';
99
- return base;
100
- }
101
- function renderForMarkdownPlatform(platform, entry) {
102
- switch (platform) {
103
- case 'claude-code': {
104
- const fm = buildFrontmatterForClaude(entry);
105
- return wrapFrontmatter(fm, entry.content);
106
- }
107
- case 'opencode': {
108
- const fm = buildFrontmatterForOpencode(entry);
109
- return wrapFrontmatter(fm, entry.content);
110
- }
111
- case 'cursor': {
112
- const fm = buildFrontmatterForCursor(entry);
113
- return wrapFrontmatter(fm, entry.content);
114
- }
115
- }
116
- }
117
- // ---------------------------------------------------------------------------
118
- // Codex platform (TOML-based agent roles)
119
- // ---------------------------------------------------------------------------
120
- const ASB_MANAGED_MARKER = '# managed-by: asb';
121
- const CODEX_ROLE_CONFIG_FIELDS = new Set([
122
- 'model',
123
- 'model_reasoning_effort',
124
- 'model_reasoning_summary',
125
- 'model_verbosity',
126
- 'sandbox_mode',
127
- ]);
128
- function hasCodexExtras(entry) {
129
- const extras = entry.metadata.extras;
130
- if (!extras?.codex)
131
- return false;
132
- const codex = extras.codex;
133
- return typeof codex === 'object' && Object.keys(codex).length > 0;
134
- }
135
- function renderCodexRoleConfig(entry) {
136
- const extras = entry.metadata.extras;
137
- const codexExtras = extras?.codex ?? {};
138
- const config = {};
139
- for (const field of CODEX_ROLE_CONFIG_FIELDS) {
140
- const value = codexExtras[field];
141
- if (value !== undefined && value !== null) {
142
- config[field] = value;
143
- }
144
- }
145
- const trimmedContent = entry.content.trim();
146
- if (trimmedContent.length > 0) {
147
- config.developer_instructions = trimmedContent;
148
- }
149
- // Use @iarna/toml for correct value formatting
150
- let toml = '';
151
- try {
152
- toml = tomlStringify(config);
153
- }
154
- catch {
155
- // Fallback: skip developer_instructions if it breaks TOML serialization
156
- const { developer_instructions: _ignored, ...rest } = config;
157
- toml = tomlStringify(rest);
158
- }
159
- return `${ASB_MANAGED_MARKER}\n${toml}`;
160
- }
161
- function isAsbManagedToml(filePath) {
162
- try {
163
- const content = fs.readFileSync(filePath, 'utf-8');
164
- return content.startsWith(ASB_MANAGED_MARKER);
165
- }
166
- catch {
167
- return false;
168
- }
169
- }
170
- /**
171
- * Distribute subagents to Codex as TOML role config files + config.toml injection.
172
- * Handles:
173
- * 1. Writing role config TOML files to ~/.codex/agents/
174
- * 2. Cleaning up orphan ASB-managed TOML files
175
- * 3. Injecting [agents.<id>] declarations into ~/.codex/config.toml
176
- * 4. Enabling [features].multi_agent if needed
177
- */
178
- function distributeCodexSubagents(_allEntries, byId, scope) {
179
- const results = [];
180
- const platform = 'codex';
181
- // Resolve active IDs for Codex via per-agent config
182
- const state = loadLibraryStateSectionForApplication('agents', platformToAgentId(platform), scope);
183
- const selected = [];
184
- for (const id of state.enabled) {
185
- const e = byId.get(id);
186
- // Only include entries that have extras.codex (Codex-compatible config)
187
- if (e && hasCodexExtras(e))
188
- selected.push(e);
189
- }
190
- const targetDir = resolveSubagentTargetDir(platform, scope);
191
- // Step 1: Write TOML role config files
192
- const activeIds = new Set();
193
- for (const entry of selected) {
194
- activeIds.add(entry.id);
195
- const filePath = resolveSubagentFilePath(platform, entry.id, scope);
196
- const content = renderCodexRoleConfig(entry);
197
- ensureParentDir(filePath);
198
- let existing = null;
199
- try {
200
- if (fs.existsSync(filePath))
201
- existing = fs.readFileSync(filePath, 'utf-8');
202
- }
203
- catch {
204
- existing = null;
205
- }
206
- if (existing !== null && existing === content) {
207
- results.push({ platform, filePath, status: 'skipped', reason: 'up-to-date' });
208
- }
209
- else {
210
- try {
211
- fs.writeFileSync(filePath, content, 'utf-8');
212
- results.push({
213
- platform,
214
- filePath,
215
- status: 'written',
216
- reason: existing ? 'updated' : 'created',
217
- });
218
- }
219
- catch (error) {
220
- const msg = error instanceof Error ? error.message : String(error);
221
- results.push({ platform, filePath, status: 'error', error: msg });
222
- }
223
- }
224
- }
225
- // Step 2: Clean up orphan ASB-managed TOML files
226
- if (fs.existsSync(targetDir)) {
227
- try {
228
- for (const file of fs.readdirSync(targetDir)) {
229
- if (!file.endsWith('.toml'))
230
- continue;
231
- const id = file.slice(0, -5);
232
- if (activeIds.has(id))
233
- continue;
234
- const filePath = path.join(targetDir, file);
235
- if (fs.statSync(filePath).isDirectory())
236
- continue;
237
- if (!isAsbManagedToml(filePath))
238
- continue;
239
- try {
240
- fs.unlinkSync(filePath);
241
- results.push({
242
- platform,
243
- filePath,
244
- status: 'deleted',
245
- reason: 'orphan',
246
- entryId: id,
247
- });
248
- }
249
- catch (error) {
250
- const msg = error instanceof Error ? error.message : String(error);
251
- results.push({
252
- platform,
253
- filePath,
254
- status: 'error',
255
- error: `Failed to delete orphan: ${msg}`,
256
- entryId: id,
257
- });
258
- }
259
- }
260
- }
261
- catch {
262
- // Ignore directory read errors
263
- }
264
- }
265
- // Step 3: Inject agent role declarations into config.toml
266
- const injectionResult = injectCodexAgentEntries(selected, activeIds);
267
- if (injectionResult.configResult) {
268
- results.push(injectionResult.configResult);
269
- }
270
- return results;
271
- }
272
- /**
273
- * Inject/remove [agents.<id>] declarations in ~/.codex/config.toml.
274
- * Also enables [features].multi_agent when roles are distributed.
275
- */
276
- function injectCodexAgentEntries(activeEntries, activeIds) {
277
- const configPath = getCodexConfigPath();
278
- const platform = 'codex';
279
- let content = '';
280
- try {
281
- if (fs.existsSync(configPath)) {
282
- content = fs.readFileSync(configPath, 'utf-8');
283
- }
284
- }
285
- catch {
286
- return {
287
- configResult: {
288
- platform,
289
- filePath: configPath,
290
- status: 'error',
291
- error: 'Failed to read config.toml',
292
- },
293
- };
294
- }
295
- let parsed = {};
296
- try {
297
- if (content.trim().length > 0) {
298
- parsed = parseToml(content);
299
- }
300
- }
301
- catch {
302
- return {
303
- configResult: {
304
- platform,
305
- filePath: configPath,
306
- status: 'error',
307
- error: 'Failed to parse config.toml',
308
- },
309
- };
310
- }
311
- const agents = (parsed.agents ?? {});
312
- const reservedKeys = new Set(['max_threads', 'max_depth']);
313
- let changed = false;
314
- // Add/update entries for active subagents
315
- for (const entry of activeEntries) {
316
- const existing = agents[entry.id];
317
- const newEntry = {
318
- description: entry.metadata.description || `ASB-managed agent role: ${entry.id}`,
319
- config_file: `agents/${entry.id}.toml`,
320
- };
321
- if (!existing ||
322
- existing.description !== newEntry.description ||
323
- existing.config_file !== newEntry.config_file) {
324
- agents[entry.id] = newEntry;
325
- changed = true;
326
- }
8
+ const target = getTargetById(platform);
9
+ if (!target?.agents) {
10
+ throw new Error(`Unknown subagent platform: ${platform}`);
327
11
  }
328
- // Remove orphan ASB-managed entries: entries pointing to agents/<id>.toml
329
- // where the file no longer exists (was cleaned up in step 2) or id is not active
330
- for (const [key, value] of Object.entries(agents)) {
331
- if (reservedKeys.has(key))
332
- continue;
333
- if (activeIds.has(key))
334
- continue;
335
- if (typeof value !== 'object' || value === null)
336
- continue;
337
- const roleConfig = value;
338
- const configFile = roleConfig.config_file;
339
- if (typeof configFile === 'string' &&
340
- configFile.startsWith('agents/') &&
341
- configFile.endsWith('.toml')) {
342
- // Check if the target file is ASB-managed (or already deleted)
343
- const fullPath = path.join(path.dirname(configPath), configFile);
344
- if (!fs.existsSync(fullPath) || isAsbManagedToml(fullPath)) {
345
- delete agents[key];
346
- changed = true;
347
- }
348
- }
349
- }
350
- if (!changed && activeEntries.length === 0) {
351
- return {};
352
- }
353
- parsed.agents = agents;
354
- // Enable multi_agent feature flag when distributing roles
355
- if (activeEntries.length > 0) {
356
- const features = (parsed.features ?? {});
357
- if (features.multi_agent !== true) {
358
- features.multi_agent = true;
359
- changed = true;
360
- }
361
- parsed.features = features;
362
- }
363
- if (!changed) {
364
- return {};
365
- }
366
- // Rewrite config.toml preserving all sections.
367
- // Separate mcp_servers to avoid @iarna/toml reformatting issues with its custom rendering.
368
- const { mcp_servers, ...rest } = parsed;
369
- try {
370
- let newContent = tomlStringify(rest).trimEnd();
371
- // Re-append mcp_servers if they existed (preserved verbatim from parsed structure)
372
- if (mcp_servers && typeof mcp_servers === 'object' && Object.keys(mcp_servers).length > 0) {
373
- const mcpPart = tomlStringify({
374
- mcp_servers,
375
- }).trimEnd();
376
- newContent = `${newContent}\n\n${mcpPart}`;
377
- }
378
- newContent = `${newContent}\n`;
379
- ensureParentDir(configPath);
380
- fs.writeFileSync(configPath, newContent, 'utf-8');
381
- return {
382
- configResult: {
383
- platform,
384
- filePath: configPath,
385
- status: 'written',
386
- reason: 'agents injected',
387
- },
388
- };
389
- }
390
- catch (error) {
391
- const msg = error instanceof Error ? error.message : String(error);
392
- return {
393
- configResult: {
394
- platform,
395
- filePath: configPath,
396
- status: 'error',
397
- error: `Failed to write config.toml: ${msg}`,
398
- },
399
- };
12
+ if (isCustomAgentsHandler(target.agents)) {
13
+ throw new Error(`Platform ${platform} uses custom agents distribution`);
400
14
  }
15
+ const h = target.agents;
16
+ return path.join(h.resolveTargetDir(scope), h.getFilename(id));
401
17
  }
402
- // ---------------------------------------------------------------------------
403
- // Main distribution entry point
404
- // ---------------------------------------------------------------------------
405
18
  export function distributeSubagents(scope) {
406
19
  const entries = loadSubagentLibrary();
407
20
  const byId = new Map(entries.map((e) => [e.id, e]));
408
- // Markdown-based platforms use the generic distributeLibrary framework
409
- const markdownPlatforms = ['claude-code', 'opencode', 'cursor'];
21
+ const allTargets = filterInstalled(getTargetsForSection('agents'));
22
+ const libraryTargets = allTargets.filter((t) => !isCustomAgentsHandler(t.agents));
23
+ const customTargets = allTargets.filter((t) => isCustomAgentsHandler(t.agents));
24
+ const handlerMap = new Map(libraryTargets.map((t) => [t.id, t.agents]));
25
+ const libraryPlatforms = libraryTargets.map((t) => t.id);
410
26
  const cleanup = {
411
- resolveTargetDir: (p) => resolveSubagentTargetDir(p, scope),
27
+ resolveTargetDir: (p) => handlerMap.get(p).resolveTargetDir(scope),
412
28
  extractId: (filename) => {
413
29
  if (!filename.endsWith('.md'))
414
30
  return null;
@@ -416,8 +32,7 @@ export function distributeSubagents(scope) {
416
32
  },
417
33
  };
418
34
  const filterSelected = (platform, _allEntries) => {
419
- const appId = platformToAgentId(platform);
420
- const state = loadLibraryStateSectionForApplication('agents', appId, scope);
35
+ const state = loadLibraryStateSectionForApplication('agents', platform, scope);
421
36
  const selected = [];
422
37
  for (const id of state.enabled) {
423
38
  const e = byId.get(id);
@@ -429,21 +44,26 @@ export function distributeSubagents(scope) {
429
44
  const markdownOutcome = distributeLibrary({
430
45
  section: 'agents',
431
46
  selected: entries,
432
- platforms: markdownPlatforms,
433
- resolveFilePath: (p, e) => resolveSubagentFilePath(p, e.id, scope),
434
- render: (p, e) => renderForMarkdownPlatform(p, e),
47
+ platforms: libraryPlatforms,
48
+ resolveFilePath: (p, e) => {
49
+ const h = handlerMap.get(p);
50
+ return path.join(h.resolveTargetDir(scope), h.getFilename(e.id));
51
+ },
52
+ render: (p, e) => handlerMap.get(p).render(e),
435
53
  getId: (e) => e.id,
436
54
  cleanup,
437
55
  scope,
438
56
  filterSelected,
439
57
  });
440
- // Codex: custom distribution (TOML files + config.toml injection)
441
- const codexResults = distributeCodexSubagents(entries, byId, scope);
58
+ const customResults = [];
59
+ for (const target of customTargets) {
60
+ if (isCustomAgentsHandler(target.agents)) {
61
+ const results = target.agents.distribute(entries, byId, scope);
62
+ customResults.push(...results);
63
+ }
64
+ }
442
65
  return {
443
- results: [
444
- ...markdownOutcome.results,
445
- ...codexResults,
446
- ],
66
+ results: [...markdownOutcome.results, ...customResults],
447
67
  };
448
68
  }
449
69
  //# sourceMappingURL=distribution.js.map
@@ -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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAIL,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAA6B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAsB,MAAM,cAAc,CAAC;AAYvE,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,EAAU,EAAE,KAAmB;IACvF,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,kCAAkC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,MAA8B,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAmB;IACrD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,eAAe,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC;IAEjF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAA+B,CAAC,CAAC,CACrE,CAAC;IACF,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzD,MAAM,OAAO,GAA0B;QACrC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACnE,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,WAA4B,EAAmB,EAAE;QACzF,MAAM,KAAK,GAAG,qCAAqC,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,iBAAiB,CAAwB;QAC/D,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,gBAAgB;QAC3B,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QAClB,OAAO;QACP,KAAK;QACL,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,aAAa,GAAiC,EAAE,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/D,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,aAAa,CAAiC;KACxF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ApplicationTarget } from '../types.js';
2
+ export declare const claudeCodeTarget: ApplicationTarget;
@@ -0,0 +1,73 @@
1
+ import path from 'node:path';
2
+ import { ClaudeCodeAgent } from '../../agents/claude-code.js';
3
+ import { getClaudeDir, getProjectClaudeDir } from '../../config/paths.js';
4
+ import { wrapFrontmatter } from '../../util/frontmatter.js';
5
+ import { buildPlatformFrontmatter, extractMdId, resolveProjectRoot } from './common.js';
6
+ const adapter = new ClaudeCodeAgent();
7
+ export const claudeCodeTarget = {
8
+ id: 'claude-code',
9
+ mcp: {
10
+ configPath: () => adapter.configPath(),
11
+ projectConfigPath: (root) => adapter.projectConfigPath(root),
12
+ applyConfig: (config) => adapter.applyConfig(config),
13
+ applyProjectConfig: (root, config) => adapter.applyProjectConfig(root, config),
14
+ },
15
+ rules: {
16
+ resolveFilePath: (scope) => {
17
+ const root = resolveProjectRoot(scope);
18
+ if (root)
19
+ return path.join(root, '.claude', 'CLAUDE.md');
20
+ return path.join(getClaudeDir(), 'CLAUDE.md');
21
+ },
22
+ render: (content) => content,
23
+ },
24
+ commands: {
25
+ resolveTargetDir: (scope) => {
26
+ const root = resolveProjectRoot(scope);
27
+ if (root)
28
+ return path.join(getProjectClaudeDir(root), 'commands');
29
+ return path.join(getClaudeDir(), 'commands');
30
+ },
31
+ getFilename: (id) => `${id}.md`,
32
+ render: (entry) => {
33
+ const fm = buildPlatformFrontmatter(entry, 'claude-code');
34
+ return wrapFrontmatter(fm, entry.content);
35
+ },
36
+ extractIdFromFilename: extractMdId,
37
+ },
38
+ agents: {
39
+ resolveTargetDir: (scope) => {
40
+ const root = resolveProjectRoot(scope);
41
+ if (root)
42
+ return path.join(getProjectClaudeDir(root), 'agents');
43
+ return path.join(getClaudeDir(), 'agents');
44
+ },
45
+ getFilename: (id) => `${id}.md`,
46
+ render: (entry) => {
47
+ const fm = buildPlatformFrontmatter(entry, 'claude-code');
48
+ if (typeof fm.name !== 'string' || fm.name.trim().length === 0) {
49
+ fm.name = entry.id;
50
+ }
51
+ return wrapFrontmatter(fm, entry.content);
52
+ },
53
+ extractIdFromFilename: extractMdId,
54
+ },
55
+ skills: {
56
+ resolveParentDir: (scope) => {
57
+ const root = resolveProjectRoot(scope);
58
+ if (root)
59
+ return path.join(getProjectClaudeDir(root), 'skills');
60
+ return path.join(getClaudeDir(), 'skills');
61
+ },
62
+ resolveTargetDir: (id, scope) => {
63
+ const root = resolveProjectRoot(scope);
64
+ if (root)
65
+ return path.join(getProjectClaudeDir(root), 'skills', id);
66
+ return path.join(getClaudeDir(), 'skills', id);
67
+ },
68
+ },
69
+ hooks: {
70
+ distribute: () => ({ results: [] }),
71
+ },
72
+ };
73
+ //# sourceMappingURL=claude-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/targets/builtin/claude-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ApplicationTarget } from '../types.js';
2
+ export declare const claudeDesktopTarget: ApplicationTarget;
@@ -0,0 +1,14 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { ClaudeDesktopAgent } from '../../agents/claude-desktop.js';
4
+ import { getClaudeDesktopConfigPath } from '../../config/paths.js';
5
+ const adapter = new ClaudeDesktopAgent();
6
+ export const claudeDesktopTarget = {
7
+ id: 'claude-desktop',
8
+ isInstalled: () => fs.existsSync(path.dirname(getClaudeDesktopConfigPath())),
9
+ mcp: {
10
+ configPath: () => adapter.configPath(),
11
+ applyConfig: (config) => adapter.applyConfig(config),
12
+ },
13
+ };
14
+ //# sourceMappingURL=claude-desktop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-desktop.js","sourceRoot":"","sources":["../../../src/targets/builtin/claude-desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAGnE,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,EAAE,EAAE,gBAAgB;IACpB,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAE5E,GAAG,EAAE;QACH,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE;QACtC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;KACrD;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ApplicationTarget } from '../types.js';
2
+ export declare const codexTarget: ApplicationTarget;
3
+ export declare const CODEX_SKILLS_RESERVED_DIRS: Set<string>;