@spences10/pi-skills 0.0.18 → 0.0.20

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 (36) hide show
  1. package/dist/commands/completions.d.ts +8 -0
  2. package/dist/commands/completions.js +93 -0
  3. package/dist/commands/completions.js.map +1 -0
  4. package/dist/commands/github-handlers.d.ts +4 -0
  5. package/dist/commands/github-handlers.js +127 -0
  6. package/dist/commands/github-handlers.js.map +1 -0
  7. package/dist/commands/handler.d.ts +2 -0
  8. package/dist/commands/handler.js +56 -0
  9. package/dist/commands/handler.js.map +1 -0
  10. package/dist/commands/home-handler.d.ts +2 -0
  11. package/dist/commands/home-handler.js +38 -0
  12. package/dist/commands/home-handler.js.map +1 -0
  13. package/dist/commands/profile-handlers.d.ts +2 -0
  14. package/dist/commands/profile-handlers.js +117 -0
  15. package/dist/commands/profile-handlers.js.map +1 -0
  16. package/dist/commands/skill-handlers.d.ts +8 -0
  17. package/dist/commands/skill-handlers.js +184 -0
  18. package/dist/commands/skill-handlers.js.map +1 -0
  19. package/dist/commands/types.d.ts +13 -0
  20. package/dist/commands/types.js +2 -0
  21. package/dist/commands/types.js.map +1 -0
  22. package/dist/commands.js +4 -102
  23. package/dist/commands.js.map +1 -1
  24. package/dist/manager/discovery.d.ts +19 -0
  25. package/dist/manager/discovery.js +101 -0
  26. package/dist/manager/discovery.js.map +1 -0
  27. package/dist/manager/import-management.d.ts +11 -0
  28. package/dist/manager/import-management.js +28 -0
  29. package/dist/manager/import-management.js.map +1 -0
  30. package/dist/manager/profile.d.ts +29 -0
  31. package/dist/manager/profile.js +214 -0
  32. package/dist/manager/profile.js.map +1 -0
  33. package/dist/resource-discovery.d.ts +1 -0
  34. package/dist/resource-discovery.js +7 -0
  35. package/dist/resource-discovery.js.map +1 -0
  36. package/package.json +8 -4
@@ -0,0 +1,214 @@
1
+ import { resolve } from 'node:path';
2
+ import { is_skill_enabled, make_skill_key, safe_profile_name, save_skills_config, } from '../config.js';
3
+ export const SKILLS_PROFILE_ENV = 'MY_PI_SKILLS_PROFILE';
4
+ function normalize_extends(value) {
5
+ if (!value)
6
+ return [];
7
+ return Array.isArray(value) ? value : [value];
8
+ }
9
+ function unique_push(values, value) {
10
+ if (!values.includes(value))
11
+ values.push(value);
12
+ }
13
+ function remove_value(values, value) {
14
+ return (values ?? []).filter((item) => item !== value);
15
+ }
16
+ function escape_regex(value) {
17
+ return value.replace(/[|\\{}()[\]^$+?.]/g, '\\$&');
18
+ }
19
+ function normalize_match_path(value) {
20
+ if (value.startsWith('~/')) {
21
+ return resolve(process.env.HOME ?? '', value.slice(2));
22
+ }
23
+ return value;
24
+ }
25
+ export function glob_matches(pattern, value) {
26
+ const regex = new RegExp(`^${normalize_match_path(pattern).split('*').map(escape_regex).join('.*')}$`, 'i');
27
+ return regex.test(normalize_match_path(value));
28
+ }
29
+ function profile_pattern_matches(pattern, skill) {
30
+ const key = make_skill_key(skill.name, skill.source);
31
+ return [
32
+ key,
33
+ skill.name,
34
+ skill.source,
35
+ skill.skillPath,
36
+ skill.baseDir,
37
+ ].some((value) => glob_matches(pattern, value));
38
+ }
39
+ export function require_profile_name(name) {
40
+ const normalized = safe_profile_name(name);
41
+ if (!normalized)
42
+ throw new Error(`Invalid skill profile name: ${name}`);
43
+ return normalized;
44
+ }
45
+ function context_cwd_values(rule) {
46
+ const value = rule.when.cwd;
47
+ if (!value)
48
+ return [];
49
+ return Array.isArray(value) ? value : [value];
50
+ }
51
+ export function create_profile_ops(get_config, get_cwd, get_project_skills_enabled) {
52
+ function get_active_profile() {
53
+ const config = get_config();
54
+ const from_env = process.env[SKILLS_PROFILE_ENV]?.trim();
55
+ if (from_env)
56
+ return require_profile_name(from_env);
57
+ for (const context of config.contexts) {
58
+ if (!config.profiles[context.profile])
59
+ continue;
60
+ if (context_cwd_values(context).some((pattern) => glob_matches(pattern, get_cwd()))) {
61
+ return context.profile;
62
+ }
63
+ }
64
+ return config.current_profile ?? 'default';
65
+ }
66
+ function resolve_profile_rules(name, seen = new Set()) {
67
+ const config = get_config();
68
+ const profile = config.profiles[name];
69
+ if (!profile || seen.has(name))
70
+ return [];
71
+ seen.add(name);
72
+ const rules = [];
73
+ for (const parent of normalize_extends(profile.extends)) {
74
+ rules.push(...resolve_profile_rules(parent, seen));
75
+ }
76
+ for (const pattern of profile.include ?? []) {
77
+ rules.push({ pattern, enabled: true });
78
+ }
79
+ for (const pattern of profile.exclude ?? []) {
80
+ rules.push({ pattern, enabled: false });
81
+ }
82
+ return rules;
83
+ }
84
+ function apply_profile_rules(initial, skill) {
85
+ let enabled = initial;
86
+ for (const rule of resolve_profile_rules(get_active_profile())) {
87
+ if (profile_pattern_matches(rule.pattern, skill)) {
88
+ enabled = rule.enabled;
89
+ }
90
+ }
91
+ return enabled;
92
+ }
93
+ function is_effectively_enabled(skill) {
94
+ const config = get_config();
95
+ if (skill.scope === 'project' && !get_project_skills_enabled())
96
+ return false;
97
+ const initial = skill.scope === 'project'
98
+ ? true
99
+ : is_skill_enabled(config, make_skill_key(skill.name, skill.source));
100
+ return apply_profile_rules(initial, skill);
101
+ }
102
+ function get_or_create_profile(name) {
103
+ const config = get_config();
104
+ const normalized = require_profile_name(name);
105
+ config.profiles[normalized] ??= {};
106
+ return config.profiles[normalized];
107
+ }
108
+ function to_profile(name) {
109
+ const config = get_config();
110
+ const profile = config.profiles[name] ?? {};
111
+ const result = {
112
+ name,
113
+ extends: normalize_extends(profile.extends),
114
+ include: [...(profile.include ?? [])],
115
+ exclude: [...(profile.exclude ?? [])],
116
+ active: name === get_active_profile(),
117
+ };
118
+ if (profile.description)
119
+ result.description = profile.description;
120
+ return result;
121
+ }
122
+ function set_profile_skill_enabled(key, enabled) {
123
+ const config = get_config();
124
+ const profile = get_or_create_profile(get_active_profile());
125
+ if (enabled) {
126
+ profile.exclude = remove_value(profile.exclude, key);
127
+ profile.include ??= [];
128
+ unique_push(profile.include, key);
129
+ }
130
+ else {
131
+ profile.include = remove_value(profile.include, key);
132
+ profile.exclude ??= [];
133
+ unique_push(profile.exclude, key);
134
+ }
135
+ save_skills_config(config);
136
+ return enabled;
137
+ }
138
+ function set_defaults(policy) {
139
+ const config = get_config();
140
+ const profile = get_or_create_profile(get_active_profile());
141
+ profile.include = remove_value(profile.include, '*');
142
+ profile.exclude = remove_value(profile.exclude, '*');
143
+ if (policy === 'all-enabled') {
144
+ profile.include ??= [];
145
+ profile.include.unshift('*');
146
+ }
147
+ config.defaults = 'all-disabled';
148
+ save_skills_config(config);
149
+ }
150
+ function include_in_profile(profile_name, pattern) {
151
+ const config = get_config();
152
+ const profile = get_or_create_profile(profile_name);
153
+ const normalized = pattern.trim();
154
+ if (!normalized)
155
+ throw new Error('Profile pattern is required');
156
+ profile.exclude = remove_value(profile.exclude, normalized);
157
+ profile.include ??= [];
158
+ unique_push(profile.include, normalized);
159
+ save_skills_config(config);
160
+ }
161
+ function exclude_from_profile(profile_name, pattern) {
162
+ const config = get_config();
163
+ const profile = get_or_create_profile(profile_name);
164
+ const normalized = pattern.trim();
165
+ if (!normalized)
166
+ throw new Error('Profile pattern is required');
167
+ profile.include = remove_value(profile.include, normalized);
168
+ profile.exclude ??= [];
169
+ unique_push(profile.exclude, normalized);
170
+ save_skills_config(config);
171
+ }
172
+ return {
173
+ get_active_profile,
174
+ is_effectively_enabled,
175
+ set_profile_skill_enabled,
176
+ set_defaults,
177
+ list_profiles() {
178
+ return Object.keys(get_config().profiles)
179
+ .sort((a, b) => a.localeCompare(b))
180
+ .map(to_profile);
181
+ },
182
+ use_profile(name) {
183
+ const config = get_config();
184
+ const normalized = require_profile_name(name);
185
+ if (!config.profiles[normalized]) {
186
+ throw new Error(`Unknown skill profile: ${normalized}`);
187
+ }
188
+ config.current_profile = normalized;
189
+ save_skills_config(config);
190
+ },
191
+ create_profile(name, options = {}) {
192
+ const config = get_config();
193
+ const normalized = require_profile_name(name);
194
+ if (config.profiles[normalized]) {
195
+ throw new Error(`Skill profile already exists: ${normalized}`);
196
+ }
197
+ const profile = {
198
+ include: [],
199
+ exclude: [],
200
+ };
201
+ if (options.description)
202
+ profile.description = options.description;
203
+ if (options.extends?.length)
204
+ profile.extends = options.extends;
205
+ config.profiles[normalized] = profile;
206
+ save_skills_config(config);
207
+ return to_profile(normalized);
208
+ },
209
+ include_in_profile,
210
+ exclude_from_profile,
211
+ apply_profile_rules,
212
+ };
213
+ }
214
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/manager/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function is_resource_enabled(value: string | undefined): boolean;
@@ -0,0 +1,7 @@
1
+ export function is_resource_enabled(value) {
2
+ const normalized = value?.trim().toLowerCase();
3
+ if (!normalized)
4
+ return true;
5
+ return !['0', 'false', 'no', 'skip', 'disable'].includes(normalized);
6
+ }
7
+ //# sourceMappingURL=resource-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-discovery.js","sourceRoot":"","sources":["../src/resource-discovery.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAClC,KAAyB;IAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CACvD,UAAU,CACV,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spences10/pi-skills",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "Pi extension for managing and importing Agent Skills from Pi, Claude, and plugin sources",
5
5
  "keywords": [
6
6
  "agent-skills",
@@ -8,6 +8,7 @@
8
8
  "pi-package",
9
9
  "skills"
10
10
  ],
11
+ "homepage": "https://github.com/spences10/my-pi/tree/main/packages/pi-skills#readme",
11
12
  "license": "MIT",
12
13
  "author": "Scott Spence <me@scottspence.com>",
13
14
  "repository": {
@@ -32,7 +33,7 @@
32
33
  "access": "public"
33
34
  },
34
35
  "dependencies": {
35
- "@spences10/pi-tui-modal": "0.0.13"
36
+ "@spences10/pi-tui-modal": "0.0.14"
36
37
  },
37
38
  "devDependencies": {
38
39
  "@types/node": "^25.8.0",
@@ -49,7 +50,8 @@
49
50
  "pi": {
50
51
  "extensions": [
51
52
  "./dist/index.js"
52
- ]
53
+ ],
54
+ "image": "https://raw.githubusercontent.com/spences10/my-pi/main/assets/pi-package-preview.png"
53
55
  },
54
56
  "scripts": {
55
57
  "build": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run build:self",
@@ -57,6 +59,8 @@
57
59
  "check": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run check:self",
58
60
  "check:self": "tsc --noEmit -p tsconfig.json",
59
61
  "test": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run test:self",
60
- "test:self": "vitest run"
62
+ "test:self": "vitest run",
63
+ "coverage:self": "vitest run --coverage",
64
+ "coverage": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run coverage:self"
61
65
  }
62
66
  }