simba-skills 0.3.0 → 0.4.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/package.json +2 -3
- package/src/commands/install.ts +16 -8
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simba-skills",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "AI skills manager - central store with symlink-based distribution across 14+ coding agents",
|
|
5
5
|
"publishConfig": {
|
|
6
|
-
"access": "public"
|
|
7
|
-
"provenance": true
|
|
6
|
+
"access": "public"
|
|
8
7
|
},
|
|
9
8
|
"type": "module",
|
|
10
9
|
"license": "MIT",
|
package/src/commands/install.ts
CHANGED
|
@@ -282,6 +282,7 @@ export interface InstallOptions {
|
|
|
282
282
|
registryPath: string
|
|
283
283
|
useSSH: boolean
|
|
284
284
|
skillName?: string // Install specific skill by name, skip selection
|
|
285
|
+
installAll?: boolean // Install all discovered skills without prompts
|
|
285
286
|
onSelect: (skills: DiscoveredSkill[]) => Promise<string[]>
|
|
286
287
|
}
|
|
287
288
|
|
|
@@ -349,7 +350,10 @@ export async function runInstall(options: InstallOptions): Promise<void> {
|
|
|
349
350
|
|
|
350
351
|
let selected: string[]
|
|
351
352
|
|
|
352
|
-
if (options.
|
|
353
|
+
if (options.installAll) {
|
|
354
|
+
selected = discovered.map(s => s.name)
|
|
355
|
+
console.log(`Installing all ${selected.length} skills...`)
|
|
356
|
+
} else if (options.skillName) {
|
|
353
357
|
// Direct install of specific skill
|
|
354
358
|
const skill = discovered.find(s => s.name === options.skillName)
|
|
355
359
|
if (!skill) {
|
|
@@ -405,14 +409,16 @@ export async function runInstall(options: InstallOptions): Promise<void> {
|
|
|
405
409
|
renderDiff(comparison.diff, "current", "new")
|
|
406
410
|
}
|
|
407
411
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
+
if (!options.installAll) {
|
|
413
|
+
const update = await p.confirm({
|
|
414
|
+
message: `Update ${name}?`,
|
|
415
|
+
initialValue: true,
|
|
416
|
+
})
|
|
412
417
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
418
|
+
if (p.isCancel(update) || !update) {
|
|
419
|
+
console.log(` Skipping ${name}`)
|
|
420
|
+
continue
|
|
421
|
+
}
|
|
416
422
|
}
|
|
417
423
|
|
|
418
424
|
// Remove old and add new
|
|
@@ -474,6 +480,7 @@ export default defineCommand({
|
|
|
474
480
|
source: { type: "positional", description: "GitHub repo (user/repo) or local path", required: true },
|
|
475
481
|
ssh: { type: "boolean", description: "Use SSH for GitHub repos (for private repos)", default: false },
|
|
476
482
|
skill: { type: "string", description: "Install specific skill by name (skip selection)", required: false },
|
|
483
|
+
all: { type: "boolean", description: "Install all skills without prompts", default: false },
|
|
477
484
|
},
|
|
478
485
|
async run({ args }) {
|
|
479
486
|
await runInstall({
|
|
@@ -482,6 +489,7 @@ export default defineCommand({
|
|
|
482
489
|
registryPath: getRegistryPath(),
|
|
483
490
|
useSSH: args.ssh,
|
|
484
491
|
skillName: args.skill,
|
|
492
|
+
installAll: args.all,
|
|
485
493
|
onSelect: async (skills) => {
|
|
486
494
|
const result = await p.multiselect({
|
|
487
495
|
message: "Select skills to install:",
|