bsmnt 0.6.1 → 0.6.2

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.
@@ -125,4 +125,20 @@ export declare function buildSkillInstallCommand(skillId: SkillId, options: {
125
125
  agentArg?: string;
126
126
  global?: boolean;
127
127
  }): string;
128
+ export interface GroupedSkillInstall {
129
+ source: string;
130
+ command: string;
131
+ skillIds: SkillId[];
132
+ }
133
+ /**
134
+ * Build install commands grouped by source repo, merging skills that share a
135
+ * source into a single `bunx skills add` invocation. Each `skills add` fetches
136
+ * its whole source repo from GitHub (~2s), so collapsing N skills from one repo
137
+ * into one command avoids re-fetching it N times. Source order follows first
138
+ * appearance in `skillIds` for deterministic output.
139
+ */
140
+ export declare function buildGroupedSkillInstallCommands(skillIds: readonly SkillId[], options: {
141
+ agentArg?: string;
142
+ global?: boolean;
143
+ }): GroupedSkillInstall[];
128
144
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CiC,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC;AAE1C,eAAO,MAAM,aAAa;;;QACf,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;IAEf,CAAC;AAEJ,eAAO,MAAM,cAAc,EAAE,SAAS,OAAO,EAQ5C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;CAagC,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAC;AAuDrD,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,OAAO,GACd,sBAAsB,CAExB;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,GACC,MAAM,CAeR"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CiC,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC;AAE1C,eAAO,MAAM,aAAa;;;QACf,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;;;;QAAP,OAAO;IAEf,CAAC;AAEJ,eAAO,MAAM,cAAc,EAAE,SAAS,OAAO,EAQ5C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;CAagC,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAC;AAuDrD,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,OAAO,GACd,sBAAsB,CAExB;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,GACC,MAAM,CAeR;AAED,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC/C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,GACC,mBAAmB,EAAE,CA+BvB"}
@@ -133,4 +133,43 @@ export function buildSkillInstallCommand(skillId, options) {
133
133
  args.push("-y");
134
134
  return `bunx skills add ${install.source}${args.length > 0 ? ` ${args.join(" ")}` : ""}`;
135
135
  }
136
+ /**
137
+ * Build install commands grouped by source repo, merging skills that share a
138
+ * source into a single `bunx skills add` invocation. Each `skills add` fetches
139
+ * its whole source repo from GitHub (~2s), so collapsing N skills from one repo
140
+ * into one command avoids re-fetching it N times. Source order follows first
141
+ * appearance in `skillIds` for deterministic output.
142
+ */
143
+ export function buildGroupedSkillInstallCommands(skillIds, options) {
144
+ const groups = new Map();
145
+ for (const skillId of skillIds) {
146
+ const install = getSkillInstallDefinition(skillId);
147
+ const existing = groups.get(install.source);
148
+ if (existing) {
149
+ existing.args.push(...install.args);
150
+ existing.ids.push(skillId);
151
+ }
152
+ else {
153
+ groups.set(install.source, {
154
+ args: [...install.args],
155
+ ids: [skillId],
156
+ });
157
+ }
158
+ }
159
+ const commands = [];
160
+ for (const [source, { args: groupArgs, ids }] of groups) {
161
+ const args = [...groupArgs];
162
+ if (options.agentArg)
163
+ args.push("-a", options.agentArg);
164
+ if (options.global)
165
+ args.push("-g");
166
+ args.push("-y");
167
+ commands.push({
168
+ source,
169
+ command: `bunx skills add ${source} ${args.join(" ")}`,
170
+ skillIds: ids,
171
+ });
172
+ }
173
+ return commands;
174
+ }
136
175
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/domain/skills.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-agent.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/create/setup-agent.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAStD,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvE,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,4CAA4C;IAC5C,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC;IAClB,kCAAkC;IAClC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CA6Ff"}
1
+ {"version":3,"file":"setup-agent.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/create/setup-agent.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAStD,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvE,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,4CAA4C;IAC5C,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC;IAClB,kCAAkC;IAClC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAeD;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAgGf"}
@@ -1,14 +1,26 @@
1
- import { execSync } from "node:child_process";
1
+ import { spawn } from "node:child_process";
2
2
  import path from "node:path";
3
3
  import fs from "fs-extra";
4
4
  import ora from "ora";
5
5
  import prompts from "prompts";
6
6
  import { AGENTS } from "../../domain/agents.js";
7
7
  import { CMS } from "../../domain/cms.js";
8
- import { BASE_SKILL_IDS, buildSkillInstallCommand, LOCAL_SKILLS, SKILLS, } from "../../domain/skills.js";
8
+ import { BASE_SKILL_IDS, buildGroupedSkillInstallCommands, LOCAL_SKILLS, SKILLS, } from "../../domain/skills.js";
9
9
  import { TEMPLATES } from "../../domain/templates.js";
10
10
  import { AGENT_SKILLS_DIR } from "../../paths.js";
11
11
  import { registerSanityMcp } from "../agents/register-sanity-mcp.js";
12
+ /** Run an install command, resolving to whether it exited successfully. */
13
+ function runInstallCommand(command, cwd) {
14
+ return new Promise((resolve) => {
15
+ const child = spawn(command, {
16
+ cwd,
17
+ stdio: "ignore",
18
+ shell: true,
19
+ });
20
+ child.on("error", () => resolve(false));
21
+ child.on("close", (code) => resolve(code === 0));
22
+ });
23
+ }
12
24
  /**
13
25
  * Set up AI agent skills and configuration in the target project.
14
26
  *
@@ -50,30 +62,27 @@ export async function setupAgent(targetDir, options) {
50
62
  }
51
63
  }
52
64
  const skillList = [...skillIds];
53
- const totalInstalls = selectedAgents.length * skillList.length;
54
- const failed = [];
55
- let installed = 0;
56
- const spinner = ora("Installing agent skills...").start();
57
- for (const agent of selectedAgents) {
65
+ // One task per (agent, source repo): skills sharing a source are merged into
66
+ // a single `skills add` so its repo is fetched once, and all tasks run
67
+ // concurrently since each is network-bound.
68
+ const tasks = selectedAgents.flatMap((agent) => {
58
69
  const { cliArg: agentArg, label: agentLabel } = AGENTS[agent];
59
- for (const skillId of skillList) {
60
- installed += 1;
61
- spinner.text = `Installing agent skills: ${SKILLS[skillId].name} for ${agentLabel} (${installed}/${totalInstalls})`;
62
- const command = buildSkillInstallCommand(skillId, {
63
- agentArg,
64
- });
65
- try {
66
- execSync(command, {
67
- cwd: targetDir,
68
- stdio: "ignore",
69
- });
70
- }
71
- catch {
72
- // Non-fatal: skills install may fail due to network issues
70
+ return buildGroupedSkillInstallCommands(skillList, { agentArg }).map((group) => ({ agentLabel, group }));
71
+ });
72
+ const failed = [];
73
+ let completed = 0;
74
+ const spinner = ora(`Installing agent skills (0/${tasks.length})...`).start();
75
+ await Promise.all(tasks.map(async ({ agentLabel, group }) => {
76
+ const ok = await runInstallCommand(group.command, targetDir);
77
+ completed += 1;
78
+ spinner.text = `Installing agent skills (${completed}/${tasks.length})...`;
79
+ if (!ok) {
80
+ // Non-fatal: skills install may fail due to network issues
81
+ for (const skillId of group.skillIds) {
73
82
  failed.push(`${SKILLS[skillId].name} (${agentLabel})`);
74
83
  }
75
84
  }
76
- }
85
+ }));
77
86
  if (failed.length > 0) {
78
87
  spinner.warn(`Agent skills installed, ${failed.length} skipped (network): ${failed.join(", ")}`);
79
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-agent.js","sourceRoot":"","sources":["../../../src/infrastructure/create/setup-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-agent.js","sourceRoot":"","sources":["../../../src/infrastructure/create/setup-agent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bsmnt",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "CLI to scaffold basement projects and add integrations",
6
6
  "type": "module",
@@ -87,30 +87,25 @@ if (existing.status === 0) {
87
87
  );
88
88
  }
89
89
 
90
- // 5. Create the item. The key is piped via a JSON template (stdin) so it never
91
- // lands in argv; category/title/tags are flags. `-` must be the first arg.
92
- const args = [
93
- "item",
94
- "create",
95
- "-",
96
- "--category",
97
- "Secure Note",
98
- "--title",
99
- title,
100
- "--vault",
101
- VAULT,
102
- "--format",
103
- "json",
104
- ];
105
- if (tag) args.push("--tags", tag);
90
+ // 5. Create from a complete JSON template piped via stdin (`-` first) so the key
91
+ // stays off argv. Flags like --category reset the field set, and fields need an `id`.
106
92
  const template = {
107
- fields: [{ label: "private-key", type: "CONCEALED", value: privateKey }],
93
+ title,
94
+ category: "SECURE_NOTE",
95
+ ...(tag ? { tags: [tag] } : {}),
96
+ fields: [
97
+ { id: "private-key", type: "CONCEALED", label: "private-key", value: privateKey },
98
+ ],
108
99
  };
109
- const created = spawnSync("op", args, {
110
- input: JSON.stringify(template),
111
- encoding: "utf-8",
112
- stdio: ["pipe", "pipe", "inherit"],
113
- });
100
+ const created = spawnSync(
101
+ "op",
102
+ ["item", "create", "-", "--vault", VAULT, "--format", "json"],
103
+ {
104
+ input: JSON.stringify(template),
105
+ encoding: "utf-8",
106
+ stdio: ["pipe", "pipe", "inherit"],
107
+ },
108
+ );
114
109
  if (created.status !== 0) fail("\nFailed to create the 1Password item.");
115
110
 
116
111
  // 6. Reference the item by id (stable; survives renames), falling back to title.