@grimoire-cc/cli 0.4.1 → 0.6.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/dist/bin.js +4 -47
- package/dist/bin.js.map +1 -1
- package/dist/commands/add.d.ts +3 -6
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +29 -52
- package/dist/commands/add.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/prompt.d.ts +7 -4
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +100 -33
- package/dist/prompt.js.map +1 -1
- package/dist/resolve.d.ts +7 -0
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +14 -0
- package/dist/resolve.js.map +1 -1
- package/dist/static/log-viewer.html +1 -0
- package/dist/static/static/log-viewer.html +1 -0
- package/dist/summary.d.ts.map +1 -1
- package/dist/summary.js +4 -1
- package/dist/summary.js.map +1 -1
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/packs/ts-pack/grimoire.json +33 -0
- package/packs/ts-pack/skills/grimoire:modern-typescript/SKILL.md +336 -0
- package/packs/ts-pack/skills/grimoire:modern-typescript/reference/modern-features.md +373 -0
- package/packs/ts-pack/skills/grimoire:modern-typescript/reference/patterns-and-idioms.md +477 -0
- package/packs/ts-pack/skills/grimoire:modern-typescript/reference/type-system.md +389 -0
package/dist/bin.js
CHANGED
|
@@ -3,56 +3,13 @@ import { defineCommand, runMain } from 'citty';
|
|
|
3
3
|
import { runAdd } from './commands/add.js';
|
|
4
4
|
import { runRemove } from './commands/remove.js';
|
|
5
5
|
import { runLogs } from './commands/logs.js';
|
|
6
|
-
import { listAvailablePacks } from './resolve.js';
|
|
7
6
|
const addCommand = defineCommand({
|
|
8
7
|
meta: {
|
|
9
8
|
name: 'add',
|
|
10
|
-
description: '
|
|
9
|
+
description: 'Interactive wizard to install agents and skills from available packs',
|
|
11
10
|
},
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type: 'positional',
|
|
15
|
-
description: 'Pack name (e.g. dotnet-pack). Run grimoire add --list to see available packs.',
|
|
16
|
-
required: false,
|
|
17
|
-
},
|
|
18
|
-
item: {
|
|
19
|
-
type: 'positional',
|
|
20
|
-
description: 'Item name to install (e.g. grimoire:csharp-coder). Omit to install all.',
|
|
21
|
-
required: false,
|
|
22
|
-
},
|
|
23
|
-
list: {
|
|
24
|
-
type: 'boolean',
|
|
25
|
-
description: 'List available packs',
|
|
26
|
-
},
|
|
27
|
-
pick: {
|
|
28
|
-
type: 'string',
|
|
29
|
-
description: 'Pick specific item by name, or use bare --pick for interactive selection',
|
|
30
|
-
},
|
|
31
|
-
enableAutoActivation: {
|
|
32
|
-
type: 'boolean',
|
|
33
|
-
description: 'Configure skill-router hooks and manifest for automatic skill activation',
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
async run({ args }) {
|
|
37
|
-
if (args.list) {
|
|
38
|
-
const packs = listAvailablePacks();
|
|
39
|
-
if (packs.length === 0) {
|
|
40
|
-
console.log('No packs available.');
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
console.log('Available packs:');
|
|
44
|
-
for (const name of packs) {
|
|
45
|
-
console.log(` ${name}`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
if (!args.pack) {
|
|
51
|
-
console.error('Error: Missing required argument "pack". Run grimoire add --list to see available packs.');
|
|
52
|
-
process.exit(1);
|
|
53
|
-
}
|
|
54
|
-
const pick = args.pick ?? args.item;
|
|
55
|
-
await runAdd(args.pack, pick, process.cwd(), args.enableAutoActivation);
|
|
11
|
+
async run() {
|
|
12
|
+
await runAdd(process.cwd());
|
|
56
13
|
},
|
|
57
14
|
});
|
|
58
15
|
const removeCommand = defineCommand({
|
|
@@ -109,7 +66,7 @@ const logsCommand = defineCommand({
|
|
|
109
66
|
const main = defineCommand({
|
|
110
67
|
meta: {
|
|
111
68
|
name: 'grimoire',
|
|
112
|
-
version: '0.
|
|
69
|
+
version: '0.6.0',
|
|
113
70
|
description: 'CLI tool for installing Grimoire agent and skill packs',
|
|
114
71
|
},
|
|
115
72
|
subCommands: {
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,sEAAsE;KACpF;IACD,KAAK,CAAC,GAAG;QACP,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,aAAa,CAAC;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4CAA4C;KAC1D;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,KAAK;SAChB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0CAA0C;SACxD;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,aAAa,CAAC;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,6CAA6C;KAC3D;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE;YAC1C,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAChD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,wDAAwD;KACtE;IACD,WAAW,EAAE;QACX,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,aAAa;QACrB,IAAI,EAAE,WAAW;KAClB;CACF,CAAC,CAAC;AAEH,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/commands/add.d.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type { InstallSummary } from '../types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Runs the `add` command
|
|
4
|
-
*
|
|
3
|
+
* Runs the `add` command as an interactive wizard: loads all available packs,
|
|
4
|
+
* prompts the user through pack/item selection, copies items, and prints a summary.
|
|
5
5
|
*
|
|
6
|
-
* @param packageName - npm package name to install from
|
|
7
|
-
* @param pick - undefined = all, "" = interactive, "name" = specific item
|
|
8
6
|
* @param cwd - Target project directory (defaults to process.cwd())
|
|
9
|
-
* @param enableAutoActivation - If true, configure skill-router hooks and manifest
|
|
10
7
|
* @returns The install summary
|
|
11
8
|
*/
|
|
12
|
-
export declare function runAdd(
|
|
9
|
+
export declare function runAdd(cwd?: string | undefined): Promise<InstallSummary>;
|
|
13
10
|
//# sourceMappingURL=add.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAuC9E"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,67 +1,44 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { loadManifest } from '../manifest.js';
|
|
1
|
+
import { loadAllPacks } from '../resolve.js';
|
|
3
2
|
import { copyItems } from '../copy.js';
|
|
4
3
|
import { printSummary } from '../summary.js';
|
|
5
|
-
import {
|
|
4
|
+
import { runWizard } from '../prompt.js';
|
|
6
5
|
import { setupRouter } from '../setup.js';
|
|
7
6
|
/**
|
|
8
|
-
* Runs the `add` command
|
|
9
|
-
*
|
|
7
|
+
* Runs the `add` command as an interactive wizard: loads all available packs,
|
|
8
|
+
* prompts the user through pack/item selection, copies items, and prints a summary.
|
|
10
9
|
*
|
|
11
|
-
* @param packageName - npm package name to install from
|
|
12
|
-
* @param pick - undefined = all, "" = interactive, "name" = specific item
|
|
13
10
|
* @param cwd - Target project directory (defaults to process.cwd())
|
|
14
|
-
* @param enableAutoActivation - If true, configure skill-router hooks and manifest
|
|
15
11
|
* @returns The install summary
|
|
16
12
|
*/
|
|
17
|
-
export async function runAdd(
|
|
13
|
+
export async function runAdd(cwd) {
|
|
18
14
|
const projectDir = cwd ?? process.cwd();
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
const packs = loadAllPacks();
|
|
16
|
+
if (packs.length === 0) {
|
|
17
|
+
console.log('No packs available.');
|
|
18
|
+
return { packs: [], results: [] };
|
|
19
|
+
}
|
|
20
|
+
const wizard = await runWizard(packs);
|
|
21
|
+
if (wizard.selections.length === 0) {
|
|
22
|
+
return { packs: [], results: [] };
|
|
23
|
+
}
|
|
24
|
+
const allResults = [];
|
|
25
|
+
const packInfo = [];
|
|
26
|
+
for (const selection of wizard.selections) {
|
|
27
|
+
const results = copyItems(selection.items, selection.packDir, projectDir);
|
|
28
|
+
allResults.push(...results);
|
|
29
|
+
packInfo.push({
|
|
30
|
+
name: selection.manifest.name,
|
|
31
|
+
version: selection.manifest.version,
|
|
32
|
+
});
|
|
33
|
+
if (wizard.enableAutoActivation) {
|
|
34
|
+
setupRouter(projectDir, selection.manifest);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
24
37
|
const summary = {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
results,
|
|
38
|
+
packs: packInfo,
|
|
39
|
+
results: allResults,
|
|
28
40
|
};
|
|
29
41
|
printSummary(summary);
|
|
30
|
-
if (enableAutoActivation) {
|
|
31
|
-
setupRouter(projectDir, manifest);
|
|
32
|
-
}
|
|
33
42
|
return summary;
|
|
34
43
|
}
|
|
35
|
-
function manifestToItems(manifest) {
|
|
36
|
-
const agents = manifest.agents.map((agent) => ({
|
|
37
|
-
type: 'agent',
|
|
38
|
-
name: agent.name,
|
|
39
|
-
sourcePath: agent.path,
|
|
40
|
-
description: agent.description,
|
|
41
|
-
}));
|
|
42
|
-
const skills = manifest.skills.map((skill) => ({
|
|
43
|
-
type: 'skill',
|
|
44
|
-
name: skill.name,
|
|
45
|
-
sourcePath: skill.path,
|
|
46
|
-
description: skill.description,
|
|
47
|
-
}));
|
|
48
|
-
return [...agents, ...skills];
|
|
49
|
-
}
|
|
50
|
-
async function selectItems(allItems, manifest, pick) {
|
|
51
|
-
// No --pick: install everything
|
|
52
|
-
if (pick === undefined) {
|
|
53
|
-
return allItems;
|
|
54
|
-
}
|
|
55
|
-
// Bare --pick (empty string): interactive prompt
|
|
56
|
-
if (pick === '') {
|
|
57
|
-
return promptForItems(manifest);
|
|
58
|
-
}
|
|
59
|
-
// --pick=<name>: find specific item
|
|
60
|
-
const found = allItems.filter((item) => item.name === pick);
|
|
61
|
-
if (found.length === 0) {
|
|
62
|
-
const available = allItems.map((i) => i.name).join(', ');
|
|
63
|
-
throw new Error(`Item not found: "${pick}". Available items: ${available}`);
|
|
64
|
-
}
|
|
65
|
-
return found;
|
|
66
|
-
}
|
|
67
44
|
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAwB;IACnD,MAAM,UAAU,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAA6C,EAAE,CAAC;IAE9D,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1E,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI;YAC7B,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO;SACpC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAmB;QAC9B,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,UAAU;KACpB,CAAC;IAEF,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { loadManifest } from './manifest.js';
|
|
2
|
-
export { resolvePackDir, listAvailablePacks } from './resolve.js';
|
|
2
|
+
export { resolvePackDir, listAvailablePacks, loadAllPacks } from './resolve.js';
|
|
3
3
|
export { copyAgent, copySkill, copyItems } from './copy.js';
|
|
4
4
|
export { printSummary } from './summary.js';
|
|
5
|
-
export {
|
|
5
|
+
export { runWizard } from './prompt.js';
|
|
6
6
|
export { runAdd } from './commands/add.js';
|
|
7
7
|
export { runLogs } from './commands/logs.js';
|
|
8
8
|
export type { LogsOptions } from './commands/logs.js';
|
|
9
9
|
export { mergeSettings, mergeManifest, setupRouter } from './setup.js';
|
|
10
10
|
export { scanInstalled, removeItems, cleanManifest } from './remove.js';
|
|
11
11
|
export { runRemove } from './commands/remove.js';
|
|
12
|
-
export type { PackSkillTriggers, PackAgentEntry, PackSkillEntry, PackManifest, InstallItem, InstallResult, InstallSummary, RemoveResult, RemoveSummary, } from './types.js';
|
|
12
|
+
export type { PackSkillTriggers, PackAgentEntry, PackSkillEntry, PackManifest, PackOption, WizardResult, InstallItem, InstallResult, InstallSummary, RemoveResult, RemoveSummary, } from './types.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { loadManifest } from './manifest.js';
|
|
2
|
-
export { resolvePackDir, listAvailablePacks } from './resolve.js';
|
|
2
|
+
export { resolvePackDir, listAvailablePacks, loadAllPacks } from './resolve.js';
|
|
3
3
|
export { copyAgent, copySkill, copyItems } from './copy.js';
|
|
4
4
|
export { printSummary } from './summary.js';
|
|
5
|
-
export {
|
|
5
|
+
export { runWizard } from './prompt.js';
|
|
6
6
|
export { runAdd } from './commands/add.js';
|
|
7
7
|
export { runLogs } from './commands/logs.js';
|
|
8
8
|
export { mergeSettings, mergeManifest, setupRouter } from './setup.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/prompt.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PackOption, WizardResult } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Runs a 3-step interactive wizard:
|
|
4
|
+
* 1. Select packs to install
|
|
5
|
+
* 2. Select individual items (all pre-selected)
|
|
6
|
+
* 3. Enable auto-activation?
|
|
4
7
|
*
|
|
5
|
-
* @returns The selected
|
|
8
|
+
* @returns The wizard result with selected items grouped by pack, or empty on cancel
|
|
6
9
|
*/
|
|
7
|
-
export declare function
|
|
10
|
+
export declare function runWizard(packs: readonly PackOption[]): Promise<WizardResult>;
|
|
8
11
|
//# sourceMappingURL=prompt.d.ts.map
|
package/dist/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAqHnF"}
|
package/dist/prompt.js
CHANGED
|
@@ -1,45 +1,112 @@
|
|
|
1
1
|
import * as clack from '@clack/prompts';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Runs a 3-step interactive wizard:
|
|
4
|
+
* 1. Select packs to install
|
|
5
|
+
* 2. Select individual items (all pre-selected)
|
|
6
|
+
* 3. Enable auto-activation?
|
|
4
7
|
*
|
|
5
|
-
* @returns The selected
|
|
8
|
+
* @returns The wizard result with selected items grouped by pack, or empty on cancel
|
|
6
9
|
*/
|
|
7
|
-
export async function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
export async function runWizard(packs) {
|
|
11
|
+
const empty = { selections: [], enableAutoActivation: false };
|
|
12
|
+
clack.intro('Grimoire Installer');
|
|
13
|
+
// Step 1 — Pack selection
|
|
14
|
+
const packOptions = packs.map((pack) => {
|
|
15
|
+
const agentCount = pack.manifest.agents.length;
|
|
16
|
+
const skillCount = pack.manifest.skills.length;
|
|
17
|
+
const parts = [];
|
|
18
|
+
if (agentCount > 0)
|
|
19
|
+
parts.push(`${agentCount} agent${agentCount !== 1 ? 's' : ''}`);
|
|
20
|
+
if (skillCount > 0)
|
|
21
|
+
parts.push(`${skillCount} skill${skillCount !== 1 ? 's' : ''}`);
|
|
22
|
+
return {
|
|
23
|
+
label: pack.name,
|
|
24
|
+
value: pack,
|
|
25
|
+
hint: parts.join(', '),
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
const selectedPacks = await clack.multiselect({
|
|
29
|
+
message: 'Select packs to install:',
|
|
30
|
+
options: packOptions,
|
|
31
|
+
required: true,
|
|
32
|
+
});
|
|
33
|
+
if (clack.isCancel(selectedPacks)) {
|
|
34
|
+
clack.cancel('Installation cancelled.');
|
|
35
|
+
return empty;
|
|
36
|
+
}
|
|
37
|
+
const chosenPacks = selectedPacks;
|
|
38
|
+
// Step 2 — Item selection (all pre-selected)
|
|
39
|
+
const itemOptions = [];
|
|
40
|
+
for (const pack of chosenPacks) {
|
|
41
|
+
for (const agent of pack.manifest.agents) {
|
|
42
|
+
itemOptions.push({
|
|
43
|
+
label: `[${pack.name} | agent] ${agent.name}`,
|
|
44
|
+
value: {
|
|
45
|
+
pack,
|
|
46
|
+
item: {
|
|
47
|
+
type: 'agent',
|
|
48
|
+
name: agent.name,
|
|
49
|
+
sourcePath: agent.path,
|
|
50
|
+
description: agent.description,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
hint: agent.description,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
for (const skill of pack.manifest.skills) {
|
|
57
|
+
itemOptions.push({
|
|
58
|
+
label: `[${pack.name} | skill] ${skill.name}`,
|
|
59
|
+
value: {
|
|
60
|
+
pack,
|
|
61
|
+
item: {
|
|
62
|
+
type: 'skill',
|
|
63
|
+
name: skill.name,
|
|
64
|
+
sourcePath: skill.path,
|
|
65
|
+
description: skill.description,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
hint: skill.description,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const selectedItems = await clack.multiselect({
|
|
11
73
|
message: 'Select items to install (Space to toggle, Enter to confirm):',
|
|
12
|
-
options,
|
|
74
|
+
options: itemOptions,
|
|
75
|
+
initialValues: itemOptions.map((o) => o.value),
|
|
13
76
|
required: false,
|
|
14
77
|
});
|
|
15
|
-
if (clack.isCancel(
|
|
78
|
+
if (clack.isCancel(selectedItems)) {
|
|
16
79
|
clack.cancel('Installation cancelled.');
|
|
17
|
-
return
|
|
80
|
+
return empty;
|
|
81
|
+
}
|
|
82
|
+
const chosenItems = selectedItems;
|
|
83
|
+
if (chosenItems.length === 0) {
|
|
84
|
+
clack.outro('Nothing selected.');
|
|
85
|
+
return empty;
|
|
86
|
+
}
|
|
87
|
+
// Step 3 — Auto-activation
|
|
88
|
+
const autoActivate = await clack.confirm({
|
|
89
|
+
message: 'Enable auto-activation? (skill-router hooks for automatic skill matching)',
|
|
90
|
+
initialValue: true,
|
|
91
|
+
});
|
|
92
|
+
if (clack.isCancel(autoActivate)) {
|
|
93
|
+
clack.cancel('Installation cancelled.');
|
|
94
|
+
return empty;
|
|
18
95
|
}
|
|
19
96
|
clack.outro('Selection complete.');
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
label: `[skill] ${skill.name}`,
|
|
35
|
-
value: {
|
|
36
|
-
type: 'skill',
|
|
37
|
-
name: skill.name,
|
|
38
|
-
sourcePath: skill.path,
|
|
39
|
-
description: skill.description,
|
|
40
|
-
},
|
|
41
|
-
hint: skill.description,
|
|
42
|
-
}));
|
|
43
|
-
return [...agentOptions, ...skillOptions];
|
|
97
|
+
// Group items by pack
|
|
98
|
+
const groupMap = new Map();
|
|
99
|
+
for (const { pack, item } of chosenItems) {
|
|
100
|
+
let group = groupMap.get(pack.name);
|
|
101
|
+
if (!group) {
|
|
102
|
+
group = { packDir: pack.dir, manifest: pack.manifest, items: [] };
|
|
103
|
+
groupMap.set(pack.name, group);
|
|
104
|
+
}
|
|
105
|
+
group.items.push(item);
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
selections: [...groupMap.values()],
|
|
109
|
+
enableAutoActivation: autoActivate,
|
|
110
|
+
};
|
|
44
111
|
}
|
|
45
112
|
//# sourceMappingURL=prompt.js.map
|
package/dist/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAGxC
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/resolve.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PackOption } from './types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Resolves the directory path of a bundled pack.
|
|
3
4
|
*
|
|
@@ -13,4 +14,10 @@ export declare function resolvePackDir(packName: string): string;
|
|
|
13
14
|
* @returns Array of pack names
|
|
14
15
|
*/
|
|
15
16
|
export declare function listAvailablePacks(packsDir?: string | undefined): string[];
|
|
17
|
+
/**
|
|
18
|
+
* Lists all available packs and loads their manifests.
|
|
19
|
+
*
|
|
20
|
+
* @returns Array of PackOption with name, resolved dir, and parsed manifest
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadAllPacks(): PackOption[];
|
|
16
23
|
//# sourceMappingURL=resolve.d.ts.map
|
package/dist/resolve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO1E"}
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO1E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,UAAU,EAAE,CAO3C"}
|
package/dist/resolve.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync, readdirSync } from 'fs';
|
|
2
2
|
import { dirname, join } from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
|
+
import { loadManifest } from './manifest.js';
|
|
4
5
|
/**
|
|
5
6
|
* Resolves the directory path of a bundled pack.
|
|
6
7
|
*
|
|
@@ -32,6 +33,19 @@ export function listAvailablePacks(packsDir) {
|
|
|
32
33
|
.filter((entry) => entry.isDirectory())
|
|
33
34
|
.map((entry) => entry.name);
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Lists all available packs and loads their manifests.
|
|
38
|
+
*
|
|
39
|
+
* @returns Array of PackOption with name, resolved dir, and parsed manifest
|
|
40
|
+
*/
|
|
41
|
+
export function loadAllPacks() {
|
|
42
|
+
const names = listAvailablePacks();
|
|
43
|
+
return names.map((name) => {
|
|
44
|
+
const dir = resolvePackDir(name);
|
|
45
|
+
const manifest = loadManifest(dir);
|
|
46
|
+
return { name, dir, manifest };
|
|
47
|
+
});
|
|
48
|
+
}
|
|
35
49
|
function getPacksDir() {
|
|
36
50
|
return join(dirname(fileURLToPath(import.meta.url)), '..', 'packs');
|
|
37
51
|
}
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,iCAAiC,IAAI,EAAE,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAA6B;IAC9D,MAAM,GAAG,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -117,6 +117,7 @@
|
|
|
117
117
|
align-items: center;
|
|
118
118
|
gap: 8px;
|
|
119
119
|
font-size: 13px;
|
|
120
|
+
min-width: 0;
|
|
120
121
|
}
|
|
121
122
|
.skill-card .skill-header .name { font-weight: 600; white-space: nowrap; }
|
|
122
123
|
.skill-card .skill-header .desc { font-size: 12px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
@@ -117,6 +117,7 @@
|
|
|
117
117
|
align-items: center;
|
|
118
118
|
gap: 8px;
|
|
119
119
|
font-size: 13px;
|
|
120
|
+
min-width: 0;
|
|
120
121
|
}
|
|
121
122
|
.skill-card .skill-header .name { font-weight: 600; white-space: nowrap; }
|
|
122
123
|
.skill-card .skill-header .desc { font-size: 12px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
package/dist/summary.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAkB1D"}
|
package/dist/summary.js
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* Prints a formatted summary of installed items to the console.
|
|
3
3
|
*/
|
|
4
4
|
export function printSummary(summary) {
|
|
5
|
-
|
|
5
|
+
if (summary.packs.length > 0) {
|
|
6
|
+
const packList = summary.packs.map((p) => `${p.name}@${p.version}`).join(', ');
|
|
7
|
+
console.log(`\nInstalled from: ${packList}`);
|
|
8
|
+
}
|
|
6
9
|
if (summary.results.length === 0) {
|
|
7
10
|
console.log(' nothing to install');
|
|
8
11
|
return;
|
package/dist/summary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,MAAM,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;AAChE,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -27,14 +27,29 @@ export interface InstallItem {
|
|
|
27
27
|
readonly sourcePath: string;
|
|
28
28
|
readonly description: string;
|
|
29
29
|
}
|
|
30
|
+
export interface PackOption {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly dir: string;
|
|
33
|
+
readonly manifest: PackManifest;
|
|
34
|
+
}
|
|
35
|
+
export interface WizardResult {
|
|
36
|
+
readonly selections: ReadonlyArray<{
|
|
37
|
+
readonly packDir: string;
|
|
38
|
+
readonly manifest: PackManifest;
|
|
39
|
+
readonly items: readonly InstallItem[];
|
|
40
|
+
}>;
|
|
41
|
+
readonly enableAutoActivation: boolean;
|
|
42
|
+
}
|
|
30
43
|
export interface InstallResult {
|
|
31
44
|
readonly item: InstallItem;
|
|
32
45
|
readonly destinationPath: string;
|
|
33
46
|
readonly overwritten: boolean;
|
|
34
47
|
}
|
|
35
48
|
export interface InstallSummary {
|
|
36
|
-
readonly
|
|
37
|
-
|
|
49
|
+
readonly packs: ReadonlyArray<{
|
|
50
|
+
readonly name: string;
|
|
51
|
+
readonly version: string;
|
|
52
|
+
}>;
|
|
38
53
|
readonly results: readonly InstallResult[];
|
|
39
54
|
}
|
|
40
55
|
export interface RemoveResult {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;QAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC3C"}
|