@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
package/dist/link.js CHANGED
@@ -4,10 +4,12 @@
4
4
  * Writes `<path>/.cybedefend/config.json` with the resolved `projectId`,
5
5
  * MERGING into any existing file (so a hand-authored `apiBase` override
6
6
  * survives — but ONLY when its origin is one the user trusts; see
7
- * `hooks/runtime/trusted-api-base.ts`. The file is committed, so an `apiBase`
8
- * found there may have been authored by whoever published the repo). No secret
9
- * is ever written — the config only ever carries the project id (and whatever
10
- * keys were already there).
7
+ * `hooks/runtime/trusted-api-base.ts`. The file MAY be committed — `link`
8
+ * adds `.cybedefend/` to `.gitignore` since BACK-174, but nothing stops a
9
+ * repo author from force-adding it — so an `apiBase` found there may have
10
+ * been authored by whoever published the repo). No secret is ever written —
11
+ * the config only ever carries the project id (and whatever keys were already
12
+ * there).
11
13
  *
12
14
  * Flow (spec §2.2):
13
15
  * 1. Region — from `~/.cybedefend/runtime-config.json` when present,
@@ -18,7 +20,8 @@
18
20
  * mcpName, run the browser PKCE login. A failed login aborts.
19
21
  * 3. Project — `--project <id>` (validated + confirmed), else auto-resolve
20
22
  * from the git origin (exactly one gateway match → confirm),
21
- * else an interactive organization → project picker.
23
+ * else an interactive organization → project picker, which
24
+ * can also create a project (BACK-230, `project-create.ts`).
22
25
  * 4. Path — prompt for the on-disk location (default: cwd), validating
23
26
  * that the directory exists. An invalid `--path` falls through
24
27
  * to the prompt.
@@ -38,13 +41,14 @@ import { hasStoredAuth as hasStoredAuthImpl } from './auth/auth.js';
38
41
  import { REGIONS } from './config.js';
39
42
  import { loadCustomRegions } from './custom-regions.js';
40
43
  import { deriveLogtoEndpoint } from './endpoints.js';
41
- import { getOriginRemote as getOriginRemoteImpl, parseRemoteUrl } from './git.js';
44
+ import { getOriginRemote as getOriginRemoteImpl, parseRemoteUrl, } from './git.js';
42
45
  import { loadRuntimeConfig as loadRuntimeConfigImpl } from './hooks/runtime/config.js';
43
46
  import { resolveTokenWithRefresh } from './hooks/runtime/resolve.js';
44
47
  import { sanitizeRepoApiBase } from './hooks/runtime/trusted-api-base.js';
45
48
  import { runLogin as runLoginImpl } from './login.js';
46
49
  import { readJson, writeJson } from './json-file.js';
47
- import { log } from './utils.js';
50
+ import { CREATE_PROJECT_CHOICE, createProjectInteractively, } from './project-create.js';
51
+ import { ensureGitignoreEntry, findGitRoot, log } from './utils.js';
48
52
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
49
53
  // ─── Small helpers ────────────────────────────────────────────────────────────
50
54
  function defaultIsDirectory(p) {
@@ -185,37 +189,35 @@ async function resolveProject(opts, deps, region) {
185
189
  const cwd = deps.cwd ?? process.cwd();
186
190
  const getOrigin = deps.getOriginRemote ?? getOriginRemoteImpl;
187
191
  const originUrl = getOrigin(cwd);
188
- if (originUrl) {
189
- const remote = parseRemoteUrl(originUrl);
190
- if (remote?.provider) {
191
- const resolveByRepo = deps.resolveProjectByRepository ?? resolveProjectByRepositoryImpl;
192
- const matches = await resolveByRepo(region.apiBase, token, {
193
- provider: remote.provider,
194
- slug: remote.slug,
195
- host: remote.host,
192
+ const remote = originUrl ? parseRemoteUrl(originUrl) : null;
193
+ if (remote?.provider) {
194
+ const resolveByRepo = deps.resolveProjectByRepository ?? resolveProjectByRepositoryImpl;
195
+ const matches = await resolveByRepo(region.apiBase, token, {
196
+ provider: remote.provider,
197
+ slug: remote.slug,
198
+ host: remote.host,
199
+ });
200
+ if (matches === null) {
201
+ // Network / gateway failure — not "no match". Tell the user why the
202
+ // auto-detection is being skipped instead of silently degrading.
203
+ log.warn('Could not check the gateway for this repository — falling back to manual selection.');
204
+ }
205
+ else if (matches.length === 1) {
206
+ const m = matches[0];
207
+ const ok = await confirm({
208
+ message: `Link this repo to "${m.projectName}" (${m.projectId})?`,
209
+ default: true,
196
210
  });
197
- if (matches === null) {
198
- // Network / gateway failure — not "no match". Tell the user why the
199
- // auto-detection is being skipped instead of silently degrading.
200
- log.warn('Could not check the gateway for this repository — falling back to manual selection.');
201
- }
202
- else if (matches.length === 1) {
203
- const m = matches[0];
204
- const ok = await confirm({
205
- message: `Link this repo to « ${m.projectName} » (${m.projectId})?`,
206
- default: true,
207
- });
208
- if (ok) {
209
- return { projectId: m.projectId, projectName: m.projectName };
210
- }
211
- // Declined → fall through to manual selection below.
211
+ if (ok) {
212
+ return { projectId: m.projectId, projectName: m.projectName };
212
213
  }
214
+ // Declined → fall through to manual selection below.
213
215
  }
214
216
  }
215
- // 3. Interactive organization → project picker.
216
- return selectProjectInteractively(deps, region, token);
217
+ // 3. Interactive organization → project picker (or creation).
218
+ return selectProjectInteractively(deps, region, token, remote, cwd);
217
219
  }
218
- async function selectProjectInteractively(deps, region, token) {
220
+ async function selectProjectInteractively(deps, region, token, remote, cwd) {
219
221
  const listOrgs = deps.listOrganizations ?? listOrganizationsImpl;
220
222
  const orgs = await listOrgs(region.apiBase, token);
221
223
  if (!orgs) {
@@ -230,16 +232,24 @@ async function selectProjectInteractively(deps, region, token) {
230
232
  message: 'Organization:',
231
233
  choices: orgs.map((o) => ({ name: o.name, value: o.id })),
232
234
  });
235
+ const createInOrg = () => createProjectInteractively({ apiBase: region.apiBase, token, organizationId: orgId, remote, cwd }, deps);
233
236
  const listProjs = deps.listProjects ?? listProjectsImpl;
234
237
  // Initial unfiltered fetch. This distinguishes "the organization has no
235
- // projects at all" (clean failure — a search loop could never succeed)
236
- // from "this particular search matched nothing" (retry another query).
238
+ // projects at all" (offer to create one — a search loop could never
239
+ // succeed) from "this particular search matched nothing" (retry).
237
240
  const initial = await listProjs(region.apiBase, token, orgId, undefined);
238
241
  if (!initial) {
239
242
  throw new Error('Could not list projects (gateway unreachable).');
240
243
  }
241
244
  if (initial.length === 0) {
242
- throw new Error('This organization has no projects yet — create one in the dashboard first.');
245
+ const create = await confirm({
246
+ message: 'This organization has no projects yet. Create one now?',
247
+ default: true,
248
+ });
249
+ if (!create) {
250
+ throw new Error('This organization has no projects yet — create one in the dashboard first.');
251
+ }
252
+ return createInOrg();
243
253
  }
244
254
  // ≥1 project exists — loop so an empty search result lets the user try
245
255
  // another query. An empty search reuses the initial list (gateway caps the
@@ -261,12 +271,21 @@ async function selectProjectInteractively(deps, region, token) {
261
271
  }
262
272
  const picked = await select({
263
273
  message: 'Project:',
264
- choices: projects.map((p) => ({
265
- name: `${p.name} ${kleur.dim(`(${p.projectId})`)}`,
266
- value: p,
267
- short: p.name,
268
- })),
274
+ choices: [
275
+ ...projects.map((p) => ({
276
+ name: `${p.name} ${kleur.dim(`(${p.projectId})`)}`,
277
+ value: p,
278
+ short: p.name,
279
+ })),
280
+ {
281
+ name: kleur.green('+ Create a new project'),
282
+ value: CREATE_PROJECT_CHOICE,
283
+ short: 'New project',
284
+ },
285
+ ],
269
286
  });
287
+ if (picked === CREATE_PROJECT_CHOICE)
288
+ return createInOrg();
270
289
  return { projectId: picked.projectId, projectName: picked.name };
271
290
  }
272
291
  }
@@ -286,13 +305,11 @@ async function resolveTargetPath(opts, deps) {
286
305
  log.warn(`--path "${opts.path}" is not an existing directory.`);
287
306
  }
288
307
  const answer = await input({
289
- message: 'Où se trouve le projet sur votre poste ?',
308
+ message: 'Where is the project on this machine?',
290
309
  default: cwd,
291
310
  validate: (v) => {
292
311
  const p = resolvePath(expandHome((v || '').trim() || cwd));
293
- return isDir(p)
294
- ? true
295
- : 'Ce dossier n’existe pas — indiquez un chemin valide.';
312
+ return isDir(p) ? true : 'This folder does not exist: enter a valid path.';
296
313
  },
297
314
  });
298
315
  return resolvePath(expandHome((answer || '').trim() || cwd));
@@ -337,13 +354,22 @@ export async function runLinkCommand(opts = {}, deps = {}) {
337
354
  merged.apiBase = trusted;
338
355
  }
339
356
  writeJson(configPath, merged);
357
+ // BACK-174 — the link is a property of THIS checkout, not of the code: keep
358
+ // it out of the repository. Written at the git ROOT (a root entry without a
359
+ // leading slash matches at any depth) and only inside a git checkout.
360
+ // (Teams that prefer to share the link can drop the line; the hooks read
361
+ // the file either way.)
362
+ const gitRoot = findGitRoot(targetPath);
363
+ if (gitRoot !== null && ensureGitignoreEntry(gitRoot, '.cybedefend/')) {
364
+ log.hint(`Added \`.cybedefend/\` to the .gitignore of ${gitRoot}`);
365
+ }
340
366
  const label = project.projectName
341
367
  ? `${project.projectName} (${project.projectId})`
342
368
  : project.projectId;
343
- log.ok(`Projet lié — ${label}`);
344
- log.hint(`Configuration écrite dans ${configPath}`);
369
+ log.ok(`Project linked: ${label}`);
370
+ log.hint(`Configuration written to ${configPath}`);
345
371
  if (!runtimeConfigPresent) {
346
- log.hint('Astuce : lancez `vibedefend install` pour configurer le MCP et les hooks.');
372
+ log.hint('Tip: run `vibedefend install` to set up the MCP server and the hooks.');
347
373
  }
348
374
  return {
349
375
  projectId: project.projectId,
package/dist/link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
package/dist/login.js CHANGED
@@ -16,6 +16,8 @@
16
16
  * (Linux/Windows).
17
17
  * 9. Pre-seed the guards cache for a warm first hook call.
18
18
  * 10. Decode the id_token to extract the user email for the confirmation line.
19
+ * 11. Select the organization this machine works under (`src/org.ts`): the
20
+ * MCP verification routes are org-scoped, so a login says which one.
19
21
  *
20
22
  * The --token <jwt> flag has been removed. Use `vibedefend login` interactively
21
23
  * or obtain a token via the dashboard PAT flow (see PatUsageGuide).
@@ -26,13 +28,16 @@ import { join } from 'node:path';
26
28
  import { existsSync, readFileSync } from 'node:fs';
27
29
  import kleur from 'kleur';
28
30
  import { deriveLogtoEndpoint } from './endpoints.js';
29
- import { resolveToken } from './hooks/runtime/resolve.js';
30
31
  import { log } from './utils.js';
31
32
  import { randomBase64url, pkceChallenge } from './auth/pkce.js';
32
33
  import { startCallbackServer } from './auth/callback-server.js';
33
34
  import { exchangeCodeForTokens } from './auth/token-exchange.js';
34
35
  import { loadAuth, storeAuth } from './auth/auth-store.js';
35
- import { isAuthFrom } from './auth/auth.js';
36
+ import { liftViolationHolds } from './hooks/runtime/guard-violations-buffer.js';
37
+ import { hasUsableStoredAuth, isAuthFrom } from './auth/auth.js';
38
+ import { listOrganizations as listOrganizationsImpl } from './api/projects.js';
39
+ import { saveRuntimeOrganization } from './hooks/runtime/config.js';
40
+ import { chooseOrganization, formatOrganizationList } from './org.js';
36
41
  /**
37
42
  * Fetch the CLI OAuth client_id and API resource URL from the public
38
43
  * GET /client-apps gateway endpoint.
@@ -123,10 +128,27 @@ export function openBrowser(url) {
123
128
  }
124
129
  }
125
130
  /**
126
- * Reject a promise after `ms` milliseconds with a descriptive timeout error.
131
+ * Reject after `ms` milliseconds with a descriptive timeout error, and expose
132
+ * `cancel` so the caller can drop the timer once the race is won.
133
+ *
134
+ * BACK-174: this timer used to be left pending after a SUCCESSFUL sign-in. A
135
+ * live 5-minute timeout keeps Node's event loop alive, so `vibedefend
136
+ * install` / `link` sat on a blinking cursor after "Install complete" until
137
+ * it fired. (`vibedefend login` hid the same leak behind an explicit
138
+ * process.exit.)
127
139
  */
128
140
  function timeoutAfter(ms) {
129
- return new Promise((_, reject) => setTimeout(() => reject(new Error(`Login timed out after ${ms / 60_000} minutes — no callback received.`)), ms));
141
+ let handle;
142
+ const promise = new Promise((_, reject) => {
143
+ handle = setTimeout(() => reject(new Error(`Login timed out after ${ms / 60_000} minutes — no callback received.`)), ms);
144
+ });
145
+ return {
146
+ promise,
147
+ cancel: () => {
148
+ if (handle !== undefined)
149
+ clearTimeout(handle);
150
+ },
151
+ };
130
152
  }
131
153
  /**
132
154
  * Decode the `email` claim from an id_token JWT without verifying the
@@ -203,15 +225,23 @@ function loadRuntimeConfigForLogin() {
203
225
  * Exported for testing and for the install chain.
204
226
  */
205
227
  export async function runLogin(opts) {
206
- const { mcpName, mcpUrl, apiBase, logtoEndpoint, force, fetchImpl = globalThis.fetch, openBrowserFn = openBrowser, callbackServerFn = startCallbackServer, } = opts;
207
- // 1. Already logged in — to THIS region? EU and US store their bundle under
208
- // the same MCP name: after a region switch, the bundle on disk was issued
209
- // by the previous region's Logto and is no session here.
228
+ const { mcpName, mcpUrl, apiBase, logtoEndpoint, force, fetchImpl = globalThis.fetch, openBrowserFn = openBrowser, callbackServerFn = startCallbackServer, liftViolationHoldsFn = liftViolationHolds, } = opts;
229
+ // 1. Already logged in?
230
+ //
231
+ // ONE source of truth, for every region: VibeDefend's own OAuth store. The
232
+ // agent keychain (Claude Code / Codex MCP OAuth, read by the legacy
233
+ // `resolveToken`) must NOT answer this question: those tokens belong to the
234
+ // agent and carry no refresh_token we can use.
235
+ //
236
+ // "Logged in" means USABLE (a refresh token, or an access token not yet
237
+ // expired) AND issued by THIS region's Logto: EU and US store their bundle
238
+ // under the same MCP name, so after a region switch the bundle on disk was
239
+ // issued by the previous region and is no session here.
210
240
  const stored = loadAuth(mcpName);
211
- const existingToken = stored !== null && !isAuthFrom(stored, logtoEndpoint)
212
- ? null
213
- : resolveToken(mcpName, { mcpUrl });
214
- if (existingToken && !force) {
241
+ if (stored !== null &&
242
+ isAuthFrom(stored, logtoEndpoint) &&
243
+ hasUsableStoredAuth(mcpName) &&
244
+ !force) {
215
245
  log.warn('Already logged in. Use `vibedefend login --force` to re-authenticate.');
216
246
  return { email: 'unknown' };
217
247
  }
@@ -262,10 +292,12 @@ export async function runLogin(opts) {
262
292
  console.log(kleur.dim(' Waiting for you to sign in...'));
263
293
  // 7. Wait for callback (5 min timeout).
264
294
  let code;
295
+ const timeout = timeoutAfter(5 * 60 * 1000);
265
296
  try {
266
- code = await Promise.race([codePromise, timeoutAfter(5 * 60 * 1000)]);
297
+ code = await Promise.race([codePromise, timeout.promise]);
267
298
  }
268
299
  finally {
300
+ timeout.cancel();
269
301
  await stopServer();
270
302
  }
271
303
  // 8. Exchange code + code_verifier for tokens.
@@ -291,6 +323,10 @@ export async function runLogin(opts) {
291
323
  logtoResource,
292
324
  };
293
325
  storeAuth(mcpName, authBundle);
326
+ // 10b. A new login may be the user's fix for a refused audit push (wrong
327
+ // account, new role): let the next hook post the held-back violations at
328
+ // once instead of waiting out the hour (BACK-240 L2).
329
+ liftViolationHoldsFn();
294
330
  // 11. Pre-seed the guards cache (best-effort).
295
331
  try {
296
332
  await seedGuardsCache(apiBase, tokens.access_token, fetchImpl);
@@ -302,7 +338,55 @@ export async function runLogin(opts) {
302
338
  // 12. Confirm.
303
339
  const email = decodeIdTokenEmail(tokens.id_token);
304
340
  log.ok(`Logged in as ${kleur.bold(email)}`);
305
- return { email };
341
+ // 13. Which organization this machine works under.
342
+ const organization = await selectOrganizationAfterLogin(opts, apiBase, tokens.access_token, fetchImpl);
343
+ return { email, organization };
344
+ }
345
+ /**
346
+ * The organization selection that ends a login. Never fails the login: a
347
+ * list that cannot be obtained, or a choice that cannot be made here, is
348
+ * said in one line with the command that makes it later (`vibedefend org`).
349
+ */
350
+ async function selectOrganizationAfterLogin(opts, apiBase, token, fetchImpl) {
351
+ const listOrganizations = opts.listOrganizationsFn ?? ((base, bearer) => listOrganizationsImpl(base, bearer, { fetchImpl }));
352
+ const save = opts.saveOrganizationFn ?? saveRuntimeOrganization;
353
+ let organizations;
354
+ try {
355
+ organizations = await listOrganizations(apiBase, token);
356
+ }
357
+ catch {
358
+ organizations = null;
359
+ }
360
+ const choice = await chooseOrganization(organizations, {
361
+ requestedId: opts.organization,
362
+ isTTY: opts.isTTY ?? Boolean(process.stdin.isTTY && process.stdout.isTTY),
363
+ selectFn: opts.selectOrganizationFn,
364
+ });
365
+ switch (choice.kind) {
366
+ case 'selected': {
367
+ if (save(choice.organization)) {
368
+ log.ok(`Organization: ${kleur.bold(choice.organization.name)}`);
369
+ }
370
+ else {
371
+ log.warn(`Could not record the organization "${choice.organization.name}" — run \`vibedefend org ${choice.organization.id}\` after \`vibedefend install\`.`);
372
+ }
373
+ return choice.organization;
374
+ }
375
+ case 'ambiguous':
376
+ log.warn('You belong to several organizations. Re-run `vibedefend login --organization <id>` (or `vibedefend org <id>`) with one of:');
377
+ console.log(formatOrganizationList(choice.organizations));
378
+ return null;
379
+ case 'unknown-id':
380
+ log.warn(`No organization "${choice.requested}" among yours. Pick one with \`vibedefend org <id>\`:`);
381
+ console.log(formatOrganizationList(choice.organizations));
382
+ return null;
383
+ case 'unavailable':
384
+ log.warn('Could not list your organizations — select one later with `vibedefend org <id>`.');
385
+ return null;
386
+ case 'none':
387
+ // The install's own organization gate takes it from here.
388
+ return null;
389
+ }
306
390
  }
307
391
  // ─── CLI entry point ──────────────────────────────────────────────────────────
308
392
  /**
@@ -325,6 +409,7 @@ export async function runLoginCommand(opts) {
325
409
  apiBase: regionCfg.apiBase,
326
410
  logtoEndpoint,
327
411
  force: opts.force,
412
+ organization: opts.organization,
328
413
  });
329
414
  }
330
415
  catch (e) {
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}