@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.
@@ -0,0 +1,195 @@
1
+ import { DEFAULT_REGISTRIES } from './types.js';
2
+ import { readMeta, writeMeta } from './state.js';
3
+ export function getRegistries(type) {
4
+ const meta = readMeta();
5
+ const defaultRegs = DEFAULT_REGISTRIES[type] || {};
6
+ const userRegs = meta.registries?.[type] || {};
7
+ // Merge defaults with user config (user overrides defaults)
8
+ return { ...defaultRegs, ...userRegs };
9
+ }
10
+ export function getEnabledRegistries(type) {
11
+ const registries = getRegistries(type);
12
+ return Object.entries(registries)
13
+ .filter(([, config]) => config.enabled)
14
+ .map(([name, config]) => ({ name, config }));
15
+ }
16
+ export function setRegistry(type, name, config) {
17
+ const meta = readMeta();
18
+ if (!meta.registries) {
19
+ meta.registries = { mcp: {}, skill: {} };
20
+ }
21
+ if (!meta.registries[type]) {
22
+ meta.registries[type] = {};
23
+ }
24
+ const existing = meta.registries[type][name] || DEFAULT_REGISTRIES[type]?.[name];
25
+ meta.registries[type][name] = { ...existing, ...config };
26
+ writeMeta(meta);
27
+ }
28
+ export function removeRegistry(type, name) {
29
+ const meta = readMeta();
30
+ if (meta.registries?.[type]?.[name]) {
31
+ delete meta.registries[type][name];
32
+ writeMeta(meta);
33
+ return true;
34
+ }
35
+ return false;
36
+ }
37
+ async function fetchMcpRegistry(url, query, limit = 20, apiKey) {
38
+ const params = new URLSearchParams();
39
+ if (query)
40
+ params.set('search', query);
41
+ params.set('limit', String(limit));
42
+ const fullUrl = `${url}/servers?${params}`;
43
+ const headers = {
44
+ Accept: 'application/json',
45
+ };
46
+ if (apiKey) {
47
+ headers['Authorization'] = `Bearer ${apiKey}`;
48
+ }
49
+ const response = await fetch(fullUrl, { headers });
50
+ if (!response.ok) {
51
+ throw new Error(`Registry request failed: ${response.status} ${response.statusText}`);
52
+ }
53
+ return response.json();
54
+ }
55
+ export async function searchMcpRegistries(query, options) {
56
+ const registries = getEnabledRegistries('mcp');
57
+ const results = [];
58
+ const targetRegistries = options?.registry
59
+ ? registries.filter((r) => r.name === options.registry)
60
+ : registries;
61
+ if (targetRegistries.length === 0) {
62
+ if (options?.registry) {
63
+ throw new Error(`Registry '${options.registry}' not found or not enabled`);
64
+ }
65
+ return [];
66
+ }
67
+ for (const { name, config } of targetRegistries) {
68
+ try {
69
+ const response = await fetchMcpRegistry(config.url, query, options?.limit || 20, config.apiKey);
70
+ for (const { server } of response.servers) {
71
+ results.push({
72
+ name: server.name,
73
+ description: server.description,
74
+ type: 'mcp',
75
+ source: server.repository?.url || server.name,
76
+ registry: name,
77
+ version: server.version_detail?.version,
78
+ });
79
+ }
80
+ }
81
+ catch (err) {
82
+ // Log but continue with other registries
83
+ console.error(`Failed to search ${name}: ${err.message}`);
84
+ }
85
+ }
86
+ return results;
87
+ }
88
+ export async function getMcpServerInfo(serverName, registryName) {
89
+ const registries = getEnabledRegistries('mcp');
90
+ const targetRegistries = registryName
91
+ ? registries.filter((r) => r.name === registryName)
92
+ : registries;
93
+ for (const { config } of targetRegistries) {
94
+ try {
95
+ // Search with exact name
96
+ const response = await fetchMcpRegistry(config.url, serverName, 10, config.apiKey);
97
+ // Find exact match
98
+ const match = response.servers.find(({ server }) => server.name === serverName ||
99
+ server.name.endsWith(`/${serverName}`));
100
+ if (match) {
101
+ return match.server;
102
+ }
103
+ }
104
+ catch {
105
+ // Continue to next registry
106
+ }
107
+ }
108
+ return null;
109
+ }
110
+ export async function searchSkillRegistries(_query, _options) {
111
+ const registries = getEnabledRegistries('skill');
112
+ if (registries.length === 0) {
113
+ // No skill registries configured - this is expected for now
114
+ return [];
115
+ }
116
+ // Future: implement skill registry API calls when available
117
+ // For now, skill: prefix falls back to git sources
118
+ return [];
119
+ }
120
+ export async function search(query, options) {
121
+ const results = [];
122
+ if (!options?.type || options.type === 'mcp') {
123
+ const mcpResults = await searchMcpRegistries(query, options);
124
+ results.push(...mcpResults);
125
+ }
126
+ if (!options?.type || options.type === 'skill') {
127
+ const skillResults = await searchSkillRegistries(query, options);
128
+ results.push(...skillResults);
129
+ }
130
+ return results;
131
+ }
132
+ export function parsePackageIdentifier(identifier) {
133
+ // mcp:filesystem -> MCP registry
134
+ if (identifier.startsWith('mcp:')) {
135
+ return { type: 'mcp', name: identifier.slice(4) };
136
+ }
137
+ // skill:user/repo -> skill registry (or git fallback)
138
+ if (identifier.startsWith('skill:')) {
139
+ return { type: 'skill', name: identifier.slice(6) };
140
+ }
141
+ // gh:user/repo -> git source
142
+ if (identifier.startsWith('gh:')) {
143
+ return { type: 'git', name: identifier };
144
+ }
145
+ // https://... or git@... -> git source
146
+ if (identifier.startsWith('https://') || identifier.startsWith('git@')) {
147
+ return { type: 'git', name: identifier };
148
+ }
149
+ // user/repo format -> could be either, need to search
150
+ if (identifier.includes('/') && !identifier.includes(':')) {
151
+ return { type: 'unknown', name: identifier };
152
+ }
153
+ // Single word -> search MCP registries first
154
+ return { type: 'unknown', name: identifier };
155
+ }
156
+ export async function resolvePackage(identifier) {
157
+ const parsed = parsePackageIdentifier(identifier);
158
+ if (parsed.type === 'git') {
159
+ return { type: 'git', source: parsed.name };
160
+ }
161
+ if (parsed.type === 'mcp') {
162
+ const entry = await getMcpServerInfo(parsed.name);
163
+ if (entry) {
164
+ return {
165
+ type: 'mcp',
166
+ source: entry.repository?.url || entry.name,
167
+ mcpEntry: entry,
168
+ };
169
+ }
170
+ return null;
171
+ }
172
+ if (parsed.type === 'skill') {
173
+ // Skill registries not available yet, treat as git source
174
+ const gitSource = parsed.name.startsWith('gh:') ? parsed.name : `gh:${parsed.name}`;
175
+ return { type: 'git', source: gitSource };
176
+ }
177
+ // Unknown type - search registries
178
+ if (parsed.type === 'unknown') {
179
+ // Try MCP first
180
+ const mcpEntry = await getMcpServerInfo(parsed.name);
181
+ if (mcpEntry) {
182
+ return {
183
+ type: 'mcp',
184
+ source: mcpEntry.repository?.url || mcpEntry.name,
185
+ mcpEntry,
186
+ };
187
+ }
188
+ // If it looks like a git path (user/repo), treat as git
189
+ if (parsed.name.includes('/')) {
190
+ return { type: 'git', source: `gh:${parsed.name}` };
191
+ }
192
+ }
193
+ return null;
194
+ }
195
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,39 @@
1
- import type { AgentId, SkillInstallation } from './types.js';
1
+ import type { AgentId, SkillMetadata, InstalledSkill } from './types.js';
2
+ export declare function getSkillsDir(): string;
3
+ export declare function ensureCentralSkillsDir(): void;
4
+ export declare function getAgentSkillsDir(agentId: AgentId): string;
5
+ export declare function getProjectSkillsDir(agentId: AgentId, cwd?: string): string;
6
+ export interface ValidationResult {
7
+ valid: boolean;
8
+ errors: string[];
9
+ warnings: string[];
10
+ }
11
+ export declare function validateSkillMetadata(metadata: SkillMetadata | null, skillName: string): ValidationResult;
12
+ export declare function parseSkillMetadata(skillDir: string): SkillMetadata | null;
13
+ export declare function countSkillRules(skillDir: string): number;
2
14
  export interface DiscoveredSkill {
3
15
  name: string;
4
- description: string;
5
- sourcePath: string;
6
- isShared: boolean;
7
- agentSpecific?: AgentId;
16
+ path: string;
17
+ metadata: SkillMetadata;
18
+ ruleCount: number;
19
+ validation: ValidationResult;
8
20
  }
9
- export declare function discoverSkills(repoPath: string): DiscoveredSkill[];
10
- export declare function resolveSkillSource(repoPath: string, skillName: string, agentId: AgentId): string | null;
11
- export declare function installSkill(sourcePath: string, agentId: AgentId, skillName: string, method?: 'symlink' | 'copy'): SkillInstallation;
12
- export declare function uninstallSkill(agentId: AgentId, skillName: string): boolean;
13
- export declare function listInstalledSkills(agentId: AgentId): string[];
21
+ export declare function discoverSkillsFromRepo(repoPath: string): DiscoveredSkill[];
22
+ export declare function installSkill(sourcePath: string, skillName: string, agents: AgentId[], method?: 'symlink' | 'copy'): {
23
+ success: boolean;
24
+ error?: string;
25
+ warnings?: string[];
26
+ };
27
+ export declare function uninstallSkill(skillName: string): {
28
+ success: boolean;
29
+ error?: string;
30
+ };
31
+ export declare function listInstalledSkills(): Map<string, DiscoveredSkill>;
32
+ export declare function listInstalledSkillsWithScope(agentId: AgentId, cwd?: string): InstalledSkill[];
33
+ export declare function promoteSkillToUser(agentId: AgentId, skillName: string, cwd?: string): {
34
+ success: boolean;
35
+ error?: string;
36
+ };
37
+ export declare function getSkillInfo(skillName: string): DiscoveredSkill | null;
38
+ export declare function getSkillRules(skillName: string): string[];
14
39
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,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;CACzB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAkDlE;AAaD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,MAAM,GAAG,IAAI,CAoBf;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAS,GAAG,MAAkB,GACrC,iBAAiB,CA4BnB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAU3E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAW9D"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAMrF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEzF;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CA6BzG;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgCzE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYxD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAwC1E;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,GAAE,SAAS,GAAG,MAAkB,GACrC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA6E3D;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAkCtF;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAgClE;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,GAAG,GAAE,MAAsB,GAC1B,cAAc,EAAE,CA0DlB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAsB,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBtC;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmBtE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAczD"}