@mmnto/totem 1.123.0 → 2.0.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 (66) hide show
  1. package/dist/artifacts/grounding.d.ts +27 -7
  2. package/dist/artifacts/grounding.d.ts.map +1 -1
  3. package/dist/artifacts/grounding.js +23 -5
  4. package/dist/artifacts/grounding.js.map +1 -1
  5. package/dist/artifacts/grounding.test.js +28 -0
  6. package/dist/artifacts/grounding.test.js.map +1 -1
  7. package/dist/artifacts/schema.d.ts +63 -18
  8. package/dist/artifacts/schema.d.ts.map +1 -1
  9. package/dist/artifacts/schema.js +13 -4
  10. package/dist/artifacts/schema.js.map +1 -1
  11. package/dist/config-schema.d.ts +70 -15
  12. package/dist/config-schema.d.ts.map +1 -1
  13. package/dist/config-schema.js +80 -14
  14. package/dist/config-schema.js.map +1 -1
  15. package/dist/config-schema.test.js +77 -1
  16. package/dist/config-schema.test.js.map +1 -1
  17. package/dist/index.d.ts +11 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +10 -5
  20. package/dist/index.js.map +1 -1
  21. package/dist/ingest/pipeline.d.ts +12 -0
  22. package/dist/ingest/pipeline.d.ts.map +1 -1
  23. package/dist/ingest/pipeline.js +5 -0
  24. package/dist/ingest/pipeline.js.map +1 -1
  25. package/dist/ingest/pipeline.test.js +9 -0
  26. package/dist/ingest/pipeline.test.js.map +1 -1
  27. package/dist/semantic-dedup.d.ts.map +1 -1
  28. package/dist/semantic-dedup.js +2 -5
  29. package/dist/semantic-dedup.js.map +1 -1
  30. package/dist/semantic-dedup.test.js +32 -1
  31. package/dist/semantic-dedup.test.js.map +1 -1
  32. package/dist/store/lance-search.d.ts +1 -1
  33. package/dist/store/lance-search.d.ts.map +1 -1
  34. package/dist/store/lance-search.js +89 -18
  35. package/dist/store/lance-search.js.map +1 -1
  36. package/dist/store/lance-search.test.js +207 -26
  37. package/dist/store/lance-search.test.js.map +1 -1
  38. package/dist/store/lance-store.d.ts.map +1 -1
  39. package/dist/store/lance-store.js +1 -1
  40. package/dist/store/lance-store.js.map +1 -1
  41. package/dist/store/lance-store.test.js +23 -0
  42. package/dist/store/lance-store.test.js.map +1 -1
  43. package/dist/store/relevance.d.ts +70 -0
  44. package/dist/store/relevance.d.ts.map +1 -0
  45. package/dist/store/relevance.js +115 -0
  46. package/dist/store/relevance.js.map +1 -0
  47. package/dist/store/relevance.sdk.test.d.ts +20 -0
  48. package/dist/store/relevance.sdk.test.d.ts.map +1 -0
  49. package/dist/store/relevance.sdk.test.js +145 -0
  50. package/dist/store/relevance.sdk.test.js.map +1 -0
  51. package/dist/store/relevance.test.d.ts +2 -0
  52. package/dist/store/relevance.test.d.ts.map +1 -0
  53. package/dist/store/relevance.test.js +192 -0
  54. package/dist/store/relevance.test.js.map +1 -0
  55. package/dist/store/search-lessons.d.ts +18 -0
  56. package/dist/store/search-lessons.d.ts.map +1 -0
  57. package/dist/store/search-lessons.js +18 -0
  58. package/dist/store/search-lessons.js.map +1 -0
  59. package/dist/store/search-lessons.test.d.ts +2 -0
  60. package/dist/store/search-lessons.test.d.ts.map +1 -0
  61. package/dist/store/search-lessons.test.js +48 -0
  62. package/dist/store/search-lessons.test.js.map +1 -0
  63. package/dist/types.d.ts +4 -2
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,192 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { TotemError } from '../errors.js';
3
+ import { assertDistanceMetric, DISTANCE_METRICS, isRelevanceInRange, OUT_OF_RANGE_CAUSE, relevanceFromDistance, VECTOR_DISTANCE_METRIC, } from './relevance.js';
4
+ // ─── The pinned map (mmnto-ai/totem#2738) ────────────────
5
+ //
6
+ // These numbers are the contract, not an implementation echo. `l2` is pinned to
7
+ // the MEASURED fact that LanceDB's `_distance` for `l2` is the SQUARED
8
+ // Euclidean distance (R1, 3/3 trials): a self-hit is 0, and the measured pair
9
+ // at cosine 0.845 came back as 0.3096 = |a-b|². On unit-norm vectors that puts
10
+ // `_distance` in [0, 4] and therefore relevance in [0.2, 1].
11
+ describe('relevanceFromDistance — l2', () => {
12
+ it('maps a self-hit (d = 0) to relevance 1', () => {
13
+ expect(relevanceFromDistance('l2', 0)).toBe(1);
14
+ });
15
+ it('maps the antipodal unit-vector bound (d = 4) to relevance 0.2', () => {
16
+ expect(relevanceFromDistance('l2', 4)).toBeCloseTo(0.2, 10);
17
+ });
18
+ it('maps the R1-measured pair (d = 0.3096, cosine 0.845) to ~0.7636', () => {
19
+ expect(relevanceFromDistance('l2', 0.3096)).toBeCloseTo(0.7636, 4);
20
+ });
21
+ it('is monotone decreasing in distance', () => {
22
+ const distances = [0, 0.25, 0.3096, 0.5, 1, 2, 3, 4, 10];
23
+ const relevances = distances.map((d) => relevanceFromDistance('l2', d));
24
+ for (let i = 1; i < relevances.length; i += 1) {
25
+ expect(relevances[i]).toBeLessThan(relevances[i - 1]);
26
+ }
27
+ });
28
+ it('INVARIANT: unit-norm rows produce relevance in [0.2, 1]', () => {
29
+ // On unit vectors |a-b|² = 2 - 2·cos ∈ [0, 4]; the sweep walks that interval.
30
+ for (const d of [0, 0.5, 1, 2, 3, 4]) {
31
+ const relevance = relevanceFromDistance('l2', d);
32
+ expect(relevance).toBeGreaterThanOrEqual(0.2);
33
+ expect(relevance).toBeLessThanOrEqual(1);
34
+ expect(isRelevanceInRange(relevance)).toBe(true);
35
+ }
36
+ });
37
+ });
38
+ describe('relevanceFromDistance — cosine', () => {
39
+ it('maps d = 0 to 1', () => {
40
+ expect(relevanceFromDistance('cosine', 0)).toBe(1);
41
+ });
42
+ it('maps the far bound d = 2 to 0', () => {
43
+ expect(relevanceFromDistance('cosine', 2)).toBe(0);
44
+ });
45
+ it('maps the orthogonal midpoint d = 1 to 0.5', () => {
46
+ expect(relevanceFromDistance('cosine', 1)).toBe(0.5);
47
+ });
48
+ });
49
+ describe('relevanceFromDistance — dot', () => {
50
+ // The SDK: "If the vectors are normalized (i.e. their l2 norm is 1), then dot
51
+ // distance is equivalent to the cosine distance" — so `dot` takes the same map.
52
+ it('maps d = 0 to 1', () => {
53
+ expect(relevanceFromDistance('dot', 0)).toBe(1);
54
+ });
55
+ it('maps d = 2 to 0', () => {
56
+ expect(relevanceFromDistance('dot', 2)).toBe(0);
57
+ });
58
+ it('maps d = 1 to 0.5', () => {
59
+ expect(relevanceFromDistance('dot', 1)).toBe(0.5);
60
+ });
61
+ it('agrees with cosine at every pinned point (the SDK equivalence on unit vectors)', () => {
62
+ for (const d of [0, 0.5, 1, 1.5, 2]) {
63
+ expect(relevanceFromDistance('dot', d)).toBe(relevanceFromDistance('cosine', d));
64
+ }
65
+ });
66
+ });
67
+ // ─── Out-of-range detection ─────────────────────────────
68
+ //
69
+ // `relevanceFromDistance` computes; it never warns, throws or clamps. The range
70
+ // judgment is `isRelevanceInRange`, exercised at the search call sites.
71
+ describe('isRelevanceInRange', () => {
72
+ it('is false for an l2 relevance above 1 (a negative _distance)', () => {
73
+ const relevance = relevanceFromDistance('l2', -0.5);
74
+ expect(relevance).toBeCloseTo(2, 10);
75
+ expect(isRelevanceInRange(relevance)).toBe(false);
76
+ });
77
+ it('is false for a cosine relevance below 0 (a distance past the [0, 2] bound)', () => {
78
+ const relevance = relevanceFromDistance('cosine', 3);
79
+ expect(relevance).toBeCloseTo(-0.5, 10);
80
+ expect(isRelevanceInRange(relevance)).toBe(false);
81
+ });
82
+ it('is false for NaN and Infinity', () => {
83
+ expect(isRelevanceInRange(Number.NaN)).toBe(false);
84
+ expect(isRelevanceInRange(Number.POSITIVE_INFINITY)).toBe(false);
85
+ expect(isRelevanceInRange(Number.NEGATIVE_INFINITY)).toBe(false);
86
+ });
87
+ it('is true at both closed bounds', () => {
88
+ expect(isRelevanceInRange(0)).toBe(true);
89
+ expect(isRelevanceInRange(1)).toBe(true);
90
+ });
91
+ });
92
+ // ─── The loud gate ──────────────────────────────────────
93
+ describe('assertDistanceMetric', () => {
94
+ it('throws a TotemError naming the value and the three allowed spellings', () => {
95
+ // 'ip' is a metric name from OTHER vector databases; the LanceDB SDK has no
96
+ // such spelling, and guessing it silently would be exactly the drift #2738
97
+ // exists to stop.
98
+ expect(() => assertDistanceMetric('ip')).toThrow(TotemError);
99
+ let thrown;
100
+ try {
101
+ assertDistanceMetric('ip');
102
+ }
103
+ catch (err) {
104
+ thrown = err;
105
+ }
106
+ const thrownError = thrown;
107
+ expect(thrownError.code).toBe('CONFIG_INVALID');
108
+ expect(thrownError.message).toContain('"ip"');
109
+ expect(thrownError.message).toContain('"l2"');
110
+ expect(thrownError.message).toContain('"cosine"');
111
+ expect(thrownError.message).toContain('"dot"');
112
+ });
113
+ it('returns the metric unchanged for a valid spelling', () => {
114
+ expect(assertDistanceMetric('cosine')).toBe('cosine');
115
+ });
116
+ it('accepts every listed metric and rejects non-strings', () => {
117
+ for (const metric of DISTANCE_METRICS) {
118
+ expect(assertDistanceMetric(metric)).toBe(metric);
119
+ }
120
+ expect(() => assertDistanceMetric(undefined)).toThrow(TotemError);
121
+ expect(() => assertDistanceMetric(null)).toThrow(TotemError);
122
+ expect(() => assertDistanceMetric(2)).toThrow(TotemError);
123
+ });
124
+ });
125
+ describe('VECTOR_DISTANCE_METRIC', () => {
126
+ it('is the l2 metric the store queries with', () => {
127
+ expect(VECTOR_DISTANCE_METRIC).toBe('l2');
128
+ expect(DISTANCE_METRICS).toContain(VECTOR_DISTANCE_METRIC);
129
+ });
130
+ });
131
+ // ─── the falsification round's folds (mmnto-ai/totem#2738) ───
132
+ describe('relevanceFromDistance gates its metric (F5)', () => {
133
+ it('raises the named TotemError for a spelling that reached it past the type', () => {
134
+ // A value read off a record, an `any`, or a JS caller can carry 'ip' here.
135
+ // Indexing the map with it would have thrown a bare TypeError ("is not a
136
+ // function"); the named error says what is wrong and what is allowed.
137
+ const badMetric = 'ip';
138
+ expect(() => relevanceFromDistance(badMetric, 0.5)).toThrow(TotemError);
139
+ let thrown;
140
+ try {
141
+ relevanceFromDistance(badMetric, 0.5);
142
+ }
143
+ catch (err) {
144
+ thrown = err;
145
+ }
146
+ expect(thrown.code).toBe('CONFIG_INVALID');
147
+ expect(thrown.message).toContain('"ip"');
148
+ });
149
+ it('still computes for every valid metric', () => {
150
+ for (const metric of DISTANCE_METRICS) {
151
+ expect(Number.isFinite(relevanceFromDistance(metric, 0.5))).toBe(true);
152
+ }
153
+ });
154
+ });
155
+ describe('OUT_OF_RANGE_CAUSE is metric-specific (F1)', () => {
156
+ it('names a FAULT for l2, never a non-unit-norm embedder', () => {
157
+ // Squared L2 is >= 0 by construction, so 1/(1+d) is in (0, 1] for every
158
+ // value the SDK can legally return: no vector norm can push it out.
159
+ expect(OUT_OF_RANGE_CAUSE.l2).toContain('which squared L2 cannot produce');
160
+ expect(OUT_OF_RANGE_CAUSE.l2).not.toContain('unit-norm');
161
+ });
162
+ it('names ONLY the negative-distance case for l2 — a non-finite one never reaches it', () => {
163
+ // The search layer requires `Number.isFinite` before the map runs at BOTH
164
+ // sites, so a non-finite `_distance` yields no relevance and cannot produce
165
+ // a breach. Naming it would describe a report this warning cannot make.
166
+ expect(OUT_OF_RANGE_CAUSE.l2).toContain('a negative _distance');
167
+ expect(OUT_OF_RANGE_CAUSE.l2).not.toContain('non-finite');
168
+ });
169
+ it('names the unit-norm cause for cosine and dot, where the mapping really can leave [0, 1]', () => {
170
+ expect(OUT_OF_RANGE_CAUSE.cosine).toContain('unit-norm');
171
+ expect(OUT_OF_RANGE_CAUSE.dot).toContain('unit-norm');
172
+ // `dot` on a non-unit vector is the live case: q·[2,0,0] = 2 → d = -1 → 1.5.
173
+ expect(isRelevanceInRange(relevanceFromDistance('dot', -1))).toBe(false);
174
+ });
175
+ it('has an entry for every metric', () => {
176
+ for (const metric of DISTANCE_METRICS) {
177
+ expect(OUT_OF_RANGE_CAUSE[metric].length).toBeGreaterThan(0);
178
+ }
179
+ });
180
+ });
181
+ describe('DISTANCE_METRICS', () => {
182
+ // The allow-list `assertDistanceMetric` gates on is frozen at runtime, not only
183
+ // `readonly` in the type: a JS caller that pushed a spelling onto it would
184
+ // otherwise pass the gate and reach an undefined map entry (CodeRabbit on
185
+ // mmnto-ai/totem#2761). Pinned so a refactor cannot drop the freeze unnoticed.
186
+ it('is frozen at runtime', () => {
187
+ expect(Object.isFrozen(DISTANCE_METRICS)).toBe(true);
188
+ expect(() => DISTANCE_METRICS.push('euclidean')).toThrow();
189
+ expect(DISTANCE_METRICS).toEqual(['l2', 'cosine', 'dot']);
190
+ });
191
+ });
192
+ //# sourceMappingURL=relevance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relevance.test.js","sourceRoot":"","sources":["../../src/store/relevance.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { SearchResult } from '../types.js';
2
+ import type { LanceStore } from './lance-store.js';
3
+ /**
4
+ * Ask the store for lessons — the ONE place the `lesson` content type is
5
+ * spelled for retrieval (mmnto-ai/totem#2735).
6
+ *
7
+ * Every lesson retrieval in the CLI and in core routes through here. The defect
8
+ * it repairs: mmnto-ai/totem#431 re-keyed the old partition helper onto
9
+ * `type === 'lesson'` but left its callers querying the store with
10
+ * `typeFilter: 'spec'`, so the partitioned pool could not contain a lesson by
11
+ * construction and every command delivered zero of them. A single spelling
12
+ * makes that class of drift a one-line regression instead of a silent one.
13
+ *
14
+ * Pure pass-through: `query` and `maxResults` reach the store unchanged, and
15
+ * nothing is cached.
16
+ */
17
+ export declare function searchLessons(store: LanceStore, query: string, maxResults: number): Promise<SearchResult[]>;
18
+ //# sourceMappingURL=search-lessons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-lessons.d.ts","sourceRoot":"","sources":["../../src/store/search-lessons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAEzB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Ask the store for lessons — the ONE place the `lesson` content type is
3
+ * spelled for retrieval (mmnto-ai/totem#2735).
4
+ *
5
+ * Every lesson retrieval in the CLI and in core routes through here. The defect
6
+ * it repairs: mmnto-ai/totem#431 re-keyed the old partition helper onto
7
+ * `type === 'lesson'` but left its callers querying the store with
8
+ * `typeFilter: 'spec'`, so the partitioned pool could not contain a lesson by
9
+ * construction and every command delivered zero of them. A single spelling
10
+ * makes that class of drift a one-line regression instead of a silent one.
11
+ *
12
+ * Pure pass-through: `query` and `maxResults` reach the store unchanged, and
13
+ * nothing is cached.
14
+ */
15
+ export async function searchLessons(store, query, maxResults) {
16
+ return store.search({ query, typeFilter: 'lesson', maxResults });
17
+ }
18
+ //# sourceMappingURL=search-lessons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-lessons.js","sourceRoot":"","sources":["../../src/store/search-lessons.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAiB,EACjB,KAAa,EACb,UAAkB;IAElB,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=search-lessons.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-lessons.test.d.ts","sourceRoot":"","sources":["../../src/store/search-lessons.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { searchLessons } from './search-lessons.js';
3
+ // The invariant pinned in the package that OWNS the helper, from source: the
4
+ // CLI's twin of this test reaches it through core's built dist, so a source
5
+ // change here would only fail there after a rebuild (mmnto-ai/totem#2735).
6
+ /** A spy store that records the search request and returns one lesson row. */
7
+ function spyStore() {
8
+ const requests = [];
9
+ const lesson = {
10
+ content: 'Always validate input at boundaries.',
11
+ contextPrefix: '',
12
+ filePath: '.totem/lessons/lesson-abc.md',
13
+ absoluteFilePath: '.totem/lessons/lesson-abc.md',
14
+ type: 'lesson',
15
+ label: 'Lesson A',
16
+ score: 0.9,
17
+ metadata: {},
18
+ };
19
+ const store = {
20
+ search: async (req) => {
21
+ requests.push(req);
22
+ return [lesson];
23
+ },
24
+ };
25
+ return { store, requests };
26
+ }
27
+ describe('searchLessons', () => {
28
+ it("asks the store for typeFilter 'lesson' — the one place the type is spelled", async () => {
29
+ const { store, requests } = spyStore();
30
+ await searchLessons(store, 'any query', 10);
31
+ expect(requests).toHaveLength(1);
32
+ expect(requests[0]['typeFilter']).toBe('lesson');
33
+ });
34
+ it('passes query and maxResults through unchanged', async () => {
35
+ const { store, requests } = spyStore();
36
+ await searchLessons(store, 'lesson trap pattern decision', 3);
37
+ expect(requests[0]['query']).toBe('lesson trap pattern decision');
38
+ expect(requests[0]['maxResults']).toBe(3);
39
+ });
40
+ it("returns the store's rows untouched", async () => {
41
+ const { store } = spyStore();
42
+ const results = await searchLessons(store, 'any query', 10);
43
+ expect(results).toHaveLength(1);
44
+ expect(results[0].type).toBe('lesson');
45
+ expect(results[0].label).toBe('Lesson A');
46
+ });
47
+ });
48
+ //# sourceMappingURL=search-lessons.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-lessons.test.js","sourceRoot":"","sources":["../../src/store/search-lessons.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAI9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAE3E,8EAA8E;AAC9E,SAAS,QAAQ;IACf,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAiB;QAC3B,OAAO,EAAE,sCAAsC;QAC/C,aAAa,EAAE,EAAE;QACjB,QAAQ,EAAE,8BAA8B;QACxC,gBAAgB,EAAE,8BAA8B;QAChD,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,KAAK,EAAE,GAA4B,EAA2B,EAAE;YACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;KACuB,CAAC;IAC3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;QAEvC,MAAM,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAE5C,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;QAEvC,MAAM,aAAa,CAAC,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -102,8 +102,10 @@ export interface SearchResult {
102
102
  label: string;
103
103
  score: number;
104
104
  /**
105
- * True per-hit relevance signal in the 0..1 range — the vector-leg
106
- * cosine similarity `1/(1+_distance)` (mmnto-ai/totem#2463). Distinct from
105
+ * True per-hit relevance signal — the vector-leg relevance from
106
+ * `relevanceFromDistance(VECTOR_DISTANCE_METRIC, _distance)`; on unit-norm
107
+ * vectors under `l2` it lies in [0.2, 1]; absent on FTS-only rows
108
+ * (mmnto-ai/totem#2463, metric-bound in mmnto-ai/totem#2738). Distinct from
107
109
  * `score`, which in hybrid/federated modes is an RRF rank artifact
108
110
  * (`1/(60+rank)` ≈ 0.016) that carries ordering but destroys the relevance
109
111
  * magnitude. Populated by `rowToSearchResult` for vector-derived rows and
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmnto/totem",
3
- "version": "1.123.0",
3
+ "version": "2.0.0",
4
4
  "description": "Core engine for Totem, the local-first toolkit that keeps AI-agent work queryable, enforceable, and derivable as plain files in your codebase",
5
5
  "type": "module",
6
6
  "engines": {