@cybedefend/vibedefend 1.4.3 → 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/auth/auth-store.js +5 -6
- package/dist/auth/auth-store.js.map +1 -1
- 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/diagnostics.js +3 -1
- package/dist/diagnostics.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 +323 -151
- package/dist/hooks/install.js +1 -0
- package/dist/hooks/install.js.map +1 -1
- package/dist/hooks/runtime/fetch-rules.js +3 -1
- package/dist/hooks/runtime/fetch-rules.js.map +1 -1
- package/dist/hooks/runtime/hook-refresh-trigger.js +76 -0
- package/dist/hooks/runtime/hook-refresh-trigger.js.map +1 -0
- 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/resolve.js +89 -64
- package/dist/hooks/runtime/resolve.js.map +1 -1
- 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 +19 -7
- 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 +15 -3
- package/dist/hooks/runtime/user-prompt-submit.js.map +1 -1
- package/dist/index.js +23 -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/refresh-hooks.js +74 -0
- package/dist/refresh-hooks.js.map +1 -0
- 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/dist/update.js +4 -0
- package/dist/update.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -29,7 +29,14 @@ The installer is fully interactive, and signs you in **first**:
|
|
|
29
29
|
waits while you create or join one (Ctrl-C to skip and finish later).
|
|
30
30
|
4. **Pick which agents to wire** (auto-detected), confirm. That's it.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Run through `npx` (or `pnpm dlx` / `yarn dlx`), the installer first installs
|
|
33
|
+
the CLI globally (`npm install -g @cybedefend/vibedefend`), so the
|
|
34
|
+
`vibedefend` command is available afterwards and the hooks auto-update. If that
|
|
35
|
+
global install fails (e.g. a root-owned npm prefix), MCP + hooks are still set
|
|
36
|
+
up and the installer prints the command to run yourself. Pass `--no-global` to
|
|
37
|
+
skip it and only wire MCP + hooks.
|
|
38
|
+
|
|
39
|
+
Or install globally yourself first:
|
|
33
40
|
|
|
34
41
|
```bash
|
|
35
42
|
npm install -g @cybedefend/vibedefend && vibedefend install
|
|
@@ -70,6 +77,26 @@ pre-commit check that complements (never replaces) a full scan. It rides on the
|
|
|
70
77
|
Session Review hook, so it follows the same edits threshold. Decline it at
|
|
71
78
|
install, or set `"enableDiffScan": false` in `~/.cybedefend/runtime-config.json`.
|
|
72
79
|
|
|
80
|
+
**Non-blocking mode (autonomous agents, off by default):** by default the agent
|
|
81
|
+
pauses for you on business-rule proposals: an Accept / Reject picker for the
|
|
82
|
+
pending ones at session start, and a "Propose this rule? Yes / No" at the end of
|
|
83
|
+
a session. An autonomous agent such as Cyrus or a CI runner has nobody in the chat to answer, so turn on non-blocking mode
|
|
84
|
+
at install. The agent then never asks: pending proposals are left for a human to
|
|
85
|
+
accept or reject in the CybeDefend dashboard, and the end-of-session gap
|
|
86
|
+
analysis pushes its (at most one) proposal there directly. The agent never
|
|
87
|
+
accepts or rejects a proposal on its own. You can set it per process with
|
|
88
|
+
`CYBEDEFEND_NON_BLOCKING=1` (or `0` to force the prompts back), which takes
|
|
89
|
+
precedence over the installed setting. For example, set it only in the autonomous
|
|
90
|
+
agent's environment on a machine a human also codes on. You can also set
|
|
91
|
+
`"nonBlockingMode": true` in `~/.cybedefend/runtime-config.json`.
|
|
92
|
+
|
|
93
|
+
**Auto-propose mode** (also asked at install, off by default) is the middle
|
|
94
|
+
ground. The end-of-session gap analysis proposes its rule without asking first,
|
|
95
|
+
but you still accept or reject pending proposals at the next session start.
|
|
96
|
+
It works the same way: `CYBEDEFEND_AUTO_PROPOSE=1` (or `0`) takes precedence
|
|
97
|
+
over `"autoProposeMode"` in `~/.cybedefend/runtime-config.json`. Non-blocking
|
|
98
|
+
mode supersedes it.
|
|
99
|
+
|
|
73
100
|
Unchecked agents stay untouched. Re-run `vibedefend install` later to
|
|
74
101
|
toggle any on or off.
|
|
75
102
|
|
|
@@ -158,11 +185,20 @@ After that, updates are hands-off (or one `vibedefend update`) as above.
|
|
|
158
185
|
## Uninstalling
|
|
159
186
|
|
|
160
187
|
```bash
|
|
161
|
-
vibedefend uninstall
|
|
162
|
-
# Then drop the global package
|
|
188
|
+
vibedefend uninstall # asks for confirmation; --yes to skip
|
|
189
|
+
# Then drop the global package (the command prints the exact one for npm / pnpm / yarn):
|
|
163
190
|
npm uninstall -g @cybedefend/vibedefend
|
|
164
191
|
```
|
|
165
192
|
|
|
193
|
+
`uninstall` removes, from every supported agent, the VibeDefend hook entries
|
|
194
|
+
and the CybeDefend MCP server registration — hooks and MCP servers that aren't
|
|
195
|
+
ours are left untouched. It also clears VibeDefend's stored credentials and
|
|
196
|
+
deletes `~/.cybedefend/`, keeping only your own `~/.cybedefend/regions.json`.
|
|
197
|
+
Repositories keep their committed `.cybedefend/config.json`. A Windsurf
|
|
198
|
+
`.windsurfrules` block is removed from the current directory only: in any other
|
|
199
|
+
repo you wired for Windsurf, delete it by hand. Codex's `[features] hooks = true`
|
|
200
|
+
flag stays set, since other hooks may rely on it.
|
|
201
|
+
|
|
166
202
|
## Sibling: `cybedefend-cli`
|
|
167
203
|
|
|
168
204
|
[`cybedefend-cli`](https://github.com/CybeDefend/cybedefend-cli) is the
|
package/dist/auth/auth-store.js
CHANGED
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
* password blob, so all PKCE / OIDC state travels with it. On macOS the OS
|
|
13
13
|
* provides the encryption; on Linux the file permissions are the only control.
|
|
14
14
|
*
|
|
15
|
-
* Service name: "Codex MCP Credentials"
|
|
16
|
-
* `
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* the migration period.
|
|
15
|
+
* Service name: "Codex MCP Credentials", account "<mcpName>|vibedefend".
|
|
16
|
+
* `resolveToken` (resolve.ts) reads this bundle through `loadAuth`, by
|
|
17
|
+
* exact account — never through a service-wide lookup, which returns
|
|
18
|
+
* whichever entry of the service comes first (BACK-173).
|
|
20
19
|
*/
|
|
21
20
|
import { execFileSync } from 'node:child_process';
|
|
22
21
|
import { homedir } from 'node:os';
|
|
@@ -24,7 +23,7 @@ import { join } from 'node:path';
|
|
|
24
23
|
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync, } from 'node:fs';
|
|
25
24
|
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
26
25
|
const KEYCHAIN_SERVICE = 'Codex MCP Credentials';
|
|
27
|
-
/** Account shape: "<mcpName>|vibedefend"
|
|
26
|
+
/** Account shape: "<mcpName>|vibedefend". */
|
|
28
27
|
function accountFor(mcpName) {
|
|
29
28
|
return `${mcpName}|vibedefend`;
|
|
30
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/auth/auth-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/auth/auth-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
13
13
|
import { home, log, readJson, run, which, writeJson } from '../utils.js';
|
|
14
14
|
import { hookCommand, textReferencesHookRunner, isVibedefendOwnedHookCommand, } from '../hooks/install.js';
|
|
15
15
|
import { probeBinaryVersion } from './detect.js';
|
|
16
|
+
import { dropFromEventArrays, editJsonFile } from './unwire.js';
|
|
16
17
|
const CLAUDE_SETTINGS = home('.claude', 'settings.json');
|
|
17
18
|
function detect() {
|
|
18
19
|
if (which('claude') === null) {
|
|
@@ -163,6 +164,31 @@ function inspect(region) {
|
|
|
163
164
|
}
|
|
164
165
|
return { hooksWired, mcpRegistered };
|
|
165
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Drop our entries from every hook event in `~/.claude/settings.json`, then
|
|
169
|
+
* `claude mcp remove <name> --scope user` for each name (the scope
|
|
170
|
+
* `registerMcp` writes to). A non-zero exit means "not registered" (or no
|
|
171
|
+
* `claude` CLI) and is not an error.
|
|
172
|
+
*/
|
|
173
|
+
function uninstall(opts) {
|
|
174
|
+
const hooksRemoved = editJsonFile(CLAUDE_SETTINGS, (settings) => {
|
|
175
|
+
if (!settings.hooks || typeof settings.hooks !== 'object')
|
|
176
|
+
return false;
|
|
177
|
+
const hooks = settings.hooks;
|
|
178
|
+
const removed = dropFromEventArrays(hooks, dropOurs);
|
|
179
|
+
if (removed && Object.keys(hooks).length === 0)
|
|
180
|
+
delete settings.hooks;
|
|
181
|
+
return removed;
|
|
182
|
+
});
|
|
183
|
+
const runCommand = opts.runCommand ??
|
|
184
|
+
((cmd, args) => which(cmd) === null
|
|
185
|
+
? 1
|
|
186
|
+
: // `claude` is a `.cmd` shim on Windows — needs a shell to resolve.
|
|
187
|
+
// Safe: `mcpNames` are validated against a strict charset upstream.
|
|
188
|
+
run(cmd, args, { silent: true, shell: process.platform === 'win32' }));
|
|
189
|
+
const mcpRemoved = opts.mcpNames.filter((name) => runCommand('claude', ['mcp', 'remove', name, '--scope', 'user']) === 0);
|
|
190
|
+
return { hookFiles: hooksRemoved ? [CLAUDE_SETTINGS] : [], mcpRemoved };
|
|
191
|
+
}
|
|
166
192
|
export const claudeCodeAdapter = {
|
|
167
193
|
id: 'claude-code',
|
|
168
194
|
label: 'Claude Code',
|
|
@@ -171,6 +197,7 @@ export const claudeCodeAdapter = {
|
|
|
171
197
|
writeSettings,
|
|
172
198
|
registerMcp,
|
|
173
199
|
inspect,
|
|
200
|
+
uninstall,
|
|
174
201
|
};
|
|
175
202
|
/**
|
|
176
203
|
* Cross-platform sanity gate (used by the installer banner).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"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"}
|
package/dist/clients/codex.js
CHANGED
|
@@ -30,6 +30,7 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
|
30
30
|
import { dirname } from 'node:path';
|
|
31
31
|
import { home, log, readJson, writeJson, which } from '../utils.js';
|
|
32
32
|
import { hookCommand, textReferencesHookRunner, isVibedefendOwnedHookCommand, } from '../hooks/install.js';
|
|
33
|
+
import { dropFromEventArrays, editJsonFile } from './unwire.js';
|
|
33
34
|
import { configDirExists, probeBinaryVersion, } from './detect.js';
|
|
34
35
|
const CODEX_HOOKS = home('.codex', 'hooks.json');
|
|
35
36
|
const CODEX_CONFIG_TOML = home('.codex', 'config.toml');
|
|
@@ -151,6 +152,29 @@ export function ensureCodexFeatureFlag(configPath = CODEX_CONFIG_TOML) {
|
|
|
151
152
|
writeFileSync(configPath, content);
|
|
152
153
|
return true;
|
|
153
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* The table a TOML header line opens — `[a.b]` / `[[a.b]]` → `a.b`, trailing
|
|
157
|
+
* comment allowed — or null when the line is no table header (a multi-line
|
|
158
|
+
* array's continuation such as `[1, 2],` is not one). Callers compare the
|
|
159
|
+
* result as a plain string: no regex is ever built from a server name
|
|
160
|
+
* (CWE-1333).
|
|
161
|
+
*/
|
|
162
|
+
function tomlTableName(line) {
|
|
163
|
+
const m = /^\[\[?([^[\],]+)\]\]?\s*(?:#.*)?$/.exec(line.trim());
|
|
164
|
+
return m ? m[1].trim() : null;
|
|
165
|
+
}
|
|
166
|
+
/** Offset + length of the `[mcp_servers.<name>]` header line, or null. */
|
|
167
|
+
function findMcpServerHeader(content, mcpName) {
|
|
168
|
+
const table = `mcp_servers.${mcpName}`;
|
|
169
|
+
let offset = 0;
|
|
170
|
+
for (const line of content.split('\n')) {
|
|
171
|
+
if (tomlTableName(line) === table) {
|
|
172
|
+
return { index: offset, length: line.replace(/\r$/, '').length };
|
|
173
|
+
}
|
|
174
|
+
offset += line.length + 1;
|
|
175
|
+
}
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
154
178
|
/**
|
|
155
179
|
* Register the CybeDefend MCP server under `[mcp_servers.<name>]` in
|
|
156
180
|
* `~/.codex/config.toml`. Idempotent — if the same header already exists,
|
|
@@ -166,11 +190,10 @@ export function ensureCodexFeatureFlag(configPath = CODEX_CONFIG_TOML) {
|
|
|
166
190
|
export function ensureCodexMcpServer(configPath, region) {
|
|
167
191
|
let content = existsSync(configPath) ? readFileSync(configPath, 'utf8') : '';
|
|
168
192
|
const headerLine = `[mcp_servers.${region.mcpName}]`;
|
|
169
|
-
// Locate the header
|
|
170
|
-
//
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
if (headerMatch === null || headerMatch.index === undefined) {
|
|
193
|
+
// Locate the header as a whole line (avoids accidental match inside a
|
|
194
|
+
// comment or inside another key's value).
|
|
195
|
+
const headerMatch = findMcpServerHeader(content, region.mcpName);
|
|
196
|
+
if (headerMatch === null) {
|
|
174
197
|
// Not found — append a fresh block.
|
|
175
198
|
if (content.length > 0 && !content.endsWith('\n'))
|
|
176
199
|
content += '\n';
|
|
@@ -181,8 +204,7 @@ export function ensureCodexMcpServer(configPath, region) {
|
|
|
181
204
|
}
|
|
182
205
|
// Slice out the existing block: from the header to either the next
|
|
183
206
|
// `\n[` (start of another table) or end of file.
|
|
184
|
-
const
|
|
185
|
-
const headerEnd = headerStart + headerMatch[0].length;
|
|
207
|
+
const headerEnd = headerMatch.index + headerMatch.length;
|
|
186
208
|
const nextHeaderRelative = content.slice(headerEnd).search(/\n\[/);
|
|
187
209
|
const blockEnd = nextHeaderRelative === -1 ? content.length : headerEnd + nextHeaderRelative;
|
|
188
210
|
const body = content.slice(headerEnd, blockEnd);
|
|
@@ -208,6 +230,35 @@ export function ensureCodexMcpServer(configPath, region) {
|
|
|
208
230
|
writeFileSync(configPath, newContent);
|
|
209
231
|
return { added: false, updated: true };
|
|
210
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Inverse of {@link ensureCodexMcpServer}: delete the `[mcp_servers.<name>]`
|
|
235
|
+
* table — and any `[mcp_servers.<name>.<sub>]` table under it, which would
|
|
236
|
+
* otherwise re-create a url-less server entry — from `config.toml`. Other
|
|
237
|
+
* tables and comments are kept byte-for-byte. Returns whether the file changed.
|
|
238
|
+
*
|
|
239
|
+
* Exported for tests.
|
|
240
|
+
*/
|
|
241
|
+
export function removeCodexMcpServer(configPath, mcpName) {
|
|
242
|
+
if (!existsSync(configPath))
|
|
243
|
+
return false;
|
|
244
|
+
const content = readFileSync(configPath, 'utf8');
|
|
245
|
+
const table = `mcp_servers.${mcpName}`;
|
|
246
|
+
let skipping = false;
|
|
247
|
+
const kept = [];
|
|
248
|
+
for (const line of content.split('\n')) {
|
|
249
|
+
const name = tomlTableName(line);
|
|
250
|
+
if (name !== null)
|
|
251
|
+
skipping = name === table || name.startsWith(`${table}.`);
|
|
252
|
+
if (!skipping)
|
|
253
|
+
kept.push(line);
|
|
254
|
+
}
|
|
255
|
+
if (kept.length === content.split('\n').length)
|
|
256
|
+
return false;
|
|
257
|
+
// The block we append is preceded by a blank line — don't leave a run of them.
|
|
258
|
+
const next = kept.join('\n').replace(/(\r?\n){3,}/g, '\n\n').replace(/\s+$/, '');
|
|
259
|
+
writeFileSync(configPath, next.length > 0 ? next + '\n' : '');
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
211
262
|
function registerMcp(opts) {
|
|
212
263
|
log.step(`Registering MCP "${opts.region.mcpName}" in Codex`);
|
|
213
264
|
log.hint(`URL: ${opts.region.mcpUrl}`);
|
|
@@ -371,7 +422,8 @@ function inspect(region) {
|
|
|
371
422
|
let mcpRegistered = false;
|
|
372
423
|
try {
|
|
373
424
|
if (existsSync(CODEX_CONFIG_TOML)) {
|
|
374
|
-
mcpRegistered =
|
|
425
|
+
mcpRegistered =
|
|
426
|
+
findMcpServerHeader(readFileSync(CODEX_CONFIG_TOML, 'utf8'), region.mcpName) !== null;
|
|
375
427
|
}
|
|
376
428
|
}
|
|
377
429
|
catch {
|
|
@@ -379,6 +431,25 @@ function inspect(region) {
|
|
|
379
431
|
}
|
|
380
432
|
return { hooksWired, mcpRegistered };
|
|
381
433
|
}
|
|
434
|
+
/**
|
|
435
|
+
* Drop our entries from `~/.codex/hooks.json` (both nested and legacy flat
|
|
436
|
+
* shapes, via `dropOurs`) and our `[mcp_servers.*]` tables from
|
|
437
|
+
* `config.toml`. `[features].hooks = true` stays: it is a global switch other
|
|
438
|
+
* hooks may rely on, and it is inert with no hooks configured.
|
|
439
|
+
*/
|
|
440
|
+
function uninstall(opts) {
|
|
441
|
+
const hooksRemoved = editJsonFile(CODEX_HOOKS, (file) => {
|
|
442
|
+
if (!file.hooks || typeof file.hooks !== 'object')
|
|
443
|
+
return false;
|
|
444
|
+
const hooks = file.hooks;
|
|
445
|
+
const removed = dropFromEventArrays(hooks, dropOurs);
|
|
446
|
+
if (removed && Object.keys(hooks).length === 0)
|
|
447
|
+
delete file.hooks;
|
|
448
|
+
return removed;
|
|
449
|
+
});
|
|
450
|
+
const mcpRemoved = opts.mcpNames.filter((name) => removeCodexMcpServer(CODEX_CONFIG_TOML, name));
|
|
451
|
+
return { hookFiles: hooksRemoved ? [CODEX_HOOKS] : [], mcpRemoved };
|
|
452
|
+
}
|
|
382
453
|
export const codexAdapter = {
|
|
383
454
|
id: 'codex',
|
|
384
455
|
label: 'OpenAI Codex',
|
|
@@ -388,5 +459,6 @@ export const codexAdapter = {
|
|
|
388
459
|
registerMcp,
|
|
389
460
|
postRegister,
|
|
390
461
|
inspect,
|
|
462
|
+
uninstall,
|
|
391
463
|
};
|
|
392
464
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/clients/codex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/clients/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* project ID at injection time so the model can reference the correct
|
|
17
17
|
* project in MCP tool calls.
|
|
18
18
|
*/
|
|
19
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
19
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync } from 'node:fs';
|
|
20
20
|
import { dirname } from 'node:path';
|
|
21
21
|
/** Sentinel string that identifies our block — used for idempotency checks. */
|
|
22
22
|
const GUARD_SENTINEL = '## VibeDefend Action Guards';
|
|
@@ -91,4 +91,29 @@ export function appendGuardSnippetIdempotent(filePath, snippet, projectId) {
|
|
|
91
91
|
// Append (existing content + snippet)
|
|
92
92
|
writeFileSync(filePath, existing + finalSnippet, 'utf8');
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Inverse of {@link appendGuardSnippetIdempotent}: cut our block — from the
|
|
96
|
+
* sentinel heading through its closing `Project ID for cybe_guards_check
|
|
97
|
+
* calls:` line, plus the blank lines we prepended — out of a rules file.
|
|
98
|
+
* Deletes the file when nothing else is left in it. A block the user edited
|
|
99
|
+
* past recognition (closing line gone) is left alone. Returns whether the file
|
|
100
|
+
* changed.
|
|
101
|
+
*/
|
|
102
|
+
export function removeGuardSnippet(filePath) {
|
|
103
|
+
if (!existsSync(filePath))
|
|
104
|
+
return false;
|
|
105
|
+
const existing = readFileSync(filePath, 'utf8');
|
|
106
|
+
const sentinel = GUARD_SENTINEL.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
107
|
+
// `(?:\r?\n){0,2}` = exactly the two newlines the snippet starts with, so
|
|
108
|
+
// the user's own trailing newline survives.
|
|
109
|
+
const block = new RegExp(`(?:\\r?\\n){0,2}${sentinel}\\r?\\n[\\s\\S]*?Project ID for cybe_guards_check calls:[^\\n]*\\n?`);
|
|
110
|
+
const next = existing.replace(block, '');
|
|
111
|
+
if (next === existing)
|
|
112
|
+
return false;
|
|
113
|
+
if (next.trim().length === 0)
|
|
114
|
+
rmSync(filePath, { force: true });
|
|
115
|
+
else
|
|
116
|
+
writeFileSync(filePath, next, 'utf8');
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
94
119
|
//# sourceMappingURL=cursor-guards-rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-guards-rules.js","sourceRoot":"","sources":["../../src/clients/cursor-guards-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor-guards-rules.js","sourceRoot":"","sources":["../../src/clients/cursor-guards-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;EAEnC,cAAc;;;;;;;;;;;;CAYf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;EAErC,cAAc;;;;;;;;;;;;CAYf,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAgB,EAChB,OAAe,EACf,SAAiB;IAEjB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC;IAEP,+CAA+C;IAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO;IAE9C,wCAAwC;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAClC,0BAA0B,EAC1B,SAAS,CACV,CAAC;IAEF,iCAAiC;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,sCAAsC;IACtC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACvE,0EAA0E;IAC1E,4CAA4C;IAC5C,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,mBAAmB,QAAQ,qEAAqE,CACjG,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;QAC3D,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/clients/cursor.js
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
import { existsSync, readFileSync } from 'node:fs';
|
|
28
28
|
import { home, log, readJson, writeJson } from '../utils.js';
|
|
29
29
|
import { hookCommand, textReferencesHookRunner, isVibedefendOwnedHookCommand, } from '../hooks/install.js';
|
|
30
|
+
import { deleteKeys, dropFromEventArrays, editJsonFile } from './unwire.js';
|
|
30
31
|
import { configDirExists, probeBinaryVersion, versionAtLeast, } from './detect.js';
|
|
31
32
|
const CURSOR_HOOKS = home('.cursor', 'hooks.json');
|
|
32
33
|
const CURSOR_MCP = home('.cursor', 'mcp.json');
|
|
@@ -160,6 +161,20 @@ function inspect(region) {
|
|
|
160
161
|
}
|
|
161
162
|
return { hooksWired, mcpRegistered };
|
|
162
163
|
}
|
|
164
|
+
/** Drop our entries from `~/.cursor/hooks.json` and our servers from `~/.cursor/mcp.json`. */
|
|
165
|
+
function uninstall(opts) {
|
|
166
|
+
const hooksRemoved = editJsonFile(CURSOR_HOOKS, (file) => {
|
|
167
|
+
if (!file.hooks || typeof file.hooks !== 'object')
|
|
168
|
+
return false;
|
|
169
|
+
return dropFromEventArrays(file.hooks, dropOurs);
|
|
170
|
+
});
|
|
171
|
+
let mcpRemoved = [];
|
|
172
|
+
editJsonFile(CURSOR_MCP, (file) => {
|
|
173
|
+
mcpRemoved = deleteKeys(file.mcpServers, opts.mcpNames);
|
|
174
|
+
return mcpRemoved.length > 0;
|
|
175
|
+
});
|
|
176
|
+
return { hookFiles: hooksRemoved ? [CURSOR_HOOKS] : [], mcpRemoved };
|
|
177
|
+
}
|
|
163
178
|
export const cursorAdapter = {
|
|
164
179
|
id: 'cursor',
|
|
165
180
|
label: 'Cursor',
|
|
@@ -168,5 +183,6 @@ export const cursorAdapter = {
|
|
|
168
183
|
writeSettings,
|
|
169
184
|
registerMcp,
|
|
170
185
|
inspect,
|
|
186
|
+
uninstall,
|
|
171
187
|
};
|
|
172
188
|
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/clients/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/clients/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for the adapters' `uninstall()` — the inverse of
|
|
3
|
+
* `writeSettings` / `registerMcp`. Each adapter keeps its own `dropOurs`
|
|
4
|
+
* (entry shapes differ per client); these only walk the containers and make
|
|
5
|
+
* sure a config file is rewritten only when something was actually removed.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { readJson, writeJson } from '../utils.js';
|
|
9
|
+
/**
|
|
10
|
+
* Apply `drop` to every array under `container` (an object keyed by event
|
|
11
|
+
* name), then delete the arrays left empty — including the empty ones the
|
|
12
|
+
* installer itself created with `??= []`. Non-array keys are left alone.
|
|
13
|
+
* Returns true when `drop` removed at least one entry.
|
|
14
|
+
*/
|
|
15
|
+
export function dropFromEventArrays(container, drop) {
|
|
16
|
+
let removed = false;
|
|
17
|
+
for (const [event, entries] of Object.entries(container)) {
|
|
18
|
+
if (!Array.isArray(entries))
|
|
19
|
+
continue;
|
|
20
|
+
const kept = drop(entries);
|
|
21
|
+
if (kept.length !== entries.length)
|
|
22
|
+
removed = true;
|
|
23
|
+
container[event] = kept;
|
|
24
|
+
}
|
|
25
|
+
if (removed) {
|
|
26
|
+
for (const [event, entries] of Object.entries(container)) {
|
|
27
|
+
if (Array.isArray(entries) && entries.length === 0)
|
|
28
|
+
delete container[event];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return removed;
|
|
32
|
+
}
|
|
33
|
+
/** Delete each of `names` from `obj`; returns the names that were present. */
|
|
34
|
+
export function deleteKeys(obj, names) {
|
|
35
|
+
if (!obj || typeof obj !== 'object')
|
|
36
|
+
return [];
|
|
37
|
+
const record = obj;
|
|
38
|
+
const present = names.filter((n) => Object.prototype.hasOwnProperty.call(record, n));
|
|
39
|
+
for (const n of present)
|
|
40
|
+
delete record[n];
|
|
41
|
+
return present;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read the JSON file at `path`, let `mutate` edit it in place, and write it
|
|
45
|
+
* back only when `mutate` reports a change. A missing file is a no-op.
|
|
46
|
+
* Returns whether the file was rewritten.
|
|
47
|
+
*/
|
|
48
|
+
export function editJsonFile(path, mutate) {
|
|
49
|
+
if (!existsSync(path))
|
|
50
|
+
return false;
|
|
51
|
+
const data = readJson(path, {});
|
|
52
|
+
if (!data || typeof data !== 'object' || !mutate(data))
|
|
53
|
+
return false;
|
|
54
|
+
writeJson(path, data);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=unwire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwire.js","sourceRoot":"","sources":["../../src/clients/unwire.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAkC,EAClC,IAA2B;IAE3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAc,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAAE,OAAO,GAAG,IAAI,CAAC;QACnD,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,KAAwB;IAC/D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,MAA4B;IAE5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAI,IAAI,EAAE,EAAO,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/clients/vscode.js
CHANGED
|
@@ -17,11 +17,12 @@
|
|
|
17
17
|
*
|
|
18
18
|
* Min version: 1.110.0 (February 2026 — first release with hook support).
|
|
19
19
|
*/
|
|
20
|
-
import { existsSync, mkdirSync, readFileSync } from 'node:fs';
|
|
20
|
+
import { existsSync, mkdirSync, readFileSync, rmSync } from 'node:fs';
|
|
21
21
|
import { dirname, join } from 'node:path';
|
|
22
22
|
import { platform } from 'node:os';
|
|
23
23
|
import { home, log, readJson, writeJson } from '../utils.js';
|
|
24
24
|
import { hookCommand, textReferencesHookRunner, isVibedefendOwnedHookCommand, } from '../hooks/install.js';
|
|
25
|
+
import { deleteKeys, dropFromEventArrays, editJsonFile } from './unwire.js';
|
|
25
26
|
import { probeBinaryVersion, versionAtLeast } from './detect.js';
|
|
26
27
|
const COPILOT_HOOKS = home('.copilot', 'hooks', 'cybedefend.json');
|
|
27
28
|
const MIN_VERSION = '1.110.0';
|
|
@@ -175,6 +176,32 @@ function inspect(region) {
|
|
|
175
176
|
}
|
|
176
177
|
return { hooksWired, mcpRegistered };
|
|
177
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Drop our entries from `~/.copilot/hooks/cybedefend.json` — a file we own,
|
|
181
|
+
* deleted outright once nothing else is left in it — and our servers from the
|
|
182
|
+
* user-profile `mcp.json`.
|
|
183
|
+
*/
|
|
184
|
+
function uninstall(opts) {
|
|
185
|
+
let leftEmpty = false;
|
|
186
|
+
const hooksRemoved = editJsonFile(COPILOT_HOOKS, (file) => {
|
|
187
|
+
if (!file.hooks || typeof file.hooks !== 'object')
|
|
188
|
+
return false;
|
|
189
|
+
const hooks = file.hooks;
|
|
190
|
+
const removed = dropFromEventArrays(hooks, dropOurs);
|
|
191
|
+
if (removed && Object.keys(hooks).length === 0)
|
|
192
|
+
delete file.hooks;
|
|
193
|
+
leftEmpty = Object.keys(file).length === 0;
|
|
194
|
+
return removed;
|
|
195
|
+
});
|
|
196
|
+
if (hooksRemoved && leftEmpty)
|
|
197
|
+
rmSync(COPILOT_HOOKS, { force: true });
|
|
198
|
+
let mcpRemoved = [];
|
|
199
|
+
editJsonFile(vscodeUserMcpPath(), (file) => {
|
|
200
|
+
mcpRemoved = deleteKeys(file.servers, opts.mcpNames);
|
|
201
|
+
return mcpRemoved.length > 0;
|
|
202
|
+
});
|
|
203
|
+
return { hookFiles: hooksRemoved ? [COPILOT_HOOKS] : [], mcpRemoved };
|
|
204
|
+
}
|
|
178
205
|
export const vscodeAdapter = {
|
|
179
206
|
id: 'vscode',
|
|
180
207
|
label: 'VS Code Copilot',
|
|
@@ -183,5 +210,6 @@ export const vscodeAdapter = {
|
|
|
183
210
|
writeSettings,
|
|
184
211
|
registerMcp,
|
|
185
212
|
inspect,
|
|
213
|
+
uninstall,
|
|
186
214
|
};
|
|
187
215
|
//# sourceMappingURL=vscode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode.js","sourceRoot":"","sources":["../../src/clients/vscode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"vscode.js","sourceRoot":"","sources":["../../src/clients/vscode.ts"],"names":[],"mappings":"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"}
|