@cg3/equip 0.4.5 → 0.5.1
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 +16 -2
- 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
|
@@ -158,8 +158,17 @@ function spawnTool(pkg, command, extraArgs, toolName) {
|
|
|
158
158
|
env: { ...process.env, EQUIP_VERSION },
|
|
159
159
|
});
|
|
160
160
|
child.on("close", (code) => {
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
// Always reconcile state — install may have succeeded even if
|
|
162
|
+
// the tool exited non-zero (e.g. user cancelled a post-install prompt)
|
|
163
|
+
if (toolName) {
|
|
164
|
+
try {
|
|
165
|
+
const changed = reconcileState(toolName, pkg);
|
|
166
|
+
if (changed > 0) {
|
|
167
|
+
process.stderr.write(`\n equip: tracked ${toolName} on ${changed} platform${changed === 1 ? "" : "s"}\n`);
|
|
168
|
+
}
|
|
169
|
+
} catch (e) {
|
|
170
|
+
process.stderr.write(`\n[equip] state reconciliation failed: ${e.message}\n`);
|
|
171
|
+
}
|
|
163
172
|
}
|
|
164
173
|
process.exit(code || 0);
|
|
165
174
|
});
|
|
@@ -182,6 +191,8 @@ function reconcileState(toolName, pkg) {
|
|
|
182
191
|
const _fs = require("fs");
|
|
183
192
|
const _path = require("path");
|
|
184
193
|
|
|
194
|
+
let count = 0;
|
|
195
|
+
|
|
185
196
|
for (const [id, def] of PLATFORM_REGISTRY) {
|
|
186
197
|
// Quick check: is this platform present?
|
|
187
198
|
const dirFound = def.detection.dirs.some(fn => dirExists(fn()));
|
|
@@ -223,7 +234,10 @@ function reconcileState(toolName, pkg) {
|
|
|
223
234
|
} catch {}
|
|
224
235
|
|
|
225
236
|
trackInstall(toolName, pkg, id, record);
|
|
237
|
+
count++;
|
|
226
238
|
}
|
|
239
|
+
|
|
240
|
+
return count;
|
|
227
241
|
}
|
|
228
242
|
|
|
229
243
|
// ─── Main ───────────────────────────────────────────────────
|
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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"}
|