@cybedefend/vibedefend 1.7.0 → 1.8.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.
Files changed (38) hide show
  1. package/README.md +19 -12
  2. package/dist/clients/antigravity.js +327 -0
  3. package/dist/clients/antigravity.js.map +1 -0
  4. package/dist/clients/registry.js +2 -0
  5. package/dist/clients/registry.js.map +1 -1
  6. package/dist/hook-runner.js +902 -227
  7. package/dist/hooks/install.js +1 -1
  8. package/dist/hooks/install.js.map +1 -1
  9. package/dist/hooks/runtime/antigravity-session.js +400 -0
  10. package/dist/hooks/runtime/antigravity-session.js.map +1 -0
  11. package/dist/hooks/runtime/emit.js +206 -0
  12. package/dist/hooks/runtime/emit.js.map +1 -1
  13. package/dist/hooks/runtime/exit-deadlock-guard.js +46 -0
  14. package/dist/hooks/runtime/exit-deadlock-guard.js.map +1 -0
  15. package/dist/hooks/runtime/fetch-rules.js +39 -3
  16. package/dist/hooks/runtime/fetch-rules.js.map +1 -1
  17. package/dist/hooks/runtime/pre-invocation.js +45 -0
  18. package/dist/hooks/runtime/pre-invocation.js.map +1 -0
  19. package/dist/hooks/runtime/runner-args.js +12 -0
  20. package/dist/hooks/runtime/runner-args.js.map +1 -0
  21. package/dist/hooks/runtime/session-activation.js +10 -4
  22. package/dist/hooks/runtime/session-activation.js.map +1 -1
  23. package/dist/hooks/runtime/session-review.js +42 -0
  24. package/dist/hooks/runtime/session-review.js.map +1 -1
  25. package/dist/hooks/runtime/session-start.js +21 -1
  26. package/dist/hooks/runtime/session-start.js.map +1 -1
  27. package/dist/hooks/runtime/sniff.js +325 -70
  28. package/dist/hooks/runtime/sniff.js.map +1 -1
  29. package/dist/hooks/runtime/work-dir.js +3 -0
  30. package/dist/hooks/runtime/work-dir.js.map +1 -1
  31. package/dist/hooks/shim.js +102 -5
  32. package/dist/hooks/shim.js.map +1 -1
  33. package/dist/json-file.js +6 -3
  34. package/dist/json-file.js.map +1 -1
  35. package/dist/shim.js +53 -3
  36. package/dist/utils.js +9 -0
  37. package/dist/utils.js.map +1 -1
  38. package/package.json +3 -2
@@ -9,6 +9,9 @@
9
9
  * `vibedefend install` wires them) from `~/.cursor/`, so no project was
10
10
  * ever found. Its workspace is in the event's `workspace_roots`: the
11
11
  * agent's folder is `sessionFolderOf` (session-activation.ts).
12
+ * - Antigravity runs its hooks from `~/.gemini/config` for every event
13
+ * (probe, BACK-241); its workspace is in the event's `workspacePaths`,
14
+ * which `sessionFolderOf` reads too.
12
15
  * - An agent launched in one checkout that edits a file of another worktree
13
16
  * or clone got the rules of its launch repository (2026-10-02: a Codex
14
17
  * session in a vibedefend workspace fixing api-microservices PR #3092 in
@@ -1 +1 @@
1
- {"version":3,"file":"work-dir.js","sourceRoot":"","sources":["../../../src/hooks/runtime/work-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC;QACR,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,OAAO,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QACvC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"work-dir.js","sourceRoot":"","sources":["../../../src/hooks/runtime/work-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC;QACR,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,OAAO,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QACvC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -8,9 +8,16 @@
8
8
  * path, the shim always loads the latest code with no recopy step.
9
9
  *
10
10
  * Fail-open: any problem (no config, no runnerSource, file gone after an
11
- * nvm switch) → no-op. A hook must never block the agent's edit.
11
+ * nvm switch) → no-op. A hook must never block the agent's edit. On an
12
+ * Antigravity run the no-op still answers (`antigravityFallback`): there an
13
+ * empty stdout is what blocks the edit. That answer is written to fd 1
14
+ * synchronously and the shim exits right after (`answerAndExit`), as the
15
+ * runner does: nothing waits for a stream callback.
16
+ *
17
+ * Imports node built-ins only: whatever it needs of the runtime it failed to
18
+ * load is copied here, and pinned equal to the runtime's by tests.
12
19
  */
13
- import { existsSync, readFileSync } from 'node:fs';
20
+ import { existsSync, readFileSync, writeSync } from 'node:fs';
14
21
  import { homedir } from 'node:os';
15
22
  import { join } from 'node:path';
16
23
  import { pathToFileURL } from 'node:url';
@@ -44,23 +51,113 @@ export function resolveRunnerSource(configPath = defaultConfigPath()) {
44
51
  return null;
45
52
  return existsSync(src) ? src : null;
46
53
  }
54
+ /**
55
+ * The subcommands that gate a tool call: a copy of the runtime's
56
+ * `PRE_TOOL_USE_SUBCOMMANDS` (runtime/emit.ts), pinned equal by a test.
57
+ */
58
+ export const SHIM_PRE_TOOL_USE_SUBCOMMANDS = new Set([
59
+ 'fetch-rules',
60
+ 'guard-check',
61
+ 'pre-tool-use',
62
+ 'PreToolUse',
63
+ ]);
64
+ /**
65
+ * What the runner would have answered Antigravity had it run nothing
66
+ * (BACK-241): `{"decision":"allow"}` for a subcommand that gates a tool
67
+ * call, `{}` for any other, as `finishAntigravityRun` does. Antigravity
68
+ * reads an empty stdout as a block, and the `|| echo` fallback of its
69
+ * command only runs when the shim exits non-zero, which it never does: a
70
+ * runner gone after `npm uninstall -g` blocked every tool call.
71
+ *
72
+ * Null when argv does not carry `--client antigravity` after the
73
+ * subcommand, read as `parseRunnerArgs` (runtime/runner-args.ts) reads it
74
+ * — pinned equal by a test: every other client keeps an empty no-op.
75
+ */
76
+ export function antigravityFallback(argv) {
77
+ const subcommand = argv[0] ?? '';
78
+ for (let i = 1; i < argv.length - 1; i++) {
79
+ if (argv[i] === '--client' && argv[i + 1] === 'antigravity') {
80
+ return SHIM_PRE_TOOL_USE_SUBCOMMANDS.has(subcommand)
81
+ ? '{"decision":"allow"}\n'
82
+ : '{}\n';
83
+ }
84
+ }
85
+ return null;
86
+ }
87
+ /**
88
+ * Writes `text` whole to fd 1, synchronously: a copy of the runtime's
89
+ * `writeStdoutSync` (runtime/emit.ts, which says why), pinned to behave the
90
+ * same by tests/e2e/stdout-sync.e2e.test.ts. A full non-blocking pipe is
91
+ * retried every 5 ms for 2 s at most; never throws.
92
+ */
93
+ export function writeStdoutSync(text) {
94
+ const buf = Buffer.from(text, 'utf8');
95
+ const deadline = Date.now() + 2_000;
96
+ let pause;
97
+ let offset = 0;
98
+ while (offset < buf.length) {
99
+ let written = 0;
100
+ try {
101
+ written = writeSync(1, buf, offset, buf.length - offset);
102
+ }
103
+ catch (e) {
104
+ if (e?.code !== 'EAGAIN')
105
+ return;
106
+ }
107
+ offset += written;
108
+ if (written > 0)
109
+ continue;
110
+ if (Date.now() >= deadline)
111
+ return;
112
+ pause ??= new Int32Array(new SharedArrayBuffer(4));
113
+ Atomics.wait(pause, 0, 0, 5);
114
+ }
115
+ }
116
+ /**
117
+ * How the shim's Antigravity answer leaves by default: written whole to
118
+ * fd 1, then exit 0 at once, as the runner does (R4). The shim runs too
119
+ * little code for V8 to start the background compile that can hang
120
+ * `process.exit` (runtime/exit-deadlock-guard.ts); a runner it imports
121
+ * turns those compilers off itself.
122
+ */
123
+ function answerAndExit(chunk) {
124
+ writeStdoutSync(chunk);
125
+ process.exit(0);
126
+ }
47
127
  /**
48
128
  * Resolve and import the real runner. The imported module runs its own
49
129
  * `main()` (reading `process.argv`) in this same process, so the hook
50
130
  * subcommand and any `process.exit(code)` propagate correctly. No-op when
51
131
  * the source can't be resolved, and NEVER throws — a runner that is gone
52
132
  * or fails to import must not block the agent's edit (defence in depth on
53
- * top of shim-entry's catch).
133
+ * top of shim-entry's catch). On an Antigravity run that no-op prints
134
+ * `antigravityFallback`'s answer through `write` (by default
135
+ * `answerAndExit`, which also ends the process); a runner that failed to
136
+ * import has run nothing, so this is never a second answer.
54
137
  */
55
- export async function runShim(resolve = resolveRunnerSource) {
138
+ export async function runShim(resolve = resolveRunnerSource, argv = process.argv.slice(2), write = answerAndExit) {
139
+ const answerAntigravity = () => {
140
+ const fallback = antigravityFallback(argv);
141
+ if (fallback === null)
142
+ return;
143
+ try {
144
+ write(fallback);
145
+ }
146
+ catch {
147
+ // Nothing left to answer with.
148
+ }
149
+ };
56
150
  const source = resolve();
57
- if (!source)
151
+ if (!source) {
152
+ answerAntigravity();
58
153
  return;
154
+ }
59
155
  try {
60
156
  await import(pathToFileURL(source).href);
61
157
  }
62
158
  catch {
63
159
  // Fail-open: a broken or vanished runner must never block the edit.
160
+ answerAntigravity();
64
161
  }
65
162
  }
66
163
  //# sourceMappingURL=shim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shim.js","sourceRoot":"","sources":["../../src/hooks/shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,EAAE,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAAqB,iBAAiB,EAAE;IAExC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,0CAA0C;IACzD,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAI,MAA4C,EAAE,YAAY,CAAC;IACxE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,UAAkD,mBAAmB;IAErE,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"shim.js","sourceRoot":"","sources":["../../src/hooks/shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,EAAE,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAAqB,iBAAiB,EAAE;IAExC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,0CAA0C;IACzD,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAI,MAA4C,EAAE,YAAY,CAAC;IACxE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACxE,aAAa;IACb,aAAa;IACb,cAAc;IACd,YAAY;CACb,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAC5D,OAAO,6BAA6B,CAAC,GAAG,CAAC,UAAU,CAAC;gBAClD,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,MAAM,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACpC,IAAI,KAA6B,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAAkC,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO;QACrE,CAAC;QACD,MAAM,IAAI,OAAO,CAAC;QAClB,IAAI,OAAO,GAAG,CAAC;YAAE,SAAS;QAC1B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YAAE,OAAO;QACnC,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,UAAkD,mBAAmB,EACrE,OAA0B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAC/C,QAAiC,aAAa;IAE9C,MAAM,iBAAiB,GAAG,GAAS,EAAE;QACnC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC9B,IAAI,CAAC;YACH,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,iBAAiB,EAAE,CAAC;IACtB,CAAC;AACH,CAAC"}
package/dist/json-file.js CHANGED
@@ -10,7 +10,7 @@
10
10
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
11
11
  import { isDeepStrictEqual } from 'node:util';
12
12
  import { applyEdits, modify, parse as parseJsoncText, printParseErrorCode, } from 'jsonc-parser';
13
- import { ensureDirFor } from './utils.js';
13
+ import { ensureDirFor, stripBom } from './utils.js';
14
14
  /**
15
15
  * The agents' config files are JSONC: Cursor and VS Code strip comments and
16
16
  * trailing commas before parsing, so people comment servers out in them.
@@ -32,7 +32,9 @@ const PARSE_ERROR_WORDS = {
32
32
  * the line and column: the parser recovers from errors, and a file must never
33
33
  * be rewritten from its guess.
34
34
  */
35
- export function parseJsonc(text, source) {
35
+ export function parseJsonc(raw, source) {
36
+ // A leading BOM (Windows editors write one) is a parse error to jsonc-parser.
37
+ const text = stripBom(raw);
36
38
  const errors = [];
37
39
  const value = parseJsoncText(text, errors, JSONC_OPTIONS);
38
40
  if (errors.length === 0)
@@ -67,7 +69,8 @@ export function writeJson(filePath, data) {
67
69
  writeFileSync(filePath, text);
68
70
  }
69
71
  /** `text` edited in place to hold `data`, or null when it cannot be (no object to edit). */
70
- function editJsonText(text, data) {
72
+ function editJsonText(raw, data) {
73
+ const text = stripBom(raw);
71
74
  if (!text.trim())
72
75
  return null;
73
76
  const errors = [];
@@ -1 +1 @@
1
- {"version":3,"file":"json-file.js","sourceRoot":"","sources":["../src/json-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-file.js","sourceRoot":"","sources":["../src/json-file.ts"],"names":[],"mappings":"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"}
package/dist/shim.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/hooks/shim.ts
4
- import { existsSync, readFileSync } from "node:fs";
4
+ import { existsSync, readFileSync, writeSync } from "node:fs";
5
5
  import { homedir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import { pathToFileURL } from "node:url";
@@ -26,12 +26,62 @@ function resolveRunnerSource(configPath = defaultConfigPath()) {
26
26
  if (typeof src !== "string" || src.length === 0) return null;
27
27
  return existsSync(src) ? src : null;
28
28
  }
29
- async function runShim(resolve = resolveRunnerSource) {
29
+ var SHIM_PRE_TOOL_USE_SUBCOMMANDS = /* @__PURE__ */ new Set([
30
+ "fetch-rules",
31
+ "guard-check",
32
+ "pre-tool-use",
33
+ "PreToolUse"
34
+ ]);
35
+ function antigravityFallback(argv) {
36
+ const subcommand = argv[0] ?? "";
37
+ for (let i = 1; i < argv.length - 1; i++) {
38
+ if (argv[i] === "--client" && argv[i + 1] === "antigravity") {
39
+ return SHIM_PRE_TOOL_USE_SUBCOMMANDS.has(subcommand) ? '{"decision":"allow"}\n' : "{}\n";
40
+ }
41
+ }
42
+ return null;
43
+ }
44
+ function writeStdoutSync(text) {
45
+ const buf = Buffer.from(text, "utf8");
46
+ const deadline = Date.now() + 2e3;
47
+ let pause;
48
+ let offset = 0;
49
+ while (offset < buf.length) {
50
+ let written = 0;
51
+ try {
52
+ written = writeSync(1, buf, offset, buf.length - offset);
53
+ } catch (e) {
54
+ if (e?.code !== "EAGAIN") return;
55
+ }
56
+ offset += written;
57
+ if (written > 0) continue;
58
+ if (Date.now() >= deadline) return;
59
+ pause ??= new Int32Array(new SharedArrayBuffer(4));
60
+ Atomics.wait(pause, 0, 0, 5);
61
+ }
62
+ }
63
+ function answerAndExit(chunk) {
64
+ writeStdoutSync(chunk);
65
+ process.exit(0);
66
+ }
67
+ async function runShim(resolve = resolveRunnerSource, argv = process.argv.slice(2), write = answerAndExit) {
68
+ const answerAntigravity = () => {
69
+ const fallback = antigravityFallback(argv);
70
+ if (fallback === null) return;
71
+ try {
72
+ write(fallback);
73
+ } catch {
74
+ }
75
+ };
30
76
  const source = resolve();
31
- if (!source) return;
77
+ if (!source) {
78
+ answerAntigravity();
79
+ return;
80
+ }
32
81
  try {
33
82
  await import(pathToFileURL(source).href);
34
83
  } catch {
84
+ answerAntigravity();
35
85
  }
36
86
  }
37
87
 
package/dist/utils.js CHANGED
@@ -21,6 +21,15 @@ export function ensureDirFor(filePath) {
21
21
  if (!existsSync(dir))
22
22
  mkdirSync(dir, { recursive: true });
23
23
  }
24
+ /**
25
+ * Drop a leading U+FEFF (BOM) from `text`, if present. Windows editors (and
26
+ * some clients' own CLIs) save a JSON config file with one, and
27
+ * `JSON.parse` rejects it outright. Shared by `json-file.ts` and by any adapter
28
+ * that reads a config file's raw text itself before parsing it.
29
+ */
30
+ export function stripBom(text) {
31
+ return text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;
32
+ }
24
33
  /**
25
34
  * Walk up from `dir` to the nearest directory containing `.git` (a directory
26
35
  * or, for worktrees, a file). Returns `null` when `dir` is not inside a git
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cybedefend/vibedefend",
3
- "version": "1.7.0",
4
- "description": "VibeDefend — one-shot installer for CybeDefend's MCP server and Claude Code / Cursor / Codex / Windsurf hooks (for AI coding agents).",
3
+ "version": "1.8.0",
4
+ "description": "VibeDefend — one-shot installer for CybeDefend's MCP server and Claude Code / Cursor / Codex / Windsurf / Antigravity hooks (for AI coding agents).",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "vibedefend": "bin/vibedefend.js"
@@ -81,6 +81,7 @@
81
81
  "cursor",
82
82
  "codex",
83
83
  "windsurf",
84
+ "antigravity",
84
85
  "security",
85
86
  "business-rules",
86
87
  "ai-coding-agent",