@untangle-code/search 0.0.0-stage → 0.1.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.
Files changed (140) hide show
  1. package/LICENSE +661 -0
  2. package/NOTICE +90 -0
  3. package/README.md +433 -2
  4. package/THIRD_PARTY_LICENSES.md +29 -0
  5. package/dist/benchmark-integrity.d.ts +12 -0
  6. package/dist/benchmark-integrity.d.ts.map +1 -0
  7. package/dist/benchmark-integrity.js +10 -0
  8. package/dist/benchmark-integrity.js.map +1 -0
  9. package/dist/bm25.d.ts +46 -0
  10. package/dist/bm25.d.ts.map +1 -0
  11. package/dist/bm25.js +105 -0
  12. package/dist/bm25.js.map +1 -0
  13. package/dist/deadline.d.ts +4 -0
  14. package/dist/deadline.d.ts.map +1 -0
  15. package/dist/deadline.js +54 -0
  16. package/dist/deadline.js.map +1 -0
  17. package/dist/dedupe.d.ts +48 -0
  18. package/dist/dedupe.d.ts.map +1 -0
  19. package/dist/dedupe.js +58 -0
  20. package/dist/dedupe.js.map +1 -0
  21. package/dist/diversify.d.ts +45 -0
  22. package/dist/diversify.d.ts.map +1 -0
  23. package/dist/diversify.js +30 -0
  24. package/dist/diversify.js.map +1 -0
  25. package/dist/engine.d.ts +157 -0
  26. package/dist/engine.d.ts.map +1 -0
  27. package/dist/engine.js +1498 -0
  28. package/dist/engine.js.map +1 -0
  29. package/dist/enrichment.d.ts +16 -0
  30. package/dist/enrichment.d.ts.map +1 -0
  31. package/dist/enrichment.js +92 -0
  32. package/dist/enrichment.js.map +1 -0
  33. package/dist/filter.d.ts +86 -0
  34. package/dist/filter.d.ts.map +1 -0
  35. package/dist/filter.js +166 -0
  36. package/dist/filter.js.map +1 -0
  37. package/dist/findability.d.ts +144 -0
  38. package/dist/findability.d.ts.map +1 -0
  39. package/dist/findability.js +393 -0
  40. package/dist/findability.js.map +1 -0
  41. package/dist/format.d.ts +28 -0
  42. package/dist/format.d.ts.map +1 -0
  43. package/dist/format.js +172 -0
  44. package/dist/format.js.map +1 -0
  45. package/dist/fusion.d.ts +47 -0
  46. package/dist/fusion.d.ts.map +1 -0
  47. package/dist/fusion.js +84 -0
  48. package/dist/fusion.js.map +1 -0
  49. package/dist/glob.d.ts +50 -0
  50. package/dist/glob.d.ts.map +1 -0
  51. package/dist/glob.js +144 -0
  52. package/dist/glob.js.map +1 -0
  53. package/dist/grep.d.ts +76 -0
  54. package/dist/grep.d.ts.map +1 -0
  55. package/dist/grep.js +475 -0
  56. package/dist/grep.js.map +1 -0
  57. package/dist/index.d.ts +42 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +63 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/ledger.d.ts +45 -0
  62. package/dist/ledger.d.ts.map +1 -0
  63. package/dist/ledger.js +39 -0
  64. package/dist/ledger.js.map +1 -0
  65. package/dist/payload.d.ts +108 -0
  66. package/dist/payload.d.ts.map +1 -0
  67. package/dist/payload.js +263 -0
  68. package/dist/payload.js.map +1 -0
  69. package/dist/port.d.ts +112 -0
  70. package/dist/port.d.ts.map +1 -0
  71. package/dist/port.js +2 -0
  72. package/dist/port.js.map +1 -0
  73. package/dist/product-complexity.d.ts +89 -0
  74. package/dist/product-complexity.d.ts.map +1 -0
  75. package/dist/product-complexity.js +1367 -0
  76. package/dist/product-complexity.js.map +1 -0
  77. package/dist/regex-safety.d.ts +75 -0
  78. package/dist/regex-safety.d.ts.map +1 -0
  79. package/dist/regex-safety.js +902 -0
  80. package/dist/regex-safety.js.map +1 -0
  81. package/dist/relevance-prerequisites.d.ts +21 -0
  82. package/dist/relevance-prerequisites.d.ts.map +1 -0
  83. package/dist/relevance-prerequisites.js +47 -0
  84. package/dist/relevance-prerequisites.js.map +1 -0
  85. package/dist/relevance.d.ts +107 -0
  86. package/dist/relevance.d.ts.map +1 -0
  87. package/dist/relevance.js +199 -0
  88. package/dist/relevance.js.map +1 -0
  89. package/dist/retrieval.d.ts +46 -0
  90. package/dist/retrieval.d.ts.map +1 -0
  91. package/dist/retrieval.js +182 -0
  92. package/dist/retrieval.js.map +1 -0
  93. package/dist/scoring.d.ts +102 -0
  94. package/dist/scoring.d.ts.map +1 -0
  95. package/dist/scoring.js +175 -0
  96. package/dist/scoring.js.map +1 -0
  97. package/dist/sort.d.ts +21 -0
  98. package/dist/sort.d.ts.map +1 -0
  99. package/dist/sort.js +53 -0
  100. package/dist/sort.js.map +1 -0
  101. package/dist/symbol-match.d.ts +21 -0
  102. package/dist/symbol-match.d.ts.map +1 -0
  103. package/dist/symbol-match.js +72 -0
  104. package/dist/symbol-match.js.map +1 -0
  105. package/dist/tokenize.d.ts +41 -0
  106. package/dist/tokenize.d.ts.map +1 -0
  107. package/dist/tokenize.js +202 -0
  108. package/dist/tokenize.js.map +1 -0
  109. package/dist/types.d.ts +173 -0
  110. package/dist/types.d.ts.map +1 -0
  111. package/dist/types.js +42 -0
  112. package/dist/types.js.map +1 -0
  113. package/package.json +61 -3
  114. package/src/benchmark-integrity.ts +25 -0
  115. package/src/bm25.ts +135 -0
  116. package/src/deadline.ts +59 -0
  117. package/src/dedupe.ts +99 -0
  118. package/src/diversify.ts +71 -0
  119. package/src/engine.ts +1957 -0
  120. package/src/enrichment.ts +115 -0
  121. package/src/filter.ts +267 -0
  122. package/src/findability.ts +580 -0
  123. package/src/format.ts +228 -0
  124. package/src/fusion.ts +121 -0
  125. package/src/glob.ts +151 -0
  126. package/src/grep.ts +618 -0
  127. package/src/index.ts +83 -0
  128. package/src/ledger.ts +72 -0
  129. package/src/payload.ts +382 -0
  130. package/src/port.ts +133 -0
  131. package/src/product-complexity.ts +2168 -0
  132. package/src/regex-safety.ts +1002 -0
  133. package/src/relevance-prerequisites.ts +83 -0
  134. package/src/relevance.ts +328 -0
  135. package/src/retrieval.ts +299 -0
  136. package/src/scoring.ts +321 -0
  137. package/src/sort.ts +86 -0
  138. package/src/symbol-match.ts +87 -0
  139. package/src/tokenize.ts +213 -0
  140. package/src/types.ts +206 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-safety.js","sourceRoot":"","sources":["../src/regex-safety.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { SearchAbstention, SearchRelevanceVerdictV1, ToolWarningV1 } from "@untangle-code/domain";
2
+ import { type RelevancePolicyBindingV1 } from "./relevance.js";
3
+ import type { RetrievalBranch } from "./retrieval.js";
4
+ interface RelevancePrerequisiteInput {
5
+ binding: RelevancePolicyBindingV1;
6
+ embeddingProfileId: string;
7
+ workspaceId: string;
8
+ collection: string;
9
+ completedBranches: ReadonlySet<RetrievalBranch>;
10
+ exactSymbolEvidenceAvailable: boolean;
11
+ abstention: SearchAbstention;
12
+ }
13
+ interface RelevancePrerequisiteFailure {
14
+ detail: string;
15
+ warning: ToolWarningV1;
16
+ verdict: SearchRelevanceVerdictV1;
17
+ }
18
+ /** A policy may judge only its calibrated scope and evidence; exact symbols are direct evidence. */
19
+ export declare function relevancePrerequisiteFailure(input: RelevancePrerequisiteInput): RelevancePrerequisiteFailure | undefined;
20
+ export {};
21
+ //# sourceMappingURL=relevance-prerequisites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relevance-prerequisites.d.ts","sourceRoot":"","sources":["../src/relevance-prerequisites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,UAAU,0BAA0B;IAClC,OAAO,EAAE,wBAAwB,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAChD,4BAA4B,EAAE,OAAO,CAAC;IACtC,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,wBAAwB,CAAC;CACnC;AA6BD,oGAAoG;AACpG,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,0BAA0B,GAChC,4BAA4B,GAAG,SAAS,CAwB1C"}
@@ -0,0 +1,47 @@
1
+ import { RELEVANCE_POLICY_NOT_EVALUATED_WARNING_CODE, } from "./relevance.js";
2
+ function notEvaluated(input, basis, detail, details) {
3
+ return {
4
+ detail,
5
+ warning: {
6
+ code: RELEVANCE_POLICY_NOT_EVALUATED_WARNING_CODE,
7
+ message: detail,
8
+ details: {
9
+ status: "not_evaluated",
10
+ basis,
11
+ embeddingProfileId: input.embeddingProfileId,
12
+ ...details,
13
+ },
14
+ },
15
+ verdict: {
16
+ abstention: input.abstention,
17
+ status: "not_evaluated",
18
+ basis,
19
+ calibrationId: input.binding.policy.calibrationId,
20
+ },
21
+ };
22
+ }
23
+ /** A policy may judge only its calibrated scope and evidence; exact symbols are direct evidence. */
24
+ export function relevancePrerequisiteFailure(input) {
25
+ const { binding } = input;
26
+ if (binding.workspaceId !== input.workspaceId || binding.collection !== input.collection) {
27
+ const detail = `relevance policy "${binding.policy.calibrationId}" was not evaluated because its calibrated scope workspace="${binding.workspaceId}", collection="${binding.collection}" does not match the active scope workspace="${input.workspaceId}", collection="${input.collection}"; results were left unchanged`;
28
+ return notEvaluated(input, "policy_scope_mismatch", detail, {
29
+ expectedWorkspaceId: binding.workspaceId,
30
+ actualWorkspaceId: input.workspaceId,
31
+ expectedCollection: binding.collection,
32
+ actualCollection: input.collection,
33
+ policy: binding.policy,
34
+ });
35
+ }
36
+ const unavailableEvidenceBranches = ["dense", "sparse"].filter((branch) => !input.completedBranches.has(branch));
37
+ if (unavailableEvidenceBranches.length === 0 || input.exactSymbolEvidenceAvailable)
38
+ return undefined;
39
+ const detail = `relevance policy "${binding.policy.calibrationId}" was not evaluated because its calibrated evidence requires both dense and sparse retrieval, but the following branches did not run successfully: ${unavailableEvidenceBranches.join(", ")}; results were left unchanged`;
40
+ return notEvaluated(input, "calibrated_evidence_branch_unavailable", detail, {
41
+ collection: input.collection,
42
+ requiredEvidenceBranches: ["dense", "sparse"],
43
+ unavailableEvidenceBranches,
44
+ policy: binding.policy,
45
+ });
46
+ }
47
+ //# sourceMappingURL=relevance-prerequisites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relevance-prerequisites.js","sourceRoot":"","sources":["../src/relevance-prerequisites.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2CAA2C,GAE5C,MAAM,gBAAgB,CAAC;AAmBxB,SAAS,YAAY,CACnB,KAAiC,EACjC,KAAa,EACb,MAAc,EACd,OAAgC;IAEhC,OAAO;QACL,MAAM;QACN,OAAO,EAAE;YACP,IAAI,EAAE,2CAA2C;YACjD,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,eAAe;gBACvB,KAAK;gBACL,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;gBAC5C,GAAG,OAAO;aACX;SACF;QACD,OAAO,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,eAAe;YACvB,KAAK;YACL,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa;SAClD;KACF,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,4BAA4B,CAC1C,KAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;QACzF,MAAM,MAAM,GAAG,qBAAqB,OAAO,CAAC,MAAM,CAAC,aAAa,+DAA+D,OAAO,CAAC,WAAW,kBAAkB,OAAO,CAAC,UAAU,gDAAgD,KAAK,CAAC,WAAW,kBAAkB,KAAK,CAAC,UAAU,gCAAgC,CAAC;QAC1T,OAAO,YAAY,CAAC,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE;YAC1D,mBAAmB,EAAE,OAAO,CAAC,WAAW;YACxC,iBAAiB,EAAE,KAAK,CAAC,WAAW;YACpC,kBAAkB,EAAE,OAAO,CAAC,UAAU;YACtC,gBAAgB,EAAE,KAAK,CAAC,UAAU;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,2BAA2B,GAAI,CAAC,OAAO,EAAE,QAAQ,CAAW,CAAC,MAAM,CACvE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CACjD,CAAC;IACF,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B;QAChF,OAAO,SAAS,CAAC;IACnB,MAAM,MAAM,GAAG,qBAAqB,OAAO,CAAC,MAAM,CAAC,aAAa,sJAAsJ,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC;IAC5R,OAAO,YAAY,CAAC,KAAK,EAAE,wCAAwC,EAAE,MAAM,EAAE;QAC3E,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,wBAAwB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC7C,2BAA2B;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,107 @@
1
+ export declare const NO_SUFFICIENT_MATCH_WARNING_CODE = "NO_SUFFICIENT_MATCH";
2
+ export declare const RELEVANCE_POLICY_NOT_EVALUATED_WARNING_CODE = "RELEVANCE_POLICY_NOT_EVALUATED";
3
+ export interface RelevancePolicyV1 {
4
+ /** Menschen- und maschinenlesbare Herkunft der Kalibrierung. */
5
+ calibrationId: string;
6
+ /** Absoluter Mindestwert des besten dichten Kandidaten. */
7
+ minimumDenseScore: number;
8
+ /** Mindestabstand zwischen bestem dichten Wert und `denseReferenceRank`. */
9
+ minimumDenseSpread: number;
10
+ /** 1-basierter fester Vergleichsrang; fehlt er, wird NICHT entschieden. */
11
+ denseReferenceRank: number;
12
+ /**
13
+ * IDF-gewichteter Mindestanteil aller normalisierten Query-Terme im festen
14
+ * Evidenzpool aus Dense- und Sparse-Praefix.
15
+ */
16
+ minimumCandidateIdfCoverage: number;
17
+ }
18
+ /** Bindet eine Modellkalibrierung an genau das vermessene Korpus. */
19
+ export interface RelevancePolicyBindingV1 {
20
+ workspaceId: string;
21
+ collection: string;
22
+ policy: RelevancePolicyV1;
23
+ }
24
+ export declare const QWEN3_EMBEDDING_06B_RELEVANCE_POLICY: Readonly<RelevancePolicyV1>;
25
+ export type RelevancePolicyConfig = false | RelevancePolicyV1;
26
+ export interface RelevanceCandidateEvidence {
27
+ denseScore?: number;
28
+ lexicalText: string;
29
+ exactSymbolMatch: boolean;
30
+ }
31
+ export type RelevanceDecisionStatus = "accepted" | "rejected" | "not_evaluated";
32
+ export type RelevanceDecisionBasis = "exact_symbol" | "dense_absolute_relative_and_candidate_idf_coverage" | "insufficient_evidence" | "dense_reference_unavailable";
33
+ /** Vollstaendige, maschinenlesbare Begruendung fuer Treffer, Enthaltung oder Nichtentscheidung. */
34
+ export interface RelevanceDecisionV1 {
35
+ status: RelevanceDecisionStatus;
36
+ basis: RelevanceDecisionBasis;
37
+ exactSymbolMatches: number;
38
+ topDenseScore?: number;
39
+ /** Nur gesetzt, wenn der kalibrierte feste Referenzrang wirklich beobachtet wurde. */
40
+ denseReferenceScore?: number;
41
+ /** Nur aus Topwert und dem wirklich beobachteten festen Referenzrang berechnet. */
42
+ denseSpread?: number;
43
+ denseScoresObserved: number;
44
+ /** Tiefster tatsaechlich beobachteter dichter Rang; 0 bedeutet keine dichte Evidenz. */
45
+ deepestDenseRankObserved: number;
46
+ /** Nur gesetzt, wenn genau der kalibrierte Referenzrang beobachtet wurde. */
47
+ denseReferenceRankObserved?: number;
48
+ /** Zahl der Kandidaten in der festen, residual gueltigen Evidenzunion. */
49
+ candidateEvidenceCount: number;
50
+ candidateIdfCoverage: number;
51
+ queryTerms: string[];
52
+ policy: RelevancePolicyV1;
53
+ }
54
+ export interface CandidateIdfCoverageV1 {
55
+ coverage: number;
56
+ queryTerms: string[];
57
+ }
58
+ export interface CompleteRelevanceMeasurementsV1 {
59
+ topDenseScore: number;
60
+ denseSpread: number;
61
+ candidateIdfCoverage: number;
62
+ }
63
+ /** Die qwen-Kalibrierung misst die feste Union aus dichtem und spaerlichem Abruf. */
64
+ export type RelevanceEvidenceBranch = "dense" | "sparse";
65
+ export interface RelevanceEvidenceBranchV1 {
66
+ branch: RelevanceEvidenceBranch;
67
+ candidateIds: readonly string[];
68
+ }
69
+ export interface FixedRelevanceEvidencePoolV1 {
70
+ /** Deterministische Union der kalibrierten Praefixe in Zweigreihenfolge. */
71
+ candidateIds: string[];
72
+ /** Gueltige Kandidaten im festen dichten Praefix; nur sie tragen Dense-Scores. */
73
+ denseCandidateIds: string[];
74
+ }
75
+ /**
76
+ * Baut einen von einem groesseren Abruflimit unabhaengigen Evidenzpool.
77
+ *
78
+ * Pro Abrufzweig zaehlt ausschliesslich das feste rohe Praefix der
79
+ * Kalibrierung. Erst danach werden residual ungueltige Kandidaten entfernt;
80
+ * ein tieferer Kandidat darf einen ausgeschlossenen Praefix-Kandidaten nicht
81
+ * ersetzen, nur weil der Aufrufer statt 50 nun 200 Treffer abruft. Fehlt
82
+ * dadurch ein dichter Referenzrang, trifft `decideResultRelevance` die
83
+ * sichtbare konservative Nichtentscheidung.
84
+ */
85
+ export declare function selectFixedRelevanceEvidencePool(branches: readonly RelevanceEvidenceBranchV1[], eligibleCandidateIds: ReadonlySet<string>, branchDepth: number): FixedRelevanceEvidencePoolV1;
86
+ /** Validiert eine explizit profilgebundene Policy; ohne Vorgabe bleibt Legacy-Verhalten. */
87
+ export declare function resolveRelevancePolicy(config: RelevancePolicyConfig | undefined): RelevancePolicyV1 | false;
88
+ /** Validiert und kopiert die Korpusbindung einer Policy. */
89
+ export declare function resolveRelevancePolicyBinding(binding: RelevancePolicyBindingV1): RelevancePolicyBindingV1;
90
+ /**
91
+ * Entscheidet rein aus Kandidatenevidenz; keine Liste wird am eigenen
92
+ * Maximum normalisiert. Fehlt der feste Referenzrang, ist eine kalibrierte
93
+ * Negativentscheidung unzulaessig. Ein exakter Symbolname darf weiterhin
94
+ * direkt akzeptieren.
95
+ */
96
+ export declare function decideResultRelevance(queryText: string, candidates: readonly RelevanceCandidateEvidence[], policy: RelevancePolicyV1): RelevanceDecisionV1;
97
+ /** Die drei Nicht-Symbol-Signale sind bewusst eine Konjunktion. */
98
+ export declare function satisfiesNonSymbolRelevancePolicy(measurements: CompleteRelevanceMeasurementsV1, policy: RelevancePolicyV1): boolean;
99
+ /**
100
+ * Groesster IDF-gewichteter Anteil ALLER normalisierten Query-Terme, den EIN
101
+ * Kandidat gemeinsam belegt. IDF wird ausschliesslich im tatsaechlichen
102
+ * Kandidatenpool berechnet; auch dort unbelegte Query-Terme bleiben mit ihrem
103
+ * hohen Gewicht im Nenner. Ein ueber mehrere Treffer verteilter Wortsalat
104
+ * gilt damit nicht als Antwort.
105
+ */
106
+ export declare function maximumCandidateIdfCoverage(queryText: string, documents: readonly string[]): CandidateIdfCoverageV1;
107
+ //# sourceMappingURL=relevance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relevance.d.ts","sourceRoot":"","sources":["../src/relevance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Ergebnis-Relevanz und Abwesenheitsaussage (WP-231).
3
+ *
4
+ * Ein Listenmaximum allein ist kein Relevanzbeleg: irgendein Kandidat ist
5
+ * immer der beste, auch wenn die gesuchte Sache im Repository nicht
6
+ * existiert. Die kalibrierte Entscheidung hat deshalb genau zwei Wege:
7
+ *
8
+ * 1. ein exakter Symbolname ist direkte Evidenz;
9
+ * 2. sonst muessen ALLE drei gemessenen Signale tragen: absoluter dichter
10
+ * Topwert, relativer Abstand zu einem festen dichten Referenzrang und die
11
+ * IDF-gewichtete Abdeckung der normalisierten Query-Terme in einem
12
+ * einzelnen Kandidaten der festen Dense-/Sparse-Evidenzunion.
13
+ *
14
+ * Die exportierte qwen-Policy ist am stehenden, in
15
+ * `benchmark/signals.mjs` vermessenen Untangle-Selbstindex kalibriert. Die
16
+ * Konjunktion behaelt dort alle 22 beantwortbaren Hauptfragen sowie sieben
17
+ * getrennte deutsche Prosa-Proben und verwirft 11 von 14 klaren bzw.
18
+ * adversarialen Negativfragen. Die beiden nachgemessenen Grenzwerte liegen
19
+ * bewusst zwischen dem jeweils schwaechsten positiven und staerksten klar
20
+ * negativen Signal; kein einzelnes Signal darf allein entscheiden. Andere
21
+ * Modelle oder Korpora koennen voellig andere Wertebereiche haben. Deshalb
22
+ * hat die Engine keinen universellen Default, und jede Policy muss zusaetzlich
23
+ * an Workspace und Collection gebunden werden. Auch nach einer wesentlichen
24
+ * Revision desselben Korpus ist neu zu messen und zu kalibrieren.
25
+ */
26
+ import { termFrequencies, tokenizeIdentifiers } from "./tokenize.js";
27
+ export const NO_SUFFICIENT_MATCH_WARNING_CODE = "NO_SUFFICIENT_MATCH";
28
+ export const RELEVANCE_POLICY_NOT_EVALUATED_WARNING_CODE = "RELEVANCE_POLICY_NOT_EVALUATED";
29
+ export const QWEN3_EMBEDDING_06B_RELEVANCE_POLICY = {
30
+ calibrationId: "qwen3-embedding:0.6b/untangle-self-index-2026-09-05",
31
+ minimumDenseScore: 0.45,
32
+ minimumDenseSpread: 0.061,
33
+ denseReferenceRank: 50,
34
+ minimumCandidateIdfCoverage: 0.291,
35
+ };
36
+ /**
37
+ * Baut einen von einem groesseren Abruflimit unabhaengigen Evidenzpool.
38
+ *
39
+ * Pro Abrufzweig zaehlt ausschliesslich das feste rohe Praefix der
40
+ * Kalibrierung. Erst danach werden residual ungueltige Kandidaten entfernt;
41
+ * ein tieferer Kandidat darf einen ausgeschlossenen Praefix-Kandidaten nicht
42
+ * ersetzen, nur weil der Aufrufer statt 50 nun 200 Treffer abruft. Fehlt
43
+ * dadurch ein dichter Referenzrang, trifft `decideResultRelevance` die
44
+ * sichtbare konservative Nichtentscheidung.
45
+ */
46
+ export function selectFixedRelevanceEvidencePool(branches, eligibleCandidateIds, branchDepth) {
47
+ if (!Number.isInteger(branchDepth) || branchDepth < 1) {
48
+ throw new Error(`relevance evidence branchDepth must be an integer >= 1, got ${branchDepth}`);
49
+ }
50
+ const candidateIds = [];
51
+ const denseCandidateIds = [];
52
+ const seen = new Set();
53
+ const denseSeen = new Set();
54
+ for (const branch of branches) {
55
+ for (const candidateId of branch.candidateIds.slice(0, branchDepth)) {
56
+ if (!eligibleCandidateIds.has(candidateId)) {
57
+ continue;
58
+ }
59
+ if (branch.branch === "dense" && !denseSeen.has(candidateId)) {
60
+ denseSeen.add(candidateId);
61
+ denseCandidateIds.push(candidateId);
62
+ }
63
+ if (!seen.has(candidateId)) {
64
+ seen.add(candidateId);
65
+ candidateIds.push(candidateId);
66
+ }
67
+ }
68
+ }
69
+ return { candidateIds, denseCandidateIds };
70
+ }
71
+ /** Validiert eine explizit profilgebundene Policy; ohne Vorgabe bleibt Legacy-Verhalten. */
72
+ export function resolveRelevancePolicy(config) {
73
+ if (config === false || config === undefined) {
74
+ return false;
75
+ }
76
+ const policy = { ...config };
77
+ if (policy.calibrationId.trim() === "") {
78
+ throw new Error("relevancePolicy.calibrationId must not be empty");
79
+ }
80
+ assertFiniteRange("minimumDenseScore", policy.minimumDenseScore, -1, 1);
81
+ assertFiniteRange("minimumDenseSpread", policy.minimumDenseSpread, 0, 2);
82
+ if (!Number.isInteger(policy.denseReferenceRank) || policy.denseReferenceRank < 2) {
83
+ throw new Error(`relevancePolicy.denseReferenceRank must be an integer >= 2, got ${String(policy.denseReferenceRank)}`);
84
+ }
85
+ assertFiniteRange("minimumCandidateIdfCoverage", policy.minimumCandidateIdfCoverage, 0, 1);
86
+ return policy;
87
+ }
88
+ /** Validiert und kopiert die Korpusbindung einer Policy. */
89
+ export function resolveRelevancePolicyBinding(binding) {
90
+ const workspaceId = binding.workspaceId.trim();
91
+ const collection = binding.collection.trim();
92
+ if (workspaceId === "") {
93
+ throw new Error("relevancePolicy binding workspaceId must not be empty");
94
+ }
95
+ if (collection === "") {
96
+ throw new Error("relevancePolicy binding collection must not be empty");
97
+ }
98
+ const policy = resolveRelevancePolicy(binding.policy);
99
+ if (policy === false) {
100
+ throw new Error("relevancePolicy binding must contain an enabled policy");
101
+ }
102
+ return { workspaceId, collection, policy };
103
+ }
104
+ /**
105
+ * Entscheidet rein aus Kandidatenevidenz; keine Liste wird am eigenen
106
+ * Maximum normalisiert. Fehlt der feste Referenzrang, ist eine kalibrierte
107
+ * Negativentscheidung unzulaessig. Ein exakter Symbolname darf weiterhin
108
+ * direkt akzeptieren.
109
+ */
110
+ export function decideResultRelevance(queryText, candidates, policy) {
111
+ const exactSymbolMatches = candidates.filter((candidate) => candidate.exactSymbolMatch).length;
112
+ const denseScores = candidates
113
+ .map((candidate) => candidate.denseScore)
114
+ .filter((score) => score !== undefined && Number.isFinite(score))
115
+ .sort((left, right) => right - left);
116
+ const topDenseScore = denseScores[0];
117
+ const coverage = maximumCandidateIdfCoverage(queryText, candidates.map((candidate) => candidate.lexicalText));
118
+ const shared = {
119
+ exactSymbolMatches,
120
+ ...(topDenseScore === undefined ? {} : { topDenseScore }),
121
+ denseScoresObserved: denseScores.length,
122
+ deepestDenseRankObserved: denseScores.length,
123
+ candidateEvidenceCount: candidates.length,
124
+ candidateIdfCoverage: coverage.coverage,
125
+ queryTerms: coverage.queryTerms,
126
+ policy: { ...policy },
127
+ };
128
+ if (exactSymbolMatches > 0) {
129
+ return { status: "accepted", basis: "exact_symbol", ...shared };
130
+ }
131
+ if (denseScores.length < policy.denseReferenceRank) {
132
+ return {
133
+ status: "not_evaluated",
134
+ basis: "dense_reference_unavailable",
135
+ ...shared,
136
+ };
137
+ }
138
+ const denseReferenceScore = denseScores[policy.denseReferenceRank - 1];
139
+ const denseSpread = topDenseScore - denseReferenceScore;
140
+ const sufficient = satisfiesNonSymbolRelevancePolicy({
141
+ topDenseScore: topDenseScore,
142
+ denseSpread,
143
+ candidateIdfCoverage: coverage.coverage,
144
+ }, policy);
145
+ return {
146
+ status: sufficient ? "accepted" : "rejected",
147
+ basis: sufficient
148
+ ? "dense_absolute_relative_and_candidate_idf_coverage"
149
+ : "insufficient_evidence",
150
+ ...shared,
151
+ denseReferenceScore,
152
+ denseSpread,
153
+ denseReferenceRankObserved: policy.denseReferenceRank,
154
+ };
155
+ }
156
+ /** Die drei Nicht-Symbol-Signale sind bewusst eine Konjunktion. */
157
+ export function satisfiesNonSymbolRelevancePolicy(measurements, policy) {
158
+ return (measurements.topDenseScore >= policy.minimumDenseScore &&
159
+ measurements.denseSpread >= policy.minimumDenseSpread &&
160
+ measurements.candidateIdfCoverage >= policy.minimumCandidateIdfCoverage);
161
+ }
162
+ /**
163
+ * Groesster IDF-gewichteter Anteil ALLER normalisierten Query-Terme, den EIN
164
+ * Kandidat gemeinsam belegt. IDF wird ausschliesslich im tatsaechlichen
165
+ * Kandidatenpool berechnet; auch dort unbelegte Query-Terme bleiben mit ihrem
166
+ * hohen Gewicht im Nenner. Ein ueber mehrere Treffer verteilter Wortsalat
167
+ * gilt damit nicht als Antwort.
168
+ */
169
+ export function maximumCandidateIdfCoverage(queryText, documents) {
170
+ const queryTerms = [...termFrequencies(tokenizeIdentifiers(queryText)).keys()];
171
+ if (queryTerms.length === 0 || documents.length === 0) {
172
+ return { coverage: 0, queryTerms };
173
+ }
174
+ const documentTerms = documents.map((document) => new Set(tokenizeIdentifiers(document)));
175
+ const poolSize = documentTerms.length;
176
+ const weightedTerms = queryTerms.map((term) => {
177
+ const documentFrequency = documentTerms.filter((terms) => terms.has(term)).length;
178
+ const idf = Math.log(1 + (poolSize - documentFrequency + 0.5) / (documentFrequency + 0.5));
179
+ return { term, idf };
180
+ });
181
+ const totalIdf = weightedTerms.reduce((sum, entry) => sum + entry.idf, 0);
182
+ if (totalIdf === 0) {
183
+ return { coverage: 0, queryTerms };
184
+ }
185
+ let maximum = 0;
186
+ for (const terms of documentTerms) {
187
+ const matchedIdf = weightedTerms
188
+ .filter((entry) => terms.has(entry.term))
189
+ .reduce((sum, entry) => sum + entry.idf, 0);
190
+ maximum = Math.max(maximum, matchedIdf / totalIdf);
191
+ }
192
+ return { coverage: maximum, queryTerms };
193
+ }
194
+ function assertFiniteRange(name, value, minimum, maximum) {
195
+ if (!Number.isFinite(value) || value < minimum || value > maximum) {
196
+ throw new Error(`relevancePolicy.${name} must be finite and in [${minimum}, ${maximum}], got ${String(value)}`);
197
+ }
198
+ }
199
+ //# sourceMappingURL=relevance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relevance.js","sourceRoot":"","sources":["../src/relevance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /** Independent recall branches, bounded provider calls and deterministic failure diagnostics. */
2
+ import { type PayloadFilter, type PortCallOptions, type ScoredPointV1, type ScrollPageV1, type ToolWarningV1, type VectorStore } from "@untangle-code/domain";
3
+ import type { SearchSkipInput } from "./ledger.js";
4
+ import type { ProfileTargetV1, SparseVectorizer } from "./port.js";
5
+ import type { SearchMode } from "./types.js";
6
+ export type RetrievalBranch = "dense" | "sparse" | "symbol";
7
+ type RetrievalTarget = Pick<ProfileTargetV1, "collection" | "embeddingProfileId" | "embedder">;
8
+ export interface IndependentRetrievalRequest {
9
+ vectorStore: Pick<VectorStore, "hybridQuery" | "scroll" | "backend">;
10
+ target: RetrievalTarget;
11
+ text: string;
12
+ filter: PayloadFilter;
13
+ candidateLimit: number;
14
+ mode: SearchMode;
15
+ sparseVectorizer?: SparseVectorizer;
16
+ branchTimeoutMs: number;
17
+ }
18
+ interface FailedBranch {
19
+ branch: RetrievalBranch;
20
+ status: "failed";
21
+ error: unknown;
22
+ }
23
+ export interface IndependentRetrievalResult {
24
+ densePoints: readonly ScoredPointV1[];
25
+ sparsePoints: readonly ScoredPointV1[];
26
+ symbolPage?: ScrollPageV1;
27
+ completedBranches: ReadonlySet<RetrievalBranch>;
28
+ failures: readonly FailedBranch[];
29
+ warnings: ToolWarningV1[];
30
+ caveats: string[];
31
+ skipped: SearchSkipInput[];
32
+ }
33
+ /** The mode controls both recall and ranking, so it has one shared definition. */
34
+ export declare function branchesOfMode(mode: SearchMode): {
35
+ dense: boolean;
36
+ lexical: boolean;
37
+ symbol: boolean;
38
+ };
39
+ /** Cancellation is control flow, never a degraded retrieval result. */
40
+ export declare function rethrowCancellation(error: unknown, options?: PortCallOptions): void;
41
+ /** Return all requested branch outcomes in fixed dense/sparse/symbol order. */
42
+ export declare function retrieveIndependentBranches(request: IndependentRetrievalRequest, options?: PortCallOptions): Promise<IndependentRetrievalResult>;
43
+ /** The caller first records diagnostics, then distinguishes total failure from empty success. */
44
+ export declare function assertCompletedRetrieval(result: IndependentRetrievalResult, target: RetrievalTarget): void;
45
+ export {};
46
+ //# sourceMappingURL=retrieval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../src/retrieval.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC5D,KAAK,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,oBAAoB,GAAG,UAAU,CAAC,CAAC;AAE/F,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;IACrE,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAOD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IACtC,YAAY,EAAE,SAAS,aAAa,EAAE,CAAC;IACvC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,iBAAiB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAChD,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAWA;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAQnF;AA2JD,+EAA+E;AAC/E,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,2BAA2B,EACpC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,0BAA0B,CAAC,CAiCrC;AAED,iGAAiG;AACjG,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,eAAe,GACtB,IAAI,CAgBN"}