@traqr/memory 0.2.33 → 0.2.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { createMemoryServer } from './server.js';
8
8
  export { getVectorDB, resetVectorDB, setVectorDB } from './vectordb/index.js';
9
9
  export { checkDbHealth } from './lib/health.js';
10
10
  export type { DbHealthResult } from './lib/health.js';
11
- export type { VectorDBProvider, Memory, MemoryInput, MemorySearchResult, MemoryUpdate, MemoryExport, MemoryDomain, SearchOptions, MemoryCategory, MemorySourceType, MemoryDurability, MemoryType, MemoryClassification, MemoryAccessLevel, MemoryRetentionPolicy, BM25SearchResult, TemporalSearchResult, GraphSearchResult, BrowseResult, ProviderConfig, } from './vectordb/types.js';
11
+ export type { VectorDBProvider, Memory, MemoryInput, MemorySearchResult, MemoryUpdate, MemoryExport, MemoryDomain, SearchOptions, MemoryCategory, MemorySourceType, MemoryDurability, MemoryType, MemoryClassification, MemoryAccessLevel, MemoryRetentionPolicy, BrowseResult, ProviderConfig, } from './vectordb/types.js';
12
12
  export { BOOTSTRAP_CONFIDENCE, DECAY_CONFIG, ACCESS_LEVEL_MAX_CLASSIFICATION, CLASSIFICATION_RANK } from './vectordb/types.js';
13
13
  export { deriveAll, deriveDomain, deriveCategory, deriveTopic, deriveSummary, deriveTags, deriveMemoryType, deriveForgetAfter, extractEntityCandidates, } from './lib/auto-derive.js';
14
14
  export type { DeriveResult, EntityCandidate } from './lib/auto-derive.js';
@@ -22,8 +22,8 @@ export type { MemoryHistoryResult, MemoryRelationship } from './lib/lifecycle.js
22
22
  export { processEntitiesForMemory } from './lib/entity-pipeline.js';
23
23
  export type { EntityExtractionResult } from './lib/entity-pipeline.js';
24
24
  export type { StoreWithDedupResult, TriageResult, TriageZone, TriageAction, TriageOptions, RoundTripResult, DetailedStats, SystemHealth, } from './lib/memory.js';
25
- export { searchMemoriesV2, reciprocalRankFusion, detectStrategies, parseTemporalRange, findEntitiesInQuery, } from './lib/retrieval.js';
26
- export type { SearchV2Options, SearchStrategy, FusedItem, StrategyResult, DetectedStrategies, } from './lib/retrieval.js';
25
+ export { searchMemoriesV2, reciprocalRankFusion, } from './lib/retrieval.js';
26
+ export type { SearchV2Options, SearchStrategy, FusedItem, StrategyResult, } from './lib/retrieval.js';
27
27
  export { generateEmbedding, generateEmbeddingsBatch, cosineSimilarity, formatEmbeddingForPgVector, parseEmbeddingFromPgVector, needsReembedding, checkEmbeddingHealth, EMBEDDING_CONFIG, getEmbeddingProvider, getEmbeddingConfig, resetEmbeddingProvider, } from './lib/embeddings.js';
28
28
  export type { EmbeddingResult, EmbeddingHealthStatus, EmbeddingProvider } from './lib/embeddings.js';
29
29
  export { CATEGORY_EMOJI, CATEGORY_EMOJI_SLACK, CATEGORY_EMOJI_TEXT, SOURCE_TYPE_EMOJI, getCategoryEmoji, } from './lib/formatting.js';
package/dist/index.js CHANGED
@@ -26,8 +26,8 @@ export { storeMemory, searchMemories, getMemory, citeMemory, updateMemory, delet
26
26
  export { getVersionChain, getMemoryHistory, getMemoryRelationships, } from './lib/lifecycle.js';
27
27
  // Entity extraction pipeline
28
28
  export { processEntitiesForMemory } from './lib/entity-pipeline.js';
29
- // Multi-strategy retrieval (v2)
30
- export { searchMemoriesV2, reciprocalRankFusion, detectStrategies, parseTemporalRange, findEntitiesInQuery, } from './lib/retrieval.js';
29
+ // Retrieval (v2 — semantic-only since TD-906 Slice C)
30
+ export { searchMemoriesV2, reciprocalRankFusion, } from './lib/retrieval.js';
31
31
  // Embeddings
32
32
  export { generateEmbedding, generateEmbeddingsBatch, cosineSimilarity, formatEmbeddingForPgVector, parseEmbeddingFromPgVector, needsReembedding, checkEmbeddingHealth, EMBEDDING_CONFIG, getEmbeddingProvider, getEmbeddingConfig, resetEmbeddingProvider, } from './lib/embeddings.js';
33
33
  // Formatting
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,iBAAiB;AACjB,gFAAgF;AAChF,+EAA+E;AAC/E,wEAAwE;AACxE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE7E,qEAAqE;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAwB/C,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9H,iBAAiB;AACjB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAG7B,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAGxD,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,+BAA+B;AAC/B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAG3B,6BAA6B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAcnE,gCAAgC;AAChC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAS3B,aAAa;AACb,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,aAAa;AACb,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAE5B,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG7I,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE1E,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,iBAAiB;AACjB,gFAAgF;AAChF,+EAA+E;AAC/E,wEAAwE;AACxE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE7E,qEAAqE;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAqB/C,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9H,iBAAiB;AACjB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAG7B,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAGxD,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,+BAA+B;AAC/B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAG3B,6BAA6B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAcnE,sDAAsD;AACtD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAQ3B,aAAa;AACb,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,aAAa;AACb,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAE5B,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG7I,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE1E,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAA"}
@@ -14,11 +14,13 @@
14
14
  * it to 'restricted' (= show-all). The helper was never even reached.
15
15
  *
16
16
  * This file is the live-path regression guard TD-810 acceptance item 4 asked
17
- * for. Two sections:
18
- * 1. INTEGRATIONdrive searchMemoriesV2 through a fake VectorDBProvider that
19
- * yields over-tier rows across the semantic + bm25 + graph paths (the last
20
- * two via the classification-blind getById hydration), assert the live path
21
- * returns ZERO over-tier rows at the exploration ceiling. Catches commit-1.
17
+ * for. (TD-906 Slice C removed the bm25/temporal/graph legs + their getById
18
+ * hydration entirely deletion is the strongest fix for a classification-blind
19
+ * path. Section 1 now drives the one surviving strategy.) Sections:
20
+ * 1. INTEGRATION drive searchMemoriesV2 through a fake VectorDBProvider
21
+ * whose semantic pool contains over-tier rows, assert the step-6.5
22
+ * post-filter returns ZERO over-tier rows at the exploration ceiling
23
+ * (the fail-safe backstop behind the DB-level filter). Catches commit-1.
22
24
  * 2. CONTRACT — capture the positional args PostgresVectorProvider.search()
23
25
  * passes to query() via a fake pool, assert p_max_classification rides in
24
26
  * arg 9 (single-project) / arg 12 (cross-project). Catches commit-2 — no DB.
@@ -14,11 +14,13 @@
14
14
  * it to 'restricted' (= show-all). The helper was never even reached.
15
15
  *
16
16
  * This file is the live-path regression guard TD-810 acceptance item 4 asked
17
- * for. Two sections:
18
- * 1. INTEGRATIONdrive searchMemoriesV2 through a fake VectorDBProvider that
19
- * yields over-tier rows across the semantic + bm25 + graph paths (the last
20
- * two via the classification-blind getById hydration), assert the live path
21
- * returns ZERO over-tier rows at the exploration ceiling. Catches commit-1.
17
+ * for. (TD-906 Slice C removed the bm25/temporal/graph legs + their getById
18
+ * hydration entirely deletion is the strongest fix for a classification-blind
19
+ * path. Section 1 now drives the one surviving strategy.) Sections:
20
+ * 1. INTEGRATION drive searchMemoriesV2 through a fake VectorDBProvider
21
+ * whose semantic pool contains over-tier rows, assert the step-6.5
22
+ * post-filter returns ZERO over-tier rows at the exploration ceiling
23
+ * (the fail-safe backstop behind the DB-level filter). Catches commit-1.
22
24
  * 2. CONTRACT — capture the positional args PostgresVectorProvider.search()
23
25
  * passes to query() via a fake pool, assert p_max_classification rides in
24
26
  * arg 9 (single-project) / arg 12 (cross-project). Catches commit-2 — no DB.
@@ -79,50 +81,32 @@ function searchRow(id, classification) {
79
81
  // 1. INTEGRATION — searchMemoriesV2 live path drops over-tier rows (commit-1).
80
82
  // ===========================================================================
81
83
  //
82
- // Fake provider yields over-tier rows across all three active strategies:
83
- // - semantic → sem-int (internal, kept) + sem-conf (confidential, DROP)
84
- // these land in semanticFullResults hydrated via semanticMap
85
- // - bm25 → bm25-pub (public, kept) + bm25-restr (restricted, DROP)
86
- // NEW ids not in semantic hydrated via the BLIND getById path
87
- // - graph graph-conf (confidential, DROP)
88
- // NEW id → also via the BLIND getById path
89
- // At exploration the ceiling is 'internal', so only public+internal survive.
84
+ // TD-906 Slice C: semantic is the ONLY strategy (the bm25/temporal/graph legs
85
+ // and the classification-blind getById hydration of their hits are deleted).
86
+ // The fake provider emits over-tier rows in the semantic pool itself; the real
87
+ // RPC already DB-filters on p_max_classification (Section 2 pins that), so this
88
+ // asserts the step-6.5 post-filter as the fail-safe BACKSTOP at the result
89
+ // boundary. At exploration the ceiling is 'internal' only public+internal
90
+ // survive.
90
91
  console.log('\n--- searchMemoriesV2 live-path classification enforcement (TD-885 / TD-810 commit-1) ---');
91
- // Rows that arrive ONLY via bm25/graph must be hydrated by getById (the path
92
- // that was classification-blind in commit-1, now backstopped by the post-filter).
93
- const byId = {
94
- 'bm25-pub': mem('bm25-pub', 'public'),
95
- 'bm25-restr': mem('bm25-restr', 'restricted'),
96
- 'graph-conf': mem('graph-conf', 'confidential'),
97
- };
98
- const getByIdCalls = [];
92
+ // Fixture rows for Section 1b's provider stub (getById is defined there for
93
+ // interface completeness; nothing on the live path calls it anymore).
94
+ const byId = {};
99
95
  // FIDELITY NOTE (TD-885): this fake emits over-tier rows ONLY from the retrieval
100
- // paths searchMemoriesV2 dispatches today — search (semantic), bm25Search,
101
- // graphSearch, and the getById hydration of bm25/graph-only hits. The "0 over-tier
96
+ // paths searchMemoriesV2 dispatches today — search (semantic). The "0 over-tier
102
97
  // rows across every path" assertion is only as complete as this fixture. If a new
103
98
  // retrieval strategy is added to searchMemoriesV2, emit an over-tier row for it
104
99
  // here too (see the matching note at retrieval.ts step 3) — else this guard passes
105
100
  // blind to the new path.
106
101
  const fakeProvider = {
107
102
  async search() {
108
- return [searchRow('sem-int', 'internal'), searchRow('sem-conf', 'confidential')];
109
- },
110
- async bm25Search() {
111
103
  return [
112
- { id: 'bm25-pub', content: 'content-bm25-pub', bm25Score: 1 },
113
- { id: 'bm25-restr', content: 'content-bm25-restr', bm25Score: 1 },
104
+ searchRow('sem-int', 'internal'),
105
+ searchRow('sem-pub', 'public'),
106
+ searchRow('sem-conf', 'confidential'),
107
+ searchRow('sem-restr', 'restricted'),
114
108
  ];
115
109
  },
116
- async graphSearch() {
117
- return [{ id: 'graph-conf', content: 'content-graph-conf', graphScore: 1, edgeType: 'related', depth: 1 }];
118
- },
119
- async temporalSearch() {
120
- return [];
121
- },
122
- async getById(id) {
123
- getByIdCalls.push(id);
124
- return byId[id] ?? null;
125
- },
126
110
  async bumpReturned() {
127
111
  /* no-op */
128
112
  },
@@ -136,8 +120,6 @@ const fakeProvider = {
136
120
  try {
137
121
  results = await searchMemoriesV2('classification regression probe', {
138
122
  accessLevel: 'exploration',
139
- strategies: ['semantic', 'bm25', 'graph'], // force all 3 (skip detectStrategies)
140
- entityIds: ['seed-1'], // non-empty → graph seeds present + skips findEntitiesInQuery (no network)
141
123
  limit: 10,
142
124
  });
143
125
  }
@@ -147,14 +129,10 @@ const fakeProvider = {
147
129
  const ids = results.map((r) => r.id);
148
130
  const overTier = results.filter((r) => r.classification === 'confidential' || r.classification === 'restricted');
149
131
  assert('live path returns ZERO over-tier rows at exploration (the leak both fixes closed)', overTier.length === 0);
150
- assert('in-tier internal row (semantic) survives', ids.includes('sem-int'));
151
- assert('in-tier public row (bm25, getById-hydrated) survives', ids.includes('bm25-pub'));
152
- assert('confidential semantic row dropped', !ids.includes('sem-conf'));
153
- assert('restricted bm25 row dropped (its getById hydration was classification-blind)', !ids.includes('bm25-restr'));
154
- assert('confidential graph row dropped', !ids.includes('graph-conf'));
155
- // Prove the blind getById hydration path (commit-1's leak surface) was ACTUALLY
156
- // exercised — otherwise the test could pass without touching the bug class.
157
- assert('getById hydration ran for bm25/graph-only hits (commit-1 leak path exercised)', getByIdCalls.length >= 2);
132
+ assert('in-tier internal row survives', ids.includes('sem-int'));
133
+ assert('in-tier public row survives', ids.includes('sem-pub'));
134
+ assert('confidential row dropped at step 6.5 (backstop behind the DB filter)', !ids.includes('sem-conf'));
135
+ assert('restricted row dropped at step 6.5 (backstop behind the DB filter)', !ids.includes('sem-restr'));
158
136
  assert('exactly the two in-tier rows survive', results.length === 2);
159
137
  }
160
138
  // ===========================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"classification-enforcement.integration.test.js","sourceRoot":"","sources":["../../src/lib/classification-enforcement.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classification-enforcement.integration.test.js","sourceRoot":"","sources":["../../src/lib/classification-enforcement.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  /**
2
- * Multi-Strategy Retrieval + RRF Fusion
2
+ * Retrieval — semantic search + classification ceiling + exact-ID recall.
3
3
  *
4
- * SearchOrchestrator for Memory Engine v2.
5
- * Combines semantic, BM25, temporal, and graph search via
6
- * Reciprocal Rank Fusion. Replaces single-strategy semantic search.
4
+ * SearchOrchestrator for Memory Engine v2. Semantic is the ONLY strategy:
5
+ * the bm25/temporal/graph fusion legs (TD-158/159/160) were dead in prod for
6
+ * months (42P01 see TD-894) and were torn down in TD-906 Slice C. The one
7
+ * proven BM25 upside — exact-ID/acronym recall — was reclaimed semantically
8
+ * in TD-906 Slice B (step 6.7 below). RRF scoring is retained as the ranking
9
+ * contract (rank-monotonic over the single strategy).
7
10
  */
8
- import type { VectorDBProvider, MemorySearchResult, SearchOptions, MemoryClassification, MemoryAccessLevel } from '../vectordb/types.js';
9
- export type SearchStrategy = 'semantic' | 'bm25' | 'temporal' | 'graph';
11
+ import type { MemorySearchResult, SearchOptions, MemoryClassification, MemoryAccessLevel } from '../vectordb/types.js';
12
+ export type SearchStrategy = 'semantic';
10
13
  export interface StrategyResult {
11
14
  strategy: string;
12
15
  items: {
@@ -20,17 +23,7 @@ export interface FusedItem {
20
23
  normalizedScore: number;
21
24
  strategies: string[];
22
25
  }
23
- export interface DetectedStrategies {
24
- strategies: SearchStrategy[];
25
- temporalRange?: {
26
- start: Date;
27
- end: Date;
28
- };
29
- graphSeedIds?: string[];
30
- }
31
26
  export interface SearchV2Options extends SearchOptions {
32
- entityIds?: string[];
33
- strategies?: SearchStrategy[];
34
27
  rrfK?: number;
35
28
  }
36
29
  /**
@@ -47,12 +40,13 @@ export declare function reciprocalRankFusion(strategyResults: StrategyResult[],
47
40
  /**
48
41
  * Drop any result whose classification exceeds the ceiling for the caller.
49
42
  *
50
- * TD-810: of the 4 retrieval strategies fused in searchMemoriesV2, only
51
- * `semantic` threads accessLevel to the DB (search_memories has
52
- * p_max_classification). bm25/temporal/graph and the getById hydration of
53
- * BM25/graph-only hits are classification-BLIND. So a confidential/restricted
54
- * row surfaced by any non-semantic strategy leaks regardless of accessLevel.
55
- * This is the post-filter that closes that gap at the result boundary.
43
+ * TD-810 origin: the (since torn-down, TD-906 Slice C) bm25/temporal/graph
44
+ * legs and their getById hydration were classification-BLIND, so this
45
+ * post-filter closed that leak at the result boundary. It is RETAINED as the
46
+ * defense-in-depth backstop on the live path: the semantic RPC already
47
+ * DB-filters on p_max_classification, but step 6.5 re-enforces the ceiling at
48
+ * the boundary and step 6.7 (exact-ID augmentation) depends on it to never
49
+ * widen the caller's tier (integration-test Sections 1 + 1b pin both).
56
50
  *
57
51
  * FAIL-SAFE: when neither maxClassification nor accessLevel is provided there is
58
52
  * no ceiling, so the input is returned UNCHANGED (byte-identical to pre-TD-810).
@@ -132,50 +126,14 @@ export declare function appendExactIdMatches<T extends {
132
126
  id: string;
133
127
  }>(head: readonly T[], matches: readonly T[], topN: number): T[];
134
128
  /**
135
- * Detect which search strategies should be activated for a query.
136
- *
137
- * TD-894 Path B (Sean-approved, Granola "Ultracode response 2" 2026-06-22:
138
- * "Let's do infrastructure… let's do Path B. I trust your guidance… there's a
139
- * ton of bloat in here"): the auto-detected default is now SEMANTIC-ONLY.
140
- *
141
- * Why: `bm25_search`/`temporal_search`/`graph_search` all carry `search_path=''`
142
- * with unqualified table refs → every live call throws 42P01 (swallowed to []),
143
- * so BM25/temporal/graph fusion has been a production no-op for months while
144
- * still paying per-search dead RPC round-trips. The recall A/B on a *repaired*
145
- * BM25 also showed equal-weight RRF evicting Sean's curated steering memories on
146
- * conceptual queries (q08), so re-enabling as-is would regress recall. Per Path B
147
- * we stop invoking the dead legs by default and reclaim the 21 MB of GIN indexes
148
- * (migration 021); TD-587 (the never-ran hybrid) is superseded.
149
- *
150
- * The bm25/temporal/graph legs in searchMemoriesV2 remain reachable via an
151
- * explicit `options.strategies` override (preserves the TD-810/885 classification
152
- * regression test + any deliberate caller); they are simply no longer auto-on.
153
- * `entityIds`/`temporalRange` are still returned so an override caller can drive
154
- * graph/temporal, but they no longer flip a strategy on by themselves.
155
- */
156
- export declare function detectStrategies(query: string, entityIds?: string[]): DetectedStrategies;
157
- /**
158
- * Parse temporal references in a query to a date range.
159
- * Falls back to 30-day lookback for ambiguous patterns.
160
- */
161
- export declare function parseTemporalRange(query: string): {
162
- start: Date;
163
- end: Date;
164
- };
165
- /**
166
- * Find known entities mentioned in a search query.
167
- * Tokenizes the query, filters stopwords, looks up against memory_entities.
168
- * Returns entity IDs for graph search activation.
169
- */
170
- export declare function findEntitiesInQuery(query: string, provider: VectorDBProvider): Promise<string[]>;
171
- /**
172
- * Multi-strategy search with RRF fusion.
129
+ * Semantic search with RRF-shaped scoring.
173
130
  *
174
- * Default path is SEMANTIC-ONLY as of TD-894 Path B (see detectStrategies): the
175
- * bm25/temporal/graph legs are dead in prod (42P01) and re-enabling as-is
176
- * regresses curated-memory recall, so they no longer auto-activate. They remain
177
- * reachable and RRF-fused via an explicit `options.strategies` override,
178
- * which keeps the TD-810/885 classification post-filter exercised end-to-end.
179
- * Returns MemorySearchResult[] for backward compatibility.
131
+ * SEMANTIC-ONLY: TD-894 Path B stopped auto-invoking the dead bm25/temporal/
132
+ * graph legs (42P01 in prod for months; re-enabling regressed curated-memory
133
+ * recall); TD-906 Slice C then removed the legs, their `options.strategies`
134
+ * override, and the getById hydration of non-semantic hits entirely. The one
135
+ * proven BM25 upside — exact-ID/acronym recall lives on semantically at
136
+ * step 6.7 (TD-906 Slice B). Returns MemorySearchResult[] for backward
137
+ * compatibility.
180
138
  */
181
139
  export declare function searchMemoriesV2(query: string, options?: SearchV2Options): Promise<MemorySearchResult[]>;