@lzehrung/codegraph 2.3.5 → 2.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin/cli.js CHANGED
@@ -13534,6 +13534,7 @@ __export(git_exports, {
13534
13534
  isGitWorktreeSentinel: () => isGitWorktreeSentinel,
13535
13535
  listChangedFiles: () => listChangedFiles,
13536
13536
  listGitExcludeFiles: () => listGitExcludeFiles,
13537
+ listGitIgnoreFiles: () => listGitIgnoreFiles,
13537
13538
  listGitSubmoduleDirectories: () => listGitSubmoduleDirectories,
13538
13539
  listTrackedFiles: () => listTrackedFiles,
13539
13540
  listUntrackedFiles: () => listUntrackedFiles,
@@ -13969,6 +13970,32 @@ async function listTrackedFiles(projectRoot, opts) {
13969
13970
  throw createGitError(projectRoot, args, error51);
13970
13971
  }
13971
13972
  }
13973
+ async function listGitIgnoreFiles(projectRoot, opts) {
13974
+ if (!(opts?.gitAvailable ?? true))
13975
+ return [];
13976
+ const pathspec = [".gitignore", ":(glob)**/.gitignore"];
13977
+ const commands = [
13978
+ ["ls-files", "--cached", "-z", "--", ...pathspec],
13979
+ ["ls-files", "--others", "--exclude-standard", "-z", "--", ...pathspec],
13980
+ ["ls-files", "--others", "--ignored", "--exclude-standard", "-z", "--", ...pathspec]
13981
+ ];
13982
+ const results = await Promise.all(commands.map(async (args) => {
13983
+ try {
13984
+ return await runGit(projectRoot, args, { maxBuffer: 64 * 1024 * 1024 });
13985
+ } catch (error51) {
13986
+ throw createGitError(projectRoot, args, error51);
13987
+ }
13988
+ }));
13989
+ const out = [];
13990
+ for (const { stdout } of results) {
13991
+ for (const rel of stdout.split("\0").filter(Boolean)) {
13992
+ const abs = resolveGitListedPath(projectRoot, rel);
13993
+ if (abs)
13994
+ out.push(abs);
13995
+ }
13996
+ }
13997
+ return Array.from(new Set(out));
13998
+ }
13972
13999
  async function listGitSubmoduleDirectories(projectRoot, opts) {
13973
14000
  if (!(opts?.gitAvailable ?? true))
13974
14001
  return [];
@@ -14380,24 +14407,24 @@ function collectCandidateAncestorDirectories(root, files) {
14380
14407
  }
14381
14408
  return directories;
14382
14409
  }
14383
- async function findGitIgnoreSources(sourceRoots, files) {
14410
+ async function findGitIgnoreSources(sourceRoots) {
14384
14411
  const roots = Array.from(new Map(sourceRoots.map(({ path: sourceRoot, repositoryRoot }) => [
14385
14412
  fileIdentityKey(sourceRoot),
14386
14413
  { path: normalizePath(sourceRoot), repositoryRoot: normalizePath(repositoryRoot) }
14387
14414
  ])).values());
14388
14415
  const sources = [];
14389
14416
  for (const { path: sourceRoot, repositoryRoot } of roots) {
14390
- const directories = collectCandidateAncestorDirectories(sourceRoot, files.filter((file2) => isFilePathWithinRoot(sourceRoot, file2)));
14391
- const present = await mapLimitSemaphore(directories, REALPATH_FILTER_CONCURRENCY, async (directory) => {
14392
- const candidate = normalizePath(path9.join(directory, ".gitignore"));
14393
- try {
14394
- return (await fsp5.stat(candidate)).isFile() ? { file: candidate, baseDir: directory, repositoryRoot, priority: 2 } : null;
14395
- } catch {
14396
- return null;
14397
- }
14398
- });
14399
- sources.push(...present.filter((entry) => entry !== null));
14400
- sources.push(...(await listGitExcludeFiles(sourceRoot)).map((source) => ({
14417
+ const [gitignoreFiles, excludeFiles] = await Promise.all([
14418
+ listGitIgnoreFiles(sourceRoot),
14419
+ listGitExcludeFiles(sourceRoot)
14420
+ ]);
14421
+ sources.push(...gitignoreFiles.map((file2) => ({
14422
+ file: file2,
14423
+ baseDir: path9.dirname(file2),
14424
+ repositoryRoot,
14425
+ priority: 2
14426
+ })));
14427
+ sources.push(...excludeFiles.map((source) => ({
14401
14428
  ...source,
14402
14429
  repositoryRoot: source.baseDir
14403
14430
  })));
@@ -14428,13 +14455,6 @@ async function listGitCandidateFiles(root, logLevel) {
14428
14455
  const rawFiles = Array.from(/* @__PURE__ */ new Set([...tracked, ...untracked, ...submoduleUntracked.flat()])).sort();
14429
14456
  const needsLogicalRemap = normalizePath(gitRoot) !== normalizePath(root);
14430
14457
  const files = Array.from(new Set(rawFiles.map((file2) => needsLogicalRemap && isFilePathWithinRoot(realRoot, file2) ? normalizePath(path9.resolve(root, path9.relative(realRoot, file2))) : normalizePath(file2)))).sort();
14431
- const physicalFiles = normalizePath(root) === realRoot ? [] : (await mapLimitSemaphore(files, REALPATH_FILTER_CONCURRENCY, async (file2) => {
14432
- try {
14433
- return normalizePath(await fsp5.realpath(file2));
14434
- } catch {
14435
- return null;
14436
- }
14437
- })).filter((file2) => file2 !== null);
14438
14458
  const gitignoreRoots = [gitRepositoryRoot, ...submoduleRoots.map(({ physicalPath }) => physicalPath)].map(normalizePath);
14439
14459
  const sourceRoots = [
14440
14460
  { path: root, repositoryRoot: gitRepositoryRoot },
@@ -14447,7 +14467,7 @@ async function listGitCandidateFiles(root, logLevel) {
14447
14467
  ];
14448
14468
  return {
14449
14469
  files,
14450
- gitignoreFiles: await findGitIgnoreSources(sourceRoots, [...rawFiles, ...files, ...physicalFiles]),
14470
+ gitignoreFiles: await findGitIgnoreSources(sourceRoots),
14451
14471
  gitignoreRoots,
14452
14472
  gitignoreAliases: sourceRoots
14453
14473
  };
@@ -53074,12 +53094,17 @@ var init_parsed_cache = __esm({
53074
53094
  // dist/indexer/finalize.js
53075
53095
  import { performance as performance2 } from "node:perf_hooks";
53076
53096
  async function finalizeProjectIndex(args) {
53077
- if (args.timings)
53078
- args.timings.totalMs = Math.round(performance2.now() - args.totalStart);
53097
+ const discoveryTimings = args.opts?.report ? args.opts.report.timings ??= {} : void 0;
53098
+ const metadataDiscoveryStart = args.projectFiles === void 0 ? performance2.now() : void 0;
53079
53099
  const projectFiles = await (args.projectFiles ?? discoverProjectFilesWithGitCandidates(args.projectRoot, {
53080
53100
  ...args.opts?.logLevel ? { logLevel: args.opts.logLevel } : {},
53081
53101
  ...args.knownGitCandidates !== void 0 ? { knownGitCandidates: args.knownGitCandidates } : {}
53082
53102
  }));
53103
+ if (metadataDiscoveryStart !== void 0 && discoveryTimings) {
53104
+ discoveryTimings.metadataDiscoveryMs = Math.round(performance2.now() - metadataDiscoveryStart);
53105
+ }
53106
+ if (args.timings)
53107
+ args.timings.totalMs = Math.round(performance2.now() - args.totalStart);
53083
53108
  const languageExtensions = normalizeLanguageExtensions(args.opts?.languageExtensions);
53084
53109
  const parsed = retainedParsedCache(args.parsedMap, args.opts);
53085
53110
  return {
@@ -55698,6 +55723,7 @@ async function buildIndexFromFileListShared(projectRoot, rawFiles, opts, helperO
55698
55723
  }
55699
55724
  }
55700
55725
  async function buildProjectIndexWithManifestOptions(projectRoot, opts, helperOpts) {
55726
+ const timings = opts?.report ? opts.report.timings ??= {} : void 0;
55701
55727
  await initializeFileIdentityCaseSensitivity(projectRoot);
55702
55728
  try {
55703
55729
  const useDiskCache = (opts?.cache ?? "off") === "disk";
@@ -55717,6 +55743,7 @@ async function buildProjectIndexWithManifestOptions(projectRoot, opts, helperOpt
55717
55743
  const onDiscoveryProgress = helperOpts?.reportDiscoveryProgress ? (progress) => emitIndexCheckActivity(opts, progress.activity, progress.current, progress.total) : void 0;
55718
55744
  if (helperOpts?.reportDiscoveryProgress)
55719
55745
  emitIndexCheckActivity(opts, "Discovering source files");
55746
+ const sourceDiscoveryStart = performance5.now();
55720
55747
  const discoveredFiles = await listProjectFilesWithGitCandidates(projectRoot, projectPatternsForLanguageExtensions(opts), {
55721
55748
  ...opts?.discovery,
55722
55749
  ...opts?.logLevel ? { logLevel: opts.logLevel } : {},
@@ -55725,6 +55752,8 @@ async function buildProjectIndexWithManifestOptions(projectRoot, opts, helperOpt
55725
55752
  onGitCandidatesDiscovered,
55726
55753
  ...onDiscoveryProgress ? { onDiscoveryProgress } : {}
55727
55754
  });
55755
+ if (timings)
55756
+ timings.sourceDiscoveryMs = Math.round(performance5.now() - sourceDiscoveryStart);
55728
55757
  const additionalFileCandidates = await normalizeIndexedFileInputsWithinRoot(projectRoot, opts?.additionalFiles ?? [], "Additional index file");
55729
55758
  const additionalFileExistence = await probePathExistence(additionalFileCandidates, buildConcurrency(opts));
55730
55759
  const additionalFiles = additionalFileCandidates.filter((file2) => additionalFileExistence.get(file2));
@@ -55733,12 +55762,15 @@ async function buildProjectIndexWithManifestOptions(projectRoot, opts, helperOpt
55733
55762
  const transientFiles = additionalFiles.filter((file2) => !discoveredFileSet.has(file2));
55734
55763
  if (helperOpts?.reportDiscoveryProgress)
55735
55764
  emitIndexCheckActivity(opts, "Discovering project metadata");
55765
+ const metadataDiscoveryStart = performance5.now();
55736
55766
  const projectFiles = await discoverProjectFilesWithGitCandidates(projectRoot, {
55737
55767
  ...opts?.logLevel ? { logLevel: opts.logLevel } : {},
55738
55768
  ...discoveredSymlinkDirectories !== void 0 ? { knownSymlinkDirectories: discoveredSymlinkDirectories } : {},
55739
55769
  ...discoveredGitCandidates !== void 0 ? { knownGitCandidates: discoveredGitCandidates } : {},
55740
55770
  ...onDiscoveryProgress ? { onDiscoveryProgress } : {}
55741
55771
  });
55772
+ if (timings)
55773
+ timings.metadataDiscoveryMs = Math.round(performance5.now() - metadataDiscoveryStart);
55742
55774
  return await buildIndexFromFileListShared(projectRoot, files, opts, {
55743
55775
  manifestMode: useDiskCache ? "read-write" : "off",
55744
55776
  warnNoFilesMessage: `Warning: No files found in project root: ${projectRoot}. Check codegraph.config.json globs and CLI --include-glob/--ignore-glob filters. Diagnostic: codegraph doctor`,
@@ -55794,6 +55826,7 @@ async function buildProjectIndexIncremental(projectRoot, opts) {
55794
55826
  if (strictIncremental && graphOptions.fast)
55795
55827
  graphOptions.fast = false;
55796
55828
  const { normalizedProjectRoot, report, timings, totalStart, cacheMode, cacheEnabled, onFallbackImportExtraction } = createIndexBuildRunState(projectRoot, opts, graphOptions);
55829
+ const discoveryTimings = opts?.report ? opts.report.timings ??= {} : void 0;
55797
55830
  let checkProgressActive = false;
55798
55831
  const startCheckProgress = () => {
55799
55832
  if (checkProgressActive)
@@ -55886,13 +55919,31 @@ async function buildProjectIndexIncremental(projectRoot, opts) {
55886
55919
  const hasExplicitGitRange = !!opts?.gitBase || !!opts?.gitHead;
55887
55920
  const shouldDiffAgainstWorkingTree = !hasExplicitGitRange && gitAvailable && !!manifest.lastCommit;
55888
55921
  const canReuseReconciliation = opts?.reconciledManifestUpdatedAt === manifest.updatedAt;
55922
+ let sourceDiscoveryMs = 0;
55923
+ let sourceDiscoveryPerformed = false;
55924
+ const measureSourceDiscovery = async (operation) => {
55925
+ if (!discoveryTimings || opts?.filesAreProjectScope)
55926
+ return await operation();
55927
+ sourceDiscoveryPerformed = true;
55928
+ const start = performance5.now();
55929
+ try {
55930
+ return await operation();
55931
+ } finally {
55932
+ sourceDiscoveryMs += performance5.now() - start;
55933
+ }
55934
+ };
55889
55935
  let manifestDiffFiles = [];
55890
55936
  if (shouldDiffAgainstWorkingTree) {
55891
55937
  try {
55892
- manifestDiffFiles = (canReuseReconciliation ? opts?.reconciledWorkingTreeDiffFiles : void 0) ?? await listChangedFiles(projectRoot, {
55893
- base: manifest.lastCommit,
55894
- head: "WORKTREE"
55895
- });
55938
+ const reconciledWorkingTreeDiffFiles = canReuseReconciliation ? opts?.reconciledWorkingTreeDiffFiles : void 0;
55939
+ if (reconciledWorkingTreeDiffFiles !== void 0) {
55940
+ manifestDiffFiles = reconciledWorkingTreeDiffFiles;
55941
+ } else {
55942
+ manifestDiffFiles = await measureSourceDiscovery(() => listChangedFiles(projectRoot, {
55943
+ base: manifest.lastCommit,
55944
+ head: "WORKTREE"
55945
+ }));
55946
+ }
55896
55947
  } catch (error51) {
55897
55948
  if (!isMissingGitRevisionError(error51))
55898
55949
  throw error51;
@@ -55937,13 +55988,21 @@ async function buildProjectIndexIncremental(projectRoot, opts) {
55937
55988
  const previousTransientFiles = sanitizeManifestTransientFilesForRoot(projectRoot, projectRoot, manifest.transientFiles).filter((file2) => Object.hasOwn(trackedEntries, file2));
55938
55989
  const previousTransientFileSet = new Set(previousTransientFiles);
55939
55990
  const needsGitScan = !!opts?.gitBase || !!opts?.changedSince;
55940
- const gitFiles = needsGitScan ? await listChangedFiles(projectRoot, buildIncrementalGitDiffOptions(opts)) : [];
55991
+ let gitFiles = [];
55992
+ if (needsGitScan) {
55993
+ gitFiles = await measureSourceDiscovery(() => listChangedFiles(projectRoot, buildIncrementalGitDiffOptions(opts)));
55994
+ }
55941
55995
  let untrackedFiles = [];
55942
55996
  let rediscoveredFiles = [];
55943
55997
  let discoveredGitCandidates;
55944
55998
  if (canUseIncrementalDiscoveryFastPath(gitAvailable, opts?.cacheStrict)) {
55945
55999
  try {
55946
- untrackedFiles = (canReuseReconciliation ? opts?.reconciledUntrackedFiles : void 0) ?? await listUntrackedProjectFiles(projectRoot, opts?.discovery, gitAvailable);
56000
+ const reconciledUntrackedFiles = canReuseReconciliation ? opts?.reconciledUntrackedFiles : void 0;
56001
+ if (reconciledUntrackedFiles !== void 0) {
56002
+ untrackedFiles = reconciledUntrackedFiles;
56003
+ } else {
56004
+ untrackedFiles = await measureSourceDiscovery(() => listUntrackedProjectFiles(projectRoot, opts?.discovery, gitAvailable));
56005
+ }
55947
56006
  } catch (error51) {
55948
56007
  if (manifestReport) {
55949
56008
  manifestReport.reason = "gitUntrackedScanFailed";
@@ -55956,14 +56015,17 @@ async function buildProjectIndexIncremental(projectRoot, opts) {
55956
56015
  });
55957
56016
  }
55958
56017
  } else if (!opts?.filesAreProjectScope) {
55959
- rediscoveredFiles = await listProjectFilesWithGitCandidates(projectRoot, projectPatternsForLanguageExtensions(opts), {
56018
+ rediscoveredFiles = await measureSourceDiscovery(() => listProjectFilesWithGitCandidates(projectRoot, projectPatternsForLanguageExtensions(opts), {
55960
56019
  ...opts?.discovery,
55961
56020
  ...opts?.logLevel ? { logLevel: opts.logLevel } : {},
55962
56021
  ...!opts?.cacheStrict && manifest.symlinkDirectories !== void 0 ? { knownSymlinkDirectories: manifest.symlinkDirectories } : {},
55963
56022
  onGitCandidatesDiscovered: (candidates) => {
55964
56023
  discoveredGitCandidates = candidates;
55965
56024
  }
55966
- });
56025
+ }));
56026
+ }
56027
+ if (discoveryTimings && sourceDiscoveryPerformed) {
56028
+ discoveryTimings.sourceDiscoveryMs = Math.round(sourceDiscoveryMs);
55967
56029
  }
55968
56030
  const candidateFiles = [
55969
56031
  ...explicitFiles,
@@ -56062,10 +56124,16 @@ async function buildProjectIndexIncremental(projectRoot, opts) {
56062
56124
  if (!snapshotLoad)
56063
56125
  return null;
56064
56126
  const snapshot = snapshotLoad.index;
56065
- snapshot.projectFiles ??= await discoverProjectFilesWithGitCandidates(projectRoot, {
56066
- ...opts?.logLevel ? { logLevel: opts.logLevel } : {},
56067
- ...discoveredGitCandidates !== void 0 ? { knownGitCandidates: discoveredGitCandidates } : {}
56068
- });
56127
+ snapshot.manifestSignaturesFresh = false;
56128
+ if (snapshot.projectFiles === void 0) {
56129
+ const metadataDiscoveryStart = performance5.now();
56130
+ snapshot.projectFiles = await discoverProjectFilesWithGitCandidates(projectRoot, {
56131
+ ...opts?.logLevel ? { logLevel: opts.logLevel } : {},
56132
+ ...discoveredGitCandidates !== void 0 ? { knownGitCandidates: discoveredGitCandidates } : {}
56133
+ });
56134
+ if (discoveryTimings)
56135
+ discoveryTimings.metadataDiscoveryMs = Math.round(performance5.now() - metadataDiscoveryStart);
56136
+ }
56069
56137
  if (opts?.cache) {
56070
56138
  snapshot.cacheMode = opts.cache;
56071
56139
  snapshot.cacheRootDir = cacheRoot(projectRoot, opts);
@@ -56350,6 +56418,17 @@ async function buildProjectIndexIncremental(projectRoot, opts) {
56350
56418
  edges: []
56351
56419
  });
56352
56420
  }
56421
+ for (const [file2, entry] of manifestEntries) {
56422
+ const signature = fileSignatures.get(file2);
56423
+ if (!signature)
56424
+ continue;
56425
+ const { gitSig: _previousGitSig, ...entryWithoutGitSig } = entry;
56426
+ manifestEntries.set(file2, {
56427
+ ...entryWithoutGitSig,
56428
+ sig: signature.sig,
56429
+ ...signature.gitSig ? { gitSig: signature.gitSig } : {}
56430
+ });
56431
+ }
56353
56432
  await writeIndexManifestSnapshot({
56354
56433
  projectRoot,
56355
56434
  opts,
@@ -58577,7 +58656,7 @@ async function buildLifecycleManifest(root, buildOptions, existing, options = {}
58577
58656
  configHash: await hashConfig(root, buildOptions?.logLevel),
58578
58657
  buildOptionsHash: hashBuildOptions(buildOptions),
58579
58658
  fileCount: snapshot.files.length,
58580
- fileSignatureHash: await hashDiscoveredFiles(snapshot.files, root),
58659
+ fileSignatureHash: hashManifestEntries(snapshot.files, root, snapshot.index.manifestEntries, snapshot.index.manifestSignaturesFresh) ?? await hashDiscoveredFiles(snapshot.files, root),
58581
58660
  files: discoveredFileRelativePaths(snapshot.files, root),
58582
58661
  analysis: snapshot.analysis
58583
58662
  };
@@ -58653,6 +58732,56 @@ function isMissingStatRace2(error51) {
58653
58732
  return false;
58654
58733
  return error51.code === "ENOENT" || error51.code === "ENOTDIR";
58655
58734
  }
58735
+ function hashManifestEntries(files, root, entries, signaturesFresh) {
58736
+ if (!signaturesFresh || !entries || entries.size !== files.length)
58737
+ return void 0;
58738
+ const sorted = [...files].sort((left, right) => left.localeCompare(right));
58739
+ const signatures = /* @__PURE__ */ new Map();
58740
+ for (const file2 of sorted) {
58741
+ const entry = entries.get(file2);
58742
+ const signature = parseLifecycleFileSignature(entry?.sig);
58743
+ if (!signature)
58744
+ return void 0;
58745
+ signatures.set(file2, signature);
58746
+ }
58747
+ const hash2 = createHash4("sha256");
58748
+ for (const file2 of sorted) {
58749
+ const signature = signatures.get(file2);
58750
+ if (!signature)
58751
+ return void 0;
58752
+ const relative = path51.relative(root, file2).replace(/\\/g, "/");
58753
+ hash2.update(relative);
58754
+ hash2.update("\0");
58755
+ hash2.update(signature.size);
58756
+ hash2.update("\0");
58757
+ hash2.update(signature.mtimeMs);
58758
+ hash2.update("\0");
58759
+ }
58760
+ return hash2.digest("hex");
58761
+ }
58762
+ function parseLifecycleFileSignature(value) {
58763
+ if (typeof value !== "string")
58764
+ return void 0;
58765
+ if (value === "0:0")
58766
+ return void 0;
58767
+ const parts = value.split(":");
58768
+ if (parts.length !== 2)
58769
+ return void 0;
58770
+ const [mtimeMs, size] = parts;
58771
+ if (!mtimeMs || !size)
58772
+ return void 0;
58773
+ if (!/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/.test(mtimeMs))
58774
+ return void 0;
58775
+ if (!/^(?:0|[1-9]\d*)$/.test(size))
58776
+ return void 0;
58777
+ const numericMtimeMs = Number(mtimeMs);
58778
+ const numericSize = Number(size);
58779
+ if (!Number.isFinite(numericMtimeMs) || String(numericMtimeMs) !== mtimeMs)
58780
+ return void 0;
58781
+ if (!Number.isSafeInteger(numericSize) || String(numericSize) !== size)
58782
+ return void 0;
58783
+ return { size, mtimeMs };
58784
+ }
58656
58785
  async function hashDiscoveredFiles(files, root) {
58657
58786
  const sorted = [...files].sort((left, right) => left.localeCompare(right));
58658
58787
  const signatures = /* @__PURE__ */ new Map();
@@ -76469,8 +76598,6 @@ function formatAgentExploreResponse(response) {
76469
76598
  for (const [name, value] of Object.entries(response.limits)) {
76470
76599
  lines.push(`- ${name}: ${value}`);
76471
76600
  }
76472
- const recommended = formatAgentFollowUpAsCli(response.followUps[0] ?? toolFollowUp("orient", { budget: "small" }));
76473
- lines.push("", `Recommended next: ${recommended}`);
76474
76601
  return lines.join("\n");
76475
76602
  }
76476
76603
  function packetSummaryLines(packet) {
@@ -77026,9 +77153,9 @@ var init_help = __esm({
77026
77153
 
77027
77154
  Start here:
77028
77155
  Configure every supported agent codegraph install --all --dry-run
77029
- Understand a repository codegraph explore "how does auth reach the database?" --root .
77030
- Review local changes codegraph review
77156
+ Map a repository codegraph orient --root . --budget small
77031
77157
  Find a symbol or file codegraph search "SessionManager" --json
77158
+ Review local changes codegraph review
77032
77159
  Check runtime health codegraph doctor
77033
77160
 
77034
77161
  Run codegraph --help for all commands.`;
@@ -77036,9 +77163,9 @@ Run codegraph --help for all commands.`;
77036
77163
 
77037
77164
  Start here:
77038
77165
  Configure every supported agent codegraph install --all --dry-run
77039
- Understand a repository codegraph explore "how does auth reach the database?" --root .
77040
- Review local changes codegraph review
77166
+ Map a repository codegraph orient --root . --budget small
77041
77167
  Find a symbol or file codegraph search "SessionManager" --json
77168
+ Review local changes codegraph review
77042
77169
  Check runtime health codegraph doctor
77043
77170
 
77044
77171
  Usage: codegraph <command> [options] [path]
@@ -84157,7 +84284,7 @@ function buildFocusTargets(modules, packets, review) {
84157
84284
  function buildRecommendedNext(includeRoots, focus, hasGitRepo) {
84158
84285
  const commands = [];
84159
84286
  const firstFocus = focus[0];
84160
- if (firstFocus) {
84287
+ if (firstFocus?.kind === "review") {
84161
84288
  for (const followUp of firstFocus.followUps) {
84162
84289
  commands.push({
84163
84290
  label: labelForFollowUp(firstFocus, followUp),
@@ -84266,16 +84393,14 @@ function formatAgentOrientation(response) {
84266
84393
  lines.push("", "Start here");
84267
84394
  for (const focus of response.focus) {
84268
84395
  lines.push(`- ${focus.file ?? focus.label}: ${focus.why}`);
84269
- for (const followUp of focus.followUps) {
84270
- lines.push(` - ${formatAgentFollowUpAsCli(followUp)}`);
84271
- }
84396
+ }
84397
+ if (response.focus.some((focus) => focus.file)) {
84398
+ lines.push("Inspect a listed path: codegraph packet get <path>");
84272
84399
  }
84273
84400
  }
84274
- const focusFollowUps = new Set(response.focus.flatMap((focus) => focus.followUps.map(formatAgentFollowUpAsCli)));
84275
- const remainingRecommendations = response.recommendedNext.filter((next) => !focusFollowUps.has(next.command));
84276
- if (remainingRecommendations.length) {
84401
+ if (response.recommendedNext.length) {
84277
84402
  lines.push("", "Recommended next");
84278
- for (const next of remainingRecommendations) {
84403
+ for (const next of response.recommendedNext) {
84279
84404
  lines.push(`- ${next.command}`);
84280
84405
  }
84281
84406
  }
@@ -84298,7 +84423,6 @@ var init_orient2 = __esm({
84298
84423
  "dist/cli/orient.js"() {
84299
84424
  "use strict";
84300
84425
  init_orient();
84301
- init_followUps();
84302
84426
  }
84303
84427
  });
84304
84428
 
@@ -1,5 +1,5 @@
1
1
  export { isKnownCliCommand } from "./commandCatalog.js";
2
- export declare const CLI_TASK_HELP_TEXT = "codegraph - Ask structural questions about a repository\n\nStart here:\n Configure every supported agent codegraph install --all --dry-run\n Understand a repository codegraph explore \"how does auth reach the database?\" --root .\n Review local changes codegraph review\n Find a symbol or file codegraph search \"SessionManager\" --json\n Check runtime health codegraph doctor\n\nRun codegraph --help for all commands.";
2
+ export declare const CLI_TASK_HELP_TEXT = "codegraph - Ask structural questions about a repository\n\nStart here:\n Configure every supported agent codegraph install --all --dry-run\n Map a repository codegraph orient --root . --budget small\n Find a symbol or file codegraph search \"SessionManager\" --json\n Review local changes codegraph review\n Check runtime health codegraph doctor\n\nRun codegraph --help for all commands.";
3
3
  export declare const CLI_HELP_TEXT: string;
4
4
  export declare const ADVANCED_HELP_TEXT: string;
5
5
  export declare const LIFECYCLE_HELP_TEXT = "codegraph init/status/sync/uninit - Initialize, inspect, refresh, or remove project-local Codegraph state\n\nUsage:\n codegraph init [path] [--force] [--no-update-gitignore] [--json | --pretty]\n codegraph init --root <path> [--force] [--no-update-gitignore] [--json | --pretty]\n codegraph status [path] [--json | --pretty]\n codegraph status --root <path> [--json | --pretty]\n codegraph sync [path] [--init] [--no-update-gitignore] [--json | --pretty]\n codegraph sync --root <path> [--init] [--no-update-gitignore] [--json | --pretty]\n codegraph uninit [path] [--force] [--json | --pretty]\n codegraph uninit --root <path> [--force] [--json | --pretty]\n\nState:\n Lifecycle commands own .codegraph/manifest.json metadata; a shared MCP server owns .codegraph/server.json and .codegraph/server.log. In a Git worktree, init and sync --init ensure the .codegraph/ directory is effectively ignored, appending .codegraph/ to the resolved root's .gitignore only when needed; opt out with --no-update-gitignore.\n A tracked manifest is left tracked with a warning. Uninit preserves server.json, server.log, and cache even with --force, so stop a shared server explicitly; it leaves the root .gitignore rule, and ordinary sync never changes ignore policy.\n Init and sync may warm or update the disk cache under .codegraph/cache/index-v1/. Existing .codegraph-cache/ directories migrate automatically on the next run. Other commands do not depend on the manifest.\n Positional paths and --root are alternatives for lifecycle commands; do not combine them.\n";
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,kBAAkB,ydASQ,CAAC;AAExC,eAAO,MAAM,aAAa,QAkHzB,CAAC;AACF,eAAO,MAAM,kBAAkB,QAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,miDAiB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,ofAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,g1BAY7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kXAM/B,CAAC;AAMF,eAAO,MAAM,iBAAiB,itCAU7B,CAAC;AAEF,eAAO,MAAM,cAAc,wzBAU1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,itDAkB5B,CAAC;AAEF,eAAO,MAAM,cAAc,2qCAQ1B,CAAC;AAEF,eAAO,MAAM,cAAc,usCAS1B,CAAC;AAEF,eAAO,MAAM,cAAc,4yBAO1B,CAAC;AAEF,eAAO,MAAM,aAAa,yNAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,y6CAY7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,skCAO7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,skCAO7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,q/BAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,++BAO9B,CAAC;AAEF,eAAO,MAAM,yBAAyB,oiCAOrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,qyCASpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,+4CASnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,i2CAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,y8CAgB5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,g/CAW7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,+3CAgB9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,2jDAkB5B,CAAC;AAEF,eAAO,MAAM,aAAa,g2CAwBzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,i4EAwC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,k8FAwChC,CAAC;AAEF,eAAO,MAAM,eAAe,qrCAe3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qgCAc5B,CAAC;AAEF,eAAO,MAAM,eAAe,2jCAQ3B,CAAC;AAEF,eAAO,MAAM,eAAe,mmCAQ3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qnDAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,o9BAQ5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,o2BAK7B,CAAC;AAEF,eAAO,MAAM,cAAc,wmCAS1B,CAAC;AAEF,eAAO,MAAM,eAAe,0nCAS3B,CAAC;AAEF,eAAO,MAAM,cAAc,u0BAK1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,s0BAK5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,6zBAK9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,4zBAKhC,CAAC;AAEF,eAAO,MAAM,eAAe,2mBAY3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,2zBAKhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,y2BAKjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,wPAM5B,CAAC;AAEF,eAAO,MAAM,eAAe,+KAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,4UAM3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,syBAK7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gHAG7B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAoDtG"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,kBAAkB,icASQ,CAAC;AAExC,eAAO,MAAM,aAAa,QAkHzB,CAAC;AACF,eAAO,MAAM,kBAAkB,QAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,miDAiB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,ofAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,g1BAY7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kXAM/B,CAAC;AAMF,eAAO,MAAM,iBAAiB,itCAU7B,CAAC;AAEF,eAAO,MAAM,cAAc,wzBAU1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,itDAkB5B,CAAC;AAEF,eAAO,MAAM,cAAc,2qCAQ1B,CAAC;AAEF,eAAO,MAAM,cAAc,usCAS1B,CAAC;AAEF,eAAO,MAAM,cAAc,4yBAO1B,CAAC;AAEF,eAAO,MAAM,aAAa,yNAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,y6CAY7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,skCAO7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,skCAO7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,q/BAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,++BAO9B,CAAC;AAEF,eAAO,MAAM,yBAAyB,oiCAOrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,qyCASpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,+4CASnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,i2CAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,y8CAgB5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,g/CAW7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,+3CAgB9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,2jDAkB5B,CAAC;AAEF,eAAO,MAAM,aAAa,g2CAwBzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,i4EAwC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,k8FAwChC,CAAC;AAEF,eAAO,MAAM,eAAe,qrCAe3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qgCAc5B,CAAC;AAEF,eAAO,MAAM,eAAe,2jCAQ3B,CAAC;AAEF,eAAO,MAAM,eAAe,mmCAQ3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qnDAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,o9BAQ5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,o2BAK7B,CAAC;AAEF,eAAO,MAAM,cAAc,wmCAS1B,CAAC;AAEF,eAAO,MAAM,eAAe,0nCAS3B,CAAC;AAEF,eAAO,MAAM,cAAc,u0BAK1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,s0BAK5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,6zBAK9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,4zBAKhC,CAAC;AAEF,eAAO,MAAM,eAAe,2mBAY3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,2zBAKhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,y2BAKjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,wPAM5B,CAAC;AAEF,eAAO,MAAM,eAAe,+KAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,4UAM3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,syBAK7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gHAG7B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAoDtG"}
package/dist/cli/help.js CHANGED
@@ -4,9 +4,9 @@ export const CLI_TASK_HELP_TEXT = `codegraph - Ask structural questions about a
4
4
 
5
5
  Start here:
6
6
  Configure every supported agent codegraph install --all --dry-run
7
- Understand a repository codegraph explore "how does auth reach the database?" --root .
8
- Review local changes codegraph review
7
+ Map a repository codegraph orient --root . --budget small
9
8
  Find a symbol or file codegraph search "SessionManager" --json
9
+ Review local changes codegraph review
10
10
  Check runtime health codegraph doctor
11
11
 
12
12
  Run codegraph --help for all commands.`;
@@ -14,9 +14,9 @@ export const CLI_HELP_TEXT = `codegraph - Code analysis and dependency graph too
14
14
 
15
15
  Start here:
16
16
  Configure every supported agent codegraph install --all --dry-run
17
- Understand a repository codegraph explore "how does auth reach the database?" --root .
18
- Review local changes codegraph review
17
+ Map a repository codegraph orient --root . --budget small
19
18
  Find a symbol or file codegraph search "SessionManager" --json
19
+ Review local changes codegraph review
20
20
  Check runtime health codegraph doctor
21
21
 
22
22
  Usage: codegraph <command> [options] [path]
@@ -1 +1 @@
1
- {"version":3,"file":"orient.d.ts","sourceRoot":"","sources":["../../src/cli/orient.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAkB1D,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAoC5E"}
1
+ {"version":3,"file":"orient.d.ts","sourceRoot":"","sources":["../../src/cli/orient.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAkB1D,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAkC5E"}
@@ -1,5 +1,4 @@
1
1
  import { orientCodegraph, } from "../agent/orient.js";
2
- import { formatAgentFollowUpAsCli } from "../agent/followUps.js";
3
2
  function parseAgentOrientBudget(rawValue) {
4
3
  if (rawValue === undefined)
5
4
  return "small";
@@ -40,16 +39,14 @@ export function formatAgentOrientation(response) {
40
39
  lines.push("", "Start here");
41
40
  for (const focus of response.focus) {
42
41
  lines.push(`- ${focus.file ?? focus.label}: ${focus.why}`);
43
- for (const followUp of focus.followUps) {
44
- lines.push(` - ${formatAgentFollowUpAsCli(followUp)}`);
45
- }
42
+ }
43
+ if (response.focus.some((focus) => focus.file)) {
44
+ lines.push("Inspect a listed path: codegraph packet get <path>");
46
45
  }
47
46
  }
48
- const focusFollowUps = new Set(response.focus.flatMap((focus) => focus.followUps.map(formatAgentFollowUpAsCli)));
49
- const remainingRecommendations = response.recommendedNext.filter((next) => !focusFollowUps.has(next.command));
50
- if (remainingRecommendations.length) {
47
+ if (response.recommendedNext.length) {
51
48
  lines.push("", "Recommended next");
52
- for (const next of remainingRecommendations) {
49
+ for (const next of response.recommendedNext) {
53
50
  lines.push(`- ${next.command}`);
54
51
  }
55
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orient.js","sourceRoot":"","sources":["../../src/cli/orient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orient.js","sourceRoot":"","sources":["../../src/cli/orient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-index.d.ts","sourceRoot":"","sources":["../../src/indexer/build-index.ts"],"names":[],"mappings":"AAuFA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EAErB,KAAK,uBAAuB,EAI5B,KAAK,YAAY,EAIlB,MAAM,YAAY,CAAC;AAykCpB;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAEvG;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC,CAgBvB;AA4BD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC,CA8sBvB;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8IpH"}
1
+ {"version":3,"file":"build-index.d.ts","sourceRoot":"","sources":["../../src/indexer/build-index.ts"],"names":[],"mappings":"AAuFA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EAErB,KAAK,uBAAuB,EAI5B,KAAK,YAAY,EAIlB,MAAM,YAAY,CAAC;AA8kCpB;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAEvG;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC,CAgBvB;AA4BD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAmwBvB;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8IpH"}