@framers/agentos-skills-registry 0.2.0 → 0.3.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.
Files changed (64) hide show
  1. package/CONTRIBUTING.md +231 -0
  2. package/README.md +146 -49
  3. package/dist/catalog.d.ts +105 -6
  4. package/dist/catalog.d.ts.map +1 -1
  5. package/dist/catalog.js +257 -206
  6. package/dist/catalog.js.map +1 -1
  7. package/dist/index.d.ts +30 -8
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +48 -25
  10. package/dist/index.js.map +1 -1
  11. package/dist/schema-types.d.ts +79 -0
  12. package/dist/schema-types.d.ts.map +1 -0
  13. package/dist/schema-types.js +11 -0
  14. package/dist/schema-types.js.map +1 -0
  15. package/dist/workspace-discovery.d.ts +77 -0
  16. package/dist/workspace-discovery.d.ts.map +1 -0
  17. package/dist/workspace-discovery.js +172 -0
  18. package/dist/workspace-discovery.js.map +1 -0
  19. package/package.json +17 -5
  20. package/registry/community/.gitkeep +0 -0
  21. package/registry/curated/1password/SKILL.md +53 -0
  22. package/registry/curated/account-manager/SKILL.md +60 -0
  23. package/registry/curated/apple-notes/SKILL.md +45 -0
  24. package/registry/curated/apple-reminders/SKILL.md +46 -0
  25. package/registry/curated/blog-publisher/SKILL.md +110 -0
  26. package/registry/curated/bluesky-bot/SKILL.md +93 -0
  27. package/registry/curated/cloud-ops/SKILL.md +124 -0
  28. package/registry/curated/coding-agent/SKILL.md +40 -0
  29. package/registry/curated/content-creator/SKILL.md +53 -0
  30. package/registry/curated/deep-research/SKILL.md +56 -0
  31. package/registry/curated/discord-helper/SKILL.md +43 -0
  32. package/registry/curated/facebook-bot/SKILL.md +94 -0
  33. package/registry/curated/git/SKILL.md +39 -0
  34. package/registry/curated/github/SKILL.md +54 -0
  35. package/registry/curated/healthcheck/SKILL.md +43 -0
  36. package/registry/curated/image-gen/SKILL.md +50 -0
  37. package/registry/curated/instagram-bot/SKILL.md +60 -0
  38. package/registry/curated/linkedin-bot/SKILL.md +86 -0
  39. package/registry/curated/mastodon-bot/SKILL.md +104 -0
  40. package/registry/curated/memory-manager/SKILL.md +127 -0
  41. package/registry/curated/notion/SKILL.md +43 -0
  42. package/registry/curated/obsidian/SKILL.md +42 -0
  43. package/registry/curated/pinterest-bot/SKILL.md +45 -0
  44. package/registry/curated/reddit-bot/SKILL.md +74 -0
  45. package/registry/curated/seo-campaign/SKILL.md +51 -0
  46. package/registry/curated/site-deploy/SKILL.md +119 -0
  47. package/registry/curated/slack-helper/SKILL.md +43 -0
  48. package/registry/curated/social-broadcast/SKILL.md +145 -0
  49. package/registry/curated/spotify-player/SKILL.md +45 -0
  50. package/registry/curated/summarize/SKILL.md +40 -0
  51. package/registry/curated/threads-bot/SKILL.md +82 -0
  52. package/registry/curated/tiktok-bot/SKILL.md +104 -0
  53. package/registry/curated/trello/SKILL.md +44 -0
  54. package/registry/curated/twitter-bot/SKILL.md +63 -0
  55. package/registry/curated/voice-conversation/SKILL.md +65 -0
  56. package/registry/curated/weather/SKILL.md +37 -0
  57. package/registry/curated/web-scraper/SKILL.md +60 -0
  58. package/registry/curated/web-search/SKILL.md +49 -0
  59. package/registry/curated/whisper-transcribe/SKILL.md +58 -0
  60. package/registry/curated/youtube-bot/SKILL.md +104 -0
  61. package/registry.json +1478 -0
  62. package/scripts/update-registry.mjs +126 -0
  63. package/scripts/validate-skill.mjs +304 -0
  64. package/types.d.ts +77 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @fileoverview AgentOS Skills Registry Bundle.
2
+ * @fileoverview AgentOS Skills Registry.
3
3
  *
4
- * Single-import package that discovers and loads curated AgentOS skills
5
- * from the `@framers/agentos-skills` catalog.
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,11 @@
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
- export { SKILLS_CATALOG, getSkillsByCategory, getSkillByName, getAvailableSkills, getCategories, getSkillsByTag, searchSkills, getCuratedSkills, getCommunitySkills, getAllSkills, } from './catalog.js';
17
+ export { SKILLS_CATALOG, getSkillsByCategory, getSkillByName, getAvailableSkills, getCategories, getSkillsByTag, searchSkills, getCuratedSkills, getCommunitySkills, getAllSkills, getSkillEntries, createLocalSkillProxy, loadSkillFromAbsolutePath, loadSkillByName, loadSkillsByNames, } from './catalog.js';
18
+ import { getSkillEntries, loadSkillsByNames, } from './catalog.js';
19
+ // ── Re-export workspace skill discovery (Feature 3.5) ───────────────────────
20
+ export { discoverWorkspaceSkills, mergeWithWorkspaceSkills, parseSkillFrontmatter, } from './workspace-discovery.js';
19
21
  // ── Lazy loader for @framers/agentos ────────────────────────────────────────
20
22
  /** Resolved module cache — loaded at most once per process. */
21
23
  let _agentosSkillsMod = null;
@@ -36,14 +38,15 @@ async function requireAgentOS() {
36
38
  'which have no peer-dep requirement.');
37
39
  }
38
40
  }
39
- // ── Path helpers (only depend on @framers/agentos-skills, a real dep) ───────
40
- const require = createRequire(import.meta.url);
41
- function resolveCatalogPath() {
42
- return require.resolve('@framers/agentos-skills/registry.json');
41
+ // ── Path helpers (resolve locally SKILL.md files are bundled in this package) ───────
42
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
43
+ /** Package root (one level up from dist/ or src/) */
44
+ function resolvePackageRoot() {
45
+ // Works from both dist/index.js and src/index.ts
46
+ return path.resolve(__dirname, '..');
43
47
  }
44
- function resolveSkillsPackageDir() {
45
- const pkgJsonPath = require.resolve('@framers/agentos-skills/package.json');
46
- return path.dirname(pkgJsonPath);
48
+ function resolveCatalogPath() {
49
+ return path.join(resolvePackageRoot(), 'registry.json');
47
50
  }
48
51
  /**
49
52
  * Absolute path to the bundled curated skills directory.
@@ -51,17 +54,17 @@ function resolveSkillsPackageDir() {
51
54
  * This directory can be passed to `SkillRegistry.loadFromDirs([dir])`.
52
55
  */
53
56
  export function getBundledCuratedSkillsDir() {
54
- return path.join(resolveSkillsPackageDir(), 'registry', 'curated');
57
+ return path.join(resolvePackageRoot(), 'registry', 'curated');
55
58
  }
56
59
  /**
57
60
  * Absolute path to the bundled community skills directory.
58
61
  */
59
62
  export function getBundledCommunitySkillsDir() {
60
- return path.join(resolveSkillsPackageDir(), 'registry', 'community');
63
+ return path.join(resolvePackageRoot(), 'registry', 'community');
61
64
  }
62
65
  // ── Catalog JSON loader ─────────────────────────────────────────────────────
63
66
  /**
64
- * Load the `@framers/agentos-skills` catalog JSON.
67
+ * Load the bundled registry.json catalog.
65
68
  */
66
69
  export async function getSkillsCatalog() {
67
70
  const registryPath = resolveCatalogPath();
@@ -76,6 +79,23 @@ export async function getAvailableCuratedSkills() {
76
79
  return catalog.skills.curated ?? [];
77
80
  }
78
81
  // ── Factory functions (lazy-load @framers/agentos) ──────────────────────────
82
+ async function populateCuratedRegistry(args) {
83
+ const names = getSkillEntries(args.selection).map((entry) => entry.name);
84
+ const loadedSkills = await loadSkillsByNames(names);
85
+ for (const loadedSkill of loadedSkills) {
86
+ args.registry.register({
87
+ skill: {
88
+ name: loadedSkill.name,
89
+ description: loadedSkill.description,
90
+ content: loadedSkill.content,
91
+ },
92
+ frontmatter: loadedSkill.frontmatter,
93
+ metadata: loadedSkill.metadata ?? args.runtime.extractMetadata?.(loadedSkill.frontmatter),
94
+ sourcePath: path.dirname(loadedSkill.sourcePath),
95
+ source: 'bundled',
96
+ });
97
+ }
98
+ }
79
99
  /**
80
100
  * Create a SkillRegistry loaded with bundled curated skills.
81
101
  *
@@ -83,13 +103,15 @@ export async function getAvailableCuratedSkills() {
83
103
  * Throws a descriptive error if the peer dep is missing.
84
104
  */
85
105
  export async function createCuratedSkillRegistry(options) {
86
- const { SkillRegistry } = await requireAgentOS();
87
- const registry = new SkillRegistry(options?.config);
88
- if (typeof registry.loadFromDir === 'function') {
89
- await registry.loadFromDir(getBundledCuratedSkillsDir(), { source: 'bundled' });
90
- }
91
- else {
92
- await registry.loadFromDirs([getBundledCuratedSkillsDir()]);
106
+ const runtime = await requireAgentOS();
107
+ const registry = new runtime.SkillRegistry(options?.config);
108
+ const selection = options?.skills ?? 'all';
109
+ if (selection !== 'none') {
110
+ await populateCuratedRegistry({
111
+ registry,
112
+ runtime,
113
+ selection,
114
+ });
93
115
  }
94
116
  return registry;
95
117
  }
@@ -111,12 +133,13 @@ export async function createCuratedSkillSnapshot(options) {
111
133
  createdAt,
112
134
  };
113
135
  }
114
- const registry = await createCuratedSkillRegistry({ config: options?.config });
115
- const filter = Array.isArray(selection) ? selection : undefined;
136
+ const registry = await createCuratedSkillRegistry({
137
+ config: options?.config,
138
+ skills: selection,
139
+ });
116
140
  return registry.buildSnapshot({
117
141
  platform: options?.platform,
118
142
  eligibility: options?.eligibility,
119
- filter,
120
143
  });
121
144
  }
122
145
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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,77 @@
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 LoadedSkillFrontmatter, type SkillCatalogEntry } from './catalog.js';
13
+ /** Raw frontmatter fields extracted from a workspace SKILL.md */
14
+ export interface SkillFrontmatter extends LoadedSkillFrontmatter {
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
+ * YAML frontmatter parser for workspace SKILL.md files.
41
+ */
42
+ export declare function parseSkillFrontmatter(content: string): SkillFrontmatter | null;
43
+ /**
44
+ * Discover SKILL.md files from a workspace directory.
45
+ *
46
+ * Scans `<skillsDir>/` for sub-directories containing a SKILL.md file,
47
+ * parses the YAML frontmatter, and returns the discovered skills as
48
+ * SkillCatalogEntry[] compatible with the existing catalog.
49
+ *
50
+ * If the directory does not exist, returns an empty array.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * import { discoverWorkspaceSkills } from '@framers/agentos-skills-registry';
55
+ *
56
+ * // Uses default .agents/skills/ in cwd
57
+ * const skills = await discoverWorkspaceSkills();
58
+ *
59
+ * // Custom path
60
+ * const skills2 = await discoverWorkspaceSkills({
61
+ * skillsDir: '/my/project/.agents/skills',
62
+ * });
63
+ * ```
64
+ */
65
+ export declare function discoverWorkspaceSkills(options?: WorkspaceDiscoveryOptions): Promise<SkillCatalogEntry[]>;
66
+ /**
67
+ * Merge workspace-discovered skills with the registry catalog.
68
+ *
69
+ * Workspace skills take priority: if a workspace skill has the same `name`
70
+ * as a registry skill, the workspace version replaces the registry one.
71
+ *
72
+ * @param registrySkills - Skills from the built-in catalog (SKILLS_CATALOG)
73
+ * @param workspaceSkills - Skills discovered from the workspace directory
74
+ * @returns Merged array with workspace overrides applied
75
+ */
76
+ export declare function mergeWithWorkspaceSkills(registrySkills: SkillCatalogEntry[], workspaceSkills: SkillCatalogEntry[]): SkillCatalogEntry[];
77
+ //# 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;AAKH,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAItB,iEAAiE;AACjE,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC9D,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;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAmC9E;AA2CD;;;;;;;;;;;;;;;;;;;;;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"}
@@ -0,0 +1,172 @@
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 * as fs from 'node:fs/promises';
13
+ import * as path from 'node:path';
14
+ import YAML from 'yaml';
15
+ import { loadSkillFromAbsolutePath, } from './catalog.js';
16
+ // ── Frontmatter parser ──────────────────────────────────────────────────────
17
+ /**
18
+ * YAML frontmatter parser for workspace SKILL.md files.
19
+ */
20
+ export function parseSkillFrontmatter(content) {
21
+ // Extract frontmatter block between leading --- fences
22
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
23
+ if (!match)
24
+ return null;
25
+ const block = match[1];
26
+ let parsed;
27
+ try {
28
+ parsed = YAML.parse(block);
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
34
+ return null;
35
+ const result = parsed;
36
+ // name is required
37
+ if (typeof result.name !== 'string' || !result.name)
38
+ return null;
39
+ return {
40
+ name: result.name,
41
+ version: result.version ?? undefined,
42
+ description: result.description ?? undefined,
43
+ category: result.category ?? undefined,
44
+ tags: Array.isArray(result.tags) ? result.tags : undefined,
45
+ author: result.author ?? undefined,
46
+ namespace: result.namespace ?? undefined,
47
+ requires_secrets: Array.isArray(result.requires_secrets)
48
+ ? result.requires_secrets
49
+ : undefined,
50
+ requires_tools: Array.isArray(result.requires_tools)
51
+ ? result.requires_tools
52
+ : undefined,
53
+ metadata: result.metadata ?? undefined,
54
+ };
55
+ }
56
+ // ── Skill discovery ─────────────────────────────────────────────────────────
57
+ /**
58
+ * Create a lazy-loading skill factory for an absolute SKILL.md path.
59
+ * Used for workspace-discovered skills where the path is already resolved.
60
+ */
61
+ function createAbsoluteSkillLoader(absolutePath, displayName) {
62
+ return async () => loadSkillFromAbsolutePath(absolutePath, displayName);
63
+ }
64
+ /**
65
+ * Convert parsed frontmatter + filesystem path into a SkillCatalogEntry.
66
+ */
67
+ function frontmatterToEntry(fm, skillPath, absoluteSkillMdPath) {
68
+ const displayName = fm.name
69
+ .split('-')
70
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
71
+ .join(' ');
72
+ return {
73
+ name: fm.name,
74
+ displayName,
75
+ description: fm.description ?? '',
76
+ category: fm.category ?? 'workspace',
77
+ tags: fm.tags ?? [],
78
+ requiredSecrets: fm.requires_secrets ?? [],
79
+ requiredTools: fm.requires_tools ?? [],
80
+ skillPath,
81
+ source: 'community',
82
+ namespace: 'wunderland',
83
+ available: true,
84
+ loadSkill: createAbsoluteSkillLoader(absoluteSkillMdPath, displayName),
85
+ };
86
+ }
87
+ /**
88
+ * Discover SKILL.md files from a workspace directory.
89
+ *
90
+ * Scans `<skillsDir>/` for sub-directories containing a SKILL.md file,
91
+ * parses the YAML frontmatter, and returns the discovered skills as
92
+ * SkillCatalogEntry[] compatible with the existing catalog.
93
+ *
94
+ * If the directory does not exist, returns an empty array.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * import { discoverWorkspaceSkills } from '@framers/agentos-skills-registry';
99
+ *
100
+ * // Uses default .agents/skills/ in cwd
101
+ * const skills = await discoverWorkspaceSkills();
102
+ *
103
+ * // Custom path
104
+ * const skills2 = await discoverWorkspaceSkills({
105
+ * skillsDir: '/my/project/.agents/skills',
106
+ * });
107
+ * ```
108
+ */
109
+ export async function discoverWorkspaceSkills(options) {
110
+ const cwd = options?.cwd ?? process.cwd();
111
+ const skillsDir = options?.skillsDir
112
+ ? path.resolve(cwd, options.skillsDir)
113
+ : path.resolve(cwd, '.agents', 'skills');
114
+ // If directory doesn't exist, return empty array
115
+ let entries;
116
+ try {
117
+ entries = await fs.readdir(skillsDir);
118
+ }
119
+ catch {
120
+ return [];
121
+ }
122
+ const discovered = [];
123
+ for (const entry of entries) {
124
+ const entryPath = path.join(skillsDir, entry);
125
+ // Only scan directories
126
+ let stat;
127
+ try {
128
+ stat = await fs.stat(entryPath);
129
+ }
130
+ catch {
131
+ continue;
132
+ }
133
+ if (!stat.isDirectory())
134
+ continue;
135
+ // Look for SKILL.md inside the directory
136
+ const skillMdPath = path.join(entryPath, 'SKILL.md');
137
+ let content;
138
+ try {
139
+ content = await fs.readFile(skillMdPath, 'utf-8');
140
+ }
141
+ catch {
142
+ continue;
143
+ }
144
+ const frontmatter = parseSkillFrontmatter(content);
145
+ if (!frontmatter)
146
+ continue;
147
+ // Use relative path from skillsDir for the skillPath
148
+ const relativePath = path.relative(skillsDir, skillMdPath);
149
+ discovered.push(frontmatterToEntry(frontmatter, relativePath, skillMdPath));
150
+ }
151
+ return discovered;
152
+ }
153
+ /**
154
+ * Merge workspace-discovered skills with the registry catalog.
155
+ *
156
+ * Workspace skills take priority: if a workspace skill has the same `name`
157
+ * as a registry skill, the workspace version replaces the registry one.
158
+ *
159
+ * @param registrySkills - Skills from the built-in catalog (SKILLS_CATALOG)
160
+ * @param workspaceSkills - Skills discovered from the workspace directory
161
+ * @returns Merged array with workspace overrides applied
162
+ */
163
+ export function mergeWithWorkspaceSkills(registrySkills, workspaceSkills) {
164
+ if (workspaceSkills.length === 0)
165
+ return registrySkills;
166
+ const workspaceNames = new Set(workspaceSkills.map((s) => s.name));
167
+ // Filter out registry skills that are overridden by workspace skills
168
+ const filtered = registrySkills.filter((s) => !workspaceNames.has(s.name));
169
+ // Workspace skills come first (higher priority), then remaining registry skills
170
+ return [...workspaceSkills, ...filtered];
171
+ }
172
+ //# sourceMappingURL=workspace-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-discovery.js","sourceRoot":"","sources":["../src/workspace-discovery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@framers/agentos-skills-registry",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "files": [
5
5
  "dist",
6
+ "registry",
7
+ "registry.json",
8
+ "types.d.ts",
9
+ "scripts",
10
+ "CONTRIBUTING.md",
6
11
  "README.md"
7
12
  ],
8
- "description": "Curated skills registry bundle for AgentOS — lazy-loading DI of SKILL.md prompt modules",
13
+ "description": "Curated skills registry for AgentOS — SKILL.md prompt modules, typed catalog, and lazy-loading factories",
9
14
  "type": "module",
10
15
  "sideEffects": false,
11
16
  "main": "./dist/index.js",
@@ -19,11 +24,19 @@
19
24
  "import": "./dist/catalog.js",
20
25
  "types": "./dist/catalog.d.ts"
21
26
  },
27
+ "./workspace-discovery": {
28
+ "import": "./dist/workspace-discovery.js",
29
+ "types": "./dist/workspace-discovery.d.ts"
30
+ },
31
+ "./registry.json": "./registry.json",
32
+ "./types": "./types.d.ts",
22
33
  "./package.json": "./package.json"
23
34
  },
24
35
  "scripts": {
25
36
  "build": "tsc",
26
37
  "clean": "rm -rf dist",
38
+ "validate": "node scripts/validate-skill.mjs",
39
+ "update:registry": "node scripts/update-registry.mjs",
27
40
  "prepublishOnly": "npm run build",
28
41
  "test": "vitest run"
29
42
  },
@@ -50,7 +63,7 @@
50
63
  "access": "public"
51
64
  },
52
65
  "dependencies": {
53
- "@framers/agentos-skills": "^0.1.0"
66
+ "yaml": "^2.8.1"
54
67
  },
55
68
  "peerDependencies": {
56
69
  "@framers/agentos": ">=0.1.0"
@@ -61,8 +74,7 @@
61
74
  }
62
75
  },
63
76
  "devDependencies": {
64
- "@framers/agentos": "workspace:*",
65
- "@framers/agentos-skills": "workspace:*",
77
+ "@framers/agentos": ">=0.1.0",
66
78
  "@types/node": "^20.12.12",
67
79
  "typescript": "^5.4.5",
68
80
  "vitest": "^1.0.0"
File without changes
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: 1password
3
+ version: '1.0.0'
4
+ description: Query and retrieve items from 1Password vaults using the 1Password CLI for secure credential access.
5
+ author: Wunderland
6
+ namespace: wunderland
7
+ category: security
8
+ tags: [1password, passwords, secrets, vault, credentials, security]
9
+ requires_secrets: [1password.service_account_token]
10
+ requires_tools: []
11
+ metadata:
12
+ agentos:
13
+ emoji: "\U0001F510"
14
+ primaryEnv: OP_SERVICE_ACCOUNT_TOKEN
15
+ homepage: https://developer.1password.com/docs/cli
16
+ requires:
17
+ bins: ['op']
18
+ install:
19
+ - id: brew
20
+ kind: brew
21
+ formula: 1password-cli
22
+ bins: ['op']
23
+ label: 'Install 1Password CLI (brew)'
24
+ ---
25
+
26
+ # 1Password Vault Queries
27
+
28
+ You can query 1Password vaults to retrieve credentials, secure notes, API keys, and other secrets using the `op` CLI. This enables secure access to stored credentials without hardcoding secrets in code or configuration files.
29
+
30
+ When retrieving items, use `op item get` with the item name or UUID. Support querying specific fields (username, password, TOTP, custom fields) using the `--fields` flag. For listing items, filter by vault, category (login, secure-note, api-credential, credit-card), or tags. Always use the most specific identifier available to avoid ambiguous matches.
31
+
32
+ For security, never display full passwords or secret values in plain text unless the user explicitly requests it. Instead, confirm the item exists and describe its metadata (title, vault, category, last modified). When injecting secrets into environment variables or configuration files, use `op run` or `op inject` for ephemeral secret injection that avoids writing secrets to disk.
33
+
34
+ Support common workflows like looking up API keys for service integrations, retrieving database credentials for connection strings, and checking TOTP codes for two-factor authentication. When multiple items match a query, present a disambiguated list with vault and category context so the user can select the correct one.
35
+
36
+ ## Examples
37
+
38
+ - "Look up the API key for our Stripe integration"
39
+ - "What vaults do I have access to?"
40
+ - "Get the database connection credentials from the Production vault"
41
+ - "Generate a TOTP code for my AWS account"
42
+ - "List all items tagged 'deploy' in the DevOps vault"
43
+ - "Inject secrets from the 'staging-env' item into environment variables"
44
+
45
+ ## Constraints
46
+
47
+ - Requires the `op` CLI to be installed and authenticated (service account token or interactive sign-in).
48
+ - The agent can only access vaults and items that the authenticated account has permissions for.
49
+ - Biometric unlock is not available in non-interactive CLI sessions; use service account tokens.
50
+ - TOTP codes are time-sensitive and expire every 30 seconds.
51
+ - Cannot create, modify, or delete vault items -- read-only access for security.
52
+ - Session tokens expire after 30 minutes of inactivity by default.
53
+ - Do not log, cache, or persist retrieved secret values beyond the immediate use.