@massa-ai/core 1.14.0 → 1.16.0

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 (37) hide show
  1. package/dist/services/search/contextual-search-rlm.d.ts +35 -14
  2. package/dist/services/search/contextual-search-rlm.d.ts.map +1 -1
  3. package/dist/services/search/contextual-search-rlm.js +274 -53
  4. package/dist/services/search/contextual-search-rlm.js.map +1 -1
  5. package/dist/services/search/graph-stream.d.ts +36 -0
  6. package/dist/services/search/graph-stream.d.ts.map +1 -0
  7. package/dist/services/search/{rlm-synapse.js → graph-stream.js} +11 -90
  8. package/dist/services/search/graph-stream.js.map +1 -0
  9. package/dist/services/search/hybrid-search.d.ts +101 -0
  10. package/dist/services/search/hybrid-search.d.ts.map +1 -0
  11. package/dist/services/search/{rlm-search.js → hybrid-search.js} +89 -46
  12. package/dist/services/search/hybrid-search.js.map +1 -0
  13. package/dist/services/search/index-admin.d.ts +130 -0
  14. package/dist/services/search/index-admin.d.ts.map +1 -0
  15. package/dist/services/search/{rlm-admin.js → index-admin.js} +34 -18
  16. package/dist/services/search/index-admin.js.map +1 -0
  17. package/dist/services/search/project-indexer.d.ts +159 -0
  18. package/dist/services/search/project-indexer.d.ts.map +1 -0
  19. package/dist/services/search/{rlm-indexing.js → project-indexer.js} +51 -79
  20. package/dist/services/search/project-indexer.js.map +1 -0
  21. package/dist/services/search/session-bias.d.ts +41 -0
  22. package/dist/services/search/session-bias.d.ts.map +1 -0
  23. package/dist/services/search/session-bias.js +76 -0
  24. package/dist/services/search/session-bias.js.map +1 -0
  25. package/package.json +2 -2
  26. package/dist/services/search/rlm-admin.d.ts +0 -22
  27. package/dist/services/search/rlm-admin.d.ts.map +0 -1
  28. package/dist/services/search/rlm-admin.js.map +0 -1
  29. package/dist/services/search/rlm-indexing.d.ts +0 -71
  30. package/dist/services/search/rlm-indexing.d.ts.map +0 -1
  31. package/dist/services/search/rlm-indexing.js.map +0 -1
  32. package/dist/services/search/rlm-search.d.ts +0 -27
  33. package/dist/services/search/rlm-search.d.ts.map +0 -1
  34. package/dist/services/search/rlm-search.js.map +0 -1
  35. package/dist/services/search/rlm-synapse.d.ts +0 -44
  36. package/dist/services/search/rlm-synapse.d.ts.map +0 -1
  37. package/dist/services/search/rlm-synapse.js.map +0 -1
@@ -1,11 +1,31 @@
1
1
  /**
2
- * rlm-indexingindexing lifecycle delegates for ContextualSearchRLM.
2
+ * project-indexerthe project indexing capability (design.md §4.1).
3
3
  *
4
- * Extracted (M14 Phase 3, T3.1) from contextual-search-rlm.ts. Behavior is
5
- * byte-preserved: bodies moved verbatim with `this` `rlm`. The class keeps
6
- * the static `indexingLocks` mutex map and `_indexProjectInternal` /
7
- * `ensureInitialized` as instance delegate methods (test monkey-patches them
8
- * on the instance; see design.md "Delegate-preservation contract").
4
+ * PR-B capability module. Takes `IndexerDeps` the collaborators §2.1 shows
5
+ * these surfaces read in place of the facade instance they used to receive as
6
+ * `rlm` (GMS-03 AC-1). The file has never heard of ContextualSearchRLM, so it
7
+ * contributes nothing to the root's foreign reach (G-HUB, design.md §3.4).
8
+ *
9
+ * `await rlm.ensureInitialized()` is **gone from every body here**. It was the
10
+ * literal first statement of `checkSearchAdmission`, `indexProjectInternal` and
11
+ * `ensureFreshIndex`, and it is now the literal first statement of the three
12
+ * facade methods that call them — design.md §4.5(b) and the §4.3 sketch. Order
13
+ * is unchanged: the root awaits init, *then* assembles the deps record, so the
14
+ * fields this module reads are populated exactly as before. `indexFile` never
15
+ * called it and still does not; its callers init first, as they always did.
16
+ *
17
+ * `ensureInitializedImpl` did **not** come here. It read 8 facade members, and
18
+ * 8 > G-HUB's ceiling of 3, so anywhere outside the root it fails the gate
19
+ * permanently. Its body is now the content of
20
+ * `ContextualSearchRLM.ensureInitialized()` (tasks.md T10, design.md §4.1's
21
+ * omission note). That is why rlm-indexing.ts dies whole rather than surviving
22
+ * as a one-function husk.
23
+ *
24
+ * LATE-BIND (design.md §4.3.1): the root assembles this record per call from its
25
+ * current field values. Nothing here captures a collaborator.
26
+ *
27
+ * Behavior is byte-preserved from rlm-indexing.ts: the bodies moved verbatim
28
+ * with `rlm.` → `deps.` and the hoisted init statement removed.
9
29
  */
10
30
  import { logger, config } from "@massa-ai/shared";
11
31
  import fs from "fs/promises";
@@ -14,12 +34,6 @@ import { glob } from "glob";
14
34
  import { randomUUID } from "node:crypto";
15
35
  import { smartChunk } from "./smart-chunker.js";
16
36
  import { buildExtensionGlob, loadProjectIgnore } from "./ignore-patterns.js";
17
- import { IndexManager } from "./index-manager.js";
18
- import { getKeywordSearch } from "../../data/keyword/keyword-search-factory.js";
19
- import { getVectorStore } from "../../data/vector/vector-store-factory.js";
20
- import { getSearchCache } from "./cache-factory.js";
21
- import { getSearchAnalytics } from "./analytics-factory.js";
22
- import { getSymbolRepository } from "../../data/symbol/symbol-repository-factory.js";
23
37
  import { getProjectIdentityAliasResolver } from "../project-identity/alias-resolver.js";
24
38
  import { ManagedRunRepositoryPg } from "../../data/managed-runs/managed-run-repository-pg.js";
25
39
  const globAsync = glob;
@@ -67,9 +81,8 @@ export async function runWithIndexLock(lockMap, projectId, work) {
67
81
  releaseLock();
68
82
  }
69
83
  }
70
- // ── _indexProjectInternal ────────────────────────────────────────────────────
71
- export async function _indexProjectInternalImpl(rlm, projectPath, projectId, options = {}) {
72
- await rlm.ensureInitialized();
84
+ // ── indexProjectInternal ─────────────────────────────────────────────────────
85
+ export async function indexProjectInternal(deps, projectPath, projectId, options = {}) {
73
86
  logger.info("Starting project indexing", { projectPath, projectId });
74
87
  const securityConfig = config.get("security");
75
88
  const allowedExtensions = securityConfig.allowedExtensions || [
@@ -82,7 +95,7 @@ export async function _indexProjectInternalImpl(rlm, projectPath, projectId, opt
82
95
  ];
83
96
  try {
84
97
  // Load .gitignore rules
85
- const ig = await loadGitignoreImpl(projectPath);
98
+ const ig = await loadGitignore(projectPath);
86
99
  // Find all relevant files
87
100
  const files = await globAsync(buildExtensionGlob(allowedExtensions), {
88
101
  cwd: projectPath,
@@ -108,12 +121,12 @@ export async function _indexProjectInternalImpl(rlm, projectPath, projectId, opt
108
121
  // Load centrality map once for the whole project so each chunk
109
122
  // carries its file's PageRank score in metadata.
110
123
  //
111
- // BUG-05: resolve the alias first. `indexFileImpl` resolves the canonical
112
- // id at its own write seam (`:477`), so chunks land under the canonical
124
+ // BUG-05: resolve the alias first. `indexFile` resolves the canonical
125
+ // id at its own write seam, so chunks land under the canonical
113
126
  // project; querying centrality with the caller's retired id returns an
114
127
  // empty map and every chunk is written with `centralityScore: 0` — a
115
128
  // silent failure, because 0 is also the legitimate "no centrality" value.
116
- const centralityMap = await rlm.symbolRepo.getCentrality(await getProjectIdentityAliasResolver().resolve(projectId));
129
+ const centralityMap = await deps.symbolRepo.getCentrality(await getProjectIdentityAliasResolver().resolve(projectId));
117
130
  let filesIndexed = 0;
118
131
  let chunksIndexed = 0;
119
132
  let errors = 0;
@@ -124,7 +137,7 @@ export async function _indexProjectInternalImpl(rlm, projectPath, projectId, opt
124
137
  const batch = filteredFiles.slice(i, i + BATCH_SIZE);
125
138
  await Promise.all(batch.map(async (file) => {
126
139
  try {
127
- const result = await rlm.indexFile(file, projectId, projectPath, centralityMap);
140
+ const result = await deps.indexFile(file, projectId, projectPath, centralityMap);
128
141
  filesIndexed++;
129
142
  chunksIndexed += result.chunks;
130
143
  }
@@ -146,7 +159,7 @@ export async function _indexProjectInternalImpl(rlm, projectPath, projectId, opt
146
159
  }
147
160
  // Update index metadata after successful indexing
148
161
  const indexedFilesList = filteredFiles.map((f) => path.relative(projectPath, f));
149
- await rlm.indexManager.updateIndexMetadata(projectId, projectPath, indexedFilesList);
162
+ await deps.indexManager.updateIndexMetadata(projectId, projectPath, indexedFilesList);
150
163
  logger.info("Project indexing completed", {
151
164
  projectId,
152
165
  filesIndexed,
@@ -161,11 +174,10 @@ export async function _indexProjectInternalImpl(rlm, projectPath, projectId, opt
161
174
  }
162
175
  }
163
176
  // ── ensureFreshIndex ─────────────────────────────────────────────────────────
164
- export async function ensureFreshIndexImpl(rlm, projectId, projectPath, options = {}) {
165
- await rlm.ensureInitialized();
177
+ export async function ensureFreshIndex(deps, projectId, projectPath, options = {}) {
166
178
  const allowFullReindex = options.allowFullReindex ?? false;
167
179
  const maxSyncFiles = options.maxSyncFiles ?? config.get("search").autoReindexMaxFiles;
168
- const staleCheck = await rlm.indexManager.isIndexStale(projectId, projectPath);
180
+ const staleCheck = await deps.indexManager.isIndexStale(projectId, projectPath);
169
181
  if (!staleCheck.isStale) {
170
182
  return { wasStale: false, reindexed: false };
171
183
  }
@@ -177,7 +189,7 @@ export async function ensureFreshIndexImpl(rlm, projectId, projectPath, options
177
189
  deletedFiles: staleCheck.deletedFiles?.length,
178
190
  });
179
191
  // Get files that need reindexing (pass staleCheck to avoid double filesystem scan)
180
- const filesToReindex = await rlm.indexManager.getFilesToReindex(projectId, projectPath, staleCheck);
192
+ const filesToReindex = await deps.indexManager.getFilesToReindex(projectId, projectPath, staleCheck);
181
193
  if (filesToReindex.length > maxSyncFiles) {
182
194
  logger.warn("Skipping sync reindex due to file limit", {
183
195
  projectId,
@@ -247,9 +259,9 @@ export async function ensureFreshIndexImpl(rlm, projectId, projectPath, options
247
259
  }
248
260
  let lease = beginOutcome.lease;
249
261
  try {
250
- await rlm.indexProject(projectPath, projectId);
262
+ await deps.indexProject(projectPath, projectId);
251
263
  // Invalidate cache after reindex
252
- await rlm.searchCache.invalidateProject(projectId);
264
+ await deps.searchCache.invalidateProject(projectId);
253
265
  return {
254
266
  wasStale: true,
255
267
  reindexed: true,
@@ -284,14 +296,14 @@ export async function ensureFreshIndexImpl(rlm, projectId, projectPath, options
284
296
  });
285
297
  // Load centrality map so chunks carry PageRank scores. Alias-resolved for
286
298
  // the same reason as the full-index path above (BUG-05).
287
- const centralityMap = await rlm.symbolRepo.getCentrality(await getProjectIdentityAliasResolver().resolve(projectId));
299
+ const centralityMap = await deps.symbolRepo.getCentrality(await getProjectIdentityAliasResolver().resolve(projectId));
288
300
  let filesIndexed = 0;
289
301
  let chunksIndexed = 0;
290
302
  let errors = 0;
291
303
  for (const relativeFilePath of filesToReindex) {
292
304
  try {
293
305
  const fullPath = path.join(projectPath, relativeFilePath);
294
- const result = await rlm.indexFile(fullPath, projectId, projectPath, centralityMap);
306
+ const result = await deps.indexFile(fullPath, projectId, projectPath, centralityMap);
295
307
  filesIndexed++;
296
308
  chunksIndexed += result.chunks;
297
309
  }
@@ -303,9 +315,9 @@ export async function ensureFreshIndexImpl(rlm, projectId, projectPath, options
303
315
  }
304
316
  }
305
317
  // Update metadata
306
- await rlm.indexManager.updateIndexMetadata(projectId, projectPath, filesToReindex);
318
+ await deps.indexManager.updateIndexMetadata(projectId, projectPath, filesToReindex);
307
319
  // Invalidate cache after incremental reindex
308
- await rlm.searchCache.invalidateProject(projectId);
320
+ await deps.searchCache.invalidateProject(projectId);
309
321
  logger.info("Incremental reindex completed", {
310
322
  projectId,
311
323
  filesIndexed,
@@ -319,9 +331,8 @@ export async function ensureFreshIndexImpl(rlm, projectId, projectPath, options
319
331
  };
320
332
  }
321
333
  // ── checkSearchAdmission ─────────────────────────────────────────────────────
322
- export async function checkSearchAdmissionImpl(rlm, projectId, projectPath) {
323
- await rlm.ensureInitialized();
324
- const metadata = await rlm.indexManager.getIndexMetadata(projectId);
334
+ export async function checkSearchAdmission(deps, projectId, projectPath) {
335
+ const metadata = await deps.indexManager.getIndexMetadata(projectId);
325
336
  if (!metadata) {
326
337
  return {
327
338
  admitted: false,
@@ -329,7 +340,7 @@ export async function checkSearchAdmissionImpl(rlm, projectId, projectPath) {
329
340
  };
330
341
  }
331
342
  if (projectPath) {
332
- const staleCheck = await rlm.indexManager.isIndexStale(projectId, projectPath);
343
+ const staleCheck = await deps.indexManager.isIndexStale(projectId, projectPath);
333
344
  if (staleCheck.isStale) {
334
345
  return {
335
346
  admitted: true,
@@ -345,7 +356,7 @@ export async function checkSearchAdmissionImpl(rlm, projectId, projectPath) {
345
356
  return { admitted: true };
346
357
  }
347
358
  // ── indexFile ────────────────────────────────────────────────────────────────
348
- export async function indexFileImpl(rlm, filePath, projectId, projectRoot, centralityMap) {
359
+ export async function indexFile(deps, filePath, projectId, projectRoot, centralityMap) {
349
360
  // Resolve canonical project id at the write-entry seam (spec req 3).
350
361
  projectId = await getProjectIdentityAliasResolver().resolve(projectId);
351
362
  const content = await fs.readFile(filePath, "utf-8");
@@ -386,53 +397,14 @@ export async function indexFileImpl(rlm, filePath, projectId, projectRoot, centr
386
397
  // FTS5 keyword indexing concurrently to save ~30% total time
387
398
  await Promise.all([
388
399
  // Vector store: sub-batched embedding + insert
389
- rlm.vectorStore.addDocuments(documents),
400
+ deps.vectorStore.addDocuments(documents),
390
401
  // Keyword search: parallel FTS5 inserts
391
- Promise.all(documents.map((doc) => rlm.keywordSearch.index(doc.id, doc.content, doc.metadata))),
402
+ Promise.all(documents.map((doc) => deps.keywordSearch.index(doc.id, doc.content, doc.metadata))),
392
403
  ]);
393
404
  return { chunks: chunks.length };
394
405
  }
395
406
  // ── loadGitignore ────────────────────────────────────────────────────────────
396
- export function loadGitignoreImpl(projectPath) {
407
+ export function loadGitignore(projectPath) {
397
408
  return loadProjectIgnore(projectPath);
398
409
  }
399
- // ── ensureInitialized ────────────────────────────────────────────────────────
400
- export async function ensureInitializedImpl(rlm) {
401
- if (rlm.initialized)
402
- return;
403
- const injected = rlm.injectedDeps ?? {};
404
- const resolveKeyword = injected.keywordSearch
405
- ? Promise.resolve(injected.keywordSearch)
406
- : getKeywordSearch();
407
- const resolveVector = injected.vectorStore
408
- ? Promise.resolve(injected.vectorStore)
409
- : getVectorStore();
410
- const resolveCache = injected.searchCache
411
- ? Promise.resolve(injected.searchCache)
412
- : getSearchCache();
413
- const resolveAnalytics = injected.analytics
414
- ? Promise.resolve(injected.analytics)
415
- : getSearchAnalytics();
416
- const resolveSymbolRepo = injected.symbolRepo
417
- ? Promise.resolve(injected.symbolRepo)
418
- : getSymbolRepository();
419
- [
420
- rlm.keywordSearch,
421
- rlm.vectorStore,
422
- rlm.searchCache,
423
- rlm.analytics,
424
- rlm.symbolRepo,
425
- ] = await Promise.all([
426
- resolveKeyword,
427
- resolveVector,
428
- resolveCache,
429
- resolveAnalytics,
430
- resolveSymbolRepo,
431
- ]);
432
- rlm.indexManager = new IndexManager(rlm.vectorStore);
433
- rlm.initialized = true;
434
- logger.info("ContextualSearchRLM initialized", {
435
- via: injected.vectorStore ? "injected-seam" : "factory",
436
- });
437
- }
438
- //# sourceMappingURL=rlm-indexing.js.map
410
+ //# sourceMappingURL=project-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-indexer.js","sourceRoot":"","sources":["../../../src/services/search/project-indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * session-bias — Synapse session state applied over a cached base result.
3
+ *
4
+ * PR-B capability module (design.md §4.1). Takes `SessionBiasDeps` — exactly
5
+ * the two collaborators §2.1 shows this surface reads — in place of the facade
6
+ * instance it used to receive as `rlm` (GMS-03 AC-1). The file has never heard
7
+ * of ContextualSearchRLM, so it contributes nothing to the root's foreign reach
8
+ * (G-HUB, design.md §3.4).
9
+ *
10
+ * Both fields are optional and the process factories stay the fallback, exactly
11
+ * as `rlm.injectedDeps?.sessionRegistry ?? getSessionRegistry()` was. That is
12
+ * not a convenience: the fallbacks resolve *after* the `!sessionId` early
13
+ * return, so a no-session call still touches neither factory. Hoisting them
14
+ * into the root's deps assembly would call both on every search and is the one
15
+ * way this extraction could stop being behavior-preserving.
16
+ *
17
+ * LATE-BIND (design.md §4.3.1): the root assembles this record per call from
18
+ * its current field values. Nothing here captures a collaborator.
19
+ *
20
+ * Behavior is byte-preserved from rlm-synapse.ts: the body moved verbatim.
21
+ */
22
+ import { SearchResult } from "@massa-ai/shared";
23
+ import type { SessionRegistry } from "../synapse/session/session-registry.js";
24
+ import type { SynapseManager } from "../synapse/synapse-manager.js";
25
+ import type { SearchDegradationReporter } from "./search-diagnostics.js";
26
+ /**
27
+ * The narrow dependency record for this module (design.md §4.4) — the two
28
+ * collaborators `applySynapseState` reads, and nothing else. Both are the same
29
+ * structural subsets the root's constructor seam already accepts, so an
30
+ * object literal is a complete stand-in (GMS-03 AC-2).
31
+ */
32
+ export interface SessionBiasDeps {
33
+ sessionRegistry?: Pick<SessionRegistry, "getAsync">;
34
+ synapseManager?: Pick<SynapseManager, "process">;
35
+ }
36
+ /**
37
+ * Apply session state after the session-independent base result is cached.
38
+ * Invalid and workspace-mismatched sessions return the exact base array.
39
+ */
40
+ export declare function applySynapseState(deps: SessionBiasDeps, baseResults: SearchResult[], query: string, projectId: string, sessionId?: string, reportDegradation?: SearchDegradationReporter): Promise<SearchResult[]>;
41
+ //# sourceMappingURL=session-bias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bias.d.ts","sourceRoot":"","sources":["../../../src/services/search/session-bias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAU,MAAM,kBAAkB,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,WAAW,EAAE,YAAY,EAAE,EAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,yBAAyB,GAC5C,OAAO,CAAC,YAAY,EAAE,CAAC,CA8CzB"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * session-bias — Synapse session state applied over a cached base result.
3
+ *
4
+ * PR-B capability module (design.md §4.1). Takes `SessionBiasDeps` — exactly
5
+ * the two collaborators §2.1 shows this surface reads — in place of the facade
6
+ * instance it used to receive as `rlm` (GMS-03 AC-1). The file has never heard
7
+ * of ContextualSearchRLM, so it contributes nothing to the root's foreign reach
8
+ * (G-HUB, design.md §3.4).
9
+ *
10
+ * Both fields are optional and the process factories stay the fallback, exactly
11
+ * as `rlm.injectedDeps?.sessionRegistry ?? getSessionRegistry()` was. That is
12
+ * not a convenience: the fallbacks resolve *after* the `!sessionId` early
13
+ * return, so a no-session call still touches neither factory. Hoisting them
14
+ * into the root's deps assembly would call both on every search and is the one
15
+ * way this extraction could stop being behavior-preserving.
16
+ *
17
+ * LATE-BIND (design.md §4.3.1): the root assembles this record per call from
18
+ * its current field values. Nothing here captures a collaborator.
19
+ *
20
+ * Behavior is byte-preserved from rlm-synapse.ts: the body moved verbatim.
21
+ */
22
+ import { logger } from "@massa-ai/shared";
23
+ import { getSessionRegistry } from "../synapse/session/index.js";
24
+ import { getSynapseManager } from "../synapse/index.js";
25
+ /**
26
+ * Apply session state after the session-independent base result is cached.
27
+ * Invalid and workspace-mismatched sessions return the exact base array.
28
+ */
29
+ export async function applySynapseState(deps, baseResults, query, projectId, sessionId, reportDegradation) {
30
+ if (!sessionId)
31
+ return baseResults;
32
+ const registry = deps.sessionRegistry ?? getSessionRegistry();
33
+ let session;
34
+ try {
35
+ session = await registry.getAsync(sessionId);
36
+ }
37
+ catch (error) {
38
+ reportDegradation?.("SYNAPSE_UNAVAILABLE", "synapse_session_lookup");
39
+ logger.warn("Synapse session lookup failed — using stateless search", {
40
+ sessionId,
41
+ projectId,
42
+ error: error.message,
43
+ });
44
+ return baseResults;
45
+ }
46
+ if (!session || (session.workspaceId && session.workspaceId !== projectId)) {
47
+ return baseResults;
48
+ }
49
+ const synapseManager = deps.synapseManager ?? getSynapseManager();
50
+ const allowBufferInjection = session.workspaceId === projectId;
51
+ let processed;
52
+ try {
53
+ processed = synapseManager.process(baseResults, query, {
54
+ session,
55
+ projectId,
56
+ allowBufferInjection,
57
+ });
58
+ }
59
+ catch (error) {
60
+ reportDegradation?.("SYNAPSE_UNAVAILABLE", "synapse_processing");
61
+ logger.warn("Synapse processing failed — using stateless search", {
62
+ sessionId,
63
+ projectId,
64
+ error: error.message,
65
+ });
66
+ return baseResults;
67
+ }
68
+ const baseIds = new Set(baseResults.map((result) => result.id));
69
+ return processed.results.filter((result) => {
70
+ if (baseIds.has(result.id))
71
+ return true;
72
+ const metadata = result.metadata;
73
+ return allowBufferInjection && metadata?.projectId === projectId;
74
+ });
75
+ }
76
+ //# sourceMappingURL=session-bias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bias.js","sourceRoot":"","sources":["../../../src/services/search/session-bias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAgB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAiBxD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAqB,EACrB,WAA2B,EAC3B,KAAa,EACb,SAAiB,EACjB,SAAkB,EAClB,iBAA6C;IAE7C,IAAI,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,IAAI,kBAAkB,EAAE,CAAC;IAC9D,IAAI,OAA4B,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;YACpE,SAAS;YACT,SAAS;YACT,KAAK,EAAG,KAAe,CAAC,OAAO;SAChC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,CAAC;QAC3E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,iBAAiB,EAAE,CAAC;IAClE,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC;IAC/D,IAAI,SAAS,CAAC;IACd,IAAI,CAAC;QACH,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE;YACrD,OAAO;YACP,SAAS;YACT,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;YAChE,SAAS;YACT,SAAS;YACT,KAAK,EAAG,KAAe,CAAC,OAAO;SAChC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA+C,CAAC;QACxE,OAAO,oBAAoB,IAAI,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massa-ai/core",
3
- "version": "1.14.0",
3
+ "version": "1.16.0",
4
4
  "author": "luizgmassa",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -48,7 +48,7 @@
48
48
  "@ai-sdk/google": "^3.0.19",
49
49
  "@ai-sdk/mistral": "^3.0.17",
50
50
  "@ai-sdk/openai": "^3.0.24",
51
- "@massa-ai/shared": "1.14.0",
51
+ "@massa-ai/shared": "1.16.0",
52
52
  "@prisma/adapter-pg": "^7.5.0",
53
53
  "@prisma/client": "^7.5.0",
54
54
  "@prisma/client-runtime-utils": "^7.3.0",
@@ -1,22 +0,0 @@
1
- /**
2
- * rlm-admin — admin/stats delegates for ContextualSearchRLM.
3
- *
4
- * Extracted (M14 Phase 3, T3.3) from contextual-search-rlm.ts. Behavior is
5
- * byte-preserved: bodies moved verbatim with `this` → `rlm`.
6
- */
7
- import { SearchAnalytics } from "./search-analytics.js";
8
- import type { SearchAnalyticsPg } from "./search-analytics-pg.js";
9
- import type { ContextualSearchRLM } from "./contextual-search-rlm.js";
10
- export declare function clearProjectIndexImpl(rlm: ContextualSearchRLM, projectId: string): Promise<{
11
- deleted: number;
12
- }>;
13
- export declare function getProjectStatsImpl(rlm: ContextualSearchRLM, projectId: string): Promise<{
14
- totalDocuments: number;
15
- totalSize: number;
16
- }>;
17
- export declare function warmupCacheImpl(rlm: ContextualSearchRLM, projectId: string, _projectPath: string, customQueries?: string[]): Promise<{
18
- queriesWarmed: number;
19
- errors: number;
20
- }>;
21
- export declare function getAnalyticsImpl(rlm: ContextualSearchRLM): SearchAnalytics | SearchAnalyticsPg;
22
- //# sourceMappingURL=rlm-admin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlm-admin.d.ts","sourceRoot":"","sources":["../../../src/services/search/rlm-admin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB9B;AAID,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IACT,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAGD;AAID,wBAAsB,eAAe,CACnC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAqDpD;AAID,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,mBAAmB,GACvB,eAAe,GAAG,iBAAiB,CAErC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlm-admin.js","sourceRoot":"","sources":["../../../src/services/search/rlm-admin.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- /**
2
- * rlm-indexing — indexing lifecycle delegates for ContextualSearchRLM.
3
- *
4
- * Extracted (M14 Phase 3, T3.1) from contextual-search-rlm.ts. Behavior is
5
- * byte-preserved: bodies moved verbatim with `this` → `rlm`. The class keeps
6
- * the static `indexingLocks` mutex map and `_indexProjectInternal` /
7
- * `ensureInitialized` as instance delegate methods (test monkey-patches them
8
- * on the instance; see design.md "Delegate-preservation contract").
9
- */
10
- import type { ContextualSearchRLM } from "./contextual-search-rlm.js";
11
- export type IndexProjectOptions = {
12
- onProgress?: (current: number, total: number) => void;
13
- };
14
- export type IndexProjectResult = {
15
- filesIndexed: number;
16
- chunksIndexed: number;
17
- errors: number;
18
- };
19
- export type EnsureFreshIndexOptions = {
20
- allowFullReindex?: boolean;
21
- maxSyncFiles?: number;
22
- };
23
- export type EnsureFreshIndexResult = {
24
- wasStale: boolean;
25
- reindexed: boolean;
26
- reason?: string;
27
- deferred?: boolean;
28
- filesPending?: number;
29
- };
30
- export type SearchAdmissionResult = {
31
- admitted: boolean;
32
- error?: string;
33
- stale?: {
34
- reason: string;
35
- modifiedFiles?: number;
36
- newFiles?: number;
37
- deletedFiles?: number;
38
- };
39
- };
40
- /**
41
- * Per-project queue mutex: serializes concurrent indexing for the same project.
42
- *
43
- * Pattern: each caller chains its lock after the current tail, then waits for
44
- * the previous lock before proceeding. This guarantees correct ordering for any
45
- * number of concurrent callers (3+), unlike a simple check-and-set.
46
- *
47
- * A sets map[proj] = lock_A, awaits null → starts immediately
48
- * B sets map[proj] = lock_B, awaits lock_A → waits for A
49
- * C sets map[proj] = lock_C, awaits lock_B → waits for B
50
- * A finishes → releases lock_A → B starts
51
- * B finishes → releases lock_B → C starts
52
- * C finishes → map[proj] === lock_C, so we clean up the entry
53
- *
54
- * The `try { await work() } finally { delete-if-still-owner; releaseLock() }`
55
- * shape is load-bearing: `releaseLock()` MUST run even when `work` throws, or
56
- * the lock leaks and subsequent callers hang (BUG-SYN-4).
57
- *
58
- * `work` is `() => this._indexProjectInternal(...)` in the caller — a lambda
59
- * that captures virtual dispatch through `this`, so test monkey-patches on the
60
- * instance still route. Do NOT inline a direct call to a module function here.
61
- */
62
- export declare function runWithIndexLock<T>(lockMap: Map<string, Promise<void>>, projectId: string, work: () => Promise<T>): Promise<T>;
63
- export declare function _indexProjectInternalImpl(rlm: ContextualSearchRLM, projectPath: string, projectId: string, options?: IndexProjectOptions): Promise<IndexProjectResult>;
64
- export declare function ensureFreshIndexImpl(rlm: ContextualSearchRLM, projectId: string, projectPath: string, options?: EnsureFreshIndexOptions): Promise<EnsureFreshIndexResult>;
65
- export declare function checkSearchAdmissionImpl(rlm: ContextualSearchRLM, projectId: string, projectPath?: string): Promise<SearchAdmissionResult>;
66
- export declare function indexFileImpl(rlm: ContextualSearchRLM, filePath: string, projectId: string, projectRoot: string, centralityMap?: Map<string, number>): Promise<{
67
- chunks: number;
68
- }>;
69
- export declare function loadGitignoreImpl(projectPath: string): Promise<import("ignore").Ignore>;
70
- export declare function ensureInitializedImpl(rlm: ContextualSearchRLM): Promise<void>;
71
- //# sourceMappingURL=rlm-indexing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlm-indexing.d.ts","sourceRoot":"","sources":["../../../src/services/search/rlm-indexing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAID,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,mBAAmB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAwH7B;AAID,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAqLjC;AAID,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CA8BhC;AAID,wBAAsB,aAAa,CACjC,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyD7B;AAID,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,oCAEpD;AAID,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCnF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlm-indexing.js","sourceRoot":"","sources":["../../../src/services/search/rlm-indexing.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * rlm-search — search god-method + fusion + scoring + context delegates
3
- * for ContextualSearchRLM.
4
- *
5
- * Extracted (M14 Phase 3, T3.3) from contextual-search-rlm.ts. Behavior is
6
- * byte-preserved: bodies moved verbatim with `this` → `rlm`.
7
- */
8
- import { SearchResult } from "@massa-ai/shared";
9
- import type { ContextualSearchRLM } from "./contextual-search-rlm.js";
10
- import { type SearchDegradation } from "./search-diagnostics.js";
11
- export type SearchOptions = {
12
- maxResults?: number;
13
- minScore?: number;
14
- explainScores?: boolean;
15
- includeFilters?: string[];
16
- excludeFilters?: string[];
17
- /** Phase 2: Synapse session id forwarded for future Synapse-biased fusion. */
18
- sessionId?: string;
19
- /** Receives bounded, sanitized evidence for optional search failures. */
20
- onDegradations?: (degradations: readonly SearchDegradation[]) => void;
21
- };
22
- export declare function searchImpl(rlm: ContextualSearchRLM, query: string, projectId: string, options?: SearchOptions): Promise<SearchResult[]>;
23
- export declare function addContextToResultsImpl(rlm: ContextualSearchRLM, results: SearchResult[], _projectId: string): Promise<SearchResult[]>;
24
- export declare function extractPreviewImpl(content: string, maxLines?: number): string;
25
- export declare function calculateAvgScoreImpl(results: SearchResult[]): number;
26
- export declare function filterByPatternsImpl(results: SearchResult[], include?: string[], exclude?: string[]): SearchResult[];
27
- //# sourceMappingURL=rlm-search.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rlm-search.d.ts","sourceRoot":"","sources":["../../../src/services/search/rlm-search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAKhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAML,KAAK,iBAAiB,EAEvB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,iBAAiB,EAAE,KAAK,IAAI,CAAC;CACvE,CAAC;AAEF,wBAAsB,UAAU,CAC9B,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CAiczB;AAID,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAyBzB;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAIhF;AAID,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAIrE;AAID,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,YAAY,EAAE,CAwBhB"}