@cybedefend/vibedefend 1.4.7 → 1.6.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 (246) hide show
  1. package/README.md +77 -2
  2. package/dist/api/gateway-request.js +49 -0
  3. package/dist/api/gateway-request.js.map +1 -0
  4. package/dist/api/projects.js +67 -0
  5. package/dist/api/projects.js.map +1 -1
  6. package/dist/api/repository-link.js +157 -0
  7. package/dist/api/repository-link.js.map +1 -0
  8. package/dist/auth/auth-store.js +107 -25
  9. package/dist/auth/auth-store.js.map +1 -1
  10. package/dist/auth/auth.js +21 -0
  11. package/dist/auth/auth.js.map +1 -1
  12. package/dist/clients/cursor.js +5 -1
  13. package/dist/clients/cursor.js.map +1 -1
  14. package/dist/clients/vscode.js +38 -29
  15. package/dist/clients/vscode.js.map +1 -1
  16. package/dist/commands/mcp/allow.js +219 -0
  17. package/dist/commands/mcp/allow.js.map +1 -0
  18. package/dist/commands/mcp/connect.js +337 -0
  19. package/dist/commands/mcp/connect.js.map +1 -0
  20. package/dist/commands/mcp/index.js +170 -0
  21. package/dist/commands/mcp/index.js.map +1 -0
  22. package/dist/commands/mcp/proxy.js +264 -0
  23. package/dist/commands/mcp/proxy.js.map +1 -0
  24. package/dist/commands/mcp/scan.js +349 -0
  25. package/dist/commands/mcp/scan.js.map +1 -0
  26. package/dist/commands/mcp/sync.js +215 -0
  27. package/dist/commands/mcp/sync.js.map +1 -0
  28. package/dist/config.js +6 -0
  29. package/dist/config.js.map +1 -1
  30. package/dist/diagnostics.js +78 -12
  31. package/dist/diagnostics.js.map +1 -1
  32. package/dist/doctor.js +19 -0
  33. package/dist/doctor.js.map +1 -1
  34. package/dist/guards-evaluator/analysis-types.js +27 -0
  35. package/dist/guards-evaluator/analysis-types.js.map +1 -0
  36. package/dist/guards-evaluator/command-analysis.js +572 -0
  37. package/dist/guards-evaluator/command-analysis.js.map +1 -0
  38. package/dist/guards-evaluator/command-view.js +586 -0
  39. package/dist/guards-evaluator/command-view.js.map +1 -0
  40. package/dist/guards-evaluator/env.js +11 -0
  41. package/dist/guards-evaluator/env.js.map +1 -0
  42. package/dist/guards-evaluator/evaluate.js +91 -41
  43. package/dist/guards-evaluator/evaluate.js.map +1 -1
  44. package/dist/guards-evaluator/index.js +2 -1
  45. package/dist/guards-evaluator/index.js.map +1 -1
  46. package/dist/guards-evaluator/inline-code.js +259 -0
  47. package/dist/guards-evaluator/inline-code.js.map +1 -0
  48. package/dist/guards-evaluator/normalize.js +716 -0
  49. package/dist/guards-evaluator/normalize.js.map +1 -0
  50. package/dist/guards-evaluator/preprocess.js +13 -5
  51. package/dist/guards-evaluator/preprocess.js.map +1 -1
  52. package/dist/guards-evaluator/redact.js +19 -0
  53. package/dist/guards-evaluator/redact.js.map +1 -1
  54. package/dist/guards-evaluator/regex.js +25 -3
  55. package/dist/guards-evaluator/regex.js.map +1 -1
  56. package/dist/guards-evaluator/safe-commands.js +155 -0
  57. package/dist/guards-evaluator/safe-commands.js.map +1 -0
  58. package/dist/guards-evaluator/triage.js +315 -0
  59. package/dist/guards-evaluator/triage.js.map +1 -0
  60. package/dist/hook-runner.js +24873 -5068
  61. package/dist/hooks/install.js +38 -0
  62. package/dist/hooks/install.js.map +1 -1
  63. package/dist/hooks/runtime/config.js +38 -0
  64. package/dist/hooks/runtime/config.js.map +1 -1
  65. package/dist/hooks/runtime/emit.js +126 -53
  66. package/dist/hooks/runtime/emit.js.map +1 -1
  67. package/dist/hooks/runtime/fetch-rules.js +27 -7
  68. package/dist/hooks/runtime/fetch-rules.js.map +1 -1
  69. package/dist/hooks/runtime/gateway-http-error.js +34 -0
  70. package/dist/hooks/runtime/gateway-http-error.js.map +1 -0
  71. package/dist/hooks/runtime/guard-rules-cache.js +139 -17
  72. package/dist/hooks/runtime/guard-rules-cache.js.map +1 -1
  73. package/dist/hooks/runtime/guard-violations-buffer.js +321 -48
  74. package/dist/hooks/runtime/guard-violations-buffer.js.map +1 -1
  75. package/dist/hooks/runtime/judge-cache.js +6 -0
  76. package/dist/hooks/runtime/judge-cache.js.map +1 -1
  77. package/dist/hooks/runtime/judge-triage.js +193 -0
  78. package/dist/hooks/runtime/judge-triage.js.map +1 -0
  79. package/dist/hooks/runtime/judge.js +7 -1
  80. package/dist/hooks/runtime/judge.js.map +1 -1
  81. package/dist/hooks/runtime/pre-compact.js +21 -6
  82. package/dist/hooks/runtime/pre-compact.js.map +1 -1
  83. package/dist/hooks/runtime/resolve.js +108 -17
  84. package/dist/hooks/runtime/resolve.js.map +1 -1
  85. package/dist/hooks/runtime/retry-policy.js +57 -0
  86. package/dist/hooks/runtime/retry-policy.js.map +1 -0
  87. package/dist/hooks/runtime/review-sessions.js +74 -0
  88. package/dist/hooks/runtime/review-sessions.js.map +1 -0
  89. package/dist/hooks/runtime/script-resolve.js +695 -0
  90. package/dist/hooks/runtime/script-resolve.js.map +1 -0
  91. package/dist/hooks/runtime/session-activation.js +226 -0
  92. package/dist/hooks/runtime/session-activation.js.map +1 -0
  93. package/dist/hooks/runtime/session-review.js +174 -46
  94. package/dist/hooks/runtime/session-review.js.map +1 -1
  95. package/dist/hooks/runtime/session-start.js +35 -4
  96. package/dist/hooks/runtime/session-start.js.map +1 -1
  97. package/dist/hooks/runtime/session-writes.js +232 -0
  98. package/dist/hooks/runtime/session-writes.js.map +1 -0
  99. package/dist/hooks/runtime/sniff.js +26 -7
  100. package/dist/hooks/runtime/sniff.js.map +1 -1
  101. package/dist/hooks/runtime/target-resolve.js +336 -0
  102. package/dist/hooks/runtime/target-resolve.js.map +1 -0
  103. package/dist/hooks/runtime/unmapped-tools.js +93 -0
  104. package/dist/hooks/runtime/unmapped-tools.js.map +1 -0
  105. package/dist/hooks/runtime/usage-block.js +4 -0
  106. package/dist/hooks/runtime/usage-block.js.map +1 -1
  107. package/dist/hooks/runtime/user-prompt-submit.js +8 -2
  108. package/dist/hooks/runtime/user-prompt-submit.js.map +1 -1
  109. package/dist/hooks/runtime/wire-text.js +41 -0
  110. package/dist/hooks/runtime/wire-text.js.map +1 -0
  111. package/dist/hooks/runtime/work-dir.js +84 -0
  112. package/dist/hooks/runtime/work-dir.js.map +1 -0
  113. package/dist/index.js +45 -12
  114. package/dist/index.js.map +1 -1
  115. package/dist/install.js +174 -11
  116. package/dist/install.js.map +1 -1
  117. package/dist/link.js +74 -48
  118. package/dist/link.js.map +1 -1
  119. package/dist/login.js +99 -14
  120. package/dist/login.js.map +1 -1
  121. package/dist/mcp/auth/agent-sign-ins.js +174 -0
  122. package/dist/mcp/auth/agent-sign-ins.js.map +1 -0
  123. package/dist/mcp/auth/callback.js +200 -0
  124. package/dist/mcp/auth/callback.js.map +1 -0
  125. package/dist/mcp/auth/connect.js +392 -0
  126. package/dist/mcp/auth/connect.js.map +1 -0
  127. package/dist/mcp/auth/discovery.js +399 -0
  128. package/dist/mcp/auth/discovery.js.map +1 -0
  129. package/dist/mcp/auth/oauth.js +326 -0
  130. package/dist/mcp/auth/oauth.js.map +1 -0
  131. package/dist/mcp/auth/probe.js +128 -0
  132. package/dist/mcp/auth/probe.js.map +1 -0
  133. package/dist/mcp/auth/secrets.js +446 -0
  134. package/dist/mcp/auth/secrets.js.map +1 -0
  135. package/dist/mcp/auth/store.js +260 -0
  136. package/dist/mcp/auth/store.js.map +1 -0
  137. package/dist/mcp/auth/tokenSource.js +55 -0
  138. package/dist/mcp/auth/tokenSource.js.map +1 -0
  139. package/dist/mcp/config/atomicWrite.js +98 -0
  140. package/dist/mcp/config/atomicWrite.js.map +1 -0
  141. package/dist/mcp/config/clients.js +171 -0
  142. package/dist/mcp/config/clients.js.map +1 -0
  143. package/dist/mcp/config/cybedefend-servers.js +48 -0
  144. package/dist/mcp/config/cybedefend-servers.js.map +1 -0
  145. package/dist/mcp/config/discover.js +114 -0
  146. package/dist/mcp/config/discover.js.map +1 -0
  147. package/dist/mcp/config/hook.js +123 -0
  148. package/dist/mcp/config/hook.js.map +1 -0
  149. package/dist/mcp/config/index.js +11 -0
  150. package/dist/mcp/config/index.js.map +1 -0
  151. package/dist/mcp/config/install.js +132 -0
  152. package/dist/mcp/config/install.js.map +1 -0
  153. package/dist/mcp/config/installed.js +37 -0
  154. package/dist/mcp/config/installed.js.map +1 -0
  155. package/dist/mcp/config/jsonEdit.js +119 -0
  156. package/dist/mcp/config/jsonEdit.js.map +1 -0
  157. package/dist/mcp/config/lock.js +102 -0
  158. package/dist/mcp/config/lock.js.map +1 -0
  159. package/dist/mcp/config/proxyBinary.js +211 -0
  160. package/dist/mcp/config/proxyBinary.js.map +1 -0
  161. package/dist/mcp/config/rewrite.js +388 -0
  162. package/dist/mcp/config/rewrite.js.map +1 -0
  163. package/dist/mcp/config/types.js +34 -0
  164. package/dist/mcp/config/types.js.map +1 -0
  165. package/dist/mcp/proxy/audit.js +83 -0
  166. package/dist/mcp/proxy/audit.js.map +1 -0
  167. package/dist/mcp/proxy/authInterceptor.js +119 -0
  168. package/dist/mcp/proxy/authInterceptor.js.map +1 -0
  169. package/dist/mcp/proxy/expand.js +93 -0
  170. package/dist/mcp/proxy/expand.js.map +1 -0
  171. package/dist/mcp/proxy/inject.js +397 -0
  172. package/dist/mcp/proxy/inject.js.map +1 -0
  173. package/dist/mcp/proxy/intercept.js +37 -0
  174. package/dist/mcp/proxy/intercept.js.map +1 -0
  175. package/dist/mcp/proxy/jsonrpc.js +153 -0
  176. package/dist/mcp/proxy/jsonrpc.js.map +1 -0
  177. package/dist/mcp/proxy/log.js +109 -0
  178. package/dist/mcp/proxy/log.js.map +1 -0
  179. package/dist/mcp/proxy/paths.js +53 -0
  180. package/dist/mcp/proxy/paths.js.map +1 -0
  181. package/dist/mcp/proxy/proxy.js +510 -0
  182. package/dist/mcp/proxy/proxy.js.map +1 -0
  183. package/dist/mcp/proxy/spec.js +203 -0
  184. package/dist/mcp/proxy/spec.js.map +1 -0
  185. package/dist/mcp/proxy/sse.js +77 -0
  186. package/dist/mcp/proxy/sse.js.map +1 -0
  187. package/dist/mcp/proxy/upstream.js +2 -0
  188. package/dist/mcp/proxy/upstream.js.map +1 -0
  189. package/dist/mcp/proxy/upstreamHttp.js +499 -0
  190. package/dist/mcp/proxy/upstreamHttp.js.map +1 -0
  191. package/dist/mcp/proxy/upstreamStdio.js +188 -0
  192. package/dist/mcp/proxy/upstreamStdio.js.map +1 -0
  193. package/dist/mcp/proxy/upstreams.js +143 -0
  194. package/dist/mcp/proxy/upstreams.js.map +1 -0
  195. package/dist/mcp/proxy/verifyInterceptor.js +559 -0
  196. package/dist/mcp/proxy/verifyInterceptor.js.map +1 -0
  197. package/dist/mcp/proxy/windowsCommand.js +99 -0
  198. package/dist/mcp/proxy/windowsCommand.js.map +1 -0
  199. package/dist/mcp/scan/args.js +228 -0
  200. package/dist/mcp/scan/args.js.map +1 -0
  201. package/dist/mcp/scan/results.js +253 -0
  202. package/dist/mcp/scan/results.js.map +1 -0
  203. package/dist/mcp/scan/types.js +40 -0
  204. package/dist/mcp/scan/types.js.map +1 -0
  205. package/dist/mcp/verify/api.js +475 -0
  206. package/dist/mcp/verify/api.js.map +1 -0
  207. package/dist/mcp/verify/backend.js +143 -0
  208. package/dist/mcp/verify/backend.js.map +1 -0
  209. package/dist/mcp/verify/cache.js +182 -0
  210. package/dist/mcp/verify/cache.js.map +1 -0
  211. package/dist/mcp/verify/contract-errors.js +198 -0
  212. package/dist/mcp/verify/contract-errors.js.map +1 -0
  213. package/dist/mcp/verify/digest.js +91 -0
  214. package/dist/mcp/verify/digest.js.map +1 -0
  215. package/dist/mcp/verify/factory.js +56 -0
  216. package/dist/mcp/verify/factory.js.map +1 -0
  217. package/dist/mcp/verify/identity.js +173 -0
  218. package/dist/mcp/verify/identity.js.map +1 -0
  219. package/dist/mcp/verify/policy-store.js +63 -0
  220. package/dist/mcp/verify/policy-store.js.map +1 -0
  221. package/dist/mcp/verify/policy.js +158 -0
  222. package/dist/mcp/verify/policy.js.map +1 -0
  223. package/dist/mcp/verify/pool.js +27 -0
  224. package/dist/mcp/verify/pool.js.map +1 -0
  225. package/dist/mcp/verify/token-refresh.js +44 -0
  226. package/dist/mcp/verify/token-refresh.js.map +1 -0
  227. package/dist/mcp/verify/token.js +67 -0
  228. package/dist/mcp/verify/token.js.map +1 -0
  229. package/dist/mcp/verify/verifier.js +1009 -0
  230. package/dist/mcp/verify/verifier.js.map +1 -0
  231. package/dist/org-gate.js +1 -1
  232. package/dist/org-gate.js.map +1 -1
  233. package/dist/org.js +146 -0
  234. package/dist/org.js.map +1 -0
  235. package/dist/project-create.js +129 -0
  236. package/dist/project-create.js.map +1 -0
  237. package/dist/prompts.js +21 -0
  238. package/dist/prompts.js.map +1 -1
  239. package/dist/re2.wasm +0 -0
  240. package/dist/status.js +61 -0
  241. package/dist/status.js.map +1 -1
  242. package/dist/uninstall.js +49 -4
  243. package/dist/uninstall.js.map +1 -1
  244. package/dist/utils.js +62 -6
  245. package/dist/utils.js.map +1 -1
  246. package/package.json +10 -3
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Which directory a hook resolves its project from (BACK-242).
3
+ *
4
+ * The project id comes from `.cybedefend/config.json` or from the `origin`
5
+ * remote of a directory (see `resolve.ts`). That directory used to be the hook
6
+ * process's own `process.cwd()`, which is not where the agent works:
7
+ *
8
+ * - Cursor runs user-level hooks (`~/.cursor/hooks.json`, where
9
+ * `vibedefend install` wires them) from `~/.cursor/`, so no project was
10
+ * ever found. Its workspace is in the event's `workspace_roots`: the
11
+ * agent's folder is `sessionFolderOf` (session-activation.ts).
12
+ * - An agent launched in one checkout that edits a file of another worktree
13
+ * or clone got the rules of its launch repository (2026-10-02: a Codex
14
+ * session in a vibedefend workspace fixing api-microservices PR #3092 in
15
+ * `~/cybedefend/api-microservices-back-207`).
16
+ *
17
+ * No `git` is spawned here: a repository root is the nearest ancestor holding
18
+ * a `.git` entry, a directory for a clone and a file for a worktree.
19
+ */
20
+ import { existsSync, realpathSync, statSync } from 'node:fs';
21
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
22
+ /**
23
+ * The root of the git repository containing `dir`: the nearest ancestor
24
+ * (`dir` included) that holds a `.git` directory or worktree file. Null
25
+ * outside any repository.
26
+ */
27
+ export function findRepoRoot(dir) {
28
+ let current = resolve(dir);
29
+ for (;;) {
30
+ if (existsSync(join(current, '.git')))
31
+ return current;
32
+ const parent = dirname(current);
33
+ if (parent === current)
34
+ return null;
35
+ current = parent;
36
+ }
37
+ }
38
+ /** The deepest existing directory on the way up from `path`. */
39
+ function nearestExistingDir(path) {
40
+ let current = resolve(path);
41
+ for (;;) {
42
+ try {
43
+ if (statSync(current).isDirectory())
44
+ return current;
45
+ }
46
+ catch {
47
+ // Not created yet: a Write may create the file and its directories.
48
+ }
49
+ const parent = dirname(current);
50
+ if (parent === current)
51
+ return current;
52
+ current = parent;
53
+ }
54
+ }
55
+ function realPath(p) {
56
+ try {
57
+ return realpathSync.native(p);
58
+ }
59
+ catch {
60
+ return resolve(p);
61
+ }
62
+ }
63
+ /**
64
+ * The directory to resolve the project from for a file the agent writes.
65
+ *
66
+ * The work dir, unless the file belongs to ANOTHER git repository than the
67
+ * work dir: then that repository's root, whose `.cybedefend/config.json` and
68
+ * `origin` name the file's project. A file of the same repository, or outside
69
+ * any repository, keeps the work dir, as before.
70
+ */
71
+ export function projectDirForFile(file, workDir) {
72
+ if (file.length === 0 || file.includes('$'))
73
+ return workDir;
74
+ const absolute = isAbsolute(file) ? file : resolve(workDir, file);
75
+ const fileRoot = findRepoRoot(nearestExistingDir(dirname(absolute)));
76
+ if (fileRoot === null)
77
+ return workDir;
78
+ const workRoot = findRepoRoot(nearestExistingDir(workDir));
79
+ if (workRoot !== null && realPath(workRoot) === realPath(fileRoot)) {
80
+ return workDir;
81
+ }
82
+ return fileRoot;
83
+ }
84
+ //# sourceMappingURL=work-dir.js.map
@@ -0,0 +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"}
package/dist/index.js CHANGED
@@ -2,12 +2,14 @@
2
2
  import { spawnSync } from 'node:child_process';
3
3
  import { Command, Option } from 'commander';
4
4
  import updateNotifier from 'update-notifier';
5
+ import { registerMcpCommand } from './commands/mcp/index.js';
5
6
  import { runDoctor } from './doctor.js';
6
7
  import { runInstall } from './install.js';
7
8
  import { runLinkCommand } from './link.js';
8
9
  import { runLoginCommand } from './login.js';
9
10
  import { runLogout } from './logout.js';
10
11
  import { refreshWiredHooks } from './refresh-hooks.js';
12
+ import { runOrgCommand } from './org.js';
11
13
  import { selfUpdate, detectInstallMode, resolveScriptPath, fetchLatestVersion, } from './self-update.js';
12
14
  import { runUpdate } from './update.js';
13
15
  import { runStatus } from './status.js';
@@ -30,16 +32,30 @@ import { pkg } from './version.js';
30
32
  *
31
33
  * `--self` (below) does the actual update, on explicit request.
32
34
  */
33
- const notifier = updateNotifier({
34
- pkg: { name: pkg.name, version: pkg.version },
35
- updateCheckInterval: 1000 * 60 * 60 * 24, // once per day
36
- });
37
- notifier.notify({
38
- message: '🛡️ {packageName} update: {currentVersion} → {latestVersion}\n' +
39
- 'Run `vibedefend update --self` to upgrade.',
40
- defer: false, // print before commander dispatches, not after exit
41
- isGlobal: true,
42
- });
35
+ /**
36
+ * `vibedefend mcp` is spawned by an agent, not by a human: its stdout is a
37
+ * JSON-RPC channel and it must start in milliseconds. The notifier writes to
38
+ * stderr and only when stdout is a TTY, so it would not corrupt the channel,
39
+ * but it also spawns a background registry check on every session start. It
40
+ * is skipped for that one subcommand.
41
+ */
42
+ const isMcpChannel = process.argv[2] === 'mcp';
43
+ if (!isMcpChannel) {
44
+ const notifier = updateNotifier({
45
+ pkg: { name: pkg.name, version: pkg.version },
46
+ updateCheckInterval: 1000 * 60 * 60 * 24, // once per day
47
+ });
48
+ notifier.notify({
49
+ message: '🛡️ {packageName} update: {currentVersion} → {latestVersion}\n' +
50
+ 'Run `vibedefend update --self` to upgrade.',
51
+ defer: false, // print before commander dispatches, not after exit
52
+ isGlobal: true,
53
+ });
54
+ }
55
+ /** Exit once stdout has drained — never truncate output piped through `tee`. */
56
+ function exitAfterFlush(code) {
57
+ process.stdout.write('', () => process.exit(code));
58
+ }
43
59
  const program = new Command();
44
60
  program
45
61
  .name('vibedefend')
@@ -53,6 +69,11 @@ program
53
69
  .action(async (opts) => {
54
70
  try {
55
71
  await runInstall({}, { force: opts.force, globalCli: opts.global });
72
+ // BACK-174 — the flow is finished; do not let any stray handle (a
73
+ // keep-alive socket, an OS opener) keep the terminal hostage. Exit
74
+ // from the stdout flush callback: on macOS/Windows a pipe drains
75
+ // asynchronously and an immediate exit could drop the footer.
76
+ exitAfterFlush(0);
56
77
  }
57
78
  catch (err) {
58
79
  const message = err instanceof Error ? err.message : String(err);
@@ -128,6 +149,7 @@ program
128
149
  'Opens your browser to the Logto sign-in page, receives the callback locally, ' +
129
150
  'and stores the token bundle (access + refresh) in your OS keychain.')
130
151
  .option('--force', 'Re-authenticate even if credentials are already stored.')
152
+ .option('--organization <id>', 'Select this organization after signing in (needed when you belong to several).')
131
153
  .action(async (opts) => {
132
154
  try {
133
155
  await runLoginCommand(opts);
@@ -159,13 +181,15 @@ program
159
181
  program
160
182
  .command('link')
161
183
  .description('Link a repository to a CybeDefend project: resolves the project (via --project, ' +
162
- 'the git origin, or an interactive picker) and writes .cybedefend/config.json.')
184
+ 'the git origin, or an interactive picker that can also create one) and writes ' +
185
+ '.cybedefend/config.json.')
163
186
  .option('--project <id>', 'Project UUID to link directly, skipping auto-discovery.')
164
187
  .option('--path <dir>', 'Directory to write .cybedefend/config.json into (default: current directory).')
165
188
  .option('--region <id>', 'Region id to use when VibeDefend is not installed yet (e.g. eu, us).')
166
189
  .action(async (opts) => {
167
190
  try {
168
191
  await runLinkCommand(opts);
192
+ exitAfterFlush(0); // BACK-174 — same rationale as `install`.
169
193
  }
170
194
  catch (err) {
171
195
  const message = err instanceof Error ? err.message : String(err);
@@ -179,13 +203,21 @@ program
179
203
  });
180
204
  program
181
205
  .command('uninstall')
182
- .description('Remove VibeDefend from this machine: hooks + MCP server from every agent, stored credentials, and ~/.cybedefend/.')
206
+ .description('Remove VibeDefend from this machine: MCP servers taken back out of the proxy, hooks + MCP server from every agent, stored credentials, and ~/.cybedefend/.')
183
207
  .option('--yes', 'Skip the confirmation prompt.')
184
208
  .action(async (opts) => {
185
209
  const r = await runUninstall(opts);
186
210
  if (r.clients.some((c) => c.error))
187
211
  process.exitCode = 1;
188
212
  });
213
+ program
214
+ .command('org')
215
+ .description('Show the organization VibeDefend works under and its MCP policy, or select one by id.')
216
+ .argument('[id]', 'Organization id to select (must be one you belong to).')
217
+ .option('--json', 'Machine-readable output.')
218
+ .action(async (id, opts) => {
219
+ process.exitCode = await runOrgCommand(id, opts);
220
+ });
189
221
  program
190
222
  .command('status')
191
223
  .description('Show the VibeDefend install state: region, agents, caches, and a live API check.')
@@ -200,6 +232,7 @@ program
200
232
  .action(async (opts) => {
201
233
  await runDoctor(opts);
202
234
  });
235
+ registerMcpCommand(program, pkg.version);
203
236
  program.parseAsync(process.argv).catch((err) => {
204
237
  // Global safety net: Ctrl-C at any inquirer prompt (e.g. `update`,
205
238
  // `doctor`) throws ExitPromptError — exit cleanly instead of printing an
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/install.js CHANGED
@@ -12,8 +12,11 @@ import { hasStoredAuth as hasStoredAuthImpl } from './auth/auth.js';
12
12
  import { ensureOrganization as ensureOrganizationImpl } from './org-gate.js';
13
13
  import { askClientSelection as askClientSelectionImpl, askHookConfig as askHookConfigImpl, askRegion as askRegionImpl, } from './prompts.js';
14
14
  import { stampInstalledVersion } from './self-update.js';
15
- import { detectPlatform, home, isUserCancellation, log } from './utils.js';
15
+ import { detectPlatform, ensureGitignoreEntry, findGitRoot, home, isUserCancellation, log, } from './utils.js';
16
+ import { existsSync } from 'node:fs';
17
+ import { join } from 'node:path';
16
18
  import { pkg } from './version.js';
19
+ import { AGENT_SIGN_IN_LABELS } from './mcp/auth/agent-sign-ins.js';
17
20
  /**
18
21
  * Top-level installer.
19
22
  *
@@ -104,11 +107,10 @@ export async function runInstall(deps = {}, opts = {}) {
104
107
  log.hint('Your browser will open for a one-time sign-in (instant if you already have a session).');
105
108
  // Force the actual OAuth here. We only reach this branch when VibeDefend
106
109
  // has NO stored bundle of its OWN (hasStoredAuth === false), or the user
107
- // asked for it (--force). A token that merely belongs to a coding agent —
108
- // which `runLogin`'s internal `resolveToken` check would match and use to
109
- // short-circuit — must NOT skip the browser step: otherwise `logout` +
110
- // `install` silently signs you back in whenever Claude Code / Codex still
111
- // hold an MCP token, and the org-gate never gets a fresh VibeDefend token.
110
+ // asked for it (--force). `runLogin` now asks the same `hasStoredAuth`
111
+ // question (never the agent keychain), so `force` is only there to honour
112
+ // the user's explicit --force; a token that merely belongs to Claude Code
113
+ // / Codex can no longer short-circuit the browser step on either side.
112
114
  const loginOk = await loginWithOneRetry({
113
115
  mcpName: region.mcpName,
114
116
  apiBase: region.apiBase,
@@ -131,13 +133,17 @@ export async function runInstall(deps = {}, opts = {}) {
131
133
  dashboardUrl: deriveDashboardUrl(region),
132
134
  mcpName: region.mcpName,
133
135
  });
136
+ // ── ③b Repo hygiene ─────────────────────────────────────────────────────────
137
+ // BACK-174 — when the installer runs inside an already-linked checkout,
138
+ // make sure the link stays out of the repository.
139
+ ensureLinkIgnored(deps.cwd ?? process.cwd());
134
140
  // ── ④ Agents + hook config ──────────────────────────────────────────────────
135
141
  const selectedClients = await askClientSelection();
136
142
  if (selectedClients.length === 0) {
137
143
  log.info('No agents selected. The MCP URL is printed above — add it to your client manually if needed. ' +
138
144
  'The doctrine arrives via Server.instructions on every supported client.');
139
145
  stampInstalledVersion(home, pkg.version);
140
- printDoneFooter([], region);
146
+ printDoneFooter([], region, null);
141
147
  return;
142
148
  }
143
149
  const hooks = await askHookConfig();
@@ -214,10 +220,25 @@ export async function runInstall(deps = {}, opts = {}) {
214
220
  }
215
221
  stampInstalledVersion(home, pkg.version);
216
222
  log.hint(`Version stamp: ~/.cybedefend/version (v${pkg.version})`);
223
+ // Put the MCP proxy in front of whatever MCP servers this machine already
224
+ // has — asked, yes by default — then offer to sign in to the HTTP ones it
225
+ // now reaches. Wrapping is the same operation as `vibedefend sync`; the
226
+ // sign-in is `vibedefend connect --all`. A failure is reported and never
227
+ // fatal: the rest of the install is done and useful without it.
228
+ await setUpMcpProxy(await defaultMcpProxyDeps(confirm));
217
229
  // NOTE: the pre-1.4 end-of-install auto-login used to live here. Login now
218
230
  // happens FIRST (step ② above) — by this point the user is guaranteed to be
219
231
  // authenticated, so there is nothing left to do.
220
- printDoneFooter(installedLabels, region, notSetUpLabels);
232
+ printDoneFooter(installedLabels, region, hooks.activation, notSetUpLabels);
233
+ }
234
+ /** Add `.cybedefend/` to the repo-root `.gitignore` when `cwd` carries a project link. */
235
+ function ensureLinkIgnored(cwd) {
236
+ if (!existsSync(join(cwd, '.cybedefend', 'config.json')))
237
+ return;
238
+ const gitRoot = findGitRoot(cwd);
239
+ if (gitRoot !== null && ensureGitignoreEntry(gitRoot, '.cybedefend/')) {
240
+ log.hint(`Added \`.cybedefend/\` to ${join(gitRoot, '.gitignore')}`);
241
+ }
221
242
  }
222
243
  /**
223
244
  * After a region switch, re-point the MCP server of the agents left out of
@@ -258,6 +279,140 @@ function repointUnselectedClients(selected, region) {
258
279
  }
259
280
  }
260
281
  }
282
+ /**
283
+ * The install's MCP proxy step. It used to wrap every MCP server without
284
+ * asking and leave the HTTP ones unauthorized (`needs-auth` until one
285
+ * `vibedefend connect` per server). Now: put the proxy in front (or keep it),
286
+ * yes by default; take over, without asking, the sign-ins Claude Code or Codex
287
+ * already hold for those servers; then offer the browser, yes by default, for
288
+ * the ones left. Declining an installed proxy takes it back out.
289
+ */
290
+ export async function setUpMcpProxy(deps) {
291
+ const installed = deps.isProxyInstalled();
292
+ const enable = await deps.confirm({
293
+ message: `${installed ? 'Keep' : 'Put'} the VibeDefend proxy in front of your MCP servers? ${kleur.dim('(recommended — each tool is checked against your organization policy before your agent calls it)')}`,
294
+ default: true,
295
+ });
296
+ if (!enable) {
297
+ if (installed) {
298
+ await deps.unwrap();
299
+ return 'removed';
300
+ }
301
+ log.hint('MCP proxy not enabled — `vibedefend sync` puts it in front of your MCP servers later.');
302
+ return 'declined';
303
+ }
304
+ const { httpServers } = await deps.wrap();
305
+ if (httpServers === 0)
306
+ return 'wrapped';
307
+ // The agents' sign-ins first: nothing to ask, nothing opens.
308
+ let left = httpServers;
309
+ let names = [];
310
+ try {
311
+ const { reused, remaining } = await deps.takeOverSignIns();
312
+ if (reused.length > 0) {
313
+ log.ok(`Signed in with the sign-ins your agents already hold: ${reused
314
+ .map((server) => `${server.name} (${AGENT_SIGN_IN_LABELS[server.from]})`)
315
+ .join(', ')}`);
316
+ }
317
+ left = remaining.length;
318
+ names = remaining;
319
+ }
320
+ catch {
321
+ // Reading the agents' stores failed: the browser covers every server.
322
+ }
323
+ if (left === 0)
324
+ return 'wrapped';
325
+ const listed = names.length > 0 && names.length <= 5 ? ` (${names.join(', ')})` : '';
326
+ const signIn = await deps.confirm({
327
+ message: `Sign in in your browser to the ${left} HTTP MCP server${left === 1 ? '' : 's'} still without a sign-in${listed}? ${kleur.dim('(your browser opens once for each)')}`,
328
+ default: true,
329
+ });
330
+ if (signIn)
331
+ await deps.connectAll();
332
+ else
333
+ log.hint('Sign in later with `vibedefend connect --all`, or `vibedefend connect <name>` for one server.');
334
+ return 'wrapped';
335
+ }
336
+ /** The proxy step's real dependencies, its modules imported only when it runs. */
337
+ async function defaultMcpProxyDeps(confirm) {
338
+ const [{ isProxyInstalled }, { httpUpstreams }] = await Promise.all([
339
+ import('./mcp/config/installed.js'),
340
+ import('./mcp/proxy/upstreams.js'),
341
+ ]);
342
+ return {
343
+ confirm,
344
+ isProxyInstalled: () => isProxyInstalled(process.env),
345
+ wrap: async () => {
346
+ await wrapMcpServersBehindTheProxy();
347
+ // One server can sit in several clients' configs: count servers, not entries.
348
+ const urls = httpUpstreams(process.env).map((entry) => (entry.url ?? '').replace(/\/+$/, ''));
349
+ return { httpServers: new Set(urls).size };
350
+ },
351
+ unwrap: async () => {
352
+ try {
353
+ const [{ uninstallProxy }, { withSyncLock }] = await Promise.all([
354
+ import('./mcp/config/install.js'),
355
+ import('./mcp/config/lock.js'),
356
+ ]);
357
+ const outcome = await withSyncLock(() => uninstallProxy({ env: process.env, backup: true }));
358
+ if (outcome)
359
+ log.ok('The VibeDefend proxy is out: your MCP servers are back to their original entries.');
360
+ else
361
+ log.warn('Another VibeDefend process is rewriting your MCP configs — run `vibedefend unwrap` again in a moment.');
362
+ }
363
+ catch (err) {
364
+ log.warn(`Could not take the proxy back out: ${err instanceof Error ? err.message : String(err)}. Run \`vibedefend unwrap\`.`);
365
+ }
366
+ },
367
+ takeOverSignIns: async () => {
368
+ const { takeOverAgentSignIns } = await import('./commands/mcp/connect.js');
369
+ return takeOverAgentSignIns({ env: process.env, version: pkg.version });
370
+ },
371
+ connectAll: async () => {
372
+ const { runMcpConnectCommand } = await import('./commands/mcp/connect.js');
373
+ await runMcpConnectCommand({ all: true }, { env: process.env, version: pkg.version });
374
+ },
375
+ };
376
+ }
377
+ /**
378
+ * The Phase 5 step of `docs/PLAN-mcp-proxy.md`, called at the end of the
379
+ * install so that a developer who has just run `vibedefend install` has
380
+ * nothing left to do.
381
+ *
382
+ * The MCP modules are imported lazily: `install` is the hot path of a CLI
383
+ * that people run once, and pulling the proxy's config layer in at module
384
+ * load would cost every other command too.
385
+ */
386
+ async function wrapMcpServersBehindTheProxy() {
387
+ try {
388
+ const [{ installProxy, installRefusalMessage }, { withSyncLock }] = await Promise.all([
389
+ import('./mcp/config/install.js'),
390
+ import('./mcp/config/lock.js'),
391
+ ]);
392
+ const outcome = await withSyncLock(() => installProxy({ env: process.env, backup: true }));
393
+ if (!outcome)
394
+ return;
395
+ if (outcome.refused) {
396
+ // Nothing was written. The message names the fix; the rest of the
397
+ // install is done and useful without this step.
398
+ log.warn(installRefusalMessage(outcome.refused, 'vibedefend install'));
399
+ return;
400
+ }
401
+ const plan = outcome.plan;
402
+ const wrapped = plan.changes.filter((change) => change.kind === 'wrap').length;
403
+ if (wrapped > 0) {
404
+ log.ok(`${wrapped} MCP server${wrapped === 1 ? '' : 's'} now run behind the VibeDefend proxy. ` +
405
+ 'Run `vibedefend scan` to see them, `vibedefend unwrap` to undo it.');
406
+ }
407
+ for (const problem of plan.problems) {
408
+ log.warn(`Left ${problem.location.file} alone: ${problem.problem}.`);
409
+ }
410
+ }
411
+ catch (err) {
412
+ log.warn(`Could not put the MCP proxy in front of your servers: ${err instanceof Error ? err.message : String(err)}. ` +
413
+ 'Run `vibedefend sync` to try again.');
414
+ }
415
+ }
261
416
  /**
262
417
  * Run the login flow with exactly one confirm-gated retry.
263
418
  * Returns true when a login attempt succeeded, false when the user declined
@@ -300,7 +455,7 @@ function banner() {
300
455
  console.log(kleur.dim(' Sets up the MCP server, hooks, and project link.'));
301
456
  console.log();
302
457
  }
303
- function printDoneFooter(installedLabels, region, notSetUpLabels = []) {
458
+ function printDoneFooter(installedLabels, region, activation, notSetUpLabels = []) {
304
459
  console.log();
305
460
  log.ok('Install complete.');
306
461
  console.log();
@@ -313,10 +468,17 @@ function printDoneFooter(installedLabels, region, notSetUpLabels = []) {
313
468
  log.warn(`Not set up: ${notSetUpLabels.join(', ')} — see the warning above, then run \`vibedefend install\` again.`);
314
469
  console.log();
315
470
  }
471
+ const optIn = activation === 'opt-in';
316
472
  console.log(kleur.bold('Next steps:'));
317
473
  console.log(` ${kleur.cyan('1.')} Open your IDE in your repo — you are already signed in, so the MCP tools work right away.`);
318
- console.log(` ${kleur.cyan('2.')} Repos imported from GitHub/GitLab are matched to their CybeDefend project ` +
319
- `automatically via the git origin — nothing to do.`);
474
+ if (optIn) {
475
+ console.log(` ${kleur.cyan('2.')} Activation is ${kleur.bold('opt-in')}: VibeDefend stays off until you link a repo ` +
476
+ `(${kleur.dim('`vibedefend link`')} in each repo you want covered).`);
477
+ }
478
+ else {
479
+ console.log(` ${kleur.cyan('2.')} Repos imported from GitHub/GitLab are matched to their CybeDefend project ` +
480
+ `automatically via the git origin — nothing to do.`);
481
+ }
320
482
  console.log(` ${kleur.cyan('3.')} For any other repo, link it once: ${kleur.dim('`vibedefend link`')} ` +
321
483
  `(or ${kleur.dim('`npx -y @cybedefend/vibedefend@latest link`')}).`);
322
484
  console.log(kleur.dim(' A `.cybedefend/config.json` with { "projectId": "<uuid>" } remains a supported override.'));
@@ -327,6 +489,7 @@ function printDoneFooter(installedLabels, region, notSetUpLabels = []) {
327
489
  console.log(kleur.dim(' CYBEDEFEND_AUTO_PROPOSE — 1 = auto, 0 = ask user'));
328
490
  console.log(kleur.dim(' CYBEDEFEND_NON_BLOCKING — 1 = no Accept/Reject prompts (autonomous agents), 0 = interactive'));
329
491
  console.log(kleur.dim(' CYBEDEFEND_PROJECT_ID — override .cybedefend/config.json'));
492
+ console.log(kleur.dim(' CYBEDEFEND_ACTIVATION — auto | opt-in (override the install-time choice)'));
330
493
  console.log();
331
494
  }
332
495
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,0BAA0B,GAE3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAC5C,aAAa,IAAI,iBAAiB,EAClC,SAAS,IAAI,aAAa,GAE3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AA0CnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAoB,EAAE,EACtB,OAAiD,EAAE;IAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;IAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,sBAAsB,CAAC;IAC7E,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,sBAAsB,CAAC;IAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IAE7E,+EAA+E;IAC/E,wEAAwE;IACxE,4EAA4E;IAC5E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,CAAC,+DAA+D;QACzE,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC;IAET,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAE/C,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,qCAAqC,CAAC,CAAC;IAC5E,CAAC;IAED,+EAA+E;IAC/E,0EAA0E;IAC1E,0DAA0D;IAC1D,MAAM,cAAc,GAAG,iBAAiB,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,GAAG,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAExC,8EAA8E;IAC9E,EAAE;IACF,oEAAoE;IACpE,2EAA2E;IAC3E,yEAAyE;IACzE,yDAAyD;IACzD,EAAE;IACF,uEAAuE;IACvE,sEAAsE;IACtE,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,EAAE;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,aAAa,GAChB,MAAqC,CAAC,aAAa;QACpD,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,EAAE,CAAC,yDAAyD,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,CACN,iEAAiE,MAAM,CAAC,KAAK,GAAG,CACjF,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAClC,GAAG,CAAC,IAAI,CACN,wFAAwF,CACzF,CAAC;QACF,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,uEAAuE;QACvE,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa;YACb,KAAK,EAAE,IAAI;SACZ,EACD,QAAQ,EACR,OAAO,CACR,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CACL,8DAA8D;gBAC5D,+DAA+D,CAClE,CAAC;YACF,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,OAAO,CAAC,2DAA2D;QACrE,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,kBAAkB,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,+EAA+E;IAC/E,MAAM,eAAe,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAEnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CACN,+FAA+F;YAC7F,yEAAyE,CAC5E,CAAC;QACF,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IAEpC,oEAAoE;IACpE,+DAA+D;IAC/D,+DAA+D;IAC/D,kEAAkE;IAClE,oEAAoE;IACpE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC;QACnC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC7C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC;YACpD,MAAM;YACN,KAAK;YACL,gBAAgB,EAAE,GAAG,CAAC,OAAO;SAC9B,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CACN,wFAAwF,CACzF,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC;gBACnC,OAAO,CAAC,aAAa,CAAC;oBACpB,uDAAuD;oBACvD,gEAAgE;oBAChE,8DAA8D;oBAC9D,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC5B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;oBAC9C,MAAM;oBACN,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChF,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,oBAAoB,OAAO,GAAG,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzD,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IACE,OAAO,cAAc,EAAE,MAAM,KAAK,QAAQ;QAC1C,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EACjD,CAAC;QACD,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CACN,2EAA2E;YACzE,wEAAwE;YACxE,kFAAkF;YAClF,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CACN,0EAA0E;YACxE,gFAAgF;YAChF,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,IAAI,CAAC,0CAA0C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAEnE,2EAA2E;IAC3E,4EAA4E;IAC5E,iDAAiD;IAEjD,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAC/B,QAA6B,EAC7B,MAAoB;IAEpB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,GAAG,CAAC,IAAI,CACN,iFAAiF,KAAK;SACnF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC;YACvD,IAAI,SAAS;gBAAE,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CACN,sBAAsB,OAAO,CAAC,KAAK,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CACN,GAAG,OAAO,CAAC,KAAK,0FAA0F,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,iBAAiB,CAC9B,SAKC,EACD,QAA8C,EAC9C,OAA4C;IAE5C,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,kBAAkB,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;QAC1B,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,kBAAkB,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,MAAM;IACb,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAC3D,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAChE,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CACtB,eAAyB,EACzB,MAAoB,EACpB,iBAA2B,EAAE;IAE7B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;YACjC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxD,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CACN,eAAe,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kEAAkE,CAC3G,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4FAA4F,CAClH,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6EAA6E;QAChG,mDAAmD,CACtD,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG;QAC1F,OAAO,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,IAAI,CACtE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,+FAA+F,CAChG,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAC3H,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAC7E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CACjF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CACvE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,sGAAsG,CACvG,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CACjF,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}