@mnemonik/cli 7.140.0 → 7.140.2

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 (59) hide show
  1. package/dist/auth/credentials.js +40 -7
  2. package/dist/auth/index.js +40 -7
  3. package/dist/diagnostics.js +40 -7
  4. package/dist/digests.json +57 -53
  5. package/dist/help.d.ts.map +1 -1
  6. package/dist/help.js +50 -4
  7. package/dist/help.js.map +1 -1
  8. package/dist/hooksLog.d.ts +61 -0
  9. package/dist/hooksLog.d.ts.map +1 -0
  10. package/dist/hooksLog.js +350 -0
  11. package/dist/hooksLog.js.map +1 -0
  12. package/dist/humanReason.d.ts.map +1 -1
  13. package/dist/humanReason.js +0 -3
  14. package/dist/humanReason.js.map +1 -1
  15. package/dist/identity/migrate.js +101 -68
  16. package/dist/install/journal.js +40 -7
  17. package/dist/install/journey.d.ts.map +1 -1
  18. package/dist/install/journey.js +40 -10
  19. package/dist/install/journey.js.map +1 -1
  20. package/dist/install/ownership.js +40 -7
  21. package/dist/install/transaction.d.ts.map +1 -1
  22. package/dist/install/transaction.js +41 -9
  23. package/dist/install/transaction.js.map +1 -1
  24. package/dist/install/ui.js +40 -7
  25. package/dist/installation.js +40 -7
  26. package/dist/launcher.js +40 -7
  27. package/dist/preflight.js +200 -163
  28. package/dist/project/eligibility.js +40 -7
  29. package/dist/project/records.js +40 -7
  30. package/dist/project.d.ts +34 -1
  31. package/dist/project.d.ts.map +1 -1
  32. package/dist/project.js +291 -230
  33. package/dist/project.js.map +1 -1
  34. package/dist/router.d.ts +8 -0
  35. package/dist/router.d.ts.map +1 -1
  36. package/dist/router.js +328 -177
  37. package/dist/router.js.map +1 -1
  38. package/dist/runtime/releaseSource.js +40 -7
  39. package/dist/runtime/selfUpdate.js +40 -7
  40. package/dist/runtime/signers.js +781 -174
  41. package/dist/runtime/store.js +28 -0
  42. package/dist/runtime/updateCheck.js +40 -7
  43. package/dist/sbom.json +21 -21
  44. package/dist/scanner/control.js +40 -7
  45. package/dist/scanner/discover.d.ts.map +1 -1
  46. package/dist/scanner/discover.js +210 -170
  47. package/dist/scanner/discover.js.map +1 -1
  48. package/dist/scanner/enable.d.ts.map +1 -1
  49. package/dist/scanner/enable.js +45 -8
  50. package/dist/scanner/enable.js.map +1 -1
  51. package/dist/scanner/picker.d.ts.map +1 -1
  52. package/dist/scanner/picker.js +11 -3
  53. package/dist/scanner/picker.js.map +1 -1
  54. package/dist/scanner/service.js +40 -7
  55. package/dist/scanner/update.js +40 -7
  56. package/dist/scanner-release.json +24 -24
  57. package/dist/status.js +40 -7
  58. package/dist/vendor/local-setup.js +43 -10
  59. package/package.json +31 -31
@@ -873,7 +873,7 @@ var require_ignore = __commonJS({
873
873
 
874
874
  // packages/cli/src/scanner/discover.ts
875
875
  import { execFile as execFile2 } from "node:child_process";
876
- import { access, lstat as lstat3, readdir, realpath } from "node:fs/promises";
876
+ import { access, lstat as lstat3, readdir, realpath as realpath2 } from "node:fs/promises";
877
877
  import { basename, isAbsolute, join as join4, parse, relative, resolve as resolve2 } from "node:path";
878
878
 
879
879
  // packages/shared/dist/instructions.js
@@ -915,6 +915,96 @@ var MCP_INSTRUCTIONS = getMcpInstructions();
915
915
  // packages/shared/dist/codeScanner.js
916
916
  var import_ignore = __toESM(require_ignore(), 1);
917
917
 
918
+ // packages/shared/dist/projectIdentityFile.js
919
+ import { lstat, readFile } from "node:fs/promises";
920
+ import { join } from "node:path";
921
+ var CANONICAL_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
922
+ var isCanonicalUuid = (value) => typeof value === "string" && CANONICAL_UUID.test(value);
923
+ var IDENTITY_KEYS = /* @__PURE__ */ new Set([
924
+ "schemaVersion",
925
+ "projectId",
926
+ "projectName",
927
+ "repositoryFingerprint"
928
+ ]);
929
+ var FINGERPRINT_KEYS = /* @__PURE__ */ new Set(["algorithmVersion", "hash"]);
930
+ function parseIdentityFile(text) {
931
+ let value;
932
+ try {
933
+ value = JSON.parse(text);
934
+ } catch (error) {
935
+ return { kind: "malformed", detail: `unparseable JSON: ${error.message}` };
936
+ }
937
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
938
+ return { kind: "malformed", detail: "identity file must contain a JSON object" };
939
+ }
940
+ const record = value;
941
+ if (record.schemaVersion !== 1) {
942
+ return { kind: "unknown_version", version: record.schemaVersion };
943
+ }
944
+ const unknownKey = Object.keys(record).find((key) => !IDENTITY_KEYS.has(key));
945
+ if (unknownKey)
946
+ return { kind: "malformed", detail: `unknown key "${unknownKey}"` };
947
+ if (!isCanonicalUuid(record.projectId)) {
948
+ return { kind: "malformed", detail: '"projectId" must be a canonical RFC 4122 UUID string' };
949
+ }
950
+ if ("projectName" in record && typeof record.projectName !== "string") {
951
+ return { kind: "malformed", detail: '"projectName" must be a string when present' };
952
+ }
953
+ if ("repositoryFingerprint" in record && (!record.repositoryFingerprint || typeof record.repositoryFingerprint !== "object" || Array.isArray(record.repositoryFingerprint))) {
954
+ return { kind: "malformed", detail: '"repositoryFingerprint" must be an object when present' };
955
+ }
956
+ const fingerprint = record.repositoryFingerprint;
957
+ const unknownFingerprintKey = fingerprint ? Object.keys(fingerprint).find((key) => !FINGERPRINT_KEYS.has(key)) : void 0;
958
+ if (unknownFingerprintKey) {
959
+ return {
960
+ kind: "malformed",
961
+ detail: `unknown repositoryFingerprint key "${unknownFingerprintKey}"`
962
+ };
963
+ }
964
+ if (fingerprint && (fingerprint.algorithmVersion !== 1 || typeof fingerprint.hash !== "string")) {
965
+ return {
966
+ kind: "malformed",
967
+ detail: '"repositoryFingerprint" must contain algorithmVersion 1 and a string hash'
968
+ };
969
+ }
970
+ const repositoryFingerprint = fingerprint ? { algorithmVersion: 1, hash: fingerprint.hash } : void 0;
971
+ return {
972
+ kind: "ok",
973
+ identity: {
974
+ schemaVersion: 1,
975
+ projectId: record.projectId,
976
+ ...record.projectName === void 0 ? {} : { projectName: record.projectName },
977
+ ...repositoryFingerprint ? { repositoryFingerprint } : {}
978
+ }
979
+ };
980
+ }
981
+ function isConfigurationOnly(text) {
982
+ try {
983
+ const value = JSON.parse(text);
984
+ return !!value && typeof value === "object" && !Array.isArray(value) && !("projectId" in value) && (!("schemaVersion" in value) || value.schemaVersion === 1);
985
+ } catch {
986
+ return false;
987
+ }
988
+ }
989
+ async function readIdentityFile(dir, options = {}) {
990
+ const path = join(dir, ".mnemonik.json");
991
+ try {
992
+ const stat = await lstat(path);
993
+ if (stat.isSymbolicLink())
994
+ return { kind: "malformed", detail: "symlink" };
995
+ if (!stat.isFile())
996
+ return { kind: "malformed", detail: "identity path is not a regular file" };
997
+ const text = await readFile(path, "utf8");
998
+ if ((options.selectedRoot || options.configurationOnlyAbsent) && isConfigurationOnly(text))
999
+ return { kind: "absent" };
1000
+ return parseIdentityFile(text);
1001
+ } catch (error) {
1002
+ if (error.code === "ENOENT")
1003
+ return { kind: "absent" };
1004
+ return { kind: "malformed", detail: `cannot read identity file: ${error.message}` };
1005
+ }
1006
+ }
1007
+
918
1008
  // node_modules/web-tree-sitter/web-tree-sitter.js
919
1009
  var __defProp2 = Object.defineProperty;
920
1010
  var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
@@ -4959,9 +5049,9 @@ var Query = class {
4959
5049
  };
4960
5050
 
4961
5051
  // packages/shared/dist/ast/grammars.js
4962
- import { dirname, extname, join } from "node:path";
5052
+ import { dirname, extname, join as join2 } from "node:path";
4963
5053
  import { fileURLToPath } from "node:url";
4964
- var WASM_DIR = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
5054
+ var WASM_DIR = join2(dirname(fileURLToPath(import.meta.url)), "..", "..", "wasm");
4965
5055
 
4966
5056
  // packages/shared/dist/ast/astChunker.js
4967
5057
  var MAX_AST_PARSE_BYTES = 2 * 1024 * 1024;
@@ -5287,96 +5377,8 @@ function selectRemote(remotes) {
5287
5377
  return { status: "fingerprint", remote: selected.name, fingerprint: first };
5288
5378
  }
5289
5379
 
5290
- // packages/shared/dist/projectIdentityFile.js
5291
- import { lstat, readFile } from "node:fs/promises";
5292
- import { join as join2 } from "node:path";
5293
- var CANONICAL_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
5294
- var isCanonicalUuid = (value) => typeof value === "string" && CANONICAL_UUID.test(value);
5295
- var IDENTITY_KEYS = /* @__PURE__ */ new Set([
5296
- "schemaVersion",
5297
- "projectId",
5298
- "projectName",
5299
- "repositoryFingerprint"
5300
- ]);
5301
- var FINGERPRINT_KEYS = /* @__PURE__ */ new Set(["algorithmVersion", "hash"]);
5302
- function parseIdentityFile(text) {
5303
- let value;
5304
- try {
5305
- value = JSON.parse(text);
5306
- } catch (error) {
5307
- return { kind: "malformed", detail: `unparseable JSON: ${error.message}` };
5308
- }
5309
- if (!value || typeof value !== "object" || Array.isArray(value)) {
5310
- return { kind: "malformed", detail: "identity file must contain a JSON object" };
5311
- }
5312
- const record = value;
5313
- if (record.schemaVersion !== 1) {
5314
- return { kind: "unknown_version", version: record.schemaVersion };
5315
- }
5316
- const unknownKey = Object.keys(record).find((key) => !IDENTITY_KEYS.has(key));
5317
- if (unknownKey)
5318
- return { kind: "malformed", detail: `unknown key "${unknownKey}"` };
5319
- if (!isCanonicalUuid(record.projectId)) {
5320
- return { kind: "malformed", detail: '"projectId" must be a canonical RFC 4122 UUID string' };
5321
- }
5322
- if ("projectName" in record && typeof record.projectName !== "string") {
5323
- return { kind: "malformed", detail: '"projectName" must be a string when present' };
5324
- }
5325
- if ("repositoryFingerprint" in record && (!record.repositoryFingerprint || typeof record.repositoryFingerprint !== "object" || Array.isArray(record.repositoryFingerprint))) {
5326
- return { kind: "malformed", detail: '"repositoryFingerprint" must be an object when present' };
5327
- }
5328
- const fingerprint = record.repositoryFingerprint;
5329
- const unknownFingerprintKey = fingerprint ? Object.keys(fingerprint).find((key) => !FINGERPRINT_KEYS.has(key)) : void 0;
5330
- if (unknownFingerprintKey) {
5331
- return {
5332
- kind: "malformed",
5333
- detail: `unknown repositoryFingerprint key "${unknownFingerprintKey}"`
5334
- };
5335
- }
5336
- if (fingerprint && (fingerprint.algorithmVersion !== 1 || typeof fingerprint.hash !== "string")) {
5337
- return {
5338
- kind: "malformed",
5339
- detail: '"repositoryFingerprint" must contain algorithmVersion 1 and a string hash'
5340
- };
5341
- }
5342
- const repositoryFingerprint = fingerprint ? { algorithmVersion: 1, hash: fingerprint.hash } : void 0;
5343
- return {
5344
- kind: "ok",
5345
- identity: {
5346
- schemaVersion: 1,
5347
- projectId: record.projectId,
5348
- ...record.projectName === void 0 ? {} : { projectName: record.projectName },
5349
- ...repositoryFingerprint ? { repositoryFingerprint } : {}
5350
- }
5351
- };
5352
- }
5353
- async function readIdentityFile(dir, options = {}) {
5354
- const path = join2(dir, ".mnemonik.json");
5355
- try {
5356
- const stat = await lstat(path);
5357
- if (stat.isSymbolicLink())
5358
- return { kind: "malformed", detail: "symlink" };
5359
- if (!stat.isFile())
5360
- return { kind: "malformed", detail: "identity path is not a regular file" };
5361
- const text = await readFile(path, "utf8");
5362
- if (options.selectedRoot) {
5363
- try {
5364
- const value = JSON.parse(text);
5365
- if (value && typeof value === "object" && !Array.isArray(value) && !("projectId" in value) && (!("schemaVersion" in value) || value.schemaVersion === 1))
5366
- return { kind: "absent" };
5367
- } catch {
5368
- }
5369
- }
5370
- return parseIdentityFile(text);
5371
- } catch (error) {
5372
- if (error.code === "ENOENT")
5373
- return { kind: "absent" };
5374
- return { kind: "malformed", detail: `cannot read identity file: ${error.message}` };
5375
- }
5376
- }
5377
-
5378
5380
  // packages/shared/dist/repositoryRoot.js
5379
- import { lstat as lstat2, readFile as readFile2 } from "node:fs/promises";
5381
+ import { lstat as lstat2, readFile as readFile2, realpath } from "node:fs/promises";
5380
5382
  import { execFile } from "node:child_process";
5381
5383
  import { homedir } from "node:os";
5382
5384
  import { dirname as dirname2, join as join3, resolve } from "node:path";
@@ -5438,7 +5440,7 @@ async function confirmedBoundaryAt(path) {
5438
5440
  async function boundariesBetween(cwd, root) {
5439
5441
  const boundaries = [];
5440
5442
  let directory = cwd;
5441
- while (directory !== root) {
5443
+ while (!samePath(directory, root)) {
5442
5444
  const boundary = await confirmedBoundaryAt(directory);
5443
5445
  if (boundary)
5444
5446
  boundaries.push(boundary);
@@ -5461,37 +5463,31 @@ async function containingRepository(root) {
5461
5463
  directory = parent;
5462
5464
  }
5463
5465
  }
5464
- async function canonicalBoundaryRoot(boundary) {
5465
- if (boundary.kind === "directory")
5466
- return boundary.path;
5467
- const pointer = /^gitdir:\s*(.+)\s*$/im.exec(await readFile2(join3(boundary.path, ".git"), "utf8"))?.[1];
5468
- if (!pointer)
5469
- return boundary.path;
5470
- const gitDir = resolve(boundary.path, pointer);
5471
- try {
5472
- const commonDir = resolve(gitDir, (await readFile2(join3(gitDir, "commondir"), "utf8")).trim());
5473
- return dirname2(commonDir);
5474
- } catch (error) {
5475
- if (error.code === "ENOENT")
5476
- return boundary.path;
5477
- throw error;
5478
- }
5466
+ async function canonicalPath(path) {
5467
+ const absolute = resolve(path);
5468
+ return realpath(absolute).catch(() => absolute);
5469
+ }
5470
+ function samePath(left, right) {
5471
+ return process.platform === "win32" ? left.toLowerCase() === right.toLowerCase() : left === right;
5479
5472
  }
5480
5473
  async function resolveRepositoryRoot(cwd) {
5481
- const absoluteCwd = resolve(cwd);
5474
+ const absoluteCwd = await canonicalPath(cwd);
5482
5475
  try {
5483
5476
  const { stdout } = await runGit(absoluteCwd, [
5484
5477
  "rev-parse",
5485
5478
  "--show-toplevel",
5479
+ "--git-dir",
5486
5480
  "--git-common-dir"
5487
5481
  ]);
5488
- const [rootLine, commonLine, ...extra] = stdout.trim().split(/\r?\n/);
5489
- if (!rootLine || !commonLine || extra.length) {
5482
+ const [rootLine, gitDirLine, commonLine, ...extra] = stdout.trim().split(/\r?\n/);
5483
+ if (!rootLine || !gitDirLine || !commonLine || extra.length) {
5490
5484
  return { kind: "git_unavailable", detail: "git rev-parse returned an unexpected response" };
5491
5485
  }
5492
- const root = resolve(rootLine);
5493
- const commonDir = resolve(root, commonLine);
5494
- const isLinkedWorktree = commonDir !== join3(root, ".git");
5486
+ const fromGit = (line) => canonicalPath(resolve(absoluteCwd, line));
5487
+ const root = await fromGit(rootLine);
5488
+ const gitDir = await fromGit(gitDirLine);
5489
+ const commonDir = await fromGit(commonLine);
5490
+ const isLinkedWorktree = !samePath(gitDir, commonDir);
5495
5491
  const nested = await boundariesBetween(absoluteCwd, root);
5496
5492
  if (!isLinkedWorktree && await containingRepository(root)) {
5497
5493
  const boundary = await boundaryAt(root);
@@ -5513,14 +5509,41 @@ async function resolveRepositoryRoot(cwd) {
5513
5509
  return { kind: "git_unavailable", detail: failure.message };
5514
5510
  }
5515
5511
  }
5512
+ async function linkedWorktreeCommonDir(dir) {
5513
+ try {
5514
+ if (!(await lstat2(join3(dir, ".git"))).isFile())
5515
+ return void 0;
5516
+ const pointer = /^gitdir:\s*(.+?)\s*$/im.exec(await readFile2(join3(dir, ".git"), "utf8"))?.[1];
5517
+ if (!pointer)
5518
+ return void 0;
5519
+ const gitDir = resolve(dir, pointer);
5520
+ const common = (await readFile2(join3(gitDir, "commondir"), "utf8")).trim();
5521
+ return common ? await canonicalPath(resolve(gitDir, common)) : void 0;
5522
+ } catch {
5523
+ return void 0;
5524
+ }
5525
+ }
5526
+ async function mainCheckout(worktreeTop, commonDir) {
5527
+ try {
5528
+ const { stdout } = await runGit(worktreeTop, ["worktree", "list", "--porcelain"]);
5529
+ const first = stdout.split(/\r?\n\r?\n/)[0] ?? "";
5530
+ const path = /^worktree (.+)$/m.exec(first)?.[1];
5531
+ if (path) {
5532
+ const main = await canonicalPath(resolve(worktreeTop, path));
5533
+ return /^bare$/m.test(first) ? dirname2(main) : main;
5534
+ }
5535
+ } catch {
5536
+ }
5537
+ return dirname2(commonDir);
5538
+ }
5516
5539
  async function readPlainIdentity(start2) {
5517
- const home = resolve(homedir());
5540
+ const home = await canonicalPath(homedir());
5518
5541
  let directory = start2;
5519
5542
  while (true) {
5520
- const result = await readIdentityFile(directory);
5543
+ const result = await readIdentityFile(directory, { configurationOnlyAbsent: true });
5521
5544
  if (result.kind !== "absent")
5522
5545
  return { root: directory, result };
5523
- if (directory === home)
5546
+ if (samePath(directory, home))
5524
5547
  break;
5525
5548
  const parent = dirname2(directory);
5526
5549
  if (parent === directory)
@@ -5529,58 +5552,72 @@ async function readPlainIdentity(start2) {
5529
5552
  }
5530
5553
  return { root: start2, result: { kind: "absent" } };
5531
5554
  }
5555
+ async function nearestIdentity(start2) {
5556
+ const home = await canonicalPath(homedir());
5557
+ let directory = start2;
5558
+ while (true) {
5559
+ const commonDir = await linkedWorktreeCommonDir(directory);
5560
+ if (commonDir)
5561
+ return { worktreeTop: directory, commonDir };
5562
+ const result = await readIdentityFile(directory, { configurationOnlyAbsent: true });
5563
+ if (result.kind !== "absent")
5564
+ return { root: directory, result };
5565
+ if (samePath(directory, home))
5566
+ return void 0;
5567
+ const parent = dirname2(directory);
5568
+ if (parent === directory)
5569
+ return void 0;
5570
+ directory = parent;
5571
+ }
5572
+ }
5573
+ async function resolveNearestProjectIdentity(cwd) {
5574
+ const start2 = await canonicalPath(cwd);
5575
+ const resolved = await resolveRepositoryRoot(start2);
5576
+ const repository = resolved.kind === "git_unavailable" ? { kind: "plain", root: start2 } : resolved;
5577
+ const nested = repository.kind === "git" ? repository.nested : [];
5578
+ let found = await nearestIdentity(start2);
5579
+ if (found && "worktreeTop" in found) {
5580
+ found = await readPlainIdentity(await mainCheckout(found.worktreeTop, found.commonDir));
5581
+ }
5582
+ if (found) {
5583
+ return shapedIdentity(found, await projectFolderRepository(found.root, repository), nested);
5584
+ }
5585
+ return { ...withBase(repository, repository.root, nested), kind: "absent" };
5586
+ }
5587
+ async function resolveNamedProjectIdentity(cwd, options) {
5588
+ const start2 = await canonicalPath(cwd);
5589
+ const resolved = await resolveRepositoryRoot(start2);
5590
+ const repository = resolved.kind === "git_unavailable" ? { kind: "plain", root: start2 } : resolved;
5591
+ const commonDir = await linkedWorktreeCommonDir(start2);
5592
+ const root = commonDir ? await mainCheckout(start2, commonDir) : start2;
5593
+ return shapedIdentity({ root, result: await readIdentityFile(root, options) }, await projectFolderRepository(root, repository), repository.kind === "git" ? repository.nested : []);
5594
+ }
5595
+ function shapedIdentity(found, repository, nested) {
5596
+ const base = withBase(repository, found.root, nested);
5597
+ if (found.result.kind === "ok")
5598
+ return { ...base, ...found.result };
5599
+ if (found.result.kind === "unknown_version")
5600
+ return { ...base, ...found.result, path: found.root };
5601
+ if (found.result.kind === "malformed")
5602
+ return { ...base, ...found.result, path: found.root };
5603
+ return { ...base, kind: "absent" };
5604
+ }
5605
+ async function projectFolderRepository(projectRoot, known) {
5606
+ if (known.kind === "git" && samePath(known.root, projectRoot))
5607
+ return known;
5608
+ const repository = await resolveRepositoryRoot(projectRoot);
5609
+ if (repository.kind === "git" && samePath(repository.root, projectRoot))
5610
+ return repository;
5611
+ return { kind: "plain", root: projectRoot };
5612
+ }
5532
5613
  function withBase(repository, root, nested) {
5533
5614
  return { root, repository, nested };
5534
5615
  }
5535
5616
  async function resolveProjectIdentity(cwd, options = {}) {
5536
- const resolved = await resolveRepositoryRoot(cwd);
5537
- const repository = resolved.kind === "git_unavailable" ? { kind: "plain", root: resolve(cwd) } : resolved;
5538
- if (repository.kind === "plain") {
5539
- const { root, result } = options.selectedRoot ? { root: repository.root, result: await readIdentityFile(repository.root, options) } : await readPlainIdentity(repository.root);
5540
- const base2 = withBase(repository, root, []);
5541
- if (result.kind === "ok")
5542
- return { ...base2, ...result };
5543
- if (result.kind === "unknown_version")
5544
- return { ...base2, ...result, path: root };
5545
- if (result.kind === "malformed")
5546
- return { ...base2, ...result, path: root };
5547
- return { ...base2, kind: "absent" };
5548
- }
5549
- const ownRoot = repository.isLinkedWorktree ? dirname2(repository.commonDir) : repository.root;
5550
- const outer = repository.isLinkedWorktree ? void 0 : await containingRepository(repository.root);
5551
- const own = await readIdentityFile(ownRoot, options);
5552
- if (!outer || options.selectedRoot || own.kind === "ok") {
5553
- const base2 = withBase(repository, ownRoot, repository.nested);
5554
- if (own.kind === "ok")
5555
- return { ...base2, ...own };
5556
- if (own.kind === "unknown_version")
5557
- return { ...base2, ...own, path: ownRoot };
5558
- if (own.kind === "malformed")
5559
- return { ...base2, ...own, path: ownRoot };
5560
- return { ...base2, kind: "absent" };
5561
- }
5562
- const nested = repository.nested;
5563
- const parentRoot = await canonicalBoundaryRoot(outer);
5564
- const parent = await readIdentityFile(parentRoot);
5565
- const base = withBase(repository, parentRoot, nested);
5566
- if (own.kind === "unknown_version")
5567
- return { ...base, ...own, path: ownRoot };
5568
- if (own.kind === "malformed")
5569
- return { ...base, ...own, path: ownRoot };
5570
- if (parent.kind === "unknown_version")
5571
- return { ...base, ...parent, path: parentRoot };
5572
- if (parent.kind === "malformed")
5573
- return { ...base, ...parent, path: parentRoot };
5574
- if (!options.allowNestedInherit) {
5575
- return {
5576
- ...base,
5577
- kind: "nested",
5578
- ...parent.kind === "ok" ? { parentIdentity: parent.identity } : {}
5579
- };
5617
+ if (options.selectedRoot || options.namedRoot) {
5618
+ return resolveNamedProjectIdentity(cwd, { selectedRoot: options.selectedRoot });
5580
5619
  }
5581
- if (parent.kind === "ok")
5582
- return { ...base, kind: "ok", identity: parent.identity };
5583
- return { ...base, kind: "absent" };
5620
+ return resolveNearestProjectIdentity(cwd);
5584
5621
  }
5585
5622
 
5586
5623
  // packages/cli/src/scanner/discover.ts
@@ -5624,13 +5661,11 @@ async function repositoryRemotes(path) {
5624
5661
  );
5625
5662
  }
5626
5663
  async function classifyRepository(path, options = {}) {
5627
- const canonical = await (options.canonicalizePath ?? realpath)(path);
5664
+ const canonical = await (options.canonicalizePath ?? realpath2)(path);
5628
5665
  const resolution = await (options.resolveIdentity ?? resolveProjectIdentity)(canonical, {
5629
5666
  selectedRoot: true
5630
5667
  });
5631
- const resolvedPath = resolution.kind === "git_unavailable" ? canonical : await (options.canonicalizePath ?? realpath)(
5632
- resolution.repository.kind === "git" ? resolution.repository.root : resolution.root
5633
- );
5668
+ const resolvedPath = resolution.kind === "git_unavailable" ? canonical : resolution.root;
5634
5669
  const kind = resolution.kind !== "git_unavailable" && resolution.repository.kind === "git" ? "git" : "folder";
5635
5670
  if (resolution.kind === "ok") {
5636
5671
  return {
@@ -5659,8 +5694,12 @@ async function classifyRepository(path, options = {}) {
5659
5694
  }
5660
5695
  return { path: resolvedPath, state: "not_set_up", kind };
5661
5696
  }
5697
+ async function insideProject(folder, resolveIdentity = resolveProjectIdentity) {
5698
+ const resolution = await resolveIdentity(folder);
5699
+ return resolution.kind === "ok" && resolution.root !== folder;
5700
+ }
5662
5701
  async function discoverRepositories(parentPath, options = {}) {
5663
- const canonicalize = options.canonicalizePath ?? realpath;
5702
+ const canonicalize = options.canonicalizePath ?? realpath2;
5664
5703
  const root = await canonicalize(parentPath);
5665
5704
  const maxDepth = options.maxDepth ?? DISCOVERY_DEPTH;
5666
5705
  const limit = options.directoryLimit ?? DIRECTORY_LIMIT;
@@ -5709,7 +5748,8 @@ async function discoverRepositories(parentPath, options = {}) {
5709
5748
  resolveIdentity: options.resolveIdentity,
5710
5749
  readRemotes: repositories.length < REPOSITORY_LIMIT ? options.readRemotes : async () => []
5711
5750
  });
5712
- if (!repositoryPaths.has(repository.path)) {
5751
+ const partOfProject = !identityBoundary && repository.path === canonical && (repository.state === "not_set_up" || repository.state === "remote_setup") && await insideProject(canonical, options.resolveIdentity);
5752
+ if (!partOfProject && !repositoryPaths.has(repository.path)) {
5713
5753
  repositoryPaths.add(repository.path);
5714
5754
  if (repositories.length < REPOSITORY_LIMIT) repositories.push(repository);
5715
5755
  else omitted++;
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/scanner/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/scanner/discover.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../src/scanner/enable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../src/scanner/enable.ts"],"names":[],"mappings":"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"}
@@ -885,6 +885,27 @@ var require_ignore = __commonJS({
885
885
  }
886
886
  });
887
887
 
888
+ // packages/shared/dist/secretPatterns.js
889
+ var init_secretPatterns = __esm({
890
+ "packages/shared/dist/secretPatterns.js"() {
891
+ "use strict";
892
+ }
893
+ });
894
+
895
+ // packages/shared/dist/protectedPaths.js
896
+ var init_protectedPaths = __esm({
897
+ "packages/shared/dist/protectedPaths.js"() {
898
+ "use strict";
899
+ }
900
+ });
901
+
902
+ // packages/shared/dist/projectIdentityFile.js
903
+ var init_projectIdentityFile = __esm({
904
+ "packages/shared/dist/projectIdentityFile.js"() {
905
+ "use strict";
906
+ }
907
+ });
908
+
888
909
  // packages/shared/dist/hookTimeouts.js
889
910
  var init_hookTimeouts = __esm({
890
911
  "packages/shared/dist/hookTimeouts.js"() {
@@ -982,13 +1003,6 @@ var init_repositoryFingerprint = __esm({
982
1003
  }
983
1004
  });
984
1005
 
985
- // packages/shared/dist/projectIdentityFile.js
986
- var init_projectIdentityFile = __esm({
987
- "packages/shared/dist/projectIdentityFile.js"() {
988
- "use strict";
989
- }
990
- });
991
-
992
1006
  // packages/shared/dist/repositoryRoot.js
993
1007
  var init_repositoryRoot = __esm({
994
1008
  "packages/shared/dist/repositoryRoot.js"() {
@@ -997,6 +1011,18 @@ var init_repositoryRoot = __esm({
997
1011
  }
998
1012
  });
999
1013
 
1014
+ // packages/shared/dist/hookTrace.js
1015
+ var HOOK_TRACE_MAX_BYTES;
1016
+ var init_hookTrace = __esm({
1017
+ "packages/shared/dist/hookTrace.js"() {
1018
+ "use strict";
1019
+ init_protectedPaths();
1020
+ init_runtimeSigners();
1021
+ init_secretPatterns();
1022
+ HOOK_TRACE_MAX_BYTES = 2 * 1024 * 1024;
1023
+ }
1024
+ });
1025
+
1000
1026
  // packages/shared/dist/runtimeReader.js
1001
1027
  var RuntimeError;
1002
1028
  var init_runtimeReader = __esm({
@@ -1068,10 +1094,12 @@ var init_hookRuntime = __esm({
1068
1094
  init_runtimeSigners();
1069
1095
  init_hookTimeouts();
1070
1096
  init_repositoryRoot();
1097
+ init_hookTrace();
1071
1098
  init_runtimeReader();
1072
1099
  init_runtimeSigners();
1073
1100
  init_projectSetupHandoff();
1074
1101
  init_hookConversation();
1102
+ init_hookTrace();
1075
1103
  }
1076
1104
  });
1077
1105
 
@@ -2696,6 +2724,9 @@ var MCP_INSTRUCTIONS = getMcpInstructions();
2696
2724
 
2697
2725
  // packages/shared/dist/codeScanner.js
2698
2726
  var import_ignore = __toESM(require_ignore(), 1);
2727
+ init_secretPatterns();
2728
+ init_protectedPaths();
2729
+ init_projectIdentityFile();
2699
2730
 
2700
2731
  // node_modules/web-tree-sitter/web-tree-sitter.js
2701
2732
  var __defProp2 = Object.defineProperty;
@@ -6921,6 +6952,7 @@ var BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
6921
6952
  var import_ignore2 = __toESM(require_ignore(), 1);
6922
6953
 
6923
6954
  // packages/shared/dist/index.js
6955
+ init_secretPatterns();
6924
6956
  init_hookTimeouts();
6925
6957
 
6926
6958
  // packages/shared/dist/jitDeliveryAck.js
@@ -6936,6 +6968,7 @@ init_settingsIo();
6936
6968
  init_repositoryFingerprint();
6937
6969
  init_projectIdentityFile();
6938
6970
  init_repositoryRoot();
6971
+ init_protectedPaths();
6939
6972
 
6940
6973
  // packages/shared/dist/readiness.js
6941
6974
  var READINESS_SCHEMA_VERSION = 1;
@@ -7317,6 +7350,7 @@ import {
7317
7350
  connectedProjectsMessage,
7318
7351
  createRealProjectRuntime,
7319
7352
  ensureProjectRoot,
7353
+ projectFolderFor,
7320
7354
  projectLimitMessage
7321
7355
  } from "../project.js";
7322
7356
  import { consentDraft, runScannerBoundaryPicker } from "./picker.js";
@@ -7392,7 +7426,10 @@ async function enableScanner(options) {
7392
7426
  const executor = await prepared.projectExecutor();
7393
7427
  const connected = [];
7394
7428
  let limit;
7395
- for (const root of [...prepared.roots]) {
7429
+ const projectFolders = /* @__PURE__ */ new Set();
7430
+ for (const folder of prepared.roots)
7431
+ projectFolders.add(await projectFolderFor(folder, executor));
7432
+ for (const root of projectFolders) {
7396
7433
  const result = await ensureProjectRoot(root, executor);
7397
7434
  if (result.status === "done") connected.push(root);
7398
7435
  else {