@cg3/equip 0.6.1 → 0.9.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 +11 -65
- package/demo/setup.js +85 -12
- package/dist/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/commands/doctor.d.ts.map +1 -1
- package/dist/lib/commands/doctor.js +14 -1
- package/dist/lib/commands/doctor.js.map +1 -1
- package/dist/lib/commands/update.d.ts.map +1 -1
- package/dist/lib/commands/update.js +2 -9
- package/dist/lib/commands/update.js.map +1 -1
- package/dist/lib/detect.d.ts.map +1 -1
- package/dist/lib/detect.js +2 -0
- package/dist/lib/detect.js.map +1 -1
- package/dist/lib/fs.d.ts +36 -0
- package/dist/lib/fs.d.ts.map +1 -0
- package/dist/lib/fs.js +137 -0
- package/dist/lib/fs.js.map +1 -0
- package/dist/lib/mcp.d.ts +2 -0
- package/dist/lib/mcp.d.ts.map +1 -1
- package/dist/lib/mcp.js +37 -55
- package/dist/lib/mcp.js.map +1 -1
- package/dist/lib/platforms.d.ts +2 -0
- package/dist/lib/platforms.d.ts.map +1 -1
- package/dist/lib/platforms.js +12 -0
- package/dist/lib/platforms.js.map +1 -1
- package/dist/lib/reconcile.d.ts +16 -0
- package/dist/lib/reconcile.d.ts.map +1 -0
- package/dist/lib/reconcile.js +126 -0
- package/dist/lib/reconcile.js.map +1 -0
- package/dist/lib/rules.d.ts.map +1 -1
- package/dist/lib/rules.js +4 -6
- package/dist/lib/rules.js.map +1 -1
- package/dist/lib/skills.d.ts +36 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +125 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/state.d.ts +6 -0
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +4 -12
- package/dist/lib/state.js.map +1 -1
- package/package.json +1 -1
- package/registry.json +5 -2
package/bin/equip.js
CHANGED
|
@@ -169,7 +169,17 @@ function spawnTool(pkg, command, extraArgs, toolName) {
|
|
|
169
169
|
// the tool exited non-zero (e.g. user cancelled a post-install prompt)
|
|
170
170
|
if (toolName) {
|
|
171
171
|
try {
|
|
172
|
-
const
|
|
172
|
+
const { reconcileState } = require("../dist/lib/reconcile");
|
|
173
|
+
const toolMeta = TOOLS[toolName] || {};
|
|
174
|
+
const hookDir = toolMeta.hookDir
|
|
175
|
+
? toolMeta.hookDir.replace(/^~/, require("os").homedir())
|
|
176
|
+
: undefined;
|
|
177
|
+
const changed = reconcileState({
|
|
178
|
+
toolName,
|
|
179
|
+
package: pkg,
|
|
180
|
+
marker: toolMeta.marker || toolName,
|
|
181
|
+
hookDir,
|
|
182
|
+
});
|
|
173
183
|
if (changed > 0) {
|
|
174
184
|
process.stderr.write(`\n equip: tracked ${toolName} on ${changed} platform${changed === 1 ? "" : "s"}\n`);
|
|
175
185
|
}
|
|
@@ -185,70 +195,6 @@ function spawnTool(pkg, command, extraArgs, toolName) {
|
|
|
185
195
|
});
|
|
186
196
|
}
|
|
187
197
|
|
|
188
|
-
/**
|
|
189
|
-
* After a tool finishes, scan platform configs and update state
|
|
190
|
-
* based on what's actually on disk. This ensures state is always
|
|
191
|
-
* accurate regardless of which equip version the tool used internally.
|
|
192
|
-
*/
|
|
193
|
-
function reconcileState(toolName, pkg) {
|
|
194
|
-
const { PLATFORM_REGISTRY } = require("../dist/lib/platforms");
|
|
195
|
-
const { readMcpEntry } = require("../dist/lib/mcp");
|
|
196
|
-
const { trackInstall } = require("../dist/lib/state");
|
|
197
|
-
const { dirExists, fileExists } = require("../dist/lib/detect");
|
|
198
|
-
const _fs = require("fs");
|
|
199
|
-
const _path = require("path");
|
|
200
|
-
|
|
201
|
-
let count = 0;
|
|
202
|
-
|
|
203
|
-
for (const [id, def] of PLATFORM_REGISTRY) {
|
|
204
|
-
// Quick check: is this platform present?
|
|
205
|
-
const dirFound = def.detection.dirs.some(fn => dirExists(fn()));
|
|
206
|
-
const fileFound = def.detection.files.some(fn => fileExists(fn()));
|
|
207
|
-
const configPath = def.configPath();
|
|
208
|
-
if (!dirFound && !fileFound && !fileExists(configPath)) continue;
|
|
209
|
-
|
|
210
|
-
// Check if tool has an MCP entry on this platform
|
|
211
|
-
const entry = readMcpEntry(configPath, def.rootKey, toolName, def.configFormat);
|
|
212
|
-
if (!entry) continue;
|
|
213
|
-
|
|
214
|
-
// Build state record from what's on disk
|
|
215
|
-
const record = {
|
|
216
|
-
configPath,
|
|
217
|
-
transport: entry.command ? "stdio" : "http",
|
|
218
|
-
};
|
|
219
|
-
|
|
220
|
-
// Check for rules (only on platforms that support writable rules)
|
|
221
|
-
if (def.rulesPath) {
|
|
222
|
-
const rulesPath = def.rulesPath();
|
|
223
|
-
try {
|
|
224
|
-
const content = _fs.readFileSync(rulesPath, "utf-8");
|
|
225
|
-
const versionMatch = content.match(new RegExp(`<!-- ${toolName}:v([0-9.]+) -->`));
|
|
226
|
-
if (versionMatch) {
|
|
227
|
-
record.rulesPath = rulesPath;
|
|
228
|
-
record.rulesVersion = versionMatch[1];
|
|
229
|
-
}
|
|
230
|
-
} catch {}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
// Check for hooks (only on platforms that support hooks)
|
|
234
|
-
if (def.hooks) {
|
|
235
|
-
const hookDir = _path.join(require("os").homedir(), `.${toolName}`, "hooks");
|
|
236
|
-
try {
|
|
237
|
-
const hookFiles = _fs.readdirSync(hookDir).filter(f => f.endsWith(".js"));
|
|
238
|
-
if (hookFiles.length > 0) {
|
|
239
|
-
record.hookDir = hookDir;
|
|
240
|
-
record.hookScripts = hookFiles;
|
|
241
|
-
}
|
|
242
|
-
} catch {}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
trackInstall(toolName, pkg, id, record);
|
|
246
|
-
count++;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
return count;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
198
|
// ─── Main ───────────────────────────────────────────────────
|
|
253
199
|
|
|
254
200
|
const cmd = process.argv[2];
|
package/demo/setup.js
CHANGED
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
// 1. Platform detection (which AI tools are installed?)
|
|
15
15
|
// 2. MCP server configuration (HTTP or stdio transport)
|
|
16
16
|
// 3. Behavioral rules installation (versioned, marker-based)
|
|
17
|
-
// 4.
|
|
18
|
-
// 5.
|
|
19
|
-
// 6.
|
|
17
|
+
// 4. Skills installation (SKILL.md files for agent discovery)
|
|
18
|
+
// 5. Lifecycle hooks (optional, platform-dependent)
|
|
19
|
+
// 6. Uninstallation (clean removal of everything it installed)
|
|
20
|
+
// 7. CLI output helpers (colors, prompts, clipboard)
|
|
20
21
|
//
|
|
21
22
|
// Everything is inline-documented. Copy this file as a starting
|
|
22
23
|
// point for your own tool's setup script.
|
|
@@ -120,6 +121,40 @@ const equip = new Equip({
|
|
|
120
121
|
// `,
|
|
121
122
|
// },
|
|
122
123
|
// ],
|
|
124
|
+
|
|
125
|
+
// Skills are optional. A skill is a SKILL.md file (Agent Skills
|
|
126
|
+
// spec) that agents auto-discover. Unlike MCP config and rules,
|
|
127
|
+
// the skill format is universal — same file works on all platforms.
|
|
128
|
+
skill: {
|
|
129
|
+
name: "lookup",
|
|
130
|
+
files: [
|
|
131
|
+
{
|
|
132
|
+
path: "SKILL.md",
|
|
133
|
+
content: `---
|
|
134
|
+
name: lookup
|
|
135
|
+
description: Look up Acme API docs for the current project's dependency version.
|
|
136
|
+
metadata:
|
|
137
|
+
author: acme-docs-demo
|
|
138
|
+
version: "${RULES_VERSION}"
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
# Acme Docs Lookup
|
|
142
|
+
|
|
143
|
+
Use this skill when working with Acme APIs or libraries.
|
|
144
|
+
|
|
145
|
+
## When to Use
|
|
146
|
+
- Before writing code that calls an Acme API
|
|
147
|
+
- When you see a deprecation warning from Acme
|
|
148
|
+
- When the user asks about Acme API signatures
|
|
149
|
+
|
|
150
|
+
## How to Use
|
|
151
|
+
1. Call the acme-docs MCP tool with the function name
|
|
152
|
+
2. The tool returns versioned docs matching the project's dependency
|
|
153
|
+
3. Use the returned signatures, not training data
|
|
154
|
+
`,
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
123
158
|
});
|
|
124
159
|
|
|
125
160
|
// ─── 5. Detect platforms (shared by install and uninstall) ───
|
|
@@ -155,7 +190,7 @@ function detectTargetPlatforms() {
|
|
|
155
190
|
async function runUninstall() {
|
|
156
191
|
cli.log(`\n${cli.BOLD}@cg3/equip demo — uninstall${cli.RESET}\n`);
|
|
157
192
|
|
|
158
|
-
cli.step(1,
|
|
193
|
+
cli.step(1, 4, "Detecting platforms");
|
|
159
194
|
const platforms = detectTargetPlatforms();
|
|
160
195
|
|
|
161
196
|
for (const p of platforms) {
|
|
@@ -163,7 +198,7 @@ async function runUninstall() {
|
|
|
163
198
|
}
|
|
164
199
|
|
|
165
200
|
// ── Remove MCP config ────────────────────────────────────
|
|
166
|
-
cli.step(2,
|
|
201
|
+
cli.step(2, 4, "Removing MCP config");
|
|
167
202
|
|
|
168
203
|
for (const p of platforms) {
|
|
169
204
|
const removed = equip.uninstallMcp(p);
|
|
@@ -175,7 +210,7 @@ async function runUninstall() {
|
|
|
175
210
|
}
|
|
176
211
|
|
|
177
212
|
// ── Remove behavioral rules ──────────────────────────────
|
|
178
|
-
cli.step(3,
|
|
213
|
+
cli.step(3, 4, "Removing behavioral rules");
|
|
179
214
|
|
|
180
215
|
for (const p of platforms) {
|
|
181
216
|
const removed = equip.uninstallRules(p);
|
|
@@ -186,6 +221,18 @@ async function runUninstall() {
|
|
|
186
221
|
}
|
|
187
222
|
}
|
|
188
223
|
|
|
224
|
+
// ── Remove skills ──────────────────────────────────────
|
|
225
|
+
cli.step(4, 4, "Removing skills");
|
|
226
|
+
|
|
227
|
+
for (const p of platforms) {
|
|
228
|
+
const removed = equip.uninstallSkill(p);
|
|
229
|
+
if (removed) {
|
|
230
|
+
cli.ok(`${platformName(p.platform)} → skill removed`);
|
|
231
|
+
} else {
|
|
232
|
+
cli.info(`${platformName(p.platform)} → no skill found`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
189
236
|
cli.log(`\n${cli.GREEN}${cli.BOLD}✓ Uninstall complete${cli.RESET}`);
|
|
190
237
|
cli.log(` Demo config for "${TOOL_NAME}" has been cleaned up.\n`);
|
|
191
238
|
}
|
|
@@ -215,7 +262,7 @@ async function runInstall() {
|
|
|
215
262
|
//
|
|
216
263
|
// You can also force a specific platform with createManualPlatform().
|
|
217
264
|
|
|
218
|
-
cli.step(1,
|
|
265
|
+
cli.step(1, 5, "Detecting platforms");
|
|
219
266
|
|
|
220
267
|
const platforms = detectTargetPlatforms();
|
|
221
268
|
|
|
@@ -229,7 +276,7 @@ async function runInstall() {
|
|
|
229
276
|
// In a real setup script, you'd prompt for or generate an
|
|
230
277
|
// API key here. For the demo, we use a placeholder.
|
|
231
278
|
|
|
232
|
-
cli.step(2,
|
|
279
|
+
cli.step(2, 5, "API key");
|
|
233
280
|
|
|
234
281
|
// Real example:
|
|
235
282
|
// const apiKey = await cli.prompt(" Enter your API key: ");
|
|
@@ -243,11 +290,11 @@ async function runInstall() {
|
|
|
243
290
|
// installMcp() handles all platform differences:
|
|
244
291
|
// - JSON vs TOML config formats
|
|
245
292
|
// - Different root keys (mcpServers vs servers vs mcp_servers)
|
|
246
|
-
// -
|
|
247
|
-
// -
|
|
293
|
+
// - Different URL fields (url vs serverUrl vs httpUrl)
|
|
294
|
+
// - Atomic file writes with crash safety
|
|
248
295
|
// - Windows path handling (cmd /c wrapper for stdio)
|
|
249
296
|
|
|
250
|
-
cli.step(3,
|
|
297
|
+
cli.step(3, 5, "Installing MCP config");
|
|
251
298
|
|
|
252
299
|
for (const p of platforms) {
|
|
253
300
|
const result = equip.installMcp(p, apiKey, { dryRun });
|
|
@@ -272,7 +319,7 @@ async function runInstall() {
|
|
|
272
319
|
// Platforms without a rules file (Cursor, VS Code) get the
|
|
273
320
|
// content copied to clipboard instead.
|
|
274
321
|
|
|
275
|
-
cli.step(4,
|
|
322
|
+
cli.step(4, 5, "Installing behavioral rules");
|
|
276
323
|
|
|
277
324
|
for (const p of platforms) {
|
|
278
325
|
const result = equip.installRules(p, { dryRun });
|
|
@@ -300,6 +347,32 @@ async function runInstall() {
|
|
|
300
347
|
}
|
|
301
348
|
}
|
|
302
349
|
|
|
350
|
+
// ── Step 5: Install skills ──────────────────────────────
|
|
351
|
+
//
|
|
352
|
+
// Skills are SKILL.md files (Agent Skills spec) that agents
|
|
353
|
+
// auto-discover from standard directories. Unlike MCP config,
|
|
354
|
+
// the skill format is universal — same file works on all
|
|
355
|
+
// platforms. Equip installs to each platform's native skill
|
|
356
|
+
// directory, or ~/.agents/skills/ for platforms without one.
|
|
357
|
+
|
|
358
|
+
cli.step(5, 5, "Installing skills");
|
|
359
|
+
|
|
360
|
+
for (const p of platforms) {
|
|
361
|
+
const result = equip.installSkill(p, { dryRun });
|
|
362
|
+
switch (result.action) {
|
|
363
|
+
case "created":
|
|
364
|
+
cli.ok(`${platformName(p.platform)} → skill installed`);
|
|
365
|
+
break;
|
|
366
|
+
case "skipped":
|
|
367
|
+
if (p.skillsPath) {
|
|
368
|
+
cli.info(`${platformName(p.platform)} → skill already current`);
|
|
369
|
+
} else {
|
|
370
|
+
cli.info(`${platformName(p.platform)} → no skills support`);
|
|
371
|
+
}
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
303
376
|
// ── Done ──────────────────────────────────────────────────
|
|
304
377
|
|
|
305
378
|
cli.log(`\n${cli.GREEN}${cli.BOLD}✓ Setup complete${cli.RESET}`);
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { parseRulesVersion, markerPatterns } from "./lib/rules";
|
|
|
2
2
|
import { type HookDefinition } from "./lib/hooks";
|
|
3
3
|
import { createManualPlatform, platformName, resolvePlatformId, KNOWN_PLATFORMS, PLATFORM_REGISTRY, getPlatform, type DetectedPlatform, type PlatformDefinition, type PlatformHttpShape, type PlatformHookCapabilities } from "./lib/platforms";
|
|
4
4
|
import * as cli from "./lib/cli";
|
|
5
|
+
import { type SkillConfig, type SkillFile } from "./lib/skills";
|
|
5
6
|
export interface EquipConfig {
|
|
6
7
|
name: string;
|
|
7
8
|
serverUrl?: string;
|
|
@@ -19,6 +20,7 @@ export interface EquipConfig {
|
|
|
19
20
|
};
|
|
20
21
|
hooks?: HookDefinition[];
|
|
21
22
|
hookDir?: string;
|
|
23
|
+
skill?: SkillConfig;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Equip — configure AI coding tools with your MCP server and behavioral rules.
|
|
@@ -30,6 +32,7 @@ declare class Equip {
|
|
|
30
32
|
stdio: EquipConfig["stdio"] | null;
|
|
31
33
|
hookDefs: HookDefinition[] | null;
|
|
32
34
|
hookDir: string;
|
|
35
|
+
skill: SkillConfig | null;
|
|
33
36
|
constructor(config: EquipConfig);
|
|
34
37
|
detect(): DetectedPlatform[];
|
|
35
38
|
buildConfig(platformId: string, apiKey: string, transport?: string): Record<string, unknown>;
|
|
@@ -68,7 +71,29 @@ declare class Equip {
|
|
|
68
71
|
hookDir?: string;
|
|
69
72
|
}): boolean;
|
|
70
73
|
supportsHooks(platform: DetectedPlatform): boolean;
|
|
74
|
+
installSkill(platform: DetectedPlatform, options?: {
|
|
75
|
+
dryRun?: boolean;
|
|
76
|
+
}): {
|
|
77
|
+
action: string;
|
|
78
|
+
};
|
|
79
|
+
uninstallSkill(platform: DetectedPlatform, dryRun?: boolean): boolean;
|
|
80
|
+
hasSkill(platform: DetectedPlatform): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Verify that a tool is correctly installed on a platform.
|
|
83
|
+
* Returns a structured result with per-check status.
|
|
84
|
+
*/
|
|
85
|
+
verify(platform: DetectedPlatform): VerifyResult;
|
|
86
|
+
}
|
|
87
|
+
export interface VerifyCheck {
|
|
88
|
+
name: string;
|
|
89
|
+
ok: boolean;
|
|
90
|
+
detail: string;
|
|
91
|
+
}
|
|
92
|
+
export interface VerifyResult {
|
|
93
|
+
platform: string;
|
|
94
|
+
ok: boolean;
|
|
95
|
+
checks: VerifyCheck[];
|
|
71
96
|
}
|
|
72
97
|
export { Equip, createManualPlatform, platformName, resolvePlatformId, KNOWN_PLATFORMS, PLATFORM_REGISTRY, getPlatform, parseRulesVersion, markerPatterns, cli, };
|
|
73
|
-
export type { DetectedPlatform, PlatformDefinition, PlatformHttpShape, PlatformHookCapabilities, HookDefinition };
|
|
98
|
+
export type { DetectedPlatform, PlatformDefinition, PlatformHttpShape, PlatformHookCapabilities, HookDefinition, SkillConfig, SkillFile };
|
|
74
99
|
//# sourceMappingURL=index.d.ts.map
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,6 +43,7 @@ const mcp_1 = require("./lib/mcp");
|
|
|
43
43
|
const rules_1 = require("./lib/rules");
|
|
44
44
|
Object.defineProperty(exports, "parseRulesVersion", { enumerable: true, get: function () { return rules_1.parseRulesVersion; } });
|
|
45
45
|
Object.defineProperty(exports, "markerPatterns", { enumerable: true, get: function () { return rules_1.markerPatterns; } });
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
46
47
|
const hooks_1 = require("./lib/hooks");
|
|
47
48
|
const platforms_1 = require("./lib/platforms");
|
|
48
49
|
Object.defineProperty(exports, "createManualPlatform", { enumerable: true, get: function () { return platforms_1.createManualPlatform; } });
|
|
@@ -53,6 +54,7 @@ Object.defineProperty(exports, "PLATFORM_REGISTRY", { enumerable: true, get: fun
|
|
|
53
54
|
Object.defineProperty(exports, "getPlatform", { enumerable: true, get: function () { return platforms_1.getPlatform; } });
|
|
54
55
|
const cli = __importStar(require("./lib/cli"));
|
|
55
56
|
exports.cli = cli;
|
|
57
|
+
const skills_1 = require("./lib/skills");
|
|
56
58
|
/**
|
|
57
59
|
* Equip — configure AI coding tools with your MCP server and behavioral rules.
|
|
58
60
|
*/
|
|
@@ -63,6 +65,7 @@ class Equip {
|
|
|
63
65
|
stdio;
|
|
64
66
|
hookDefs;
|
|
65
67
|
hookDir;
|
|
68
|
+
skill;
|
|
66
69
|
constructor(config) {
|
|
67
70
|
if (!config.name)
|
|
68
71
|
throw new Error("Equip: name is required");
|
|
@@ -74,6 +77,7 @@ class Equip {
|
|
|
74
77
|
this.stdio = config.stdio || null;
|
|
75
78
|
this.hookDefs = config.hooks || null;
|
|
76
79
|
this.hookDir = config.hookDir || path.join(os.homedir(), `.${config.name}`, "hooks");
|
|
80
|
+
this.skill = config.skill || null;
|
|
77
81
|
}
|
|
78
82
|
detect() {
|
|
79
83
|
return (0, detect_1.detectPlatforms)(this.name);
|
|
@@ -141,6 +145,79 @@ class Equip {
|
|
|
141
145
|
supportsHooks(platform) {
|
|
142
146
|
return !!this.hookDefs && this.hookDefs.length > 0 && !!(0, hooks_1.getHookCapabilities)(platform.platform);
|
|
143
147
|
}
|
|
148
|
+
installSkill(platform, options = {}) {
|
|
149
|
+
if (!this.skill)
|
|
150
|
+
return { action: "skipped" };
|
|
151
|
+
return (0, skills_1.installSkill)(platform, this.name, this.skill, options);
|
|
152
|
+
}
|
|
153
|
+
uninstallSkill(platform, dryRun = false) {
|
|
154
|
+
if (!this.skill)
|
|
155
|
+
return false;
|
|
156
|
+
return (0, skills_1.uninstallSkill)(platform, this.name, this.skill.name, dryRun);
|
|
157
|
+
}
|
|
158
|
+
hasSkill(platform) {
|
|
159
|
+
if (!this.skill)
|
|
160
|
+
return false;
|
|
161
|
+
return (0, skills_1.hasSkill)(platform, this.name, this.skill.name);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Verify that a tool is correctly installed on a platform.
|
|
165
|
+
* Returns a structured result with per-check status.
|
|
166
|
+
*/
|
|
167
|
+
verify(platform) {
|
|
168
|
+
const checks = [];
|
|
169
|
+
// Check MCP config entry
|
|
170
|
+
const mcpEntry = this.readMcp(platform);
|
|
171
|
+
checks.push({
|
|
172
|
+
name: "mcp",
|
|
173
|
+
ok: !!mcpEntry,
|
|
174
|
+
detail: mcpEntry ? "MCP config entry present" : "MCP config entry missing",
|
|
175
|
+
});
|
|
176
|
+
// Check rules (if configured and platform supports them)
|
|
177
|
+
if (this.rules && platform.rulesPath) {
|
|
178
|
+
let rulesOk = false;
|
|
179
|
+
let rulesDetail = "Rules file not found";
|
|
180
|
+
try {
|
|
181
|
+
const content = fs.readFileSync(platform.rulesPath, "utf-8");
|
|
182
|
+
const version = (0, rules_1.parseRulesVersion)(content, this.rules.marker);
|
|
183
|
+
if (version === this.rules.version) {
|
|
184
|
+
rulesOk = true;
|
|
185
|
+
rulesDetail = `Rules v${version} present`;
|
|
186
|
+
}
|
|
187
|
+
else if (version) {
|
|
188
|
+
rulesDetail = `Rules version mismatch: installed v${version}, expected v${this.rules.version}`;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
rulesDetail = "Rules marker block not found";
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch { /* file not readable */ }
|
|
195
|
+
checks.push({ name: "rules", ok: rulesOk, detail: rulesDetail });
|
|
196
|
+
}
|
|
197
|
+
// Check hooks (if configured and platform supports them)
|
|
198
|
+
if (this.hookDefs && this.hookDefs.length > 0 && this.supportsHooks(platform)) {
|
|
199
|
+
const hooksInstalled = this.hasHooks(platform);
|
|
200
|
+
checks.push({
|
|
201
|
+
name: "hooks",
|
|
202
|
+
ok: hooksInstalled,
|
|
203
|
+
detail: hooksInstalled ? `${this.hookDefs.length} hook${this.hookDefs.length === 1 ? "" : "s"} registered` : "Hooks not registered",
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
// Check skills (if configured and platform supports them)
|
|
207
|
+
if (this.skill && platform.skillsPath) {
|
|
208
|
+
const skillInstalled = this.hasSkill(platform);
|
|
209
|
+
checks.push({
|
|
210
|
+
name: "skills",
|
|
211
|
+
ok: skillInstalled,
|
|
212
|
+
detail: skillInstalled ? `Skill "${this.skill.name}" installed` : `Skill "${this.skill.name}" not found`,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
platform: platform.platform,
|
|
217
|
+
ok: checks.every(c => c.ok),
|
|
218
|
+
checks,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
144
221
|
}
|
|
145
222
|
exports.Equip = Equip;
|
|
146
223
|
//# sourceMappingURL=index.js.map
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/doctor.ts"],"names":[],"mappings":"AASA,wBAAgB,SAAS,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/doctor.ts"],"names":[],"mappings":"AASA,wBAAgB,SAAS,IAAI,IAAI,CA8JhC"}
|
|
@@ -139,13 +139,26 @@ function runDoctor() {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
+
// Check skills if tracked
|
|
143
|
+
let skillsOk = true;
|
|
144
|
+
if (record.skillsPath && record.skillName) {
|
|
145
|
+
checks++;
|
|
146
|
+
const skillMd = require("path").join(record.skillsPath, record.skillName, "SKILL.md");
|
|
147
|
+
if (!(0, detect_1.fileExists)(skillMd)) {
|
|
148
|
+
cli.warn(` ${def.name}: skill "${record.skillName}" missing (${sanitizePath(skillMd)})`);
|
|
149
|
+
issues++;
|
|
150
|
+
skillsOk = false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
142
153
|
// Summary line for this platform
|
|
143
154
|
const parts = ["config"];
|
|
144
155
|
if (record.rulesVersion && rulesOk)
|
|
145
156
|
parts.push(`rules v${record.rulesVersion}`);
|
|
146
157
|
if (record.hookScripts && record.hookScripts.length > 0 && hooksOk)
|
|
147
158
|
parts.push(`${record.hookScripts.length} hook${record.hookScripts.length === 1 ? "" : "s"}`);
|
|
148
|
-
if (
|
|
159
|
+
if (record.skillName && skillsOk)
|
|
160
|
+
parts.push(`skill "${record.skillName}"`);
|
|
161
|
+
if (rulesOk && hooksOk && skillsOk) {
|
|
149
162
|
cli.ok(` ${def.name}: ${parts.join(" + ")}`);
|
|
150
163
|
}
|
|
151
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/lib/commands/doctor.ts"],"names":[],"mappings":";AAAA,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAS7D,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/lib/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/update.ts"],"names":[],"mappings":"AAOA,wBAAgB,SAAS,IAAI,IAAI,CA2ChC"}
|
|
@@ -36,9 +36,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
exports.runUpdate = runUpdate;
|
|
38
38
|
const child_process_1 = require("child_process");
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
|
-
const path = __importStar(require("path"));
|
|
41
39
|
const state_1 = require("../state");
|
|
40
|
+
const fs_1 = require("../fs");
|
|
42
41
|
const cli = __importStar(require("../cli"));
|
|
43
42
|
function runUpdate() {
|
|
44
43
|
cli.log(`\n${cli.BOLD}equip update${cli.RESET}\n`);
|
|
@@ -82,13 +81,7 @@ function runUpdate() {
|
|
|
82
81
|
cli.log(`\n${cli.GREEN}${cli.BOLD}Update complete${cli.RESET}\n`);
|
|
83
82
|
}
|
|
84
83
|
function getInstalledVersion() {
|
|
85
|
-
|
|
86
|
-
const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "..", "..", "package.json"), "utf-8"));
|
|
87
|
-
return pkg.version;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
return "unknown";
|
|
91
|
-
}
|
|
84
|
+
return (0, fs_1.resolvePackageVersion)(__dirname);
|
|
92
85
|
}
|
|
93
86
|
function getGlobalVersion() {
|
|
94
87
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/lib/commands/update.ts"],"names":[],"mappings":";AAAA,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/lib/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/detect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKvE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7C;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKvE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7C;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA+BvE"}
|
package/dist/lib/detect.js
CHANGED
|
@@ -93,10 +93,12 @@ function detectPlatforms(serverName) {
|
|
|
93
93
|
continue;
|
|
94
94
|
const configPath = def.configPath();
|
|
95
95
|
const rulesPath = def.rulesPath ? def.rulesPath() : null;
|
|
96
|
+
const skillsPath = def.skillsPath ? def.skillsPath() : null;
|
|
96
97
|
platforms.push({
|
|
97
98
|
platform: def.id,
|
|
98
99
|
configPath,
|
|
99
100
|
rulesPath,
|
|
101
|
+
skillsPath,
|
|
100
102
|
existingMcp: serverName ? (0, mcp_1.readMcpEntry)(configPath, def.rootKey, serverName, def.configFormat) : null,
|
|
101
103
|
rootKey: def.rootKey,
|
|
102
104
|
configFormat: def.configFormat,
|
package/dist/lib/detect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,wDAAwD;AACxD,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUrB,8BAKC;AAED,8BAEC;AAED,gCAEC;AAWD,
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"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"}
|