@mmnto/totem 1.124.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 (51) 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 +10 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +9 -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/store/lance-search.d.ts +1 -1
  28. package/dist/store/lance-search.d.ts.map +1 -1
  29. package/dist/store/lance-search.js +89 -18
  30. package/dist/store/lance-search.js.map +1 -1
  31. package/dist/store/lance-search.test.js +207 -26
  32. package/dist/store/lance-search.test.js.map +1 -1
  33. package/dist/store/lance-store.d.ts.map +1 -1
  34. package/dist/store/lance-store.js +1 -1
  35. package/dist/store/lance-store.js.map +1 -1
  36. package/dist/store/relevance.d.ts +70 -0
  37. package/dist/store/relevance.d.ts.map +1 -0
  38. package/dist/store/relevance.js +115 -0
  39. package/dist/store/relevance.js.map +1 -0
  40. package/dist/store/relevance.sdk.test.d.ts +20 -0
  41. package/dist/store/relevance.sdk.test.d.ts.map +1 -0
  42. package/dist/store/relevance.sdk.test.js +145 -0
  43. package/dist/store/relevance.sdk.test.js.map +1 -0
  44. package/dist/store/relevance.test.d.ts +2 -0
  45. package/dist/store/relevance.test.d.ts.map +1 -0
  46. package/dist/store/relevance.test.js +192 -0
  47. package/dist/store/relevance.test.js.map +1 -0
  48. package/dist/types.d.ts +4 -2
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js.map +1 -1
  51. package/package.json +1 -1
@@ -1215,13 +1215,6 @@ export declare const ReviewConfigSchema: z.ZodDefault<z.ZodObject<{
1215
1215
  */
1216
1216
  lanes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1217
1217
  }, z.ZodTypeAny, "passthrough">>>;
1218
- /**
1219
- * Default `searchRelevanceFloor` (mmnto-ai/totem#2463). Exported as the single
1220
- * source shared by the schema default below and the MCP guard that re-applies
1221
- * it for unvalidated configs — retuning one can never silently strand the
1222
- * other on a stale floor.
1223
- */
1224
- export declare const DEFAULT_SEARCH_RELEVANCE_FLOOR = 0.25;
1225
1218
  /**
1226
1219
  * Whether `value` carries a character that cannot be rendered SAFELY into the
1227
1220
  * managed git hooks (mmnto-ai/totem#2692 C4): a single quote (breaks the `sh`
@@ -1237,6 +1230,37 @@ export declare const DEFAULT_SEARCH_RELEVANCE_FLOOR = 0.25;
1237
1230
  * sequence of its own to mis-author.
1238
1231
  */
1239
1232
  export declare function hasUnrenderableHookChar(value: string): boolean;
1233
+ /**
1234
+ * Whether `value` carries a character that cannot be rendered safely into the
1235
+ * managed pre-commit hook as a required SPEC HEADING (mmnto-ai/totem#2737).
1236
+ * Forbids the same five shell/JS-active characters as
1237
+ * {@link hasUnrenderableHookChar} — a single quote, a double quote, a
1238
+ * backslash, a dollar sign, a backtick — plus every line-breaking or control
1239
+ * character the reader's own `safe()` collapses: C0 (below 0x20), the DEL/C1
1240
+ * band (0x7f–0x9f), and U+2028/U+2029 (LINE and PARAGRAPH SEPARATOR). Anything
1241
+ * outside that set could otherwise forge a second `[Totem]` line in the hook's
1242
+ * output. U+2028 and U+2029 are printable-plane code points that terminals and
1243
+ * pagers still break a line on, so banning only the two classic bands would
1244
+ * leave the forge channel open on exactly the characters this predicate exists
1245
+ * to permit the rest of.
1246
+ *
1247
+ * It PERMITS printable non-ASCII, and that is the whole difference. The path
1248
+ * predicate bans everything above 0x7e because git C-quotes path bytes above
1249
+ * 0x7e in the `diff --name-only` output the hooks' `grep -q` filters read, so a
1250
+ * non-ASCII directory name could never match. A required heading meets no such
1251
+ * filter: it is rendered by `JSON.stringify` into the reader's JS source and
1252
+ * compared in memory against the draft's own lines. Holding it to the path
1253
+ * rule would ban `### Verification (MANDATORY — do not skip)` — a heading the
1254
+ * built-in prompt has always asked for — over a hazard it cannot encounter.
1255
+ *
1256
+ * The round-trip is not argued, it is EXECUTED: the frozen falsifier in
1257
+ * `install-hooks.test.ts` runs the real hook over the four schema-constrained
1258
+ * R3 drafts, which carry that em-dash heading byte-identical, and requires them
1259
+ * to match on the EXACT pass and name no tolerance. That test fails on any CI
1260
+ * OS where the em dash does not survive `JSON.stringify` → the single-quoted
1261
+ * `node -e` word → `sh` → node intact.
1262
+ */
1263
+ export declare function hasUnrenderableHeadingChar(value: string): boolean;
1240
1264
  /**
1241
1265
  * Normalise a configured `totemDir` to the ONE spelling every consumer joins and
1242
1266
  * every managed hook renders (mmnto-ai/totem#2692 amendment A7): backslashes →
@@ -1800,14 +1824,45 @@ export declare const TotemConfigSchema: z.ZodObject<{
1800
1824
  /** Character count above which `search_knowledge` appends its `<size-disclosure>` measurement envelope — a size disclosure, not a risk claim (#2600) (~4 chars ≈ 1 token). Default: 40,000 (~10k tokens). */
1801
1825
  contextWarningThreshold: z.ZodDefault<z.ZodNumber>;
1802
1826
  /**
1803
- * Minimum per-hit relevance (vector-leg similarity, 0..1) below which the
1804
- * `search_knowledge` tool reports `status="no_useful_hits"` rather than
1805
- * returning noise-floor matches (mmnto-ai/totem#2463). Floors on the true
1806
- * relevance signal, NOT the RRF rank artifact in the displayed `score`. The
1807
- * per-call `min_relevance` MCP input overrides this; the retrieval-envelope
1808
- * always discloses the effective floor. Default 0.25 (pilot-calibrated).
1827
+ * Optional relevance floor (0..1). A REFUSAL THRESHOLD compared against the
1828
+ * BEST vector-leg relevance of ONE retrieval — never a per-item filter.
1829
+ * Nothing in the product withholds an individual sub-floor hit while keeping
1830
+ * its siblings. Two consumers:
1831
+ *
1832
+ * 1. the MCP `search_knowledge` tool (mmnto-ai/totem#2463): when a
1833
+ * response's best relevance is below the floor it answers
1834
+ * `status="no_useful_hits"` and DISCLOSES the below-floor candidates
1835
+ * (path + relevance, no content) instead of returning them;
1836
+ * 2. `totem spec` (mmnto-ai/totem#2700): an unanchored free-text run is
1837
+ * REFUSED when the best relevance is below the floor.
1838
+ *
1839
+ * Floors the true relevance signal, NOT the RRF rank artifact in the
1840
+ * displayed `score`. Hits with no vector leg (keyword-only/FTS) carry no
1841
+ * comparable relevance: they are floor-EXEMPT, and in `totem spec` a single
1842
+ * exempt hit from a grounding partition (specs, sessions, code) saves the
1843
+ * run — a keyword-only lesson does not; lessons never ground a run (ruled
1844
+ * final, mmnto-ai/totem#2727).
1845
+ *
1846
+ * NO DEFAULT since mmnto-ai/totem#2727. Relevance is `1 / (1 + squared L2)`
1847
+ * on unit-norm vectors, so it ranges over [0.2, 1] — 0.25 is INSIDE that
1848
+ * range, but on the gemini-embedding-2-preview 768-d profile the LOWEST
1849
+ * best-relevance over 55 recorded `totem spec` queries was 0.559 (0.5687 over
1850
+ * the runs the spec refusal was even eligible to judge), so the former
1851
+ * default fired on none of those 55, and any value below a repo's own
1852
+ * measured floor is inert. An embedder returning UNNORMALIZED vectors
1853
+ * (custom, some Ollama models) is not bounded that way and can produce
1854
+ * relevances under 0.25, so on such a profile the old default could fire.
1855
+ * A repo that wants weak free-text runs refused sets a value just above the
1856
+ * best-relevance of the weakest run it still wants kept; the recipe is in
1857
+ * `docs/wiki/config-reference.md` and the worked measurement is the R4 record
1858
+ * at `.totem/fixtures/floor-arm-2026-09-03/`.
1859
+ *
1860
+ * UNSET = NO FLOOR: `no_useful_hits` and the spec refusal's below-floor arm
1861
+ * can never fire (the spec zero-hit arm still can). The per-call
1862
+ * `min_relevance` MCP input still applies, and still overrides this value;
1863
+ * the retrieval-envelope always discloses the effective floor, or `none`.
1809
1864
  */
1810
- searchRelevanceFloor: z.ZodDefault<z.ZodNumber>;
1865
+ searchRelevanceFloor: z.ZodOptional<z.ZodNumber>;
1811
1866
  /** Optional: documents to auto-update via `totem docs` */
1812
1867
  docs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1813
1868
  /** Relative path to the document */
@@ -2174,7 +2229,6 @@ export declare const TotemConfigSchema: z.ZodObject<{
2174
2229
  indexIgnorePatterns: string[];
2175
2230
  shieldIgnorePatterns: string[];
2176
2231
  contextWarningThreshold: number;
2177
- searchRelevanceFloor: number;
2178
2232
  shieldAutoLearn: boolean;
2179
2233
  review: {
2180
2234
  sourceExtensions: string[];
@@ -2266,6 +2320,7 @@ export declare const TotemConfigSchema: z.ZodObject<{
2266
2320
  } | undefined;
2267
2321
  numCtx?: number | undefined;
2268
2322
  } | undefined;
2323
+ searchRelevanceFloor?: number | undefined;
2269
2324
  docs?: {
2270
2325
  path: string;
2271
2326
  trigger: "post-release" | "on-change";
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
@@ -400,13 +400,6 @@ export const ReviewConfigSchema = z
400
400
  })
401
401
  .passthrough()
402
402
  .default({});
403
- /**
404
- * Default `searchRelevanceFloor` (mmnto-ai/totem#2463). Exported as the single
405
- * source shared by the schema default below and the MCP guard that re-applies
406
- * it for unvalidated configs — retuning one can never silently strand the
407
- * other on a stale floor.
408
- */
409
- export const DEFAULT_SEARCH_RELEVANCE_FLOOR = 0.25;
410
403
  /**
411
404
  * Whether `value` carries a character that cannot be rendered SAFELY into the
412
405
  * managed git hooks (mmnto-ai/totem#2692 C4): a single quote (breaks the `sh`
@@ -435,6 +428,48 @@ export function hasUnrenderableHookChar(value) {
435
428
  }
436
429
  return false;
437
430
  }
431
+ /**
432
+ * Whether `value` carries a character that cannot be rendered safely into the
433
+ * managed pre-commit hook as a required SPEC HEADING (mmnto-ai/totem#2737).
434
+ * Forbids the same five shell/JS-active characters as
435
+ * {@link hasUnrenderableHookChar} — a single quote, a double quote, a
436
+ * backslash, a dollar sign, a backtick — plus every line-breaking or control
437
+ * character the reader's own `safe()` collapses: C0 (below 0x20), the DEL/C1
438
+ * band (0x7f–0x9f), and U+2028/U+2029 (LINE and PARAGRAPH SEPARATOR). Anything
439
+ * outside that set could otherwise forge a second `[Totem]` line in the hook's
440
+ * output. U+2028 and U+2029 are printable-plane code points that terminals and
441
+ * pagers still break a line on, so banning only the two classic bands would
442
+ * leave the forge channel open on exactly the characters this predicate exists
443
+ * to permit the rest of.
444
+ *
445
+ * It PERMITS printable non-ASCII, and that is the whole difference. The path
446
+ * predicate bans everything above 0x7e because git C-quotes path bytes above
447
+ * 0x7e in the `diff --name-only` output the hooks' `grep -q` filters read, so a
448
+ * non-ASCII directory name could never match. A required heading meets no such
449
+ * filter: it is rendered by `JSON.stringify` into the reader's JS source and
450
+ * compared in memory against the draft's own lines. Holding it to the path
451
+ * rule would ban `### Verification (MANDATORY — do not skip)` — a heading the
452
+ * built-in prompt has always asked for — over a hazard it cannot encounter.
453
+ *
454
+ * The round-trip is not argued, it is EXECUTED: the frozen falsifier in
455
+ * `install-hooks.test.ts` runs the real hook over the four schema-constrained
456
+ * R3 drafts, which carry that em-dash heading byte-identical, and requires them
457
+ * to match on the EXACT pass and name no tolerance. That test fails on any CI
458
+ * OS where the em dash does not survive `JSON.stringify` → the single-quoted
459
+ * `node -e` word → `sh` → node intact.
460
+ */
461
+ export function hasUnrenderableHeadingChar(value) {
462
+ for (const ch of value) {
463
+ if (ch === "'" || ch === '"' || ch === '\\' || ch === '$' || ch === '`')
464
+ return true;
465
+ const code = ch.codePointAt(0) ?? 0;
466
+ if (code < 0x20 || (code >= 0x7f && code <= 0x9f))
467
+ return true;
468
+ if (code === 0x2028 || code === 0x2029)
469
+ return true;
470
+ }
471
+ return false;
472
+ }
438
473
  /**
439
474
  * Normalise a configured `totemDir` to the ONE spelling every consumer joins and
440
475
  * every managed hook renders (mmnto-ai/totem#2692 amendment A7): backslashes →
@@ -510,14 +545,45 @@ export const TotemConfigSchema = z.object({
510
545
  /** Character count above which `search_knowledge` appends its `<size-disclosure>` measurement envelope — a size disclosure, not a risk claim (#2600) (~4 chars ≈ 1 token). Default: 40,000 (~10k tokens). */
511
546
  contextWarningThreshold: z.number().int().positive().default(40_000),
512
547
  /**
513
- * Minimum per-hit relevance (vector-leg similarity, 0..1) below which the
514
- * `search_knowledge` tool reports `status="no_useful_hits"` rather than
515
- * returning noise-floor matches (mmnto-ai/totem#2463). Floors on the true
516
- * relevance signal, NOT the RRF rank artifact in the displayed `score`. The
517
- * per-call `min_relevance` MCP input overrides this; the retrieval-envelope
518
- * always discloses the effective floor. Default 0.25 (pilot-calibrated).
548
+ * Optional relevance floor (0..1). A REFUSAL THRESHOLD compared against the
549
+ * BEST vector-leg relevance of ONE retrieval — never a per-item filter.
550
+ * Nothing in the product withholds an individual sub-floor hit while keeping
551
+ * its siblings. Two consumers:
552
+ *
553
+ * 1. the MCP `search_knowledge` tool (mmnto-ai/totem#2463): when a
554
+ * response's best relevance is below the floor it answers
555
+ * `status="no_useful_hits"` and DISCLOSES the below-floor candidates
556
+ * (path + relevance, no content) instead of returning them;
557
+ * 2. `totem spec` (mmnto-ai/totem#2700): an unanchored free-text run is
558
+ * REFUSED when the best relevance is below the floor.
559
+ *
560
+ * Floors the true relevance signal, NOT the RRF rank artifact in the
561
+ * displayed `score`. Hits with no vector leg (keyword-only/FTS) carry no
562
+ * comparable relevance: they are floor-EXEMPT, and in `totem spec` a single
563
+ * exempt hit from a grounding partition (specs, sessions, code) saves the
564
+ * run — a keyword-only lesson does not; lessons never ground a run (ruled
565
+ * final, mmnto-ai/totem#2727).
566
+ *
567
+ * NO DEFAULT since mmnto-ai/totem#2727. Relevance is `1 / (1 + squared L2)`
568
+ * on unit-norm vectors, so it ranges over [0.2, 1] — 0.25 is INSIDE that
569
+ * range, but on the gemini-embedding-2-preview 768-d profile the LOWEST
570
+ * best-relevance over 55 recorded `totem spec` queries was 0.559 (0.5687 over
571
+ * the runs the spec refusal was even eligible to judge), so the former
572
+ * default fired on none of those 55, and any value below a repo's own
573
+ * measured floor is inert. An embedder returning UNNORMALIZED vectors
574
+ * (custom, some Ollama models) is not bounded that way and can produce
575
+ * relevances under 0.25, so on such a profile the old default could fire.
576
+ * A repo that wants weak free-text runs refused sets a value just above the
577
+ * best-relevance of the weakest run it still wants kept; the recipe is in
578
+ * `docs/wiki/config-reference.md` and the worked measurement is the R4 record
579
+ * at `.totem/fixtures/floor-arm-2026-09-03/`.
580
+ *
581
+ * UNSET = NO FLOOR: `no_useful_hits` and the spec refusal's below-floor arm
582
+ * can never fire (the spec zero-hit arm still can). The per-call
583
+ * `min_relevance` MCP input still applies, and still overrides this value;
584
+ * the retrieval-envelope always discloses the effective floor, or `none`.
519
585
  */
520
- searchRelevanceFloor: z.number().min(0).max(1).default(DEFAULT_SEARCH_RELEVANCE_FLOOR),
586
+ searchRelevanceFloor: z.number().min(0).max(1).optional(),
521
587
  /** Optional: documents to auto-update via `totem docs` */
522
588
  docs: z.array(DocTargetSchema).optional(),
523
589
  /** Optional: export targets for cross-model lesson enforcement (e.g., { gemini: '.gemini/styleguide.md' }) */
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { DocTargetSchema, DoctorConfigSchema, GarbageCollectionSchema, getConfigTier, hasUnrenderableHookChar, normalizeTotemDir, OrchestratorSchema, requireEmbedding, TotemConfigSchema, } from './config-schema.js';
2
+ import { DocTargetSchema, DoctorConfigSchema, GarbageCollectionSchema, getConfigTier, hasUnrenderableHeadingChar, hasUnrenderableHookChar, normalizeTotemDir, OrchestratorSchema, requireEmbedding, TotemConfigSchema, } from './config-schema.js';
3
3
  import { DEFAULT_LEGS_OWED_GLOBS } from './routing/legs-owed.js';
4
4
  const BASE_TARGETS = [
5
5
  { glob: '**/*.md', type: 'spec', strategy: 'markdown-heading' },
@@ -1056,6 +1056,56 @@ describe('totemDir — normalised, then refused where the managed hooks could no
1056
1056
  for (const ch of accepted)
1057
1057
  expect(hasUnrenderableHookChar(`a${ch}b`), JSON.stringify(ch)).toBe(false);
1058
1058
  });
1059
+ // The sibling predicate for required SPEC HEADINGS (mmnto-ai/totem#2737).
1060
+ // Same five shell/JS-active characters and the same line-breaking bands, but
1061
+ // printable non-ASCII is PERMITTED: a heading is rendered by JSON.stringify
1062
+ // into the reader's JS source and compared in memory, where the path
1063
+ // predicate's ban on everything above 0x7e exists for git's C-quoting of
1064
+ // `diff --name-only` output that a heading never meets.
1065
+ it('hasUnrenderableHeadingChar — the character set, pinned as a set', () => {
1066
+ const refused = [
1067
+ "'",
1068
+ '"',
1069
+ String.fromCharCode(0x5c), // backslash
1070
+ '$',
1071
+ '`',
1072
+ String.fromCharCode(0x0a), // newline
1073
+ String.fromCharCode(0x09), // tab
1074
+ String.fromCharCode(0x00), // NUL
1075
+ String.fromCharCode(0x1f), // the top of C0
1076
+ String.fromCharCode(0x7f), // DEL
1077
+ String.fromCharCode(0x85), // NEL — a line break to some terminals
1078
+ String.fromCharCode(0x9f), // the top of C1
1079
+ String.fromCharCode(0x2028), // LINE SEPARATOR
1080
+ String.fromCharCode(0x2029), // PARAGRAPH SEPARATOR
1081
+ ];
1082
+ const accepted = [
1083
+ '.',
1084
+ '-',
1085
+ '&',
1086
+ '(',
1087
+ ')',
1088
+ ':',
1089
+ ' ',
1090
+ 'é',
1091
+ 'ü',
1092
+ String.fromCharCode(0x2014), // the em dash the Verification heading carries
1093
+ ];
1094
+ for (const ch of refused)
1095
+ expect(hasUnrenderableHeadingChar(`a${ch}b`), JSON.stringify(ch)).toBe(true);
1096
+ for (const ch of accepted)
1097
+ expect(hasUnrenderableHeadingChar(`a${ch}b`), JSON.stringify(ch)).toBe(false);
1098
+ // The whole heading, not just its bytes one at a time. Core cannot import
1099
+ // SPEC_SYSTEM_PROMPT (it lives in @mmnto/cli, which depends on this
1100
+ // package, not the other way round), so the em dash is BUILT rather than
1101
+ // typed — the same guarantee against a look-alike byte. That this string is
1102
+ // verbatim the prompt's line is locked on the CLI side, where
1103
+ // SPEC_REQUIRED_SECTIONS is asserted to be a subset of SPEC_SYSTEM_PROMPT
1104
+ // and every entry is run through this predicate.
1105
+ const verification = `### Verification (MANDATORY ${String.fromCharCode(0x2014)} do not skip)`;
1106
+ expect(hasUnrenderableHeadingChar(verification), verification).toBe(false);
1107
+ expect(hasUnrenderableHookChar(verification), 'the PATH predicate still refuses it').toBe(true);
1108
+ });
1059
1109
  });
1060
1110
  describe('hooks.legsOwed.globs — the judgment-dense path floor (mmnto-ai/totem#2698)', () => {
1061
1111
  it('resolves to the default floor when `hooks` is absent entirely', () => {
@@ -1129,4 +1179,30 @@ describe('hooks.legsOwed.globs — the judgment-dense path floor (mmnto-ai/totem
1129
1179
  }).success).toBe(false);
1130
1180
  });
1131
1181
  });
1182
+ describe('searchRelevanceFloor — optional, NO default (mmnto-ai/totem#2727)', () => {
1183
+ // The whole point of the slice: an unconfigured repo must come out of the
1184
+ // parse with NO floor, so the below-floor arms are unreachable rather than
1185
+ // reachable-but-inert at a number no index ever crosses.
1186
+ // `{ targets }` is the minimal PARSEABLE config — `targets` is required — so
1187
+ // this is a config that simply does not mention the key.
1188
+ it('a config that does not set the key leaves searchRelevanceFloor undefined — no default', () => {
1189
+ const parsed = TotemConfigSchema.parse({ targets: BASE_TARGETS });
1190
+ expect(parsed.searchRelevanceFloor).toBeUndefined();
1191
+ expect('searchRelevanceFloor' in parsed).toBe(false);
1192
+ });
1193
+ it('a configured value round-trips unchanged', () => {
1194
+ expect(TotemConfigSchema.parse({ targets: BASE_TARGETS, searchRelevanceFloor: 0.57 })
1195
+ .searchRelevanceFloor).toBe(0.57);
1196
+ // The bounds still hold — optional loosened the default, not the range.
1197
+ expect(TotemConfigSchema.parse({ targets: BASE_TARGETS, searchRelevanceFloor: 0 })
1198
+ .searchRelevanceFloor).toBe(0);
1199
+ expect(TotemConfigSchema.parse({ targets: BASE_TARGETS, searchRelevanceFloor: 1 })
1200
+ .searchRelevanceFloor).toBe(1);
1201
+ });
1202
+ it('rejects a value outside [0, 1] and a non-number', () => {
1203
+ expect(TotemConfigSchema.safeParse({ targets: BASE_TARGETS, searchRelevanceFloor: -0.1 }).success).toBe(false);
1204
+ expect(TotemConfigSchema.safeParse({ targets: BASE_TARGETS, searchRelevanceFloor: 1.1 }).success).toBe(false);
1205
+ expect(TotemConfigSchema.safeParse({ targets: BASE_TARGETS, searchRelevanceFloor: '0.5' }).success).toBe(false);
1206
+ });
1207
+ });
1132
1208
  //# sourceMappingURL=config-schema.test.js.map