@zvec/zvec-grep 0.1.1 → 0.1.3

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 (132) hide show
  1. package/README.md +12 -12
  2. package/README_CN.md +13 -13
  3. package/dist/cli/args.js +35 -20
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/commands.js +34 -16
  6. package/dist/cli/commands.js.map +1 -1
  7. package/dist/cli/format/context.js +34 -9
  8. package/dist/cli/format/context.js.map +1 -1
  9. package/dist/cli/format/debug.js +14 -0
  10. package/dist/cli/format/debug.js.map +1 -1
  11. package/dist/cli/format/status.d.ts +1 -1
  12. package/dist/cli/format/status.js +18 -6
  13. package/dist/cli/format/status.js.map +1 -1
  14. package/dist/cli/help.js +12 -9
  15. package/dist/cli/help.js.map +1 -1
  16. package/dist/cli/index.js +0 -0
  17. package/dist/cli/types.d.ts +3 -2
  18. package/dist/cli/types.js.map +1 -1
  19. package/dist/engine/collection/index.d.ts +12 -7
  20. package/dist/engine/collection/index.js +374 -52
  21. package/dist/engine/collection/index.js.map +1 -1
  22. package/dist/engine/{pipeline/indexing/extractor → extraction}/code/adapter.d.ts +1 -1
  23. package/dist/engine/extraction/code/adapter.js.map +1 -0
  24. package/dist/engine/{pipeline/indexing/extractor → extraction}/code/extractor.d.ts +1 -1
  25. package/dist/engine/{pipeline/indexing/extractor → extraction}/code/extractor.js +2 -2
  26. package/dist/engine/extraction/code/extractor.js.map +1 -0
  27. package/dist/engine/extraction/code/families/c-family.js.map +1 -0
  28. package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/js-ts.d.ts +1 -1
  29. package/dist/engine/extraction/code/families/js-ts.js.map +1 -0
  30. package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/metadata.d.ts +1 -1
  31. package/dist/engine/extraction/code/families/metadata.js.map +1 -0
  32. package/dist/engine/extraction/code/families/name-field.js.map +1 -0
  33. package/dist/engine/extraction/code/languages/c.js.map +1 -0
  34. package/dist/engine/extraction/code/languages/cpp.js.map +1 -0
  35. package/dist/engine/extraction/code/languages/go.js.map +1 -0
  36. package/dist/engine/extraction/code/languages/java.js.map +1 -0
  37. package/dist/engine/extraction/code/languages/javascript.js.map +1 -0
  38. package/dist/engine/extraction/code/languages/python.js.map +1 -0
  39. package/dist/engine/extraction/code/languages/rust.js.map +1 -0
  40. package/dist/engine/extraction/code/languages/typescript.js.map +1 -0
  41. package/dist/engine/{pipeline/indexing → extraction}/ids.js +1 -1
  42. package/dist/engine/extraction/ids.js.map +1 -0
  43. package/dist/engine/{pipeline/indexing/extractor → extraction}/index.d.ts +1 -1
  44. package/dist/engine/{pipeline/indexing/extractor → extraction}/index.js +2 -2
  45. package/dist/engine/extraction/index.js.map +1 -0
  46. package/dist/engine/{pipeline/indexing/extractor → extraction}/markdown/extractor.d.ts +1 -1
  47. package/dist/engine/{pipeline/indexing/extractor → extraction}/markdown/extractor.js +1 -1
  48. package/dist/engine/extraction/markdown/extractor.js.map +1 -0
  49. package/dist/engine/extraction/tree-sitter/grammar.js.map +1 -0
  50. package/dist/engine/extraction/tree-sitter/nodes.js.map +1 -0
  51. package/dist/engine/extraction/tree-sitter/parser.js.map +1 -0
  52. package/dist/engine/files/file-type.d.ts +5 -0
  53. package/dist/engine/files/file-type.js +119 -0
  54. package/dist/engine/files/file-type.js.map +1 -0
  55. package/dist/engine/pipeline/indexing/index.js +37 -31
  56. package/dist/engine/pipeline/indexing/index.js.map +1 -1
  57. package/dist/engine/pipeline/indexing/scanner/index.js +2 -118
  58. package/dist/engine/pipeline/indexing/scanner/index.js.map +1 -1
  59. package/dist/engine/pipeline/search/index.js +57 -49
  60. package/dist/engine/pipeline/search/index.js.map +1 -1
  61. package/dist/engine/service/index.d.ts +1 -1
  62. package/dist/engine/service/root.d.ts +2 -0
  63. package/dist/engine/service/root.js +14 -5
  64. package/dist/engine/service/root.js.map +1 -1
  65. package/dist/engine/service/structure-enrichment.d.ts +8 -0
  66. package/dist/engine/service/structure-enrichment.js +174 -0
  67. package/dist/engine/service/structure-enrichment.js.map +1 -0
  68. package/dist/engine/service/types.d.ts +25 -5
  69. package/dist/engine/service/zvec-grep.js +168 -63
  70. package/dist/engine/service/zvec-grep.js.map +1 -1
  71. package/dist/engine/storage/zvec.d.ts +25 -9
  72. package/dist/engine/storage/zvec.js +231 -30
  73. package/dist/engine/storage/zvec.js.map +1 -1
  74. package/dist/engine/types.d.ts +11 -2
  75. package/dist/engine/utils/timing.d.ts +19 -0
  76. package/dist/engine/utils/timing.js +87 -0
  77. package/dist/engine/utils/timing.js.map +1 -0
  78. package/dist/index.d.ts +2 -2
  79. package/dist/index.js.map +1 -1
  80. package/package.json +1 -1
  81. package/skills/zvec-grep/SKILL.md +12 -12
  82. package/skills/zvec-grep/agents/openai.yaml +1 -1
  83. package/dist/engine/pipeline/indexing/extractor/code/adapter.js.map +0 -1
  84. package/dist/engine/pipeline/indexing/extractor/code/extractor.js.map +0 -1
  85. package/dist/engine/pipeline/indexing/extractor/code/families/c-family.js.map +0 -1
  86. package/dist/engine/pipeline/indexing/extractor/code/families/js-ts.js.map +0 -1
  87. package/dist/engine/pipeline/indexing/extractor/code/families/metadata.js.map +0 -1
  88. package/dist/engine/pipeline/indexing/extractor/code/families/name-field.js.map +0 -1
  89. package/dist/engine/pipeline/indexing/extractor/code/languages/c.js.map +0 -1
  90. package/dist/engine/pipeline/indexing/extractor/code/languages/cpp.js.map +0 -1
  91. package/dist/engine/pipeline/indexing/extractor/code/languages/go.js.map +0 -1
  92. package/dist/engine/pipeline/indexing/extractor/code/languages/java.js.map +0 -1
  93. package/dist/engine/pipeline/indexing/extractor/code/languages/javascript.js.map +0 -1
  94. package/dist/engine/pipeline/indexing/extractor/code/languages/python.js.map +0 -1
  95. package/dist/engine/pipeline/indexing/extractor/code/languages/rust.js.map +0 -1
  96. package/dist/engine/pipeline/indexing/extractor/code/languages/typescript.js.map +0 -1
  97. package/dist/engine/pipeline/indexing/extractor/index.js.map +0 -1
  98. package/dist/engine/pipeline/indexing/extractor/markdown/extractor.js.map +0 -1
  99. package/dist/engine/pipeline/indexing/extractor/tree-sitter/grammar.js.map +0 -1
  100. package/dist/engine/pipeline/indexing/extractor/tree-sitter/nodes.js.map +0 -1
  101. package/dist/engine/pipeline/indexing/extractor/tree-sitter/parser.js.map +0 -1
  102. package/dist/engine/pipeline/indexing/ids.js.map +0 -1
  103. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/adapter.js +0 -0
  104. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/c-family.d.ts +0 -0
  105. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/c-family.js +0 -0
  106. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/js-ts.js +0 -0
  107. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/metadata.js +0 -0
  108. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/name-field.d.ts +0 -0
  109. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/families/name-field.js +0 -0
  110. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/c.d.ts +0 -0
  111. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/c.js +0 -0
  112. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/cpp.d.ts +0 -0
  113. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/cpp.js +0 -0
  114. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/go.d.ts +0 -0
  115. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/go.js +0 -0
  116. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/java.d.ts +0 -0
  117. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/java.js +0 -0
  118. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/javascript.d.ts +0 -0
  119. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/javascript.js +0 -0
  120. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/python.d.ts +0 -0
  121. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/python.js +0 -0
  122. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/rust.d.ts +0 -0
  123. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/rust.js +0 -0
  124. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/typescript.d.ts +0 -0
  125. /package/dist/engine/{pipeline/indexing/extractor → extraction}/code/languages/typescript.js +0 -0
  126. /package/dist/engine/{pipeline/indexing → extraction}/ids.d.ts +0 -0
  127. /package/dist/engine/{pipeline/indexing/extractor → extraction}/tree-sitter/grammar.d.ts +0 -0
  128. /package/dist/engine/{pipeline/indexing/extractor → extraction}/tree-sitter/grammar.js +0 -0
  129. /package/dist/engine/{pipeline/indexing/extractor → extraction}/tree-sitter/nodes.d.ts +0 -0
  130. /package/dist/engine/{pipeline/indexing/extractor → extraction}/tree-sitter/nodes.js +0 -0
  131. /package/dist/engine/{pipeline/indexing/extractor → extraction}/tree-sitter/parser.d.ts +0 -0
  132. /package/dist/engine/{pipeline/indexing/extractor → extraction}/tree-sitter/parser.js +0 -0
@@ -1,31 +1,34 @@
1
+ import { ZVecCollectionSchema, ZVecCreateAndOpen, ZVecDataType, ZVecIndexType, ZVecOpen, } from "@zvec/zvec";
1
2
  import { randomUUID } from "node:crypto";
2
- import { mkdirSync, rmSync } from "node:fs";
3
- import { basename, join } from "node:path";
3
+ import { existsSync, mkdirSync, rmSync } from "node:fs";
4
+ import { basename, dirname, join } from "node:path";
4
5
  import { collectionDetail, detail, EngineError, errorDetails, } from "../errors/index.js";
5
6
  import { getCollectionIndexStatus, indexCollection, } from "../pipeline/indexing/index.js";
6
7
  import { fileBelongsToRootPath, validateRootPaths, } from "../pipeline/indexing/root-paths.js";
7
8
  import { diagnoseEntitySearch, diagnoseFileSearch, searchPlanCollection, } from "../pipeline/search/index.js";
8
- import { ZvecCollectionStorage, } from "../storage/index.js";
9
+ import { assertZvecStatus, initializeZvec, openZvecCollection, quoteFilterString, readNullableNumberFieldFromFields, readNullableStringFieldFromFields, readNumberFieldFromFields, readStringFieldFromFields, ZvecCollectionStorage, ZvecFileMetaStore, } from "../storage/zvec.js";
9
10
  import { CURRENT_INDEX_VERSION } from "../types.js";
10
- import { readJsonFileSync, writeJsonFileSync } from "../utils/json.js";
11
11
  import { defaultHome, normalizePath } from "../utils/path.js";
12
- const REGISTRY_FILE = "registry.json";
13
- const COLLECTION_FILE = "collection.json";
12
+ const COLLECTIONS_ZVEC = "collections.zvec";
13
+ const FILES_ZVEC = "files.zvec";
14
14
  export class Collection {
15
15
  info;
16
16
  embeddingModel;
17
17
  readOnly;
18
+ fileStorePath;
18
19
  storage;
19
- constructor(info, embeddingModel, readOnly = false) {
20
+ embedding;
21
+ constructor(info, embeddingModel, readOnly = false, fileStorePath = join(info.path, FILES_ZVEC)) {
20
22
  this.info = info;
21
23
  this.embeddingModel = embeddingModel;
22
24
  this.readOnly = readOnly;
25
+ this.fileStorePath = fileStorePath;
26
+ this.embedding = requireIndexedEmbedding(info, "open");
23
27
  this.validateIndexVersion();
24
28
  if (this.embeddingModel) {
25
29
  this.validateEmbeddingSchema(this.embeddingModel);
26
30
  }
27
- const filesManifest = readJsonFileSync(ZvecCollectionStorage.filesManifestPath(info.path), ZvecCollectionStorage.emptyManifest());
28
- this.storage = new ZvecCollectionStorage(info.path, info.embedding, filesManifest.files, readOnly);
31
+ this.storage = new ZvecCollectionStorage(info.path, this.embedding, this.fileStorePath, info.id, readOnly);
29
32
  }
30
33
  get id() {
31
34
  return this.info.id;
@@ -120,7 +123,7 @@ export class Collection {
120
123
  }
121
124
  validateEmbeddingSchema(current) {
122
125
  this.validateIndexVersion();
123
- const expected = this.info.embedding;
126
+ const expected = this.embedding;
124
127
  if (expected.provider !== current.ref.provider) {
125
128
  throw new EngineError("Collection embedding provider does not match current model", {
126
129
  code: "ZVEC_GREP.ENGINE.COLLECTION.EMBEDDING_PROVIDER_MISMATCH",
@@ -169,11 +172,30 @@ function collectionMismatchDetails(name, expected, actual) {
169
172
  detail("actual", actual),
170
173
  ]);
171
174
  }
175
+ export function isCollectionIndexed(info) {
176
+ return info?.embedding !== null
177
+ && info?.embedding !== undefined
178
+ && info.indexVersion !== null
179
+ && info.indexVersion !== undefined;
180
+ }
181
+ function requireIndexedEmbedding(info, operation) {
182
+ if (isCollectionIndexed(info)) {
183
+ return info.embedding;
184
+ }
185
+ throw new EngineError("Collection index has not been built", {
186
+ code: "ZVEC_GREP.ENGINE.COLLECTION.INDEX_MISSING",
187
+ context: errorDetails([
188
+ collectionDetail(info.name),
189
+ detail("operation", operation),
190
+ detail("hint", "Run zg --index to build this index."),
191
+ ]),
192
+ });
193
+ }
172
194
  export class CollectionRegistry {
173
195
  home;
174
196
  embeddingModel;
175
197
  readOnly;
176
- registryPath;
198
+ meta;
177
199
  collections = new Map();
178
200
  constructor(home = defaultHome(), embeddingModel, readOnly = false) {
179
201
  this.home = home;
@@ -182,14 +204,13 @@ export class CollectionRegistry {
182
204
  if (!readOnly) {
183
205
  mkdirSync(home, { recursive: true });
184
206
  }
185
- this.registryPath = join(home, REGISTRY_FILE);
207
+ this.meta = new ZvecCollectionsMetaStore(collectionsMetaPath(home), readOnly);
186
208
  }
187
209
  list() {
188
- return this.readRegistry().collections.map((entry) => this.readCollection(entry.path));
210
+ return this.meta.list();
189
211
  }
190
212
  get(name) {
191
- const entry = this.readRegistry().collections.find((collection) => collection.name === name);
192
- return entry ? this.readCollection(entry.path) : null;
213
+ return this.meta.getByName(name);
193
214
  }
194
215
  has(name) {
195
216
  return this.get(name) !== null;
@@ -201,9 +222,8 @@ export class CollectionRegistry {
201
222
  context: collectionOperationDetails(name, "remove"),
202
223
  });
203
224
  }
204
- const registry = this.readRegistry();
205
- const entry = registry.collections.find((collection) => collection.name === name);
206
- if (!entry) {
225
+ const info = this.get(name);
226
+ if (!info) {
207
227
  return false;
208
228
  }
209
229
  const cached = this.collections.get(name);
@@ -211,9 +231,15 @@ export class CollectionRegistry {
211
231
  cached.close();
212
232
  this.collections.delete(name);
213
233
  }
214
- registry.collections = registry.collections.filter((collection) => collection.name !== name);
215
- writeJsonFileSync(this.registryPath, registry);
216
- rmSync(entry.path, { recursive: true, force: true });
234
+ this.meta.remove(info.id);
235
+ const files = new ZvecFileMetaStore(filesMetaPath(this.home), false);
236
+ try {
237
+ files.deleteCollection(info.id);
238
+ }
239
+ finally {
240
+ files.close();
241
+ }
242
+ rmSync(info.path, { recursive: true, force: true });
217
243
  return true;
218
244
  }
219
245
  rename(name, nextName) {
@@ -230,12 +256,11 @@ export class CollectionRegistry {
230
256
  context: collectionOperationDetails(name, "rename"),
231
257
  });
232
258
  }
233
- const registry = this.readRegistry();
234
- const entry = registry.collections.find((collection) => collection.name === name);
235
- if (!entry) {
259
+ const info = this.get(name);
260
+ if (!info) {
236
261
  return null;
237
262
  }
238
- if (registry.collections.some((collection) => collection.name === normalizedNextName)) {
263
+ if (this.has(normalizedNextName)) {
239
264
  throw new EngineError("Collection already exists", {
240
265
  code: "ZVEC_GREP.ENGINE.COLLECTION.ALREADY_EXISTS",
241
266
  context: errorDetails([collectionDetail(normalizedNextName)]),
@@ -246,23 +271,20 @@ export class CollectionRegistry {
246
271
  cached.close();
247
272
  this.collections.delete(name);
248
273
  }
249
- const info = this.readCollection(entry.path);
250
274
  const updated = {
251
275
  ...info,
252
276
  name: normalizedNextName,
253
277
  updatedTime: Date.now(),
254
278
  };
255
- entry.name = normalizedNextName;
256
- writeJsonFileSync(join(entry.path, COLLECTION_FILE), updated);
257
- writeJsonFileSync(this.registryPath, registry);
279
+ this.meta.upsert(updated);
258
280
  return updated;
259
281
  }
260
282
  async status(name) {
261
283
  const info = this.get(name);
262
- if (!info) {
284
+ if (!info || !isCollectionIndexed(info) || info.indexPolicy === "disabled") {
263
285
  return null;
264
286
  }
265
- return getCollectionIndexStatus(info, this.readCollectionFiles(info.path));
287
+ return this.open(name).status();
266
288
  }
267
289
  create(name, rootPaths, path) {
268
290
  if (this.readOnly) {
@@ -292,16 +314,94 @@ export class CollectionRegistry {
292
314
  name,
293
315
  path: collectionPath,
294
316
  rootPaths: normalizedRootPaths,
317
+ indexPolicy: "enabled",
295
318
  embedding: currentEmbeddingSchema(this.embeddingModel),
296
319
  indexVersion: CURRENT_INDEX_VERSION,
297
320
  createdTime: now,
298
321
  updatedTime: now,
299
322
  };
300
323
  mkdirSync(collectionPath, { recursive: true });
301
- writeJsonFileSync(join(collectionPath, COLLECTION_FILE), info);
302
- const registry = this.readRegistry();
303
- registry.collections.push({ id, name, path: collectionPath });
304
- writeJsonFileSync(this.registryPath, registry);
324
+ this.meta.upsert(info);
325
+ return info;
326
+ }
327
+ prepareIndex(name, rootPaths, path) {
328
+ if (this.readOnly) {
329
+ throw new EngineError("Cannot prepare a collection in a read-only registry", {
330
+ code: "ZVEC_GREP.ENGINE.COLLECTION.READ_ONLY",
331
+ context: collectionOperationDetails(name, "prepareIndex"),
332
+ });
333
+ }
334
+ if (!this.embeddingModel) {
335
+ throw new EngineError("Preparing a collection requires an embedding model", {
336
+ code: "ZVEC_GREP.ENGINE.COLLECTION.EMBEDDING_MODEL_REQUIRED",
337
+ context: collectionOperationDetails(name, "prepareIndex"),
338
+ });
339
+ }
340
+ const existing = this.get(name);
341
+ if (!existing) {
342
+ return this.create(name, rootPaths, path);
343
+ }
344
+ const normalizedRootPaths = validateRootPaths(rootPaths);
345
+ const collectionPath = normalizePath(path ?? existing.path);
346
+ const cached = this.collections.get(name);
347
+ if (cached) {
348
+ cached.close();
349
+ this.collections.delete(name);
350
+ }
351
+ const updated = {
352
+ ...existing,
353
+ path: collectionPath,
354
+ rootPaths: normalizedRootPaths,
355
+ indexPolicy: "enabled",
356
+ embedding: currentEmbeddingSchema(this.embeddingModel),
357
+ indexVersion: CURRENT_INDEX_VERSION,
358
+ updatedTime: Date.now(),
359
+ };
360
+ mkdirSync(collectionPath, { recursive: true });
361
+ this.meta.upsert(updated);
362
+ return updated;
363
+ }
364
+ disableIndex(name, rootPaths, path) {
365
+ if (this.readOnly) {
366
+ throw new EngineError("Cannot disable a collection index in a read-only registry", {
367
+ code: "ZVEC_GREP.ENGINE.COLLECTION.READ_ONLY",
368
+ context: collectionOperationDetails(name, "disableIndex"),
369
+ });
370
+ }
371
+ const existing = this.get(name);
372
+ const normalizedRootPaths = validateRootPaths(rootPaths);
373
+ const now = Date.now();
374
+ if (existing) {
375
+ const cached = this.collections.get(name);
376
+ if (cached) {
377
+ cached.close();
378
+ this.collections.delete(name);
379
+ }
380
+ const updated = {
381
+ ...existing,
382
+ rootPaths: normalizedRootPaths,
383
+ path: normalizePath(path ?? existing.path),
384
+ indexPolicy: "disabled",
385
+ embedding: null,
386
+ indexVersion: null,
387
+ updatedTime: now,
388
+ };
389
+ this.meta.upsert(updated);
390
+ return updated;
391
+ }
392
+ const collectionPath = normalizePath(path ?? join(this.home, "collections", randomUUID()));
393
+ const info = {
394
+ id: randomUUID(),
395
+ name,
396
+ path: collectionPath,
397
+ rootPaths: normalizedRootPaths,
398
+ indexPolicy: "disabled",
399
+ embedding: null,
400
+ indexVersion: null,
401
+ createdTime: now,
402
+ updatedTime: now,
403
+ };
404
+ this.meta.upsert(info);
305
405
  return info;
306
406
  }
307
407
  updateRootPaths(name, rootPaths) {
@@ -311,12 +411,10 @@ export class CollectionRegistry {
311
411
  context: collectionOperationDetails(name, "updateRootPaths"),
312
412
  });
313
413
  }
314
- const registry = this.readRegistry();
315
- const entry = registry.collections.find((collection) => collection.name === name);
316
- if (!entry) {
414
+ const info = this.get(name);
415
+ if (!info) {
317
416
  return null;
318
417
  }
319
- const info = this.readCollection(entry.path);
320
418
  const normalizedRootPaths = validateRootPaths(rootPaths);
321
419
  if (rootPathsEqual(info.rootPaths, normalizedRootPaths)) {
322
420
  return info;
@@ -331,7 +429,7 @@ export class CollectionRegistry {
331
429
  rootPaths: normalizedRootPaths,
332
430
  updatedTime: Date.now(),
333
431
  };
334
- writeJsonFileSync(join(entry.path, COLLECTION_FILE), updated);
432
+ this.meta.upsert(updated);
335
433
  return updated;
336
434
  }
337
435
  open(name) {
@@ -346,7 +444,25 @@ export class CollectionRegistry {
346
444
  context: errorDetails([collectionDetail(name)]),
347
445
  });
348
446
  }
349
- const collection = new Collection(info, this.embeddingModel, this.readOnly);
447
+ if (info.indexPolicy === "disabled") {
448
+ throw new EngineError("Collection index is disabled", {
449
+ code: "ZVEC_GREP.ENGINE.COLLECTION.INDEX_DISABLED",
450
+ context: errorDetails([
451
+ collectionDetail(name),
452
+ detail("hint", "Run zg --index to enable and build this index, or use zg --rg for no-index search."),
453
+ ]),
454
+ });
455
+ }
456
+ if (!isCollectionIndexed(info)) {
457
+ throw new EngineError("Collection index has not been built", {
458
+ code: "ZVEC_GREP.ENGINE.COLLECTION.INDEX_MISSING",
459
+ context: errorDetails([
460
+ collectionDetail(name),
461
+ detail("hint", "Run zg --index to build this index."),
462
+ ]),
463
+ });
464
+ }
465
+ const collection = new Collection(info, this.embeddingModel, this.readOnly, filesMetaPath(this.home));
350
466
  this.collections.set(name, collection);
351
467
  return collection;
352
468
  }
@@ -355,17 +471,227 @@ export class CollectionRegistry {
355
471
  collection.close();
356
472
  }
357
473
  this.collections.clear();
474
+ this.meta.close();
475
+ }
476
+ }
477
+ class ZvecCollectionsMetaStore {
478
+ path;
479
+ readOnly;
480
+ collection;
481
+ needsOptimize = false;
482
+ constructor(path, readOnly = false) {
483
+ this.path = path;
484
+ this.readOnly = readOnly;
485
+ initializeZvec();
486
+ if (!readOnly) {
487
+ mkdirSync(homeDirectoryForMetaPath(path), { recursive: true });
488
+ }
489
+ if (existsSync(path)) {
490
+ this.collection = openZvecCollection(path, readOnly, "open", () => ZVecOpen(path, { readOnly }));
491
+ }
492
+ else if (readOnly) {
493
+ this.collection = null;
494
+ }
495
+ else {
496
+ this.collection = openZvecCollection(path, readOnly, "create", () => ZVecCreateAndOpen(path, createCollectionsSchema()));
497
+ }
498
+ }
499
+ list() {
500
+ if (!this.collection) {
501
+ return [];
502
+ }
503
+ const topk = Math.max(this.collection.stats.docCount, 1);
504
+ return this.collection.querySync({ topk, includeVector: false })
505
+ .map((doc) => docToCollectionInfo(doc))
506
+ .sort((left, right) => left.name.localeCompare(right.name));
507
+ }
508
+ getByName(name) {
509
+ if (!this.collection) {
510
+ return null;
511
+ }
512
+ const [doc] = this.collection.querySync({
513
+ filter: `name = ${quoteFilterString(name)}`,
514
+ topk: 1,
515
+ includeVector: false,
516
+ });
517
+ return doc ? docToCollectionInfo(doc) : null;
358
518
  }
359
- readRegistry() {
360
- return readJsonFileSync(this.registryPath, { collections: [] });
519
+ upsert(info) {
520
+ this.assertWritable("upsert");
521
+ const collection = this.requireCollection();
522
+ const deleteStatus = collection.deleteSync(info.id);
523
+ assertZvecStatusOrNotFound(deleteStatus, "collection metadata replace", info.name);
524
+ const status = collection.upsertSync(collectionInfoToDoc(info));
525
+ assertZvecStatus(status, "collection metadata upsert", info.name);
526
+ this.needsOptimize = true;
361
527
  }
362
- readCollection(path) {
363
- return readJsonFileSync(join(path, COLLECTION_FILE), null);
528
+ remove(collectionId) {
529
+ this.assertWritable("remove");
530
+ const status = this.requireCollection().deleteByFilterSync(`collection_id = ${quoteFilterString(collectionId)}`);
531
+ assertZvecStatus(status, "collection metadata delete", collectionId);
532
+ this.needsOptimize = true;
533
+ }
534
+ close() {
535
+ if (!this.collection) {
536
+ return;
537
+ }
538
+ if (this.needsOptimize) {
539
+ this.collection.optimizeSync();
540
+ this.needsOptimize = false;
541
+ }
542
+ this.collection.closeSync();
364
543
  }
365
- readCollectionFiles(path) {
366
- const manifest = readJsonFileSync(ZvecCollectionStorage.filesManifestPath(path), { files: [] });
367
- return manifest.files.map(fileRecordToInfo);
544
+ requireCollection() {
545
+ if (!this.collection) {
546
+ throw new EngineError("zvec collection metadata storage is unavailable", {
547
+ code: "ZVEC_GREP.ENGINE.COLLECTION.META_UNAVAILABLE",
548
+ context: `path=${this.path}`,
549
+ });
550
+ }
551
+ return this.collection;
552
+ }
553
+ assertWritable(operation) {
554
+ if (this.readOnly) {
555
+ throw new EngineError("Cannot update read-only collection metadata storage", {
556
+ code: "ZVEC_GREP.ENGINE.COLLECTION.READ_ONLY",
557
+ context: `path=${this.path} operation=${operation}`,
558
+ });
559
+ }
560
+ }
561
+ }
562
+ function assertZvecStatusOrNotFound(status, operation, context) {
563
+ if (status.ok || status.code === "ZVEC_NOT_FOUND") {
564
+ return;
368
565
  }
566
+ assertZvecStatus(status, operation, context);
567
+ }
568
+ function createCollectionsSchema() {
569
+ return new ZVecCollectionSchema({
570
+ name: "zvec_grep_collections",
571
+ fields: [
572
+ indexedStringField("collection_id"),
573
+ indexedStringField("name"),
574
+ indexedStringField("path"),
575
+ stringField("root_paths_json"),
576
+ indexedStringField("index_policy", true),
577
+ indexedStringField("embedding_provider", true),
578
+ indexedStringField("embedding_model", true),
579
+ {
580
+ name: "embedding_dimension",
581
+ dataType: ZVecDataType.INT32,
582
+ nullable: true,
583
+ },
584
+ indexedStringField("embedding_metric", true),
585
+ {
586
+ name: "index_version",
587
+ dataType: ZVecDataType.INT32,
588
+ nullable: true,
589
+ },
590
+ {
591
+ name: "created_time",
592
+ dataType: ZVecDataType.INT64,
593
+ nullable: false,
594
+ },
595
+ {
596
+ name: "updated_time",
597
+ dataType: ZVecDataType.INT64,
598
+ nullable: false,
599
+ },
600
+ ],
601
+ });
602
+ }
603
+ function collectionInfoToDoc(info) {
604
+ const fields = {
605
+ collection_id: info.id,
606
+ name: info.name,
607
+ path: info.path,
608
+ root_paths_json: JSON.stringify(info.rootPaths),
609
+ created_time: info.createdTime,
610
+ updated_time: info.updatedTime,
611
+ };
612
+ if (info.indexPolicy !== undefined) {
613
+ fields.index_policy = info.indexPolicy;
614
+ }
615
+ if (info.embedding) {
616
+ fields.embedding_provider = info.embedding.provider;
617
+ fields.embedding_model = info.embedding.model;
618
+ fields.embedding_dimension = info.embedding.dimension;
619
+ fields.embedding_metric = info.embedding.metric;
620
+ }
621
+ if (info.indexVersion !== null && info.indexVersion !== undefined) {
622
+ fields.index_version = info.indexVersion;
623
+ }
624
+ return {
625
+ id: info.id,
626
+ fields,
627
+ };
628
+ }
629
+ function docToCollectionInfo(doc) {
630
+ const fields = doc.fields;
631
+ const embedding = collectionEmbeddingFromFields(fields);
632
+ return {
633
+ id: readStringFieldFromFields(fields, "collection_id"),
634
+ name: readStringFieldFromFields(fields, "name"),
635
+ path: normalizePath(readStringFieldFromFields(fields, "path")),
636
+ rootPaths: parseRootPaths(readStringFieldFromFields(fields, "root_paths_json")),
637
+ indexPolicy: collectionIndexPolicyFromFields(fields),
638
+ embedding,
639
+ indexVersion: readNullableNumberFieldFromFields(fields, "index_version"),
640
+ createdTime: readNumberFieldFromFields(fields, "created_time"),
641
+ updatedTime: readNumberFieldFromFields(fields, "updated_time"),
642
+ };
643
+ }
644
+ function collectionEmbeddingFromFields(fields) {
645
+ const provider = readNullableStringFieldFromFields(fields, "embedding_provider");
646
+ const model = readNullableStringFieldFromFields(fields, "embedding_model");
647
+ const dimension = readNullableNumberFieldFromFields(fields, "embedding_dimension");
648
+ const metric = readNullableStringFieldFromFields(fields, "embedding_metric");
649
+ if (!provider || !model || !dimension || !metric) {
650
+ return null;
651
+ }
652
+ return {
653
+ provider,
654
+ model,
655
+ dimension,
656
+ metric,
657
+ };
658
+ }
659
+ function collectionIndexPolicyFromFields(fields) {
660
+ const policy = readNullableStringFieldFromFields(fields, "index_policy");
661
+ return policy === "enabled" || policy === "disabled" ? policy : undefined;
662
+ }
663
+ function parseRootPaths(value) {
664
+ try {
665
+ const parsed = JSON.parse(value);
666
+ return Array.isArray(parsed) ? validateRootPaths(parsed) : [];
667
+ }
668
+ catch {
669
+ return [];
670
+ }
671
+ }
672
+ function collectionsMetaPath(home) {
673
+ return join(home, COLLECTIONS_ZVEC);
674
+ }
675
+ function filesMetaPath(home) {
676
+ return join(home, FILES_ZVEC);
677
+ }
678
+ function homeDirectoryForMetaPath(path) {
679
+ return dirname(path);
680
+ }
681
+ function indexedStringField(name, nullable = false) {
682
+ return {
683
+ name,
684
+ dataType: ZVecDataType.STRING,
685
+ nullable,
686
+ indexParams: { indexType: ZVecIndexType.INVERT },
687
+ };
688
+ }
689
+ function stringField(name, nullable = false) {
690
+ return {
691
+ name,
692
+ dataType: ZVecDataType.STRING,
693
+ nullable,
694
+ };
369
695
  }
370
696
  export function defaultCollectionName(path) {
371
697
  return basename(normalizePath(path));
@@ -381,8 +707,4 @@ function currentEmbeddingSchema(model) {
381
707
  function rootPathsEqual(left, right) {
382
708
  return JSON.stringify(left) === JSON.stringify(right);
383
709
  }
384
- function fileRecordToInfo(file) {
385
- const { entityIds: _entityIds, ...info } = file;
386
- return info;
387
- }
388
710
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/collection/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/collection/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CodeEntityModifier, CodeSymbolType } from "../../../../types.js";
1
+ import type { CodeEntityModifier, CodeSymbolType } from "../../types.js";
2
2
  import type { TSNode } from "../tree-sitter/nodes.js";
3
3
  export type LanguageAdapter = {
4
4
  format: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/engine/extraction/code/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAqB/D,MAAM,QAAQ,GAAoC;IAChD,CAAC,EAAE,SAAS;IACZ,GAAG,EAAE,WAAW;IAChB,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,kBAAkB;IAC9B,GAAG,EAAE,kBAAkB;IACvB,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,kBAAkB;IACvB,UAAU,EAAE,kBAAkB;CAC/B,CAAC;AAGF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { EntityFragment } from "../../../../types.js";
1
+ import type { EntityFragment } from "../../types.js";
2
2
  import type { Extractor, Source } from "../index.js";
3
3
  export type CodeExtractorOptions = {
4
4
  maxChunkChars?: number;