@jaepil/uqa 0.1.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 (233) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +788 -0
  3. package/dist/types/src/analysis/analyzer.d.ts +27 -0
  4. package/dist/types/src/analysis/analyzer.d.ts.map +1 -0
  5. package/dist/types/src/analysis/char-filter.d.ts +27 -0
  6. package/dist/types/src/analysis/char-filter.d.ts.map +1 -0
  7. package/dist/types/src/analysis/token-filter.d.ts +73 -0
  8. package/dist/types/src/analysis/token-filter.d.ts.map +1 -0
  9. package/dist/types/src/analysis/tokenizer.d.ts +42 -0
  10. package/dist/types/src/analysis/tokenizer.d.ts.map +1 -0
  11. package/dist/types/src/api/query-builder.d.ts +103 -0
  12. package/dist/types/src/api/query-builder.d.ts.map +1 -0
  13. package/dist/types/src/cli/repl.d.ts +42 -0
  14. package/dist/types/src/cli/repl.d.ts.map +1 -0
  15. package/dist/types/src/core/functor.d.ts +38 -0
  16. package/dist/types/src/core/functor.d.ts.map +1 -0
  17. package/dist/types/src/core/hierarchical.d.ts +24 -0
  18. package/dist/types/src/core/hierarchical.d.ts.map +1 -0
  19. package/dist/types/src/core/posting-list.d.ts +43 -0
  20. package/dist/types/src/core/posting-list.d.ts.map +1 -0
  21. package/dist/types/src/core/types.d.ts +116 -0
  22. package/dist/types/src/core/types.d.ts.map +1 -0
  23. package/dist/types/src/engine.d.ts +130 -0
  24. package/dist/types/src/engine.d.ts.map +1 -0
  25. package/dist/types/src/execution/batch.d.ts +144 -0
  26. package/dist/types/src/execution/batch.d.ts.map +1 -0
  27. package/dist/types/src/execution/physical.d.ts +18 -0
  28. package/dist/types/src/execution/physical.d.ts.map +1 -0
  29. package/dist/types/src/execution/relational.d.ts +174 -0
  30. package/dist/types/src/execution/relational.d.ts.map +1 -0
  31. package/dist/types/src/execution/scan.d.ts +41 -0
  32. package/dist/types/src/execution/scan.d.ts.map +1 -0
  33. package/dist/types/src/execution/spill.d.ts +39 -0
  34. package/dist/types/src/execution/spill.d.ts.map +1 -0
  35. package/dist/types/src/fdw/arrow-handler.d.ts +28 -0
  36. package/dist/types/src/fdw/arrow-handler.d.ts.map +1 -0
  37. package/dist/types/src/fdw/duckdb-handler.d.ts +32 -0
  38. package/dist/types/src/fdw/duckdb-handler.d.ts.map +1 -0
  39. package/dist/types/src/fdw/foreign-table.d.ts +47 -0
  40. package/dist/types/src/fdw/foreign-table.d.ts.map +1 -0
  41. package/dist/types/src/fdw/handler.d.ts +52 -0
  42. package/dist/types/src/fdw/handler.d.ts.map +1 -0
  43. package/dist/types/src/fusion/attention.d.ts +23 -0
  44. package/dist/types/src/fusion/attention.d.ts.map +1 -0
  45. package/dist/types/src/fusion/boolean.d.ts +6 -0
  46. package/dist/types/src/fusion/boolean.d.ts.map +1 -0
  47. package/dist/types/src/fusion/learned.d.ts +12 -0
  48. package/dist/types/src/fusion/learned.d.ts.map +1 -0
  49. package/dist/types/src/fusion/log-odds.d.ts +87 -0
  50. package/dist/types/src/fusion/log-odds.d.ts.map +1 -0
  51. package/dist/types/src/fusion/query-features.d.ts +8 -0
  52. package/dist/types/src/fusion/query-features.d.ts.map +1 -0
  53. package/dist/types/src/graph/centrality.d.ts +35 -0
  54. package/dist/types/src/graph/centrality.d.ts.map +1 -0
  55. package/dist/types/src/graph/cross-paradigm.d.ts +68 -0
  56. package/dist/types/src/graph/cross-paradigm.d.ts.map +1 -0
  57. package/dist/types/src/graph/cypher/ast.d.ts +175 -0
  58. package/dist/types/src/graph/cypher/ast.d.ts.map +1 -0
  59. package/dist/types/src/graph/cypher/compiler.d.ts +60 -0
  60. package/dist/types/src/graph/cypher/compiler.d.ts.map +1 -0
  61. package/dist/types/src/graph/cypher/lexer.d.ts +82 -0
  62. package/dist/types/src/graph/cypher/lexer.d.ts.map +1 -0
  63. package/dist/types/src/graph/cypher/parser.d.ts +50 -0
  64. package/dist/types/src/graph/cypher/parser.d.ts.map +1 -0
  65. package/dist/types/src/graph/delta.d.ts +31 -0
  66. package/dist/types/src/graph/delta.d.ts.map +1 -0
  67. package/dist/types/src/graph/graph-embedding.d.ts +13 -0
  68. package/dist/types/src/graph/graph-embedding.d.ts.map +1 -0
  69. package/dist/types/src/graph/incremental-match.d.ts +16 -0
  70. package/dist/types/src/graph/incremental-match.d.ts.map +1 -0
  71. package/dist/types/src/graph/index.d.ts +58 -0
  72. package/dist/types/src/graph/index.d.ts.map +1 -0
  73. package/dist/types/src/graph/join.d.ts +18 -0
  74. package/dist/types/src/graph/join.d.ts.map +1 -0
  75. package/dist/types/src/graph/message-passing.d.ts +17 -0
  76. package/dist/types/src/graph/message-passing.d.ts.map +1 -0
  77. package/dist/types/src/graph/operators.d.ts +81 -0
  78. package/dist/types/src/graph/operators.d.ts.map +1 -0
  79. package/dist/types/src/graph/pattern.d.ts +63 -0
  80. package/dist/types/src/graph/pattern.d.ts.map +1 -0
  81. package/dist/types/src/graph/posting-list.d.ts +24 -0
  82. package/dist/types/src/graph/posting-list.d.ts.map +1 -0
  83. package/dist/types/src/graph/rpq-optimizer.d.ts +25 -0
  84. package/dist/types/src/graph/rpq-optimizer.d.ts.map +1 -0
  85. package/dist/types/src/graph/store.d.ts +61 -0
  86. package/dist/types/src/graph/store.d.ts.map +1 -0
  87. package/dist/types/src/graph/temporal-filter.d.ts +12 -0
  88. package/dist/types/src/graph/temporal-filter.d.ts.map +1 -0
  89. package/dist/types/src/graph/temporal-pattern-match.d.ts +26 -0
  90. package/dist/types/src/graph/temporal-pattern-match.d.ts.map +1 -0
  91. package/dist/types/src/graph/temporal-traverse.d.ts +25 -0
  92. package/dist/types/src/graph/temporal-traverse.d.ts.map +1 -0
  93. package/dist/types/src/graph/versioned-store.d.ts +64 -0
  94. package/dist/types/src/graph/versioned-store.d.ts.map +1 -0
  95. package/dist/types/src/index.d.ts +20 -0
  96. package/dist/types/src/index.d.ts.map +1 -0
  97. package/dist/types/src/joins/base.d.ts +18 -0
  98. package/dist/types/src/joins/base.d.ts.map +1 -0
  99. package/dist/types/src/joins/cross-paradigm.d.ts +46 -0
  100. package/dist/types/src/joins/cross-paradigm.d.ts.map +1 -0
  101. package/dist/types/src/joins/cross.d.ts +9 -0
  102. package/dist/types/src/joins/cross.d.ts.map +1 -0
  103. package/dist/types/src/joins/index.d.ts +7 -0
  104. package/dist/types/src/joins/index.d.ts.map +1 -0
  105. package/dist/types/src/joins/inner.d.ts +7 -0
  106. package/dist/types/src/joins/inner.d.ts.map +1 -0
  107. package/dist/types/src/joins/outer.d.ts +16 -0
  108. package/dist/types/src/joins/outer.d.ts.map +1 -0
  109. package/dist/types/src/joins/semi.d.ts +22 -0
  110. package/dist/types/src/joins/semi.d.ts.map +1 -0
  111. package/dist/types/src/joins/sort-merge.d.ts +7 -0
  112. package/dist/types/src/joins/sort-merge.d.ts.map +1 -0
  113. package/dist/types/src/math/linalg.d.ts +27 -0
  114. package/dist/types/src/math/linalg.d.ts.map +1 -0
  115. package/dist/types/src/math/random.d.ts +15 -0
  116. package/dist/types/src/math/random.d.ts.map +1 -0
  117. package/dist/types/src/operators/aggregation.d.ts +65 -0
  118. package/dist/types/src/operators/aggregation.d.ts.map +1 -0
  119. package/dist/types/src/operators/attention.d.ts +16 -0
  120. package/dist/types/src/operators/attention.d.ts.map +1 -0
  121. package/dist/types/src/operators/backend.d.ts +52 -0
  122. package/dist/types/src/operators/backend.d.ts.map +1 -0
  123. package/dist/types/src/operators/base.d.ts +32 -0
  124. package/dist/types/src/operators/base.d.ts.map +1 -0
  125. package/dist/types/src/operators/boolean.d.ts +23 -0
  126. package/dist/types/src/operators/boolean.d.ts.map +1 -0
  127. package/dist/types/src/operators/calibrated-vector.d.ts +56 -0
  128. package/dist/types/src/operators/calibrated-vector.d.ts.map +1 -0
  129. package/dist/types/src/operators/deep-fusion.d.ts +104 -0
  130. package/dist/types/src/operators/deep-fusion.d.ts.map +1 -0
  131. package/dist/types/src/operators/deep-learn.d.ts +87 -0
  132. package/dist/types/src/operators/deep-learn.d.ts.map +1 -0
  133. package/dist/types/src/operators/hierarchical.d.ts +44 -0
  134. package/dist/types/src/operators/hierarchical.d.ts.map +1 -0
  135. package/dist/types/src/operators/hybrid.d.ts +75 -0
  136. package/dist/types/src/operators/hybrid.d.ts.map +1 -0
  137. package/dist/types/src/operators/learned-fusion.d.ts +15 -0
  138. package/dist/types/src/operators/learned-fusion.d.ts.map +1 -0
  139. package/dist/types/src/operators/multi-field.d.ts +13 -0
  140. package/dist/types/src/operators/multi-field.d.ts.map +1 -0
  141. package/dist/types/src/operators/multi-stage.d.ts +12 -0
  142. package/dist/types/src/operators/multi-stage.d.ts.map +1 -0
  143. package/dist/types/src/operators/primitive.d.ts +75 -0
  144. package/dist/types/src/operators/primitive.d.ts.map +1 -0
  145. package/dist/types/src/operators/progressive-fusion.d.ts +13 -0
  146. package/dist/types/src/operators/progressive-fusion.d.ts.map +1 -0
  147. package/dist/types/src/operators/sparse.d.ts +12 -0
  148. package/dist/types/src/operators/sparse.d.ts.map +1 -0
  149. package/dist/types/src/planner/cardinality.d.ts +110 -0
  150. package/dist/types/src/planner/cardinality.d.ts.map +1 -0
  151. package/dist/types/src/planner/cost-model.d.ts +16 -0
  152. package/dist/types/src/planner/cost-model.d.ts.map +1 -0
  153. package/dist/types/src/planner/executor.d.ts +48 -0
  154. package/dist/types/src/planner/executor.d.ts.map +1 -0
  155. package/dist/types/src/planner/join-enumerator.d.ts +76 -0
  156. package/dist/types/src/planner/join-enumerator.d.ts.map +1 -0
  157. package/dist/types/src/planner/join-graph.d.ts +61 -0
  158. package/dist/types/src/planner/join-graph.d.ts.map +1 -0
  159. package/dist/types/src/planner/join-order.d.ts +24 -0
  160. package/dist/types/src/planner/join-order.d.ts.map +1 -0
  161. package/dist/types/src/planner/optimizer.d.ts +62 -0
  162. package/dist/types/src/planner/optimizer.d.ts.map +1 -0
  163. package/dist/types/src/planner/parallel.d.ts +43 -0
  164. package/dist/types/src/planner/parallel.d.ts.map +1 -0
  165. package/dist/types/src/scoring/bayesian-bm25.d.ts +22 -0
  166. package/dist/types/src/scoring/bayesian-bm25.d.ts.map +1 -0
  167. package/dist/types/src/scoring/bm25.d.ts +20 -0
  168. package/dist/types/src/scoring/bm25.d.ts.map +1 -0
  169. package/dist/types/src/scoring/calibration.d.ts +68 -0
  170. package/dist/types/src/scoring/calibration.d.ts.map +1 -0
  171. package/dist/types/src/scoring/external-prior.d.ts +55 -0
  172. package/dist/types/src/scoring/external-prior.d.ts.map +1 -0
  173. package/dist/types/src/scoring/fusion-wand.d.ts +19 -0
  174. package/dist/types/src/scoring/fusion-wand.d.ts.map +1 -0
  175. package/dist/types/src/scoring/multi-field.d.ts +10 -0
  176. package/dist/types/src/scoring/multi-field.d.ts.map +1 -0
  177. package/dist/types/src/scoring/parameter-learner.d.ts +42 -0
  178. package/dist/types/src/scoring/parameter-learner.d.ts.map +1 -0
  179. package/dist/types/src/scoring/vector.d.ts +42 -0
  180. package/dist/types/src/scoring/vector.d.ts.map +1 -0
  181. package/dist/types/src/scoring/wand.d.ts +51 -0
  182. package/dist/types/src/scoring/wand.d.ts.map +1 -0
  183. package/dist/types/src/sql/compiler.d.ts +551 -0
  184. package/dist/types/src/sql/compiler.d.ts.map +1 -0
  185. package/dist/types/src/sql/expr-evaluator.d.ts +43 -0
  186. package/dist/types/src/sql/expr-evaluator.d.ts.map +1 -0
  187. package/dist/types/src/sql/fts-query.d.ts +60 -0
  188. package/dist/types/src/sql/fts-query.d.ts.map +1 -0
  189. package/dist/types/src/sql/table.d.ts +72 -0
  190. package/dist/types/src/sql/table.d.ts.map +1 -0
  191. package/dist/types/src/storage/abc/document-store.d.ts +44 -0
  192. package/dist/types/src/storage/abc/document-store.d.ts.map +1 -0
  193. package/dist/types/src/storage/abc/graph-store.d.ts +109 -0
  194. package/dist/types/src/storage/abc/graph-store.d.ts.map +1 -0
  195. package/dist/types/src/storage/abc/inverted-index.d.ts +118 -0
  196. package/dist/types/src/storage/abc/inverted-index.d.ts.map +1 -0
  197. package/dist/types/src/storage/block-max-index.d.ts +45 -0
  198. package/dist/types/src/storage/block-max-index.d.ts.map +1 -0
  199. package/dist/types/src/storage/btree-index.d.ts +18 -0
  200. package/dist/types/src/storage/btree-index.d.ts.map +1 -0
  201. package/dist/types/src/storage/catalog.d.ts +87 -0
  202. package/dist/types/src/storage/catalog.d.ts.map +1 -0
  203. package/dist/types/src/storage/document-store.d.ts +20 -0
  204. package/dist/types/src/storage/document-store.d.ts.map +1 -0
  205. package/dist/types/src/storage/index-abc.d.ts +16 -0
  206. package/dist/types/src/storage/index-abc.d.ts.map +1 -0
  207. package/dist/types/src/storage/index-manager.d.ts +19 -0
  208. package/dist/types/src/storage/index-manager.d.ts.map +1 -0
  209. package/dist/types/src/storage/index-types.d.ts +10 -0
  210. package/dist/types/src/storage/index-types.d.ts.map +1 -0
  211. package/dist/types/src/storage/inverted-index.d.ts +55 -0
  212. package/dist/types/src/storage/inverted-index.d.ts.map +1 -0
  213. package/dist/types/src/storage/ivf-index.d.ts +57 -0
  214. package/dist/types/src/storage/ivf-index.d.ts.map +1 -0
  215. package/dist/types/src/storage/managed-connection.d.ts +64 -0
  216. package/dist/types/src/storage/managed-connection.d.ts.map +1 -0
  217. package/dist/types/src/storage/spatial-index.d.ts +18 -0
  218. package/dist/types/src/storage/spatial-index.d.ts.map +1 -0
  219. package/dist/types/src/storage/sqlite-document-store.d.ts +54 -0
  220. package/dist/types/src/storage/sqlite-document-store.d.ts.map +1 -0
  221. package/dist/types/src/storage/sqlite-graph-store.d.ts +59 -0
  222. package/dist/types/src/storage/sqlite-graph-store.d.ts.map +1 -0
  223. package/dist/types/src/storage/sqlite-inverted-index.d.ts +75 -0
  224. package/dist/types/src/storage/sqlite-inverted-index.d.ts.map +1 -0
  225. package/dist/types/src/storage/transaction.d.ts +15 -0
  226. package/dist/types/src/storage/transaction.d.ts.map +1 -0
  227. package/dist/types/src/storage/vector-index.d.ts +23 -0
  228. package/dist/types/src/storage/vector-index.d.ts.map +1 -0
  229. package/dist/uqa.es.js +16156 -0
  230. package/dist/uqa.es.js.map +1 -0
  231. package/dist/uqa.umd.js +11 -0
  232. package/dist/uqa.umd.js.map +1 -0
  233. package/package.json +73 -0
@@ -0,0 +1,55 @@
1
+ import type { IndexStats } from "../core/types.js";
2
+ import type { BayesianBM25Params } from "./bayesian-bm25.js";
3
+ /**
4
+ * A prior function that maps document fields to a probability in (0, 1).
5
+ * Returns 0.5 (neutral prior) when no prior information is available.
6
+ */
7
+ export type PriorFn = (docFields: Record<string, unknown>) => number;
8
+ /**
9
+ * Bayesian BM25 scorer with external prior.
10
+ *
11
+ * Computes the BM25 likelihood probability, then combines it with
12
+ * an external prior via log-odds addition to produce a posterior.
13
+ */
14
+ export declare class ExternalPriorScorer {
15
+ private readonly _bm25;
16
+ private readonly _transform;
17
+ private readonly _priorFn;
18
+ constructor(params: BayesianBM25Params, indexStats: IndexStats, priorFn: PriorFn);
19
+ /**
20
+ * Compute posterior with external prior via log-odds fusion.
21
+ *
22
+ * 1. Compute BM25 raw score.
23
+ * 2. Convert to likelihood probability via BayesianProbabilityTransform.
24
+ * 3. Compute prior from document fields.
25
+ * 4. Combine via log-odds addition: logit(posterior) = logit(likelihood) + logit(prior).
26
+ * 5. Convert back to probability via sigmoid.
27
+ */
28
+ scoreWithPrior(termFreq: number, docLength: number, docFreq: number, docFields: Record<string, unknown>): number;
29
+ }
30
+ /**
31
+ * Create a recency-based prior function.
32
+ *
33
+ * Documents with a more recent timestamp in the given field receive higher
34
+ * prior probability. The prior decays exponentially with age:
35
+ *
36
+ * prior = 0.5 + 0.4 * exp(-age_days / decay_days)
37
+ *
38
+ * Returns 0.5 (neutral prior) when the field is missing or unparseable.
39
+ *
40
+ * @param field - The document field containing a date/timestamp.
41
+ * @param decayDays - Half-life in days for the exponential decay.
42
+ */
43
+ export declare function recencyPrior(field: string, decayDays?: number): PriorFn;
44
+ /**
45
+ * Create an authority-based prior function.
46
+ *
47
+ * Maps categorical authority levels to prior probabilities.
48
+ * Default levels: {"high": 0.8, "medium": 0.6, "low": 0.4}.
49
+ * Returns 0.5 (neutral) when the field is missing or unrecognized.
50
+ *
51
+ * @param field - The document field containing the authority level.
52
+ * @param levels - Mapping from level name to prior probability.
53
+ */
54
+ export declare function authorityPrior(field: string, levels?: Record<string, number> | null): PriorFn;
55
+ //# sourceMappingURL=external-prior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-prior.d.ts","sourceRoot":"","sources":["../../../../src/scoring/external-prior.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAuB7D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;AAErE;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;gBAEvB,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;IAUhF;;;;;;;;OAQG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM;CAoBV;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAkBrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GACrC,OAAO,CAQT"}
@@ -0,0 +1,19 @@
1
+ import { PostingList } from "../core/posting-list.js";
2
+ import { BoundTightnessAnalyzer } from "./wand.js";
3
+ export declare class FusionWANDScorer {
4
+ protected readonly _signalPostingLists: PostingList[];
5
+ protected readonly _signalUpperBounds: number[];
6
+ protected readonly _alpha: number;
7
+ protected readonly _k: number;
8
+ protected readonly _gating: string | null;
9
+ constructor(signalPostingLists: PostingList[], signalUpperBounds: number[], alpha?: number, k?: number, gating?: string | null);
10
+ private _computeFusedUpperBound;
11
+ scoreTopK(): PostingList;
12
+ }
13
+ export declare class TightenedFusionWANDScorer extends FusionWANDScorer {
14
+ readonly _tighteningFactor: number;
15
+ readonly _originalBounds: number[];
16
+ readonly boundAnalyzer: BoundTightnessAnalyzer;
17
+ constructor(signalPostingLists: PostingList[], signalUpperBounds: number[], alpha?: number, k?: number, gating?: string | null, tighteningFactor?: number);
18
+ }
19
+ //# sourceMappingURL=fusion-wand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fusion-wand.d.ts","sourceRoot":"","sources":["../../../../src/scoring/fusion-wand.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAoBnD,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGxC,kBAAkB,EAAE,WAAW,EAAE,EACjC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,KAAK,SAAM,EACX,CAAC,SAAK,EACN,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IASxB,OAAO,CAAC,uBAAuB;IAS/B,SAAS,IAAI,WAAW;CAmEzB;AAID,qBAAa,yBAA0B,SAAQ,gBAAgB;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;gBAG7C,kBAAkB,EAAE,WAAW,EAAE,EACjC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,KAAK,SAAM,EACX,CAAC,SAAK,EACN,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,gBAAgB,SAAM;CAQzB"}
@@ -0,0 +1,10 @@
1
+ import type { IndexStats } from "../core/types.js";
2
+ import type { BayesianBM25Params } from "./bayesian-bm25.js";
3
+ export declare class MultiFieldBayesianScorer {
4
+ private readonly _fieldNames;
5
+ private readonly _scorers;
6
+ private readonly _weights;
7
+ constructor(fieldConfigs: [string, BayesianBM25Params, number][], indexStats: IndexStats);
8
+ scoreDocument(_docId: number, termFreqPerField: Record<string, number>, docLengthPerField: Record<string, number>, docFreqPerField: Record<string, number>): number;
9
+ }
10
+ //# sourceMappingURL=multi-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-field.d.ts","sourceRoot":"","sources":["../../../../src/scoring/multi-field.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAGlC,YAAY,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,EACpD,UAAU,EAAE,UAAU;IAYxB,aAAa,CACX,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,MAAM;CA2BV"}
@@ -0,0 +1,42 @@
1
+ import type { FitOptions, UpdateOptions } from "bayesian-bm25";
2
+ /**
3
+ * Online parameter learning for Bayesian BM25.
4
+ *
5
+ * Wraps BayesianProbabilityTransform.fit() and .update() to learn
6
+ * calibration parameters (alpha, beta, baseRate) from relevance
7
+ * judgments. Supports both batch learning (fit) and incremental
8
+ * online updates (update).
9
+ */
10
+ export declare class ParameterLearner {
11
+ private readonly _transform;
12
+ /**
13
+ * @param alpha - Initial scaling exponent (default 1.0).
14
+ * @param beta - Initial offset (default 0.0).
15
+ * @param baseRate - Prior base rate of relevance (default 0.5).
16
+ */
17
+ constructor(alpha?: number, beta?: number, baseRate?: number);
18
+ /**
19
+ * Batch-learn calibration parameters from scored documents.
20
+ *
21
+ * @param scores - Array of raw BM25 scores.
22
+ * @param labels - Array of binary relevance labels (0 or 1).
23
+ * @param options - Optional fit options (mode, tfs, doc_len_ratios).
24
+ * @returns The learned parameters as a dict with keys: alpha, beta, baseRate.
25
+ */
26
+ fit(scores: number[], labels: number[], options?: FitOptions): Record<string, number>;
27
+ /**
28
+ * Online update with a single observation.
29
+ *
30
+ * @param score - A single raw BM25 score.
31
+ * @param label - Binary relevance label (0 or 1).
32
+ * @param options - Optional update options (learning_rate, tf, doc_len_ratio).
33
+ */
34
+ update(score: number, label: number, options?: UpdateOptions): void;
35
+ /**
36
+ * Return current learned parameters.
37
+ *
38
+ * @returns Dict with keys: alpha, beta, baseRate.
39
+ */
40
+ params(): Record<string, number>;
41
+ }
42
+ //# sourceMappingURL=parameter-learner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter-learner.d.ts","sourceRoot":"","sources":["../../../../src/scoring/parameter-learner.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE1D;;;;OAIG;gBACS,KAAK,SAAM,EAAE,IAAI,SAAM,EAAE,QAAQ,SAAM;IAQnD;;;;;;;OAOG;IACH,GAAG,CACD,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKzB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAInE;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAOjC"}
@@ -0,0 +1,42 @@
1
+ import type { VectorProbabilityTransform } from "bayesian-bm25";
2
+ /**
3
+ * Vector similarity to probability conversion.
4
+ *
5
+ * Provides both uncalibrated and calibrated modes for converting
6
+ * cosine similarity scores into relevance probabilities.
7
+ */
8
+ export declare class VectorScorer {
9
+ /**
10
+ * Compute cosine similarity between two vectors.
11
+ *
12
+ * Returns 0.0 if either vector has zero norm.
13
+ *
14
+ * @param a - First vector.
15
+ * @param b - Second vector.
16
+ * @returns Cosine similarity in [-1, 1].
17
+ */
18
+ static cosineSimilarity(a: Float64Array, b: Float64Array): number;
19
+ /**
20
+ * Definition 7.1.2: P_vector = (1 + score) / 2 (uncalibrated).
21
+ *
22
+ * Converts a cosine similarity in [-1, 1] to a probability in [0, 1]
23
+ * using the simple linear mapping.
24
+ *
25
+ * @param cosineSim - Cosine similarity value.
26
+ * @returns Probability in [0, 1].
27
+ */
28
+ static similarityToProbability(cosineSim: number): number;
29
+ /**
30
+ * Likelihood ratio calibration (Theorem 3.1.1, Paper 5).
31
+ *
32
+ * Converts cosine similarities to calibrated probabilities using a
33
+ * pre-configured VectorProbabilityTransform with background distribution.
34
+ *
35
+ * @param similarities - Cosine similarities in [-1, 1] for the top-K results.
36
+ * @param calibrator - Pre-configured calibrator with background distribution.
37
+ * @param weights - External relevance weights. If null, uniform weights.
38
+ * @returns Calibrated probabilities in (0, 1).
39
+ */
40
+ static calibratedProbabilities(similarities: number[], calibrator: VectorProbabilityTransform, weights?: number[] | null): number[];
41
+ }
42
+ //# sourceMappingURL=vector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../../src/scoring/vector.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAGhE;;;;;GAKG;AAEH,qBAAa,YAAY;IACvB;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM;IAIjE;;;;;;;;OAQG;IACH,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,uBAAuB,CAC5B,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,EAAE,0BAA0B,EACtC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GACxB,MAAM,EAAE;CAQZ"}
@@ -0,0 +1,51 @@
1
+ import { PostingList } from "../core/posting-list.js";
2
+ import type { InvertedIndex } from "../storage/abc/inverted-index.js";
3
+ export interface WANDScorerLike {
4
+ score(termFreq: number, docLength: number, docFreq: number): number;
5
+ upperBound(docFreq: number): number;
6
+ }
7
+ export declare class WANDScorer {
8
+ protected readonly _scorers: WANDScorerLike[];
9
+ protected readonly _k: number;
10
+ protected readonly _postingLists: PostingList[];
11
+ protected readonly _invertedIndex: InvertedIndex | null;
12
+ protected readonly _fields: string[];
13
+ protected readonly _terms: string[];
14
+ protected readonly _upperBounds: number[];
15
+ private readonly _entries;
16
+ private readonly _cursors;
17
+ constructor(scorers: WANDScorerLike[], k: number, postingLists: PostingList[], invertedIndex?: InvertedIndex | null, fields?: string[] | null, terms?: string[] | null);
18
+ protected _computeUpperBounds(): number[];
19
+ scoreTopK(): PostingList;
20
+ }
21
+ export declare class BlockMaxWANDScorer {
22
+ private readonly _scorers;
23
+ private readonly _k;
24
+ private readonly _blockMaxIndex;
25
+ private readonly _postingLists;
26
+ private readonly _invertedIndex;
27
+ private readonly _fields;
28
+ private readonly _terms;
29
+ private readonly _blockSize;
30
+ private readonly _tableName;
31
+ constructor(scorers: WANDScorerLike[], k: number, blockMaxIndex: {
32
+ getBlockMax(field: string, term: string, blockIdx: number, tableName?: string): number;
33
+ }, postingLists: PostingList[], invertedIndex?: InvertedIndex | null, fields?: string[] | null, terms?: string[] | null, blockSize?: number, tableName?: string);
34
+ private _getBlockIdx;
35
+ scoreTopK(): PostingList;
36
+ }
37
+ export declare class BoundTightnessAnalyzer {
38
+ private _data;
39
+ record(upperBound: number, actualMax: number): void;
40
+ tightnessRatio(): number;
41
+ slack(): number;
42
+ worstBoundIndex(): number;
43
+ clear(): void;
44
+ }
45
+ export declare class AdaptiveWANDScorer extends WANDScorer {
46
+ private readonly _tighteningFactor;
47
+ readonly _analyzer: BoundTightnessAnalyzer;
48
+ constructor(scorers: WANDScorerLike[], k: number, postingLists: PostingList[], invertedIndex?: InvertedIndex | null, fields?: string[] | null, terms?: string[] | null, tighteningFactor?: number);
49
+ protected _computeUpperBounds(): number[];
50
+ }
51
+ //# sourceMappingURL=wand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wand.d.ts","sourceRoot":"","sources":["../../../../src/scoring/wand.ts"],"names":[],"mappings":"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"}