@framers/agentos-skills-registry 0.2.0 → 0.2.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.
- package/CONTRIBUTING.md +225 -0
- package/README.md +120 -49
- package/dist/catalog.d.ts +5 -6
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +36 -206
- package/dist/catalog.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -14
- package/dist/index.js.map +1 -1
- package/dist/schema-types.d.ts +79 -0
- package/dist/schema-types.d.ts.map +1 -0
- package/dist/schema-types.js +11 -0
- package/dist/schema-types.js.map +1 -0
- package/dist/workspace-discovery.d.ts +84 -0
- package/dist/workspace-discovery.d.ts.map +1 -0
- package/dist/workspace-discovery.js +211 -0
- package/dist/workspace-discovery.js.map +1 -0
- package/package.json +18 -8
- package/registry/community/.gitkeep +0 -0
- package/registry/curated/1password/SKILL.md +53 -0
- package/registry/curated/account-manager/SKILL.md +60 -0
- package/registry/curated/apple-notes/SKILL.md +45 -0
- package/registry/curated/apple-reminders/SKILL.md +46 -0
- package/registry/curated/blog-publisher/SKILL.md +110 -0
- package/registry/curated/bluesky-bot/SKILL.md +93 -0
- package/registry/curated/cloud-ops/SKILL.md +124 -0
- package/registry/curated/coding-agent/SKILL.md +40 -0
- package/registry/curated/content-creator/SKILL.md +53 -0
- package/registry/curated/deep-research/SKILL.md +56 -0
- package/registry/curated/discord-helper/SKILL.md +43 -0
- package/registry/curated/facebook-bot/SKILL.md +94 -0
- package/registry/curated/git/SKILL.md +39 -0
- package/registry/curated/github/SKILL.md +54 -0
- package/registry/curated/healthcheck/SKILL.md +43 -0
- package/registry/curated/image-gen/SKILL.md +44 -0
- package/registry/curated/instagram-bot/SKILL.md +60 -0
- package/registry/curated/linkedin-bot/SKILL.md +86 -0
- package/registry/curated/mastodon-bot/SKILL.md +104 -0
- package/registry/curated/notion/SKILL.md +43 -0
- package/registry/curated/obsidian/SKILL.md +42 -0
- package/registry/curated/pinterest-bot/SKILL.md +45 -0
- package/registry/curated/reddit-bot/SKILL.md +62 -0
- package/registry/curated/seo-campaign/SKILL.md +51 -0
- package/registry/curated/site-deploy/SKILL.md +119 -0
- package/registry/curated/slack-helper/SKILL.md +43 -0
- package/registry/curated/social-broadcast/SKILL.md +145 -0
- package/registry/curated/spotify-player/SKILL.md +45 -0
- package/registry/curated/summarize/SKILL.md +40 -0
- package/registry/curated/threads-bot/SKILL.md +82 -0
- package/registry/curated/tiktok-bot/SKILL.md +104 -0
- package/registry/curated/trello/SKILL.md +44 -0
- package/registry/curated/twitter-bot/SKILL.md +63 -0
- package/registry/curated/weather/SKILL.md +37 -0
- package/registry/curated/web-scraper/SKILL.md +60 -0
- package/registry/curated/web-search/SKILL.md +49 -0
- package/registry/curated/whisper-transcribe/SKILL.md +58 -0
- package/registry/curated/youtube-bot/SKILL.md +104 -0
- package/registry.json +1426 -0
- package/scripts/update-registry.mjs +126 -0
- package/scripts/validate-skill.mjs +298 -0
- package/types.d.ts +77 -0
package/dist/catalog.js
CHANGED
|
@@ -2,215 +2,45 @@
|
|
|
2
2
|
* @fileoverview Curated Skills Catalog for AgentOS
|
|
3
3
|
* @module @framers/agentos-skills-registry/catalog
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* availability checks.
|
|
5
|
+
* Programmatic catalog derived from registry.json so it stays in sync with
|
|
6
|
+
* bundled SKILL.md entries.
|
|
8
7
|
*/
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
9
9
|
// ============================================================================
|
|
10
|
-
// CATALOG
|
|
10
|
+
// CATALOG BUILD
|
|
11
11
|
// ============================================================================
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
tags: ['github', 'git', 'issues', 'pull-requests', 'ci-cd', 'code-review'],
|
|
45
|
-
requiredSecrets: ['github.token'],
|
|
46
|
-
requiredTools: [],
|
|
47
|
-
skillPath: 'registry/curated/github/SKILL.md',
|
|
48
|
-
namespace: 'wunderland',
|
|
49
|
-
source: 'curated',
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
name: 'coding-agent',
|
|
53
|
-
displayName: 'Coding Agent',
|
|
54
|
-
description: 'Write, review, debug, refactor, and explain code across multiple programming languages and frameworks.',
|
|
55
|
-
category: 'developer-tools',
|
|
56
|
-
tags: ['coding', 'programming', 'code-review', 'debugging', 'refactoring', 'development'],
|
|
57
|
-
requiredSecrets: [],
|
|
58
|
-
requiredTools: ['filesystem'],
|
|
59
|
-
skillPath: 'registry/curated/coding-agent/SKILL.md',
|
|
60
|
-
namespace: 'wunderland',
|
|
61
|
-
source: 'curated',
|
|
62
|
-
},
|
|
63
|
-
// ── Communication ─────────────────────────────────────────────────────
|
|
64
|
-
{
|
|
65
|
-
name: 'slack-helper',
|
|
66
|
-
displayName: 'Slack Helper',
|
|
67
|
-
description: 'Manage Slack workspaces, channels, messages, and integrations through the Slack API.',
|
|
68
|
-
category: 'communication',
|
|
69
|
-
tags: ['slack', 'messaging', 'workspace', 'notifications', 'team-chat'],
|
|
70
|
-
requiredSecrets: ['slack.bot_token', 'slack.app_token'],
|
|
71
|
-
requiredTools: [],
|
|
72
|
-
skillPath: 'registry/curated/slack-helper/SKILL.md',
|
|
73
|
-
namespace: 'wunderland',
|
|
74
|
-
source: 'curated',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: 'discord-helper',
|
|
78
|
-
displayName: 'Discord Helper',
|
|
79
|
-
description: 'Manage Discord servers, channels, roles, and messages through the Discord API.',
|
|
80
|
-
category: 'communication',
|
|
81
|
-
tags: ['discord', 'messaging', 'server', 'moderation', 'community'],
|
|
82
|
-
requiredSecrets: ['discord.bot_token'],
|
|
83
|
-
requiredTools: [],
|
|
84
|
-
skillPath: 'registry/curated/discord-helper/SKILL.md',
|
|
85
|
-
namespace: 'wunderland',
|
|
86
|
-
source: 'curated',
|
|
87
|
-
},
|
|
88
|
-
// ── Productivity ──────────────────────────────────────────────────────
|
|
89
|
-
{
|
|
90
|
-
name: 'notion',
|
|
91
|
-
displayName: 'Notion',
|
|
92
|
-
description: 'Read, create, and manage pages, databases, and content blocks in Notion workspaces.',
|
|
93
|
-
category: 'productivity',
|
|
94
|
-
tags: ['notion', 'wiki', 'database', 'notes', 'project-management', 'knowledge-base'],
|
|
95
|
-
requiredSecrets: ['notion.api_key'],
|
|
96
|
-
requiredTools: [],
|
|
97
|
-
skillPath: 'registry/curated/notion/SKILL.md',
|
|
98
|
-
namespace: 'wunderland',
|
|
99
|
-
source: 'curated',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
name: 'obsidian',
|
|
103
|
-
displayName: 'Obsidian Vault',
|
|
104
|
-
description: 'Read, create, and manage notes, links, and metadata in Obsidian vaults via the local filesystem.',
|
|
105
|
-
category: 'productivity',
|
|
106
|
-
tags: ['obsidian', 'markdown', 'notes', 'knowledge-graph', 'zettelkasten', 'pkm'],
|
|
107
|
-
requiredSecrets: [],
|
|
108
|
-
requiredTools: ['filesystem'],
|
|
109
|
-
skillPath: 'registry/curated/obsidian/SKILL.md',
|
|
110
|
-
namespace: 'wunderland',
|
|
111
|
-
source: 'curated',
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
name: 'trello',
|
|
115
|
-
displayName: 'Trello',
|
|
116
|
-
description: 'Manage Trello boards, lists, cards, checklists, and team workflows via the Trello API.',
|
|
117
|
-
category: 'productivity',
|
|
118
|
-
tags: ['trello', 'kanban', 'project-management', 'boards', 'tasks', 'workflow'],
|
|
119
|
-
requiredSecrets: ['trello.api_key', 'trello.token'],
|
|
120
|
-
requiredTools: [],
|
|
121
|
-
skillPath: 'registry/curated/trello/SKILL.md',
|
|
122
|
-
namespace: 'wunderland',
|
|
123
|
-
source: 'curated',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
name: 'apple-notes',
|
|
127
|
-
displayName: 'Apple Notes',
|
|
128
|
-
description: 'Create, read, search, and manage notes in Apple Notes using AppleScript and macOS automation.',
|
|
129
|
-
category: 'productivity',
|
|
130
|
-
tags: ['apple-notes', 'macos', 'notes', 'applescript', 'automation'],
|
|
131
|
-
requiredSecrets: [],
|
|
132
|
-
requiredTools: ['filesystem'],
|
|
133
|
-
skillPath: 'registry/curated/apple-notes/SKILL.md',
|
|
134
|
-
namespace: 'wunderland',
|
|
135
|
-
source: 'curated',
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
name: 'apple-reminders',
|
|
139
|
-
displayName: 'Apple Reminders',
|
|
140
|
-
description: 'Create, manage, and query reminders and lists in Apple Reminders using AppleScript and macOS automation.',
|
|
141
|
-
category: 'productivity',
|
|
142
|
-
tags: ['apple-reminders', 'macos', 'reminders', 'tasks', 'applescript', 'automation'],
|
|
143
|
-
requiredSecrets: [],
|
|
144
|
-
requiredTools: ['filesystem'],
|
|
145
|
-
skillPath: 'registry/curated/apple-reminders/SKILL.md',
|
|
146
|
-
namespace: 'wunderland',
|
|
147
|
-
source: 'curated',
|
|
148
|
-
},
|
|
149
|
-
// ── DevOps ────────────────────────────────────────────────────────────
|
|
150
|
-
{
|
|
151
|
-
name: 'healthcheck',
|
|
152
|
-
displayName: 'Health Check Monitor',
|
|
153
|
-
description: 'Monitor health and availability of systems, services, APIs, and infrastructure endpoints.',
|
|
154
|
-
category: 'devops',
|
|
155
|
-
tags: ['monitoring', 'health', 'uptime', 'infrastructure', 'diagnostics', 'status'],
|
|
156
|
-
requiredSecrets: [],
|
|
157
|
-
requiredTools: ['web-search'],
|
|
158
|
-
skillPath: 'registry/curated/healthcheck/SKILL.md',
|
|
159
|
-
namespace: 'wunderland',
|
|
160
|
-
source: 'curated',
|
|
161
|
-
},
|
|
162
|
-
// ── Media ─────────────────────────────────────────────────────────────
|
|
163
|
-
{
|
|
164
|
-
name: 'spotify-player',
|
|
165
|
-
displayName: 'Spotify Player',
|
|
166
|
-
description: 'Control Spotify playback, manage playlists, search music, and get recommendations via the Spotify API.',
|
|
167
|
-
category: 'media',
|
|
168
|
-
tags: ['spotify', 'music', 'playback', 'playlists', 'streaming', 'audio'],
|
|
169
|
-
requiredSecrets: ['spotify.client_id', 'spotify.client_secret', 'spotify.refresh_token'],
|
|
170
|
-
requiredTools: [],
|
|
171
|
-
skillPath: 'registry/curated/spotify-player/SKILL.md',
|
|
172
|
-
namespace: 'wunderland',
|
|
173
|
-
source: 'curated',
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
name: 'whisper-transcribe',
|
|
177
|
-
displayName: 'Whisper Transcription',
|
|
178
|
-
description: 'Transcribe audio and video files to text using OpenAI Whisper or compatible speech-to-text APIs.',
|
|
179
|
-
category: 'media',
|
|
180
|
-
tags: ['transcription', 'whisper', 'speech-to-text', 'audio', 'stt', 'voice'],
|
|
181
|
-
requiredSecrets: ['openai.api_key'],
|
|
182
|
-
requiredTools: ['filesystem'],
|
|
183
|
-
skillPath: 'registry/curated/whisper-transcribe/SKILL.md',
|
|
184
|
-
namespace: 'wunderland',
|
|
185
|
-
source: 'curated',
|
|
186
|
-
},
|
|
187
|
-
// ── Security ──────────────────────────────────────────────────────────
|
|
188
|
-
{
|
|
189
|
-
name: '1password',
|
|
190
|
-
displayName: '1Password Vault',
|
|
191
|
-
description: 'Query and retrieve items from 1Password vaults using the 1Password CLI for secure credential access.',
|
|
192
|
-
category: 'security',
|
|
193
|
-
tags: ['1password', 'passwords', 'secrets', 'vault', 'credentials', 'security'],
|
|
194
|
-
requiredSecrets: [],
|
|
195
|
-
requiredTools: [],
|
|
196
|
-
skillPath: 'registry/curated/1password/SKILL.md',
|
|
197
|
-
namespace: 'wunderland',
|
|
198
|
-
source: 'curated',
|
|
199
|
-
},
|
|
200
|
-
// ── Creative ──────────────────────────────────────────────────────────
|
|
201
|
-
{
|
|
202
|
-
name: 'image-gen',
|
|
203
|
-
displayName: 'AI Image Generation',
|
|
204
|
-
description: 'Generate images from text prompts using AI image generation APIs like DALL-E, Stable Diffusion, or Midjourney.',
|
|
205
|
-
category: 'creative',
|
|
206
|
-
tags: ['image-generation', 'ai-art', 'dall-e', 'stable-diffusion', 'creative', 'visual'],
|
|
207
|
-
requiredSecrets: ['openai.api_key'],
|
|
208
|
-
requiredTools: [],
|
|
209
|
-
skillPath: 'registry/curated/image-gen/SKILL.md',
|
|
210
|
-
namespace: 'wunderland',
|
|
211
|
-
source: 'curated',
|
|
212
|
-
},
|
|
213
|
-
];
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
const registry = require('../registry.json');
|
|
14
|
+
function toStringArray(value) {
|
|
15
|
+
if (!Array.isArray(value))
|
|
16
|
+
return [];
|
|
17
|
+
return value.filter((v) => typeof v === 'string' && v.trim().length > 0);
|
|
18
|
+
}
|
|
19
|
+
function slugToDisplayName(slug) {
|
|
20
|
+
return slug
|
|
21
|
+
.split(/[-_]/g)
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.map((part) => part[0].toUpperCase() + part.slice(1))
|
|
24
|
+
.join(' ');
|
|
25
|
+
}
|
|
26
|
+
function toCatalogEntry(entry) {
|
|
27
|
+
const skillPath = `${entry.path}/SKILL.md`;
|
|
28
|
+
return {
|
|
29
|
+
name: entry.name,
|
|
30
|
+
displayName: entry.displayName?.trim() || slugToDisplayName(entry.name),
|
|
31
|
+
description: entry.description ?? '',
|
|
32
|
+
category: entry.category?.trim() || 'uncategorized',
|
|
33
|
+
tags: toStringArray(entry.keywords),
|
|
34
|
+
requiredSecrets: toStringArray(entry.requiredSecrets),
|
|
35
|
+
requiredTools: toStringArray(entry.requiredTools),
|
|
36
|
+
skillPath,
|
|
37
|
+
source: entry.source,
|
|
38
|
+
namespace: entry.namespace?.trim() || 'wunderland',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const curated = (registry.skills?.curated ?? []).map(toCatalogEntry);
|
|
42
|
+
const community = (registry.skills?.community ?? []).map(toCatalogEntry);
|
|
43
|
+
export const SKILLS_CATALOG = [...curated, ...community].sort((a, b) => a.name.localeCompare(b.name));
|
|
214
44
|
// ============================================================================
|
|
215
45
|
// QUERY HELPERS
|
|
216
46
|
// ============================================================================
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview AgentOS Skills Registry
|
|
2
|
+
* @fileoverview AgentOS Skills Registry.
|
|
3
3
|
*
|
|
4
|
-
* Single
|
|
5
|
-
*
|
|
4
|
+
* Single package containing curated SKILL.md prompt modules, a typed catalog,
|
|
5
|
+
* and lazy-loading factory functions for SkillRegistry/SkillSnapshot.
|
|
6
6
|
*
|
|
7
7
|
* `@framers/agentos` is an **optional peer dependency** — the catalog helpers
|
|
8
8
|
* (re-exported from `./catalog.js`) work without it. Only the factory
|
|
@@ -51,6 +51,9 @@ export interface SkillEligibilityContext {
|
|
|
51
51
|
}
|
|
52
52
|
export { SKILLS_CATALOG, getSkillsByCategory, getSkillByName, getAvailableSkills, getCategories, getSkillsByTag, searchSkills, getCuratedSkills, getCommunitySkills, getAllSkills, } from './catalog.js';
|
|
53
53
|
export type { SkillCatalogEntry } from './catalog.js';
|
|
54
|
+
export { discoverWorkspaceSkills, mergeWithWorkspaceSkills, parseSkillFrontmatter, } from './workspace-discovery.js';
|
|
55
|
+
export type { SkillFrontmatter, WorkspaceDiscoveryOptions, } from './workspace-discovery.js';
|
|
56
|
+
export type { SkillInstallKind, SkillInstallSpec, SkillRequirements, SkillMetadata, SkillRegistryEntry, SkillsRegistryStats, SkillsRegistry, } from './schema-types.js';
|
|
54
57
|
/** Resolved module cache — loaded at most once per process. */
|
|
55
58
|
declare let _agentosSkillsMod: {
|
|
56
59
|
SkillRegistry: new (config?: SkillsConfig) => {
|
|
@@ -92,12 +95,17 @@ export interface CuratedSkillsOptions {
|
|
|
92
95
|
export interface SkillsCatalogEntry {
|
|
93
96
|
id: string;
|
|
94
97
|
name: string;
|
|
98
|
+
displayName?: string;
|
|
95
99
|
version: string;
|
|
96
100
|
path: string;
|
|
97
101
|
description: string;
|
|
102
|
+
category?: string;
|
|
103
|
+
namespace?: string;
|
|
98
104
|
verified: boolean;
|
|
99
105
|
verifiedAt?: string;
|
|
100
106
|
keywords?: string[];
|
|
107
|
+
requiredSecrets?: string[];
|
|
108
|
+
requiredTools?: string[];
|
|
101
109
|
metadata?: Record<string, unknown>;
|
|
102
110
|
}
|
|
103
111
|
export interface SkillsCatalog {
|
|
@@ -114,7 +122,7 @@ export interface SkillsCatalog {
|
|
|
114
122
|
stats?: Record<string, unknown>;
|
|
115
123
|
}
|
|
116
124
|
/**
|
|
117
|
-
* Load the
|
|
125
|
+
* Load the bundled registry.json catalog.
|
|
118
126
|
*/
|
|
119
127
|
export declare function getSkillsCatalog(): Promise<SkillsCatalog>;
|
|
120
128
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;KAAE,CAAC;IAChF,OAAO,CAAC,EAAE,MAAM,CACd,MAAM,EACN;QACE,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CACF,CAAC;CACH;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAI3B,+DAA+D;AAC/D,QAAA,IAAI,iBAAiB,EAAE;IACrB,aAAa,EAAE,KAAK,MAAM,CAAC,EAAE,YAAY,KAAK;QAC5C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1E,aAAa,CAAC,OAAO,CAAC,EAAE;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,WAAW,CAAC,EAAE,uBAAuB,CAAC;YACtC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACzC,GAAG,aAAa,CAAC;KACnB,CAAC;CACH,GAAG,IAAW,CAAC;AAEhB,iBAAe,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAiB9E;AAgBD;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAID,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvD,MAAM,EAAE;QAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAAC,SAAS,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAID;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAI/D;AAED;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAG/E;AAID;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAC7C,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CASpF;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAsBxB"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview AgentOS Skills Registry
|
|
2
|
+
* @fileoverview AgentOS Skills Registry.
|
|
3
3
|
*
|
|
4
|
-
* Single
|
|
5
|
-
*
|
|
4
|
+
* Single package containing curated SKILL.md prompt modules, a typed catalog,
|
|
5
|
+
* and lazy-loading factory functions for SkillRegistry/SkillSnapshot.
|
|
6
6
|
*
|
|
7
7
|
* `@framers/agentos` is an **optional peer dependency** — the catalog helpers
|
|
8
8
|
* (re-exported from `./catalog.js`) work without it. Only the factory
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import * as path from 'node:path';
|
|
15
15
|
import * as fs from 'node:fs/promises';
|
|
16
|
-
import { createRequire } from 'node:module';
|
|
17
16
|
// ── Re-export the programmatic catalog (zero heavy deps) ────────────────────
|
|
18
17
|
export { SKILLS_CATALOG, getSkillsByCategory, getSkillByName, getAvailableSkills, getCategories, getSkillsByTag, searchSkills, getCuratedSkills, getCommunitySkills, getAllSkills, } from './catalog.js';
|
|
18
|
+
// ── Re-export workspace skill discovery (Feature 3.5) ───────────────────────
|
|
19
|
+
export { discoverWorkspaceSkills, mergeWithWorkspaceSkills, parseSkillFrontmatter, } from './workspace-discovery.js';
|
|
19
20
|
// ── Lazy loader for @framers/agentos ────────────────────────────────────────
|
|
20
21
|
/** Resolved module cache — loaded at most once per process. */
|
|
21
22
|
let _agentosSkillsMod = null;
|
|
@@ -36,14 +37,15 @@ async function requireAgentOS() {
|
|
|
36
37
|
'which have no peer-dep requirement.');
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
|
-
// ── Path helpers (
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
// ── Path helpers (resolve locally — SKILL.md files are bundled in this package) ───────
|
|
41
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
42
|
+
/** Package root (one level up from dist/ or src/) */
|
|
43
|
+
function resolvePackageRoot() {
|
|
44
|
+
// Works from both dist/index.js and src/index.ts
|
|
45
|
+
return path.resolve(__dirname, '..');
|
|
43
46
|
}
|
|
44
|
-
function
|
|
45
|
-
|
|
46
|
-
return path.dirname(pkgJsonPath);
|
|
47
|
+
function resolveCatalogPath() {
|
|
48
|
+
return path.join(resolvePackageRoot(), 'registry.json');
|
|
47
49
|
}
|
|
48
50
|
/**
|
|
49
51
|
* Absolute path to the bundled curated skills directory.
|
|
@@ -51,17 +53,17 @@ function resolveSkillsPackageDir() {
|
|
|
51
53
|
* This directory can be passed to `SkillRegistry.loadFromDirs([dir])`.
|
|
52
54
|
*/
|
|
53
55
|
export function getBundledCuratedSkillsDir() {
|
|
54
|
-
return path.join(
|
|
56
|
+
return path.join(resolvePackageRoot(), 'registry', 'curated');
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Absolute path to the bundled community skills directory.
|
|
58
60
|
*/
|
|
59
61
|
export function getBundledCommunitySkillsDir() {
|
|
60
|
-
return path.join(
|
|
62
|
+
return path.join(resolvePackageRoot(), 'registry', 'community');
|
|
61
63
|
}
|
|
62
64
|
// ── Catalog JSON loader ─────────────────────────────────────────────────────
|
|
63
65
|
/**
|
|
64
|
-
* Load the
|
|
66
|
+
* Load the bundled registry.json catalog.
|
|
65
67
|
*/
|
|
66
68
|
export async function getSkillsCatalog() {
|
|
67
69
|
const registryPath = resolveCatalogPath();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Type declarations for registry.json schema.
|
|
3
|
+
*
|
|
4
|
+
* These types describe the shape of the SKILL.md registry catalog
|
|
5
|
+
* (registry.json). They differ from the SkillCatalogEntry in catalog.ts,
|
|
6
|
+
* which is a higher-level, UI-friendly representation.
|
|
7
|
+
*
|
|
8
|
+
* @module @framers/agentos-skills-registry/schema-types
|
|
9
|
+
*/
|
|
10
|
+
export type SkillInstallKind = 'brew' | 'apt' | 'node' | 'go' | 'uv' | 'download';
|
|
11
|
+
export interface SkillInstallSpec {
|
|
12
|
+
id?: string;
|
|
13
|
+
kind: SkillInstallKind;
|
|
14
|
+
label?: string;
|
|
15
|
+
bins?: string[];
|
|
16
|
+
os?: readonly string[];
|
|
17
|
+
formula?: string;
|
|
18
|
+
package?: string;
|
|
19
|
+
module?: string;
|
|
20
|
+
url?: string;
|
|
21
|
+
archive?: string;
|
|
22
|
+
extract?: boolean;
|
|
23
|
+
stripComponents?: number;
|
|
24
|
+
targetDir?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SkillRequirements {
|
|
27
|
+
bins?: string[];
|
|
28
|
+
anyBins?: string[];
|
|
29
|
+
env?: string[];
|
|
30
|
+
config?: string[];
|
|
31
|
+
}
|
|
32
|
+
export interface SkillMetadata {
|
|
33
|
+
always?: boolean;
|
|
34
|
+
skillKey?: string;
|
|
35
|
+
primaryEnv?: string;
|
|
36
|
+
emoji?: string;
|
|
37
|
+
homepage?: string;
|
|
38
|
+
os?: readonly string[];
|
|
39
|
+
requires?: SkillRequirements;
|
|
40
|
+
install?: SkillInstallSpec[];
|
|
41
|
+
}
|
|
42
|
+
/** Shape of a single skill entry in registry.json */
|
|
43
|
+
export interface SkillRegistryEntry {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
displayName?: string;
|
|
47
|
+
version: string;
|
|
48
|
+
path: string;
|
|
49
|
+
description: string;
|
|
50
|
+
category?: string;
|
|
51
|
+
namespace?: string;
|
|
52
|
+
verified: boolean;
|
|
53
|
+
source?: 'curated' | 'community';
|
|
54
|
+
verifiedAt?: string;
|
|
55
|
+
keywords?: string[];
|
|
56
|
+
requiredSecrets?: string[];
|
|
57
|
+
requiredTools?: string[];
|
|
58
|
+
metadata?: SkillMetadata;
|
|
59
|
+
}
|
|
60
|
+
export interface SkillsRegistryStats {
|
|
61
|
+
totalSkills: number;
|
|
62
|
+
curatedCount: number;
|
|
63
|
+
communityCount: number;
|
|
64
|
+
}
|
|
65
|
+
/** Shape of the full registry.json file */
|
|
66
|
+
export interface SkillsRegistry {
|
|
67
|
+
version: string;
|
|
68
|
+
updated: string;
|
|
69
|
+
categories: {
|
|
70
|
+
curated: string[];
|
|
71
|
+
community: string[];
|
|
72
|
+
};
|
|
73
|
+
skills: {
|
|
74
|
+
curated: SkillRegistryEntry[];
|
|
75
|
+
community: SkillRegistryEntry[];
|
|
76
|
+
};
|
|
77
|
+
stats: SkillsRegistryStats;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=schema-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../src/schema-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAC9B,SAAS,EAAE,kBAAkB,EAAE,CAAC;KACjC,CAAC;IACF,KAAK,EAAE,mBAAmB,CAAC;CAC5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Type declarations for registry.json schema.
|
|
3
|
+
*
|
|
4
|
+
* These types describe the shape of the SKILL.md registry catalog
|
|
5
|
+
* (registry.json). They differ from the SkillCatalogEntry in catalog.ts,
|
|
6
|
+
* which is a higher-level, UI-friendly representation.
|
|
7
|
+
*
|
|
8
|
+
* @module @framers/agentos-skills-registry/schema-types
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=schema-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.js","sourceRoot":"","sources":["../src/schema-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Cross-Agent Skill Discovery (Feature 3.5)
|
|
3
|
+
*
|
|
4
|
+
* Discovers SKILL.md files from a workspace `.agents/skills/` directory,
|
|
5
|
+
* parses their YAML frontmatter, and returns them as SkillCatalogEntry[]
|
|
6
|
+
* compatible with the existing registry catalog.
|
|
7
|
+
*
|
|
8
|
+
* Workspace skills take priority over registry skills when names collide.
|
|
9
|
+
*
|
|
10
|
+
* @module @framers/agentos-skills-registry/workspace-discovery
|
|
11
|
+
*/
|
|
12
|
+
import type { SkillCatalogEntry } from './catalog.js';
|
|
13
|
+
/** Raw frontmatter fields extracted from a workspace SKILL.md */
|
|
14
|
+
export interface SkillFrontmatter {
|
|
15
|
+
name: string;
|
|
16
|
+
version?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
category?: string;
|
|
19
|
+
tags?: string[];
|
|
20
|
+
author?: string;
|
|
21
|
+
namespace?: string;
|
|
22
|
+
requires_secrets?: string[];
|
|
23
|
+
requires_tools?: string[];
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
/** Options for workspace skill discovery */
|
|
27
|
+
export interface WorkspaceDiscoveryOptions {
|
|
28
|
+
/**
|
|
29
|
+
* Absolute or relative path to the workspace skills directory.
|
|
30
|
+
* Defaults to `.agents/skills/` resolved from `cwd`.
|
|
31
|
+
*/
|
|
32
|
+
skillsDir?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Working directory used to resolve relative `skillsDir`.
|
|
35
|
+
* Defaults to `process.cwd()`.
|
|
36
|
+
*/
|
|
37
|
+
cwd?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Lightweight YAML frontmatter parser.
|
|
41
|
+
*
|
|
42
|
+
* Handles the subset of YAML used in SKILL.md frontmatter:
|
|
43
|
+
* - scalar key: value pairs
|
|
44
|
+
* - inline arrays [a, b, c]
|
|
45
|
+
* - block arrays (- item)
|
|
46
|
+
*
|
|
47
|
+
* Does NOT pull in a full YAML dependency — keeps the package lightweight.
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseSkillFrontmatter(content: string): SkillFrontmatter | null;
|
|
50
|
+
/**
|
|
51
|
+
* Discover SKILL.md files from a workspace directory.
|
|
52
|
+
*
|
|
53
|
+
* Scans `<skillsDir>/` for sub-directories containing a SKILL.md file,
|
|
54
|
+
* parses the YAML frontmatter, and returns the discovered skills as
|
|
55
|
+
* SkillCatalogEntry[] compatible with the existing catalog.
|
|
56
|
+
*
|
|
57
|
+
* If the directory does not exist, returns an empty array.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* import { discoverWorkspaceSkills } from '@framers/agentos-skills-registry';
|
|
62
|
+
*
|
|
63
|
+
* // Uses default .agents/skills/ in cwd
|
|
64
|
+
* const skills = await discoverWorkspaceSkills();
|
|
65
|
+
*
|
|
66
|
+
* // Custom path
|
|
67
|
+
* const skills2 = await discoverWorkspaceSkills({
|
|
68
|
+
* skillsDir: '/my/project/.agents/skills',
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function discoverWorkspaceSkills(options?: WorkspaceDiscoveryOptions): Promise<SkillCatalogEntry[]>;
|
|
73
|
+
/**
|
|
74
|
+
* Merge workspace-discovered skills with the registry catalog.
|
|
75
|
+
*
|
|
76
|
+
* Workspace skills take priority: if a workspace skill has the same `name`
|
|
77
|
+
* as a registry skill, the workspace version replaces the registry one.
|
|
78
|
+
*
|
|
79
|
+
* @param registrySkills - Skills from the built-in catalog (SKILLS_CATALOG)
|
|
80
|
+
* @param workspaceSkills - Skills discovered from the workspace directory
|
|
81
|
+
* @returns Merged array with workspace overrides applied
|
|
82
|
+
*/
|
|
83
|
+
export declare function mergeWithWorkspaceSkills(registrySkills: SkillCatalogEntry[], workspaceSkills: SkillCatalogEntry[]): SkillCatalogEntry[];
|
|
84
|
+
//# sourceMappingURL=workspace-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-discovery.d.ts","sourceRoot":"","sources":["../src/workspace-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,4CAA4C;AAC5C,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAuF9E;AAyBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA8C9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,iBAAiB,EAAE,EACnC,eAAe,EAAE,iBAAiB,EAAE,GACnC,iBAAiB,EAAE,CAUrB"}
|