@cybedefend/vibedefend 1.4.4 → 1.4.5
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/README.md +39 -3
- package/dist/clients/claude-code.js +27 -0
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/codex.js +80 -8
- package/dist/clients/codex.js.map +1 -1
- package/dist/clients/cursor-guards-rules.js +26 -1
- package/dist/clients/cursor-guards-rules.js.map +1 -1
- package/dist/clients/cursor.js +16 -0
- package/dist/clients/cursor.js.map +1 -1
- package/dist/clients/unwire.js +57 -0
- package/dist/clients/unwire.js.map +1 -0
- package/dist/clients/vscode.js +29 -1
- package/dist/clients/vscode.js.map +1 -1
- package/dist/clients/windsurf.js +24 -1
- package/dist/clients/windsurf.js.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/doctor.js +3 -1
- package/dist/doctor.js.map +1 -1
- package/dist/global-cli.js +138 -0
- package/dist/global-cli.js.map +1 -0
- package/dist/hook-runner.js +154 -45
- package/dist/hooks/install.js +1 -0
- package/dist/hooks/install.js.map +1 -1
- package/dist/hooks/runtime/pre-compact.js +9 -2
- package/dist/hooks/runtime/pre-compact.js.map +1 -1
- package/dist/hooks/runtime/proposal-mode.js +75 -0
- package/dist/hooks/runtime/proposal-mode.js.map +1 -0
- package/dist/hooks/runtime/session-review.js +40 -20
- package/dist/hooks/runtime/session-review.js.map +1 -1
- package/dist/hooks/runtime/session-start.js +7 -1
- package/dist/hooks/runtime/session-start.js.map +1 -1
- package/dist/hooks/runtime/shell-writes.js +3 -2
- package/dist/hooks/runtime/shell-writes.js.map +1 -1
- package/dist/hooks/runtime/user-prompt-submit.js +12 -2
- package/dist/hooks/runtime/user-prompt-submit.js.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/install.js +23 -1
- package/dist/install.js.map +1 -1
- package/dist/prompts.js +18 -3
- package/dist/prompts.js.map +1 -1
- package/dist/self-update.js +5 -0
- package/dist/self-update.js.map +1 -1
- package/dist/uninstall.js +166 -0
- package/dist/uninstall.js.map +1 -0
- package/package.json +3 -3
package/dist/self-update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-update.js","sourceRoot":"","sources":["../src/self-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAUjC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAA6B,IAAI,GAAG,CAAC;IAC5D,YAAY;IACZ,aAAa;IACb,aAAa;CACd,CAAC,CAAC;AAcH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,yEAAyE;IACzE,wEAAwE;IACxE,oEAAoE;IAEpE,2EAA2E;IAC3E,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"self-update.js","sourceRoot":"","sources":["../src/self-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vibedefend uninstall` — remove what `vibedefend install` put on this
|
|
3
|
+
* machine:
|
|
4
|
+
*
|
|
5
|
+
* 1. every agent's hook entries + MCP server registration (each adapter's
|
|
6
|
+
* `uninstall()`; third-party hooks and servers are never touched);
|
|
7
|
+
* 2. VibeDefend's own stored credentials (keychain / file fallback);
|
|
8
|
+
* 3. `~/.cybedefend/` — runner, runtime config, caches, logs.
|
|
9
|
+
*
|
|
10
|
+
* Deliberately left in place:
|
|
11
|
+
* - `~/.cybedefend/regions.json` — written by the user, not by the installer;
|
|
12
|
+
* - repositories' committed `.cybedefend/config.json` links;
|
|
13
|
+
* - the CLI package itself: a running binary should not delete itself, so we
|
|
14
|
+
* print the matching `npm uninstall -g` (pnpm / yarn) command instead.
|
|
15
|
+
*
|
|
16
|
+
* Order matters: the MCP names come from `~/.cybedefend/runtime-config.json`
|
|
17
|
+
* and `regions.json`, so they are resolved before the directory goes.
|
|
18
|
+
*/
|
|
19
|
+
import { confirm as confirmImpl } from '@inquirer/prompts';
|
|
20
|
+
import { existsSync, readdirSync, readFileSync, rmSync } from 'node:fs';
|
|
21
|
+
import { join } from 'node:path';
|
|
22
|
+
import kleur from 'kleur';
|
|
23
|
+
import { clearAuth } from './auth/auth-store.js';
|
|
24
|
+
import { ALL_ADAPTERS } from './clients/registry.js';
|
|
25
|
+
import { REGIONS } from './config.js';
|
|
26
|
+
import { detectInstallMode, GLOBAL_MODES, resolveScriptPath, } from './self-update.js';
|
|
27
|
+
import { home, log } from './utils.js';
|
|
28
|
+
import { pkg } from './version.js';
|
|
29
|
+
/** Files under `~/.cybedefend/` the user wrote themselves — never deleted. */
|
|
30
|
+
const USER_OWNED_FILES = new Set(['regions.json']);
|
|
31
|
+
/**
|
|
32
|
+
* MCP server names end up in client config keys AND in a CLI argv
|
|
33
|
+
* (`claude mcp remove <name>`, through a shell on Windows) — so anything
|
|
34
|
+
* outside this charset is dropped, not escaped.
|
|
35
|
+
*/
|
|
36
|
+
const MCP_NAME_RE = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
|
|
37
|
+
/**
|
|
38
|
+
* MCP server names VibeDefend may have registered, from USER-trusted sources
|
|
39
|
+
* only: the built-in regions, the region recorded at install time
|
|
40
|
+
* (`runtime-config.json`) and the user-global `regions.json`. The cwd
|
|
41
|
+
* `vibedefend.regions.json` (which `loadCustomRegions` also reads) is
|
|
42
|
+
* deliberately excluded — a cloned repository could otherwise name ANY of the
|
|
43
|
+
* user's MCP servers for removal. See `hooks/runtime/trusted-api-base.ts`.
|
|
44
|
+
*/
|
|
45
|
+
export function trustedMcpNames(cybeDir = home('.cybedefend')) {
|
|
46
|
+
const names = REGIONS.map((r) => r.mcpName);
|
|
47
|
+
const runtime = readJsonQuiet(join(cybeDir, 'runtime-config.json'));
|
|
48
|
+
if (runtime && typeof runtime === 'object') {
|
|
49
|
+
names.push(runtime.region?.mcpName);
|
|
50
|
+
}
|
|
51
|
+
const userRegions = readJsonQuiet(join(cybeDir, 'regions.json'));
|
|
52
|
+
if (Array.isArray(userRegions)) {
|
|
53
|
+
for (const r of userRegions) {
|
|
54
|
+
if (r && typeof r === 'object')
|
|
55
|
+
names.push(r.mcpName);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const valid = names.filter((n) => typeof n === 'string' && MCP_NAME_RE.test(n));
|
|
59
|
+
return [...new Set(valid)];
|
|
60
|
+
}
|
|
61
|
+
export async function runUninstall(opts = {}, deps = {}) {
|
|
62
|
+
const adapters = deps.adapters ?? ALL_ADAPTERS;
|
|
63
|
+
const confirm = deps.confirm ?? confirmImpl;
|
|
64
|
+
const cybeDir = deps.cybeDir ?? home('.cybedefend');
|
|
65
|
+
const clearAuthFn = deps.clearAuth ?? clearAuth;
|
|
66
|
+
log.step('Uninstall VibeDefend');
|
|
67
|
+
log.hint('Removes, from every supported agent: the VibeDefend hooks and the CybeDefend MCP server.');
|
|
68
|
+
log.hint(`Also signs you out and deletes ${cybeDir} (your regions.json is kept).`);
|
|
69
|
+
if (!opts.yes) {
|
|
70
|
+
const ok = await confirm({ message: 'Remove VibeDefend from this machine?', default: false });
|
|
71
|
+
if (!ok) {
|
|
72
|
+
log.info('Nothing removed.');
|
|
73
|
+
return { cancelled: true, clients: [], removedPaths: [] };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Resolve the names BEFORE ~/.cybedefend (which records them) is deleted.
|
|
77
|
+
const mcpNames = trustedMcpNames(cybeDir);
|
|
78
|
+
const clients = [];
|
|
79
|
+
for (const adapter of adapters) {
|
|
80
|
+
try {
|
|
81
|
+
const result = adapter.uninstall({ mcpNames });
|
|
82
|
+
clients.push({ label: adapter.label, result });
|
|
83
|
+
reportClient(adapter.label, result);
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
const error = e instanceof Error ? e.message : String(e);
|
|
87
|
+
clients.push({ label: adapter.label, error });
|
|
88
|
+
log.warn(`${adapter.label}: could not clean up — ${error}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
for (const name of mcpNames) {
|
|
92
|
+
try {
|
|
93
|
+
clearAuthFn(name);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Best-effort: a stale keychain entry is not worth failing the uninstall.
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
log.ok('Signed out (VibeDefend credentials cleared).');
|
|
100
|
+
const removedPaths = removeCybeDir(cybeDir);
|
|
101
|
+
if (removedPaths.length > 0) {
|
|
102
|
+
log.ok(`Removed ${cybeDir}`);
|
|
103
|
+
if (existsSync(join(cybeDir, 'regions.json'))) {
|
|
104
|
+
log.hint(`Kept your custom regions: ${join(cybeDir, 'regions.json')}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
printFooter(deps.installMode ?? detectInstallMode(resolveScriptPath()));
|
|
108
|
+
return { cancelled: false, clients, removedPaths };
|
|
109
|
+
}
|
|
110
|
+
function reportClient(label, result) {
|
|
111
|
+
if (result.hookFiles.length === 0 && result.mcpRemoved.length === 0) {
|
|
112
|
+
log.hint(`${label}: nothing to remove.`);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const parts = [];
|
|
116
|
+
if (result.hookFiles.length > 0)
|
|
117
|
+
parts.push(`hooks removed from ${result.hookFiles.join(', ')}`);
|
|
118
|
+
if (result.mcpRemoved.length > 0)
|
|
119
|
+
parts.push(`MCP ${result.mcpRemoved.join(', ')} unregistered`);
|
|
120
|
+
log.ok(`${label}: ${parts.join('; ')}.`);
|
|
121
|
+
}
|
|
122
|
+
/** Delete everything under `dir` but the user-owned files; drop `dir` once empty. */
|
|
123
|
+
function removeCybeDir(dir) {
|
|
124
|
+
if (!existsSync(dir))
|
|
125
|
+
return [];
|
|
126
|
+
const removed = [];
|
|
127
|
+
for (const entry of readdirSync(dir)) {
|
|
128
|
+
if (USER_OWNED_FILES.has(entry))
|
|
129
|
+
continue;
|
|
130
|
+
const path = join(dir, entry);
|
|
131
|
+
rmSync(path, { recursive: true, force: true });
|
|
132
|
+
removed.push(path);
|
|
133
|
+
}
|
|
134
|
+
if (readdirSync(dir).length === 0) {
|
|
135
|
+
rmSync(dir, { recursive: true, force: true });
|
|
136
|
+
removed.push(dir);
|
|
137
|
+
}
|
|
138
|
+
return removed;
|
|
139
|
+
}
|
|
140
|
+
function printFooter(mode) {
|
|
141
|
+
console.log();
|
|
142
|
+
log.ok('VibeDefend uninstalled.');
|
|
143
|
+
const remove = mode === 'pnpm-global'
|
|
144
|
+
? 'pnpm remove -g'
|
|
145
|
+
: mode === 'yarn-global'
|
|
146
|
+
? 'yarn global remove'
|
|
147
|
+
: 'npm uninstall -g';
|
|
148
|
+
if (GLOBAL_MODES.has(mode)) {
|
|
149
|
+
log.info(`Last step — remove the CLI itself: ${kleur.bold(`${remove} ${pkg.name}`)}`);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
log.hint(`If the CLI is installed globally (\`npx … install\` does that), remove it with: ${remove} ${pkg.name}`);
|
|
153
|
+
}
|
|
154
|
+
log.hint('Repositories keep their committed `.cybedefend/config.json`, and any other repo ' +
|
|
155
|
+
'wired for Windsurf keeps its `.windsurfrules` block — delete those by hand if unwanted.');
|
|
156
|
+
console.log();
|
|
157
|
+
}
|
|
158
|
+
function readJsonQuiet(path) {
|
|
159
|
+
try {
|
|
160
|
+
return existsSync(path) ? JSON.parse(readFileSync(path, 'utf8')) : null;
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cybedefend/vibedefend",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "VibeDefend — one-shot installer for CybeDefend's MCP server and Claude Code / Cursor / Codex / Windsurf hooks (for AI coding agents).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"commander": "^12.1.0",
|
|
31
31
|
"kleur": "^4.1.5",
|
|
32
32
|
"re2-wasm": "^1.0.2",
|
|
33
|
-
"shell-quote": "^1.
|
|
33
|
+
"shell-quote": "^1.12.0",
|
|
34
34
|
"update-notifier": "^7.3.1",
|
|
35
35
|
"zod": "^3.25.76"
|
|
36
36
|
},
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@types/shell-quote": "^1.7.5",
|
|
40
40
|
"@types/update-notifier": "^6.0.8",
|
|
41
41
|
"esbuild": "^0.28.2",
|
|
42
|
-
"tsx": "^4.23.
|
|
42
|
+
"tsx": "^4.23.15",
|
|
43
43
|
"typescript": "^5.9.3",
|
|
44
44
|
"vitest": "^4.1.11"
|
|
45
45
|
},
|