@cybedefend/vibedefend 1.4.2 → 1.4.4
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 +3 -1
- package/dist/auth/auth-store.js +5 -6
- package/dist/auth/auth-store.js.map +1 -1
- package/dist/clients/claude-code.js +4 -1
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/codex.js +4 -2
- package/dist/clients/codex.js.map +1 -1
- package/dist/diagnostics.js +3 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/hook-runner.js +1669 -1340
- package/dist/hooks/runtime/emit.js +25 -12
- package/dist/hooks/runtime/emit.js.map +1 -1
- package/dist/hooks/runtime/fetch-rules.js +41 -13
- 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/resolve.js +89 -64
- package/dist/hooks/runtime/resolve.js.map +1 -1
- package/dist/hooks/runtime/session-start.js +17 -7
- package/dist/hooks/runtime/session-start.js.map +1 -1
- package/dist/hooks/runtime/shell-writes.js +311 -0
- package/dist/hooks/runtime/shell-writes.js.map +1 -0
- package/dist/hooks/runtime/sniff.js +84 -5
- package/dist/hooks/runtime/sniff.js.map +1 -1
- package/dist/hooks/runtime/user-prompt-submit.js +3 -1
- package/dist/hooks/runtime/user-prompt-submit.js.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/refresh-hooks.js +74 -0
- package/dist/refresh-hooks.js.map +1 -0
- package/dist/update.js +4 -0
- package/dist/update.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-render our hook entries after an upgrade, without any prompt.
|
|
3
|
+
*
|
|
4
|
+
* The background auto-update (and `update --self`, and a manual `npm i -g`)
|
|
5
|
+
* only replaces the package: the agents' settings keep the hook entries the
|
|
6
|
+
* PREVIOUS version rendered. When a release changes the wiring itself — 1.4.3
|
|
7
|
+
* put fetch-rules on `Bash` so shell writes fetch the rules too (BACK-173) —
|
|
8
|
+
* every upgraded install silently kept the old wiring.
|
|
9
|
+
*
|
|
10
|
+
* `vibedefend update` fixes it but is interactive (it runs the installer).
|
|
11
|
+
* This re-wires only the clients whose hooks are ALREADY wired (a client the
|
|
12
|
+
* user left out stays out), with the region and hook settings already on
|
|
13
|
+
* disk, then stamps `installedVersion`. It never touches MCP registration and
|
|
14
|
+
* never logs in. Target of `vibedefend update --refresh-hooks`, which the
|
|
15
|
+
* SessionStart hook spawns when it sees the drift (hook-refresh-trigger.ts).
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { ALL_ADAPTERS } from './clients/registry.js';
|
|
20
|
+
import { resolveHookConfigFrom } from './doctor.js';
|
|
21
|
+
import { VIBEDEFEND_DIR } from './hooks/install.js';
|
|
22
|
+
import { writeJson } from './utils.js';
|
|
23
|
+
import { pkg } from './version.js';
|
|
24
|
+
export function refreshWiredHooks(deps = {}) {
|
|
25
|
+
const configPath = deps.configPath ?? join(VIBEDEFEND_DIR, 'runtime-config.json');
|
|
26
|
+
const adapters = deps.adapters ?? ALL_ADAPTERS;
|
|
27
|
+
const currentVersion = deps.currentVersion ?? pkg.version;
|
|
28
|
+
const result = { refreshed: [], failed: [], stamped: false };
|
|
29
|
+
// Raw JSON, not the typed loader: the stamp must keep every field the file
|
|
30
|
+
// carries (the selected organization, fields from newer versions).
|
|
31
|
+
let raw;
|
|
32
|
+
try {
|
|
33
|
+
if (!existsSync(configPath))
|
|
34
|
+
return result;
|
|
35
|
+
raw = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
const config = raw;
|
|
41
|
+
if (!config.region)
|
|
42
|
+
return result;
|
|
43
|
+
const region = config.region;
|
|
44
|
+
const hooks = resolveHookConfigFrom(config.hooks);
|
|
45
|
+
for (const adapter of adapters) {
|
|
46
|
+
try {
|
|
47
|
+
if (!adapter.inspect(region).hooksWired)
|
|
48
|
+
continue;
|
|
49
|
+
adapter.writeSettings({
|
|
50
|
+
hookDir: '',
|
|
51
|
+
enableSessionReview: hooks.enableSessionReview,
|
|
52
|
+
region,
|
|
53
|
+
hooks,
|
|
54
|
+
});
|
|
55
|
+
result.refreshed.push(adapter.id);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
result.failed.push(adapter.id);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Leave the stamp stale when a client failed: `status` keeps reporting the
|
|
62
|
+
// drift and `vibedefend update` remains the way out.
|
|
63
|
+
if (result.failed.length === 0) {
|
|
64
|
+
try {
|
|
65
|
+
writeJson(configPath, { ...raw, installedVersion: currentVersion });
|
|
66
|
+
result.stamped = true;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
/* stamp is best-effort; the wiring itself is already refreshed */
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=refresh-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-hooks.js","sourceRoot":"","sources":["../src/refresh-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAkBnC,MAAM,UAAU,iBAAiB,CAAC,OAA8B,EAAE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC;IAC1D,MAAM,MAAM,GAAkB,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE5E,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,MAAM,CAAC;QAC3C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,GAA+B,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAsB,CAAC;IAC7C,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAElD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU;gBAAE,SAAS;YAClD,OAAO,CAAC,aAAa,CAAC;gBACpB,OAAO,EAAE,EAAE;gBACX,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,MAAM;gBACN,KAAK;aACN,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,SAAS,CAAC,UAAU,EAAE,EAAE,GAAG,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/update.js
CHANGED
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
import { isNewer } from './hooks/runtime/semver.js';
|
|
20
20
|
import { GLOBAL_MODES } from './self-update.js';
|
|
21
21
|
export async function runUpdate(opts, deps) {
|
|
22
|
+
// Background re-wire after an upgrade: no version check, no installer.
|
|
23
|
+
if (opts.refreshHooks) {
|
|
24
|
+
return deps.refreshHooks();
|
|
25
|
+
}
|
|
22
26
|
// Re-exec target after a self-upgrade: render hooks with the NEW binary.
|
|
23
27
|
if (opts.postUpgrade) {
|
|
24
28
|
await deps.renderHooks();
|
package/dist/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;AA0ClE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAmB,EACnB,IAAmB;IAEnB,uEAAuE;IACvE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,yEAAyE;IACzE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,yEAAyE;IACzE,iEAAiE;IACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAEpE,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,2EAA2E,CAC5E,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,4BAA4B,IAAI,CAAC,cAAc,MAAM,MAAM,cAAc,CAC1E,CAAC;YACF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBACV,4DAA4D;gBAC5D,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,8EAA8E,CAC/E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,kCAAkC,MAAM,IAAI,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,uBAAuB,IAAI,CAAC,WAAW,uCAAuC;YAC5E,8CAA8C;YAC9C,kDAAkD,CACrD,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,yCAAyC;IACzC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,CAAC;AACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cybedefend/vibedefend",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.4",
|
|
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": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"esbuild": "^0.28.2",
|
|
42
42
|
"tsx": "^4.23.13",
|
|
43
43
|
"typescript": "^5.9.3",
|
|
44
|
-
"vitest": "^
|
|
44
|
+
"vitest": "^4.1.11"
|
|
45
45
|
},
|
|
46
46
|
"pnpm": {
|
|
47
47
|
"overrides": {
|