@lzehrung/codegraph 2.3.20 → 2.3.21

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 (46) hide show
  1. package/codegraph-skill/codegraph/SKILL.md +1 -0
  2. package/dist/agent/session.d.ts +2 -2
  3. package/dist/agent/session.d.ts.map +1 -1
  4. package/dist/agent/session.js +13 -9
  5. package/dist/agent/session.js.map +1 -1
  6. package/dist/bin/cli.js +36335 -36073
  7. package/dist/config.d.ts +1 -1
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +0 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/indexer/build-cache/manifest.d.ts +2 -2
  12. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  13. package/dist/indexer/build-cache/manifest.js +8 -33
  14. package/dist/indexer/build-cache/manifest.js.map +1 -1
  15. package/dist/indexer/build-index.d.ts.map +1 -1
  16. package/dist/indexer/build-index.js +33 -10
  17. package/dist/indexer/build-index.js.map +1 -1
  18. package/dist/indexer/build-manifest.d.ts +3 -0
  19. package/dist/indexer/build-manifest.d.ts.map +1 -1
  20. package/dist/indexer/build-manifest.js +1 -1
  21. package/dist/indexer/build-manifest.js.map +1 -1
  22. package/dist/indexer/finalize.d.ts +2 -1
  23. package/dist/indexer/finalize.d.ts.map +1 -1
  24. package/dist/indexer/finalize.js +1 -0
  25. package/dist/indexer/finalize.js.map +1 -1
  26. package/dist/indexer/incremental-plan.d.ts +3 -2
  27. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  28. package/dist/indexer/incremental-plan.js +8 -4
  29. package/dist/indexer/incremental-plan.js.map +1 -1
  30. package/dist/indexer/types.d.ts +3 -1
  31. package/dist/indexer/types.d.ts.map +1 -1
  32. package/dist/lifecycle/manifest.d.ts.map +1 -1
  33. package/dist/lifecycle/manifest.js +6 -4
  34. package/dist/lifecycle/manifest.js.map +1 -1
  35. package/dist/util/git.d.ts +13 -10
  36. package/dist/util/git.d.ts.map +1 -1
  37. package/dist/util/git.js +29 -25
  38. package/dist/util/git.js.map +1 -1
  39. package/dist/util/projectFiles/definitions.d.ts +19 -0
  40. package/dist/util/projectFiles/definitions.d.ts.map +1 -1
  41. package/dist/util/projectFiles/definitions.js.map +1 -1
  42. package/dist/util/projectFiles.d.ts +72 -21
  43. package/dist/util/projectFiles.d.ts.map +1 -1
  44. package/dist/util/projectFiles.js +279 -30
  45. package/dist/util/projectFiles.js.map +1 -1
  46. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/util/projectFiles/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/util/projectFiles/definitions.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
+ import fs from "node:fs";
1
2
  import { type LogLevel } from "../logging.js";
2
3
  export { isRelativePathInside, matchesDiscoveryGlob } from "./discoveryPath.js";
3
- import { type ProjectFileInfo } from "./projectFiles/definitions.js";
4
- export type { ProjectFileDefinition, ProjectFileInfo, ProjectFileKind, ProjectFileRole, ProjectFileType, } from "./projectFiles/definitions.js";
4
+ import { type ProjectFileInfo, type ProjectFileDiscoveryOptions } from "./projectFiles/definitions.js";
5
+ import { type GitDiscoveryCache } from "./git.js";
6
+ export type { ProjectFileDefinition, ProjectFileInfo, ProjectFileKind, ProjectFileRole, ProjectFileType, ProjectFileDiscoveryOptions, SymlinkProbeMode, } from "./projectFiles/definitions.js";
5
7
  export declare const DEFAULT_PROJECT_FILE_IGNORES: string[];
6
8
  export declare const DEFAULT_PROJECT_MANIFESTS: string[];
7
9
  export declare const DEFAULT_PROJECT_PATTERNS: string[];
8
- export type SymlinkProbeMode = "known" | "git-candidates" | "filesystem";
9
10
  /**
10
11
  * Working-tree candidate listing shared by `listProjectFiles` and `discoverProjectFiles`.
11
12
  *
@@ -22,23 +23,13 @@ export type GitCandidateSet = {
22
23
  gitignoreRoots: string[];
23
24
  gitignoreAliases: GitIgnoreSourceRoot[];
24
25
  };
25
- export type ProjectFileDiscoveryOptions = {
26
- includeGlobs?: string[];
27
- ignoreGlobs?: string[];
28
- globRoot?: string;
29
- useGitignore?: boolean;
30
- gitignoreRoot?: string;
31
- logLevel?: LogLevel;
32
- /**
33
- * Previously discovered symlinked directories under the project root. When provided
34
- * (including an empty array), discovery re-verifies each entry directly and skips the
35
- * probe on warm runs. Omit it to probe once and report the result through
36
- * `onSymlinkDirectoriesDiscovered`. The callback mode distinguishes persisted hints,
37
- * Git candidate screening, and the non-Git filesystem fallback.
38
- */
39
- knownSymlinkDirectories?: readonly string[];
40
- onSymlinkDirectoriesDiscovered?: (directories: readonly string[], mode: SymlinkProbeMode) => void;
41
- };
26
+ /**
27
+ * Per-operation discovery cache. {@link createProjectDiscoveryContext} allocates empty
28
+ * maps only; the first caller to need a fact fills it. Distinct contexts never share
29
+ * filesystem or Git work, so successive operations stay fresh without invalidation.
30
+ */
31
+ export type ProjectDiscoveryContext = DiscoveryContext;
32
+ export declare function createProjectDiscoveryContext(projectRoot: string): ProjectDiscoveryContext;
42
33
  type DiscoveryWorkProgress = {
43
34
  activity: string;
44
35
  current: number;
@@ -48,19 +39,75 @@ type DiscoveryTimingStep = {
48
39
  name: string;
49
40
  ms: number;
50
41
  };
51
- type DiscoveryWorkCallbacks = {
42
+ export type DiscoveryWorkCallbacks = {
52
43
  onDiscoveryProgress?: (progress: DiscoveryWorkProgress) => void;
53
44
  onDiscoveryTiming?: (step: DiscoveryTimingStep) => void;
54
45
  };
55
46
  type InternalProjectFileDiscoveryOptions = ProjectFileDiscoveryOptions & DiscoveryWorkCallbacks & {
56
47
  onGitCandidatesDiscovered?: (candidates: GitCandidateSet | null) => void;
48
+ discoveryContext?: ProjectDiscoveryContext;
57
49
  };
58
50
  type ProjectMetadataPublicOptions = Pick<ProjectFileDiscoveryOptions, "logLevel" | "knownSymlinkDirectories" | "onSymlinkDirectoriesDiscovered">;
59
51
  type ProjectMetadataDiscoveryOptions = ProjectMetadataPublicOptions & DiscoveryWorkCallbacks & {
60
52
  knownGitCandidates?: GitCandidateSet | null;
61
53
  onGitCandidatesDiscovered?: (candidates: GitCandidateSet | null) => void;
54
+ discoveryContext?: ProjectDiscoveryContext;
55
+ };
56
+ type GitignoreRule = {
57
+ baseDir: string;
58
+ negated: boolean;
59
+ dirOnly: boolean;
60
+ matches: (relativePath: string) => boolean;
61
+ };
62
+ type SharedGlobReaddir = {
63
+ (directory: string, options: {
64
+ withFileTypes: true;
65
+ }, callback: (error: NodeJS.ErrnoException | null, files: fs.Dirent[]) => void): void;
66
+ (directory: string, callback: (error: NodeJS.ErrnoException | null, files: string[]) => void): void;
67
+ };
68
+ type SharedGlobFilesystem = {
69
+ readdir: SharedGlobReaddir;
62
70
  };
63
71
  export declare function translateGlobRootIgnoreGlobsForScanRoot(scanRoot: string, globRoot: string, ignoreGlobs: readonly string[]): string[];
72
+ /**
73
+ * The rules one `.gitignore` directory declares, kept with that directory.
74
+ *
75
+ * Storing the base alongside the rules lets the matcher resolve one relative path per
76
+ * group instead of one per rule.
77
+ */
78
+ type GitignoreRuleGroup = {
79
+ baseDir: string;
80
+ repositoryRoot: string | undefined;
81
+ rules: GitignoreRule[];
82
+ };
83
+ type GitignoreIndex = {
84
+ hasRules: boolean;
85
+ repositoryRoots: string[];
86
+ repositoryAliases: GitIgnoreSourceRoot[];
87
+ /**
88
+ * Rule groups keyed by {@link fileIdentityKey} of the declaring directory, so one base
89
+ * directory can never be keyed two ways.
90
+ */
91
+ byBaseDir: Map<string, GitignoreRuleGroup>;
92
+ };
93
+ type FileTextResult = {
94
+ ok: true;
95
+ text: string;
96
+ } | {
97
+ ok: false;
98
+ error: unknown;
99
+ };
100
+ declare class DiscoveryContext {
101
+ readonly projectRoot: string;
102
+ readonly git: GitDiscoveryCache;
103
+ readonly gitCandidatesByRoot: Map<string, Promise<GitCandidateSet | null>>;
104
+ readonly ignoreIndexByKey: Map<string, Promise<GitignoreIndex>>;
105
+ readonly fileTextByPath: Map<string, Promise<FileTextResult>>;
106
+ readonly readdirCache: Map<string, Promise<fs.Dirent<string>[]>>;
107
+ readonly globFilesystem: SharedGlobFilesystem;
108
+ constructor(projectRoot: string);
109
+ }
110
+ export declare function readProjectDiscoveryFileText(discoveryContext: ProjectDiscoveryContext | undefined, filePath: string): Promise<string>;
64
111
  /**
65
112
  * A file of ignore patterns plus the directory its patterns resolve against.
66
113
  *
@@ -99,4 +146,8 @@ export declare function createDiscoveredFileMatcher(root: string, globRoot: stri
99
146
  export declare function filterRealPathsWithinRoot(paths: string[], realRoot: string, onPathCheckProgress?: (current: number, total: number) => void): Promise<string[]>;
100
147
  export declare function discoverProjectFiles(projectRoot: string, options?: ProjectMetadataPublicOptions): Promise<ProjectFileInfo[]>;
101
148
  export declare function discoverProjectFilesWithGitCandidates(projectRoot: string, options?: ProjectMetadataDiscoveryOptions): Promise<ProjectFileInfo[]>;
149
+ export declare function collectConfigHashInputFiles(projectRoot: string, discoveryContext: ProjectDiscoveryContext, logLevel?: LogLevel, callbacks?: DiscoveryWorkCallbacks): Promise<{
150
+ files: string[];
151
+ error?: string;
152
+ }>;
102
153
  //# sourceMappingURL=projectFiles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectFiles.d.ts","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectFiles.d.ts","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"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"}