@cesarandreslopez/occ 0.8.10 → 0.8.12
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/README.md +7 -4
- package/dist/src/code/build.d.ts +49 -1
- package/dist/src/code/build.js +127 -33
- package/dist/src/code/build.js.map +1 -1
- package/dist/src/code/chunk.d.ts +10 -0
- package/dist/src/code/chunk.js +14 -1
- package/dist/src/code/chunk.js.map +1 -1
- package/dist/src/code/discover.d.ts +13 -0
- package/dist/src/code/discover.js +49 -2
- package/dist/src/code/discover.js.map +1 -1
- package/dist/src/code/incremental.d.ts +75 -0
- package/dist/src/code/incremental.js +257 -0
- package/dist/src/code/incremental.js.map +1 -0
- package/dist/src/code/map.d.ts +8 -1
- package/dist/src/code/map.js +13 -3
- package/dist/src/code/map.js.map +1 -1
- package/dist/src/code/parsers.d.ts +1 -0
- package/dist/src/code/parsers.js +1 -1
- package/dist/src/code/parsers.js.map +1 -1
- package/dist/src/code/rank.d.ts +14 -0
- package/dist/src/code/rank.js +58 -0
- package/dist/src/code/rank.js.map +1 -1
- package/dist/src/code/store.d.ts +20 -0
- package/dist/src/code/store.js +262 -109
- package/dist/src/code/store.js.map +1 -1
- package/dist/src/doc/chunk.d.ts +17 -0
- package/dist/src/doc/chunk.js +47 -18
- package/dist/src/doc/chunk.js.map +1 -1
- package/dist/src/doc/inspect-docx.js +13 -3
- package/dist/src/doc/inspect-docx.js.map +1 -1
- package/dist/src/doc/inspect-pdf.js +12 -17
- package/dist/src/doc/inspect-pdf.js.map +1 -1
- package/dist/src/index.d.ts +13 -8
- package/dist/src/index.js +9 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/inspect/xlsx-cells.d.ts +8 -0
- package/dist/src/inspect/xlsx-cells.js +17 -2
- package/dist/src/inspect/xlsx-cells.js.map +1 -1
- package/dist/src/markdown/convert.js +45 -27
- package/dist/src/markdown/convert.js.map +1 -1
- package/dist/src/parsers/docx.js +10 -2
- package/dist/src/parsers/docx.js.map +1 -1
- package/dist/src/parsers/index.js +5 -0
- package/dist/src/parsers/index.js.map +1 -1
- package/dist/src/parsers/pdf.js +12 -32
- package/dist/src/parsers/pdf.js.map +1 -1
- package/dist/src/parsers/xlsx.js +11 -1
- package/dist/src/parsers/xlsx.js.map +1 -1
- package/dist/src/progress-event.d.ts +3 -1
- package/dist/src/progress-event.js +32 -1
- package/dist/src/progress-event.js.map +1 -1
- package/dist/src/sheet/inspect.js +20 -10
- package/dist/src/sheet/inspect.js.map +1 -1
- package/dist/src/table/inspect-docx.js +10 -1
- package/dist/src/table/inspect-docx.js.map +1 -1
- package/dist/src/table/inspect-xlsx.js +15 -5
- package/dist/src/table/inspect-xlsx.js.map +1 -1
- package/dist/src/utils.d.ts +24 -0
- package/dist/src/utils.js +91 -2
- package/dist/src/utils.js.map +1 -1
- package/dist/src/workspace/bundle.d.ts +51 -0
- package/dist/src/workspace/bundle.js +405 -93
- package/dist/src/workspace/bundle.js.map +1 -1
- package/dist/src/workspace/documents.d.ts +4 -0
- package/dist/src/workspace/documents.js +15 -2
- package/dist/src/workspace/documents.js.map +1 -1
- package/dist/src/workspace/prepare-types.d.ts +15 -0
- package/dist/src/workspace/prepare-types.js +18 -1
- package/dist/src/workspace/prepare-types.js.map +1 -1
- package/dist/src/workspace/prepare.js +10 -2
- package/dist/src/workspace/prepare.js.map +1 -1
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -381,6 +381,7 @@ import { createOcc } from '@cesarandreslopez/occ';
|
|
|
381
381
|
const occ = createOcc();
|
|
382
382
|
const bundle = await occ.workspace.bundle('./my-project', {
|
|
383
383
|
includeDocumentChunks: true,
|
|
384
|
+
includeCorpusChunks: true, // unified, deterministically-ordered code + document chunks
|
|
384
385
|
maxCodeFiles: 5_000,
|
|
385
386
|
maxCodeBytes: 32 * 1024 * 1024,
|
|
386
387
|
});
|
|
@@ -388,6 +389,7 @@ const bundle = await occ.workspace.bundle('./my-project', {
|
|
|
388
389
|
console.log(bundle.outline); // root → projects → modules → documents → sections
|
|
389
390
|
console.log(bundle.codeDocumentReferences); // per-symbol matches inside markdown content
|
|
390
391
|
console.log(bundle.documentChunks?.length); // heading-aware token-budgeted document chunks
|
|
392
|
+
console.log(bundle.corpusChunks?.length); // merged code + document chunks (WorkspaceCorpusChunk[]) for RAG
|
|
391
393
|
```
|
|
392
394
|
|
|
393
395
|
For heading-aware token-budgeted document chunking (RAG-friendly):
|
|
@@ -418,22 +420,23 @@ Available subpath exports:
|
|
|
418
420
|
|
|
419
421
|
| Import path | Description |
|
|
420
422
|
|-------------|-------------|
|
|
421
|
-
| `@cesarandreslopez/occ/code/build` | `buildCodebaseIndex` — graph construction (with optional `maxFiles`/`maxBytes`/`onBudgetExceeded` budget controls and `CodeIndexBudgetExceededError`) |
|
|
423
|
+
| `@cesarandreslopez/occ/code/build` | `buildCodebaseIndex` — graph construction (with optional `maxFiles`/`maxBytes`/`onBudgetExceeded` budget controls and `CodeIndexBudgetExceededError`); also `parseCodeFiles` (bounded-concurrency parse pool) + `assembleCodebaseIndex` for staged indexing |
|
|
422
424
|
| `@cesarandreslopez/occ/code/types` | TypeScript types (`CodebaseIndex`, `CodeNode`, `CodeEdge`, `IndexTruncation`, etc.) |
|
|
423
425
|
| `@cesarandreslopez/occ/code/query` | Query functions (`findByName`, `analyzeCalls`, `analyzeDeps`, etc.) |
|
|
424
426
|
| `@cesarandreslopez/occ/code/discover` | `discoverCodeFiles` — file discovery |
|
|
425
427
|
| `@cesarandreslopez/occ/code/preview` | `previewCodebaseSize` — cheap size + per-language estimate without parsing, with budget pressure reporting |
|
|
426
428
|
| `@cesarandreslopez/occ/code/isolated` | `buildCodebaseIndexIsolated` — runs `buildCodebaseIndex` in a forked subprocess, optionally returning a slim index |
|
|
429
|
+
| `@cesarandreslopez/occ/code/incremental` | `computeManifestDiff`, `classifyChangedFiles`, `findResolutionImpactedFiles`, `spliceIndexInputs` — primitives behind incremental `update()`/`ensureFresh()` (manifest diff + resolution-impact + graph splice) |
|
|
427
430
|
| `@cesarandreslopez/occ/code/slim` | `slimifyIndex`, `parseSlimIndex`, `validateSlimIndex` — content-free `CodebaseIndexSlim` for graph-only consumers |
|
|
428
431
|
| `@cesarandreslopez/occ/code/chunk` | `chunkCodebase`, `chunkFromIndex` — semantic code chunking (word- or token-based via `maxTokens`/`countTokens`) |
|
|
429
432
|
| `@cesarandreslopez/occ/code/session` | `createCodeQuerySession` — stateful code query session |
|
|
430
|
-
| `@cesarandreslopez/occ/code/store` | `openCodeIndexStore`, `openChunkCodeIndexStore` — persistent index store with cache strategies (the chunk variant pins `contentMode: 'full'`;
|
|
433
|
+
| `@cesarandreslopez/occ/code/store` | `openCodeIndexStore`, `openChunkCodeIndexStore` — persistent index store with cache strategies (the chunk variant pins `contentMode: 'full'`; `update(changedFiles?)` does a true incremental refresh — manifest diff + targeted re-parse + graph splice) |
|
|
431
434
|
| `@cesarandreslopez/occ/code/cache` | Index caching utilities (legacy — prefer `./code/store`) |
|
|
432
435
|
| `@cesarandreslopez/occ/doc/inspect` | `inspectDocument` — document metadata and content extraction |
|
|
433
436
|
| `@cesarandreslopez/occ/doc/types` | Document inspection types |
|
|
434
437
|
| `@cesarandreslopez/occ/doc/discover` | Document file discovery (now includes prose formats by default; opt into data files via `includeDataFiles`; new `discoverDocumentSet` returns `{ documents, skipped }`) |
|
|
435
438
|
| `@cesarandreslopez/occ/doc/batch` | Batch document inspection |
|
|
436
|
-
| `@cesarandreslopez/occ/doc/chunk` | `chunkDocument` — heading-aware, token-budgeted document chunker for DOCX/PDF/PPTX/XLSX/ODT/ODS/ODP/MD/MDX/TXT/RST/AsciiDoc |
|
|
439
|
+
| `@cesarandreslopez/occ/doc/chunk` | `chunkDocument` / `chunkDocumentFromMarkdown` — heading-aware, token-budgeted document chunker for DOCX/PDF/PPTX/XLSX/ODT/ODS/ODP/MD/MDX/TXT/RST/AsciiDoc (the `FromMarkdown` variant chunks pre-converted markdown without re-parsing) |
|
|
437
440
|
| `@cesarandreslopez/occ/doc/entities` | Entity and keyword extraction |
|
|
438
441
|
| `@cesarandreslopez/occ/doc/references` | Cross-reference detection |
|
|
439
442
|
| `@cesarandreslopez/occ/workspace/analyze` | `analyzeWorkspace` — workspace-level analysis |
|
|
@@ -442,7 +445,7 @@ Available subpath exports:
|
|
|
442
445
|
| `@cesarandreslopez/occ/workspace/types` | Workspace analysis types |
|
|
443
446
|
| `@cesarandreslopez/occ/workspace/prepare` | `prepareWorkspaceContext` — combined code indexing + document inspection |
|
|
444
447
|
| `@cesarandreslopez/occ/workspace/prepare-types` | Workspace preparation types (`WorkspacePrepareOptions`, `WorkspacePreparedContext`, etc.) |
|
|
445
|
-
| `@cesarandreslopez/occ/workspace/bundle` | `bundleWorkspace` — single-call versioned `WorkspaceBundle` (description + analysis + documents + slim code index + outline + cross-refs + optional document chunks) |
|
|
448
|
+
| `@cesarandreslopez/occ/workspace/bundle` | `bundleWorkspace` — single-call versioned `WorkspaceBundle` (description + analysis + documents + slim code index + outline + cross-refs + optional document / code / unified corpus chunks via `WorkspaceCorpusChunk`) |
|
|
446
449
|
| `@cesarandreslopez/occ/markdown/convert` | `documentToMarkdown` — document-to-markdown conversion (now reads MD/MDX/TXT/RST/AsciiDoc/YAML/JSON/TOML directly) |
|
|
447
450
|
| `@cesarandreslopez/occ/structure/extract` | `extractFromMarkdown` — heading tree extraction |
|
|
448
451
|
| `@cesarandreslopez/occ/structure/types` | Structure types and helpers |
|
package/dist/src/code/build.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type
|
|
2
|
+
import { type CodebaseIndex, type CodeSkippedFile, type ContentMode, type IndexTruncation, type ParsedFile } from './types.js';
|
|
3
3
|
import type { OnProgress } from '../progress-event.js';
|
|
4
4
|
export declare const BudgetExceededBehaviorSchema: z.ZodEnum<{
|
|
5
5
|
truncate: "truncate";
|
|
@@ -26,8 +26,43 @@ export declare const BuildCodebaseOptionsSchema: z.ZodObject<{
|
|
|
26
26
|
truncate: "truncate";
|
|
27
27
|
throw: "throw";
|
|
28
28
|
}>>;
|
|
29
|
+
parseConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
29
30
|
}, z.core.$strip>;
|
|
30
31
|
export type BuildCodebaseOptions = z.infer<typeof BuildCodebaseOptionsSchema>;
|
|
32
|
+
/**
|
|
33
|
+
* Default fan-out for parseCodeFiles. parseCodeFile is async I/O (stat + read)
|
|
34
|
+
* followed by a synchronous CPU parse; a small worker pool hides the I/O
|
|
35
|
+
* latency while bounding the memory held by in-flight file contents.
|
|
36
|
+
* worker_threads are explicitly out of scope: each worker would pay the
|
|
37
|
+
* typescript module load cost (dwarfing small incremental updates) and
|
|
38
|
+
* full-mode payloads would pay structured-clone overhead;
|
|
39
|
+
* buildCodebaseIndexIsolated already provides process-level isolation.
|
|
40
|
+
*/
|
|
41
|
+
export declare const DEFAULT_PARSE_CONCURRENCY: number;
|
|
42
|
+
export declare const ParseCodeFilesOptionsSchema: z.ZodObject<{
|
|
43
|
+
repoRoot: z.ZodString;
|
|
44
|
+
contentMode: z.ZodOptional<z.ZodEnum<{
|
|
45
|
+
none: "none";
|
|
46
|
+
excerpt: "excerpt";
|
|
47
|
+
full: "full";
|
|
48
|
+
}>>;
|
|
49
|
+
maxFileSizeBytes: z.ZodOptional<z.ZodNumber>;
|
|
50
|
+
maxLines: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
skipMinified: z.ZodOptional<z.ZodBoolean>;
|
|
52
|
+
concurrency: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export type ParseCodeFilesOptions = z.infer<typeof ParseCodeFilesOptionsSchema>;
|
|
55
|
+
export interface ParseCodeFilesResult {
|
|
56
|
+
parsedFiles: ParsedFile[];
|
|
57
|
+
skippedFiles: CodeSkippedFile[];
|
|
58
|
+
}
|
|
59
|
+
export interface AssembleCodebaseIndexInput {
|
|
60
|
+
repoRoot: string;
|
|
61
|
+
contentMode: ContentMode;
|
|
62
|
+
parsedFiles: ParsedFile[];
|
|
63
|
+
skippedFiles: CodeSkippedFile[];
|
|
64
|
+
truncated?: IndexTruncation;
|
|
65
|
+
}
|
|
31
66
|
export interface CodeIndexBudget {
|
|
32
67
|
maxFiles?: number;
|
|
33
68
|
maxBytes?: number;
|
|
@@ -40,4 +75,17 @@ export declare class CodeIndexBudgetExceededError extends Error {
|
|
|
40
75
|
readonly budget: CodeIndexBudget;
|
|
41
76
|
constructor(budget: CodeIndexBudget);
|
|
42
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Parse `files` with bounded concurrency. Both result arrays are returned in
|
|
80
|
+
* input order (per-slot results are compacted after the pool drains).
|
|
81
|
+
* Content-mode reduction happens at parse time, while content is still in
|
|
82
|
+
* memory — excerpt extraction needs the full source text.
|
|
83
|
+
*/
|
|
84
|
+
export declare function parseCodeFiles(files: string[], options: ParseCodeFilesOptions, onProgress?: OnProgress, signal?: AbortSignal): Promise<ParseCodeFilesResult>;
|
|
43
85
|
export declare function buildCodebaseIndex(options: BuildCodebaseOptions, onProgress?: OnProgress, signal?: AbortSignal): Promise<CodebaseIndex>;
|
|
86
|
+
/**
|
|
87
|
+
* Assemble the node/edge graph from already-parsed files. Synchronous —
|
|
88
|
+
* assembly has no awaits — so it can be reused verbatim by incremental
|
|
89
|
+
* updates that splice fresh parses into a cached file set.
|
|
90
|
+
*/
|
|
91
|
+
export declare function assembleCodebaseIndex(input: AssembleCodebaseIndexInput, onProgress?: OnProgress, signal?: AbortSignal): CodebaseIndex;
|
package/dist/src/code/build.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import os from 'node:os';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import { stat } from 'node:fs/promises';
|
|
3
4
|
import { z } from 'zod';
|
|
@@ -5,7 +6,8 @@ import { discoverCodeFiles } from './discover.js';
|
|
|
5
6
|
import { getLanguageSpec, getModuleName, normalizePath } from './languages.js';
|
|
6
7
|
import { parseCodeFile } from './parsers.js';
|
|
7
8
|
import { extractKeySection } from './query.js';
|
|
8
|
-
import {
|
|
9
|
+
import { ContentModeSchema } from './types.js';
|
|
10
|
+
import { abortIfNeeded, mapWithConcurrency } from '../utils.js';
|
|
9
11
|
export const BudgetExceededBehaviorSchema = z.enum(['throw', 'truncate']);
|
|
10
12
|
export const BuildCodebaseOptionsSchema = z.object({
|
|
11
13
|
repoRoot: z.string(),
|
|
@@ -20,6 +22,27 @@ export const BuildCodebaseOptionsSchema = z.object({
|
|
|
20
22
|
maxFiles: z.number().int().positive().optional(),
|
|
21
23
|
maxBytes: z.number().int().positive().optional(),
|
|
22
24
|
onBudgetExceeded: BudgetExceededBehaviorSchema.optional(),
|
|
25
|
+
parseConcurrency: z.number().int().positive().optional(),
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Default fan-out for parseCodeFiles. parseCodeFile is async I/O (stat + read)
|
|
29
|
+
* followed by a synchronous CPU parse; a small worker pool hides the I/O
|
|
30
|
+
* latency while bounding the memory held by in-flight file contents.
|
|
31
|
+
* worker_threads are explicitly out of scope: each worker would pay the
|
|
32
|
+
* typescript module load cost (dwarfing small incremental updates) and
|
|
33
|
+
* full-mode payloads would pay structured-clone overhead;
|
|
34
|
+
* buildCodebaseIndexIsolated already provides process-level isolation.
|
|
35
|
+
*/
|
|
36
|
+
export const DEFAULT_PARSE_CONCURRENCY = Math.min(8, Math.max(2,
|
|
37
|
+
// os.availableParallelism is missing on Node 18.0-18.13; fall back to cpus().
|
|
38
|
+
typeof os.availableParallelism === 'function' ? os.availableParallelism() : os.cpus().length));
|
|
39
|
+
export const ParseCodeFilesOptionsSchema = z.object({
|
|
40
|
+
repoRoot: z.string(),
|
|
41
|
+
contentMode: ContentModeSchema.optional(),
|
|
42
|
+
maxFileSizeBytes: z.number().optional(),
|
|
43
|
+
maxLines: z.number().optional(),
|
|
44
|
+
skipMinified: z.boolean().optional(),
|
|
45
|
+
concurrency: z.number().int().positive().optional(),
|
|
23
46
|
});
|
|
24
47
|
export class CodeIndexBudgetExceededError extends Error {
|
|
25
48
|
name = 'CodeIndexBudgetExceededError';
|
|
@@ -79,20 +102,31 @@ function applyContentMode(file, contentMode) {
|
|
|
79
102
|
};
|
|
80
103
|
}
|
|
81
104
|
async function withFileSizes(filePaths, signal) {
|
|
82
|
-
const
|
|
83
|
-
for (const filePath of filePaths) {
|
|
84
|
-
abortIfNeeded(signal);
|
|
105
|
+
const statted = await mapWithConcurrency(filePaths, 32, async (filePath) => {
|
|
85
106
|
try {
|
|
86
107
|
const fileStat = await stat(filePath);
|
|
87
|
-
|
|
88
|
-
sized.push({ path: filePath, size: fileStat.size });
|
|
89
|
-
}
|
|
108
|
+
return fileStat.isFile() ? { path: filePath, size: fileStat.size } : null;
|
|
90
109
|
}
|
|
91
110
|
catch {
|
|
92
|
-
// Files can disappear between discovery and stat;
|
|
111
|
+
// Files can disappear between discovery and stat; they are dropped from
|
|
112
|
+
// the parse list here (parseCodeFiles likewise drops files that vanish
|
|
113
|
+
// before parsing).
|
|
114
|
+
return null;
|
|
93
115
|
}
|
|
94
|
-
}
|
|
95
|
-
return
|
|
116
|
+
}, signal);
|
|
117
|
+
return statted.filter((file) => file !== null);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Filesystem failures parseCodeFiles absorbs per file instead of rejecting
|
|
121
|
+
* the whole batch: the file vanished between listing and parse (ENOENT,
|
|
122
|
+
* ENOTDIR) or became unreadable (EACCES, EPERM).
|
|
123
|
+
*/
|
|
124
|
+
const RECOVERABLE_PARSE_FS_CODES = new Set(['ENOENT', 'ENOTDIR', 'EACCES', 'EPERM']);
|
|
125
|
+
function isRecoverableParseFsError(error) {
|
|
126
|
+
return error instanceof Error
|
|
127
|
+
&& 'code' in error
|
|
128
|
+
&& typeof error.code === 'string'
|
|
129
|
+
&& RECOVERABLE_PARSE_FS_CODES.has(error.code);
|
|
96
130
|
}
|
|
97
131
|
function enforceBuildBudget(discovered, options) {
|
|
98
132
|
const totalFiles = discovered.length;
|
|
@@ -232,6 +266,65 @@ function isBuiltinNoiseCall(call, bindings, localSymbols) {
|
|
|
232
266
|
}
|
|
233
267
|
return !bindings.has(call.qualifier) && MEMBER_BUILTIN_CALLS.has(call.calleeName);
|
|
234
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Parse `files` with bounded concurrency. Both result arrays are returned in
|
|
271
|
+
* input order (per-slot results are compacted after the pool drains).
|
|
272
|
+
* Content-mode reduction happens at parse time, while content is still in
|
|
273
|
+
* memory — excerpt extraction needs the full source text.
|
|
274
|
+
*/
|
|
275
|
+
export async function parseCodeFiles(files, options, onProgress, signal) {
|
|
276
|
+
const repoRoot = options.repoRoot;
|
|
277
|
+
const contentMode = options.contentMode ?? 'excerpt';
|
|
278
|
+
const concurrency = options.concurrency ?? DEFAULT_PARSE_CONCURRENCY;
|
|
279
|
+
// Shared monotonic counter — completion order, not slot order.
|
|
280
|
+
let done = 0;
|
|
281
|
+
const slots = await mapWithConcurrency(files, concurrency, async (filePath) => {
|
|
282
|
+
let slot;
|
|
283
|
+
try {
|
|
284
|
+
const parsed = await parseCodeFile(filePath, { repoRoot }, {
|
|
285
|
+
maxFileSizeBytes: options.maxFileSizeBytes,
|
|
286
|
+
maxLines: options.maxLines,
|
|
287
|
+
skipMinified: options.skipMinified,
|
|
288
|
+
});
|
|
289
|
+
if (parsed?.kind === 'parsed') {
|
|
290
|
+
slot = { kind: 'parsed', file: applyContentMode(parsed.file, contentMode) };
|
|
291
|
+
}
|
|
292
|
+
else if (parsed?.kind === 'skipped') {
|
|
293
|
+
slot = {
|
|
294
|
+
kind: 'skipped',
|
|
295
|
+
skipped: {
|
|
296
|
+
path: filePath,
|
|
297
|
+
relativePath: normalizePath(path.relative(repoRoot, filePath)),
|
|
298
|
+
reason: parsed.reason,
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
slot = { kind: 'none' };
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
// A file deleted (or made unreadable) between listing and parse must
|
|
308
|
+
// not reject the batch: drop its slot — the file simply vanishes from
|
|
309
|
+
// the inputs and the next manifest diff reconciles it.
|
|
310
|
+
if (!isRecoverableParseFsError(error))
|
|
311
|
+
throw error;
|
|
312
|
+
slot = { kind: 'none' };
|
|
313
|
+
}
|
|
314
|
+
done += 1;
|
|
315
|
+
onProgress?.({ phase: 'parse', total: files.length, completed: done, detail: filePath });
|
|
316
|
+
return slot;
|
|
317
|
+
}, signal);
|
|
318
|
+
const parsedFiles = [];
|
|
319
|
+
const skippedFiles = [];
|
|
320
|
+
for (const slot of slots) {
|
|
321
|
+
if (slot.kind === 'parsed')
|
|
322
|
+
parsedFiles.push(slot.file);
|
|
323
|
+
else if (slot.kind === 'skipped')
|
|
324
|
+
skippedFiles.push(slot.skipped);
|
|
325
|
+
}
|
|
326
|
+
return { parsedFiles, skippedFiles };
|
|
327
|
+
}
|
|
235
328
|
export async function buildCodebaseIndex(options, onProgress, signal) {
|
|
236
329
|
const repoRoot = path.resolve(options.repoRoot);
|
|
237
330
|
const contentMode = options.contentMode ?? 'excerpt';
|
|
@@ -247,29 +340,30 @@ export async function buildCodebaseIndex(options, onProgress, signal) {
|
|
|
247
340
|
const discoveredWithSizes = await withFileSizes(discovered, signal);
|
|
248
341
|
const budgeted = enforceBuildBudget(discoveredWithSizes, options);
|
|
249
342
|
onProgress?.({ phase: 'discover', total: discovered.length, completed: discovered.length, detail: 'File discovery complete' });
|
|
250
|
-
const parsedFiles =
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
skipMinified: options.skipMinified,
|
|
259
|
-
});
|
|
260
|
-
if (parsed?.kind === 'parsed') {
|
|
261
|
-
parsedFiles.push(applyContentMode(parsed.file, contentMode));
|
|
262
|
-
}
|
|
263
|
-
else if (parsed?.kind === 'skipped') {
|
|
264
|
-
skippedFiles.push({
|
|
265
|
-
path: filePath,
|
|
266
|
-
relativePath: normalizePath(path.relative(repoRoot, filePath)),
|
|
267
|
-
reason: parsed.reason,
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
onProgress?.({ phase: 'parse', total: budgeted.files.length, completed: i + 1, detail: filePath });
|
|
271
|
-
}
|
|
343
|
+
const { parsedFiles, skippedFiles } = await parseCodeFiles(budgeted.files, {
|
|
344
|
+
repoRoot,
|
|
345
|
+
contentMode,
|
|
346
|
+
maxFileSizeBytes: options.maxFileSizeBytes,
|
|
347
|
+
maxLines: options.maxLines,
|
|
348
|
+
skipMinified: options.skipMinified,
|
|
349
|
+
concurrency: options.parseConcurrency,
|
|
350
|
+
}, onProgress, signal);
|
|
272
351
|
abortIfNeeded(signal);
|
|
352
|
+
return assembleCodebaseIndex({
|
|
353
|
+
repoRoot,
|
|
354
|
+
contentMode,
|
|
355
|
+
parsedFiles,
|
|
356
|
+
skippedFiles,
|
|
357
|
+
truncated: budgeted.truncated,
|
|
358
|
+
}, onProgress, signal);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Assemble the node/edge graph from already-parsed files. Synchronous —
|
|
362
|
+
* assembly has no awaits — so it can be reused verbatim by incremental
|
|
363
|
+
* updates that splice fresh parses into a cached file set.
|
|
364
|
+
*/
|
|
365
|
+
export function assembleCodebaseIndex(input, onProgress, signal) {
|
|
366
|
+
const { repoRoot, contentMode, parsedFiles, skippedFiles } = input;
|
|
273
367
|
const nodes = [];
|
|
274
368
|
const nodeById = new Map();
|
|
275
369
|
const edges = [];
|
|
@@ -616,7 +710,7 @@ export async function buildCodebaseIndex(options, onProgress, signal) {
|
|
|
616
710
|
{ ...capabilities, content: contentMode === 'full' },
|
|
617
711
|
])),
|
|
618
712
|
skippedFiles,
|
|
619
|
-
truncated:
|
|
713
|
+
truncated: input.truncated,
|
|
620
714
|
};
|
|
621
715
|
}
|
|
622
716
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/code/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/code/build.ts"],"names":[],"mappings":"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"}
|
package/dist/src/code/chunk.d.ts
CHANGED
|
@@ -20,6 +20,16 @@ export interface CodeChunkOptions {
|
|
|
20
20
|
maxTokens?: number;
|
|
21
21
|
overlapTokens?: number;
|
|
22
22
|
countTokens?: (text: string) => number;
|
|
23
|
+
/**
|
|
24
|
+
* Restrict chunking to these files. Entries may be repo-relative or absolute
|
|
25
|
+
* paths; each is normalized to `ParsedFile.relativePath` form (forward
|
|
26
|
+
* slashes, no leading `./`). Unknown or missing paths are silently ignored
|
|
27
|
+
* (e.g. files deleted since the index was built). Chunk indexes are per-file,
|
|
28
|
+
* so chunk IDs for retained files are identical to an unscoped run —
|
|
29
|
+
* consumers can dedupe by `(relativePath, chunkIndex)`. `[]` chunks nothing;
|
|
30
|
+
* `undefined` chunks every file (unchanged behavior).
|
|
31
|
+
*/
|
|
32
|
+
files?: string[];
|
|
23
33
|
}
|
|
24
34
|
/** Chunk files from an already-built CodebaseIndex (avoids double-parsing) */
|
|
25
35
|
export declare function chunkFromIndex(index: CodebaseIndex, options?: CodeChunkOptions): CodeChunk[];
|
package/dist/src/code/chunk.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
1
2
|
import { buildCodebaseIndex } from './build.js';
|
|
2
3
|
import { countWords } from '../utils.js';
|
|
3
4
|
const DEFAULT_MAX_CHUNK_WORDS = 500;
|
|
@@ -123,6 +124,18 @@ function emitChunk(chunks, file, lines, startLine, endLine, symbols) {
|
|
|
123
124
|
hasExports: symbols.some(s => s.exported),
|
|
124
125
|
});
|
|
125
126
|
}
|
|
127
|
+
/** Normalize a caller-supplied path to `ParsedFile.relativePath` form. */
|
|
128
|
+
function normalizeScopedPath(repoRoot, entry) {
|
|
129
|
+
const relative = path.isAbsolute(entry) ? path.relative(repoRoot, entry) : entry;
|
|
130
|
+
return relative.replace(/\\/g, '/').replace(/^(\.\/)+/, '');
|
|
131
|
+
}
|
|
132
|
+
/** Resolve the `files` scope to the matching index files (undefined → all). */
|
|
133
|
+
function scopeFiles(index, files) {
|
|
134
|
+
if (files === undefined)
|
|
135
|
+
return index.files;
|
|
136
|
+
const wanted = new Set(files.map((entry) => normalizeScopedPath(index.repoRoot, entry)));
|
|
137
|
+
return index.files.filter((file) => wanted.has(file.relativePath));
|
|
138
|
+
}
|
|
126
139
|
/** Chunk files from an already-built CodebaseIndex (avoids double-parsing) */
|
|
127
140
|
export function chunkFromIndex(index, options) {
|
|
128
141
|
if (index.contentMode !== 'full') {
|
|
@@ -130,7 +143,7 @@ export function chunkFromIndex(index, options) {
|
|
|
130
143
|
}
|
|
131
144
|
const sizer = resolveSizer(options);
|
|
132
145
|
const chunks = [];
|
|
133
|
-
for (const file of index
|
|
146
|
+
for (const file of scopeFiles(index, options?.files)) {
|
|
134
147
|
chunks.push(...chunkFile(file, sizer));
|
|
135
148
|
}
|
|
136
149
|
return chunks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../src/code/chunk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../src/code/chunk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export declare const DEFAULT_EXCLUDE_DIRS: string[];
|
|
2
3
|
export declare const DiscoverCodeOptionsSchema: z.ZodObject<{
|
|
3
4
|
excludeDir: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
4
5
|
noGitignore: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -10,3 +11,15 @@ export interface DiscoverCodeRuntimeOptions extends DiscoverCodeOptions {
|
|
|
10
11
|
signal?: AbortSignal;
|
|
11
12
|
}
|
|
12
13
|
export declare function discoverCodeFiles(repoRoot: string, options?: DiscoverCodeRuntimeOptions): Promise<string[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Single-path equivalent of the fast-glob options discoverCodeFiles relies
|
|
16
|
+
* on: `dot: false` (fast-glob rejects a dot-segment anywhere in the path),
|
|
17
|
+
* `ignore: buildExcludeDirGlobs(excludeDir)` (`**\/<entry>` + `**\/<entry>/**`,
|
|
18
|
+
* i.e. the entry's segments appearing as a contiguous run anywhere), and
|
|
19
|
+
* `followSymbolicLinks: false` (neither the file nor any ancestor directory
|
|
20
|
+
* below `repoRoot` may be a symlink). Kept next to discoverCodeFiles so the
|
|
21
|
+
* watcher fast path (classifyChangedFiles) cannot drift from discovery.
|
|
22
|
+
* Existence is deliberately not checked — absent path components cannot veto,
|
|
23
|
+
* so deletions of previously indexed files still pass through.
|
|
24
|
+
*/
|
|
25
|
+
export declare function wouldDiscoverPath(repoRoot: string, absolutePath: string, excludeDir?: string[]): Promise<boolean>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import fg from 'fast-glob';
|
|
2
|
-
import { stat } from 'node:fs/promises';
|
|
2
|
+
import { lstat, stat } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { CODE_EXTENSIONS, normalizePath } from './languages.js';
|
|
6
6
|
import { abortIfNeeded, buildExcludeDirGlobs, createIgnoreMatcher } from '../utils.js';
|
|
7
|
+
export const DEFAULT_EXCLUDE_DIRS = ['node_modules', '.git', 'dist', 'vendor', 'build', 'coverage', 'target'];
|
|
7
8
|
export const DiscoverCodeOptionsSchema = z.object({
|
|
8
9
|
excludeDir: z.array(z.string()).optional(),
|
|
9
10
|
noGitignore: z.boolean().optional(),
|
|
@@ -12,7 +13,7 @@ export const DiscoverCodeOptionsSchema = z.object({
|
|
|
12
13
|
});
|
|
13
14
|
export async function discoverCodeFiles(repoRoot, options = {}) {
|
|
14
15
|
const resolvedRoot = path.resolve(repoRoot);
|
|
15
|
-
const excludeDir = options.excludeDir ??
|
|
16
|
+
const excludeDir = options.excludeDir ?? DEFAULT_EXCLUDE_DIRS;
|
|
16
17
|
abortIfNeeded(options.signal);
|
|
17
18
|
const ignoreMatcher = await createIgnoreMatcher(resolvedRoot, {
|
|
18
19
|
excludeDir,
|
|
@@ -47,4 +48,50 @@ export async function discoverCodeFiles(repoRoot, options = {}) {
|
|
|
47
48
|
}
|
|
48
49
|
return existing;
|
|
49
50
|
}
|
|
51
|
+
function hasContiguousSegments(haystack, needle) {
|
|
52
|
+
for (let start = 0; start + needle.length <= haystack.length; start++) {
|
|
53
|
+
if (needle.every((segment, offset) => haystack[start + offset] === segment))
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Single-path equivalent of the fast-glob options discoverCodeFiles relies
|
|
60
|
+
* on: `dot: false` (fast-glob rejects a dot-segment anywhere in the path),
|
|
61
|
+
* `ignore: buildExcludeDirGlobs(excludeDir)` (`**\/<entry>` + `**\/<entry>/**`,
|
|
62
|
+
* i.e. the entry's segments appearing as a contiguous run anywhere), and
|
|
63
|
+
* `followSymbolicLinks: false` (neither the file nor any ancestor directory
|
|
64
|
+
* below `repoRoot` may be a symlink). Kept next to discoverCodeFiles so the
|
|
65
|
+
* watcher fast path (classifyChangedFiles) cannot drift from discovery.
|
|
66
|
+
* Existence is deliberately not checked — absent path components cannot veto,
|
|
67
|
+
* so deletions of previously indexed files still pass through.
|
|
68
|
+
*/
|
|
69
|
+
export async function wouldDiscoverPath(repoRoot, absolutePath, excludeDir = DEFAULT_EXCLUDE_DIRS) {
|
|
70
|
+
const resolvedRoot = path.resolve(repoRoot);
|
|
71
|
+
const relativePath = normalizePath(path.relative(resolvedRoot, absolutePath));
|
|
72
|
+
if (!relativePath || relativePath.startsWith('..') || path.isAbsolute(relativePath))
|
|
73
|
+
return false;
|
|
74
|
+
const segments = relativePath.split('/');
|
|
75
|
+
if (segments.some((segment) => segment.startsWith('.')))
|
|
76
|
+
return false;
|
|
77
|
+
for (const dir of excludeDir) {
|
|
78
|
+
const entrySegments = normalizePath(dir).split('/').filter((segment) => segment.length > 0);
|
|
79
|
+
if (entrySegments.length === 0)
|
|
80
|
+
continue;
|
|
81
|
+
if (hasContiguousSegments(segments, entrySegments))
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
let current = resolvedRoot;
|
|
85
|
+
for (const segment of segments) {
|
|
86
|
+
current = path.join(current, segment);
|
|
87
|
+
try {
|
|
88
|
+
if ((await lstat(current)).isSymbolicLink())
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Absent components cannot be symlinks; existence is the caller's concern.
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
50
97
|
//# sourceMappingURL=discover.js.map
|