@cg3/equip 0.9.1 → 0.9.3

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/bin/equip.js CHANGED
@@ -59,7 +59,8 @@ function cmdHelp() {
59
59
  console.log("Usage: equip <command> [options]");
60
60
  console.log("");
61
61
  console.log("Commands:");
62
- console.log(" <tool> Install an MCP tool (e.g. equip prior)");
62
+ console.log(" <tool> Install a registered tool (e.g. equip prior)");
63
+ console.log(" <package> Install any npm package (e.g. equip my-docs)");
63
64
  console.log(" ./script.js Run a local setup script (for development)");
64
65
  console.log(" . Run current directory's package bin entry");
65
66
  console.log(" uninstall <tool> Remove an installed tool (alias: unequip)");
@@ -156,15 +157,14 @@ function dispatchTool(alias, extraArgs) {
156
157
  const entry = TOOLS[alias];
157
158
 
158
159
  if (!entry) {
159
- // No registry match — treat as a package name (e.g. "equip @scope/pkg setup")
160
+ // No registry match — treat as a package name
161
+ // equip my-docs setup → npx -y my-docs@latest setup
162
+ // equip my-docs → npx -y my-docs@latest setup (default command)
160
163
  const pkg = alias;
161
- const command = extraArgs.shift();
162
- if (!command) {
163
- console.error(`Unknown command: ${alias}`);
164
- console.error(`Run "equip --help" for usage.`);
165
- process.exit(1);
166
- }
167
- spawnTool(pkg, command, extraArgs, null);
164
+ const command = extraArgs.length > 0 ? extraArgs.shift() : "setup";
165
+ // Infer tool name from package (strip scope: @myorg/my-docs → my-docs)
166
+ const inferredName = pkg.includes("/") ? pkg.split("/").pop() : pkg;
167
+ spawnTool(pkg, command, extraArgs, inferredName);
168
168
  return;
169
169
  }
170
170
 
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/lib/reconcile.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAsEhE"}
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/lib/reconcile.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CA8EhE"}
@@ -64,15 +64,17 @@ function reconcileState(options) {
64
64
  const configPath = def.configPath();
65
65
  if (!dirFound && !fileFound && !(0, detect_1.fileExists)(configPath))
66
66
  continue;
67
- // Check if tool has an MCP entry on this platform
67
+ // Build state record from what's on disk.
68
+ // Check ALL artifact types — a tool may have only rules, only skills,
69
+ // only MCP config, or any combination. Track the platform if ANY artifact exists.
70
+ const record = { configPath };
71
+ let hasAnyArtifact = false;
72
+ // Check MCP config
68
73
  const entry = (0, mcp_1.readMcpEntry)(configPath, def.rootKey, toolName, def.configFormat);
69
- if (!entry)
70
- continue;
71
- // Build state record from what's on disk
72
- const record = {
73
- configPath,
74
- transport: entry.command ? "stdio" : "http",
75
- };
74
+ if (entry) {
75
+ record.transport = entry.command ? "stdio" : "http";
76
+ hasAnyArtifact = true;
77
+ }
76
78
  // Check for rules (only on platforms that have a writable rules path)
77
79
  if (def.rulesPath) {
78
80
  const rulesPath = def.rulesPath();
@@ -82,6 +84,7 @@ function reconcileState(options) {
82
84
  if (versionMatch) {
83
85
  record.rulesPath = rulesPath;
84
86
  record.rulesVersion = versionMatch[1];
87
+ hasAnyArtifact = true;
85
88
  }
86
89
  }
87
90
  catch { /* rules file may not exist */ }
@@ -93,6 +96,7 @@ function reconcileState(options) {
93
96
  if (hookFiles.length > 0) {
94
97
  record.hookDir = hookDir;
95
98
  record.hookScripts = hookFiles;
99
+ hasAnyArtifact = true;
96
100
  }
97
101
  }
98
102
  catch { /* hook dir may not exist */ }
@@ -114,10 +118,13 @@ function reconcileState(options) {
114
118
  if (skillWithMd) {
115
119
  record.skillsPath = toolSkillDir;
116
120
  record.skillName = skillWithMd;
121
+ hasAnyArtifact = true;
117
122
  }
118
123
  }
119
124
  catch { /* skill dir may not exist */ }
120
125
  }
126
+ if (!hasAnyArtifact)
127
+ continue;
121
128
  (0, state_1.trackInstall)(toolName, pkg, id, record);
122
129
  count++;
123
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/lib/reconcile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/lib/reconcile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cg3/equip",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "Universal MCP + behavioral rules installer for AI coding agents",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",