@cesarandreslopez/occ 0.8.9 → 0.8.11

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 (79) hide show
  1. package/README.md +9 -4
  2. package/dist/src/code/build.d.ts +49 -1
  3. package/dist/src/code/build.js +127 -33
  4. package/dist/src/code/build.js.map +1 -1
  5. package/dist/src/code/chunk.d.ts +10 -0
  6. package/dist/src/code/chunk.js +14 -1
  7. package/dist/src/code/chunk.js.map +1 -1
  8. package/dist/src/code/command.js +16 -0
  9. package/dist/src/code/command.js.map +1 -1
  10. package/dist/src/code/discover.d.ts +13 -0
  11. package/dist/src/code/discover.js +49 -2
  12. package/dist/src/code/discover.js.map +1 -1
  13. package/dist/src/code/focus.d.ts +31 -0
  14. package/dist/src/code/focus.js +192 -0
  15. package/dist/src/code/focus.js.map +1 -0
  16. package/dist/src/code/incremental.d.ts +75 -0
  17. package/dist/src/code/incremental.js +257 -0
  18. package/dist/src/code/incremental.js.map +1 -0
  19. package/dist/src/code/map.d.ts +36 -1
  20. package/dist/src/code/map.js +83 -4
  21. package/dist/src/code/map.js.map +1 -1
  22. package/dist/src/code/output.js +28 -4
  23. package/dist/src/code/output.js.map +1 -1
  24. package/dist/src/code/parsers.d.ts +1 -0
  25. package/dist/src/code/parsers.js +1 -1
  26. package/dist/src/code/parsers.js.map +1 -1
  27. package/dist/src/code/rank.d.ts +14 -0
  28. package/dist/src/code/rank.js +58 -0
  29. package/dist/src/code/rank.js.map +1 -1
  30. package/dist/src/code/store.d.ts +20 -0
  31. package/dist/src/code/store.js +262 -109
  32. package/dist/src/code/store.js.map +1 -1
  33. package/dist/src/doc/chunk.d.ts +17 -0
  34. package/dist/src/doc/chunk.js +47 -18
  35. package/dist/src/doc/chunk.js.map +1 -1
  36. package/dist/src/doc/inspect-docx.js +13 -3
  37. package/dist/src/doc/inspect-docx.js.map +1 -1
  38. package/dist/src/doc/inspect-pdf.js +12 -17
  39. package/dist/src/doc/inspect-pdf.js.map +1 -1
  40. package/dist/src/index.d.ts +13 -8
  41. package/dist/src/index.js +9 -5
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/inspect/xlsx-cells.d.ts +8 -0
  44. package/dist/src/inspect/xlsx-cells.js +17 -2
  45. package/dist/src/inspect/xlsx-cells.js.map +1 -1
  46. package/dist/src/markdown/convert.js +45 -27
  47. package/dist/src/markdown/convert.js.map +1 -1
  48. package/dist/src/parsers/docx.js +10 -2
  49. package/dist/src/parsers/docx.js.map +1 -1
  50. package/dist/src/parsers/index.js +5 -0
  51. package/dist/src/parsers/index.js.map +1 -1
  52. package/dist/src/parsers/pdf.js +12 -32
  53. package/dist/src/parsers/pdf.js.map +1 -1
  54. package/dist/src/parsers/xlsx.js +11 -1
  55. package/dist/src/parsers/xlsx.js.map +1 -1
  56. package/dist/src/progress-event.d.ts +3 -1
  57. package/dist/src/progress-event.js +31 -1
  58. package/dist/src/progress-event.js.map +1 -1
  59. package/dist/src/sheet/inspect.js +20 -10
  60. package/dist/src/sheet/inspect.js.map +1 -1
  61. package/dist/src/table/inspect-docx.js +10 -1
  62. package/dist/src/table/inspect-docx.js.map +1 -1
  63. package/dist/src/table/inspect-xlsx.js +15 -5
  64. package/dist/src/table/inspect-xlsx.js.map +1 -1
  65. package/dist/src/utils.d.ts +24 -0
  66. package/dist/src/utils.js +91 -2
  67. package/dist/src/utils.js.map +1 -1
  68. package/dist/src/workspace/bundle.d.ts +24 -0
  69. package/dist/src/workspace/bundle.js +303 -97
  70. package/dist/src/workspace/bundle.js.map +1 -1
  71. package/dist/src/workspace/documents.d.ts +4 -0
  72. package/dist/src/workspace/documents.js +15 -2
  73. package/dist/src/workspace/documents.js.map +1 -1
  74. package/dist/src/workspace/prepare-types.d.ts +15 -0
  75. package/dist/src/workspace/prepare-types.js +18 -1
  76. package/dist/src/workspace/prepare-types.js.map +1 -1
  77. package/dist/src/workspace/prepare.js +10 -2
  78. package/dist/src/workspace/prepare.js.map +1 -1
  79. package/package.json +9 -2
@@ -2,10 +2,11 @@ import { mkdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
2
2
  import { createHash } from 'node:crypto';
3
3
  import path from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
- import { buildCodebaseIndex } from './build.js';
5
+ import { assembleCodebaseIndex, buildCodebaseIndex, CodeIndexBudgetExceededError, parseCodeFiles, } from './build.js';
6
+ import { classifyChangedFiles, computeManifestDiff, findResolutionImpactedFiles, spliceIndexInputs, } from './incremental.js';
6
7
  import { readSectionedCodeIndex, writeSectionedCodeIndex, } from './index-io.js';
8
+ import { normalizePath } from './languages.js';
7
9
  import { createCodeQuerySessionFromIndex } from './session.js';
8
- import { discoverCodeFiles } from './discover.js';
9
10
  import { abortIfNeeded } from '../utils.js';
10
11
  // ---------------------------------------------------------------------------
11
12
  // Constants
@@ -109,25 +110,37 @@ async function loadManifest(cacheDir, signal) {
109
110
  return undefined;
110
111
  }
111
112
  }
112
- async function persistCache(cacheDir, index, buildOpts, signal, onProgress) {
113
+ async function persistCache(cacheDir, index, buildOpts, signal, onProgress, precomputedManifest) {
113
114
  const cacheRoot = path.dirname(path.dirname(cacheDir));
114
115
  const tempDir = path.join(cacheRoot, `.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`);
115
116
  await mkdir(path.dirname(cacheDir), { recursive: true });
116
117
  await mkdir(tempDir, { recursive: true });
117
118
  abortIfNeeded(signal);
118
119
  onProgress?.({ phase: 'serialize', total: 3, completed: 0, detail: 'writing cache' });
119
- // Build and write manifest (stat calls in parallel)
120
+ // Build and write manifest (stat calls in parallel). The manifest must
121
+ // cover guardrail-skipped files too, or freshness checks would treat them
122
+ // as perpetually new and rebuild forever.
120
123
  const repoRoot = path.resolve(buildOpts.repoRoot);
121
- const statResults = await Promise.all(index.files.map(async (file) => {
122
- try {
123
- const fileStat = await stat(path.join(repoRoot, file.relativePath));
124
- return { relativePath: file.relativePath, size: fileStat.size, mtimeMs: fileStat.mtimeMs };
125
- }
126
- catch {
127
- return null; // File may have been deleted between build and persist
128
- }
129
- }));
130
- const manifest = statResults.filter((e) => e !== null);
124
+ let manifest;
125
+ if (precomputedManifest) {
126
+ manifest = precomputedManifest;
127
+ }
128
+ else {
129
+ const manifestPaths = [
130
+ ...index.files.map((file) => file.relativePath),
131
+ ...index.skippedFiles.map((skipped) => skipped.relativePath),
132
+ ];
133
+ const statResults = await Promise.all(manifestPaths.map(async (relativePath) => {
134
+ try {
135
+ const fileStat = await stat(path.join(repoRoot, relativePath));
136
+ return { relativePath, size: fileStat.size, mtimeMs: fileStat.mtimeMs };
137
+ }
138
+ catch {
139
+ return null; // File may have been deleted between build and persist
140
+ }
141
+ }));
142
+ manifest = statResults.filter((e) => e !== null);
143
+ }
131
144
  // Write metadata
132
145
  const occVersion = await getOccVersion();
133
146
  const meta = {
@@ -159,43 +172,6 @@ async function persistCache(cacheDir, index, buildOpts, signal, onProgress) {
159
172
  return { meta, manifest };
160
173
  }
161
174
  // ---------------------------------------------------------------------------
162
- // Manifest freshness check
163
- // ---------------------------------------------------------------------------
164
- async function isManifestFresh(manifest, repoRoot, buildOpts, signal) {
165
- // Discover current files to detect additions/deletions
166
- abortIfNeeded(signal);
167
- const currentFiles = await discoverCodeFiles(repoRoot, {
168
- excludeDir: buildOpts.excludeDir,
169
- noGitignore: buildOpts.noGitignore,
170
- ignorePatterns: buildOpts.ignorePatterns,
171
- overlayIgnorePatterns: buildOpts.overlayIgnorePatterns,
172
- signal,
173
- });
174
- const currentRelPaths = new Set(currentFiles.map(f => path.relative(repoRoot, f)));
175
- const manifestRelPaths = new Set(manifest.map(e => e.relativePath));
176
- // Check for added or deleted files
177
- if (currentRelPaths.size !== manifestRelPaths.size)
178
- return false;
179
- for (const rel of currentRelPaths) {
180
- if (!manifestRelPaths.has(rel))
181
- return false;
182
- }
183
- // Check size and mtime for each file
184
- for (const entry of manifest) {
185
- abortIfNeeded(signal);
186
- try {
187
- const fileStat = await stat(path.join(repoRoot, entry.relativePath));
188
- if (fileStat.size !== entry.size || fileStat.mtimeMs !== entry.mtimeMs) {
189
- return false;
190
- }
191
- }
192
- catch {
193
- return false; // File disappeared
194
- }
195
- }
196
- return true;
197
- }
198
- // ---------------------------------------------------------------------------
199
175
  // Store implementation
200
176
  // ---------------------------------------------------------------------------
201
177
  export function openCodeIndexStore(options) {
@@ -217,10 +193,25 @@ export function openCodeIndexStore(options) {
217
193
  maxFiles: options.maxFiles,
218
194
  maxBytes: options.maxBytes,
219
195
  onBudgetExceeded: options.onBudgetExceeded,
196
+ parseConcurrency: options.parseConcurrency,
197
+ };
198
+ const discoverOpts = {
199
+ excludeDir: options.excludeDir,
200
+ noGitignore: options.noGitignore,
201
+ ignorePatterns: options.ignorePatterns,
202
+ overlayIgnorePatterns: options.overlayIgnorePatterns,
220
203
  };
221
204
  let currentSession = null;
222
205
  let currentMeta = null;
223
206
  let currentManifest = null;
207
+ // Operation mutex: rapid watcher-driven update() calls (and concurrent
208
+ // getSession/refresh) must not race the persistCache temp-dir rename.
209
+ let pending = Promise.resolve();
210
+ function serialized(fn) {
211
+ const run = pending.then(fn, fn);
212
+ pending = run.catch(() => undefined);
213
+ return run;
214
+ }
224
215
  async function buildAndPersist(signal, onProgress) {
225
216
  abortIfNeeded(signal);
226
217
  const index = await buildCodebaseIndex(buildOpts, onProgress, signal);
@@ -230,6 +221,93 @@ export function openCodeIndexStore(options) {
230
221
  const meta = {
231
222
  ...cacheMeta,
232
223
  loadSource: 'build',
224
+ updateKind: 'full',
225
+ };
226
+ return { session, meta, manifest };
227
+ }
228
+ /**
229
+ * Re-parse only the changed files and splice them into the cached parse
230
+ * set. Returns undefined when an incremental update cannot be applied
231
+ * safely — the caller falls back to a full buildAndPersist.
232
+ */
233
+ async function applyIncrementalUpdate(diff, base, signal, onProgress) {
234
+ // A truncated index dropped files non-deterministically relative to the
235
+ // diff; a contentMode mismatch means the cache cannot seed this store.
236
+ // Known limitation (intended, conservative v1): a truncated index
237
+ // therefore falls back to a full rebuild on every ensure-fresh/update,
238
+ // even when nothing changed — the manifest only covers retained files,
239
+ // so fixing this requires it to also cover the truncated-out ones.
240
+ if (base.index.truncated)
241
+ return undefined;
242
+ if (base.index.contentMode !== contentMode)
243
+ return undefined;
244
+ const deletedPaths = new Set(diff.deleted.map((entry) => entry.path));
245
+ const deletedRel = new Set(diff.deleted.map((entry) => entry.relativePath));
246
+ const survivors = base.index.files.filter((file) => !deletedPaths.has(file.path));
247
+ const impacted = findResolutionImpactedFiles(survivors, diff, repoRoot);
248
+ const reparseSet = new Set([
249
+ ...diff.added.map((entry) => entry.path),
250
+ ...diff.modified.map((entry) => entry.path),
251
+ ...impacted,
252
+ ]);
253
+ const reparseList = [...reparseSet].sort();
254
+ const freshStats = [...diff.added, ...diff.modified];
255
+ const freshRel = new Set(freshStats.map((entry) => entry.relativePath));
256
+ // Budget re-check using projected totals (manifest survivors + fresh stats).
257
+ if (options.maxFiles != null || options.maxBytes != null) {
258
+ const survivingEntries = base.manifest.filter((entry) => !deletedRel.has(entry.relativePath) && !freshRel.has(entry.relativePath));
259
+ const totalFiles = survivingEntries.length + freshStats.length;
260
+ const totalBytes = survivingEntries.reduce((sum, entry) => sum + entry.size, 0)
261
+ + freshStats.reduce((sum, entry) => sum + entry.size, 0);
262
+ const overFiles = options.maxFiles != null && totalFiles > options.maxFiles;
263
+ const overBytes = options.maxBytes != null && totalBytes > options.maxBytes;
264
+ if (overFiles || overBytes) {
265
+ if ((options.onBudgetExceeded ?? 'throw') === 'throw') {
266
+ throw new CodeIndexBudgetExceededError({
267
+ maxFiles: options.maxFiles,
268
+ maxBytes: options.maxBytes,
269
+ totalFiles,
270
+ totalBytes,
271
+ });
272
+ }
273
+ return undefined; // 'truncate' — let the full build apply truncation.
274
+ }
275
+ }
276
+ const fresh = await parseCodeFiles(reparseList, {
277
+ repoRoot,
278
+ contentMode,
279
+ maxFileSizeBytes: options.maxFileSizeBytes,
280
+ maxLines: options.maxLines,
281
+ skipMinified: options.skipMinified,
282
+ concurrency: options.parseConcurrency,
283
+ }, onProgress, signal);
284
+ abortIfNeeded(signal);
285
+ const removals = new Set([...deletedPaths, ...reparseList]);
286
+ const { parsedFiles, skippedFiles } = spliceIndexInputs(base.index.files, base.index.skippedFiles, removals, fresh);
287
+ const index = assembleCodebaseIndex({
288
+ repoRoot,
289
+ contentMode,
290
+ parsedFiles,
291
+ skippedFiles,
292
+ truncated: undefined,
293
+ }, onProgress, signal);
294
+ // New manifest: untouched survivors + fresh stats + the (on-disk
295
+ // unchanged) entries for resolution-impacted re-parses. Skipped and
296
+ // parsed files are both covered.
297
+ const reparseRel = new Set(reparseList.map((filePath) => normalizePath(path.relative(repoRoot, filePath))));
298
+ const untouched = base.manifest.filter((entry) => !deletedRel.has(entry.relativePath) && !reparseRel.has(entry.relativePath));
299
+ const impactedEntries = base.manifest.filter((entry) => reparseRel.has(entry.relativePath) && !freshRel.has(entry.relativePath) && !deletedRel.has(entry.relativePath));
300
+ const manifest = [
301
+ ...untouched,
302
+ ...freshStats.map((entry) => ({ relativePath: entry.relativePath, size: entry.size, mtimeMs: entry.mtimeMs })),
303
+ ...impactedEntries,
304
+ ];
305
+ const { meta: cacheMeta } = await persistCache(cacheDir, index, options, signal, onProgress, manifest);
306
+ const session = createCodeQuerySessionFromIndex(buildOpts, index);
307
+ const meta = {
308
+ ...cacheMeta,
309
+ loadSource: 'build',
310
+ updateKind: 'incremental',
233
311
  };
234
312
  return { session, meta, manifest };
235
313
  }
@@ -262,40 +340,19 @@ export function openCodeIndexStore(options) {
262
340
  }
263
341
  return {
264
342
  async getSession(opts) {
265
- const strategy = opts?.strategy ?? 'prefer-cache';
266
- const { signal, onProgress } = opts ?? {};
267
- abortIfNeeded(signal);
268
- if (strategy === 'rebuild') {
269
- const result = await buildAndPersist(signal, onProgress);
270
- currentSession = result.session;
271
- currentMeta = result.meta;
272
- currentManifest = result.manifest;
273
- return result.session;
274
- }
275
- if (strategy === 'prefer-cache') {
276
- if (currentSession) {
277
- return currentSession;
343
+ abortIfNeeded(opts?.signal);
344
+ return serialized(async () => {
345
+ const strategy = opts?.strategy ?? 'prefer-cache';
346
+ const { signal, onProgress } = opts ?? {};
347
+ abortIfNeeded(signal);
348
+ if (strategy === 'rebuild') {
349
+ const result = await buildAndPersist(signal, onProgress);
350
+ currentSession = result.session;
351
+ currentMeta = result.meta;
352
+ currentManifest = result.manifest;
353
+ return result.session;
278
354
  }
279
- const cached = await loadFromCache(signal, onProgress);
280
- if (cached) {
281
- currentSession = cached.session;
282
- currentMeta = cached.meta;
283
- currentManifest = cached.manifest;
284
- return cached.session;
285
- }
286
- // Cache miss — build
287
- const result = await buildAndPersist(signal, onProgress);
288
- currentSession = result.session;
289
- currentMeta = result.meta;
290
- currentManifest = result.manifest;
291
- return result.session;
292
- }
293
- // ensure-fresh
294
- const manifest = currentManifest ?? await loadManifest(cacheDir, signal);
295
- if (manifest) {
296
- onProgress?.({ phase: 'cache-check', total: 1, completed: 0, detail: 'checking freshness' });
297
- const fresh = await isManifestFresh(manifest, repoRoot, options, signal);
298
- if (fresh) {
355
+ if (strategy === 'prefer-cache') {
299
356
  if (currentSession) {
300
357
  return currentSession;
301
358
  }
@@ -306,28 +363,118 @@ export function openCodeIndexStore(options) {
306
363
  currentManifest = cached.manifest;
307
364
  return cached.session;
308
365
  }
366
+ // Cache miss — build
367
+ const result = await buildAndPersist(signal, onProgress);
368
+ currentSession = result.session;
369
+ currentMeta = result.meta;
370
+ currentManifest = result.manifest;
371
+ return result.session;
309
372
  }
310
- }
311
- // Stale or no cache rebuild
312
- const result = await buildAndPersist(signal, onProgress);
313
- currentSession = result.session;
314
- currentMeta = result.meta;
315
- currentManifest = result.manifest;
316
- return result.session;
373
+ // ensure-fresh
374
+ const manifest = currentManifest ?? await loadManifest(cacheDir, signal);
375
+ if (manifest) {
376
+ onProgress?.({ phase: 'cache-check', total: 1, completed: 0, detail: 'checking freshness' });
377
+ const diff = await computeManifestDiff(manifest, repoRoot, discoverOpts, signal);
378
+ onProgress?.({ phase: 'cache-check', total: 1, completed: 1, detail: diff.hasChanges ? 'changes detected' : 'cache fresh' });
379
+ if (!diff.hasChanges) {
380
+ if (currentSession) {
381
+ return currentSession;
382
+ }
383
+ const cached = await loadFromCache(signal, onProgress);
384
+ if (cached) {
385
+ currentSession = cached.session;
386
+ currentMeta = cached.meta;
387
+ currentManifest = cached.manifest;
388
+ return cached.session;
389
+ }
390
+ }
391
+ else {
392
+ const baseIndex = currentSession?.getIndex() ?? (await loadFromCache(signal, onProgress))?.session.getIndex();
393
+ if (baseIndex) {
394
+ const incremental = await applyIncrementalUpdate(diff, { index: baseIndex, manifest }, signal, onProgress);
395
+ if (incremental) {
396
+ currentSession = incremental.session;
397
+ currentMeta = incremental.meta;
398
+ currentManifest = incremental.manifest;
399
+ return incremental.session;
400
+ }
401
+ }
402
+ }
403
+ }
404
+ // Stale or no cache — rebuild
405
+ const result = await buildAndPersist(signal, onProgress);
406
+ currentSession = result.session;
407
+ currentMeta = result.meta;
408
+ currentManifest = result.manifest;
409
+ return result.session;
410
+ });
317
411
  },
318
412
  async refresh(opts) {
319
- const result = await buildAndPersist(opts?.signal, opts?.onProgress);
320
- currentSession = result.session;
321
- currentMeta = result.meta;
322
- currentManifest = result.manifest;
323
- return result.session;
413
+ return serialized(async () => {
414
+ const result = await buildAndPersist(opts?.signal, opts?.onProgress);
415
+ currentSession = result.session;
416
+ currentMeta = result.meta;
417
+ currentManifest = result.manifest;
418
+ return result.session;
419
+ });
324
420
  },
325
- async update(_changedFiles, opts) {
326
- const result = await buildAndPersist(opts?.signal, opts?.onProgress);
327
- currentSession = result.session;
328
- currentMeta = result.meta;
329
- currentManifest = result.manifest;
330
- return result.session;
421
+ async update(changedFiles, opts) {
422
+ abortIfNeeded(opts?.signal);
423
+ return serialized(async () => {
424
+ const { signal, onProgress } = opts ?? {};
425
+ abortIfNeeded(signal);
426
+ // Acquire a base index + manifest; missing either forces a full build.
427
+ let baseIndex;
428
+ let baseManifest = currentManifest;
429
+ let cachedLoad = undefined;
430
+ if (currentSession) {
431
+ baseIndex = currentSession.getIndex();
432
+ }
433
+ else {
434
+ cachedLoad = await loadFromCache(signal, onProgress);
435
+ if (cachedLoad) {
436
+ baseIndex = cachedLoad.session.getIndex();
437
+ baseManifest = cachedLoad.manifest;
438
+ }
439
+ }
440
+ if (!baseManifest)
441
+ baseManifest = await loadManifest(cacheDir, signal) ?? null;
442
+ if (!baseIndex || !baseManifest) {
443
+ const result = await buildAndPersist(signal, onProgress);
444
+ currentSession = result.session;
445
+ currentMeta = result.meta;
446
+ currentManifest = result.manifest;
447
+ return result.session;
448
+ }
449
+ onProgress?.({ phase: 'cache-check', total: 1, completed: 0, detail: 'diffing changed files' });
450
+ const diff = changedFiles && changedFiles.length > 0
451
+ ? await classifyChangedFiles(changedFiles, baseManifest, repoRoot, discoverOpts, signal)
452
+ : await computeManifestDiff(baseManifest, repoRoot, discoverOpts, signal);
453
+ onProgress?.({ phase: 'cache-check', total: 1, completed: 1, detail: diff.hasChanges ? 'changes detected' : 'no changes' });
454
+ if (!diff.hasChanges) {
455
+ if (currentSession)
456
+ return currentSession;
457
+ if (cachedLoad) {
458
+ currentSession = cachedLoad.session;
459
+ currentMeta = cachedLoad.meta;
460
+ currentManifest = cachedLoad.manifest;
461
+ return cachedLoad.session;
462
+ }
463
+ // baseIndex always comes from one of the two branches above.
464
+ }
465
+ const incremental = await applyIncrementalUpdate(diff, { index: baseIndex, manifest: baseManifest }, signal, onProgress);
466
+ if (incremental) {
467
+ currentSession = incremental.session;
468
+ currentMeta = incremental.meta;
469
+ currentManifest = incremental.manifest;
470
+ return incremental.session;
471
+ }
472
+ const result = await buildAndPersist(signal, onProgress);
473
+ currentSession = result.session;
474
+ currentMeta = result.meta;
475
+ currentManifest = result.manifest;
476
+ return result.session;
477
+ });
331
478
  },
332
479
  async exportIndex(opts) {
333
480
  if (currentSession)
@@ -341,13 +488,19 @@ export function openCodeIndexStore(options) {
341
488
  currentManifest = null;
342
489
  },
343
490
  async clearCache() {
344
- this.dispose();
345
- try {
346
- await rm(cacheRoot, { recursive: true, force: true });
347
- }
348
- catch {
349
- // Ignore if already missing
350
- }
491
+ // Serialized so an in-flight update's persistCache cannot recreate the
492
+ // cache directory right after the rm, or race the temp-dir rename.
493
+ await serialized(async () => {
494
+ currentSession = null;
495
+ currentMeta = null;
496
+ currentManifest = null;
497
+ try {
498
+ await rm(cacheRoot, { recursive: true, force: true });
499
+ }
500
+ catch {
501
+ // Ignore if already missing
502
+ }
503
+ });
351
504
  },
352
505
  async clear() {
353
506
  await this.clearCache();
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/code/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/code/store.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,21 @@ export interface DocumentChunk {
19
19
  tokenEstimate: number;
20
20
  wordCount: number;
21
21
  }
22
+ export interface ChunkDocumentFromMarkdownOptions {
23
+ filePath: string;
24
+ relativePath?: string;
25
+ format?: string;
26
+ maxTokens?: number;
27
+ overlapTokens?: number;
28
+ countTokens?: (content: string) => number;
29
+ }
30
+ /**
31
+ * Chunk already-converted markdown without touching disk.
32
+ *
33
+ * Useful when the markdown was just produced elsewhere (for example
34
+ * `inspectWorkspaceDocumentSet` with `includeMarkdown`) — it skips the
35
+ * re-read + re-convert that `chunkDocument` performs. For the same markdown
36
+ * and options the output is identical to `chunkDocument`.
37
+ */
38
+ export declare function chunkDocumentFromMarkdown(markdown: string, options: ChunkDocumentFromMarkdownOptions): DocumentChunk[];
22
39
  export declare function chunkDocument(filePath: string, options?: DocumentChunkOptions): Promise<DocumentChunk[]>;