@framers/agentos-ext-skills 1.0.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.
@@ -0,0 +1,50 @@
1
+ import { buildInstallCommands, computeEligibility, findSkillEntry, loadSkillsRegistry, readSkillMarkdown, resolveSkillAbsoluteDir, } from '../catalog.js';
2
+ export class SkillsReadTool {
3
+ id = 'agentos-skills-read-v1';
4
+ name = 'skills_read';
5
+ displayName = 'Read Skill';
6
+ description = 'Read a curated skill’s SKILL.md from the installed @framers/agentos-skills-registry catalog.';
7
+ category = 'system';
8
+ hasSideEffects = false;
9
+ inputSchema = {
10
+ type: 'object',
11
+ required: ['skill'],
12
+ properties: {
13
+ skill: {
14
+ type: 'string',
15
+ description: 'Skill name or id (e.g. "github" or "com.framers.skill.github")',
16
+ },
17
+ platform: {
18
+ type: 'string',
19
+ description: 'Platform for OS gating (default: process.platform)',
20
+ },
21
+ },
22
+ additionalProperties: false,
23
+ };
24
+ async execute(input, _context) {
25
+ try {
26
+ const ref = (input.skill || '').trim();
27
+ if (!ref) {
28
+ return { success: false, error: 'Missing required field: skill' };
29
+ }
30
+ const registry = await loadSkillsRegistry();
31
+ const entry = findSkillEntry(registry, ref);
32
+ if (!entry) {
33
+ return { success: false, error: `Skill not found in catalog: ${ref}` };
34
+ }
35
+ const platform = (input.platform && String(input.platform).trim()) || process.platform;
36
+ const item = {
37
+ ...entry,
38
+ absolutePath: resolveSkillAbsoluteDir(entry),
39
+ eligibility: computeEligibility(entry, platform),
40
+ installCommands: buildInstallCommands(entry, platform),
41
+ };
42
+ const markdown = await readSkillMarkdown(entry);
43
+ return { success: true, output: { skill: item, markdown } };
44
+ }
45
+ catch (error) {
46
+ return { success: false, error: error?.message || String(error) };
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=skillsRead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillsRead.js","sourceRoot":"","sources":["../../src/tools/skillsRead.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,GAExB,MAAM,eAAe,CAAC;AAYvB,MAAM,OAAO,cAAc;IACT,EAAE,GAAG,wBAAwB,CAAC;IAC9B,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,YAAY,CAAC;IAC3B,WAAW,GACzB,8FAA8F,CAAC;IACjF,QAAQ,GAAG,QAAQ,CAAC;IACpB,cAAc,GAAG,KAAK,CAAC;IAEvB,WAAW,GAAqB;QAC9C,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gEAAgE;aAC9E;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oDAAoD;aAClE;SACF;QACD,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IAEF,KAAK,CAAC,OAAO,CACX,KAAsB,EACtB,QAA8B;QAE9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;YACpE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,GAAG,EAAE,EAAE,CAAC;YACzE,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;YAEvF,MAAM,IAAI,GAAqB;gBAC7B,GAAG,KAAK;gBACR,YAAY,EAAE,uBAAuB,CAAC,KAAK,CAAC;gBAC5C,WAAW,EAAE,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAChD,eAAe,EAAE,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;aACvD,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEhD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,81 @@
1
+ import type { ITool, JSONSchemaObject, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
2
+ import { type SkillInstallCommand } from '../catalog.js';
3
+ type SkillsStatusInput = {
4
+ query?: string;
5
+ verifiedOnly?: boolean;
6
+ includeCommunity?: boolean;
7
+ platform?: string;
8
+ enableDir?: string;
9
+ eligibleOnly?: boolean;
10
+ limit?: number;
11
+ /** Optional config object used to evaluate `requires.config` paths. */
12
+ config?: Record<string, unknown>;
13
+ };
14
+ type SkillStatusConfigCheck = {
15
+ path: string;
16
+ value: unknown;
17
+ satisfied: boolean;
18
+ };
19
+ type SkillStatusEntry = {
20
+ id: string;
21
+ name: string;
22
+ version: string;
23
+ description: string;
24
+ verified: boolean;
25
+ verifiedAt?: string;
26
+ keywords?: string[];
27
+ category: 'curated' | 'community';
28
+ absolutePath: string;
29
+ enabled: boolean;
30
+ enabledPath?: string;
31
+ filePath: string;
32
+ baseDir: string;
33
+ skillKey: string;
34
+ primaryEnv?: string;
35
+ emoji?: string;
36
+ homepage?: string;
37
+ always: boolean;
38
+ disabled: boolean;
39
+ blockedByAllowlist: boolean;
40
+ eligible: boolean;
41
+ requirements: {
42
+ bins: string[];
43
+ anyBins: string[];
44
+ env: string[];
45
+ config: string[];
46
+ os: string[];
47
+ };
48
+ missing: {
49
+ bins: string[];
50
+ anyBins: string[];
51
+ env: string[];
52
+ config: string[];
53
+ os: string[];
54
+ };
55
+ configChecks: SkillStatusConfigCheck[];
56
+ install: SkillInstallCommand[];
57
+ };
58
+ type SkillsStatusOutput = {
59
+ source: 'agentos-skills';
60
+ registryVersion: string;
61
+ updated: string;
62
+ enableDir: string;
63
+ summary: {
64
+ total: number;
65
+ enabled: number;
66
+ eligible: number;
67
+ };
68
+ skills: SkillStatusEntry[];
69
+ };
70
+ export declare class SkillsStatusTool implements ITool<SkillsStatusInput, SkillsStatusOutput> {
71
+ readonly id = "agentos-skills-status-v1";
72
+ readonly name = "skills_status";
73
+ readonly displayName = "Skills Status";
74
+ readonly description = "Report which curated skills are enabled/eligible and what requirements are missing, similar to OpenClaw\u2019s skills status.";
75
+ readonly category = "system";
76
+ readonly hasSideEffects = false;
77
+ readonly inputSchema: JSONSchemaObject;
78
+ execute(input: SkillsStatusInput, _context: ToolExecutionContext): Promise<ToolExecutionResult<SkillsStatusOutput>>;
79
+ }
80
+ export {};
81
+ //# sourceMappingURL=skillsStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillsStatus.d.ts","sourceRoot":"","sources":["../../src/tools/skillsStatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ // @ts-nocheck
2
+ import * as path from 'node:path';
3
+ import * as fs from 'node:fs/promises';
4
+ import { buildInstallCommands, computeEligibility, loadSkillsRegistry, resolveDefaultEnableDir, resolveSkillAbsoluteDir, } from '../catalog.js';
5
+ function normalizeQuery(raw) {
6
+ return typeof raw === 'string' ? raw.trim().toLowerCase() : '';
7
+ }
8
+ function matchesQuery(entry, query) {
9
+ if (!query)
10
+ return true;
11
+ const haystack = [entry.id, entry.name, entry.description, ...(entry.keywords ?? [])]
12
+ .filter(Boolean)
13
+ .join(' ')
14
+ .toLowerCase();
15
+ return haystack.includes(query);
16
+ }
17
+ function flattenSkills(registry, includeCommunity) {
18
+ const curated = (registry.skills?.curated ?? []).map((entry) => ({
19
+ entry,
20
+ category: 'curated',
21
+ }));
22
+ const community = includeCommunity
23
+ ? (registry.skills?.community ?? []).map((entry) => ({ entry, category: 'community' }))
24
+ : [];
25
+ return [...curated, ...community];
26
+ }
27
+ function isTruthy(value) {
28
+ if (value === undefined || value === null)
29
+ return false;
30
+ if (typeof value === 'boolean')
31
+ return value;
32
+ if (typeof value === 'number')
33
+ return value !== 0;
34
+ if (typeof value === 'string')
35
+ return value.trim().length > 0;
36
+ return true;
37
+ }
38
+ function resolveConfigPath(config, pathStr) {
39
+ if (!config)
40
+ return undefined;
41
+ const parts = pathStr.split('.').filter(Boolean);
42
+ let current = config;
43
+ for (const part of parts) {
44
+ if (typeof current !== 'object' || current === null)
45
+ return undefined;
46
+ current = current[part];
47
+ }
48
+ return current;
49
+ }
50
+ function isConfigPathTruthy(config, pathStr) {
51
+ const value = resolveConfigPath(config, pathStr);
52
+ return isTruthy(value);
53
+ }
54
+ async function isSkillEnabled(enableDir, skillName) {
55
+ const enabledPath = path.join(enableDir, skillName, 'SKILL.md');
56
+ const enabledDir = path.dirname(enabledPath);
57
+ const ok = await fs
58
+ .stat(enabledPath)
59
+ .then((s) => s.isFile())
60
+ .catch(() => false);
61
+ return { enabled: ok, enabledPath: enabledDir };
62
+ }
63
+ function resolveSkillKey(entry) {
64
+ return entry.metadata?.skillKey ?? entry.name;
65
+ }
66
+ function asStringList(value) {
67
+ if (!Array.isArray(value))
68
+ return [];
69
+ return value.map((v) => String(v).trim()).filter(Boolean);
70
+ }
71
+ function resolveRequirements(entry) {
72
+ const meta = entry.metadata;
73
+ return {
74
+ bins: asStringList(meta?.requires?.bins),
75
+ anyBins: asStringList(meta?.requires?.anyBins),
76
+ env: asStringList(meta?.requires?.env),
77
+ config: asStringList(meta?.requires?.config),
78
+ os: asStringList(meta?.os),
79
+ };
80
+ }
81
+ export class SkillsStatusTool {
82
+ id = 'agentos-skills-status-v1';
83
+ name = 'skills_status';
84
+ displayName = 'Skills Status';
85
+ description = 'Report which curated skills are enabled/eligible and what requirements are missing, similar to OpenClaw’s skills status.';
86
+ category = 'system';
87
+ hasSideEffects = false;
88
+ inputSchema = {
89
+ type: 'object',
90
+ properties: {
91
+ query: { type: 'string', description: 'Search by name/keywords/description' },
92
+ verifiedOnly: { type: 'boolean', description: 'Only include verified skills', default: true },
93
+ includeCommunity: {
94
+ type: 'boolean',
95
+ description: 'Include community skills (if present)',
96
+ default: false,
97
+ },
98
+ platform: {
99
+ type: 'string',
100
+ description: 'Platform for OS gating (default: process.platform)',
101
+ },
102
+ enableDir: {
103
+ type: 'string',
104
+ description: 'Directory where enabled skills live (default: AGENTOS_SKILLS_DIR, CODEX_HOME/skills, or ~/.codex/skills)',
105
+ },
106
+ eligibleOnly: {
107
+ type: 'boolean',
108
+ description: 'Only include eligible (ready) skills',
109
+ default: false,
110
+ },
111
+ limit: {
112
+ type: 'number',
113
+ description: 'Max results',
114
+ default: 200,
115
+ minimum: 1,
116
+ maximum: 2000,
117
+ },
118
+ config: {
119
+ type: 'object',
120
+ description: 'Optional config object for evaluating requires.config paths',
121
+ },
122
+ },
123
+ additionalProperties: false,
124
+ };
125
+ async execute(input, _context) {
126
+ try {
127
+ const registry = await loadSkillsRegistry();
128
+ const query = normalizeQuery(input.query);
129
+ const platform = (input.platform && String(input.platform).trim()) || process.platform;
130
+ const verifiedOnly = input.verifiedOnly !== false;
131
+ const includeCommunity = input.includeCommunity === true;
132
+ const eligibleOnly = input.eligibleOnly === true;
133
+ const limit = typeof input.limit === 'number' ? Math.max(1, Math.min(2000, input.limit)) : 200;
134
+ const enableDir = path.resolve((input.enableDir && String(input.enableDir).trim()) || resolveDefaultEnableDir());
135
+ const config = input.config;
136
+ const entries = flattenSkills(registry, includeCommunity)
137
+ .filter(({ entry }) => (verifiedOnly ? entry.verified === true : true))
138
+ .filter(({ entry }) => matchesQuery(entry, query))
139
+ .slice(0, limit);
140
+ const skills = [];
141
+ for (const { entry, category } of entries) {
142
+ const baseDir = resolveSkillAbsoluteDir(entry);
143
+ const filePath = path.join(baseDir, 'SKILL.md');
144
+ const { enabled, enabledPath } = await isSkillEnabled(enableDir, entry.name);
145
+ const requirements = resolveRequirements(entry);
146
+ const configChecks = config
147
+ ? requirements.config.map((cfgPath) => ({
148
+ path: cfgPath,
149
+ value: resolveConfigPath(config, cfgPath),
150
+ satisfied: isConfigPathTruthy(config, cfgPath),
151
+ }))
152
+ : [];
153
+ const missingConfig = config
154
+ ? configChecks.filter((c) => !c.satisfied).map((c) => c.path)
155
+ : [];
156
+ const eligibility = computeEligibility(entry, platform);
157
+ const metaAlways = entry.metadata?.always === true;
158
+ const missing = metaAlways
159
+ ? { bins: [], anyBins: [], env: [], config: [], os: [] }
160
+ : {
161
+ bins: eligibility.missing.bins,
162
+ anyBins: eligibility.missing.anyBins,
163
+ env: eligibility.missing.env,
164
+ config: missingConfig,
165
+ os: eligibility.missing.os,
166
+ };
167
+ const eligible = metaAlways || (eligibility.eligible && (config ? missingConfig.length === 0 : true));
168
+ if (eligibleOnly && !eligible) {
169
+ continue;
170
+ }
171
+ skills.push({
172
+ id: entry.id,
173
+ name: entry.name,
174
+ version: entry.version,
175
+ description: entry.description,
176
+ verified: entry.verified,
177
+ verifiedAt: entry.verifiedAt,
178
+ keywords: entry.keywords,
179
+ category,
180
+ absolutePath: baseDir,
181
+ enabled,
182
+ enabledPath: enabled ? enabledPath : undefined,
183
+ filePath,
184
+ baseDir,
185
+ skillKey: resolveSkillKey(entry),
186
+ primaryEnv: entry.metadata?.primaryEnv,
187
+ emoji: entry.metadata?.emoji,
188
+ homepage: entry.metadata?.homepage,
189
+ always: metaAlways,
190
+ disabled: false,
191
+ blockedByAllowlist: false,
192
+ eligible,
193
+ requirements,
194
+ missing,
195
+ configChecks,
196
+ install: buildInstallCommands(entry, platform),
197
+ });
198
+ }
199
+ const summary = {
200
+ total: skills.length,
201
+ enabled: skills.filter((s) => s.enabled).length,
202
+ eligible: skills.filter((s) => s.eligible).length,
203
+ };
204
+ return {
205
+ success: true,
206
+ output: {
207
+ source: 'agentos-skills',
208
+ registryVersion: registry.version,
209
+ updated: registry.updated,
210
+ enableDir,
211
+ summary,
212
+ skills,
213
+ },
214
+ };
215
+ }
216
+ catch (error) {
217
+ return {
218
+ success: false,
219
+ error: error?.message || String(error),
220
+ };
221
+ }
222
+ }
223
+ }
224
+ //# sourceMappingURL=skillsStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillsStatus.js","sourceRoot":"","sources":["../../src/tools/skillsStatus.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@framers/agentos-ext-skills",
3
+ "version": "1.0.1",
4
+ "description": "Skills discovery + enablement tools for AgentOS (curated SKILL.md packs)",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "keywords": [
20
+ "agentos",
21
+ "skills",
22
+ "registry",
23
+ "extension",
24
+ "tools"
25
+ ],
26
+ "author": {
27
+ "name": "Framers AI",
28
+ "email": "team@frame.dev",
29
+ "url": "https://frame.dev"
30
+ },
31
+ "license": "Apache-2.0",
32
+ "peerDependencies": {
33
+ "@framers/agentos": ">=0.7.0"
34
+ },
35
+ "optionalDependencies": {
36
+ "@framers/agentos-skills-registry": "^0.18.0"
37
+ },
38
+ "devDependencies": {
39
+ "@framers/agentos": "^0.9.0",
40
+ "@types/node": "^20.0.0",
41
+ "typescript": "^5.4.5",
42
+ "vitest": "^1.6.0"
43
+ },
44
+ "homepage": "https://agentos.sh",
45
+ "scripts": {
46
+ "build": "tsc",
47
+ "test": "vitest run",
48
+ "test:watch": "vitest",
49
+ "clean": "rm -rf dist"
50
+ }
51
+ }