@tydung26/product-kit 1.0.0 → 1.1.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.
- package/README.md +2 -0
- package/dist/commands/install/index.d.ts.map +1 -1
- package/dist/commands/install/index.js +19 -7
- package/dist/commands/install/index.js.map +1 -1
- package/dist/commands/list/index.js +1 -1
- package/dist/commands/list/index.js.map +1 -1
- package/dist/commands/remove/index.d.ts.map +1 -1
- package/dist/commands/remove/index.js +7 -2
- package/dist/commands/remove/index.js.map +1 -1
- package/dist/commands/update/index.js +1 -1
- package/dist/commands/update/index.js.map +1 -1
- package/dist/domains/ui/prompts.d.ts +2 -1
- package/dist/domains/ui/prompts.d.ts.map +1 -1
- package/dist/domains/ui/prompts.js +30 -6
- package/dist/domains/ui/prompts.js.map +1 -1
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAa/B,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,QAsDvC"}
|
|
@@ -6,18 +6,18 @@ const installation_1 = require("../../domains/installation");
|
|
|
6
6
|
const prompts_1 = require("../../domains/ui/prompts");
|
|
7
7
|
function registerInstall(cli) {
|
|
8
8
|
cli
|
|
9
|
-
.command('init [...skills]', 'Install PM commands to AI coding tools')
|
|
9
|
+
.command('init|i [...skills]', 'Install PM commands to AI coding tools')
|
|
10
10
|
.option('--tool <tool>', 'Target tool: claude, antigravity, opencode, all')
|
|
11
|
-
.option('--scope <scope>', 'Scope: global or project'
|
|
11
|
+
.option('--scope <scope>', 'Scope: global or project')
|
|
12
12
|
.option('--force', 'Overwrite existing installations')
|
|
13
|
-
.option('-y, --yes', 'Skip interactive prompts (installs all skills to
|
|
13
|
+
.option('-y, --yes', 'Skip interactive prompts (installs all skills to claude, global)')
|
|
14
14
|
.action(async (skills, opts) => {
|
|
15
15
|
(0, prompts_1.intro)('pkit — PM skills installer');
|
|
16
|
-
//
|
|
16
|
+
// Step 1: Which AI tool?
|
|
17
17
|
let tool = opts.tool;
|
|
18
18
|
if (!tool) {
|
|
19
19
|
if (opts.yes) {
|
|
20
|
-
tool = '
|
|
20
|
+
tool = 'claude';
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
23
|
tool = await (0, prompts_1.promptToolSelection)() ?? undefined;
|
|
@@ -25,7 +25,7 @@ function registerInstall(cli) {
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
//
|
|
28
|
+
// Step 2: Which skills?
|
|
29
29
|
let skillNames = skills;
|
|
30
30
|
if (skillNames.length === 0) {
|
|
31
31
|
const available = (0, skills_1.loadAvailableSkills)().map(s => s.name);
|
|
@@ -39,9 +39,21 @@ function registerInstall(cli) {
|
|
|
39
39
|
skillNames = selected;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
// Step 3: Global or project scope?
|
|
43
|
+
let scope = opts.scope;
|
|
44
|
+
if (!scope) {
|
|
45
|
+
if (opts.yes) {
|
|
46
|
+
scope = 'global';
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
scope = await (0, prompts_1.promptScopeSelection)() ?? undefined;
|
|
50
|
+
if (!scope)
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
42
54
|
await (0, installation_1.installSkills)(skillNames, {
|
|
43
55
|
tools: tool,
|
|
44
|
-
scope:
|
|
56
|
+
scope: scope,
|
|
45
57
|
force: opts.force,
|
|
46
58
|
yes: opts.yes,
|
|
47
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":";;AAaA,0CAsDC;AAlED,iDAA2D;AAC3D,6DAA2D;AAC3D,sDAAyH;AAUzH,SAAgB,eAAe,CAAC,GAAQ;IACtC,GAAG;SACA,OAAO,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,iDAAiD,CAAC;SAC1E,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,kEAAkE,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,IAAiB,EAAE,EAAE;QACpD,IAAA,eAAK,EAAC,4BAA4B,CAAC,CAAC;QAEpC,yBAAyB;QACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,IAAA,6BAAmB,GAAE,IAAI,SAAS,CAAC;gBAChD,IAAI,CAAC,IAAI;oBAAE,OAAO;YACpB,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAA,4BAAmB,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,UAAU,GAAG,SAAS,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAoB,EAAC,SAAS,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,KAAK,GAAG,QAAQ,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,MAAM,IAAA,8BAAoB,GAAE,IAAI,SAAS,CAAC;gBAClD,IAAI,CAAC,KAAK;oBAAE,OAAO;YACrB,CAAC;QACH,CAAC;QAED,MAAM,IAAA,4BAAa,EAAC,UAAU,EAAE;YAC9B,KAAK,EAAE,IAAgB;YACvB,KAAK,EAAE,KAAqB;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QAEH,IAAA,eAAK,EAAC,kEAAkE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -6,7 +6,7 @@ const installation_1 = require("../../domains/installation");
|
|
|
6
6
|
const logger_1 = require("../../shared/logger");
|
|
7
7
|
function registerList(cli) {
|
|
8
8
|
cli
|
|
9
|
-
.command('list', 'List available and installed PM skills')
|
|
9
|
+
.command('list|ls', 'List available and installed PM skills')
|
|
10
10
|
.action(() => {
|
|
11
11
|
const available = (0, skills_1.loadAvailableSkills)();
|
|
12
12
|
const installed = new Set((0, installation_1.getManifestEntries)().map(e => e.name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/list/index.ts"],"names":[],"mappings":";;AAKA,oCAmBC;AAvBD,iDAA2D;AAC3D,6DAAgE;AAChE,gDAA0C;AAE1C,SAAgB,YAAY,CAAC,GAAQ;IACnC,GAAG;SACA,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/list/index.ts"],"names":[],"mappings":";;AAKA,oCAmBC;AAvBD,iDAA2D;AAC3D,6DAAgE;AAChE,gDAA0C;AAE1C,SAAgB,YAAY,CAAC,GAAQ;IACnC,GAAG;SACA,OAAO,CAAC,SAAS,EAAE,wCAAwC,CAAC;SAC5D,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,SAAS,GAAG,IAAA,4BAAmB,GAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAA,iCAAkB,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,YAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;YACzE,2CAA2C;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,YAAG,CAAC,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3E,YAAG,CAAC,KAAK,CAAC,KAAK,cAAc,IAAI,SAAS,CAAC,MAAM,mBAAmB,CAAC,CAAC;QACtE,YAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/remove/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAO/B,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/remove/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAO/B,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,QAmCtC"}
|
|
@@ -6,12 +6,17 @@ const prompts_1 = require("../../domains/ui/prompts");
|
|
|
6
6
|
const logger_1 = require("../../shared/logger");
|
|
7
7
|
function registerRemove(cli) {
|
|
8
8
|
cli
|
|
9
|
-
.command('remove [...skills]', 'Remove installed PM skills')
|
|
9
|
+
.command('remove|rm [...skills]', 'Remove installed PM skills')
|
|
10
10
|
.option('-y, --yes', 'Skip confirmation prompt')
|
|
11
|
+
.option('-a, --all', 'Remove all installed pkit skills')
|
|
11
12
|
.action(async (skills, opts) => {
|
|
12
13
|
(0, prompts_1.intro)('pkit — removing skills');
|
|
13
|
-
// If no skills named, prompt to pick from installed
|
|
14
14
|
let toRemove = skills;
|
|
15
|
+
// --all flag: remove everything installed
|
|
16
|
+
if (opts.all) {
|
|
17
|
+
toRemove = [...new Set((0, installation_1.getManifestEntries)().map(e => e.name))];
|
|
18
|
+
}
|
|
19
|
+
// If no skills named, prompt to pick from installed
|
|
15
20
|
if (toRemove.length === 0) {
|
|
16
21
|
const installedNames = [...new Set((0, installation_1.getManifestEntries)().map(e => e.name))];
|
|
17
22
|
if (installedNames.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/remove/index.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/remove/index.ts"],"names":[],"mappings":";;AAOA,wCAmCC;AAzCD,6DAA8E;AAC9E,sDAA6F;AAC7F,gDAA0C;AAI1C,SAAgB,cAAc,CAAC,GAAQ;IACrC,GAAG;SACA,OAAO,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,IAAgB,EAAE,EAAE;QACnD,IAAA,eAAK,EAAC,wBAAwB,CAAC,CAAC;QAEhC,IAAI,QAAQ,GAAG,MAAM,CAAC;QAEtB,0CAA0C;QAC1C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,iCAAkB,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,oDAAoD;QACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,iCAAkB,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,YAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAoB,EAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAa,EAAC,UAAU,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,EAAE,EAAE,CAAC;gBAAC,YAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;QAC9C,CAAC;QAED,MAAM,IAAA,2BAAY,EAAC,QAAQ,CAAC,CAAC;QAC7B,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -6,7 +6,7 @@ const prompts_1 = require("../../domains/ui/prompts");
|
|
|
6
6
|
const logger_1 = require("../../shared/logger");
|
|
7
7
|
function registerUpdate(cli) {
|
|
8
8
|
cli
|
|
9
|
-
.command('update [...skills]', 'Update installed PM skills to latest version')
|
|
9
|
+
.command('update|u [...skills]', 'Update installed PM skills to latest version')
|
|
10
10
|
.option('--tool <tool>', 'Target tool: claude, antigravity, opencode, all')
|
|
11
11
|
.option('--scope <scope>', 'Scope: global or project', { default: 'global' })
|
|
12
12
|
.action(async (skills, opts) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/update/index.ts"],"names":[],"mappings":";;AAQA,wCA2BC;AAlCD,6DAA8E;AAC9E,sDAAwD;AACxD,gDAA0C;AAK1C,SAAgB,cAAc,CAAC,GAAQ;IACrC,GAAG;SACA,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/update/index.ts"],"names":[],"mappings":";;AAQA,wCA2BC;AAlCD,6DAA8E;AAC9E,sDAAwD;AACxD,gDAA0C;AAK1C,SAAgB,cAAc,CAAC,GAAQ;IACrC,GAAG;SACA,OAAO,CAAC,sBAAsB,EAAE,8CAA8C,CAAC;SAC/E,MAAM,CAAC,eAAe,EAAE,iDAAiD,CAAC;SAC1E,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,IAAgB,EAAE,EAAE;QACnD,IAAA,eAAK,EAAC,wBAAwB,CAAC,CAAC;QAEhC,uCAAuC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,iCAAkB,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,YAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,MAAM,IAAA,2BAAY,EAAC,QAAQ,EAAE;YAC3B,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACzB,KAAK,EAAE,IAAI,CAAC,KAAqB;YACjC,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SAC1B,CAAC,CAAC;QAEH,IAAA,eAAK,EAAC,iBAAiB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as p from '@clack/prompts';
|
|
2
|
-
import type { ToolName } from '../../types';
|
|
2
|
+
import type { ToolName, InstallScope } from '../../types';
|
|
3
3
|
export declare function promptToolSelection(): Promise<ToolName | null>;
|
|
4
4
|
export declare function promptSkillSelection(skillNames: string[]): Promise<string[] | null>;
|
|
5
|
+
export declare function promptScopeSelection(): Promise<InstallScope | null>;
|
|
5
6
|
export declare function promptConfirm(message: string): Promise<boolean>;
|
|
6
7
|
export declare const intro: (title?: string, opts?: p.CommonOptions) => void, outro: (message?: string, opts?: p.CommonOptions) => void, spinner: ({ indicator, onCancel, output, cancelMessage, errorMessage, frames, delay, signal, ...opts }?: p.SpinnerOptions) => p.SpinnerResult, clackLog: {
|
|
7
8
|
message: (message?: string | string[], { symbol, secondarySymbol, output, spacing, withGuide, }?: p.LogMessageOptions) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/domains/ui/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/domains/ui/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG1D,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAWpE;AAGD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAkBzF;AAGD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAUzE;AAGD,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIrE;AAED,eAAO,MAAQ,KAAK,oDAAE,KAAK,sDAAE,OAAO,wIAAO,QAAQ;qBACmtJ,CAAC,6EAA6E,CAAC;gCAA8D,CAAC;mCAAiE,CAAC;gCAA8D,CAAC;gCAA8D,CAAC;mCAAoG,CAAC;iCAA+D,CAAC;CADhsK,CAAC"}
|
|
@@ -36,17 +36,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.clackLog = exports.spinner = exports.outro = exports.intro = void 0;
|
|
37
37
|
exports.promptToolSelection = promptToolSelection;
|
|
38
38
|
exports.promptSkillSelection = promptSkillSelection;
|
|
39
|
+
exports.promptScopeSelection = promptScopeSelection;
|
|
39
40
|
exports.promptConfirm = promptConfirm;
|
|
40
41
|
const p = __importStar(require("@clack/prompts"));
|
|
41
|
-
//
|
|
42
|
+
// Step 1: Which AI tool? Default: claude
|
|
42
43
|
async function promptToolSelection() {
|
|
43
44
|
const selected = await p.select({
|
|
44
45
|
message: 'Install skills to which AI tool?',
|
|
45
46
|
options: [
|
|
46
|
-
{ value: '
|
|
47
|
-
{ value: 'claude', label: 'Claude Code', hint: 'Also covers OpenCode (~/.claude/skills/)' },
|
|
47
|
+
{ value: 'claude', label: 'Claude Code', hint: 'also covers OpenCode (recommended)' },
|
|
48
48
|
{ value: 'antigravity', label: 'Antigravity', hint: '~/.gemini/antigravity/skills/' },
|
|
49
|
-
{ value: '
|
|
49
|
+
{ value: 'all', label: 'All tools', hint: 'Claude Code + Antigravity' },
|
|
50
50
|
],
|
|
51
51
|
});
|
|
52
52
|
if (p.isCancel(selected)) {
|
|
@@ -55,17 +55,41 @@ async function promptToolSelection() {
|
|
|
55
55
|
}
|
|
56
56
|
return selected;
|
|
57
57
|
}
|
|
58
|
-
//
|
|
58
|
+
// Step 2: Which skills? Default: all
|
|
59
59
|
async function promptSkillSelection(skillNames) {
|
|
60
|
+
const allLabel = `All skills (${skillNames.length})`;
|
|
61
|
+
const choices = [
|
|
62
|
+
{ value: '__all__', label: allLabel, hint: 'recommended' },
|
|
63
|
+
...skillNames.map(n => ({ value: n, label: n })),
|
|
64
|
+
];
|
|
60
65
|
const selected = await p.multiselect({
|
|
61
66
|
message: 'Select skills to install:',
|
|
62
|
-
options:
|
|
67
|
+
options: choices,
|
|
63
68
|
required: true,
|
|
64
69
|
});
|
|
65
70
|
if (p.isCancel(selected)) {
|
|
66
71
|
p.cancel('Cancelled.');
|
|
67
72
|
return null;
|
|
68
73
|
}
|
|
74
|
+
const result = selected;
|
|
75
|
+
// If "All skills" was selected, return full list
|
|
76
|
+
if (result.includes('__all__'))
|
|
77
|
+
return skillNames;
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
// Step 3: Global or project scope?
|
|
81
|
+
async function promptScopeSelection() {
|
|
82
|
+
const selected = await p.select({
|
|
83
|
+
message: 'Install to global or project scope?',
|
|
84
|
+
options: [
|
|
85
|
+
{ value: 'global', label: 'Global', hint: '~/.claude/skills/ (recommended)' },
|
|
86
|
+
{ value: 'project', label: 'Project', hint: '.claude/skills/ in current directory' },
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
if (p.isCancel(selected)) {
|
|
90
|
+
p.cancel('Cancelled.');
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
69
93
|
return selected;
|
|
70
94
|
}
|
|
71
95
|
// Confirm destructive actions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/domains/ui/prompts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/domains/ui/prompts.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tydung26/product-kit",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "🐳 Product engineer skills kit",
|
|
5
5
|
"bin": {
|
|
6
6
|
"pkit": "bin/pkit.js"
|
|
7
7
|
},
|
|
8
8
|
"main": "dist/index.js",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
11
|
-
"dev": "tsx src/index.ts",
|
|
12
|
-
"lint": "tsc --noEmit",
|
|
13
|
-
"test": "node --test tests/*.test.mjs",
|
|
14
|
-
"prepublishOnly": "npm run lint && npm run build && npm test"
|
|
15
|
-
},
|
|
16
9
|
"engines": {
|
|
17
10
|
"node": ">=18.0.0"
|
|
18
11
|
},
|
|
@@ -45,6 +38,13 @@
|
|
|
45
38
|
"@types/fs-extra": "^11.0.4",
|
|
46
39
|
"@types/node": "^25.3.0",
|
|
47
40
|
"tsx": "^4.21.0",
|
|
48
|
-
"typescript": "^5.9.3"
|
|
41
|
+
"typescript": "^5.9.3",
|
|
42
|
+
"vitest": "^4.0.18"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc",
|
|
46
|
+
"dev": "tsx src/index.ts",
|
|
47
|
+
"lint": "tsc --noEmit",
|
|
48
|
+
"test": "vitest run"
|
|
49
49
|
}
|
|
50
|
-
}
|
|
50
|
+
}
|