@cybedefend/vibedefend 1.4.5 → 1.4.6
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/dist/auth/auth.js +15 -2
- package/dist/auth/auth.js.map +1 -1
- package/dist/clients/claude-code.js +81 -30
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/codex.js +42 -15
- package/dist/clients/codex.js.map +1 -1
- package/dist/clients/cursor.js +8 -14
- package/dist/clients/cursor.js.map +1 -1
- package/dist/clients/mcp-url.js +42 -0
- package/dist/clients/mcp-url.js.map +1 -0
- package/dist/clients/unwire.js +1 -1
- package/dist/clients/unwire.js.map +1 -1
- package/dist/clients/vscode.js +9 -15
- package/dist/clients/vscode.js.map +1 -1
- package/dist/clients/windsurf.js +9 -14
- package/dist/clients/windsurf.js.map +1 -1
- package/dist/diagnostics.js +4 -2
- package/dist/diagnostics.js.map +1 -1
- package/dist/doctor.js +12 -2
- package/dist/doctor.js.map +1 -1
- package/dist/hook-runner.js +43 -41
- package/dist/hooks/install.js +2 -1
- package/dist/hooks/install.js.map +1 -1
- package/dist/hooks/runtime/resolve.js +12 -5
- package/dist/hooks/runtime/resolve.js.map +1 -1
- package/dist/install.js +95 -22
- package/dist/install.js.map +1 -1
- package/dist/json-file.js +115 -0
- package/dist/json-file.js.map +1 -0
- package/dist/link.js +5 -2
- package/dist/link.js.map +1 -1
- package/dist/login.js +12 -4
- package/dist/login.js.map +1 -1
- package/dist/refresh-hooks.js +1 -1
- package/dist/refresh-hooks.js.map +1 -1
- package/dist/status.js +5 -1
- package/dist/status.js.map +1 -1
- package/dist/utils.js +1 -20
- package/dist/utils.js.map +1 -1
- package/package.json +4 -2
package/dist/clients/windsurf.js
CHANGED
|
@@ -27,9 +27,11 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import { existsSync, readFileSync } from 'node:fs';
|
|
29
29
|
import { join } from 'node:path';
|
|
30
|
-
import {
|
|
30
|
+
import { readJson, writeJson } from '../json-file.js';
|
|
31
|
+
import { home, log } from '../utils.js';
|
|
31
32
|
import { WINDSURF_GUARDS_SNIPPET, appendGuardSnippetIdempotent, removeGuardSnippet, } from './cursor-guards-rules.js';
|
|
32
33
|
import { hookCommand, textReferencesHookRunner, isVibedefendOwnedHookCommand, } from '../hooks/install.js';
|
|
34
|
+
import { mcpStatus, readJsonServerEntry } from './mcp-url.js';
|
|
33
35
|
import { deleteKeys, dropFromEventArrays, editJsonFile } from './unwire.js';
|
|
34
36
|
import { configDirExists, probeBinaryVersion, } from './detect.js';
|
|
35
37
|
const WINDSURF_HOOKS = home('.codeium', 'windsurf', 'hooks.json');
|
|
@@ -115,9 +117,10 @@ function registerMcp(opts) {
|
|
|
115
117
|
}
|
|
116
118
|
/**
|
|
117
119
|
* Pure introspection — never throws. `hooksWired` from
|
|
118
|
-
* `~/.codeium/windsurf/hooks.json
|
|
119
|
-
*
|
|
120
|
-
*
|
|
120
|
+
* `~/.codeium/windsurf/hooks.json` (raw-text marker check),
|
|
121
|
+
* `mcpRegistered` from the `serverUrl` of our entry in
|
|
122
|
+
* `~/.codeium/windsurf/mcp_config.json` — it must point at this region,
|
|
123
|
+
* not just exist.
|
|
121
124
|
*/
|
|
122
125
|
function inspect(region) {
|
|
123
126
|
let hooksWired = false;
|
|
@@ -129,16 +132,8 @@ function inspect(region) {
|
|
|
129
132
|
catch {
|
|
130
133
|
/* missing/unreadable → false */
|
|
131
134
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (existsSync(WINDSURF_MCP)) {
|
|
135
|
-
mcpRegistered = readFileSync(WINDSURF_MCP, 'utf8').includes(region.mcpName);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
/* → false */
|
|
140
|
-
}
|
|
141
|
-
return { hooksWired, mcpRegistered };
|
|
135
|
+
const entry = readJsonServerEntry(() => readFileSync(WINDSURF_MCP, 'utf8'), 'mcpServers', region.mcpName);
|
|
136
|
+
return { hooksWired, ...mcpStatus(entry?.serverUrl, region) };
|
|
142
137
|
}
|
|
143
138
|
/**
|
|
144
139
|
* Drop our entries from `~/.codeium/windsurf/hooks.json` (event arrays sit at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/clients/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/clients/windsurf.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.js
CHANGED
|
@@ -54,22 +54,24 @@ export async function gatherInstallState(opts = {}) {
|
|
|
54
54
|
return false;
|
|
55
55
|
}
|
|
56
56
|
})();
|
|
57
|
+
const absent = { hooksWired: false, mcpRegistered: false, mcpUrl: null };
|
|
57
58
|
const ins = region
|
|
58
59
|
? (() => {
|
|
59
60
|
try {
|
|
60
61
|
return a.inspect(region);
|
|
61
62
|
}
|
|
62
63
|
catch {
|
|
63
|
-
return
|
|
64
|
+
return absent;
|
|
64
65
|
}
|
|
65
66
|
})()
|
|
66
|
-
:
|
|
67
|
+
: absent;
|
|
67
68
|
return {
|
|
68
69
|
id: a.id,
|
|
69
70
|
label: a.label,
|
|
70
71
|
detected,
|
|
71
72
|
hooksWired: ins.hooksWired,
|
|
72
73
|
mcpRegistered: ins.mcpRegistered,
|
|
74
|
+
mcpUrl: ins.mcpUrl,
|
|
73
75
|
};
|
|
74
76
|
});
|
|
75
77
|
// `resolveProjectId` never throws — it swallows malformed config JSON and
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.js
CHANGED
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
* derives repairs, prints them, confirms, and applies the fixes.
|
|
11
11
|
*/
|
|
12
12
|
import kleur from 'kleur';
|
|
13
|
+
import { sameMcpUrl } from './clients/mcp-url.js';
|
|
13
14
|
import { adapterFor } from './clients/registry.js';
|
|
14
15
|
import { gatherInstallState } from './diagnostics.js';
|
|
15
16
|
import { installHookRuntime } from './hooks/install.js';
|
|
16
17
|
import { loadRuntimeConfig } from './hooks/runtime/config.js';
|
|
17
|
-
import { HOOK_DEFAULTS } from './config.js';
|
|
18
|
+
import { HOOK_DEFAULTS, REGIONS } from './config.js';
|
|
18
19
|
import { log } from './utils.js';
|
|
19
20
|
import { pkg } from './version.js';
|
|
20
21
|
/**
|
|
@@ -46,6 +47,11 @@ export function resolveHookConfigFrom(hooks) {
|
|
|
46
47
|
nonBlockingMode: hooks.nonBlockingMode ?? HOOK_DEFAULTS.nonBlockingMode,
|
|
47
48
|
};
|
|
48
49
|
}
|
|
50
|
+
/** A built-in region's label + URL for its MCP URL, else the URL alone. */
|
|
51
|
+
function describeMcpUrl(url) {
|
|
52
|
+
const known = REGIONS.find((r) => sameMcpUrl(r.mcpUrl, url));
|
|
53
|
+
return known ? `${known.label}, ${url}` : url;
|
|
54
|
+
}
|
|
49
55
|
/** Pure: derive the repair list from a gathered state. */
|
|
50
56
|
export function deriveRepairs(state) {
|
|
51
57
|
const repairs = [];
|
|
@@ -100,9 +106,13 @@ export function deriveRepairs(state) {
|
|
|
100
106
|
});
|
|
101
107
|
}
|
|
102
108
|
if (c.detected && !c.mcpRegistered) {
|
|
109
|
+
// An entry under our name with a URL, yet not registered: it points at
|
|
110
|
+
// another region (EU and US share the name) — `registerMcp` re-points it.
|
|
103
111
|
repairs.push({
|
|
104
112
|
id: `mcp-${c.id}`,
|
|
105
|
-
description:
|
|
113
|
+
description: c.mcpUrl !== null
|
|
114
|
+
? `${c.label}'s MCP server points at another region (${describeMcpUrl(c.mcpUrl)}), not ${region.label} — re-point it.`
|
|
115
|
+
: `${c.label} is installed but the MCP server is not registered — register it.`,
|
|
106
116
|
fix: () => {
|
|
107
117
|
const adapter = adapterFor(c.id);
|
|
108
118
|
adapter.registerMcp?.({ region });
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/hook-runner.js
CHANGED
|
@@ -4962,7 +4962,7 @@ function extractToolInputShape(input, client) {
|
|
|
4962
4962
|
// src/hooks/runtime/resolve.ts
|
|
4963
4963
|
import { execFileSync as execFileSync2 } from "node:child_process";
|
|
4964
4964
|
import { createHash } from "node:crypto";
|
|
4965
|
-
import { existsSync as existsSync6, readFileSync as
|
|
4965
|
+
import { existsSync as existsSync6, readFileSync as readFileSync5 } from "node:fs";
|
|
4966
4966
|
|
|
4967
4967
|
// src/auth/auth-store.ts
|
|
4968
4968
|
import { execFileSync } from "node:child_process";
|
|
@@ -5307,11 +5307,11 @@ async function resolveProjectByRepository(apiBase, token, q, deps = {}) {
|
|
|
5307
5307
|
}
|
|
5308
5308
|
|
|
5309
5309
|
// src/hooks/runtime/repo-link-cache.ts
|
|
5310
|
-
import { existsSync as existsSync3, mkdirSync as mkdirSync3, readFileSync as
|
|
5310
|
+
import { existsSync as existsSync3, mkdirSync as mkdirSync3, readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
5311
5311
|
import { dirname as dirname2 } from "node:path";
|
|
5312
5312
|
|
|
5313
5313
|
// src/utils.ts
|
|
5314
|
-
import { existsSync as existsSync2, mkdirSync as mkdirSync2
|
|
5314
|
+
import { existsSync as existsSync2, mkdirSync as mkdirSync2 } from "node:fs";
|
|
5315
5315
|
import { dirname, join as join2 } from "node:path";
|
|
5316
5316
|
import { homedir as homedir3, platform } from "node:os";
|
|
5317
5317
|
|
|
@@ -5436,7 +5436,7 @@ function readRepoLinkCache(deps = {}) {
|
|
|
5436
5436
|
const p = pathOf(deps);
|
|
5437
5437
|
if (!existsSync3(p)) return {};
|
|
5438
5438
|
try {
|
|
5439
|
-
const raw =
|
|
5439
|
+
const raw = readFileSync2(p, "utf8");
|
|
5440
5440
|
if (!raw.trim()) return {};
|
|
5441
5441
|
const parsed = JSON.parse(raw);
|
|
5442
5442
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
@@ -5484,13 +5484,13 @@ function writeCachedRepoLink(key, entry, deps = {}) {
|
|
|
5484
5484
|
const p = pathOf(deps);
|
|
5485
5485
|
const dir = dirname2(p);
|
|
5486
5486
|
if (!existsSync3(dir)) mkdirSync3(dir, { recursive: true });
|
|
5487
|
-
|
|
5487
|
+
writeFileSync2(p, JSON.stringify(map, null, 2) + "\n");
|
|
5488
5488
|
} catch {
|
|
5489
5489
|
}
|
|
5490
5490
|
}
|
|
5491
5491
|
|
|
5492
5492
|
// src/hooks/runtime/config.ts
|
|
5493
|
-
import { existsSync as existsSync4, readFileSync as
|
|
5493
|
+
import { existsSync as existsSync4, readFileSync as readFileSync3 } from "node:fs";
|
|
5494
5494
|
import { homedir as homedir4 } from "node:os";
|
|
5495
5495
|
import { join as join3 } from "node:path";
|
|
5496
5496
|
function runtimeConfigPath() {
|
|
@@ -5500,7 +5500,7 @@ function loadRuntimeConfig(path) {
|
|
|
5500
5500
|
const p = path ?? runtimeConfigPath();
|
|
5501
5501
|
if (!existsSync4(p)) return null;
|
|
5502
5502
|
try {
|
|
5503
|
-
const raw =
|
|
5503
|
+
const raw = readFileSync3(p, "utf8");
|
|
5504
5504
|
return JSON.parse(raw);
|
|
5505
5505
|
} catch {
|
|
5506
5506
|
return null;
|
|
@@ -5522,7 +5522,7 @@ async function readStdinJson() {
|
|
|
5522
5522
|
}
|
|
5523
5523
|
|
|
5524
5524
|
// src/hooks/runtime/trusted-api-base.ts
|
|
5525
|
-
import { existsSync as existsSync5, readFileSync as
|
|
5525
|
+
import { existsSync as existsSync5, readFileSync as readFileSync4 } from "node:fs";
|
|
5526
5526
|
import { homedir as homedir5 } from "node:os";
|
|
5527
5527
|
import { join as join4 } from "node:path";
|
|
5528
5528
|
|
|
@@ -5571,7 +5571,7 @@ function normalizeOrigin(candidate) {
|
|
|
5571
5571
|
function readUserRegionApiBases(path) {
|
|
5572
5572
|
try {
|
|
5573
5573
|
if (!existsSync5(path)) return [];
|
|
5574
|
-
const parsed = JSON.parse(
|
|
5574
|
+
const parsed = JSON.parse(readFileSync4(path, "utf8"));
|
|
5575
5575
|
if (!Array.isArray(parsed)) return [];
|
|
5576
5576
|
return parsed.map(
|
|
5577
5577
|
(entry) => entry && typeof entry === "object" ? entry.apiBase : null
|
|
@@ -5640,7 +5640,7 @@ function resolveProjectId(cwd = process.cwd(), deps = {}) {
|
|
|
5640
5640
|
const configPath = `${cwd}/.cybedefend/config.json`;
|
|
5641
5641
|
if (existsSync6(configPath)) {
|
|
5642
5642
|
try {
|
|
5643
|
-
const raw =
|
|
5643
|
+
const raw = readFileSync5(configPath, "utf8");
|
|
5644
5644
|
const cfg = JSON.parse(raw);
|
|
5645
5645
|
return {
|
|
5646
5646
|
projectId: cfg.projectId ?? null,
|
|
@@ -5661,7 +5661,7 @@ function resolveToken(mcpName, opts = {}) {
|
|
|
5661
5661
|
const platform2 = opts.platform ?? process.platform;
|
|
5662
5662
|
const readKeychain = opts.readKeychain ?? readMacOSKeychain2;
|
|
5663
5663
|
if (platform2 === "darwin") {
|
|
5664
|
-
return resolveTokenMacOS(mcpName, readKeychain) ?? resolveTokenCodexMacOS(mcpName, opts.mcpUrl, readKeychain);
|
|
5664
|
+
return resolveTokenMacOS(mcpName, opts.mcpUrl, readKeychain) ?? resolveTokenCodexMacOS(mcpName, opts.mcpUrl, readKeychain);
|
|
5665
5665
|
}
|
|
5666
5666
|
if (platform2 === "linux") return resolveTokenLinux(mcpName);
|
|
5667
5667
|
return null;
|
|
@@ -5692,16 +5692,18 @@ function readMacOSKeychain2(service, account) {
|
|
|
5692
5692
|
return null;
|
|
5693
5693
|
}
|
|
5694
5694
|
}
|
|
5695
|
-
function resolveTokenMacOS(mcpName, readKeychain) {
|
|
5695
|
+
function resolveTokenMacOS(mcpName, mcpUrl, readKeychain) {
|
|
5696
5696
|
const blob = readKeychain("Claude Code-credentials");
|
|
5697
5697
|
if (!blob) return null;
|
|
5698
5698
|
try {
|
|
5699
5699
|
const data = JSON.parse(blob);
|
|
5700
5700
|
const oauth = data.mcpOAuth ?? {};
|
|
5701
5701
|
for (const entry of Object.values(oauth)) {
|
|
5702
|
-
if (entry?.serverName
|
|
5703
|
-
|
|
5702
|
+
if (entry?.serverName !== mcpName || !entry.accessToken) continue;
|
|
5703
|
+
if (mcpUrl && typeof entry.serverUrl === "string" && entry.serverUrl !== mcpUrl) {
|
|
5704
|
+
continue;
|
|
5704
5705
|
}
|
|
5706
|
+
return entry.accessToken;
|
|
5705
5707
|
}
|
|
5706
5708
|
} catch {
|
|
5707
5709
|
return blob || null;
|
|
@@ -6097,7 +6099,7 @@ var DIRECT_PROPOSE_DIRECTIVES = {
|
|
|
6097
6099
|
|
|
6098
6100
|
// src/hooks/runtime/self-update-check.ts
|
|
6099
6101
|
import { spawn } from "node:child_process";
|
|
6100
|
-
import { existsSync as existsSync8, readFileSync as
|
|
6102
|
+
import { existsSync as existsSync8, readFileSync as readFileSync6, rmSync, writeFileSync as writeFileSync3 } from "node:fs";
|
|
6101
6103
|
import { homedir as homedir6 } from "node:os";
|
|
6102
6104
|
import { join as join5 } from "node:path";
|
|
6103
6105
|
|
|
@@ -6213,7 +6215,7 @@ function applyOrNotify(deps, installMode, latest, logPath) {
|
|
|
6213
6215
|
function readThrottle(path) {
|
|
6214
6216
|
try {
|
|
6215
6217
|
if (!existsSync8(path)) return null;
|
|
6216
|
-
const data = JSON.parse(
|
|
6218
|
+
const data = JSON.parse(readFileSync6(path, "utf8"));
|
|
6217
6219
|
if (typeof data.lastCheckedAt !== "number") return null;
|
|
6218
6220
|
return { lastCheckedAt: data.lastCheckedAt };
|
|
6219
6221
|
} catch {
|
|
@@ -6223,7 +6225,7 @@ function readThrottle(path) {
|
|
|
6223
6225
|
function writeThrottle(path, throttle) {
|
|
6224
6226
|
try {
|
|
6225
6227
|
ensureDirFor(path);
|
|
6226
|
-
|
|
6228
|
+
writeFileSync3(path, JSON.stringify(throttle) + "\n");
|
|
6227
6229
|
} catch {
|
|
6228
6230
|
}
|
|
6229
6231
|
}
|
|
@@ -6232,7 +6234,7 @@ function takeUpdateLogNotice(logPath) {
|
|
|
6232
6234
|
if (!existsSync8(logPath)) return null;
|
|
6233
6235
|
let parsed = {};
|
|
6234
6236
|
try {
|
|
6235
|
-
parsed = JSON.parse(
|
|
6237
|
+
parsed = JSON.parse(readFileSync6(logPath, "utf8"));
|
|
6236
6238
|
} catch {
|
|
6237
6239
|
parsed = {};
|
|
6238
6240
|
}
|
|
@@ -6307,7 +6309,7 @@ function pmCommand(mode, spec) {
|
|
|
6307
6309
|
|
|
6308
6310
|
// src/hooks/runtime/hook-refresh-trigger.ts
|
|
6309
6311
|
import { spawn as spawn2 } from "node:child_process";
|
|
6310
|
-
import { existsSync as existsSync9, readFileSync as
|
|
6312
|
+
import { existsSync as existsSync9, readFileSync as readFileSync7, writeFileSync as writeFileSync4 } from "node:fs";
|
|
6311
6313
|
import { homedir as homedir7 } from "node:os";
|
|
6312
6314
|
import { dirname as dirname3, join as join6 } from "node:path";
|
|
6313
6315
|
function maybeRefreshStaleWiring(deps) {
|
|
@@ -6330,7 +6332,7 @@ function maybeRefreshStaleWiring(deps) {
|
|
|
6330
6332
|
function readMarkerVersion(path) {
|
|
6331
6333
|
try {
|
|
6332
6334
|
if (!existsSync9(path)) return null;
|
|
6333
|
-
const data = JSON.parse(
|
|
6335
|
+
const data = JSON.parse(readFileSync7(path, "utf8"));
|
|
6334
6336
|
return typeof data.version === "string" ? data.version : null;
|
|
6335
6337
|
} catch {
|
|
6336
6338
|
return null;
|
|
@@ -6339,7 +6341,7 @@ function readMarkerVersion(path) {
|
|
|
6339
6341
|
function writeMarker(path, version) {
|
|
6340
6342
|
try {
|
|
6341
6343
|
ensureDirFor(path);
|
|
6342
|
-
|
|
6344
|
+
writeFileSync4(path, JSON.stringify({ version, spawnedAt: Date.now() }) + "\n");
|
|
6343
6345
|
} catch {
|
|
6344
6346
|
}
|
|
6345
6347
|
}
|
|
@@ -6353,7 +6355,7 @@ function defaultSpawnRefresh(cliEntry) {
|
|
|
6353
6355
|
}
|
|
6354
6356
|
|
|
6355
6357
|
// src/version.ts
|
|
6356
|
-
import { readFileSync as
|
|
6358
|
+
import { readFileSync as readFileSync8 } from "node:fs";
|
|
6357
6359
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
6358
6360
|
import { dirname as dirname4, join as join7 } from "node:path";
|
|
6359
6361
|
var PKG_NAME = "@cybedefend/vibedefend";
|
|
@@ -6364,7 +6366,7 @@ function readPackageMeta(opts = {}) {
|
|
|
6364
6366
|
if (typeof opts.bakedVersion === "string" && opts.bakedVersion.length > 0) {
|
|
6365
6367
|
return { name: PKG_NAME, version: opts.bakedVersion };
|
|
6366
6368
|
}
|
|
6367
|
-
const readFile = opts.readFile ?? ((p) =>
|
|
6369
|
+
const readFile = opts.readFile ?? ((p) => readFileSync8(p, "utf8"));
|
|
6368
6370
|
const pkgPath = opts.pkgPath ?? defaultPkgPath();
|
|
6369
6371
|
try {
|
|
6370
6372
|
return JSON.parse(readFile(pkgPath));
|
|
@@ -6373,7 +6375,7 @@ function readPackageMeta(opts = {}) {
|
|
|
6373
6375
|
}
|
|
6374
6376
|
}
|
|
6375
6377
|
var pkg = readPackageMeta({
|
|
6376
|
-
bakedVersion: true ? "1.4.
|
|
6378
|
+
bakedVersion: true ? "1.4.6" : void 0
|
|
6377
6379
|
});
|
|
6378
6380
|
|
|
6379
6381
|
// src/hooks/runtime/session-start.ts
|
|
@@ -6489,7 +6491,7 @@ async function sessionStartHook(deps = {}) {
|
|
|
6489
6491
|
}
|
|
6490
6492
|
|
|
6491
6493
|
// src/hooks/runtime/session-review.ts
|
|
6492
|
-
import { existsSync as existsSync10, readFileSync as
|
|
6494
|
+
import { existsSync as existsSync10, readFileSync as readFileSync9 } from "node:fs";
|
|
6493
6495
|
var COUNTED_TOOLS = /* @__PURE__ */ new Set([
|
|
6494
6496
|
"Edit",
|
|
6495
6497
|
"Write",
|
|
@@ -6575,7 +6577,7 @@ function loadTranscript(stdin, readFile) {
|
|
|
6575
6577
|
function defaultReadTranscript(path) {
|
|
6576
6578
|
if (!existsSync10(path)) return null;
|
|
6577
6579
|
try {
|
|
6578
|
-
return
|
|
6580
|
+
return readFileSync9(path, "utf8");
|
|
6579
6581
|
} catch {
|
|
6580
6582
|
return null;
|
|
6581
6583
|
}
|
|
@@ -6835,7 +6837,7 @@ async function preCompactHook(deps = {}) {
|
|
|
6835
6837
|
}
|
|
6836
6838
|
|
|
6837
6839
|
// src/hooks/runtime/user-prompt-submit.ts
|
|
6838
|
-
import { existsSync as existsSync11, mkdirSync as mkdirSync4, readFileSync as
|
|
6840
|
+
import { existsSync as existsSync11, mkdirSync as mkdirSync4, readFileSync as readFileSync10, writeFileSync as writeFileSync5 } from "node:fs";
|
|
6839
6841
|
import { homedir as homedir8 } from "node:os";
|
|
6840
6842
|
import { join as join8 } from "node:path";
|
|
6841
6843
|
var SESSIONS_CAP = 100;
|
|
@@ -6847,7 +6849,7 @@ function defaultSessionTracker(file = defaultSessionsFile()) {
|
|
|
6847
6849
|
function load() {
|
|
6848
6850
|
if (!existsSync11(file)) return [];
|
|
6849
6851
|
try {
|
|
6850
|
-
const raw =
|
|
6852
|
+
const raw = readFileSync10(file, "utf8");
|
|
6851
6853
|
const data = JSON.parse(raw);
|
|
6852
6854
|
if (!Array.isArray(data.sessions)) return [];
|
|
6853
6855
|
return data.sessions.filter((s) => typeof s === "string");
|
|
@@ -6865,7 +6867,7 @@ function defaultSessionTracker(file = defaultSessionsFile()) {
|
|
|
6865
6867
|
const next = [...existing, sessionId].slice(-SESSIONS_CAP);
|
|
6866
6868
|
try {
|
|
6867
6869
|
mkdirSync4(join8(file, ".."), { recursive: true });
|
|
6868
|
-
|
|
6870
|
+
writeFileSync5(file, JSON.stringify({ sessions: next }), "utf8");
|
|
6869
6871
|
} catch {
|
|
6870
6872
|
}
|
|
6871
6873
|
}
|
|
@@ -7936,7 +7938,7 @@ function nearMiss(req, rule) {
|
|
|
7936
7938
|
}
|
|
7937
7939
|
|
|
7938
7940
|
// src/hooks/runtime/guard-rules-cache.ts
|
|
7939
|
-
import { readFileSync as
|
|
7941
|
+
import { readFileSync as readFileSync11, writeFileSync as writeFileSync6, existsSync as existsSync12, mkdirSync as mkdirSync5 } from "node:fs";
|
|
7940
7942
|
import { dirname as dirname5 } from "node:path";
|
|
7941
7943
|
import { homedir as homedir9 } from "node:os";
|
|
7942
7944
|
import { join as join9 } from "node:path";
|
|
@@ -12178,7 +12180,7 @@ function makeGuardRulesCache(opts) {
|
|
|
12178
12180
|
function readCache(projectId) {
|
|
12179
12181
|
if (!existsSync12(cacheFile)) return null;
|
|
12180
12182
|
try {
|
|
12181
|
-
const raw =
|
|
12183
|
+
const raw = readFileSync11(cacheFile, "utf8");
|
|
12182
12184
|
const data = JSON.parse(raw);
|
|
12183
12185
|
if (data.projectId !== projectId) return null;
|
|
12184
12186
|
return data;
|
|
@@ -12189,7 +12191,7 @@ function makeGuardRulesCache(opts) {
|
|
|
12189
12191
|
function writeCache(entry) {
|
|
12190
12192
|
try {
|
|
12191
12193
|
ensureDirFor2(cacheFile);
|
|
12192
|
-
|
|
12194
|
+
writeFileSync6(cacheFile, JSON.stringify(entry), "utf8");
|
|
12193
12195
|
} catch {
|
|
12194
12196
|
}
|
|
12195
12197
|
}
|
|
@@ -12319,7 +12321,7 @@ function detectPromptInjection(text) {
|
|
|
12319
12321
|
}
|
|
12320
12322
|
|
|
12321
12323
|
// src/hooks/runtime/judge-cache.ts
|
|
12322
|
-
import { readFileSync as
|
|
12324
|
+
import { readFileSync as readFileSync12, writeFileSync as writeFileSync7, existsSync as existsSync13, mkdirSync as mkdirSync6 } from "node:fs";
|
|
12323
12325
|
import { dirname as dirname6, join as join10 } from "node:path";
|
|
12324
12326
|
import { homedir as homedir10 } from "node:os";
|
|
12325
12327
|
var DEFAULT_JUDGE_CACHE_FILE = join10(
|
|
@@ -12335,7 +12337,7 @@ function makeJudgeCache(opts = {}) {
|
|
|
12335
12337
|
function readAll() {
|
|
12336
12338
|
if (!existsSync13(cacheFile)) return {};
|
|
12337
12339
|
try {
|
|
12338
|
-
return JSON.parse(
|
|
12340
|
+
return JSON.parse(readFileSync12(cacheFile, "utf8"));
|
|
12339
12341
|
} catch {
|
|
12340
12342
|
return {};
|
|
12341
12343
|
}
|
|
@@ -12355,7 +12357,7 @@ function makeJudgeCache(opts = {}) {
|
|
|
12355
12357
|
}
|
|
12356
12358
|
all[key] = { res, at: t };
|
|
12357
12359
|
ensureDirFor3(cacheFile);
|
|
12358
|
-
|
|
12360
|
+
writeFileSync7(cacheFile, JSON.stringify(all), "utf8");
|
|
12359
12361
|
} catch {
|
|
12360
12362
|
}
|
|
12361
12363
|
}
|
|
@@ -12376,8 +12378,8 @@ import { join as join12 } from "node:path";
|
|
|
12376
12378
|
import {
|
|
12377
12379
|
appendFileSync,
|
|
12378
12380
|
existsSync as existsSync14,
|
|
12379
|
-
readFileSync as
|
|
12380
|
-
writeFileSync as
|
|
12381
|
+
readFileSync as readFileSync13,
|
|
12382
|
+
writeFileSync as writeFileSync8,
|
|
12381
12383
|
mkdirSync as mkdirSync7
|
|
12382
12384
|
} from "node:fs";
|
|
12383
12385
|
import { dirname as dirname7 } from "node:path";
|
|
@@ -12406,7 +12408,7 @@ function makeViolationsBuffer(opts = {}) {
|
|
|
12406
12408
|
if (!existsSync14(bufferFile)) return;
|
|
12407
12409
|
let content;
|
|
12408
12410
|
try {
|
|
12409
|
-
content =
|
|
12411
|
+
content = readFileSync13(bufferFile, "utf8").trim();
|
|
12410
12412
|
} catch {
|
|
12411
12413
|
return;
|
|
12412
12414
|
}
|
|
@@ -12425,7 +12427,7 @@ function makeViolationsBuffer(opts = {}) {
|
|
|
12425
12427
|
}
|
|
12426
12428
|
if (records.length === 0) {
|
|
12427
12429
|
try {
|
|
12428
|
-
|
|
12430
|
+
writeFileSync8(bufferFile, "", "utf8");
|
|
12429
12431
|
} catch {
|
|
12430
12432
|
}
|
|
12431
12433
|
return;
|
|
@@ -12455,10 +12457,10 @@ function makeViolationsBuffer(opts = {}) {
|
|
|
12455
12457
|
}
|
|
12456
12458
|
try {
|
|
12457
12459
|
if (failed.length === 0) {
|
|
12458
|
-
|
|
12460
|
+
writeFileSync8(bufferFile, "", "utf8");
|
|
12459
12461
|
} else {
|
|
12460
12462
|
const serialised = failed.map((r) => JSON.stringify(r)).join("\n") + "\n";
|
|
12461
|
-
|
|
12463
|
+
writeFileSync8(bufferFile, serialised, "utf8");
|
|
12462
12464
|
}
|
|
12463
12465
|
} catch {
|
|
12464
12466
|
}
|
package/dist/hooks/install.js
CHANGED
|
@@ -18,7 +18,8 @@ import { copyFileSync, existsSync, readFileSync, rmSync } from 'node:fs';
|
|
|
18
18
|
import { dirname, join } from 'node:path';
|
|
19
19
|
import { fileURLToPath } from 'node:url';
|
|
20
20
|
import { detectInstallMode, resolveScriptPath, GLOBAL_MODES, } from '../self-update.js';
|
|
21
|
-
import {
|
|
21
|
+
import { writeJson } from '../json-file.js';
|
|
22
|
+
import { ensureDirFor, home, log } from '../utils.js';
|
|
22
23
|
/** Top-level directory we own. */
|
|
23
24
|
export const VIBEDEFEND_DIR = home('.cybedefend');
|
|
24
25
|
/** Where the bundled runner lives on the user's machine after install. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/hooks/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GAEb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/hooks/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,9 @@ export function resolveProjectId(cwd = process.cwd(), deps = {}) {
|
|
|
75
75
|
* every use, so two hook processes refreshing at once (guard-check and
|
|
76
76
|
* fetch-rules fire on the same tool call) would trip its reuse detection.
|
|
77
77
|
* 3. macOS, Claude Code: the "Claude Code-credentials" Keychain blob, entry
|
|
78
|
-
* whose `serverName` matches our MCP name
|
|
78
|
+
* whose `serverName` matches our MCP name — and, when `mcpUrl` is known,
|
|
79
|
+
* whose `serverUrl` is the region's: EU and US share the MCP name, and
|
|
80
|
+
* Claude Code keeps the previous region's entry after a region switch.
|
|
79
81
|
* 4. macOS, Codex: the "Codex MCP Credentials" Keychain service, under the
|
|
80
82
|
* region's exact account (see {@link codexCredentialAccount}).
|
|
81
83
|
* Never the service's first entry: that is whichever server the user
|
|
@@ -98,7 +100,7 @@ export function resolveToken(mcpName, opts = {}) {
|
|
|
98
100
|
const platform = opts.platform ?? process.platform;
|
|
99
101
|
const readKeychain = opts.readKeychain ?? readMacOSKeychain;
|
|
100
102
|
if (platform === 'darwin') {
|
|
101
|
-
return (resolveTokenMacOS(mcpName, readKeychain) ??
|
|
103
|
+
return (resolveTokenMacOS(mcpName, opts.mcpUrl, readKeychain) ??
|
|
102
104
|
resolveTokenCodexMacOS(mcpName, opts.mcpUrl, readKeychain));
|
|
103
105
|
}
|
|
104
106
|
if (platform === 'linux')
|
|
@@ -135,7 +137,7 @@ function readMacOSKeychain(service, account) {
|
|
|
135
137
|
return null;
|
|
136
138
|
}
|
|
137
139
|
}
|
|
138
|
-
function resolveTokenMacOS(mcpName, readKeychain) {
|
|
140
|
+
function resolveTokenMacOS(mcpName, mcpUrl, readKeychain) {
|
|
139
141
|
const blob = readKeychain('Claude Code-credentials');
|
|
140
142
|
if (!blob)
|
|
141
143
|
return null;
|
|
@@ -143,9 +145,14 @@ function resolveTokenMacOS(mcpName, readKeychain) {
|
|
|
143
145
|
const data = JSON.parse(blob);
|
|
144
146
|
const oauth = data.mcpOAuth ?? {};
|
|
145
147
|
for (const entry of Object.values(oauth)) {
|
|
146
|
-
if (entry?.serverName
|
|
147
|
-
|
|
148
|
+
if (entry?.serverName !== mcpName || !entry.accessToken)
|
|
149
|
+
continue;
|
|
150
|
+
// Another region's server under the same name (left over from a
|
|
151
|
+
// region switch). Entries without `serverUrl` still match.
|
|
152
|
+
if (mcpUrl && typeof entry.serverUrl === 'string' && entry.serverUrl !== mcpUrl) {
|
|
153
|
+
continue;
|
|
148
154
|
}
|
|
155
|
+
return entry.accessToken;
|
|
149
156
|
}
|
|
150
157
|
}
|
|
151
158
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/hooks/runtime/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAmB,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,0BAA0B,GAE3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAe/B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,OAA6B,EAAE;IAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACvD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,GAAG,0BAA0B,CAAC;IACpD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAGzB,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;gBAChC,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;aACtD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;YAClE,yDAAyD;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/hooks/runtime/resolve.ts"],"names":[],"mappings":"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"}
|