@swarmify/agents-cli 1.0.0 → 1.1.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIjE,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAyE/C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAAO,EAAqC,CAAC;AACzE,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAEvC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQxD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU1D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAOtD;AAED,wBAAgB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAMpE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1E;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,GAAG,SAAkB,GACjC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBtC;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAetC"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIjE,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CA2F/C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAAO,EAAqC,CAAC;AACzE,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAEvC,CAAC;AACF,eAAO,MAAM,qBAAqB,EAAE,OAAO,EAE1C,CAAC;AACF,eAAO,MAAM,oBAAoB,+BAAgC,CAAC;AAElE,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQxD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU1D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAOtD;AAED,wBAAgB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAMpE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKtD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1E;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,GAAG,SAAkB,GACjC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBtC;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAetC;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuDD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,GAAG,GAAE,MAAsB,GAC1B,YAAY,EAAE,CA2BhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAsB,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBtC"}
@@ -12,9 +12,12 @@ export const AGENTS = {
12
12
  configDir: path.join(HOME, '.claude'),
13
13
  commandsDir: path.join(HOME, '.claude', 'commands'),
14
14
  commandsSubdir: 'commands',
15
+ skillsDir: path.join(HOME, '.claude', 'skills'),
16
+ hooksDir: 'hooks',
15
17
  format: 'markdown',
16
18
  variableSyntax: '$ARGUMENTS',
17
- capabilities: { hooks: true, mcp: true, allowlist: true },
19
+ supportsHooks: true,
20
+ capabilities: { hooks: true, mcp: true, allowlist: true, skills: true },
18
21
  },
19
22
  codex: {
20
23
  id: 'codex',
@@ -24,9 +27,12 @@ export const AGENTS = {
24
27
  configDir: path.join(HOME, '.codex'),
25
28
  commandsDir: path.join(HOME, '.codex', 'prompts'),
26
29
  commandsSubdir: 'prompts',
30
+ skillsDir: path.join(HOME, '.codex', 'skills'),
31
+ hooksDir: 'hooks',
27
32
  format: 'markdown',
28
33
  variableSyntax: '$ARGUMENTS',
29
- capabilities: { hooks: false, mcp: true, allowlist: false },
34
+ supportsHooks: false,
35
+ capabilities: { hooks: false, mcp: true, allowlist: false, skills: true },
30
36
  },
31
37
  gemini: {
32
38
  id: 'gemini',
@@ -36,9 +42,12 @@ export const AGENTS = {
36
42
  configDir: path.join(HOME, '.gemini'),
37
43
  commandsDir: path.join(HOME, '.gemini', 'commands'),
38
44
  commandsSubdir: 'commands',
45
+ skillsDir: path.join(HOME, '.gemini', 'skills'),
46
+ hooksDir: 'hooks',
39
47
  format: 'toml',
40
48
  variableSyntax: '{{args}}',
41
- capabilities: { hooks: false, mcp: true, allowlist: false },
49
+ supportsHooks: true,
50
+ capabilities: { hooks: true, mcp: true, allowlist: false, skills: true },
42
51
  },
43
52
  cursor: {
44
53
  id: 'cursor',
@@ -48,9 +57,12 @@ export const AGENTS = {
48
57
  configDir: path.join(HOME, '.cursor'),
49
58
  commandsDir: path.join(HOME, '.cursor', 'commands'),
50
59
  commandsSubdir: 'commands',
60
+ skillsDir: path.join(HOME, '.cursor', 'skills'),
61
+ hooksDir: 'hooks',
51
62
  format: 'markdown',
52
63
  variableSyntax: '$ARGUMENTS',
53
- capabilities: { hooks: false, mcp: false, allowlist: false },
64
+ supportsHooks: false,
65
+ capabilities: { hooks: false, mcp: false, allowlist: false, skills: false },
54
66
  },
55
67
  opencode: {
56
68
  id: 'opencode',
@@ -60,9 +72,12 @@ export const AGENTS = {
60
72
  configDir: path.join(HOME, '.opencode'),
61
73
  commandsDir: path.join(HOME, '.opencode', 'commands'),
62
74
  commandsSubdir: 'commands',
75
+ skillsDir: path.join(HOME, '.opencode', 'skills'),
76
+ hooksDir: 'hooks',
63
77
  format: 'markdown',
64
78
  variableSyntax: '$ARGUMENTS',
65
- capabilities: { hooks: false, mcp: false, allowlist: false },
79
+ supportsHooks: false,
80
+ capabilities: { hooks: false, mcp: false, allowlist: false, skills: false },
66
81
  },
67
82
  trae: {
68
83
  id: 'trae',
@@ -72,13 +87,18 @@ export const AGENTS = {
72
87
  configDir: path.join(HOME, '.trae'),
73
88
  commandsDir: path.join(HOME, '.trae', 'commands'),
74
89
  commandsSubdir: 'commands',
90
+ skillsDir: path.join(HOME, '.trae', 'skills'),
91
+ hooksDir: 'hooks',
75
92
  format: 'markdown',
76
93
  variableSyntax: '$ARGUMENTS',
77
- capabilities: { hooks: false, mcp: false, allowlist: false },
94
+ supportsHooks: false,
95
+ capabilities: { hooks: false, mcp: false, allowlist: false, skills: false },
78
96
  },
79
97
  };
80
98
  export const ALL_AGENT_IDS = Object.keys(AGENTS);
81
99
  export const MCP_CAPABLE_AGENTS = ALL_AGENT_IDS.filter((id) => AGENTS[id].capabilities.mcp);
100
+ export const SKILLS_CAPABLE_AGENTS = ALL_AGENT_IDS.filter((id) => AGENTS[id].capabilities.skills);
101
+ export const HOOKS_CAPABLE_AGENTS = ['claude', 'gemini'];
82
102
  export function isCliInstalled(agentId) {
83
103
  const agent = AGENTS[agentId];
84
104
  try {
@@ -140,6 +160,12 @@ export function ensureCommandsDir(agentId) {
140
160
  fs.mkdirSync(agent.commandsDir, { recursive: true });
141
161
  }
142
162
  }
163
+ export function ensureSkillsDir(agentId) {
164
+ const agent = AGENTS[agentId];
165
+ if (!fs.existsSync(agent.skillsDir)) {
166
+ fs.mkdirSync(agent.skillsDir, { recursive: true });
167
+ }
168
+ }
143
169
  export function isMcpRegistered(agentId, mcpName) {
144
170
  const agent = AGENTS[agentId];
145
171
  if (!agent.capabilities.mcp || !isCliInstalled(agentId)) {
@@ -195,4 +221,90 @@ export function unregisterMcp(agentId, name) {
195
221
  return { success: false, error: err.message };
196
222
  }
197
223
  }
224
+ /**
225
+ * Parse MCP servers from a config file.
226
+ */
227
+ function parseMcpFromConfig(configPath) {
228
+ if (!fs.existsSync(configPath)) {
229
+ return {};
230
+ }
231
+ try {
232
+ const content = fs.readFileSync(configPath, 'utf-8');
233
+ const config = JSON.parse(content);
234
+ // Claude uses mcpServers, Codex uses mcp_servers or similar
235
+ return config.mcpServers || config.mcp_servers || config.mcp || {};
236
+ }
237
+ catch {
238
+ return {};
239
+ }
240
+ }
241
+ /**
242
+ * Get user-scoped MCP config path for an agent.
243
+ */
244
+ function getUserMcpConfigPath(agentId) {
245
+ const agent = AGENTS[agentId];
246
+ // Claude: ~/.claude/settings.json
247
+ // Codex: ~/.codex/config.json
248
+ // Gemini: ~/.gemini/settings.json
249
+ if (agentId === 'codex') {
250
+ return path.join(agent.configDir, 'config.json');
251
+ }
252
+ return path.join(agent.configDir, 'settings.json');
253
+ }
254
+ /**
255
+ * Get project-scoped MCP config path for an agent.
256
+ */
257
+ function getProjectMcpConfigPath(agentId, cwd = process.cwd()) {
258
+ // Claude: .claude/settings.json or .claude/settings.local.json
259
+ // Codex: .codex/config.json
260
+ // Gemini: .gemini/settings.json
261
+ if (agentId === 'codex') {
262
+ return path.join(cwd, `.${agentId}`, 'config.json');
263
+ }
264
+ return path.join(cwd, `.${agentId}`, 'settings.json');
265
+ }
266
+ /**
267
+ * List installed MCP servers with scope information.
268
+ */
269
+ export function listInstalledMcpsWithScope(agentId, cwd = process.cwd()) {
270
+ const results = [];
271
+ // User-scoped MCPs
272
+ const userConfigPath = getUserMcpConfigPath(agentId);
273
+ const userMcps = parseMcpFromConfig(userConfigPath);
274
+ for (const [name, config] of Object.entries(userMcps)) {
275
+ results.push({
276
+ name,
277
+ scope: 'user',
278
+ command: config.command || (config.args ? config.args.join(' ') : undefined),
279
+ });
280
+ }
281
+ // Project-scoped MCPs
282
+ const projectConfigPath = getProjectMcpConfigPath(agentId, cwd);
283
+ const projectMcps = parseMcpFromConfig(projectConfigPath);
284
+ for (const [name, config] of Object.entries(projectMcps)) {
285
+ // Skip if already in user scope (project can override, but we show both)
286
+ results.push({
287
+ name,
288
+ scope: 'project',
289
+ command: config.command || (config.args ? config.args.join(' ') : undefined),
290
+ });
291
+ }
292
+ return results;
293
+ }
294
+ /**
295
+ * Copy a project-scoped MCP to user scope.
296
+ */
297
+ export function promoteMcpToUser(agentId, mcpName, cwd = process.cwd()) {
298
+ const projectConfigPath = getProjectMcpConfigPath(agentId, cwd);
299
+ const projectMcps = parseMcpFromConfig(projectConfigPath);
300
+ if (!projectMcps[mcpName]) {
301
+ return { success: false, error: `Project MCP '${mcpName}' not found` };
302
+ }
303
+ const mcpConfig = projectMcps[mcpName];
304
+ const command = mcpConfig.command || (mcpConfig.args ? mcpConfig.args.join(' ') : '');
305
+ if (!command) {
306
+ return { success: false, error: 'Cannot determine MCP command' };
307
+ }
308
+ return registerMcp(agentId, mcpName, command, 'user');
309
+ }
198
310
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { AgentId, CommandInstallation } from './types.js';
2
+ export type CommandScope = 'user' | 'project';
3
+ export interface CommandMetadata {
4
+ name: string;
5
+ description: string;
6
+ }
7
+ export interface ValidationResult {
8
+ valid: boolean;
9
+ errors: string[];
10
+ warnings: string[];
11
+ }
12
+ export interface DiscoveredCommand {
13
+ name: string;
14
+ description: string;
15
+ sourcePath: string;
16
+ isShared: boolean;
17
+ agentSpecific?: AgentId;
18
+ validation: ValidationResult;
19
+ }
20
+ export interface InstalledCommand {
21
+ name: string;
22
+ scope: CommandScope;
23
+ path: string;
24
+ description?: string;
25
+ }
26
+ export declare function parseCommandMetadata(filePath: string): CommandMetadata | null;
27
+ export declare function validateCommandMetadata(metadata: CommandMetadata | null, commandName: string): ValidationResult;
28
+ export declare function discoverCommands(repoPath: string): DiscoveredCommand[];
29
+ export declare function resolveCommandSource(repoPath: string, commandName: string, agentId: AgentId): string | null;
30
+ export declare function installCommand(sourcePath: string, agentId: AgentId, commandName: string, method?: 'symlink' | 'copy'): CommandInstallation & {
31
+ error?: string;
32
+ warnings?: string[];
33
+ };
34
+ export declare function uninstallCommand(agentId: AgentId, commandName: string): boolean;
35
+ export declare function listInstalledCommands(agentId: AgentId): string[];
36
+ /**
37
+ * List installed commands with scope information.
38
+ */
39
+ export declare function listInstalledCommandsWithScope(agentId: AgentId, cwd?: string): InstalledCommand[];
40
+ /**
41
+ * Copy a project-scoped command to user scope.
42
+ */
43
+ export declare function promoteCommandToUser(agentId: AgentId, commandName: string, cwd?: string): {
44
+ success: boolean;
45
+ error?: string;
46
+ };
47
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAqC7E;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,WAAW,EAAE,MAAM,GAClB,gBAAgB,CAwBlB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAoDtE;AAaD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,MAAM,GAAG,IAAI,CAoBf;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,SAAS,GAAG,MAAkB,GACrC,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAyC/D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAU/E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAWhE;AA4BD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,GAAG,GAAE,MAAsB,GAC1B,gBAAgB,EAAE,CA+BpB;AAcD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,MAAsB,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBtC"}
@@ -0,0 +1,280 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as yaml from 'yaml';
4
+ import { AGENTS, ensureCommandsDir } from './agents.js';
5
+ import { markdownToToml } from './convert.js';
6
+ export function parseCommandMetadata(filePath) {
7
+ if (!fs.existsSync(filePath)) {
8
+ return null;
9
+ }
10
+ try {
11
+ const content = fs.readFileSync(filePath, 'utf-8');
12
+ const lines = content.split('\n');
13
+ // Check for YAML frontmatter
14
+ if (lines[0] === '---') {
15
+ const endIndex = lines.slice(1).findIndex((l) => l === '---');
16
+ if (endIndex > 0) {
17
+ const frontmatter = lines.slice(1, endIndex + 1).join('\n');
18
+ const parsed = yaml.parse(frontmatter);
19
+ return {
20
+ name: parsed.name || '',
21
+ description: parsed.description || '',
22
+ };
23
+ }
24
+ }
25
+ // Check for TOML format
26
+ const tomlNameMatch = content.match(/name\s*=\s*"([^"]+)"/);
27
+ const tomlDescMatch = content.match(/description\s*=\s*"([^"]+)"/);
28
+ if (tomlNameMatch || tomlDescMatch) {
29
+ return {
30
+ name: tomlNameMatch?.[1] || '',
31
+ description: tomlDescMatch?.[1] || '',
32
+ };
33
+ }
34
+ // No valid frontmatter found
35
+ return null;
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ export function validateCommandMetadata(metadata, commandName) {
42
+ const errors = [];
43
+ const warnings = [];
44
+ if (!metadata) {
45
+ errors.push('Missing YAML frontmatter with name and description');
46
+ return { valid: false, errors, warnings };
47
+ }
48
+ // name is required
49
+ if (!metadata.name || metadata.name.trim() === '') {
50
+ errors.push('Missing required field: name');
51
+ }
52
+ else if (metadata.name.length > 64) {
53
+ warnings.push(`name exceeds 64 characters (${metadata.name.length})`);
54
+ }
55
+ // description is required
56
+ if (!metadata.description || metadata.description.trim() === '') {
57
+ errors.push('Missing required field: description');
58
+ }
59
+ else if (metadata.description.length > 1024) {
60
+ warnings.push(`description exceeds 1024 characters (${metadata.description.length})`);
61
+ }
62
+ return { valid: errors.length === 0, errors, warnings };
63
+ }
64
+ export function discoverCommands(repoPath) {
65
+ const commands = [];
66
+ const seen = new Set();
67
+ const sharedDir = path.join(repoPath, 'shared', 'commands');
68
+ if (fs.existsSync(sharedDir)) {
69
+ for (const file of fs.readdirSync(sharedDir)) {
70
+ if (file.endsWith('.md')) {
71
+ const name = file.replace('.md', '');
72
+ const sourcePath = path.join(sharedDir, file);
73
+ const metadata = parseCommandMetadata(sourcePath);
74
+ const validation = validateCommandMetadata(metadata, name);
75
+ commands.push({
76
+ name,
77
+ description: metadata?.description || extractDescription(fs.readFileSync(sourcePath, 'utf-8')),
78
+ sourcePath,
79
+ isShared: true,
80
+ validation,
81
+ });
82
+ seen.add(name);
83
+ }
84
+ }
85
+ }
86
+ for (const agentId of Object.keys(AGENTS)) {
87
+ const agent = AGENTS[agentId];
88
+ const agentDir = path.join(repoPath, agentId, agent.commandsSubdir);
89
+ if (fs.existsSync(agentDir)) {
90
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
91
+ for (const file of fs.readdirSync(agentDir)) {
92
+ if (file.endsWith(ext)) {
93
+ const name = file.replace(ext, '');
94
+ if (!seen.has(name)) {
95
+ const sourcePath = path.join(agentDir, file);
96
+ const metadata = parseCommandMetadata(sourcePath);
97
+ const validation = validateCommandMetadata(metadata, name);
98
+ commands.push({
99
+ name,
100
+ description: metadata?.description || extractDescription(fs.readFileSync(sourcePath, 'utf-8')),
101
+ sourcePath,
102
+ isShared: false,
103
+ agentSpecific: agentId,
104
+ validation,
105
+ });
106
+ seen.add(name);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ return commands;
113
+ }
114
+ function extractDescription(content) {
115
+ const match = content.match(/description:\s*(.+)/i);
116
+ if (match)
117
+ return match[1].trim();
118
+ const tomlMatch = content.match(/description\s*=\s*"([^"]+)"/);
119
+ if (tomlMatch)
120
+ return tomlMatch[1];
121
+ const firstLine = content.split('\n').find((l) => l.trim() && !l.startsWith('---'));
122
+ return firstLine?.slice(0, 80) || '';
123
+ }
124
+ export function resolveCommandSource(repoPath, commandName, agentId) {
125
+ const agent = AGENTS[agentId];
126
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
127
+ const agentSpecific = path.join(repoPath, agentId, agent.commandsSubdir, `${commandName}${ext}`);
128
+ if (fs.existsSync(agentSpecific)) {
129
+ return agentSpecific;
130
+ }
131
+ const shared = path.join(repoPath, 'shared', 'commands', `${commandName}.md`);
132
+ if (fs.existsSync(shared)) {
133
+ return shared;
134
+ }
135
+ return null;
136
+ }
137
+ export function installCommand(sourcePath, agentId, commandName, method = 'symlink') {
138
+ // Validate command metadata before installation
139
+ const metadata = parseCommandMetadata(sourcePath);
140
+ const validation = validateCommandMetadata(metadata, commandName);
141
+ if (!validation.valid) {
142
+ return {
143
+ path: '',
144
+ method: 'copy',
145
+ error: `Invalid command: ${validation.errors.join(', ')}`,
146
+ warnings: validation.warnings,
147
+ };
148
+ }
149
+ const agent = AGENTS[agentId];
150
+ ensureCommandsDir(agentId);
151
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
152
+ const targetPath = path.join(agent.commandsDir, `${commandName}${ext}`);
153
+ if (fs.existsSync(targetPath)) {
154
+ fs.unlinkSync(targetPath);
155
+ }
156
+ const sourceContent = fs.readFileSync(sourcePath, 'utf-8');
157
+ const sourceIsMarkdown = sourcePath.endsWith('.md');
158
+ const needsConversion = agent.format === 'toml' && sourceIsMarkdown;
159
+ if (needsConversion) {
160
+ const tomlContent = markdownToToml(commandName, sourceContent);
161
+ fs.writeFileSync(targetPath, tomlContent, 'utf-8');
162
+ return { path: targetPath, method: 'copy', warnings: validation.warnings };
163
+ }
164
+ if (method === 'symlink') {
165
+ fs.symlinkSync(sourcePath, targetPath);
166
+ return { path: targetPath, method: 'symlink', warnings: validation.warnings };
167
+ }
168
+ fs.copyFileSync(sourcePath, targetPath);
169
+ return { path: targetPath, method: 'copy', warnings: validation.warnings };
170
+ }
171
+ export function uninstallCommand(agentId, commandName) {
172
+ const agent = AGENTS[agentId];
173
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
174
+ const targetPath = path.join(agent.commandsDir, `${commandName}${ext}`);
175
+ if (fs.existsSync(targetPath)) {
176
+ fs.unlinkSync(targetPath);
177
+ return true;
178
+ }
179
+ return false;
180
+ }
181
+ export function listInstalledCommands(agentId) {
182
+ const agent = AGENTS[agentId];
183
+ if (!fs.existsSync(agent.commandsDir)) {
184
+ return [];
185
+ }
186
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
187
+ return fs
188
+ .readdirSync(agent.commandsDir)
189
+ .filter((f) => f.endsWith(ext))
190
+ .map((f) => f.replace(ext, ''));
191
+ }
192
+ /**
193
+ * Get the project-scoped commands directory for an agent.
194
+ * Claude: .claude/commands/
195
+ * Codex: .codex/prompts/
196
+ * Gemini: .gemini/commands/
197
+ */
198
+ function getProjectCommandsDir(agentId, cwd = process.cwd()) {
199
+ const agent = AGENTS[agentId];
200
+ return path.join(cwd, `.${agentId}`, agent.commandsSubdir);
201
+ }
202
+ /**
203
+ * List commands from a specific directory.
204
+ */
205
+ function listCommandsFromDir(dir, format) {
206
+ if (!fs.existsSync(dir)) {
207
+ return [];
208
+ }
209
+ const ext = format === 'toml' ? '.toml' : '.md';
210
+ return fs
211
+ .readdirSync(dir)
212
+ .filter((f) => f.endsWith(ext))
213
+ .map((f) => f.replace(ext, ''));
214
+ }
215
+ /**
216
+ * List installed commands with scope information.
217
+ */
218
+ export function listInstalledCommandsWithScope(agentId, cwd = process.cwd()) {
219
+ const agent = AGENTS[agentId];
220
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
221
+ const results = [];
222
+ // User-scoped commands
223
+ const userCommands = listCommandsFromDir(agent.commandsDir, agent.format);
224
+ for (const name of userCommands) {
225
+ const commandPath = path.join(agent.commandsDir, `${name}${ext}`);
226
+ results.push({
227
+ name,
228
+ scope: 'user',
229
+ path: commandPath,
230
+ description: getCommandDescription(commandPath),
231
+ });
232
+ }
233
+ // Project-scoped commands
234
+ const projectDir = getProjectCommandsDir(agentId, cwd);
235
+ const projectCommands = listCommandsFromDir(projectDir, agent.format);
236
+ for (const name of projectCommands) {
237
+ const commandPath = path.join(projectDir, `${name}${ext}`);
238
+ results.push({
239
+ name,
240
+ scope: 'project',
241
+ path: commandPath,
242
+ description: getCommandDescription(commandPath),
243
+ });
244
+ }
245
+ return results;
246
+ }
247
+ /**
248
+ * Get command description from file.
249
+ */
250
+ function getCommandDescription(filePath) {
251
+ try {
252
+ const content = fs.readFileSync(filePath, 'utf-8');
253
+ return extractDescription(content) || undefined;
254
+ }
255
+ catch {
256
+ return undefined;
257
+ }
258
+ }
259
+ /**
260
+ * Copy a project-scoped command to user scope.
261
+ */
262
+ export function promoteCommandToUser(agentId, commandName, cwd = process.cwd()) {
263
+ const agent = AGENTS[agentId];
264
+ const ext = agent.format === 'toml' ? '.toml' : '.md';
265
+ const projectDir = getProjectCommandsDir(agentId, cwd);
266
+ const sourcePath = path.join(projectDir, `${commandName}${ext}`);
267
+ if (!fs.existsSync(sourcePath)) {
268
+ return { success: false, error: `Project command '${commandName}' not found` };
269
+ }
270
+ ensureCommandsDir(agentId);
271
+ const targetPath = path.join(agent.commandsDir, `${commandName}${ext}`);
272
+ try {
273
+ fs.copyFileSync(sourcePath, targetPath);
274
+ return { success: true };
275
+ }
276
+ catch (err) {
277
+ return { success: false, error: err.message };
278
+ }
279
+ }
280
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":"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"}
package/dist/lib/git.d.ts CHANGED
@@ -3,6 +3,23 @@ export interface GitSource {
3
3
  url: string;
4
4
  ref?: string;
5
5
  }
6
+ /**
7
+ * Parse a source string into a GitSource object.
8
+ *
9
+ * Supported formats:
10
+ * gh:owner/repo -> https://github.com/owner/repo.git
11
+ * gh:owner/repo@branch -> https://github.com/owner/repo.git (ref: branch)
12
+ * owner/repo -> https://github.com/owner/repo.git
13
+ * owner/repo@branch -> https://github.com/owner/repo.git (ref: branch)
14
+ * github.com/owner/repo -> https://github.com/owner/repo.git
15
+ * github.com:owner/repo -> https://github.com/owner/repo.git
16
+ * github.com:owner/repo.git -> https://github.com/owner/repo.git
17
+ * git@github.com:owner/repo.git -> https://github.com/owner/repo.git
18
+ * https://github.com/owner/repo -> https://github.com/owner/repo.git
19
+ * https://github.com/owner/repo.git -> https://github.com/owner/repo.git
20
+ * /path/to/local -> local path
21
+ * ./relative/path -> local path
22
+ */
6
23
  export declare function parseSource(source: string): GitSource;
7
24
  export declare function cloneOrPull(source: GitSource, targetDir: string): Promise<{
8
25
  isNew: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAqCrD;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B7C;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAmBD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAmBD;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQrE"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAmHrD;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B7C;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAmBD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC,CAmBD;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQrE"}