@spences10/pi-skills 0.0.19 → 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.
- package/dist/commands/completions.d.ts +8 -0
- package/dist/commands/completions.js +93 -0
- package/dist/commands/completions.js.map +1 -0
- package/dist/commands/github-handlers.d.ts +4 -0
- package/dist/commands/github-handlers.js +127 -0
- package/dist/commands/github-handlers.js.map +1 -0
- package/dist/commands/handler.d.ts +2 -0
- package/dist/commands/handler.js +56 -0
- package/dist/commands/handler.js.map +1 -0
- package/dist/commands/home-handler.d.ts +2 -0
- package/dist/commands/home-handler.js +38 -0
- package/dist/commands/home-handler.js.map +1 -0
- package/dist/commands/profile-handlers.d.ts +2 -0
- package/dist/commands/profile-handlers.js +117 -0
- package/dist/commands/profile-handlers.js.map +1 -0
- package/dist/commands/skill-handlers.d.ts +8 -0
- package/dist/commands/skill-handlers.js +184 -0
- package/dist/commands/skill-handlers.js.map +1 -0
- package/dist/commands/types.d.ts +13 -0
- package/dist/commands/types.js +2 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands.js +4 -102
- package/dist/commands.js.map +1 -1
- package/dist/manager/discovery.d.ts +19 -0
- package/dist/manager/discovery.js +101 -0
- package/dist/manager/discovery.js.map +1 -0
- package/dist/manager/import-management.d.ts +11 -0
- package/dist/manager/import-management.js +28 -0
- package/dist/manager/import-management.js.map +1 -0
- package/dist/manager/profile.d.ts +29 -0
- package/dist/manager/profile.js +214 -0
- package/dist/manager/profile.js.map +1 -0
- package/dist/resource-discovery.d.ts +1 -0
- package/dist/resource-discovery.js +7 -0
- package/dist/resource-discovery.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { create_skills_manager } from '../manager.js';
|
|
2
|
+
type SkillsManager = ReturnType<typeof create_skills_manager>;
|
|
3
|
+
export declare const SKILL_SUBCOMMANDS: string[];
|
|
4
|
+
export declare function get_skill_argument_completions(prefix: string, mgr: SkillsManager): {
|
|
5
|
+
value: string;
|
|
6
|
+
label: string;
|
|
7
|
+
}[] | null;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { sort_skills } from '../skill-utils.js';
|
|
2
|
+
export const SKILL_SUBCOMMANDS = [
|
|
3
|
+
'list',
|
|
4
|
+
'show',
|
|
5
|
+
'enable',
|
|
6
|
+
'disable',
|
|
7
|
+
'add',
|
|
8
|
+
'import',
|
|
9
|
+
'sync',
|
|
10
|
+
'update',
|
|
11
|
+
'profile',
|
|
12
|
+
'refresh',
|
|
13
|
+
'defaults',
|
|
14
|
+
];
|
|
15
|
+
export function get_skill_argument_completions(prefix, mgr) {
|
|
16
|
+
const parts = prefix.trimStart().split(/\s+/);
|
|
17
|
+
const has_trailing_space = /\s$/.test(prefix);
|
|
18
|
+
if (parts.length <= 1 && !has_trailing_space) {
|
|
19
|
+
return SKILL_SUBCOMMANDS.filter((s) => s.startsWith(parts[0] || '')).map((s) => ({ value: s, label: s }));
|
|
20
|
+
}
|
|
21
|
+
if (['show', 'enable', 'disable'].includes(parts[0] ?? '')) {
|
|
22
|
+
const q = parts.slice(1).join(' ').toLowerCase();
|
|
23
|
+
const skills = parts[0] === 'show'
|
|
24
|
+
? [...mgr.discover(), ...mgr.discover_importable()]
|
|
25
|
+
: mgr.discover();
|
|
26
|
+
return sort_skills(skills)
|
|
27
|
+
.filter((s) => s.key.toLowerCase().includes(q) ||
|
|
28
|
+
s.name.toLowerCase().includes(q))
|
|
29
|
+
.slice(0, 20)
|
|
30
|
+
.map((s) => ({
|
|
31
|
+
value: `${parts[0]} ${s.key}`,
|
|
32
|
+
label: s.key,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
if (parts[0] === 'import') {
|
|
36
|
+
const q = parts.slice(1).join(' ').toLowerCase();
|
|
37
|
+
return sort_skills(mgr.discover_importable())
|
|
38
|
+
.filter((s) => s.key.toLowerCase().includes(q) ||
|
|
39
|
+
s.name.toLowerCase().includes(q))
|
|
40
|
+
.slice(0, 20)
|
|
41
|
+
.map((s) => ({
|
|
42
|
+
value: `${parts[0]} ${s.key}`,
|
|
43
|
+
label: s.key,
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
if (parts[0] === 'update') {
|
|
47
|
+
return ['--dry-run', '--all', '--force', '--unpin']
|
|
48
|
+
.filter((flag) => flag.startsWith(parts.at(-1) ?? ''))
|
|
49
|
+
.map((flag) => ({
|
|
50
|
+
value: `${parts.slice(0, -1).join(' ')} ${flag}`.trim(),
|
|
51
|
+
label: flag,
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
if (parts[0] === 'sync') {
|
|
55
|
+
const q = parts.slice(1).join(' ').toLowerCase();
|
|
56
|
+
return sort_skills(mgr.discover().filter((skill) => Boolean(skill.import_meta)))
|
|
57
|
+
.filter((s) => s.key.toLowerCase().includes(q) ||
|
|
58
|
+
s.name.toLowerCase().includes(q))
|
|
59
|
+
.slice(0, 20)
|
|
60
|
+
.map((s) => ({
|
|
61
|
+
value: `${parts[0]} ${s.key}`,
|
|
62
|
+
label: s.key,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
if (parts[0] === 'profile') {
|
|
66
|
+
const profile_subs = [
|
|
67
|
+
'list',
|
|
68
|
+
'show',
|
|
69
|
+
'use',
|
|
70
|
+
'create',
|
|
71
|
+
'include',
|
|
72
|
+
'exclude',
|
|
73
|
+
];
|
|
74
|
+
if (parts.length <= 2 && !has_trailing_space) {
|
|
75
|
+
return profile_subs
|
|
76
|
+
.filter((s) => s.startsWith(parts[1] || ''))
|
|
77
|
+
.map((s) => ({ value: `profile ${s}`, label: s }));
|
|
78
|
+
}
|
|
79
|
+
if (['show', 'use', 'include', 'exclude'].includes(parts[1] ?? '')) {
|
|
80
|
+
const q = parts.slice(2).join(' ').toLowerCase();
|
|
81
|
+
return mgr
|
|
82
|
+
.list_profiles()
|
|
83
|
+
.filter((profile) => profile.name.toLowerCase().includes(q))
|
|
84
|
+
.slice(0, 20)
|
|
85
|
+
.map((profile) => ({
|
|
86
|
+
value: `profile ${parts[1]} ${profile.name}`,
|
|
87
|
+
label: profile.name,
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=completions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/commands/completions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SkillsCommandRequest } from './types.js';
|
|
2
|
+
export declare function handle_add_command({ rest, arg, ctx, }: SkillsCommandRequest): Promise<boolean>;
|
|
3
|
+
export declare function handle_github_import(request: SkillsCommandRequest): Promise<boolean>;
|
|
4
|
+
export declare function handle_update_command({ rest, ctx, }: SkillsCommandRequest): Promise<boolean>;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { run_with_progress_modal, show_text_modal, } from '@spences10/pi-tui-modal';
|
|
2
|
+
import { has_gh_skill, parse_gh_skill_install_args, run_gh_skill_install, run_gh_skill_install_async, run_gh_skill_update, run_gh_skill_update_async, } from '../gh-skill.js';
|
|
3
|
+
import { show_add_github_skill_modal } from '../skills-ui.js';
|
|
4
|
+
function notify_error(ctx, error) {
|
|
5
|
+
ctx.ui.notify(error instanceof Error ? error.message : String(error), 'warning');
|
|
6
|
+
}
|
|
7
|
+
export async function handle_add_command({ rest, arg, ctx, }) {
|
|
8
|
+
if (!arg && ctx.hasUI) {
|
|
9
|
+
if (await show_add_github_skill_modal(ctx))
|
|
10
|
+
return true;
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const gh_request = parse_gh_skill_install_args(rest);
|
|
14
|
+
if (!gh_request) {
|
|
15
|
+
ctx.ui.notify('Usage: /skills add <owner/repo> <skill[@ref]> [--pin ref|--scope project|--dir path|--force]', 'warning');
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (!has_gh_skill()) {
|
|
19
|
+
ctx.ui.notify('GitHub skill adds require gh v2.90.0+ with `gh skill` support.', 'warning');
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const output = ctx.hasUI
|
|
24
|
+
? await run_with_progress_modal(ctx, {
|
|
25
|
+
title: 'Adding GitHub skill',
|
|
26
|
+
message: `Installing ${gh_request.skill} from ${gh_request.repository}`,
|
|
27
|
+
}, async ({ signal, update }) => {
|
|
28
|
+
update({ current: gh_request.skill });
|
|
29
|
+
return await run_gh_skill_install_async(gh_request, undefined, {
|
|
30
|
+
signal,
|
|
31
|
+
});
|
|
32
|
+
})
|
|
33
|
+
: run_gh_skill_install(gh_request);
|
|
34
|
+
if (output === undefined)
|
|
35
|
+
return true;
|
|
36
|
+
ctx.ui.notify(`${output || `Added ${gh_request.skill} from ${gh_request.repository}`}\nReloading...`, 'info');
|
|
37
|
+
await ctx.reload();
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
notify_error(ctx, error);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export async function handle_github_import(request) {
|
|
46
|
+
const { rest, ctx } = request;
|
|
47
|
+
const gh_request = parse_gh_skill_install_args(rest);
|
|
48
|
+
if (!gh_request)
|
|
49
|
+
return false;
|
|
50
|
+
if (!has_gh_skill()) {
|
|
51
|
+
ctx.ui.notify('GitHub skill imports require gh v2.90.0+ with `gh skill` support.', 'warning');
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const output = ctx.hasUI
|
|
56
|
+
? await run_with_progress_modal(ctx, {
|
|
57
|
+
title: 'Importing GitHub skill',
|
|
58
|
+
message: `Installing ${gh_request.skill} from ${gh_request.repository}`,
|
|
59
|
+
}, async ({ signal, update }) => {
|
|
60
|
+
update({ current: gh_request.skill });
|
|
61
|
+
return await run_gh_skill_install_async(gh_request, undefined, {
|
|
62
|
+
signal,
|
|
63
|
+
});
|
|
64
|
+
})
|
|
65
|
+
: run_gh_skill_install(gh_request);
|
|
66
|
+
if (output === undefined)
|
|
67
|
+
return true;
|
|
68
|
+
if (ctx.hasUI) {
|
|
69
|
+
await show_text_modal(ctx, {
|
|
70
|
+
title: 'GitHub skill imported',
|
|
71
|
+
text: `${output || `Imported ${gh_request.skill} from ${gh_request.repository}`}\n\nReloading...`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
ctx.ui.notify(`${output || `Imported ${gh_request.skill} from ${gh_request.repository}`}\nReloading...`, 'info');
|
|
76
|
+
}
|
|
77
|
+
await ctx.reload();
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
notify_error(ctx, error);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export async function handle_update_command({ rest, ctx, }) {
|
|
86
|
+
if (!has_gh_skill()) {
|
|
87
|
+
ctx.ui.notify('GitHub skill updates require gh v2.90.0+ with `gh skill` support.', 'warning');
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
const dry_run = rest.includes('--dry-run');
|
|
92
|
+
const output = ctx.hasUI
|
|
93
|
+
? await run_with_progress_modal(ctx, {
|
|
94
|
+
title: dry_run
|
|
95
|
+
? 'Checking GitHub skill updates'
|
|
96
|
+
: 'Updating GitHub skills',
|
|
97
|
+
message: `Running gh skill update ${rest.join(' ')}`.trim(),
|
|
98
|
+
}, async ({ signal }) => await run_gh_skill_update_async(rest, undefined, {
|
|
99
|
+
signal,
|
|
100
|
+
}))
|
|
101
|
+
: run_gh_skill_update(rest);
|
|
102
|
+
if (output === undefined)
|
|
103
|
+
return true;
|
|
104
|
+
if (ctx.hasUI) {
|
|
105
|
+
await show_text_modal(ctx, {
|
|
106
|
+
title: dry_run
|
|
107
|
+
? 'GitHub skill update check'
|
|
108
|
+
: 'GitHub skills updated',
|
|
109
|
+
text: output || 'No output from gh skill update.',
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
ctx.ui.notify(output || 'gh skill update completed.');
|
|
114
|
+
}
|
|
115
|
+
if (!dry_run) {
|
|
116
|
+
ctx.ui.notify('Reloading skills...', 'info');
|
|
117
|
+
await ctx.reload();
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
notify_error(ctx, error);
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=github-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-handlers.js","sourceRoot":"","sources":["../../src/commands/github-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { SKILL_SUBCOMMANDS } from './completions.js';
|
|
2
|
+
import { handle_add_command, handle_update_command, } from './github-handlers.js';
|
|
3
|
+
import { handle_skills_home } from './home-handler.js';
|
|
4
|
+
import { handle_profile_command } from './profile-handlers.js';
|
|
5
|
+
import { handle_defaults_command, handle_import_command, handle_list_command, handle_refresh_command, handle_show_command, handle_sync_command, handle_toggle_command, } from './skill-handlers.js';
|
|
6
|
+
export async function handle_skills_command(args, ctx, mgr) {
|
|
7
|
+
const trimmed = args.trim();
|
|
8
|
+
if (!trimmed && (await handle_skills_home(ctx, mgr)))
|
|
9
|
+
return;
|
|
10
|
+
const [sub, ...rest] = (trimmed || 'list').split(/\s+/);
|
|
11
|
+
const request = {
|
|
12
|
+
args,
|
|
13
|
+
trimmed,
|
|
14
|
+
sub,
|
|
15
|
+
rest,
|
|
16
|
+
arg: rest.join(' '),
|
|
17
|
+
mgr,
|
|
18
|
+
ctx,
|
|
19
|
+
};
|
|
20
|
+
switch (sub) {
|
|
21
|
+
case 'list':
|
|
22
|
+
await handle_list_command(request);
|
|
23
|
+
break;
|
|
24
|
+
case 'show':
|
|
25
|
+
await handle_show_command(request);
|
|
26
|
+
break;
|
|
27
|
+
case 'enable':
|
|
28
|
+
case 'disable':
|
|
29
|
+
await handle_toggle_command(request);
|
|
30
|
+
break;
|
|
31
|
+
case 'add':
|
|
32
|
+
await handle_add_command(request);
|
|
33
|
+
break;
|
|
34
|
+
case 'import':
|
|
35
|
+
await handle_import_command(request);
|
|
36
|
+
break;
|
|
37
|
+
case 'sync':
|
|
38
|
+
await handle_sync_command(request);
|
|
39
|
+
break;
|
|
40
|
+
case 'update':
|
|
41
|
+
await handle_update_command(request);
|
|
42
|
+
break;
|
|
43
|
+
case 'profile':
|
|
44
|
+
await handle_profile_command(request);
|
|
45
|
+
break;
|
|
46
|
+
case 'refresh':
|
|
47
|
+
await handle_refresh_command(request);
|
|
48
|
+
break;
|
|
49
|
+
case 'defaults':
|
|
50
|
+
await handle_defaults_command(request);
|
|
51
|
+
break;
|
|
52
|
+
default:
|
|
53
|
+
ctx.ui.notify(`Unknown: ${sub}. Use: ${SKILL_SUBCOMMANDS.join(', ')}`, 'warning');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/commands/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACN,kBAAkB,EAClB,qBAAqB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,qBAAqB,CAAC;AAM7B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,IAAY,EACZ,GAA2B,EAC3B,GAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE5B,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAAE,OAAO;IAE7D,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG;QACf,IAAI;QACJ,OAAO;QACP,GAAG;QACH,IAAI;QACJ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,GAAG;QACH,GAAG;KACH,CAAC;IAEF,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,MAAM;YACV,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM;QACP,KAAK,MAAM;YACV,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM;QACP,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACb,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACP,KAAK,KAAK;YACT,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM;QACP,KAAK,QAAQ;YACZ,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACP,KAAK,MAAM;YACV,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM;QACP,KAAK,QAAQ;YACZ,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACP,KAAK,SAAS;YACb,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM;QACP,KAAK,SAAS;YACb,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM;QACP,KAAK,UAAU;YACd,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM;QACP;YACC,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,YAAY,GAAG,UAAU,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACvD,SAAS,CACT,CAAC;IACJ,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { show_add_github_skill_modal, show_importable_skills_modal, show_profiles_modal, show_refresh_summary, show_skills_home_modal, show_skills_manager_modal, show_update_github_skills_modal, } from '../skills-ui.js';
|
|
2
|
+
export async function handle_skills_home(ctx, mgr) {
|
|
3
|
+
if (!ctx.hasUI)
|
|
4
|
+
return false;
|
|
5
|
+
let selected;
|
|
6
|
+
while (true) {
|
|
7
|
+
const managed_count = mgr.discover().length;
|
|
8
|
+
const importable_count = mgr.discover_importable().length;
|
|
9
|
+
selected = await show_skills_home_modal(ctx, managed_count, importable_count, mgr.get_active_profile());
|
|
10
|
+
if (!selected)
|
|
11
|
+
break;
|
|
12
|
+
if (selected === 'manage') {
|
|
13
|
+
if (await show_skills_manager_modal(ctx, mgr))
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
else if (selected === 'importable') {
|
|
17
|
+
if (await show_importable_skills_modal(ctx, mgr))
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
else if (selected === 'add') {
|
|
21
|
+
if (await show_add_github_skill_modal(ctx))
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
else if (selected === 'update') {
|
|
25
|
+
if (await show_update_github_skills_modal(ctx))
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
else if (selected === 'profiles') {
|
|
29
|
+
if (await show_profiles_modal(ctx, mgr))
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
else if (selected === 'refresh') {
|
|
33
|
+
await show_refresh_summary(ctx, mgr);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=home-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-handler.js","sourceRoot":"","sources":["../../src/commands/home-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,2BAA2B,EAC3B,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,+BAA+B,GAC/B,MAAM,iBAAiB,CAAC;AAMzB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,GAA2B,EAC3B,GAAkB;IAElB,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAE7B,IAAI,QAA4B,CAAC;IACjC,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAC5C,MAAM,gBAAgB,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC;QAC1D,QAAQ,GAAG,MAAM,sBAAsB,CACtC,GAAG,EACH,aAAa,EACb,gBAAgB,EAChB,GAAG,CAAC,kBAAkB,EAAE,CACxB,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,MAAM;QAErB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC5D,CAAC;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YACtC,IAAI,MAAM,4BAA4B,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC/D,CAAC;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAM,2BAA2B,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzD,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,MAAM,+BAA+B,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC7D,CAAC;aAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,MAAM,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QACtD,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { show_input_modal, show_text_modal, } from '@spences10/pi-tui-modal';
|
|
2
|
+
import { format_profile_detail, profile_description, } from '../skill-utils.js';
|
|
3
|
+
import { pick_profile, show_profiles_modal } from '../skills-ui.js';
|
|
4
|
+
function notify_error(ctx, error) {
|
|
5
|
+
ctx.ui.notify(error instanceof Error ? error.message : String(error), 'warning');
|
|
6
|
+
}
|
|
7
|
+
export async function handle_profile_command(request) {
|
|
8
|
+
const { args, rest, mgr, ctx } = request;
|
|
9
|
+
const [action = 'list', name, ...pattern_parts] = rest;
|
|
10
|
+
const pattern = pattern_parts.join(' ');
|
|
11
|
+
if (!args.trim().startsWith('profile') && ctx.hasUI) {
|
|
12
|
+
if (await show_profiles_modal(ctx, mgr))
|
|
13
|
+
return true;
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (action === 'list') {
|
|
17
|
+
const text = mgr
|
|
18
|
+
.list_profiles()
|
|
19
|
+
.map((profile) => `${profile.active ? 'active' : ' '} ${profile.name} — ${profile_description(profile)}`)
|
|
20
|
+
.join('\n');
|
|
21
|
+
if (ctx.hasUI) {
|
|
22
|
+
await show_text_modal(ctx, {
|
|
23
|
+
title: 'Skill profiles',
|
|
24
|
+
text: text || 'No skill profiles found',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
ctx.ui.notify(text || 'No skill profiles found');
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (action === 'show') {
|
|
33
|
+
let target = name;
|
|
34
|
+
if (!target && ctx.hasUI)
|
|
35
|
+
target = await pick_profile(ctx, mgr, 'Show skill profile');
|
|
36
|
+
const profile = mgr
|
|
37
|
+
.list_profiles()
|
|
38
|
+
.find((candidate) => candidate.name === target);
|
|
39
|
+
if (!profile) {
|
|
40
|
+
ctx.ui.notify('Usage: /skills profile show <name>', 'warning');
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (ctx.hasUI) {
|
|
44
|
+
await show_text_modal(ctx, {
|
|
45
|
+
title: profile.name,
|
|
46
|
+
text: format_profile_detail(profile),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
ctx.ui.notify(format_profile_detail(profile));
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
if (action === 'use') {
|
|
55
|
+
let target = name;
|
|
56
|
+
if (!target && ctx.hasUI)
|
|
57
|
+
target = await pick_profile(ctx, mgr, 'Use skill profile');
|
|
58
|
+
if (!target) {
|
|
59
|
+
ctx.ui.notify('Usage: /skills profile use <name>', 'warning');
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
mgr.use_profile(target);
|
|
64
|
+
ctx.ui.notify(`Using skill profile ${target}. Reloading...`, 'info');
|
|
65
|
+
await ctx.reload();
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
notify_error(ctx, error);
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (action === 'create') {
|
|
74
|
+
let target = name;
|
|
75
|
+
if (!target && ctx.hasUI) {
|
|
76
|
+
target = await show_input_modal(ctx, {
|
|
77
|
+
title: 'Create skill profile',
|
|
78
|
+
label: 'Profile name',
|
|
79
|
+
trim: true,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
if (!target) {
|
|
83
|
+
ctx.ui.notify('Usage: /skills profile create <name>', 'warning');
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
mgr.create_profile(target);
|
|
88
|
+
ctx.ui.notify(`Created empty skill profile ${target}`);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
notify_error(ctx, error);
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
if (action === 'include' || action === 'exclude') {
|
|
96
|
+
if (!name || !pattern) {
|
|
97
|
+
ctx.ui.notify(`Usage: /skills profile ${action} <name> <pattern>`, 'warning');
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
if (action === 'include')
|
|
102
|
+
mgr.include_in_profile(name, pattern);
|
|
103
|
+
else
|
|
104
|
+
mgr.exclude_from_profile(name, pattern);
|
|
105
|
+
ctx.ui.notify(`Updated skill profile ${name}. Reloading...`, 'info');
|
|
106
|
+
await ctx.reload();
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
notify_error(ctx, error);
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
ctx.ui.notify('Usage: /skills profile <list|show|use|create|include|exclude>', 'warning');
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=profile-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-handlers.js","sourceRoot":"","sources":["../../src/commands/profile-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SkillsCommandRequest } from './types.js';
|
|
2
|
+
export declare function handle_list_command({ mgr, ctx, }: SkillsCommandRequest): Promise<boolean>;
|
|
3
|
+
export declare function handle_show_command({ arg, mgr, ctx, }: SkillsCommandRequest): Promise<boolean>;
|
|
4
|
+
export declare function handle_toggle_command(request: SkillsCommandRequest): Promise<boolean>;
|
|
5
|
+
export declare function handle_import_command(request: SkillsCommandRequest): Promise<boolean>;
|
|
6
|
+
export declare function handle_sync_command({ arg, mgr, ctx, }: SkillsCommandRequest): Promise<boolean>;
|
|
7
|
+
export declare function handle_refresh_command({ mgr, ctx, }: SkillsCommandRequest): Promise<boolean>;
|
|
8
|
+
export declare function handle_defaults_command({ arg, mgr, ctx, }: SkillsCommandRequest): Promise<boolean>;
|