oh-my-second-brain 0.3.0 → 0.6.2
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/ACKNOWLEDGMENTS.md +8 -0
- package/CHANGELOG-assets.md +10 -0
- package/CHANGELOG-cli.md +11 -0
- package/CHANGELOG-kernel.md +31 -0
- package/CHANGELOG-mcp.md +12 -0
- package/CHANGELOG-vendors.md +6 -0
- package/CHANGELOG.md +35 -0
- package/assets/hermes-manifest.json +1 -1
- package/assets/skills/doctor/SKILL.md +2 -2
- package/assets/skills/search/SKILL.md +17 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.js +13 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/host-commands.js +2 -1
- package/dist/cli/host-commands.js.map +1 -1
- package/dist/cli/oms.d.ts +1 -1
- package/dist/cli/oms.js +26 -3
- package/dist/cli/oms.js.map +1 -1
- package/dist/cli/semantic-args.js +102 -3
- package/dist/cli/semantic-args.js.map +1 -1
- package/dist/cli/semantic.js +30 -6
- package/dist/cli/semantic.js.map +1 -1
- package/dist/cli/setup-command.d.ts +16 -0
- package/dist/cli/setup-command.js +50 -1
- package/dist/cli/setup-command.js.map +1 -1
- package/dist/kernel/contracts/index.d.ts +144 -0
- package/dist/kernel/contracts/index.js +401 -0
- package/dist/kernel/contracts/index.js.map +1 -0
- package/dist/kernel/conventions/note-exclude.d.ts +14 -0
- package/dist/kernel/conventions/note-exclude.js +95 -0
- package/dist/kernel/conventions/note-exclude.js.map +1 -0
- package/dist/kernel/engine/assemble.d.ts +22 -1
- package/dist/kernel/engine/assemble.js +202 -19
- package/dist/kernel/engine/assemble.js.map +1 -1
- package/dist/kernel/engine/axes/store.d.ts +90 -0
- package/dist/kernel/engine/axes/store.js +422 -0
- package/dist/kernel/engine/axes/store.js.map +1 -0
- package/dist/kernel/engine/conventions/vault-lint.d.ts +7 -2
- package/dist/kernel/engine/conventions/vault-lint.js +7 -21
- package/dist/kernel/engine/conventions/vault-lint.js.map +1 -1
- package/dist/kernel/engine/embed/identity.d.ts +14 -4
- package/dist/kernel/engine/embed/identity.js +33 -1
- package/dist/kernel/engine/embed/identity.js.map +1 -1
- package/dist/kernel/engine/embed/model.d.ts +134 -0
- package/dist/kernel/engine/embed/model.js +302 -0
- package/dist/kernel/engine/embed/model.js.map +1 -0
- package/dist/kernel/engine/embed/provider.d.ts +36 -5
- package/dist/kernel/engine/embed/provider.js +240 -103
- package/dist/kernel/engine/embed/provider.js.map +1 -1
- package/dist/kernel/engine/embed/store.d.ts +5 -1
- package/dist/kernel/engine/embed/store.js +136 -26
- package/dist/kernel/engine/embed/store.js.map +1 -1
- package/dist/kernel/engine/embed/sync.d.ts +53 -0
- package/dist/kernel/engine/embed/sync.js +489 -59
- package/dist/kernel/engine/embed/sync.js.map +1 -1
- package/dist/kernel/engine/graph/builder.d.ts +9 -5
- package/dist/kernel/engine/graph/builder.js +225 -82
- package/dist/kernel/engine/graph/builder.js.map +1 -1
- package/dist/kernel/engine/graph/node.d.ts +49 -1
- package/dist/kernel/engine/graph/node.js +205 -0
- package/dist/kernel/engine/graph/node.js.map +1 -1
- package/dist/kernel/engine/mcp/facade.d.ts +21 -1
- package/dist/kernel/engine/mcp/facade.js +523 -28
- package/dist/kernel/engine/mcp/facade.js.map +1 -1
- package/dist/kernel/engine/mcp/query-mapper.d.ts +27 -2
- package/dist/kernel/engine/mcp/query-mapper.js +157 -12
- package/dist/kernel/engine/mcp/query-mapper.js.map +1 -1
- package/dist/kernel/engine/mcp/types.d.ts +64 -2
- package/dist/kernel/engine/retrieval/dispatcher.d.ts +22 -0
- package/dist/kernel/engine/retrieval/dispatcher.js +84 -8
- package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -1
- package/dist/kernel/engine/retrieval/index.d.ts +2 -1
- package/dist/kernel/engine/retrieval/index.js +1 -1
- package/dist/kernel/engine/retrieval/index.js.map +1 -1
- package/dist/kernel/engine/retrieval/reranker.d.ts +82 -4
- package/dist/kernel/engine/retrieval/reranker.js +178 -3
- package/dist/kernel/engine/retrieval/reranker.js.map +1 -1
- package/dist/kernel/engine/retrieval/rrf.d.ts +10 -2
- package/dist/kernel/engine/retrieval/rrf.js +39 -16
- package/dist/kernel/engine/retrieval/rrf.js.map +1 -1
- package/dist/kernel/engine/tracer.d.ts +13 -0
- package/dist/kernel/engine/tracer.js +63 -6
- package/dist/kernel/engine/tracer.js.map +1 -1
- package/dist/kernel/graph/cache.js +174 -23
- package/dist/kernel/graph/cache.js.map +1 -1
- package/dist/kernel/index.d.ts +2 -0
- package/dist/kernel/index.js +2 -0
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/measurement/no-default-contract.d.ts +17 -0
- package/dist/kernel/measurement/no-default-contract.js +84 -0
- package/dist/kernel/measurement/no-default-contract.js.map +1 -0
- package/dist/kernel/searchbackend/engine-search-backend.js +93 -7
- package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -1
- package/dist/kernel/searchbackend/search-backend.d.ts +11 -1
- package/dist/kernel/searchbackend/search-backend.js +66 -5
- package/dist/kernel/searchbackend/search-backend.js.map +1 -1
- package/dist/kernel/semantic/semantic-engine.js +31 -5
- package/dist/kernel/semantic/semantic-engine.js.map +1 -1
- package/dist/kernel/semantic/semantic-retrieve-args.d.ts +19 -2
- package/dist/kernel/semantic/semantic-retrieve-args.js +81 -7
- package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -1
- package/dist/kernel/update/update.d.ts +7 -0
- package/dist/kernel/update/update.js +106 -8
- package/dist/kernel/update/update.js.map +1 -1
- package/dist/mcp/server.js +84 -34
- package/dist/mcp/server.js.map +1 -1
- package/package.json +3 -2
|
@@ -22,7 +22,12 @@ export interface EngineGraphNode {
|
|
|
22
22
|
concept: string | null;
|
|
23
23
|
/** First path segment (folder group) — mirrors builder.ts noteType(). */
|
|
24
24
|
folder: string;
|
|
25
|
-
/** Every frontmatter field coerced to a flat
|
|
25
|
+
/** Every frontmatter field coerced to a flat, typed scalar array. */
|
|
26
|
+
/**
|
|
27
|
+
* Typed scalar arrays at runtime. The declared string-array shape is retained
|
|
28
|
+
* for graph renderers; query code reads the values through `fieldValues` so
|
|
29
|
+
* number/boolean values are not coerced or discarded.
|
|
30
|
+
*/
|
|
26
31
|
axes: Record<string, string[]>;
|
|
27
32
|
/** Resolved vault-relative docPaths this note links out to via [[…]]. */
|
|
28
33
|
wikilinks: string[];
|
|
@@ -54,6 +59,49 @@ export interface NodeAxisFilters {
|
|
|
54
59
|
value?: string;
|
|
55
60
|
wikilink?: string;
|
|
56
61
|
}
|
|
62
|
+
/** Scalar value accepted by a public folder/field/link axis predicate. */
|
|
63
|
+
export type AxisScalar = string | number | boolean;
|
|
64
|
+
/** Flatten frontmatter values without erasing number/boolean semantics. */
|
|
65
|
+
export declare function toAxisScalars(value: unknown): AxisScalar[];
|
|
66
|
+
/** Optional typed field predicates used by date-range and multi-value tests. */
|
|
67
|
+
export interface AxisFieldPredicate {
|
|
68
|
+
readonly contains?: AxisScalar | readonly AxisScalar[];
|
|
69
|
+
readonly containsAll?: readonly AxisScalar[];
|
|
70
|
+
readonly in?: readonly AxisScalar[];
|
|
71
|
+
readonly between?: readonly [AxisScalar, AxisScalar];
|
|
72
|
+
readonly gte?: AxisScalar;
|
|
73
|
+
readonly gt?: AxisScalar;
|
|
74
|
+
readonly lte?: AxisScalar;
|
|
75
|
+
readonly lt?: AxisScalar;
|
|
76
|
+
readonly from?: AxisScalar;
|
|
77
|
+
readonly to?: AxisScalar;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Public query axes. Values in one axis are OR'ed; distinct field keys and
|
|
81
|
+
* the folder/field/link axes are AND'ed. `field` is a map so a caller can
|
|
82
|
+
* express e.g. `{ status: ["open", "blocked"], team: "platform" }`.
|
|
83
|
+
*/
|
|
84
|
+
export interface QueryAxes {
|
|
85
|
+
folder?: AxisScalar | readonly AxisScalar[];
|
|
86
|
+
field?: Readonly<Record<string, AxisScalar | readonly AxisScalar[] | AxisFieldPredicate>>;
|
|
87
|
+
link?: AxisScalar | readonly AxisScalar[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Validate and apply the public axis predicate algebra.
|
|
91
|
+
*
|
|
92
|
+
* This is intentionally separate from `filterNodesByAxis`: the latter is the
|
|
93
|
+
* legacy graph operation and still accepts its old singular property shape.
|
|
94
|
+
* Unknown public axes fail loudly instead of silently broadening a query.
|
|
95
|
+
*/
|
|
96
|
+
export declare function filterNodesByQueryAxes(nodes: readonly EngineGraphNode[], axes: QueryAxes): EngineGraphNode[];
|
|
97
|
+
export interface QueryFacet {
|
|
98
|
+
readonly axis: "folder" | "field" | "link";
|
|
99
|
+
readonly value: string;
|
|
100
|
+
readonly count: number;
|
|
101
|
+
readonly key?: string;
|
|
102
|
+
}
|
|
103
|
+
/** Count axis values over the already-filtered candidate set. */
|
|
104
|
+
export declare function queryFacets(nodes: readonly EngineGraphNode[]): QueryFacet[];
|
|
57
105
|
/**
|
|
58
106
|
* Return the nodes that satisfy every supplied axis filter (AND-intersection).
|
|
59
107
|
*
|
|
@@ -48,6 +48,211 @@ export function wikilinkStemMatch(link, target) {
|
|
|
48
48
|
};
|
|
49
49
|
return stem(link) === stem(target);
|
|
50
50
|
}
|
|
51
|
+
/** Flatten frontmatter values without erasing number/boolean semantics. */
|
|
52
|
+
export function toAxisScalars(value) {
|
|
53
|
+
if (Array.isArray(value))
|
|
54
|
+
return value.flatMap(toAxisScalars);
|
|
55
|
+
if (typeof value === "string")
|
|
56
|
+
return value.trim().length > 0 ? [value.trim()] : [];
|
|
57
|
+
if (typeof value === "number")
|
|
58
|
+
return Number.isFinite(value) ? [value] : [];
|
|
59
|
+
if (typeof value === "boolean")
|
|
60
|
+
return [value];
|
|
61
|
+
// YAML timestamp values can be Date instances. ISO strings retain date
|
|
62
|
+
// ordering for the typed range comparator while keeping the node cache JSON
|
|
63
|
+
// serialisable.
|
|
64
|
+
if (value instanceof Date && !Number.isNaN(value.getTime()))
|
|
65
|
+
return [value.toISOString()];
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
const PUBLIC_AXIS_NAMES = new Set(["folder", "field", "link"]);
|
|
69
|
+
function axisValues(value, axis) {
|
|
70
|
+
const values = value === undefined ? [] : Array.isArray(value) ? [...value] : [value];
|
|
71
|
+
if (!values.every((item) => typeof item === "string"
|
|
72
|
+
|| typeof item === "boolean"
|
|
73
|
+
|| (typeof item === "number" && Number.isFinite(item)))) {
|
|
74
|
+
throw new Error(`Axis "${axis}" values must be finite numbers, strings, or booleans.`);
|
|
75
|
+
}
|
|
76
|
+
return values
|
|
77
|
+
.map((item) => typeof item === "string" ? item.trim() : item)
|
|
78
|
+
.filter((item) => typeof item !== "string" || item.length > 0);
|
|
79
|
+
}
|
|
80
|
+
function fieldPredicate(value, key) {
|
|
81
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
82
|
+
return { equals: axisValues(value, `field.${key}`), contains: [], containsAll: [], range: {} };
|
|
83
|
+
}
|
|
84
|
+
const known = new Set(["contains", "containsAll", "in", "between", "gte", "gt", "lte", "lt", "from", "to"]);
|
|
85
|
+
for (const operator of Object.keys(value)) {
|
|
86
|
+
if (!known.has(operator))
|
|
87
|
+
throw new Error(`Unknown field predicate "${operator}" for "${key}".`);
|
|
88
|
+
}
|
|
89
|
+
const predicate = value;
|
|
90
|
+
return {
|
|
91
|
+
equals: axisValues(predicate.in, `field.${key}.in`),
|
|
92
|
+
contains: axisValues(predicate.contains, `field.${key}.contains`),
|
|
93
|
+
containsAll: axisValues(predicate.containsAll, `field.${key}.containsAll`),
|
|
94
|
+
range: predicate,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function fieldValues(node, key) {
|
|
98
|
+
const values = node.axes[key]
|
|
99
|
+
?? Object.entries(node.axes).find(([candidate]) => candidate.toLowerCase() === key.toLowerCase())?.[1]
|
|
100
|
+
?? [];
|
|
101
|
+
return values;
|
|
102
|
+
}
|
|
103
|
+
function comparable(value) {
|
|
104
|
+
if (typeof value === "number")
|
|
105
|
+
return { kind: "number", value };
|
|
106
|
+
if (typeof value === "boolean")
|
|
107
|
+
return { kind: "boolean", value };
|
|
108
|
+
const text = value.trim().toLocaleLowerCase();
|
|
109
|
+
// YAML dates are represented as strings by the node snapshot. Keep their
|
|
110
|
+
// date semantics for range predicates without coercing ordinary strings.
|
|
111
|
+
if (/^\d{4}-\d{2}-\d{2}(?:t.*)?$/u.test(text)) {
|
|
112
|
+
const timestamp = Date.parse(text);
|
|
113
|
+
if (!Number.isNaN(timestamp))
|
|
114
|
+
return { kind: "date", value: timestamp };
|
|
115
|
+
}
|
|
116
|
+
return { kind: "string", value: text };
|
|
117
|
+
}
|
|
118
|
+
function equalValue(left, right) {
|
|
119
|
+
const a = comparable(left);
|
|
120
|
+
const b = comparable(right);
|
|
121
|
+
return a.kind === b.kind && Object.is(a.value, b.value);
|
|
122
|
+
}
|
|
123
|
+
function compareValue(left, right) {
|
|
124
|
+
const a = comparable(left);
|
|
125
|
+
const b = comparable(right);
|
|
126
|
+
if (a.kind !== b.kind)
|
|
127
|
+
throw new Error("Typed axis comparison requires values of the same type.");
|
|
128
|
+
if (typeof a.value === "number" && typeof b.value === "number")
|
|
129
|
+
return a.value - b.value;
|
|
130
|
+
if (typeof a.value === "string" && typeof b.value === "string")
|
|
131
|
+
return a.value.localeCompare(b.value);
|
|
132
|
+
return a.value === b.value ? 0 : a.value ? 1 : -1;
|
|
133
|
+
}
|
|
134
|
+
function valueMatches(values, expected) {
|
|
135
|
+
return expected.some((item) => values.some((value) => equalValue(value, item)));
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Validate and apply the public axis predicate algebra.
|
|
139
|
+
*
|
|
140
|
+
* This is intentionally separate from `filterNodesByAxis`: the latter is the
|
|
141
|
+
* legacy graph operation and still accepts its old singular property shape.
|
|
142
|
+
* Unknown public axes fail loudly instead of silently broadening a query.
|
|
143
|
+
*/
|
|
144
|
+
export function filterNodesByQueryAxes(nodes, axes) {
|
|
145
|
+
if (axes === null || typeof axes !== "object" || Array.isArray(axes)) {
|
|
146
|
+
throw new Error("Query axes must be an object.");
|
|
147
|
+
}
|
|
148
|
+
for (const key of Object.keys(axes)) {
|
|
149
|
+
if (!PUBLIC_AXIS_NAMES.has(key))
|
|
150
|
+
throw new Error(`Unknown query axis "${key}". Expected folder, field, or link.`);
|
|
151
|
+
}
|
|
152
|
+
const folder = axisValues(axes.folder, "folder");
|
|
153
|
+
const link = axisValues(axes.link, "link");
|
|
154
|
+
if (axes.field !== undefined && (axes.field === null || typeof axes.field !== "object" || Array.isArray(axes.field))) {
|
|
155
|
+
throw new Error('Field axis must be an object mapping field names to values.');
|
|
156
|
+
}
|
|
157
|
+
const fields = Object.entries(axes.field ?? {}).map(([key, value]) => {
|
|
158
|
+
if (!key.trim())
|
|
159
|
+
throw new Error("Axis field names must not be empty.");
|
|
160
|
+
if (key.trim().toLocaleLowerCase() === "concept") {
|
|
161
|
+
throw new Error('Unknown query field axis "concept".');
|
|
162
|
+
}
|
|
163
|
+
return [key, fieldPredicate(value, key)];
|
|
164
|
+
});
|
|
165
|
+
return nodes.filter((node) => {
|
|
166
|
+
// Values in one axis are OR'ed.
|
|
167
|
+
if (folder.length > 0 && !valueMatches([node.folder], folder))
|
|
168
|
+
return false;
|
|
169
|
+
if (link.length > 0) {
|
|
170
|
+
const links = node.wikilinks.flatMap((target) => {
|
|
171
|
+
const stem = target.toLocaleLowerCase().replace(/\.md$/u, "");
|
|
172
|
+
const slash = stem.lastIndexOf("/");
|
|
173
|
+
return [slash >= 0 ? stem.slice(slash + 1) : stem];
|
|
174
|
+
});
|
|
175
|
+
if (!link.some((target) => {
|
|
176
|
+
if (typeof target !== "string")
|
|
177
|
+
return false;
|
|
178
|
+
const stem = target.toLocaleLowerCase().replace(/\.md$/u, "");
|
|
179
|
+
const slash = stem.lastIndexOf("/");
|
|
180
|
+
return links.includes(slash >= 0 ? stem.slice(slash + 1) : stem);
|
|
181
|
+
}))
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
// Different field keys are AND'ed; values for one key are OR'ed.
|
|
185
|
+
for (const [key, predicate] of fields) {
|
|
186
|
+
const values = fieldValues(node, key);
|
|
187
|
+
if (predicate.equals.length > 0 && !valueMatches(values, predicate.equals))
|
|
188
|
+
return false;
|
|
189
|
+
if (predicate.contains.length > 0 && !valueMatches(values, predicate.contains))
|
|
190
|
+
return false;
|
|
191
|
+
if (predicate.containsAll.length > 0 && !predicate.containsAll.every((item) => values.some((value) => equalValue(value, item))))
|
|
192
|
+
return false;
|
|
193
|
+
const range = predicate.range;
|
|
194
|
+
const lower = range.gte ?? range.gt ?? range.from;
|
|
195
|
+
const upper = range.lte ?? range.lt ?? range.to;
|
|
196
|
+
const between = range.between;
|
|
197
|
+
if (between !== undefined && (!Array.isArray(between) || between.length !== 2)) {
|
|
198
|
+
throw new Error(`Field predicate "between" for "${key}" requires two values.`);
|
|
199
|
+
}
|
|
200
|
+
if (lower !== undefined || upper !== undefined) {
|
|
201
|
+
const matchesRange = values.some((actual) => ((lower === undefined || (range.gt !== undefined ? compareValue(actual, lower) > 0 : compareValue(actual, lower) >= 0))
|
|
202
|
+
&& (upper === undefined || (range.lt !== undefined ? compareValue(actual, upper) < 0 : compareValue(actual, upper) <= 0))));
|
|
203
|
+
if (!matchesRange)
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
if (between !== undefined) {
|
|
207
|
+
if (!values.some((actual) => compareValue(actual, between[0]) >= 0 && compareValue(actual, between[1]) <= 0))
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
if (predicate.equals.length === 0
|
|
211
|
+
&& predicate.contains.length === 0
|
|
212
|
+
&& predicate.containsAll.length === 0
|
|
213
|
+
&& lower === undefined
|
|
214
|
+
&& upper === undefined
|
|
215
|
+
&& between === undefined) {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return true;
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/** Count axis values over the already-filtered candidate set. */
|
|
223
|
+
export function queryFacets(nodes) {
|
|
224
|
+
const counts = new Map();
|
|
225
|
+
const add = (axis, value, key) => {
|
|
226
|
+
const normalized = value.trim();
|
|
227
|
+
if (!normalized)
|
|
228
|
+
return;
|
|
229
|
+
const identity = `${axis}\u0000${key?.toLocaleLowerCase() ?? ""}\u0000${normalized.toLocaleLowerCase()}`;
|
|
230
|
+
const existing = counts.get(identity);
|
|
231
|
+
if (existing) {
|
|
232
|
+
existing.count++;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
counts.set(identity, { axis, value: normalized, ...(key !== undefined ? { key } : {}), count: 1 });
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
for (const node of nodes) {
|
|
239
|
+
add("folder", node.folder);
|
|
240
|
+
for (const [key, values] of Object.entries(node.axes)) {
|
|
241
|
+
// Concept remains an internal graph binding, not a public query axis.
|
|
242
|
+
if (key === "concept")
|
|
243
|
+
continue;
|
|
244
|
+
for (const value of new Set(values))
|
|
245
|
+
add("field", String(value), key);
|
|
246
|
+
}
|
|
247
|
+
for (const target of new Set(node.wikilinks))
|
|
248
|
+
add("link", target);
|
|
249
|
+
}
|
|
250
|
+
return [...counts.values()]
|
|
251
|
+
.sort((left, right) => left.axis.localeCompare(right.axis)
|
|
252
|
+
|| (left.key ?? "").localeCompare(right.key ?? "")
|
|
253
|
+
|| left.value.localeCompare(right.value))
|
|
254
|
+
.map((facet) => facet);
|
|
255
|
+
}
|
|
51
256
|
/**
|
|
52
257
|
* Return the nodes that satisfy every supplied axis filter (AND-intersection).
|
|
53
258
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/kernel/engine/graph/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/kernel/engine/graph/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import type { DispatcherDeps } from "../retrieval/dispatcher.js";
|
|
23
23
|
import type { Reranker } from "../retrieval/reranker.js";
|
|
24
|
+
import type { EngineStore } from "../embed/store.js";
|
|
25
|
+
import type { EmbeddingModelDescriptor } from "../embed/model.js";
|
|
24
26
|
import type { McpSemanticQueryOptions, McpSemanticQueryResult, McpSemanticEmbeddingSyncOptions, McpSemanticEmbeddingSyncResult, McpStatusOptions, McpSemanticProviderStatus, McpSemanticCollectionResult, McpSemanticContextResult, McpSemanticCleanupResult, McpGraphBuildOptions, McpGraphBuildResult, McpGraphStatusResult, McpAxisFilters, McpSemanticGetOptions, McpSemanticMultiGetOptions, McpSemanticDocumentResult } from "./types.js";
|
|
25
27
|
/**
|
|
26
28
|
* Engine-side adapter for the 10 MCP ops.
|
|
@@ -35,6 +37,7 @@ export declare class McpEngineAdapter {
|
|
|
35
37
|
private readonly reranker?;
|
|
36
38
|
/** Explicit assembly policy; read-only engines suppress this refresh. */
|
|
37
39
|
private readonly implicitLexicalSync;
|
|
40
|
+
private readonly persistLexicalSync;
|
|
38
41
|
/**
|
|
39
42
|
* @param deps - Injected backend dependencies (store + embed required).
|
|
40
43
|
* @param vaultPath - Absolute vault root, used by graph / sync / cleanup /
|
|
@@ -47,13 +50,30 @@ export declare class McpEngineAdapter {
|
|
|
47
50
|
constructor(deps: DispatcherDeps, vaultPath: string, config?: {
|
|
48
51
|
readonly embeddingProvider?: string;
|
|
49
52
|
readonly embeddingModel?: string;
|
|
53
|
+
readonly embeddingDescriptor?: EmbeddingModelDescriptor;
|
|
54
|
+
readonly embeddingDimensions?: number;
|
|
55
|
+
readonly embeddingContext?: number;
|
|
56
|
+
readonly embeddingContextLength?: number;
|
|
57
|
+
readonly embeddingContextTokens?: number;
|
|
58
|
+
readonly embeddingMrlDim?: number;
|
|
59
|
+
readonly embeddingNormalization?: string;
|
|
60
|
+
readonly embeddingPrefixScheme?: string;
|
|
61
|
+
readonly dbPath?: string;
|
|
62
|
+
readonly onStoreRebind?: (store: EngineStore) => void;
|
|
50
63
|
} | undefined, reranker?: Reranker | undefined,
|
|
51
64
|
/** Explicit assembly policy; read-only engines suppress this refresh. */
|
|
52
|
-
implicitLexicalSync?: boolean);
|
|
65
|
+
implicitLexicalSync?: boolean, persistLexicalSync?: boolean);
|
|
53
66
|
private graphCachePath;
|
|
54
67
|
private nodeCachePath;
|
|
55
68
|
/** Load the node index from cache, building it live on a cache miss. */
|
|
56
69
|
private loadOrBuildNodes;
|
|
70
|
+
/**
|
|
71
|
+
* Evaluate an overview/axis query directly from the read-only node index.
|
|
72
|
+
* This path is intentionally model-free and does not open the embedding
|
|
73
|
+
* store, so a query issued outside a vault or against an empty vault cannot
|
|
74
|
+
* create `.oms/` state as a side effect.
|
|
75
|
+
*/
|
|
76
|
+
private queryNodeAxes;
|
|
57
77
|
/**
|
|
58
78
|
* Execute a semantic query and return MCP-shaped results.
|
|
59
79
|
* Maps opts → TypedSubQuery[] → dispatch() → McpSemanticQueryResult.
|