@neuralis/brain-core 0.4.0 → 0.4.1

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 (127) hide show
  1. package/README.md +2 -2
  2. package/dist/app/host.js +52 -55
  3. package/dist/src/config/env.d.ts +8 -0
  4. package/dist/src/config/env.d.ts.map +1 -1
  5. package/dist/src/config/env.js +17 -6
  6. package/dist/src/config/env.js.map +1 -1
  7. package/dist/src/domain/BrainError.d.ts +14 -0
  8. package/dist/src/domain/BrainError.d.ts.map +1 -1
  9. package/dist/src/domain/BrainError.js +21 -0
  10. package/dist/src/domain/BrainError.js.map +1 -1
  11. package/dist/src/domain/types.d.ts +5 -0
  12. package/dist/src/domain/types.d.ts.map +1 -1
  13. package/dist/src/embeddings/models.d.ts +1 -2
  14. package/dist/src/embeddings/models.d.ts.map +1 -1
  15. package/dist/src/embeddings/models.js +1 -2
  16. package/dist/src/embeddings/models.js.map +1 -1
  17. package/dist/src/lifecycle.d.ts +4 -5
  18. package/dist/src/lifecycle.d.ts.map +1 -1
  19. package/dist/src/lifecycle.js.map +1 -1
  20. package/dist/src/routes/approve.d.ts.map +1 -1
  21. package/dist/src/routes/approve.js +3 -3
  22. package/dist/src/routes/approve.js.map +1 -1
  23. package/dist/src/routes/health.d.ts.map +1 -1
  24. package/dist/src/routes/health.js +8 -5
  25. package/dist/src/routes/health.js.map +1 -1
  26. package/dist/src/routes/helpers.d.ts +10 -1
  27. package/dist/src/routes/helpers.d.ts.map +1 -1
  28. package/dist/src/routes/helpers.js +26 -0
  29. package/dist/src/routes/helpers.js.map +1 -1
  30. package/dist/src/routes/list.d.ts.map +1 -1
  31. package/dist/src/routes/list.js +3 -3
  32. package/dist/src/routes/list.js.map +1 -1
  33. package/dist/src/routes/pending.d.ts.map +1 -1
  34. package/dist/src/routes/pending.js +5 -5
  35. package/dist/src/routes/pending.js.map +1 -1
  36. package/dist/src/routes/raw.d.ts.map +1 -1
  37. package/dist/src/routes/raw.js +3 -3
  38. package/dist/src/routes/raw.js.map +1 -1
  39. package/dist/src/routes/read.d.ts.map +1 -1
  40. package/dist/src/routes/read.js +3 -3
  41. package/dist/src/routes/read.js.map +1 -1
  42. package/dist/src/routes/search.d.ts.map +1 -1
  43. package/dist/src/routes/search.js +3 -3
  44. package/dist/src/routes/search.js.map +1 -1
  45. package/dist/src/routes/sources.d.ts.map +1 -1
  46. package/dist/src/routes/sources.js +9 -9
  47. package/dist/src/routes/sources.js.map +1 -1
  48. package/dist/src/routes/upload.d.ts.map +1 -1
  49. package/dist/src/routes/upload.js +3 -3
  50. package/dist/src/routes/upload.js.map +1 -1
  51. package/dist/src/services/FilesystemService.d.ts.map +1 -1
  52. package/dist/src/services/FilesystemService.js +6 -0
  53. package/dist/src/services/FilesystemService.js.map +1 -1
  54. package/dist/src/services/FilesystemUiService.d.ts.map +1 -1
  55. package/dist/src/services/FilesystemUiService.js +5 -2
  56. package/dist/src/services/FilesystemUiService.js.map +1 -1
  57. package/dist/src/services/SyncScheduler.d.ts.map +1 -1
  58. package/dist/src/services/SyncScheduler.js +8 -2
  59. package/dist/src/services/SyncScheduler.js.map +1 -1
  60. package/dist/src/sync/SyncJobQueue.d.ts +7 -0
  61. package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
  62. package/dist/src/sync/SyncJobQueue.js +40 -0
  63. package/dist/src/sync/SyncJobQueue.js.map +1 -1
  64. package/dist/src/tools/execCtx.d.ts +6 -0
  65. package/dist/src/tools/execCtx.d.ts.map +1 -1
  66. package/dist/src/tools/execCtx.js +11 -0
  67. package/dist/src/tools/execCtx.js.map +1 -1
  68. package/dist/src/tools/fs_list.js +2 -2
  69. package/dist/src/tools/fs_list.js.map +1 -1
  70. package/dist/src/tools/fs_read.js +2 -2
  71. package/dist/src/tools/fs_read.js.map +1 -1
  72. package/dist/src/tools/fs_search.js +2 -2
  73. package/dist/src/tools/fs_search.js.map +1 -1
  74. package/dist/src/tools/fs_write.js +2 -2
  75. package/dist/src/tools/fs_write.js.map +1 -1
  76. package/dist/src/usecases/deprovisionProject.d.ts +4 -5
  77. package/dist/src/usecases/deprovisionProject.d.ts.map +1 -1
  78. package/dist/src/usecases/deprovisionProject.js +3 -8
  79. package/dist/src/usecases/deprovisionProject.js.map +1 -1
  80. package/dist/src/usecases/listSourcePackages.d.ts.map +1 -1
  81. package/dist/src/usecases/listSourcePackages.js +93 -74
  82. package/dist/src/usecases/listSourcePackages.js.map +1 -1
  83. package/dist/src/usecases/readFiles.d.ts.map +1 -1
  84. package/dist/src/usecases/readFiles.js +2 -1
  85. package/dist/src/usecases/readFiles.js.map +1 -1
  86. package/dist/src/usecases/searchFiles.d.ts.map +1 -1
  87. package/dist/src/usecases/searchFiles.js +13 -3
  88. package/dist/src/usecases/searchFiles.js.map +1 -1
  89. package/dist/src/usecases/sourcePackageInventory.d.ts +10 -2
  90. package/dist/src/usecases/sourcePackageInventory.d.ts.map +1 -1
  91. package/dist/src/usecases/sourcePackageInventory.js +24 -7
  92. package/dist/src/usecases/sourcePackageInventory.js.map +1 -1
  93. package/dist/src/usecases/vectorActivityWatch.d.ts +20 -13
  94. package/dist/src/usecases/vectorActivityWatch.d.ts.map +1 -1
  95. package/dist/src/usecases/vectorActivityWatch.js +61 -36
  96. package/dist/src/usecases/vectorActivityWatch.js.map +1 -1
  97. package/dist/src/usecases/vectorMaintenance.d.ts.map +1 -1
  98. package/dist/src/usecases/vectorMaintenance.js +16 -1
  99. package/dist/src/usecases/vectorMaintenance.js.map +1 -1
  100. package/dist/src/usecases/write/index.d.ts.map +1 -1
  101. package/dist/src/usecases/write/index.js +17 -2
  102. package/dist/src/usecases/write/index.js.map +1 -1
  103. package/dist/src/usecases/write/occupancy.d.ts +5 -1
  104. package/dist/src/usecases/write/occupancy.d.ts.map +1 -1
  105. package/dist/src/usecases/write/occupancy.js +13 -4
  106. package/dist/src/usecases/write/occupancy.js.map +1 -1
  107. package/dist/src/usecases/write/structure.d.ts.map +1 -1
  108. package/dist/src/usecases/write/structure.js +20 -5
  109. package/dist/src/usecases/write/structure.js.map +1 -1
  110. package/dist/src/vector/FilesystemVectorIndex.d.ts +72 -2
  111. package/dist/src/vector/FilesystemVectorIndex.d.ts.map +1 -1
  112. package/dist/src/vector/FilesystemVectorIndex.js +211 -27
  113. package/dist/src/vector/FilesystemVectorIndex.js.map +1 -1
  114. package/dist/src/vector/InMemoryVectorIndex.d.ts.map +1 -1
  115. package/dist/src/vector/InMemoryVectorIndex.js +55 -7
  116. package/dist/src/vector/InMemoryVectorIndex.js.map +1 -1
  117. package/dist/src/vector/qdrantClient.d.ts +17 -0
  118. package/dist/src/vector/qdrantClient.d.ts.map +1 -1
  119. package/dist/src/vector/qdrantClient.js +47 -5
  120. package/dist/src/vector/qdrantClient.js.map +1 -1
  121. package/dist/src/wiring.d.ts +7 -12
  122. package/dist/src/wiring.d.ts.map +1 -1
  123. package/dist/src/wiring.js +29 -55
  124. package/dist/src/wiring.js.map +1 -1
  125. package/package.json +24 -3
  126. package/skills/manage-files/SKILL.md +1 -1
  127. package/skills/sync/SKILL.md +1 -1
@@ -4,6 +4,9 @@ import { nodeEmbeddingInputHash } from '../usecases/syncPointWrites.js';
4
4
  import { embedModelMarker, embeddingMarkerOf } from '../embeddings/models.js';
5
5
  import { peekActiveLock } from '../embeddings/lock.js';
6
6
  import { getGenerationMirror } from '../usecases/vector/rebuildGeneration.js';
7
+ import { VectorStoreUnavailableError } from '../domain/BrainError.js';
8
+ import { classifyQdrantFailure } from './qdrantClient.js';
9
+ import { sourceFromUri } from '../domain/uri.js';
7
10
  /** The dense proof a payload replacement carries forward from the stored point. */
8
11
  const PROOF_FIELDS = ['embed_model', 'embedding_status', 'embedding_input_hash', 'embedding_generation', 'embedding_updated_at'];
9
12
  /** What a late dense/proof commit re-reads: eligibility, the final authority and the proof — never the text. */
@@ -16,6 +19,11 @@ export class FilesystemVectorIndex {
16
19
  #sourceMutations;
17
20
  #discovery;
18
21
  #monitor;
22
+ #gate;
23
+ /** The availability gate, if one was wired (a Qdrant install). */
24
+ get gate() {
25
+ return this.#gate;
26
+ }
19
27
  /** The wrapped backend — read by the wiring-identity test, never by product code. */
20
28
  get backend() {
21
29
  return this.#inner;
@@ -28,7 +36,7 @@ export class FilesystemVectorIndex {
28
36
  get writeMonitor() {
29
37
  return this.#monitor;
30
38
  }
31
- constructor(inner, discovery, monitor) {
39
+ constructor(inner, discovery, monitor, gate) {
32
40
  // Never wrap a wrapper. A nested construction is COLLAPSED, not rejected:
33
41
  // `buildCommunityFilesystemInfra` adopts the shared infra's already-wrapped
34
42
  // port, and a second layer would stamp twice and make the identity test's
@@ -41,6 +49,7 @@ export class FilesystemVectorIndex {
41
49
  writeCoordinators.set(this.#inner, this.#coordinator);
42
50
  this.#discovery = discovery ?? (nested ? inner.discovery : undefined);
43
51
  this.#monitor = monitor ?? (nested ? inner.writeMonitor : undefined);
52
+ this.#gate = gate ?? (nested ? inner.gate : undefined);
44
53
  // The OPTIONAL members are mirrored only when the backend has them:
45
54
  // `chunkUpsert` branches on `vector.upsertBatch` and `searchFiles` on
46
55
  // `query`, so advertising a member the in-memory backend does not
@@ -49,7 +58,7 @@ export class FilesystemVectorIndex {
49
58
  if (backend.upsertBatch) {
50
59
  this.upsertBatch = async (points) => {
51
60
  let stamped = [];
52
- return this.#coordinator.lease(false, () => this.#coordinator.points(points.map(point => point.id), () => this.#mirrored(async () => {
61
+ return this.#gated(() => this.#coordinator.lease(false, () => this.#coordinator.points(points.map(point => point.id), () => this.#mirrored(async () => {
53
62
  stamped = points.map(stampPoint);
54
63
  this.#monitor?.record(stamped.map((p) => p.payload));
55
64
  await this.#observed(stamped.map((p) => p.payload), async () => {
@@ -65,37 +74,53 @@ export class FilesystemVectorIndex {
65
74
  for (const point of stamped)
66
75
  if (!point.vector && point.payload.recovery_only)
67
76
  mirror.afterRetention(point);
68
- }, points.map(point => point.id))));
77
+ }, points.map(point => point.id)))));
69
78
  };
70
79
  }
71
80
  if (backend.query) {
72
- this.query = (params) => backend.query({ ...params, filter: searchableFilter(params.filter), prefetch: params.prefetch.map(prefetch => ({ ...prefetch, filter: searchableFilter(prefetch.filter) })) });
81
+ this.query = (params) => this.#gated(() => backend.query({ ...params, filter: searchableFilter(params.filter), prefetch: params.prefetch.map(prefetch => ({ ...prefetch, filter: searchableFilter(prefetch.filter) })) }));
73
82
  }
74
83
  if (backend.countByFilter) {
75
- this.countByFilter = (filter) => backend.countByFilter(filter);
84
+ this.countByFilter = (filter) => this.#gated(() => backend.countByFilter(filter));
76
85
  }
77
86
  if (backend.facet) {
78
- this.facet = (params) => backend.facet(params);
87
+ this.facet = (params) => this.#gated(() => backend.facet(params));
79
88
  }
80
89
  // Collection work shares the exclusive epoch. Dense clear changes only
81
90
  // proof status; index/tuning/sparse work does not change file content.
91
+ // Every closure passes the gate except `generations` (the rebuild's shadow
92
+ // writes, which carry their own pause/resume).
82
93
  if (backend.maintenance) {
83
94
  const maintenance = backend.maintenance;
84
95
  this.maintenance = {
85
96
  generations: maintenance.generations,
86
97
  // Dense clear takes the exclusive epoch PER PAGE: writes run between pages,
87
98
  // and a late result embedded before a page was cleared is refused by its epoch.
88
- ...(maintenance.clearDense ? { clearDense: (params) => this.exclusive(() => maintenance.clearDense(params)) } : {}),
89
- report: params => maintenance.report({ filter: searchableFilter(params?.filter ?? {}) }),
90
- readOptimizations: params => maintenance.readOptimizations(params),
91
- migratePayloadIndexes: () => this.exclusive(() => maintenance.migratePayloadIndexes()),
92
- applyTuning: tuning => this.exclusive(() => maintenance.applyTuning(tuning)),
93
- applyQuantization: mode => this.exclusive(() => maintenance.applyQuantization(mode)),
94
- enableTextRanking: () => this.exclusive(() => maintenance.enableTextRanking()),
95
- backfillTextRanking: params => this.exclusive(() => maintenance.backfillTextRanking({ ...params, filter: searchableFilter(params.filter ?? {}) })),
99
+ ...(maintenance.clearDense ? { clearDense: (params) => this.#gated(() => this.exclusive(() => maintenance.clearDense(params))) } : {}),
100
+ report: params => this.#gated(() => maintenance.report({ filter: searchableFilter(params?.filter ?? {}) })),
101
+ readOptimizations: params => this.#gated(() => maintenance.readOptimizations(params)),
102
+ migratePayloadIndexes: () => this.#gated(() => this.exclusive(() => maintenance.migratePayloadIndexes())),
103
+ applyTuning: tuning => this.#gated(() => this.exclusive(() => maintenance.applyTuning(tuning))),
104
+ applyQuantization: mode => this.#gated(() => this.exclusive(() => maintenance.applyQuantization(mode))),
105
+ enableTextRanking: () => this.#gated(() => this.exclusive(() => maintenance.enableTextRanking())),
106
+ backfillTextRanking: params => this.#gated(() => this.exclusive(() => maintenance.backfillTextRanking({ ...params, filter: searchableFilter(params.filter ?? {}) }))),
96
107
  };
97
108
  }
98
109
  }
110
+ /**
111
+ * The availability gate around ONE store call: refused at once while the
112
+ * store is unavailable, and a store failure on the way back converted to the
113
+ * typed error. Without a gate (an in-memory install) the call runs as is.
114
+ */
115
+ #gated(run) {
116
+ const gate = this.#gate;
117
+ if (!gate)
118
+ return run();
119
+ const refusal = gate.refusal();
120
+ if (refusal)
121
+ return Promise.reject(refusal);
122
+ return run().catch((error) => { throw gate.convert(error); });
123
+ }
99
124
  /**
100
125
  * Raise the discovery generation on the way IN and again on the way OUT —
101
126
  * on success, throw and timeout alike. An in-flight build therefore cannot
@@ -135,18 +160,25 @@ export class FilesystemVectorIndex {
135
160
  mirror(active);
136
161
  });
137
162
  }
163
+ /**
164
+ * While the store is unavailable this RESOLVES with no network call and never
165
+ * throws: every use-site opens with it (and the boot step calls it with
166
+ * `void`), and the operation that follows refuses with the typed error itself.
167
+ */
138
168
  ensureAgentCollection(agentId) {
169
+ if (this.#gate && !this.#gate.available && !this.#gate.opening)
170
+ return Promise.resolve();
139
171
  return this.#inner.ensureAgentCollection(agentId);
140
172
  }
141
173
  async upsert(point) {
142
174
  if (!point.vector && point.payload.recovery_only)
143
175
  return this.retainPayload(point);
144
176
  let stamped = point;
145
- return this.#coordinator.lease(false, () => this.#coordinator.points([point.id], () => this.#mirrored(async () => {
177
+ return this.#gated(() => this.#coordinator.lease(false, () => this.#coordinator.points([point.id], () => this.#mirrored(async () => {
146
178
  stamped = stampPoint(point);
147
179
  this.#monitor?.record([stamped.payload]);
148
180
  await this.#observed([stamped.payload], () => this.#inner.upsert(stamped));
149
- }, (mirror) => mirror.afterUpsert([stamped]), [point.id])));
181
+ }, (mirror) => mirror.afterUpsert([stamped]), [point.id]))));
150
182
  }
151
183
  writeEpoch() { return this.#coordinator.epoch; }
152
184
  exclusive(run) {
@@ -161,7 +193,7 @@ export class FilesystemVectorIndex {
161
193
  async #writePayloads(points) {
162
194
  const ids = points.map(point => point.id);
163
195
  const written = new Map();
164
- await this.#coordinator.lease(false, () => this.#coordinator.points(ids, () => this.#mirrored(async () => {
196
+ await this.#gated(() => this.#coordinator.lease(false, () => this.#coordinator.points(ids, () => this.#mirrored(async () => {
165
197
  const enriched = points.map(point => stampPoint(point));
166
198
  this.#monitor?.record(enriched.map(point => point.payload));
167
199
  await this.#observed(enriched.map(point => point.payload), () => this.#inner.writePayloads(enriched, {
@@ -172,7 +204,7 @@ export class FilesystemVectorIndex {
172
204
  return stamped.payload;
173
205
  },
174
206
  }));
175
- }, mirror => mirror.afterUpsert([...written.values()]), ids)));
207
+ }, mirror => mirror.afterUpsert([...written.values()]), ids))));
176
208
  }
177
209
  /** Bind after project infra adopts the shared backend; all app stores share one coordinator. */
178
210
  bindSourceConfigs(store) {
@@ -218,7 +250,7 @@ export class FilesystemVectorIndex {
218
250
  throw new Error('INVALID_EMBEDDING_PROOF_PATCH');
219
251
  const written = points.map(() => false);
220
252
  const committed = [];
221
- await this.#coordinator.lease(false, () => this.#coordinator.points(points.map(point => point.id), () => this.#mirrored(() => {
253
+ await this.#gated(() => this.#coordinator.lease(false, () => this.#coordinator.points(points.map(point => point.id), () => this.#mirrored(() => {
222
254
  const commit = async () => {
223
255
  // A running rebuild mirrors the WHOLE point into its shadow; otherwise
224
256
  // the commit reads only what it judges and writes only vector + proof.
@@ -259,24 +291,24 @@ export class FilesystemVectorIndex {
259
291
  };
260
292
  return this.#sourceMutations ? this.#sourceMutations.exclusive(commit) : commit();
261
293
  }, mirror => { if (committed.length)
262
- mirror.afterUpsert(committed); }, points.map(point => point.id))));
294
+ mirror.afterUpsert(committed); }, points.map(point => point.id)))));
263
295
  return written;
264
296
  }
265
297
  async retainPayload(point) {
266
298
  point = { ...point, payload: { ...point.payload, embedding_status: 'missing' } };
267
- await this.#coordinator.lease(false, () => this.#coordinator.points([point.id], () => this.#mirrored(async () => {
299
+ await this.#gated(() => this.#coordinator.lease(false, () => this.#coordinator.points([point.id], () => this.#mirrored(async () => {
268
300
  this.#monitor?.record([point.payload]);
269
301
  await this.#observed([point.payload], () => this.#inner.retainPayload(point));
270
- }, mirror => mirror.afterRetention(point), [point.id])));
302
+ }, mirror => mirror.afterRetention(point), [point.id]))));
271
303
  }
272
304
  retrieve(id, projection) {
273
- return this.#inner.retrieve(id, projection);
305
+ return this.#gated(() => this.#inner.retrieve(id, projection));
274
306
  }
275
307
  scroll(params) {
276
- return this.#inner.scroll(params);
308
+ return this.#gated(() => this.#inner.scroll(params));
277
309
  }
278
310
  search(params) {
279
- return this.#inner.search({ ...params, filter: searchableFilter(params.filter) });
311
+ return this.#gated(() => this.#inner.search({ ...params, filter: searchableFilter(params.filter) }));
280
312
  }
281
313
  async deleteByFilter(filter) {
282
314
  let removed = 0;
@@ -292,7 +324,7 @@ export class FilesystemVectorIndex {
292
324
  };
293
325
  // Drains the collection but keeps the epoch: a late commit for a deleted
294
326
  // point already fails its re-read, and an unrelated in-flight one stays valid.
295
- await this.#coordinator.lease(true, () => this.#mirrored(async () => {
327
+ await this.#gated(() => this.#coordinator.lease(true, () => this.#mirrored(async () => {
296
328
  try {
297
329
  await run();
298
330
  }
@@ -300,7 +332,7 @@ export class FilesystemVectorIndex {
300
332
  getGenerationMirror()?.afterUncertainDelete(filter);
301
333
  throw error;
302
334
  }
303
- }, (mirror) => mirror.afterDelete(filter)), false);
335
+ }, (mirror) => mirror.afterDelete(filter)), false));
304
336
  return removed;
305
337
  }
306
338
  upsertBatch;
@@ -309,6 +341,158 @@ export class FilesystemVectorIndex {
309
341
  facet;
310
342
  maintenance;
311
343
  }
344
+ /**
345
+ * Can the vector store serve a call right now? ONE instance per Qdrant install,
346
+ * read by the wrapper above (refusal + conversion), driven by the reachability
347
+ * watch (the ONLY thing that opens it) and consulted by the sync queue (which
348
+ * holds jobs while it is closed).
349
+ *
350
+ * It closes on a connection-class failure of any call (`convert`) or on a
351
+ * failed probe; a close from open notifies `onLost` (the watch answers with one
352
+ * immediate probe). It opens only through `reachable()`, and only after every
353
+ * first-reachability step registered with `whenReachable` ran — each exactly
354
+ * once — so no request races the boot steps. While those steps run, only
355
+ * `ensureAgentCollection` passes (`opening`); a close landing meanwhile keeps
356
+ * the gate closed and the next probe decides.
357
+ */
358
+ export class VectorStoreGate {
359
+ #closed;
360
+ #opening = null;
361
+ #admitsEnsure = false;
362
+ #interrupted = false;
363
+ #first;
364
+ /** One `vector.qdrant.call-failed` warn per streak of converted failures; reset when the gate opens. */
365
+ #conversionWarned = false;
366
+ #steps = [];
367
+ #lost = new Set();
368
+ #availableListeners = new Set();
369
+ #logger;
370
+ /** `first` runs before any other step and before the collection ensure is admitted (the server-version read a create shapes itself on). */
371
+ constructor(initial, logger, first) {
372
+ this.#closed = initial;
373
+ this.#logger = logger;
374
+ this.#first = first;
375
+ }
376
+ get available() {
377
+ return this.#closed === null;
378
+ }
379
+ /** The registered steps are running: only the collection ensure reaches the store. */
380
+ get opening() {
381
+ return this.#admitsEnsure;
382
+ }
383
+ refusal() {
384
+ return this.#closed === null ? null : new VectorStoreUnavailableError(this.#closed);
385
+ }
386
+ /** A failed store call, as its caller sees it; a connection-class failure also closes the gate. */
387
+ convert(error) {
388
+ if (error instanceof VectorStoreUnavailableError)
389
+ return error;
390
+ const failure = classifyQdrantFailure(error);
391
+ if (failure === null)
392
+ return error;
393
+ if (!this.#conversionWarned) {
394
+ this.#conversionWarned = true;
395
+ // The class only — a status code and the error's NAME, never its message (a key or a path could ride it).
396
+ const status = error?.status;
397
+ this.#logger?.warn('vector.qdrant.call-failed', { failure, ...(typeof status === 'number' ? { status } : {}), errorName: error instanceof Error ? error.name : typeof error });
398
+ }
399
+ if (failure === 'connection')
400
+ this.close('unreachable');
401
+ return new VectorStoreUnavailableError(failure === 'unauthorized' ? 'unauthorized' : this.#closed ?? 'unreachable');
402
+ }
403
+ close(reason) {
404
+ if (this.#opening)
405
+ this.#interrupted = true;
406
+ if (this.#closed === reason)
407
+ return;
408
+ const wasOpen = this.#closed === null;
409
+ this.#closed = reason;
410
+ if (wasOpen)
411
+ notify(this.#lost, this.#logger);
412
+ }
413
+ /** Boot work that needs the store: runs now while it is available, else before the gate first opens. */
414
+ whenReachable(step) {
415
+ if (this.#closed === null)
416
+ void this.#runStep(step);
417
+ else
418
+ this.#steps.push(step);
419
+ }
420
+ /** The probe found the store answering: run the pending steps once, then open. */
421
+ reachable() {
422
+ if (this.#opening)
423
+ return this.#opening;
424
+ if (this.#closed === null)
425
+ return Promise.resolve();
426
+ this.#interrupted = false;
427
+ const opening = Promise.resolve().then(async () => {
428
+ const first = this.#first;
429
+ this.#first = undefined;
430
+ if (first)
431
+ await this.#runStep(first);
432
+ this.#admitsEnsure = true;
433
+ for (let step = this.#steps.shift(); step; step = this.#steps.shift())
434
+ await this.#runStep(step);
435
+ if (this.#interrupted)
436
+ return;
437
+ this.#closed = null;
438
+ this.#conversionWarned = false;
439
+ notify(this.#availableListeners, this.#logger);
440
+ }).finally(() => { this.#opening = null; this.#admitsEnsure = false; });
441
+ this.#opening = opening;
442
+ return opening;
443
+ }
444
+ onLost(listener) {
445
+ this.#lost.add(listener);
446
+ return () => { this.#lost.delete(listener); };
447
+ }
448
+ onAvailable(listener) {
449
+ this.#availableListeners.add(listener);
450
+ return () => { this.#availableListeners.delete(listener); };
451
+ }
452
+ /** A step never rejects: its outcome is one log line (the boot step is called with `void`). */
453
+ async #runStep(step) {
454
+ const startedAt = Date.now();
455
+ try {
456
+ await step.run();
457
+ this.#logger?.info('vector.qdrant.boot-step', { step: step.name, ok: true, durationMs: Date.now() - startedAt });
458
+ }
459
+ catch (error) {
460
+ this.#logger?.warn('vector.qdrant.boot-step', { step: step.name, ok: false, durationMs: Date.now() - startedAt, error: error instanceof Error ? error.message : String(error) });
461
+ }
462
+ }
463
+ }
464
+ function notify(listeners, logger) {
465
+ for (const listener of [...listeners]) {
466
+ try {
467
+ listener();
468
+ }
469
+ catch (error) {
470
+ logger?.warn('vector.gate.listener-failed', { error: error instanceof Error ? error.message : String(error) });
471
+ }
472
+ }
473
+ }
474
+ /**
475
+ * The refusal the shared index would answer right now, read without a call —
476
+ * for a caller that must not START work whose end needs the store (a provider
477
+ * embed before a search, a journal mark before its point delete). `null` when
478
+ * the store is available or no gate is wired (a configured in-memory install).
479
+ */
480
+ export function vectorStoreRefusal(vector) {
481
+ return vector instanceof FilesystemVectorIndex ? vector.gate?.refusal() ?? null : null;
482
+ }
483
+ /**
484
+ * The `.catch` of an index lookup that a CONNECTOR-BACKED uri can do without:
485
+ * while the store is unavailable it answers `unindexed` (the connector is that
486
+ * uri's physical truth); a `brain://` uri, whose content IS the index, and any
487
+ * other failure still reject.
488
+ */
489
+ export function unindexedWhileUnavailable(uri, unindexed) {
490
+ return (error) => {
491
+ if (error instanceof VectorStoreUnavailableError && sourceFromUri(uri) !== 'brain')
492
+ return unindexed;
493
+ throw error;
494
+ };
495
+ }
312
496
  /** A vector embedded by a model that is no longer the active one. */
313
497
  export class EmbeddingGenerationChangedError extends Error {
314
498
  pointId;
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemVectorIndex.js","sourceRoot":"","sources":["../../../src/vector/FilesystemVectorIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilesystemVectorIndex.js","sourceRoot":"","sources":["../../../src/vector/FilesystemVectorIndex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryVectorIndex.d.ts","sourceRoot":"","sources":["../../../src/vector/InMemoryVectorIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyIrJ,qBAAa,mBAAmB,CAAC,QAAQ,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAE,YAAW,aAAa,CAAC,QAAQ,CAAC;;IAG5F,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;IAEzD,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASxD;IAEK,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvF;IAEK,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;IAEK,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxI;IAEK,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3G;IAEK,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAWnG;IAEK,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CA2B/K;IAEK,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzD;IAED;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAejI;IAEK,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1D;IAEK,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAWnJ;CACF"}
1
+ {"version":3,"file":"InMemoryVectorIndex.d.ts","sourceRoot":"","sources":["../../../src/vector/InMemoryVectorIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgJrJ,qBAAa,mBAAmB,CAAC,QAAQ,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAE,YAAW,aAAa,CAAC,QAAQ,CAAC;;IAiC5F,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;IAEzD,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASxD;IAEK,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvF;IAEK,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;IAEK,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxI;IAEK,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3G;IAEK,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAWnG;IAEK,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CA6B/K;IAWK,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzD;IAED;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAejI;IAEK,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1D;IAEK,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAWnJ;CACF"}
@@ -22,7 +22,7 @@ function getFieldValue(payload, field) {
22
22
  * Mirror of the Qdrant `word` tokenizer + `lowercase:true` text-index config:
23
23
  * split on every non-alphanumeric rune, compare lowercased whole tokens. The
24
24
  * min/max token-length bounds are deliberately not emulated — this impl is the
25
- * test double / Qdrant-unreachable fallback, and matching slightly MORE than
25
+ * test double / the configured in-memory backend, and matching slightly MORE than
26
26
  * the bounded index is the safe direction.
27
27
  */
28
28
  function textTokens(value) {
@@ -49,7 +49,7 @@ function matchesFilter(payload, filter, vector, compiled) {
49
49
  // exactly as `must` and `mustNot` below already branch it. Comparing the array
50
50
  // ITSELF against the value list (what this did) can never be true, which made
51
51
  // every array-field match-any silently empty on this backend: the live cost is
52
- // the Files-tree folder colouring in degraded mode, where `folder_ancestors`
52
+ // the Files-tree folder colouring on this backend, where `folder_ancestors`
53
53
  // match-any left every walked folder `unindexed`. Separate clauses stay AND-ed.
54
54
  const mustMatchAny = filter.mustMatchAny ?? [];
55
55
  for (const clause of mustMatchAny) {
@@ -121,6 +121,13 @@ function matchesFilter(payload, filter, vector, compiled) {
121
121
  }
122
122
  return true;
123
123
  }
124
+ /** The `parent_id` values a payload is indexed under — the same array branching `must` applies. */
125
+ function parentValues(payload) {
126
+ const value = getFieldValue(payload, 'parent_id');
127
+ if (value === undefined)
128
+ return [];
129
+ return Array.isArray(value) ? value : [value];
130
+ }
124
131
  /**
125
132
  * Mirror the backend's PAYLOAD projection for real, so a caller that reads a
126
133
  * field it did not request fails HERE — in a unit test — instead of only
@@ -158,19 +165,48 @@ function projectPayload(payload, fields) {
158
165
  }
159
166
  export class InMemoryVectorIndex {
160
167
  #points = new Map();
168
+ /**
169
+ * `parent_id` value → the ids that carry it: the per-file chunk scrolls read
170
+ * k points instead of sorting and filtering all N. Kept by `#set`/`#delete`,
171
+ * the ONLY two writers of `#points`.
172
+ */
173
+ #byParent = new Map();
174
+ #set(point) {
175
+ this.#unindexParent(point.id);
176
+ this.#points.set(point.id, point);
177
+ for (const value of parentValues(point.payload)) {
178
+ let ids = this.#byParent.get(value);
179
+ if (!ids)
180
+ this.#byParent.set(value, ids = new Set());
181
+ ids.add(point.id);
182
+ }
183
+ }
184
+ #delete(id) {
185
+ this.#unindexParent(id);
186
+ this.#points.delete(id);
187
+ }
188
+ #unindexParent(id) {
189
+ const stored = this.#points.get(id);
190
+ for (const value of stored ? parentValues(stored.payload) : []) {
191
+ const ids = this.#byParent.get(value);
192
+ ids?.delete(id);
193
+ if (ids?.size === 0)
194
+ this.#byParent.delete(value);
195
+ }
196
+ }
161
197
  async ensureAgentCollection(_agentId) { }
162
198
  async upsert(point) {
163
199
  // Payload-only upserts preserve the stored vector (port contract — the
164
200
  // sync runner's enrichment refreshes rely on it; the Qdrant impl matches).
165
201
  const existing = this.#points.get(point.id);
166
- this.#points.set(point.id, {
202
+ this.#set({
167
203
  ...point,
168
204
  vector: point.vector ?? existing?.vector,
169
205
  payload: { ...point.payload, id: point.id },
170
206
  });
171
207
  }
172
208
  async retainPayload(point) {
173
- this.#points.set(point.id, { id: point.id, payload: { ...point.payload, id: point.id } });
209
+ this.#set({ id: point.id, payload: { ...point.payload, id: point.id } });
174
210
  }
175
211
  async writePayload(point) {
176
212
  await this.upsert(point);
@@ -186,7 +222,7 @@ export class InMemoryVectorIndex {
186
222
  const stored = this.#points.get(point.id);
187
223
  if (!stored)
188
224
  throw new Error(`VECTOR_MISSING_FOR_UPSERT:${point.id}`);
189
- this.#points.set(point.id, { id: point.id, vector: point.vector ?? stored.vector, payload: { ...stored.payload, ...point.patch, id: point.id } });
225
+ this.#set({ id: point.id, vector: point.vector ?? stored.vector, payload: { ...stored.payload, ...point.patch, id: point.id } });
190
226
  }
191
227
  }
192
228
  async retrieve(id, projection) {
@@ -204,7 +240,9 @@ export class InMemoryVectorIndex {
204
240
  }
205
241
  async scroll(params) {
206
242
  const compiled = new Map((params.filter.mustMatchAny ?? []).map(clause => [clause, new Set(clause.values)]));
207
- const ids = Array.from(this.#points.keys()).sort();
243
+ // A filter that pins the id set or one parent reads only those candidates
244
+ // (sorted, so the page sequence is the linear walk's); everything else walks all ids.
245
+ const ids = (this.#candidates(params.filter, compiled) ?? Array.from(this.#points.keys())).sort();
208
246
  const successor = params.cursor ? ids.findIndex((id) => id > params.cursor) : 0;
209
247
  const startIndex = successor < 0 ? ids.length : successor;
210
248
  const out = [];
@@ -230,6 +268,16 @@ export class InMemoryVectorIndex {
230
268
  const nextCursor = lastScanned < ids.length - 1 ? ids[lastScanned] : undefined;
231
269
  return { points: out, nextCursor };
232
270
  }
271
+ /** The ids a filter can match at most, when it names them: an `id` match-any, or one `parent_id`. */
272
+ #candidates(filter, compiled) {
273
+ const byId = (filter.mustMatchAny ?? []).find(clause => clause.field === 'id');
274
+ if (byId)
275
+ return [...compiled.get(byId)].filter((id) => typeof id === 'string' && this.#points.has(id));
276
+ const byParent = (filter.must ?? []).find(clause => clause.field === 'parent_id');
277
+ if (byParent)
278
+ return [...(this.#byParent.get(byParent.equals) ?? [])];
279
+ return null;
280
+ }
233
281
  async countByFilter(filter) {
234
282
  let n = 0;
235
283
  for (const p of this.#points.values()) {
@@ -266,7 +314,7 @@ export class InMemoryVectorIndex {
266
314
  let deleted = 0;
267
315
  for (const [id, p] of this.#points) {
268
316
  if (matchesFilter(p.payload, filter, p.vector)) {
269
- this.#points.delete(id);
317
+ this.#delete(id);
270
318
  deleted++;
271
319
  }
272
320
  }