@cg3/equip 0.4.4 → 0.5.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/bin/equip.js +67 -4
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -55
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/bin/equip.js
CHANGED
|
@@ -142,27 +142,90 @@ function dispatchTool(alias, extraArgs) {
|
|
|
142
142
|
console.error(`Run "equip --help" for usage.`);
|
|
143
143
|
process.exit(1);
|
|
144
144
|
}
|
|
145
|
-
spawnTool(pkg, command, extraArgs);
|
|
145
|
+
spawnTool(pkg, command, extraArgs, null);
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
// For registered tools, the alias IS the tool name (e.g. "prior")
|
|
150
|
+
spawnTool(entry.package, entry.command, extraArgs, alias);
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
function spawnTool(pkg, command, extraArgs) {
|
|
153
|
+
function spawnTool(pkg, command, extraArgs, toolName) {
|
|
153
154
|
const npxCmd = process.platform === "win32" ? "npx.cmd" : "npx";
|
|
154
155
|
const child = spawn(npxCmd, ["-y", `${pkg}@latest`, command, ...extraArgs], {
|
|
155
156
|
stdio: "inherit",
|
|
156
157
|
shell: process.platform === "win32",
|
|
157
158
|
env: { ...process.env, EQUIP_VERSION },
|
|
158
159
|
});
|
|
159
|
-
child.on("close", (code) =>
|
|
160
|
+
child.on("close", (code) => {
|
|
161
|
+
if (code === 0 && toolName) {
|
|
162
|
+
try { reconcileState(toolName, pkg); } catch (e) { process.stderr.write(`[equip] state reconciliation failed: ${e.message}\n`); }
|
|
163
|
+
}
|
|
164
|
+
process.exit(code || 0);
|
|
165
|
+
});
|
|
160
166
|
child.on("error", (err) => {
|
|
161
167
|
console.error(`Failed to run ${pkg}: ${err.message}`);
|
|
162
168
|
process.exit(1);
|
|
163
169
|
});
|
|
164
170
|
}
|
|
165
171
|
|
|
172
|
+
/**
|
|
173
|
+
* After a tool finishes, scan platform configs and update state
|
|
174
|
+
* based on what's actually on disk. This ensures state is always
|
|
175
|
+
* accurate regardless of which equip version the tool used internally.
|
|
176
|
+
*/
|
|
177
|
+
function reconcileState(toolName, pkg) {
|
|
178
|
+
const { PLATFORM_REGISTRY } = require("../dist/lib/platforms");
|
|
179
|
+
const { readMcpEntry } = require("../dist/lib/mcp");
|
|
180
|
+
const { trackInstall } = require("../dist/lib/state");
|
|
181
|
+
const { dirExists, fileExists } = require("../dist/lib/detect");
|
|
182
|
+
const _fs = require("fs");
|
|
183
|
+
const _path = require("path");
|
|
184
|
+
|
|
185
|
+
for (const [id, def] of PLATFORM_REGISTRY) {
|
|
186
|
+
// Quick check: is this platform present?
|
|
187
|
+
const dirFound = def.detection.dirs.some(fn => dirExists(fn()));
|
|
188
|
+
const fileFound = def.detection.files.some(fn => fileExists(fn()));
|
|
189
|
+
const configPath = def.configPath();
|
|
190
|
+
if (!dirFound && !fileFound && !fileExists(configPath)) continue;
|
|
191
|
+
|
|
192
|
+
// Check if tool has an MCP entry on this platform
|
|
193
|
+
const entry = readMcpEntry(configPath, def.rootKey, toolName, def.configFormat);
|
|
194
|
+
if (!entry) continue;
|
|
195
|
+
|
|
196
|
+
// Build state record from what's on disk
|
|
197
|
+
const record = {
|
|
198
|
+
configPath,
|
|
199
|
+
transport: entry.command ? "stdio" : "http",
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// Check for rules
|
|
203
|
+
if (def.rulesPath) {
|
|
204
|
+
const rulesPath = def.rulesPath();
|
|
205
|
+
try {
|
|
206
|
+
const content = _fs.readFileSync(rulesPath, "utf-8");
|
|
207
|
+
const versionMatch = content.match(new RegExp(`<!-- ${toolName}:v([\\d.]+) -->`));
|
|
208
|
+
if (versionMatch) {
|
|
209
|
+
record.rulesPath = rulesPath;
|
|
210
|
+
record.rulesVersion = versionMatch[1];
|
|
211
|
+
}
|
|
212
|
+
} catch {}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Check for hooks (look for tool's hook directory)
|
|
216
|
+
const hookDir = _path.join(require("os").homedir(), `.${toolName}`, "hooks");
|
|
217
|
+
try {
|
|
218
|
+
const hookFiles = _fs.readdirSync(hookDir).filter(f => f.endsWith(".js"));
|
|
219
|
+
if (hookFiles.length > 0) {
|
|
220
|
+
record.hookDir = hookDir;
|
|
221
|
+
record.hookScripts = hookFiles;
|
|
222
|
+
}
|
|
223
|
+
} catch {}
|
|
224
|
+
|
|
225
|
+
trackInstall(toolName, pkg, id, record);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
166
229
|
// ─── Main ───────────────────────────────────────────────────
|
|
167
230
|
|
|
168
231
|
const cmd = process.argv[2];
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { createManualPlatform, platformName, resolvePlatformId, KNOWN_PLATFORMS,
|
|
|
4
4
|
import * as cli from "./lib/cli";
|
|
5
5
|
export interface EquipConfig {
|
|
6
6
|
name: string;
|
|
7
|
-
package?: string;
|
|
8
7
|
serverUrl?: string;
|
|
9
8
|
rules?: {
|
|
10
9
|
content: string;
|
|
@@ -26,7 +25,6 @@ export interface EquipConfig {
|
|
|
26
25
|
*/
|
|
27
26
|
declare class Equip {
|
|
28
27
|
name: string;
|
|
29
|
-
package: string;
|
|
30
28
|
serverUrl?: string;
|
|
31
29
|
rules: EquipConfig["rules"] | null;
|
|
32
30
|
stdio: EquipConfig["stdio"] | null;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAgC,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAA+D,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChP,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -53,13 +53,11 @@ Object.defineProperty(exports, "PLATFORM_REGISTRY", { enumerable: true, get: fun
|
|
|
53
53
|
Object.defineProperty(exports, "getPlatform", { enumerable: true, get: function () { return platforms_1.getPlatform; } });
|
|
54
54
|
const cli = __importStar(require("./lib/cli"));
|
|
55
55
|
exports.cli = cli;
|
|
56
|
-
const state_1 = require("./lib/state");
|
|
57
56
|
/**
|
|
58
57
|
* Equip — configure AI coding tools with your MCP server and behavioral rules.
|
|
59
58
|
*/
|
|
60
59
|
class Equip {
|
|
61
60
|
name;
|
|
62
|
-
package;
|
|
63
61
|
serverUrl;
|
|
64
62
|
rules;
|
|
65
63
|
stdio;
|
|
@@ -71,7 +69,6 @@ class Equip {
|
|
|
71
69
|
if (!config.serverUrl && !config.stdio)
|
|
72
70
|
throw new Error("Equip: serverUrl or stdio is required");
|
|
73
71
|
this.name = config.name;
|
|
74
|
-
this.package = config.package || config.name;
|
|
75
72
|
this.serverUrl = config.serverUrl;
|
|
76
73
|
this.rules = config.rules || null;
|
|
77
74
|
this.stdio = config.stdio || null;
|
|
@@ -91,27 +88,10 @@ class Equip {
|
|
|
91
88
|
installMcp(platform, apiKey, options = {}) {
|
|
92
89
|
const { transport = "http", dryRun = false } = options;
|
|
93
90
|
const config = this.buildConfig(platform.platform, apiKey, transport);
|
|
94
|
-
|
|
95
|
-
if (result.success && !dryRun) {
|
|
96
|
-
try {
|
|
97
|
-
(0, state_1.trackInstall)(this.name, this.package, platform.platform, {
|
|
98
|
-
transport,
|
|
99
|
-
configPath: platform.configPath,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
catch { /* state tracking is best-effort */ }
|
|
103
|
-
}
|
|
104
|
-
return result;
|
|
91
|
+
return (0, mcp_1.installMcp)(platform, this.name, config, { dryRun, serverUrl: this.serverUrl });
|
|
105
92
|
}
|
|
106
93
|
uninstallMcp(platform, dryRun = false) {
|
|
107
|
-
|
|
108
|
-
if (removed && !dryRun) {
|
|
109
|
-
try {
|
|
110
|
-
(0, state_1.trackUninstall)(this.name, platform.platform);
|
|
111
|
-
}
|
|
112
|
-
catch { }
|
|
113
|
-
}
|
|
114
|
-
return removed;
|
|
94
|
+
return (0, mcp_1.uninstallMcp)(platform, this.name, dryRun);
|
|
115
95
|
}
|
|
116
96
|
updateMcpKey(platform, apiKey, transport = "http") {
|
|
117
97
|
const config = this.buildConfig(platform.platform, apiKey, transport);
|
|
@@ -120,23 +100,7 @@ class Equip {
|
|
|
120
100
|
installRules(platform, options = {}) {
|
|
121
101
|
if (!this.rules)
|
|
122
102
|
return { action: "skipped" };
|
|
123
|
-
|
|
124
|
-
// Track state for any non-skip result, including "skipped" due to version match
|
|
125
|
-
// (we still want to record rulesPath so doctor can check it)
|
|
126
|
-
if (result.action !== "skipped" || platform.rulesPath) {
|
|
127
|
-
if (!options.dryRun) {
|
|
128
|
-
try {
|
|
129
|
-
(0, state_1.trackInstall)(this.name, this.package, platform.platform, {
|
|
130
|
-
configPath: platform.configPath,
|
|
131
|
-
transport: "http",
|
|
132
|
-
rulesVersion: this.rules.version,
|
|
133
|
-
rulesPath: platform.rulesPath || undefined,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
catch { }
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return result;
|
|
103
|
+
return (0, rules_1.installRules)(platform, { ...this.rules, dryRun: options.dryRun || false });
|
|
140
104
|
}
|
|
141
105
|
uninstallRules(platform, dryRun = false) {
|
|
142
106
|
if (!this.rules)
|
|
@@ -156,22 +120,7 @@ class Equip {
|
|
|
156
120
|
const opts = { ...options };
|
|
157
121
|
if (this.hookDir && !opts.hookDir)
|
|
158
122
|
opts.hookDir = this.hookDir;
|
|
159
|
-
|
|
160
|
-
// Track state whether newly installed or already present
|
|
161
|
-
const hookDir = result?.hookDir || opts.hookDir || this.hookDir;
|
|
162
|
-
const hookScripts = result?.scripts || this.hookDefs.map(d => d.name + ".js");
|
|
163
|
-
if (!opts.dryRun && hookDir) {
|
|
164
|
-
try {
|
|
165
|
-
(0, state_1.trackInstall)(this.name, this.package, platform.platform, {
|
|
166
|
-
configPath: platform.configPath,
|
|
167
|
-
transport: "http",
|
|
168
|
-
hookDir,
|
|
169
|
-
hookScripts,
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
catch { }
|
|
173
|
-
}
|
|
174
|
-
return result;
|
|
123
|
+
return (0, hooks_1.installHooks)(platform, this.hookDefs, opts);
|
|
175
124
|
}
|
|
176
125
|
uninstallHooks(platform, options = {}) {
|
|
177
126
|
if (!this.hookDefs)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,4GAA4G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5G,2CAA6B;AAC7B,uCAAyB;AAEzB,yCAA+C;AAC/C,mCAA4H;AAC5H,uCAA8F;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|