@delali/narsil 0.1.14 → 0.2.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 (251) hide show
  1. package/NOTICE +54 -0
  2. package/README.md +38 -972
  3. package/dist/adapters/filesystem.mjs +1 -1
  4. package/dist/adapters/indexeddb.mjs +1 -1
  5. package/dist/{chunk-WISGW24C.mjs → chunk-AUMKFYTG.mjs} +1 -1
  6. package/dist/{chunk-HRABJLPB.mjs → chunk-BKAI2WXI.mjs} +1 -0
  7. package/dist/chunk-GHJWC2E5.mjs +9 -0
  8. package/dist/chunk-KH3YGMVT.mjs +15 -0
  9. package/dist/{chunk-ALB35PRQ.mjs → chunk-M2EDG55Y.mjs} +8 -0
  10. package/dist/{chunk-HMO6OMZ3.mjs → chunk-S6IAXOBA.mjs} +1073 -506
  11. package/dist/chunk-TGP5M5R7.mjs +880 -0
  12. package/dist/chunk-U2BKYEC7.mjs +254 -0
  13. package/dist/{chunk-MEW7HD75.mjs → chunk-XAKNSWIK.mjs} +2543 -1154
  14. package/dist/{config-CojEPOgS.d.ts → config-P27AtSn4.d.ts} +28 -7
  15. package/dist/direct-executor-2FV3MEDD.mjs +5 -0
  16. package/dist/distribution/coordinator/etcd.d.ts +2 -2
  17. package/dist/distribution/coordinator/etcd.mjs +2 -2
  18. package/dist/distribution/coordinator/in-memory.d.ts +2 -2
  19. package/dist/distribution.d.ts +10 -4
  20. package/dist/distribution.mjs +1875 -1772
  21. package/dist/embeddings/openai.mjs +1 -1
  22. package/dist/index.browser.mjs +4566 -1783
  23. package/dist/index.d.ts +14 -5
  24. package/dist/index.mjs +6 -5
  25. package/dist/{language-ONQ3iVDf.d.ts → language-CmJBHf1j.d.ts} +4 -1
  26. package/dist/languages/albanian.d.ts +5 -0
  27. package/dist/languages/albanian.mjs +103 -0
  28. package/dist/languages/amharic.d.ts +5 -0
  29. package/dist/languages/amharic.mjs +240 -0
  30. package/dist/languages/arabic.d.ts +1 -1
  31. package/dist/languages/arabic.mjs +939 -154
  32. package/dist/languages/armenian.d.ts +1 -1
  33. package/dist/languages/armenian.mjs +275 -243
  34. package/dist/languages/azerbaijani.d.ts +5 -0
  35. package/dist/languages/azerbaijani.mjs +152 -0
  36. package/dist/languages/bambara.d.ts +5 -0
  37. package/dist/languages/bambara.mjs +60 -0
  38. package/dist/languages/basque.d.ts +5 -0
  39. package/dist/languages/basque.mjs +726 -0
  40. package/dist/languages/belarusian.d.ts +5 -0
  41. package/dist/languages/belarusian.mjs +100 -0
  42. package/dist/languages/bengali.d.ts +5 -0
  43. package/dist/languages/bengali.mjs +128 -0
  44. package/dist/languages/bosnian.d.ts +5 -0
  45. package/dist/languages/bosnian.mjs +197 -0
  46. package/dist/languages/breton.d.ts +5 -0
  47. package/dist/languages/breton.mjs +96 -0
  48. package/dist/languages/bulgarian.d.ts +1 -1
  49. package/dist/languages/bulgarian.mjs +11 -2
  50. package/dist/languages/burmese.d.ts +5 -0
  51. package/dist/languages/burmese.mjs +57 -0
  52. package/dist/languages/catalan.d.ts +5 -0
  53. package/dist/languages/catalan.mjs +987 -0
  54. package/dist/languages/chinese.d.ts +1 -1
  55. package/dist/languages/chinese.mjs +4 -3
  56. package/dist/languages/croatian.d.ts +5 -0
  57. package/dist/languages/croatian.mjs +191 -0
  58. package/dist/languages/czech.d.ts +5 -0
  59. package/dist/languages/czech.mjs +628 -0
  60. package/dist/languages/dagbani.d.ts +1 -1
  61. package/dist/languages/dagbani.mjs +11 -2
  62. package/dist/languages/danish.d.ts +1 -1
  63. package/dist/languages/danish.mjs +215 -110
  64. package/dist/languages/dutch.d.ts +1 -1
  65. package/dist/languages/dutch.mjs +1248 -163
  66. package/dist/languages/english.d.ts +1 -1
  67. package/dist/languages/english.mjs +2 -1
  68. package/dist/languages/esperanto.d.ts +5 -0
  69. package/dist/languages/esperanto.mjs +689 -0
  70. package/dist/languages/estonian.d.ts +5 -0
  71. package/dist/languages/estonian.mjs +2160 -0
  72. package/dist/languages/ewe.d.ts +1 -1
  73. package/dist/languages/ewe.mjs +11 -2
  74. package/dist/languages/faroese.d.ts +5 -0
  75. package/dist/languages/faroese.mjs +93 -0
  76. package/dist/languages/fijian.d.ts +5 -0
  77. package/dist/languages/fijian.mjs +55 -0
  78. package/dist/languages/finnish.d.ts +1 -1
  79. package/dist/languages/finnish.mjs +528 -263
  80. package/dist/languages/french.d.ts +1 -1
  81. package/dist/languages/french.mjs +950 -437
  82. package/dist/languages/ga.d.ts +1 -1
  83. package/dist/languages/ga.mjs +2 -1
  84. package/dist/languages/galician.d.ts +5 -0
  85. package/dist/languages/galician.mjs +172 -0
  86. package/dist/languages/georgian.d.ts +5 -0
  87. package/dist/languages/georgian.mjs +91 -0
  88. package/dist/languages/german.d.ts +1 -1
  89. package/dist/languages/german.mjs +432 -162
  90. package/dist/languages/greek.d.ts +1 -1
  91. package/dist/languages/greek.mjs +1970 -281
  92. package/dist/languages/guarani.d.ts +5 -0
  93. package/dist/languages/guarani.mjs +132 -0
  94. package/dist/languages/gujarati.d.ts +5 -0
  95. package/dist/languages/gujarati.mjs +234 -0
  96. package/dist/languages/haitian-creole.d.ts +5 -0
  97. package/dist/languages/haitian-creole.mjs +106 -0
  98. package/dist/languages/hausa.d.ts +1 -1
  99. package/dist/languages/hausa.mjs +2 -1
  100. package/dist/languages/hawaiian.d.ts +5 -0
  101. package/dist/languages/hawaiian.mjs +69 -0
  102. package/dist/languages/hebrew.d.ts +5 -0
  103. package/dist/languages/hebrew.mjs +213 -0
  104. package/dist/languages/hindi.d.ts +1 -1
  105. package/dist/languages/hindi.mjs +175 -97
  106. package/dist/languages/hungarian.d.ts +1 -1
  107. package/dist/languages/hungarian.mjs +412 -326
  108. package/dist/languages/icelandic.d.ts +5 -0
  109. package/dist/languages/icelandic.mjs +161 -0
  110. package/dist/languages/igbo.d.ts +1 -1
  111. package/dist/languages/igbo.mjs +2 -1
  112. package/dist/languages/indonesian.d.ts +1 -1
  113. package/dist/languages/indonesian.mjs +329 -137
  114. package/dist/languages/irish.d.ts +1 -1
  115. package/dist/languages/irish.mjs +223 -139
  116. package/dist/languages/italian.d.ts +1 -1
  117. package/dist/languages/italian.mjs +703 -406
  118. package/dist/languages/japanese.d.ts +1 -1
  119. package/dist/languages/japanese.mjs +5 -108
  120. package/dist/languages/kannada.d.ts +5 -0
  121. package/dist/languages/kannada.mjs +94 -0
  122. package/dist/languages/kazakh.d.ts +5 -0
  123. package/dist/languages/kazakh.mjs +90 -0
  124. package/dist/languages/khmer.d.ts +5 -0
  125. package/dist/languages/khmer.mjs +181 -0
  126. package/dist/languages/kinyarwanda.d.ts +5 -0
  127. package/dist/languages/kinyarwanda.mjs +99 -0
  128. package/dist/languages/kirundi.d.ts +5 -0
  129. package/dist/languages/kirundi.mjs +92 -0
  130. package/dist/languages/korean.d.ts +5 -0
  131. package/dist/languages/korean.mjs +252 -0
  132. package/dist/languages/kurmanji.d.ts +5 -0
  133. package/dist/languages/kurmanji.mjs +50 -0
  134. package/dist/languages/kyrgyz.d.ts +5 -0
  135. package/dist/languages/kyrgyz.mjs +108 -0
  136. package/dist/languages/lao.d.ts +5 -0
  137. package/dist/languages/lao.mjs +63 -0
  138. package/dist/languages/latin.d.ts +5 -0
  139. package/dist/languages/latin.mjs +69 -0
  140. package/dist/languages/latvian.d.ts +5 -0
  141. package/dist/languages/latvian.mjs +173 -0
  142. package/dist/languages/lingala.d.ts +5 -0
  143. package/dist/languages/lingala.mjs +61 -0
  144. package/dist/languages/lithuanian.d.ts +5 -0
  145. package/dist/languages/lithuanian.mjs +571 -0
  146. package/dist/languages/luxembourgish.d.ts +5 -0
  147. package/dist/languages/luxembourgish.mjs +214 -0
  148. package/dist/languages/macedonian.d.ts +5 -0
  149. package/dist/languages/macedonian.mjs +808 -0
  150. package/dist/languages/malagasy.d.ts +5 -0
  151. package/dist/languages/malagasy.mjs +67 -0
  152. package/dist/languages/malay.d.ts +5 -0
  153. package/dist/languages/malay.mjs +482 -0
  154. package/dist/languages/malayalam.d.ts +5 -0
  155. package/dist/languages/malayalam.mjs +122 -0
  156. package/dist/languages/maltese.d.ts +5 -0
  157. package/dist/languages/maltese.mjs +139 -0
  158. package/dist/languages/maori.d.ts +5 -0
  159. package/dist/languages/maori.mjs +79 -0
  160. package/dist/languages/marathi.d.ts +5 -0
  161. package/dist/languages/marathi.mjs +111 -0
  162. package/dist/languages/nepali.d.ts +1 -1
  163. package/dist/languages/nepali.mjs +209 -99
  164. package/dist/languages/norwegian.d.ts +1 -1
  165. package/dist/languages/norwegian.mjs +218 -85
  166. package/dist/languages/oromo.d.ts +5 -0
  167. package/dist/languages/oromo.mjs +78 -0
  168. package/dist/languages/persian.d.ts +5 -0
  169. package/dist/languages/persian.mjs +710 -0
  170. package/dist/languages/polish.d.ts +5 -0
  171. package/dist/languages/polish.mjs +614 -0
  172. package/dist/languages/portuguese.d.ts +1 -1
  173. package/dist/languages/portuguese.mjs +613 -380
  174. package/dist/languages/punjabi.d.ts +5 -0
  175. package/dist/languages/punjabi.mjs +197 -0
  176. package/dist/languages/romanian.d.ts +1 -1
  177. package/dist/languages/romanian.mjs +561 -382
  178. package/dist/languages/russian.d.ts +1 -1
  179. package/dist/languages/russian.mjs +373 -244
  180. package/dist/languages/samoan.d.ts +5 -0
  181. package/dist/languages/samoan.mjs +63 -0
  182. package/dist/languages/sanskrit.d.ts +1 -1
  183. package/dist/languages/sanskrit.mjs +2 -2
  184. package/dist/languages/scottish-gaelic.d.ts +5 -0
  185. package/dist/languages/scottish-gaelic.mjs +370 -0
  186. package/dist/languages/serbian.d.ts +1 -1
  187. package/dist/languages/serbian.mjs +3635 -155
  188. package/dist/languages/shona.d.ts +5 -0
  189. package/dist/languages/shona.mjs +91 -0
  190. package/dist/languages/sinhala.d.ts +5 -0
  191. package/dist/languages/sinhala.mjs +182 -0
  192. package/dist/languages/slovak.d.ts +5 -0
  193. package/dist/languages/slovak.mjs +430 -0
  194. package/dist/languages/slovenian.d.ts +1 -1
  195. package/dist/languages/slovenian.mjs +11 -2
  196. package/dist/languages/sorani.d.ts +5 -0
  197. package/dist/languages/sorani.mjs +156 -0
  198. package/dist/languages/spanish.d.ts +1 -1
  199. package/dist/languages/spanish.mjs +676 -374
  200. package/dist/languages/swahili.d.ts +1 -1
  201. package/dist/languages/swahili.mjs +2 -1
  202. package/dist/languages/swedish.d.ts +1 -1
  203. package/dist/languages/swedish.mjs +237 -95
  204. package/dist/languages/tagalog.d.ts +5 -0
  205. package/dist/languages/tagalog.mjs +159 -0
  206. package/dist/languages/tamil.d.ts +1 -1
  207. package/dist/languages/tamil.mjs +836 -64
  208. package/dist/languages/tatar.d.ts +5 -0
  209. package/dist/languages/tatar.mjs +1017 -0
  210. package/dist/languages/telugu.d.ts +5 -0
  211. package/dist/languages/telugu.mjs +62 -0
  212. package/dist/languages/thai.d.ts +5 -0
  213. package/dist/languages/thai.mjs +65 -0
  214. package/dist/languages/tibetan.d.ts +5 -0
  215. package/dist/languages/tibetan.mjs +119 -0
  216. package/dist/languages/tigrinya.d.ts +5 -0
  217. package/dist/languages/tigrinya.mjs +194 -0
  218. package/dist/languages/tongan.d.ts +5 -0
  219. package/dist/languages/tongan.mjs +56 -0
  220. package/dist/languages/turkish.d.ts +1 -1
  221. package/dist/languages/turkish.mjs +1246 -393
  222. package/dist/languages/twi.d.ts +1 -1
  223. package/dist/languages/twi.mjs +13 -2
  224. package/dist/languages/ukrainian.d.ts +1 -1
  225. package/dist/languages/ukrainian.mjs +125 -47
  226. package/dist/languages/urdu.d.ts +5 -0
  227. package/dist/languages/urdu.mjs +528 -0
  228. package/dist/languages/vietnamese.d.ts +5 -0
  229. package/dist/languages/vietnamese.mjs +277 -0
  230. package/dist/languages/welsh.d.ts +5 -0
  231. package/dist/languages/welsh.mjs +446 -0
  232. package/dist/languages/wolof.d.ts +5 -0
  233. package/dist/languages/wolof.mjs +79 -0
  234. package/dist/languages/xhosa.d.ts +5 -0
  235. package/dist/languages/xhosa.mjs +95 -0
  236. package/dist/languages/yoruba.d.ts +1 -1
  237. package/dist/languages/yoruba.mjs +1 -0
  238. package/dist/languages/zulu.d.ts +1 -1
  239. package/dist/languages/zulu.mjs +2 -1
  240. package/dist/narsil-CMZRPDlQ.d.ts +159 -0
  241. package/dist/persistence/durability/checkpoint-worker.d.ts +13 -0
  242. package/dist/persistence/durability/checkpoint-worker.mjs +6 -5
  243. package/dist/{schema-DCgkO1j4.d.ts → schema-BnvLvjRp.d.ts} +5 -3
  244. package/dist/server.d.ts +12 -3
  245. package/dist/server.mjs +183 -64
  246. package/dist/{types-DHX6zGeD.d.ts → types-BRTcBgAp.d.ts} +1 -1
  247. package/dist/workers/entry.mjs +2 -2
  248. package/package.json +10 -3
  249. package/dist/chunk-TW6BXTOL.mjs +0 -338
  250. package/dist/direct-executor-E52FFGDE.mjs +0 -4
  251. package/dist/narsil-D-84Nvm4.d.ts +0 -72
@@ -0,0 +1,79 @@
1
+ // src/languages/wolof.ts
2
+ var stopWords = /* @__PURE__ */ new Set([
3
+ "ak",
4
+ "am",
5
+ "ba",
6
+ "ban",
7
+ "beneen",
8
+ "benn",
9
+ "bi",
10
+ "bii",
11
+ "boobu",
12
+ "bu",
13
+ "ca",
14
+ "ci",
15
+ "dafa",
16
+ "dina",
17
+ "du",
18
+ "fa",
19
+ "fi",
20
+ "fu",
21
+ "gi",
22
+ "it",
23
+ "itam",
24
+ "ji",
25
+ "ki",
26
+ "kon",
27
+ "ku",
28
+ "la",
29
+ "l\xE9pp",
30
+ "li",
31
+ "lool",
32
+ "lu",
33
+ "ma",
34
+ "man",
35
+ "mi",
36
+ "moom",
37
+ "mu",
38
+ "na",
39
+ "naa",
40
+ "na\xF1u",
41
+ "ndax",
42
+ "ndaxte",
43
+ "ne",
44
+ "\xF1\xE9pp",
45
+ "nga",
46
+ "ngeen",
47
+ "ni",
48
+ "\xF1i",
49
+ "\xF1oom",
50
+ "\xF1u",
51
+ "nun",
52
+ "rekk",
53
+ "sa",
54
+ "sama",
55
+ "seen",
56
+ "si",
57
+ "su",
58
+ "sunu",
59
+ "te",
60
+ "waaye",
61
+ "walla",
62
+ "wi",
63
+ "yeen",
64
+ "yeneen",
65
+ "y\xE9pp",
66
+ "yi",
67
+ "yii",
68
+ "yooyu",
69
+ "yow"
70
+ ]);
71
+ var wolof = {
72
+ name: "wolof",
73
+ revision: "1",
74
+ stemmer: null,
75
+ stopWords,
76
+ tokenizer: { splitPattern: /[^\p{Script=Latin}0-9]+/giu }
77
+ };
78
+
79
+ export { wolof };
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-CmJBHf1j.js';
2
+
3
+ declare const xhosa: LanguageModule;
4
+
5
+ export { xhosa };
@@ -0,0 +1,95 @@
1
+ // src/languages/xhosa.ts
2
+ var stopWords = /* @__PURE__ */ new Set([
3
+ "aba",
4
+ "abanye",
5
+ "abo",
6
+ "apho",
7
+ "bakhe",
8
+ "bona",
9
+ "bonke",
10
+ "eli",
11
+ "elo",
12
+ "emva",
13
+ "enye",
14
+ "esi",
15
+ "eso",
16
+ "ezi",
17
+ "ezinye",
18
+ "ezo",
19
+ "kakhulu",
20
+ "kamva",
21
+ "kancinci",
22
+ "kanye",
23
+ "ke",
24
+ "kodwa",
25
+ "konke",
26
+ "kuba",
27
+ "kunye",
28
+ "kwaye",
29
+ "la",
30
+ "lakhe",
31
+ "le",
32
+ "leyo",
33
+ "lo",
34
+ "lonke",
35
+ "lowo",
36
+ "malunga",
37
+ "mna",
38
+ "na",
39
+ "nangona",
40
+ "ngaphakathi",
41
+ "ngaphandle",
42
+ "ngenxa",
43
+ "ngoku",
44
+ "ngokuba",
45
+ "nina",
46
+ "nje",
47
+ "okanye",
48
+ "oko",
49
+ "oku",
50
+ "olo",
51
+ "olu",
52
+ "omnye",
53
+ "phakathi",
54
+ "phambi",
55
+ "phambili",
56
+ "phantsi",
57
+ "phezulu",
58
+ "sakhe",
59
+ "sonke",
60
+ "thina",
61
+ "ukuba",
62
+ "ukuze",
63
+ "wabo",
64
+ "wakhe",
65
+ "wakho",
66
+ "wam",
67
+ "wena",
68
+ "wenu",
69
+ "wethu",
70
+ "xa",
71
+ "yabo",
72
+ "yakhe",
73
+ "yakho",
74
+ "yam",
75
+ "yena",
76
+ "yenu",
77
+ "yethu",
78
+ "yonke",
79
+ "zabo",
80
+ "zakhe",
81
+ "zakho",
82
+ "zam",
83
+ "zenu",
84
+ "zethu",
85
+ "zonke"
86
+ ]);
87
+ var xhosa = {
88
+ name: "xhosa",
89
+ revision: "1",
90
+ stemmer: null,
91
+ stopWords,
92
+ tokenizer: { splitPattern: /[^a-z0-9-]+/gi }
93
+ };
94
+
95
+ export { xhosa };
@@ -1,4 +1,4 @@
1
- import { L as LanguageModule } from '../language-ONQ3iVDf.js';
1
+ import { L as LanguageModule } from '../language-CmJBHf1j.js';
2
2
 
3
3
  declare const yoruba: LanguageModule;
4
4
 
@@ -91,6 +91,7 @@ var stopWords = /* @__PURE__ */ new Set([
91
91
  ]);
92
92
  var yoruba = {
93
93
  name: "yoruba",
94
+ revision: "1",
94
95
  stemmer: null,
95
96
  stopWords,
96
97
  tokenizer: {
@@ -1,4 +1,4 @@
1
- import { L as LanguageModule } from '../language-ONQ3iVDf.js';
1
+ import { L as LanguageModule } from '../language-CmJBHf1j.js';
2
2
 
3
3
  declare const zulu: LanguageModule;
4
4
 
@@ -101,10 +101,11 @@ var stopWords = /* @__PURE__ */ new Set([
101
101
  ]);
102
102
  var zulu = {
103
103
  name: "zulu",
104
+ revision: "1",
104
105
  stemmer: null,
105
106
  stopWords,
106
107
  tokenizer: {
107
- splitPattern: /[^a-zA-Z0-9]+/gi,
108
+ splitPattern: /[^a-zA-Z0-9-]+/gi,
108
109
  normalizeDiacritics: false,
109
110
  minTokenLength: 1
110
111
  }
@@ -0,0 +1,159 @@
1
+ import { I as IndexConfig, A as AnyDocument, a as InsertOptions, P as PartitionConfig } from './schema-BnvLvjRp.js';
2
+ import { k as IndexInfo, l as IndexStats, p as PartitionStatsResult, B as BatchResult, Q as QueryParams, t as QueryResult, q as PreflightResult, x as SuggestParams, y as SuggestResult, M as MemoryStats, V as VectorMaintenanceResult, N as NarsilConfig } from './config-P27AtSn4.js';
3
+ import { E as EmbeddingAdapter } from './adapters-Bo2JQg8b.js';
4
+
5
+ type NarsilEventMap = {
6
+ persistenceError: {
7
+ indexName: string;
8
+ partitionId: number;
9
+ error: Error;
10
+ retriesExhausted: boolean;
11
+ };
12
+ workerCrash: {
13
+ workerId: number;
14
+ indexNames: string[];
15
+ error: Error;
16
+ };
17
+ workerPromote: {
18
+ workerCount: number;
19
+ reason: string;
20
+ };
21
+ workerPromoteFailure: {
22
+ reason: string;
23
+ error: Error;
24
+ retryable: boolean;
25
+ };
26
+ partitionRebalance: {
27
+ indexName: string;
28
+ oldCount: number;
29
+ newCount: number;
30
+ };
31
+ partitionWatermark: {
32
+ indexName: string;
33
+ documentCount: number;
34
+ capacity: number;
35
+ partitionCount: number;
36
+ };
37
+ analysisRebuild: {
38
+ indexName: string;
39
+ status: 'started' | 'completed' | 'failed';
40
+ partitionsRebuilt: number;
41
+ partitionCount: number;
42
+ error?: Error;
43
+ };
44
+ durabilityError: {
45
+ error: Error;
46
+ };
47
+ invalidationError: {
48
+ error: Error;
49
+ };
50
+ };
51
+
52
+ interface Narsil {
53
+ /**
54
+ * Creates an index you can insert documents into and query.
55
+ *
56
+ * The schema sets the type of each field, decides which fields you can
57
+ * filter and sort on, and controls how the engine tokenises text. The
58
+ * `language` option picks the analyser that stems those text fields.
59
+ *
60
+ * @param name - Every later call uses this name to reach the index.
61
+ * @param config - This carries the schema, and the language, partitioning,
62
+ * and scoring settings.
63
+ */
64
+ createIndex(name: string, config: IndexConfig): Promise<void>;
65
+ /** Registers an adapter under a name that index configs can reference and
66
+ * durability metadata can persist; re-registering rebinds referencing indexes. */
67
+ registerEmbeddingAdapter(name: string, adapter: EmbeddingAdapter): void;
68
+ dropIndex(name: string): Promise<void>;
69
+ listIndexes(): IndexInfo[];
70
+ getStats(indexName: string): IndexStats;
71
+ getPartitionStats(indexName: string): PartitionStatsResult[];
72
+ /**
73
+ * Adds one document to an index and returns the id it is stored under.
74
+ *
75
+ * The id comes from the `docId` argument when you pass one, otherwise from
76
+ * the document's own `id` field, and otherwise the engine generates it. Use
77
+ * {@link Narsil.insertBatch} for a large load, so that one bad document
78
+ * cannot abandon the rest.
79
+ *
80
+ * @param indexName - The index that receives the document.
81
+ * @param document - Its fields must match the types the schema declares.
82
+ * @param docId - Pass an id to control it yourself, or omit it and read the
83
+ * returned value.
84
+ * @returns The id the document is stored under.
85
+ */
86
+ insert(indexName: string, document: AnyDocument, docId?: string, options?: InsertOptions): Promise<string>;
87
+ insertBatch(indexName: string, documents: AnyDocument[], options?: InsertOptions): Promise<BatchResult>;
88
+ remove(indexName: string, docId: string): Promise<void>;
89
+ removeBatch(indexName: string, docIds: string[]): Promise<BatchResult>;
90
+ update(indexName: string, docId: string, document: AnyDocument): Promise<void>;
91
+ updateBatch(indexName: string, updates: Array<{
92
+ docId: string;
93
+ document: AnyDocument;
94
+ }>): Promise<BatchResult>;
95
+ get(indexName: string, docId: string): Promise<AnyDocument | undefined>;
96
+ getMultiple(indexName: string, docIds: string[]): Promise<Map<string, AnyDocument>>;
97
+ has(indexName: string, docId: string): Promise<boolean>;
98
+ countDocuments(indexName: string): Promise<number>;
99
+ /**
100
+ * Runs a search against an index and returns the ranked hits.
101
+ *
102
+ * One call covers keyword search, vector search, and a hybrid of the two,
103
+ * chosen by the `mode` parameter. BM25 ranks keyword results by default.
104
+ * Every hit carries its score and its document, along with highlights when
105
+ * you ask for them.
106
+ *
107
+ * @param indexName - The index the search runs against.
108
+ * @param params - These set the search term, filters, field boosts, sorting,
109
+ * facets, highlighting, and the result limit.
110
+ * @returns The hits, the total count, the elapsed time, and any facets or
111
+ * groups the query asked for.
112
+ */
113
+ query<T = AnyDocument>(indexName: string, params: QueryParams): Promise<QueryResult<T>>;
114
+ preflight(indexName: string, params: QueryParams): Promise<PreflightResult>;
115
+ suggest(indexName: string, params: SuggestParams): Promise<SuggestResult>;
116
+ /**
117
+ * Rebuilds an index's terms from the documents it already stores, and
118
+ * resolves once every partition carries terms the current language module
119
+ * produced.
120
+ *
121
+ * An index whose stored analysis revision differs from the one its language
122
+ * module carries answers text queries from terms an earlier analysis wrote,
123
+ * and every such result reports `analysisStale`. Call this after the engine
124
+ * reports a stale index to configuration that declined an automatic rebuild.
125
+ * Calling it for an index whose terms are current does nothing.
126
+ *
127
+ * @param indexName - The index whose terms are rebuilt.
128
+ */
129
+ rebuildAnalysis(indexName: string): Promise<void>;
130
+ snapshot(indexName: string): Promise<Uint8Array>;
131
+ restore(indexName: string, data: Uint8Array): Promise<void>;
132
+ checkpoint(indexName: string): Promise<void>;
133
+ clear(indexName: string): Promise<void>;
134
+ rebalance(indexName: string, targetPartitionCount: number): Promise<void>;
135
+ updatePartitionConfig(indexName: string, config: Partial<PartitionConfig>): Promise<void>;
136
+ getMemoryStats(): Promise<MemoryStats>;
137
+ compactVectors(indexName: string, fieldName?: string): Promise<void>;
138
+ optimizeVectors(indexName: string, fieldName?: string): Promise<void>;
139
+ vectorMaintenanceStatus(indexName: string): VectorMaintenanceResult[];
140
+ on<K extends keyof NarsilEventMap>(event: K, handler: (payload: NarsilEventMap[K]) => void): void;
141
+ off<K extends keyof NarsilEventMap>(event: K, handler: (payload: NarsilEventMap[K]) => void): void;
142
+ shutdown(): Promise<void>;
143
+ }
144
+ /**
145
+ * Creates a search engine that runs inside your process, with no server to
146
+ * provision.
147
+ *
148
+ * The engine holds every index you create, so an application usually keeps one
149
+ * instance for its lifetime. When you configure persistence, this recovers the
150
+ * indexes already on disk before it resolves, so the engine is ready to query
151
+ * as soon as you have it.
152
+ *
153
+ * @param config - This carries the persistence, partitioning, and worker
154
+ * invalidation settings. Omit it for an engine that keeps everything in memory.
155
+ * @returns The engine, ready for {@link Narsil.createIndex} to run against.
156
+ */
157
+ declare function createNarsil(config?: NarsilConfig): Promise<Narsil>;
158
+
159
+ export { type Narsil as N, type NarsilEventMap as a, createNarsil as c };
@@ -1,3 +1,6 @@
1
+ import { P as PartitionConfig, c as ScoringMode, V as VectorIndexConfig } from '../../schema-BnvLvjRp.js';
2
+ import '../../adapters-Bo2JQg8b.js';
3
+
1
4
  interface IndexMetadata {
2
5
  indexName: string;
3
6
  schema: Record<string, string>;
@@ -17,6 +20,16 @@ interface IndexMetadata {
17
20
  embedding?: IndexEmbeddingMetadata;
18
21
  /** Persisted so recovered indexes keep collecting surface forms. */
19
22
  surfaceForms?: boolean;
23
+ analysisRevision?: string;
24
+ tokenizer?: string;
25
+ stopWords?: string;
26
+ stopWordList?: string[];
27
+ partitionLimits?: PartitionConfig;
28
+ defaultScoring?: ScoringMode;
29
+ trackPositions?: boolean;
30
+ strict?: boolean;
31
+ required?: string[];
32
+ vectorPromotion?: VectorIndexConfig;
20
33
  }
21
34
  /** Persisted so recovery can restore field mappings and rebind the adapter by
22
35
  * name; the name is absent when the index was configured with a bare instance. */
@@ -1,10 +1,11 @@
1
- import { createDurableDirectory, writeSegmentedCheckpoint } from '../../chunk-MEW7HD75.mjs';
2
- import '../../chunk-HMO6OMZ3.mjs';
1
+ import { createDurableDirectory, writeSegmentedCheckpoint } from '../../chunk-XAKNSWIK.mjs';
2
+ import '../../chunk-S6IAXOBA.mjs';
3
+ import '../../chunk-TGP5M5R7.mjs';
3
4
  import '../../chunk-S7RJJMHI.mjs';
4
5
  import '../../chunk-KMMJMDUA.mjs';
5
- import '../../chunk-TW6BXTOL.mjs';
6
- import '../../chunk-ALB35PRQ.mjs';
7
- import '../../chunk-HRABJLPB.mjs';
6
+ import '../../chunk-U2BKYEC7.mjs';
7
+ import '../../chunk-M2EDG55Y.mjs';
8
+ import '../../chunk-BKAI2WXI.mjs';
8
9
 
9
10
  // src/persistence/durability/rebuild.ts
10
11
  async function rebuildSnapshotFromDurable(root, metadata, targets, compactionThreshold) {
@@ -24,14 +24,15 @@ interface EmbeddingFieldConfig {
24
24
  adapter?: EmbeddingAdapter | string;
25
25
  fields: Record<string, string | string[]>;
26
26
  }
27
+ type StopWordOverride = Set<string> | ((defaults: Set<string>) => Set<string>);
27
28
  interface IndexConfig {
28
29
  schema: SchemaDefinition;
29
30
  language?: string;
30
31
  partitions?: PartitionConfig;
31
32
  defaultScoring?: ScoringMode;
32
33
  bm25?: BM25Params;
33
- stopWords?: Set<string> | ((defaults: Set<string>) => Set<string>);
34
- tokenizer?: CustomTokenizer;
34
+ stopWords?: StopWordOverride | string;
35
+ tokenizer?: CustomTokenizer | string;
35
36
  trackPositions?: boolean;
36
37
  vectorPromotion?: VectorIndexConfig;
37
38
  strict?: boolean;
@@ -56,10 +57,11 @@ interface CustomTokenizer {
56
57
  interface PartitionConfig {
57
58
  maxDocsPerPartition?: number;
58
59
  maxPartitions?: number;
60
+ watermark?: number;
59
61
  }
60
62
  type ScoringMode = 'local' | 'dfs' | 'broadcast';
61
63
  interface InsertOptions {
62
64
  skipClone?: boolean;
63
65
  }
64
66
 
65
- export type { AnyDocument as A, BM25Params as B, CustomTokenizer as C, EmbeddingFieldConfig as E, FieldType as F, IndexConfig as I, PartitionConfig as P, SchemaDefinition as S, InsertOptions as a, ScoringMode as b };
67
+ export type { AnyDocument as A, BM25Params as B, CustomTokenizer as C, EmbeddingFieldConfig as E, FieldType as F, IndexConfig as I, PartitionConfig as P, StopWordOverride as S, VectorIndexConfig as V, InsertOptions as a, SchemaDefinition as b, ScoringMode as c };
package/dist/server.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { N as Narsil } from './narsil-D-84Nvm4.js';
1
+ import { N as Narsil } from './narsil-CMZRPDlQ.js';
2
2
  import { E as EmbeddingAdapter } from './adapters-Bo2JQg8b.js';
3
- import './config-CojEPOgS.js';
4
- import './schema-DCgkO1j4.js';
3
+ import './schema-BnvLvjRp.js';
4
+ import './config-P27AtSn4.js';
5
5
 
6
6
  /**
7
7
  * Context handed to {@link OnRequestHook} for every inbound request, captured
@@ -45,6 +45,14 @@ interface ServerLimits {
45
45
  importBatchSize?: number;
46
46
  /** Maximum requests executing engine work at once; excess is shed with 503. Omit or 0 to disable. */
47
47
  maxConcurrentRequests?: number;
48
+ /** Ceiling for a search's `limit`, `offset`, and `group.maxPerGroup`, so one
49
+ * request cannot ask for an unbounded result set. Excess → 400. Defaults to
50
+ * 10000, matching the cluster query result window. */
51
+ maxResultWindow?: number;
52
+ /** Ceiling for the number of document ids in one multi-get request, so one
53
+ * request cannot pull an unbounded number of documents. Excess → 400.
54
+ * Defaults to 10000. */
55
+ maxFetchDocuments?: number;
48
56
  }
49
57
  interface ServerOptions {
50
58
  host?: string;
@@ -155,6 +163,7 @@ interface HttpIndexConfig {
155
163
  partitions?: {
156
164
  maxDocsPerPartition?: number;
157
165
  maxPartitions?: number;
166
+ watermark?: number;
158
167
  };
159
168
  defaultScoring?: 'local' | 'dfs' | 'broadcast';
160
169
  bm25?: {