@maadb/core 0.7.18 → 0.8.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.
- package/README.md +17 -3
- package/dist/backend/adapter.d.ts +20 -1
- package/dist/backend/adapter.d.ts.map +1 -1
- package/dist/backend/sqlite/index.d.ts +24 -1
- package/dist/backend/sqlite/index.d.ts.map +1 -1
- package/dist/backend/sqlite/index.js +96 -8
- package/dist/backend/sqlite/index.js.map +1 -1
- package/dist/backend/sqlite/schema.d.ts +1 -1
- package/dist/backend/sqlite/schema.d.ts.map +1 -1
- package/dist/backend/sqlite/schema.js +6 -1
- package/dist/backend/sqlite/schema.js.map +1 -1
- package/dist/backend/sqlite/semantic-store.d.ts +51 -0
- package/dist/backend/sqlite/semantic-store.d.ts.map +1 -0
- package/dist/backend/sqlite/semantic-store.js +284 -0
- package/dist/backend/sqlite/semantic-store.js.map +1 -0
- package/dist/cli/commands/maintain.d.ts.map +1 -1
- package/dist/cli/commands/maintain.js +18 -2
- package/dist/cli/commands/maintain.js.map +1 -1
- package/dist/cli/commands/read.d.ts +1 -0
- package/dist/cli/commands/read.d.ts.map +1 -1
- package/dist/cli/commands/read.js +52 -0
- package/dist/cli/commands/read.js.map +1 -1
- package/dist/cli/index.js +6 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/engine/context.d.ts +12 -0
- package/dist/engine/context.d.ts.map +1 -1
- package/dist/engine/context.js.map +1 -1
- package/dist/engine/helpers.d.ts +11 -1
- package/dist/engine/helpers.d.ts.map +1 -1
- package/dist/engine/helpers.js +20 -7
- package/dist/engine/helpers.js.map +1 -1
- package/dist/engine/index.d.ts +40 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +115 -9
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/indexing.d.ts +3 -1
- package/dist/engine/indexing.d.ts.map +1 -1
- package/dist/engine/indexing.js +208 -30
- package/dist/engine/indexing.js.map +1 -1
- package/dist/engine/reads.d.ts.map +1 -1
- package/dist/engine/reads.js +5 -2
- package/dist/engine/reads.js.map +1 -1
- package/dist/engine/semantic/config.d.ts +23 -0
- package/dist/engine/semantic/config.d.ts.map +1 -0
- package/dist/engine/semantic/config.js +41 -0
- package/dist/engine/semantic/config.js.map +1 -0
- package/dist/engine/semantic/indexer.d.ts +21 -0
- package/dist/engine/semantic/indexer.d.ts.map +1 -0
- package/dist/engine/semantic/indexer.js +91 -0
- package/dist/engine/semantic/indexer.js.map +1 -0
- package/dist/engine/semantic/provider.d.ts +10 -0
- package/dist/engine/semantic/provider.d.ts.map +1 -0
- package/dist/engine/semantic/provider.js +52 -0
- package/dist/engine/semantic/provider.js.map +1 -0
- package/dist/engine/semantic/providers/fake.d.ts +9 -0
- package/dist/engine/semantic/providers/fake.d.ts.map +1 -0
- package/dist/engine/semantic/providers/fake.js +54 -0
- package/dist/engine/semantic/providers/fake.js.map +1 -0
- package/dist/engine/semantic/providers/openai.d.ts +23 -0
- package/dist/engine/semantic/providers/openai.d.ts.map +1 -0
- package/dist/engine/semantic/providers/openai.js +103 -0
- package/dist/engine/semantic/providers/openai.js.map +1 -0
- package/dist/engine/semantic/rrf.d.ts +9 -0
- package/dist/engine/semantic/rrf.d.ts.map +1 -0
- package/dist/engine/semantic/rrf.js +29 -0
- package/dist/engine/semantic/rrf.js.map +1 -0
- package/dist/engine/semantic/search.d.ts +6 -0
- package/dist/engine/semantic/search.d.ts.map +1 -0
- package/dist/engine/semantic/search.js +202 -0
- package/dist/engine/semantic/search.js.map +1 -0
- package/dist/engine/semantic/types.d.ts +138 -0
- package/dist/engine/semantic/types.d.ts.map +1 -0
- package/dist/engine/semantic/types.js +7 -0
- package/dist/engine/semantic/types.js.map +1 -0
- package/dist/engine/types.d.ts +20 -0
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/engine/writes.d.ts.map +1 -1
- package/dist/engine/writes.js +5 -0
- package/dist/engine/writes.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/mcp/kinds.d.ts.map +1 -1
- package/dist/mcp/kinds.js +1 -0
- package/dist/mcp/kinds.js.map +1 -1
- package/dist/mcp/roles.js +1 -1
- package/dist/mcp/roles.js.map +1 -1
- package/dist/mcp/tools/maintain.d.ts.map +1 -1
- package/dist/mcp/tools/maintain.js +21 -4
- package/dist/mcp/tools/maintain.js.map +1 -1
- package/dist/mcp/tools/read.d.ts.map +1 -1
- package/dist/mcp/tools/read.js +35 -1
- package/dist/mcp/tools/read.js.map +1 -1
- package/dist/parser/index.d.ts +14 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +18 -0
- package/dist/parser/index.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// OpenAI embedding provider (0.8.0) — a thin POST /v1/embeddings client over the
|
|
3
|
+
// built-in fetch (no SDK dep). Marginal-cost provider: if a deployment already
|
|
4
|
+
// has an OpenAI key wired, embeddings reuse the same key/base. The engine never
|
|
5
|
+
// stores the key beyond this provider closure.
|
|
6
|
+
// ============================================================================
|
|
7
|
+
const DEFAULT_BASE_URL = 'https://api.openai.com';
|
|
8
|
+
// Native output dims for the common models — used when no explicit dim is set.
|
|
9
|
+
// text-embedding-3-* additionally support server-side truncation via `dimensions`.
|
|
10
|
+
const MODEL_DIMS = {
|
|
11
|
+
'text-embedding-3-small': 1536,
|
|
12
|
+
'text-embedding-3-large': 3072,
|
|
13
|
+
'text-embedding-ada-002': 1536,
|
|
14
|
+
};
|
|
15
|
+
export class OpenAiEmbeddingProvider {
|
|
16
|
+
id = 'openai';
|
|
17
|
+
model;
|
|
18
|
+
dim;
|
|
19
|
+
apiKey;
|
|
20
|
+
url;
|
|
21
|
+
sendDimensions;
|
|
22
|
+
fetchImpl;
|
|
23
|
+
constructor(opts) {
|
|
24
|
+
if (!opts.apiKey)
|
|
25
|
+
throw new Error('OpenAI embedding provider requires an API key (MAAD_OPENAI_API_KEY)');
|
|
26
|
+
this.apiKey = opts.apiKey;
|
|
27
|
+
this.model = opts.model;
|
|
28
|
+
const native = MODEL_DIMS[opts.model];
|
|
29
|
+
const resolved = opts.dim ?? native;
|
|
30
|
+
if (resolved === undefined) {
|
|
31
|
+
throw new Error(`Cannot determine embedding dim for OpenAI model "${opts.model}". ` +
|
|
32
|
+
`Set MAAD_EMBED_DIM explicitly.`);
|
|
33
|
+
}
|
|
34
|
+
// Only text-embedding-3-* support server-side dimension truncation.
|
|
35
|
+
const supportsTruncation = /^text-embedding-3-/.test(opts.model);
|
|
36
|
+
if (opts.dim !== undefined && native !== undefined) {
|
|
37
|
+
if (opts.dim > native) {
|
|
38
|
+
throw new Error(`MAAD_EMBED_DIM=${opts.dim} exceeds the native dim ${native} for "${opts.model}"; ` +
|
|
39
|
+
`OpenAI embeddings can be truncated below native but never expanded.`);
|
|
40
|
+
}
|
|
41
|
+
if (opts.dim < native && !supportsTruncation) {
|
|
42
|
+
throw new Error(`Model "${opts.model}" does not support dimension truncation; ` +
|
|
43
|
+
`set MAAD_EMBED_DIM=${native} or omit it (only text-embedding-3-* can truncate).`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
this.dim = resolved;
|
|
47
|
+
this.sendDimensions = supportsTruncation && opts.dim !== undefined && native !== undefined && opts.dim < native;
|
|
48
|
+
const base = (opts.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, '');
|
|
49
|
+
this.url = `${base}/v1/embeddings`;
|
|
50
|
+
this.fetchImpl = opts.fetchImpl ?? fetch;
|
|
51
|
+
}
|
|
52
|
+
async embed(texts, _kind) {
|
|
53
|
+
if (texts.length === 0)
|
|
54
|
+
return [];
|
|
55
|
+
const body = {
|
|
56
|
+
model: this.model,
|
|
57
|
+
input: texts,
|
|
58
|
+
encoding_format: 'float',
|
|
59
|
+
};
|
|
60
|
+
if (this.sendDimensions)
|
|
61
|
+
body['dimensions'] = this.dim;
|
|
62
|
+
const res = await this.fetchImpl(this.url, {
|
|
63
|
+
method: 'POST',
|
|
64
|
+
headers: {
|
|
65
|
+
'authorization': `Bearer ${this.apiKey}`,
|
|
66
|
+
'content-type': 'application/json',
|
|
67
|
+
},
|
|
68
|
+
body: JSON.stringify(body),
|
|
69
|
+
});
|
|
70
|
+
if (!res.ok) {
|
|
71
|
+
const detail = await res.text().catch(() => '');
|
|
72
|
+
throw new Error(`OpenAI embeddings request failed (${res.status}): ${detail.slice(0, 300)}`);
|
|
73
|
+
}
|
|
74
|
+
const json = (await res.json());
|
|
75
|
+
if (!json.data || json.data.length !== texts.length) {
|
|
76
|
+
throw new Error(`OpenAI embeddings returned ${json.data?.length ?? 0} vectors for ${texts.length} inputs`);
|
|
77
|
+
}
|
|
78
|
+
// Preserve input order regardless of response ordering. Validate each index
|
|
79
|
+
// (integer, in range, unique) and the vector width before use: an
|
|
80
|
+
// OpenAI-compatible endpoint (custom base URL) returning out-of-range or
|
|
81
|
+
// duplicate indices would otherwise leave holes in `out` that the worker's
|
|
82
|
+
// vectors[i]! trips over — failing and retrying the batch forever. A width
|
|
83
|
+
// mismatch would otherwise only surface as a sqlite-vec insert failure.
|
|
84
|
+
const out = new Array(texts.length);
|
|
85
|
+
const seen = new Set();
|
|
86
|
+
for (const item of json.data) {
|
|
87
|
+
if (!Number.isInteger(item.index) || item.index < 0 || item.index >= texts.length) {
|
|
88
|
+
throw new Error(`OpenAI embeddings returned an out-of-range index ${item.index} for ${texts.length} inputs.`);
|
|
89
|
+
}
|
|
90
|
+
if (seen.has(item.index)) {
|
|
91
|
+
throw new Error(`OpenAI embeddings returned a duplicate index ${item.index}.`);
|
|
92
|
+
}
|
|
93
|
+
seen.add(item.index);
|
|
94
|
+
if (item.embedding.length !== this.dim) {
|
|
95
|
+
throw new Error(`OpenAI returned a ${item.embedding.length}-dim vector but the provider is configured for ${this.dim} ` +
|
|
96
|
+
`(model "${this.model}"). Check MAAD_EMBED_DIM / MAAD_EMBED_MODEL.`);
|
|
97
|
+
}
|
|
98
|
+
out[item.index] = Float32Array.from(item.embedding);
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/engine/semantic/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Default RRF constant. 60 is the value from the original RRF paper; larger K
|
|
2
|
+
* flattens the contribution of top ranks (less aggressive). */
|
|
3
|
+
export declare const DEFAULT_RRF_K = 60;
|
|
4
|
+
/**
|
|
5
|
+
* Fuse ranked lists of opaque string keys. Input lists are in rank order (index
|
|
6
|
+
* 0 = best). Returns a key→score map; higher score = more relevant.
|
|
7
|
+
*/
|
|
8
|
+
export declare function rrfFuse(lists: string[][], k?: number): Map<string, number>;
|
|
9
|
+
//# sourceMappingURL=rrf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rrf.d.ts","sourceRoot":"","sources":["../../../src/engine/semantic/rrf.ts"],"names":[],"mappings":"AAWA;gEACgE;AAChE,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAE,MAAsB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Reciprocal Rank Fusion (0.8.0)
|
|
3
|
+
// Merge N independently-ranked lists into one score map. RRF is rank-based and
|
|
4
|
+
// scale-free — exactly why the engine fuses here rather than handing the agent
|
|
5
|
+
// two incomparable score columns (BM25 vs cosine distance). Each item's score
|
|
6
|
+
// is Σ over the lists it appears in of 1/(K + rank), rank 1-based.
|
|
7
|
+
//
|
|
8
|
+
// Used for hybrid (two legs). Called with a single list it degrades to a clean
|
|
9
|
+
// rank-based score, so exact/semantic single-leg paths reuse the same merge.
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/** Default RRF constant. 60 is the value from the original RRF paper; larger K
|
|
12
|
+
* flattens the contribution of top ranks (less aggressive). */
|
|
13
|
+
export const DEFAULT_RRF_K = 60;
|
|
14
|
+
/**
|
|
15
|
+
* Fuse ranked lists of opaque string keys. Input lists are in rank order (index
|
|
16
|
+
* 0 = best). Returns a key→score map; higher score = more relevant.
|
|
17
|
+
*/
|
|
18
|
+
export function rrfFuse(lists, k = DEFAULT_RRF_K) {
|
|
19
|
+
const scores = new Map();
|
|
20
|
+
for (const list of lists) {
|
|
21
|
+
for (let i = 0; i < list.length; i++) {
|
|
22
|
+
const key = list[i];
|
|
23
|
+
const contribution = 1 / (k + i + 1);
|
|
24
|
+
scores.set(key, (scores.get(key) ?? 0) + contribution);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return scores;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=rrf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rrf.js","sourceRoot":"","sources":["../../../src/engine/semantic/rrf.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,mEAAmE;AACnE,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAE/E;gEACgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAiB,EAAE,IAAY,aAAa;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACrB,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Result } from '../../errors.js';
|
|
2
|
+
import type { EngineContext } from '../context.js';
|
|
3
|
+
import type { SemanticSearchQuery, SemanticSearchResult, SearchMode } from './types.js';
|
|
4
|
+
export declare function isValidMode(mode: string): mode is SearchMode;
|
|
5
|
+
export declare function semanticSearch(ctx: EngineContext, query: SemanticSearchQuery): Promise<Result<SemanticSearchResult>>;
|
|
6
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/engine/semantic/search.ts"],"names":[],"mappings":"AAUA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EAEpB,UAAU,EACX,MAAM,YAAY,CAAC;AAapB,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,UAAU,CAE5D;AAcD,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAmKvC"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// maad_semantic_search (0.8.0) — the one retrieval primitive, with a 3-mode dial.
|
|
3
|
+
// exact — FTS5/BM25 only. Touches NO model (deterministic, no embedding).
|
|
4
|
+
// semantic — query-embed + vector KNN.
|
|
5
|
+
// hybrid — both legs, fused by RRF.
|
|
6
|
+
// Retrieval is block-level; results roll up to documents (best block per doc)
|
|
7
|
+
// with a snippet. The agent picks the mode → that choice lands in the audit
|
|
8
|
+
// trail, preserving the determinism contract (vs auto-fusing engines).
|
|
9
|
+
// ============================================================================
|
|
10
|
+
import { ok, singleErr } from '../../errors.js';
|
|
11
|
+
import { docId as toDocId, docType as toDocType } from '../../types.js';
|
|
12
|
+
import { logger } from '../logger.js';
|
|
13
|
+
import { expandFilters, MAX_QUERY_LIMIT } from '../reads.js';
|
|
14
|
+
import { rrfFuse, DEFAULT_RRF_K } from './rrf.js';
|
|
15
|
+
const DEFAULT_K = 10;
|
|
16
|
+
const MODES = ['exact', 'hybrid', 'semantic'];
|
|
17
|
+
const KEY_SEP = ' ';
|
|
18
|
+
const SNIPPET_MAX = 240;
|
|
19
|
+
// Scope allow-set cap. Larger than MAX_QUERY_LIMIT so most scoped searches are
|
|
20
|
+
// exact; if a scope matches more docs than this, results are flagged truncated.
|
|
21
|
+
const SCOPE_LIMIT = 2000;
|
|
22
|
+
// vec0 KNN has no in-SQL scope filter, so when a scope is active we over-fetch a
|
|
23
|
+
// wider block pool and filter in the rollup. Capped to bound work.
|
|
24
|
+
const VEC_SCOPE_POOL_CAP = 1000;
|
|
25
|
+
export function isValidMode(mode) {
|
|
26
|
+
return MODES.includes(mode);
|
|
27
|
+
}
|
|
28
|
+
function clampK(k) {
|
|
29
|
+
if (k === undefined || !Number.isFinite(k))
|
|
30
|
+
return DEFAULT_K;
|
|
31
|
+
return Math.max(1, Math.min(Math.trunc(k), MAX_QUERY_LIMIT));
|
|
32
|
+
}
|
|
33
|
+
function truncate(s, max) {
|
|
34
|
+
const flat = s.replace(/\s+/g, ' ').trim();
|
|
35
|
+
return flat.length <= max ? flat : flat.slice(0, max - 1).trimEnd() + '…';
|
|
36
|
+
}
|
|
37
|
+
export async function semanticSearch(ctx, query) {
|
|
38
|
+
if (!isValidMode(query.mode)) {
|
|
39
|
+
return singleErr('INVALID_MODE', `Invalid mode '${query.mode}'. Valid modes: ${MODES.join(', ')}.`);
|
|
40
|
+
}
|
|
41
|
+
const sem = ctx.backend.semantic();
|
|
42
|
+
if (!sem || !sem.isReady()) {
|
|
43
|
+
return singleErr('SEMANTIC_DISABLED', 'Semantic retrieval is not enabled on this engine. Set MAAD_SEMANTIC_ENABLE and run reindex --embeddings.');
|
|
44
|
+
}
|
|
45
|
+
const text = (query.query ?? '').trim();
|
|
46
|
+
const k = clampK(query.k);
|
|
47
|
+
const withSnippet = query.snippet ?? true;
|
|
48
|
+
if (text.length === 0)
|
|
49
|
+
return ok({ mode: query.mode, total: 0, results: [] });
|
|
50
|
+
// Scope allow-set (docType + filters). Pushed into the FTS leg as an in-SQL
|
|
51
|
+
// doc_id filter, and applied to the vec leg in the rollup. Soft-deleted docs
|
|
52
|
+
// are excluded later via getDocument (deleted=0), so they need no handling here.
|
|
53
|
+
let allowed = null;
|
|
54
|
+
let allowedList = null;
|
|
55
|
+
let degraded;
|
|
56
|
+
if (query.docType !== undefined || query.filters !== undefined) {
|
|
57
|
+
const expanded = expandFilters(query.filters);
|
|
58
|
+
if (!expanded.ok)
|
|
59
|
+
return expanded;
|
|
60
|
+
const dq = { filters: expanded.value, limit: SCOPE_LIMIT };
|
|
61
|
+
if (query.docType !== undefined)
|
|
62
|
+
dq.docType = toDocType(query.docType);
|
|
63
|
+
allowedList = ctx.backend.findDocuments(dq).map(m => m.docId);
|
|
64
|
+
allowed = new Set(allowedList);
|
|
65
|
+
// Scope itself exceeded the cap — older in-scope docs are not in the allow-set.
|
|
66
|
+
if (allowedList.length >= SCOPE_LIMIT)
|
|
67
|
+
degraded = 'scope_truncated';
|
|
68
|
+
// Nothing in scope → no results regardless of mode.
|
|
69
|
+
if (allowedList.length === 0)
|
|
70
|
+
return ok({ mode: query.mode, total: 0, results: [] });
|
|
71
|
+
}
|
|
72
|
+
const scoped = allowed !== null;
|
|
73
|
+
const basePool = Math.max(k * 5, 50);
|
|
74
|
+
const ftsPool = basePool;
|
|
75
|
+
// Over-fetch the vec leg under scope (no in-SQL filter) so in-scope blocks
|
|
76
|
+
// ranked below out-of-scope ones still enter the candidate set.
|
|
77
|
+
const vecPool = scoped ? Math.min(Math.max(basePool, allowed.size), VEC_SCOPE_POOL_CAP) : basePool;
|
|
78
|
+
const needVec = query.mode !== 'exact';
|
|
79
|
+
const vecAvailable = needVec && sem.isVecReady() && ctx.embeddingProvider !== undefined;
|
|
80
|
+
let useFts = query.mode === 'exact' || query.mode === 'hybrid';
|
|
81
|
+
let useVec = vecAvailable && (query.mode === 'semantic' || query.mode === 'hybrid');
|
|
82
|
+
if (needVec && !vecAvailable)
|
|
83
|
+
degraded = degraded ?? 'no_vector_provider';
|
|
84
|
+
if (query.mode === 'semantic' && !vecAvailable)
|
|
85
|
+
useFts = true; // lexical fallback
|
|
86
|
+
// Embed the query up front (only when a vector leg is needed) so exact mode
|
|
87
|
+
// provably never touches a model. A query-embed failure degrades to lexical.
|
|
88
|
+
let queryVec = null;
|
|
89
|
+
if (useVec) {
|
|
90
|
+
try {
|
|
91
|
+
const embedded = await ctx.embeddingProvider.embed([text], 'query');
|
|
92
|
+
queryVec = embedded[0] ?? null;
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
logger.bestEffort('engine', 'semantic_query_embed_failed', `query embedding failed; lexical fallback: ${e.message}`);
|
|
96
|
+
queryVec = null;
|
|
97
|
+
}
|
|
98
|
+
if (queryVec === null) {
|
|
99
|
+
useVec = false;
|
|
100
|
+
useFts = true;
|
|
101
|
+
degraded = 'embed_failed';
|
|
102
|
+
}
|
|
103
|
+
// A concurrent reload may have closed the backend during the embed await;
|
|
104
|
+
// semantic() returns null once the backend is closed.
|
|
105
|
+
if (ctx.backend.semantic() === null) {
|
|
106
|
+
return singleErr('SEMANTIC_DISABLED', 'Engine reloaded during semantic search; retry the request.');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const blockMeta = new Map();
|
|
110
|
+
const lists = [];
|
|
111
|
+
const pushFtsLeg = () => {
|
|
112
|
+
const ftsList = [];
|
|
113
|
+
for (const h of sem.searchFts(text, ftsPool, withSnippet, scoped ? allowedList : undefined)) {
|
|
114
|
+
const key = h.docId + KEY_SEP + h.blockOrd;
|
|
115
|
+
ftsList.push(key);
|
|
116
|
+
if (!blockMeta.has(key)) {
|
|
117
|
+
blockMeta.set(key, { docId: h.docId, blockOrd: h.blockOrd, heading: h.heading, snippet: h.snippet });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
lists.push(ftsList);
|
|
121
|
+
};
|
|
122
|
+
if (useFts)
|
|
123
|
+
pushFtsLeg();
|
|
124
|
+
let vecTruncated = false;
|
|
125
|
+
if (useVec && queryVec !== null) {
|
|
126
|
+
try {
|
|
127
|
+
const vecHits = sem.searchVec(queryVec, vecPool);
|
|
128
|
+
if (scoped && vecHits.length >= vecPool)
|
|
129
|
+
vecTruncated = true;
|
|
130
|
+
const vecList = [];
|
|
131
|
+
for (const h of vecHits) {
|
|
132
|
+
const key = h.docId + KEY_SEP + h.blockOrd;
|
|
133
|
+
vecList.push(key);
|
|
134
|
+
if (!blockMeta.has(key)) {
|
|
135
|
+
blockMeta.set(key, { docId: h.docId, blockOrd: h.blockOrd, heading: '', snippet: '' });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
lists.push(vecList);
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
// A vec-index error (e.g. dim mismatch / corruption) degrades to lexical
|
|
142
|
+
// instead of failing the whole search — matching the embed-failure path.
|
|
143
|
+
logger.bestEffort('engine', 'semantic_vec_search_failed', `vector search failed; lexical fallback: ${e.message}`);
|
|
144
|
+
degraded = 'vec_search_failed';
|
|
145
|
+
if (!useFts)
|
|
146
|
+
pushFtsLeg();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Fuse (RRF of one list = clean rank-based score; of two = hybrid fusion).
|
|
150
|
+
const scores = rrfFuse(lists, DEFAULT_RRF_K);
|
|
151
|
+
// Roll up blocks → documents: keep each doc's best-scoring block, apply scope.
|
|
152
|
+
const bestPerDoc = new Map();
|
|
153
|
+
for (const [key, score] of scores) {
|
|
154
|
+
const meta = blockMeta.get(key);
|
|
155
|
+
if (allowed && !allowed.has(meta.docId))
|
|
156
|
+
continue;
|
|
157
|
+
const cur = bestPerDoc.get(meta.docId);
|
|
158
|
+
if (cur === undefined || score > cur.score)
|
|
159
|
+
bestPerDoc.set(meta.docId, { key, score });
|
|
160
|
+
}
|
|
161
|
+
// Resolve documents (excludes soft-deleted/missing) and fill any missing
|
|
162
|
+
// heading/snippet. Heading is always backfilled (it is the maad_get navigation
|
|
163
|
+
// key); snippet only when requested.
|
|
164
|
+
const hits = [];
|
|
165
|
+
for (const [dId, best] of bestPerDoc) {
|
|
166
|
+
const doc = ctx.backend.getDocument(toDocId(dId));
|
|
167
|
+
if (!doc)
|
|
168
|
+
continue;
|
|
169
|
+
const meta = blockMeta.get(best.key);
|
|
170
|
+
let heading = meta.heading;
|
|
171
|
+
let snippet = meta.snippet;
|
|
172
|
+
if (heading.length === 0 || (withSnippet && snippet.length === 0)) {
|
|
173
|
+
const bt = sem.getBlockText(dId, meta.blockOrd);
|
|
174
|
+
if (bt) {
|
|
175
|
+
if (heading.length === 0)
|
|
176
|
+
heading = bt.heading;
|
|
177
|
+
if (withSnippet && snippet.length === 0)
|
|
178
|
+
snippet = truncate(bt.text, SNIPPET_MAX);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
hits.push({
|
|
182
|
+
docId: dId,
|
|
183
|
+
docType: doc.docType,
|
|
184
|
+
blockOrd: meta.blockOrd,
|
|
185
|
+
heading,
|
|
186
|
+
score: best.score,
|
|
187
|
+
snippet: withSnippet ? snippet : '',
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
hits.sort((a, b) => b.score - a.score || a.docId.localeCompare(b.docId));
|
|
191
|
+
const top = hits.slice(0, k);
|
|
192
|
+
// Signal a potentially-incomplete scoped result (vec leg saturated its pool).
|
|
193
|
+
if (degraded === undefined && vecTruncated && top.length < k)
|
|
194
|
+
degraded = 'scope_truncated';
|
|
195
|
+
return ok({
|
|
196
|
+
mode: query.mode,
|
|
197
|
+
total: top.length,
|
|
198
|
+
results: top,
|
|
199
|
+
...(degraded !== undefined ? { degraded } : {}),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/engine/semantic/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/** Whether a text is being embedded as a stored passage or a search query.
|
|
2
|
+
* Drives asymmetric model prefixes (e.g. nomic search_document:/search_query:). */
|
|
3
|
+
export type EmbedKind = 'document' | 'query';
|
|
4
|
+
/** The three retrieval modes of maad_semantic_search. `exact` never touches a model. */
|
|
5
|
+
export type SearchMode = 'exact' | 'hybrid' | 'semantic';
|
|
6
|
+
/**
|
|
7
|
+
* Pluggable embedding provider. A property of the index (vectors from different
|
|
8
|
+
* models live in incompatible spaces), selected at deploy time via DI or env.
|
|
9
|
+
* The engine never manages API keys — that stays app-tier / env.
|
|
10
|
+
*/
|
|
11
|
+
export interface EmbeddingProvider {
|
|
12
|
+
/** Stable provider id: 'openai' | 'local' | 'injected' | 'fake'. */
|
|
13
|
+
readonly id: string;
|
|
14
|
+
/** Model identifier, stamped into engine_meta as the vector-space fingerprint. */
|
|
15
|
+
readonly model: string;
|
|
16
|
+
/** Output vector dimension (table width). */
|
|
17
|
+
readonly dim: number;
|
|
18
|
+
/** Embed a batch. `kind` selects the asymmetric prefix where the model needs one. */
|
|
19
|
+
embed(texts: string[], kind: EmbedKind): Promise<Float32Array[]>;
|
|
20
|
+
}
|
|
21
|
+
/** One block's text snapshot fed into the index at materialize time. */
|
|
22
|
+
export interface BlockTextInput {
|
|
23
|
+
blockOrd: number;
|
|
24
|
+
blockId: string | null;
|
|
25
|
+
heading: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}
|
|
28
|
+
/** A queued block awaiting embedding. `qid` is the embed_queue rowid — an epoch
|
|
29
|
+
* token: if the block is re-queued (re-index) during the embed await, the new
|
|
30
|
+
* row gets a fresh rowid, so the worker's stale qid no longer matches and its
|
|
31
|
+
* vector write is skipped (prevents the stale-vector / dropped-re-embed race). */
|
|
32
|
+
export interface PendingEmbed {
|
|
33
|
+
qid: number;
|
|
34
|
+
docId: string;
|
|
35
|
+
blockOrd: number;
|
|
36
|
+
text: string;
|
|
37
|
+
}
|
|
38
|
+
/** A computed block embedding ready to upsert into the vector index. */
|
|
39
|
+
export interface BlockEmbedding {
|
|
40
|
+
qid: number;
|
|
41
|
+
docId: string;
|
|
42
|
+
blockOrd: number;
|
|
43
|
+
vector: Float32Array;
|
|
44
|
+
}
|
|
45
|
+
/** A vector-index KNN hit. */
|
|
46
|
+
export interface VecHit {
|
|
47
|
+
docId: string;
|
|
48
|
+
blockOrd: number;
|
|
49
|
+
distance: number;
|
|
50
|
+
}
|
|
51
|
+
/** A lexical (FTS5/BM25) hit. `score` is bm25 (more negative = more relevant). */
|
|
52
|
+
export interface FtsHit {
|
|
53
|
+
docId: string;
|
|
54
|
+
blockOrd: number;
|
|
55
|
+
heading: string;
|
|
56
|
+
score: number;
|
|
57
|
+
snippet: string;
|
|
58
|
+
}
|
|
59
|
+
/** Input to maad_semantic_search. */
|
|
60
|
+
export interface SemanticSearchQuery {
|
|
61
|
+
query: string;
|
|
62
|
+
mode: SearchMode;
|
|
63
|
+
/** Top results after block→doc rollup (default 10, clamped to MAX_QUERY_LIMIT). */
|
|
64
|
+
k?: number;
|
|
65
|
+
/** Scope filters (same shape as maad_query filters). */
|
|
66
|
+
filters?: Record<string, unknown>;
|
|
67
|
+
/** Scope to a single doc type. */
|
|
68
|
+
docType?: string;
|
|
69
|
+
/** Include snippets (default true). */
|
|
70
|
+
snippet?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/** One ranked result (a document, represented by its best-matching block). */
|
|
73
|
+
export interface SemanticHit {
|
|
74
|
+
docId: string;
|
|
75
|
+
docType: string;
|
|
76
|
+
/** Best-matching block ordinal (locate via maad_get with the heading). */
|
|
77
|
+
blockOrd: number;
|
|
78
|
+
heading: string;
|
|
79
|
+
/** Fused relevance score (RRF for hybrid; rank-based for single-leg). Higher = better. */
|
|
80
|
+
score: number;
|
|
81
|
+
snippet: string;
|
|
82
|
+
}
|
|
83
|
+
export interface SemanticSearchResult {
|
|
84
|
+
mode: SearchMode;
|
|
85
|
+
total: number;
|
|
86
|
+
results: SemanticHit[];
|
|
87
|
+
/** Set when the requested mode degraded (e.g. 'no_vector_provider' ⇒ lexical fallback). */
|
|
88
|
+
degraded?: string;
|
|
89
|
+
}
|
|
90
|
+
/** Embedding subsystem stats surfaced via maad_health.embeddings. */
|
|
91
|
+
export interface SemanticStats {
|
|
92
|
+
ready: boolean;
|
|
93
|
+
vecReady: boolean;
|
|
94
|
+
model: string | null;
|
|
95
|
+
dim: number | null;
|
|
96
|
+
queueDepth: number;
|
|
97
|
+
embeddedBlocks: number;
|
|
98
|
+
indexedBlocks: number;
|
|
99
|
+
failures: number;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Engine-facing surface of the per-block vector + lexical index. Implemented by
|
|
103
|
+
* the SQLite/sqlite-vec store; a backend without semantic support returns null
|
|
104
|
+
* from `MaadBackend.semantic()`. All methods are no-ops / empty when not ready.
|
|
105
|
+
*/
|
|
106
|
+
export interface SemanticIndex {
|
|
107
|
+
/** ext loaded + fts/queue tables present. */
|
|
108
|
+
isReady(): boolean;
|
|
109
|
+
/** vec_blocks table created (embedding dim known). */
|
|
110
|
+
isVecReady(): boolean;
|
|
111
|
+
/** Create/reconcile vec_blocks at `dim`; dim/model change drops vectors + re-enqueues. */
|
|
112
|
+
ensureVecTable(dim: number, model?: string | undefined): void;
|
|
113
|
+
/** Replace a doc's lexical rows + enqueue its blocks for embedding (in caller's txn). */
|
|
114
|
+
putBlockText(docId: string, blocks: BlockTextInput[]): void;
|
|
115
|
+
/** Remove all index rows for a doc (vec + fts + queue). */
|
|
116
|
+
deleteDoc(docId: string): void;
|
|
117
|
+
/** Re-enqueue every indexed block for (re-)embedding; returns count enqueued. */
|
|
118
|
+
enqueueAll(): number;
|
|
119
|
+
/** Pull up to `limit` pending blocks (with text) for the worker. */
|
|
120
|
+
takeEmbedBatch(limit: number): PendingEmbed[];
|
|
121
|
+
/** Upsert computed vectors and clear their queue entries (own short txn). */
|
|
122
|
+
putBlockEmbeddings(rows: BlockEmbedding[]): void;
|
|
123
|
+
/** Vector KNN. */
|
|
124
|
+
searchVec(queryVec: Float32Array, k: number): VecHit[];
|
|
125
|
+
/** Lexical BM25 search. `scopeDocIds` (when given) constrains the match to
|
|
126
|
+
* those docs in-SQL, so the top-k is computed within scope. */
|
|
127
|
+
searchFts(query: string, k: number, withSnippet: boolean, scopeDocIds?: readonly string[]): FtsHit[];
|
|
128
|
+
/** Resolve a block's heading + text (for semantic-only snippets). */
|
|
129
|
+
getBlockText(docId: string, blockOrd: number): {
|
|
130
|
+
heading: string;
|
|
131
|
+
text: string;
|
|
132
|
+
} | null;
|
|
133
|
+
/** Tally embedding failures (surfaced in stats). */
|
|
134
|
+
recordFailure(n: number): void;
|
|
135
|
+
/** Subsystem stats for maad_health. */
|
|
136
|
+
stats(): SemanticStats;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/semantic/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Semantic retrieval — shared types (0.8.0)
|
|
3
|
+
// The contract shared by the embedding provider, the sqlite-vec/FTS5 store,
|
|
4
|
+
// the async embed worker, and the maad_semantic_search read path.
|
|
5
|
+
// ============================================================================
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engine/semantic/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4CAA4C;AAC5C,4EAA4E;AAC5E,kEAAkE;AAClE,+EAA+E"}
|
package/dist/engine/types.d.ts
CHANGED
|
@@ -19,6 +19,21 @@ export interface IndexResult {
|
|
|
19
19
|
* from a DOC_TOO_LARGE skip (which lands in `errors[]` and indexes nothing).
|
|
20
20
|
*/
|
|
21
21
|
partial?: number;
|
|
22
|
+
/**
|
|
23
|
+
* 0.8.1 — count of index rows removed by the stale-row sweep because their
|
|
24
|
+
* file is gone from disk. Rows whose file still exists (outside any scanned
|
|
25
|
+
* registered path) are never pruned — they surface in `warnings` instead.
|
|
26
|
+
*/
|
|
27
|
+
pruned?: number;
|
|
28
|
+
/**
|
|
29
|
+
* 0.8.1 — non-fatal operator signals from the scan and sweep: a registered
|
|
30
|
+
* type path missing on disk while the index holds rows of that type, index
|
|
31
|
+
* rows kept because their file exists outside every scanned path (registry
|
|
32
|
+
* path mismatch), or a glob-scan fallback engaging. Every entry here means
|
|
33
|
+
* the index and the registry disagree about where documents live — silent
|
|
34
|
+
* before 0.8.1, when a path mismatch let the sweep prune valid docs.
|
|
35
|
+
*/
|
|
36
|
+
warnings?: string[];
|
|
22
37
|
}
|
|
23
38
|
/**
|
|
24
39
|
* 0.6.10 — Commit-durability signal attached to every single or bulk write
|
|
@@ -316,6 +331,11 @@ export interface SummaryResult {
|
|
|
316
331
|
warnings: {
|
|
317
332
|
brokenRefs: number;
|
|
318
333
|
validationErrors: number;
|
|
334
|
+
/**
|
|
335
|
+
* 0.8.1 — live rows flagged partial at index time: annotation-capped
|
|
336
|
+
* bodies, or over-byte-cap files serving their last indexed content.
|
|
337
|
+
*/
|
|
338
|
+
partialDocs: number;
|
|
319
339
|
};
|
|
320
340
|
emptyProject: boolean;
|
|
321
341
|
bootstrapHint: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"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"}
|