opencode-rehydra-core 0.14.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 (432) hide show
  1. package/LICENSE +22 -0
  2. package/README.en.md +191 -0
  3. package/README.md +191 -0
  4. package/dist/browser.d.ts +54 -0
  5. package/dist/browser.d.ts.map +1 -0
  6. package/dist/browser.js +74 -0
  7. package/dist/browser.js.map +1 -0
  8. package/dist/core/anonymizer.d.ts +309 -0
  9. package/dist/core/anonymizer.d.ts.map +1 -0
  10. package/dist/core/anonymizer.js +555 -0
  11. package/dist/core/anonymizer.js.map +1 -0
  12. package/dist/core/index.d.ts +6 -0
  13. package/dist/core/index.d.ts.map +1 -0
  14. package/dist/core/index.js +6 -0
  15. package/dist/core/index.js.map +1 -0
  16. package/dist/crypto/index.d.ts +6 -0
  17. package/dist/crypto/index.d.ts.map +1 -0
  18. package/dist/crypto/index.js +6 -0
  19. package/dist/crypto/index.js.map +1 -0
  20. package/dist/crypto/pii-map-crypto.d.ts +114 -0
  21. package/dist/crypto/pii-map-crypto.d.ts.map +1 -0
  22. package/dist/crypto/pii-map-crypto.js +228 -0
  23. package/dist/crypto/pii-map-crypto.js.map +1 -0
  24. package/dist/index.d.ts +53 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +72 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/ner/bio-decoder.d.ts +64 -0
  29. package/dist/ner/bio-decoder.d.ts.map +1 -0
  30. package/dist/ner/bio-decoder.js +218 -0
  31. package/dist/ner/bio-decoder.js.map +1 -0
  32. package/dist/ner/index.d.ts +12 -0
  33. package/dist/ner/index.d.ts.map +1 -0
  34. package/dist/ner/index.js +12 -0
  35. package/dist/ner/index.js.map +1 -0
  36. package/dist/ner/inference-server-client.d.ts +81 -0
  37. package/dist/ner/inference-server-client.d.ts.map +1 -0
  38. package/dist/ner/inference-server-client.js +120 -0
  39. package/dist/ner/inference-server-client.js.map +1 -0
  40. package/dist/ner/inference-server-ner-model.d.ts +43 -0
  41. package/dist/ner/inference-server-ner-model.d.ts.map +1 -0
  42. package/dist/ner/inference-server-ner-model.js +119 -0
  43. package/dist/ner/inference-server-ner-model.js.map +1 -0
  44. package/dist/ner/model-manager.d.ts +111 -0
  45. package/dist/ner/model-manager.d.ts.map +1 -0
  46. package/dist/ner/model-manager.js +334 -0
  47. package/dist/ner/model-manager.js.map +1 -0
  48. package/dist/ner/ner-model.d.ts +172 -0
  49. package/dist/ner/ner-model.d.ts.map +1 -0
  50. package/dist/ner/ner-model.js +514 -0
  51. package/dist/ner/ner-model.js.map +1 -0
  52. package/dist/ner/onnx-runtime.browser.d.ts +46 -0
  53. package/dist/ner/onnx-runtime.browser.d.ts.map +1 -0
  54. package/dist/ner/onnx-runtime.browser.js +90 -0
  55. package/dist/ner/onnx-runtime.browser.js.map +1 -0
  56. package/dist/ner/onnx-runtime.d.ts +72 -0
  57. package/dist/ner/onnx-runtime.d.ts.map +1 -0
  58. package/dist/ner/onnx-runtime.js +132 -0
  59. package/dist/ner/onnx-runtime.js.map +1 -0
  60. package/dist/ner/token-window.d.ts +19 -0
  61. package/dist/ner/token-window.d.ts.map +1 -0
  62. package/dist/ner/token-window.js +101 -0
  63. package/dist/ner/token-window.js.map +1 -0
  64. package/dist/ner/tokenizer.d.ts +142 -0
  65. package/dist/ner/tokenizer.d.ts.map +1 -0
  66. package/dist/ner/tokenizer.js +362 -0
  67. package/dist/ner/tokenizer.js.map +1 -0
  68. package/dist/opencode-plugin/git-identity.d.ts +3 -0
  69. package/dist/opencode-plugin/git-identity.d.ts.map +1 -0
  70. package/dist/opencode-plugin/git-identity.js +37 -0
  71. package/dist/opencode-plugin/git-identity.js.map +1 -0
  72. package/dist/opencode-plugin/github-username.d.ts +3 -0
  73. package/dist/opencode-plugin/github-username.d.ts.map +1 -0
  74. package/dist/opencode-plugin/github-username.js +41 -0
  75. package/dist/opencode-plugin/github-username.js.map +1 -0
  76. package/dist/opencode-plugin/identity-recognizer.d.ts +5 -0
  77. package/dist/opencode-plugin/identity-recognizer.d.ts.map +1 -0
  78. package/dist/opencode-plugin/identity-recognizer.js +21 -0
  79. package/dist/opencode-plugin/identity-recognizer.js.map +1 -0
  80. package/dist/opencode-plugin/index.d.ts +7 -0
  81. package/dist/opencode-plugin/index.d.ts.map +1 -0
  82. package/dist/opencode-plugin/index.js +6 -0
  83. package/dist/opencode-plugin/index.js.map +1 -0
  84. package/dist/opencode-plugin/plugin.d.ts +39 -0
  85. package/dist/opencode-plugin/plugin.d.ts.map +1 -0
  86. package/dist/opencode-plugin/plugin.js +294 -0
  87. package/dist/opencode-plugin/plugin.js.map +1 -0
  88. package/dist/opencode-plugin/types.d.ts +33 -0
  89. package/dist/opencode-plugin/types.d.ts.map +1 -0
  90. package/dist/opencode-plugin/types.js +5 -0
  91. package/dist/opencode-plugin/types.js.map +1 -0
  92. package/dist/opencode-plugin/v2/anon-state.d.ts +12 -0
  93. package/dist/opencode-plugin/v2/anon-state.d.ts.map +1 -0
  94. package/dist/opencode-plugin/v2/anon-state.js +14 -0
  95. package/dist/opencode-plugin/v2/anon-state.js.map +1 -0
  96. package/dist/opencode-plugin/v2/deep-rehydrate.d.ts +13 -0
  97. package/dist/opencode-plugin/v2/deep-rehydrate.d.ts.map +1 -0
  98. package/dist/opencode-plugin/v2/deep-rehydrate.js +33 -0
  99. package/dist/opencode-plugin/v2/deep-rehydrate.js.map +1 -0
  100. package/dist/opencode-plugin/v2/index.d.ts +17 -0
  101. package/dist/opencode-plugin/v2/index.d.ts.map +1 -0
  102. package/dist/opencode-plugin/v2/index.js +17 -0
  103. package/dist/opencode-plugin/v2/index.js.map +1 -0
  104. package/dist/opencode-plugin/v2/logger.d.ts +24 -0
  105. package/dist/opencode-plugin/v2/logger.d.ts.map +1 -0
  106. package/dist/opencode-plugin/v2/logger.js +73 -0
  107. package/dist/opencode-plugin/v2/logger.js.map +1 -0
  108. package/dist/opencode-plugin/v2/options.d.ts +40 -0
  109. package/dist/opencode-plugin/v2/options.d.ts.map +1 -0
  110. package/dist/opencode-plugin/v2/options.js +132 -0
  111. package/dist/opencode-plugin/v2/options.js.map +1 -0
  112. package/dist/opencode-plugin/v2/register-hooks.d.ts +43 -0
  113. package/dist/opencode-plugin/v2/register-hooks.d.ts.map +1 -0
  114. package/dist/opencode-plugin/v2/register-hooks.js +160 -0
  115. package/dist/opencode-plugin/v2/register-hooks.js.map +1 -0
  116. package/dist/opencode-plugin/v2/rehydrate-tail.d.ts +101 -0
  117. package/dist/opencode-plugin/v2/rehydrate-tail.d.ts.map +1 -0
  118. package/dist/opencode-plugin/v2/rehydrate-tail.js +147 -0
  119. package/dist/opencode-plugin/v2/rehydrate-tail.js.map +1 -0
  120. package/dist/opencode-plugin/v2/response-rehydrate.d.ts +78 -0
  121. package/dist/opencode-plugin/v2/response-rehydrate.d.ts.map +1 -0
  122. package/dist/opencode-plugin/v2/response-rehydrate.js +210 -0
  123. package/dist/opencode-plugin/v2/response-rehydrate.js.map +1 -0
  124. package/dist/opencode-plugin/v2/scrub-messages.d.ts +39 -0
  125. package/dist/opencode-plugin/v2/scrub-messages.d.ts.map +1 -0
  126. package/dist/opencode-plugin/v2/scrub-messages.js +260 -0
  127. package/dist/opencode-plugin/v2/scrub-messages.js.map +1 -0
  128. package/dist/opencode-plugin/v2/sessions.d.ts +17 -0
  129. package/dist/opencode-plugin/v2/sessions.d.ts.map +1 -0
  130. package/dist/opencode-plugin/v2/sessions.js +23 -0
  131. package/dist/opencode-plugin/v2/sessions.js.map +1 -0
  132. package/dist/opencode-plugin/v2/sse.d.ts +101 -0
  133. package/dist/opencode-plugin/v2/sse.d.ts.map +1 -0
  134. package/dist/opencode-plugin/v2/sse.js +235 -0
  135. package/dist/opencode-plugin/v2/sse.js.map +1 -0
  136. package/dist/opencode-plugin/v2/types.d.ts +188 -0
  137. package/dist/opencode-plugin/v2/types.d.ts.map +1 -0
  138. package/dist/opencode-plugin/v2/types.js +10 -0
  139. package/dist/opencode-plugin/v2/types.js.map +1 -0
  140. package/dist/opencode-plugin/vcs-command.d.ts +3 -0
  141. package/dist/opencode-plugin/vcs-command.d.ts.map +1 -0
  142. package/dist/opencode-plugin/vcs-command.js +34 -0
  143. package/dist/opencode-plugin/vcs-command.js.map +1 -0
  144. package/dist/pipeline/index.d.ts +12 -0
  145. package/dist/pipeline/index.d.ts.map +1 -0
  146. package/dist/pipeline/index.js +12 -0
  147. package/dist/pipeline/index.js.map +1 -0
  148. package/dist/pipeline/prenormalize.d.ts +48 -0
  149. package/dist/pipeline/prenormalize.d.ts.map +1 -0
  150. package/dist/pipeline/prenormalize.js +94 -0
  151. package/dist/pipeline/prenormalize.js.map +1 -0
  152. package/dist/pipeline/resolver.d.ts +56 -0
  153. package/dist/pipeline/resolver.d.ts.map +1 -0
  154. package/dist/pipeline/resolver.js +239 -0
  155. package/dist/pipeline/resolver.js.map +1 -0
  156. package/dist/pipeline/semantic-data-loader.d.ts +171 -0
  157. package/dist/pipeline/semantic-data-loader.d.ts.map +1 -0
  158. package/dist/pipeline/semantic-data-loader.js +677 -0
  159. package/dist/pipeline/semantic-data-loader.js.map +1 -0
  160. package/dist/pipeline/semantic-enricher.d.ts +112 -0
  161. package/dist/pipeline/semantic-enricher.d.ts.map +1 -0
  162. package/dist/pipeline/semantic-enricher.js +322 -0
  163. package/dist/pipeline/semantic-enricher.js.map +1 -0
  164. package/dist/pipeline/tagger.d.ts +121 -0
  165. package/dist/pipeline/tagger.d.ts.map +1 -0
  166. package/dist/pipeline/tagger.js +545 -0
  167. package/dist/pipeline/tagger.js.map +1 -0
  168. package/dist/pipeline/title-extractor.d.ts +79 -0
  169. package/dist/pipeline/title-extractor.d.ts.map +1 -0
  170. package/dist/pipeline/title-extractor.js +801 -0
  171. package/dist/pipeline/title-extractor.js.map +1 -0
  172. package/dist/pipeline/validator.d.ts +65 -0
  173. package/dist/pipeline/validator.d.ts.map +1 -0
  174. package/dist/pipeline/validator.js +292 -0
  175. package/dist/pipeline/validator.js.map +1 -0
  176. package/dist/proxy/index.d.ts +13 -0
  177. package/dist/proxy/index.d.ts.map +1 -0
  178. package/dist/proxy/index.js +12 -0
  179. package/dist/proxy/index.js.map +1 -0
  180. package/dist/proxy/providers/anthropic.d.ts +28 -0
  181. package/dist/proxy/providers/anthropic.d.ts.map +1 -0
  182. package/dist/proxy/providers/anthropic.js +265 -0
  183. package/dist/proxy/providers/anthropic.js.map +1 -0
  184. package/dist/proxy/providers/index.d.ts +19 -0
  185. package/dist/proxy/providers/index.d.ts.map +1 -0
  186. package/dist/proxy/providers/index.js +41 -0
  187. package/dist/proxy/providers/index.js.map +1 -0
  188. package/dist/proxy/providers/openai.d.ts +27 -0
  189. package/dist/proxy/providers/openai.d.ts.map +1 -0
  190. package/dist/proxy/providers/openai.js +203 -0
  191. package/dist/proxy/providers/openai.js.map +1 -0
  192. package/dist/proxy/providers/streaming-tool-loop.d.ts +12 -0
  193. package/dist/proxy/providers/streaming-tool-loop.d.ts.map +1 -0
  194. package/dist/proxy/providers/streaming-tool-loop.js +223 -0
  195. package/dist/proxy/providers/streaming-tool-loop.js.map +1 -0
  196. package/dist/proxy/providers/types.d.ts +109 -0
  197. package/dist/proxy/providers/types.d.ts.map +1 -0
  198. package/dist/proxy/providers/types.js +2 -0
  199. package/dist/proxy/providers/types.js.map +1 -0
  200. package/dist/proxy/proxy-server.d.ts +61 -0
  201. package/dist/proxy/proxy-server.d.ts.map +1 -0
  202. package/dist/proxy/proxy-server.js +146 -0
  203. package/dist/proxy/proxy-server.js.map +1 -0
  204. package/dist/proxy/rehydra-fetch.d.ts +35 -0
  205. package/dist/proxy/rehydra-fetch.d.ts.map +1 -0
  206. package/dist/proxy/rehydra-fetch.js +631 -0
  207. package/dist/proxy/rehydra-fetch.js.map +1 -0
  208. package/dist/proxy/rehydra-proxy.d.ts +40 -0
  209. package/dist/proxy/rehydra-proxy.d.ts.map +1 -0
  210. package/dist/proxy/rehydra-proxy.js +150 -0
  211. package/dist/proxy/rehydra-proxy.js.map +1 -0
  212. package/dist/proxy/sse-parser.d.ts +59 -0
  213. package/dist/proxy/sse-parser.d.ts.map +1 -0
  214. package/dist/proxy/sse-parser.js +112 -0
  215. package/dist/proxy/sse-parser.js.map +1 -0
  216. package/dist/proxy/system-instruction.d.ts +19 -0
  217. package/dist/proxy/system-instruction.d.ts.map +1 -0
  218. package/dist/proxy/system-instruction.js +33 -0
  219. package/dist/proxy/system-instruction.js.map +1 -0
  220. package/dist/proxy/tool-loop-stream.d.ts +7 -0
  221. package/dist/proxy/tool-loop-stream.d.ts.map +1 -0
  222. package/dist/proxy/tool-loop-stream.js +65 -0
  223. package/dist/proxy/tool-loop-stream.js.map +1 -0
  224. package/dist/proxy/types.d.ts +138 -0
  225. package/dist/proxy/types.d.ts.map +1 -0
  226. package/dist/proxy/types.js +5 -0
  227. package/dist/proxy/types.js.map +1 -0
  228. package/dist/proxy/wrap-client.d.ts +47 -0
  229. package/dist/proxy/wrap-client.d.ts.map +1 -0
  230. package/dist/proxy/wrap-client.js +70 -0
  231. package/dist/proxy/wrap-client.js.map +1 -0
  232. package/dist/recognizers/address.d.ts +2 -0
  233. package/dist/recognizers/address.d.ts.map +1 -0
  234. package/dist/recognizers/address.js +23 -0
  235. package/dist/recognizers/address.js.map +1 -0
  236. package/dist/recognizers/base.d.ts +78 -0
  237. package/dist/recognizers/base.d.ts.map +1 -0
  238. package/dist/recognizers/base.js +100 -0
  239. package/dist/recognizers/base.js.map +1 -0
  240. package/dist/recognizers/bic-swift.d.ts +10 -0
  241. package/dist/recognizers/bic-swift.d.ts.map +1 -0
  242. package/dist/recognizers/bic-swift.js +107 -0
  243. package/dist/recognizers/bic-swift.js.map +1 -0
  244. package/dist/recognizers/credit-card.d.ts +32 -0
  245. package/dist/recognizers/credit-card.d.ts.map +1 -0
  246. package/dist/recognizers/credit-card.js +160 -0
  247. package/dist/recognizers/credit-card.js.map +1 -0
  248. package/dist/recognizers/custom-id.d.ts +28 -0
  249. package/dist/recognizers/custom-id.d.ts.map +1 -0
  250. package/dist/recognizers/custom-id.js +116 -0
  251. package/dist/recognizers/custom-id.js.map +1 -0
  252. package/dist/recognizers/date.d.ts +10 -0
  253. package/dist/recognizers/date.d.ts.map +1 -0
  254. package/dist/recognizers/date.js +228 -0
  255. package/dist/recognizers/date.js.map +1 -0
  256. package/dist/recognizers/email.d.ts +10 -0
  257. package/dist/recognizers/email.d.ts.map +1 -0
  258. package/dist/recognizers/email.js +75 -0
  259. package/dist/recognizers/email.js.map +1 -0
  260. package/dist/recognizers/iban.d.ts +14 -0
  261. package/dist/recognizers/iban.d.ts.map +1 -0
  262. package/dist/recognizers/iban.js +67 -0
  263. package/dist/recognizers/iban.js.map +1 -0
  264. package/dist/recognizers/index.d.ts +25 -0
  265. package/dist/recognizers/index.d.ts.map +1 -0
  266. package/dist/recognizers/index.js +53 -0
  267. package/dist/recognizers/index.js.map +1 -0
  268. package/dist/recognizers/ip-address.d.ts +14 -0
  269. package/dist/recognizers/ip-address.d.ts.map +1 -0
  270. package/dist/recognizers/ip-address.js +183 -0
  271. package/dist/recognizers/ip-address.js.map +1 -0
  272. package/dist/recognizers/phone.d.ts +10 -0
  273. package/dist/recognizers/phone.d.ts.map +1 -0
  274. package/dist/recognizers/phone.js +145 -0
  275. package/dist/recognizers/phone.js.map +1 -0
  276. package/dist/recognizers/postal-code.d.ts +16 -0
  277. package/dist/recognizers/postal-code.d.ts.map +1 -0
  278. package/dist/recognizers/postal-code.js +42 -0
  279. package/dist/recognizers/postal-code.js.map +1 -0
  280. package/dist/recognizers/registry.d.ts +59 -0
  281. package/dist/recognizers/registry.d.ts.map +1 -0
  282. package/dist/recognizers/registry.js +113 -0
  283. package/dist/recognizers/registry.js.map +1 -0
  284. package/dist/recognizers/secrets/api-key.d.ts +6 -0
  285. package/dist/recognizers/secrets/api-key.d.ts.map +1 -0
  286. package/dist/recognizers/secrets/api-key.js +40 -0
  287. package/dist/recognizers/secrets/api-key.js.map +1 -0
  288. package/dist/recognizers/secrets/aws-credentials.d.ts +7 -0
  289. package/dist/recognizers/secrets/aws-credentials.d.ts.map +1 -0
  290. package/dist/recognizers/secrets/aws-credentials.js +68 -0
  291. package/dist/recognizers/secrets/aws-credentials.js.map +1 -0
  292. package/dist/recognizers/secrets/config-secret.d.ts +8 -0
  293. package/dist/recognizers/secrets/config-secret.d.ts.map +1 -0
  294. package/dist/recognizers/secrets/config-secret.js +59 -0
  295. package/dist/recognizers/secrets/config-secret.js.map +1 -0
  296. package/dist/recognizers/secrets/connection-string.d.ts +6 -0
  297. package/dist/recognizers/secrets/connection-string.d.ts.map +1 -0
  298. package/dist/recognizers/secrets/connection-string.js +40 -0
  299. package/dist/recognizers/secrets/connection-string.js.map +1 -0
  300. package/dist/recognizers/secrets/env-var.d.ts +8 -0
  301. package/dist/recognizers/secrets/env-var.d.ts.map +1 -0
  302. package/dist/recognizers/secrets/env-var.js +54 -0
  303. package/dist/recognizers/secrets/env-var.js.map +1 -0
  304. package/dist/recognizers/secrets/index.d.ts +22 -0
  305. package/dist/recognizers/secrets/index.d.ts.map +1 -0
  306. package/dist/recognizers/secrets/index.js +41 -0
  307. package/dist/recognizers/secrets/index.js.map +1 -0
  308. package/dist/recognizers/secrets/jwt.d.ts +6 -0
  309. package/dist/recognizers/secrets/jwt.d.ts.map +1 -0
  310. package/dist/recognizers/secrets/jwt.js +47 -0
  311. package/dist/recognizers/secrets/jwt.js.map +1 -0
  312. package/dist/recognizers/secrets/key-patterns.d.ts +10 -0
  313. package/dist/recognizers/secrets/key-patterns.d.ts.map +1 -0
  314. package/dist/recognizers/secrets/key-patterns.js +15 -0
  315. package/dist/recognizers/secrets/key-patterns.js.map +1 -0
  316. package/dist/recognizers/secrets/literal-value.d.ts +10 -0
  317. package/dist/recognizers/secrets/literal-value.d.ts.map +1 -0
  318. package/dist/recognizers/secrets/literal-value.js +48 -0
  319. package/dist/recognizers/secrets/literal-value.js.map +1 -0
  320. package/dist/recognizers/secrets/private-key.d.ts +6 -0
  321. package/dist/recognizers/secrets/private-key.d.ts.map +1 -0
  322. package/dist/recognizers/secrets/private-key.js +16 -0
  323. package/dist/recognizers/secrets/private-key.js.map +1 -0
  324. package/dist/recognizers/url.d.ts +14 -0
  325. package/dist/recognizers/url.d.ts.map +1 -0
  326. package/dist/recognizers/url.js +121 -0
  327. package/dist/recognizers/url.js.map +1 -0
  328. package/dist/storage/browser.d.ts +13 -0
  329. package/dist/storage/browser.d.ts.map +1 -0
  330. package/dist/storage/browser.js +13 -0
  331. package/dist/storage/browser.js.map +1 -0
  332. package/dist/storage/in-memory.d.ts +60 -0
  333. package/dist/storage/in-memory.d.ts.map +1 -0
  334. package/dist/storage/in-memory.js +108 -0
  335. package/dist/storage/in-memory.js.map +1 -0
  336. package/dist/storage/index.d.ts +11 -0
  337. package/dist/storage/index.d.ts.map +1 -0
  338. package/dist/storage/index.js +11 -0
  339. package/dist/storage/index.js.map +1 -0
  340. package/dist/storage/indexeddb.d.ts +69 -0
  341. package/dist/storage/indexeddb.d.ts.map +1 -0
  342. package/dist/storage/indexeddb.js +274 -0
  343. package/dist/storage/indexeddb.js.map +1 -0
  344. package/dist/storage/session-base.d.ts +34 -0
  345. package/dist/storage/session-base.d.ts.map +1 -0
  346. package/dist/storage/session-base.js +122 -0
  347. package/dist/storage/session-base.js.map +1 -0
  348. package/dist/storage/session.d.ts +19 -0
  349. package/dist/storage/session.d.ts.map +1 -0
  350. package/dist/storage/session.js +31 -0
  351. package/dist/storage/session.js.map +1 -0
  352. package/dist/storage/sqlite.d.ts +80 -0
  353. package/dist/storage/sqlite.d.ts.map +1 -0
  354. package/dist/storage/sqlite.js +255 -0
  355. package/dist/storage/sqlite.js.map +1 -0
  356. package/dist/storage/types.d.ts +208 -0
  357. package/dist/storage/types.d.ts.map +1 -0
  358. package/dist/storage/types.js +6 -0
  359. package/dist/storage/types.js.map +1 -0
  360. package/dist/streaming/anonymizer-stream.d.ts +63 -0
  361. package/dist/streaming/anonymizer-stream.d.ts.map +1 -0
  362. package/dist/streaming/anonymizer-stream.js +184 -0
  363. package/dist/streaming/anonymizer-stream.js.map +1 -0
  364. package/dist/streaming/index.d.ts +9 -0
  365. package/dist/streaming/index.d.ts.map +1 -0
  366. package/dist/streaming/index.js +8 -0
  367. package/dist/streaming/index.js.map +1 -0
  368. package/dist/streaming/sentence-buffer.d.ts +78 -0
  369. package/dist/streaming/sentence-buffer.d.ts.map +1 -0
  370. package/dist/streaming/sentence-buffer.js +239 -0
  371. package/dist/streaming/sentence-buffer.js.map +1 -0
  372. package/dist/streaming/stream-factory.d.ts +38 -0
  373. package/dist/streaming/stream-factory.d.ts.map +1 -0
  374. package/dist/streaming/stream-factory.js +69 -0
  375. package/dist/streaming/stream-factory.js.map +1 -0
  376. package/dist/streaming/types.d.ts +121 -0
  377. package/dist/streaming/types.d.ts.map +1 -0
  378. package/dist/streaming/types.js +5 -0
  379. package/dist/streaming/types.js.map +1 -0
  380. package/dist/types/index.d.ts +269 -0
  381. package/dist/types/index.d.ts.map +1 -0
  382. package/dist/types/index.js +95 -0
  383. package/dist/types/index.js.map +1 -0
  384. package/dist/types/pii-types.d.ts +64 -0
  385. package/dist/types/pii-types.d.ts.map +1 -0
  386. package/dist/types/pii-types.js +153 -0
  387. package/dist/types/pii-types.js.map +1 -0
  388. package/dist/utils/iban-checksum.d.ts +23 -0
  389. package/dist/utils/iban-checksum.d.ts.map +1 -0
  390. package/dist/utils/iban-checksum.js +106 -0
  391. package/dist/utils/iban-checksum.js.map +1 -0
  392. package/dist/utils/index.d.ts +11 -0
  393. package/dist/utils/index.d.ts.map +1 -0
  394. package/dist/utils/index.js +11 -0
  395. package/dist/utils/index.js.map +1 -0
  396. package/dist/utils/json-walk.d.ts +21 -0
  397. package/dist/utils/json-walk.d.ts.map +1 -0
  398. package/dist/utils/json-walk.js +44 -0
  399. package/dist/utils/json-walk.js.map +1 -0
  400. package/dist/utils/luhn.d.ts +17 -0
  401. package/dist/utils/luhn.d.ts.map +1 -0
  402. package/dist/utils/luhn.js +55 -0
  403. package/dist/utils/luhn.js.map +1 -0
  404. package/dist/utils/offsets.d.ts +86 -0
  405. package/dist/utils/offsets.d.ts.map +1 -0
  406. package/dist/utils/offsets.js +124 -0
  407. package/dist/utils/offsets.js.map +1 -0
  408. package/dist/utils/path.d.ts +34 -0
  409. package/dist/utils/path.d.ts.map +1 -0
  410. package/dist/utils/path.js +96 -0
  411. package/dist/utils/path.js.map +1 -0
  412. package/dist/utils/regex.d.ts +11 -0
  413. package/dist/utils/regex.d.ts.map +1 -0
  414. package/dist/utils/regex.js +14 -0
  415. package/dist/utils/regex.js.map +1 -0
  416. package/dist/utils/storage-browser.d.ts +51 -0
  417. package/dist/utils/storage-browser.d.ts.map +1 -0
  418. package/dist/utils/storage-browser.js +381 -0
  419. package/dist/utils/storage-browser.js.map +1 -0
  420. package/dist/utils/storage-node.d.ts +51 -0
  421. package/dist/utils/storage-node.d.ts.map +1 -0
  422. package/dist/utils/storage-node.js +153 -0
  423. package/dist/utils/storage-node.js.map +1 -0
  424. package/dist/utils/storage.browser.d.ts +75 -0
  425. package/dist/utils/storage.browser.d.ts.map +1 -0
  426. package/dist/utils/storage.browser.js +69 -0
  427. package/dist/utils/storage.browser.js.map +1 -0
  428. package/dist/utils/storage.d.ts +73 -0
  429. package/dist/utils/storage.d.ts.map +1 -0
  430. package/dist/utils/storage.js +69 -0
  431. package/dist/utils/storage.js.map +1 -0
  432. package/package.json +148 -0
@@ -0,0 +1,514 @@
1
+ /**
2
+ * NER Model Wrapper
3
+ * ONNX Runtime integration for Named Entity Recognition
4
+ * Supports both onnxruntime-node and onnxruntime-web
5
+ */
6
+ import { loadRuntime, getRuntimeType, } from "#onnx-runtime";
7
+ import { WordPieceTokenizer, loadVocabFromFile, } from "./tokenizer.js";
8
+ import { decodeBIOTags, convertToSpanMatches, cleanupSpanBoundaries, mergeAdjacentSpans, } from "./bio-decoder.js";
9
+ import { createTokenWindows, mergeWindowSpans, validateWindowConfig, windowTokenBudget, } from "./token-window.js";
10
+ import { getStorageProvider, isBrowser } from "#storage";
11
+ /**
12
+ * Default label map for common NER models (CoNLL-style)
13
+ */
14
+ export const DEFAULT_LABEL_MAP = [
15
+ "O",
16
+ "B-PER",
17
+ "I-PER",
18
+ "B-ORG",
19
+ "I-ORG",
20
+ "B-LOC",
21
+ "I-LOC",
22
+ "B-MISC",
23
+ "I-MISC",
24
+ ];
25
+ /**
26
+ * Builds optimized ONNX session options based on runtime environment
27
+ * @param runtimeType - The detected ONNX runtime type ('node' or 'web')
28
+ * @param customOptions - User-provided options that override defaults
29
+ */
30
+ function buildSessionOptions(runtimeType, customOptions) {
31
+ const defaults = {
32
+ graphOptimizationLevel: "all",
33
+ enableCpuMemArena: true,
34
+ enableMemPattern: true,
35
+ intraOpNumThreads: 4,
36
+ interOpNumThreads: 1,
37
+ };
38
+ // Add execution providers based on environment
39
+ if (runtimeType === "web") {
40
+ // WebGPU (if available) with WASM fallback for browsers
41
+ defaults.executionProviders = ["webgpu", "wasm"];
42
+ }
43
+ // For Node.js, no explicit execution providers needed (defaults to CPU)
44
+ // Merge with custom options (custom options override defaults)
45
+ return { ...defaults, ...customOptions };
46
+ }
47
+ /**
48
+ * NER Model wrapper for ONNX inference
49
+ */
50
+ export class NERModel {
51
+ ort = null;
52
+ session = null;
53
+ tokenizer = null;
54
+ config;
55
+ isLoaded = false;
56
+ constructor(config) {
57
+ this.config = config;
58
+ }
59
+ /**
60
+ * Loads the model and tokenizer
61
+ */
62
+ async load() {
63
+ if (this.isLoaded)
64
+ return;
65
+ // Load ONNX runtime (auto-detects best runtime for environment)
66
+ this.ort = await loadRuntime();
67
+ // Build optimized session options based on runtime and user config
68
+ const runtimeType = getRuntimeType();
69
+ const sessionOptions = buildSessionOptions(runtimeType, this.config.sessionOptions);
70
+ // Load ONNX model
71
+ // In browsers, we need to load the model as ArrayBuffer since file paths don't work
72
+ // onnxruntime-web accepts ArrayBuffer/Uint8Array, while onnxruntime-node accepts file paths
73
+ if (isBrowser()) {
74
+ const storage = await getStorageProvider();
75
+ const modelData = await storage.readFile(this.config.modelPath);
76
+ // onnxruntime-web accepts Uint8Array directly
77
+ this.session = await this.ort.InferenceSession.create(modelData, sessionOptions);
78
+ }
79
+ else {
80
+ // In Node.js, we can use the file path directly
81
+ this.session = await this.ort.InferenceSession.create(this.config.modelPath, sessionOptions);
82
+ }
83
+ // Load tokenizer vocabulary (already uses storage abstraction internally)
84
+ const vocab = await loadVocabFromFile(this.config.vocabPath);
85
+ this.tokenizer = new WordPieceTokenizer(vocab, {
86
+ maxLength: this.config.maxLength,
87
+ doLowerCase: this.config.doLowerCase,
88
+ });
89
+ this.isLoaded = true;
90
+ }
91
+ /**
92
+ * Runs a single NER pass: tokenize, infer, decode BIO tags.
93
+ * @param inputText - Text to tokenize and feed to the model
94
+ * @param originalText - Original text used for extracting entity text (may differ in casing)
95
+ */
96
+ async runNERPass(inputText, originalText, minConfidence) {
97
+ // Tokenize without per-model truncation so windows retain global
98
+ // character offsets. Bound the token count to what maxWindowsPerInput
99
+ // windows can consume: only the leading windows are ever scanned, so
100
+ // materializing a multi-million-token array for a multi-MB value would
101
+ // be pure waste (and a memory hazard). maxTokens undefined = unbounded.
102
+ const maxTokens = this.config.maxWindowsPerInput === undefined
103
+ ? undefined
104
+ : windowTokenBudget(this.config.maxLength, this.config.windowOverlapTokens, this.config.maxWindowsPerInput);
105
+ const tokenization = this.tokenizer.tokenize(inputText, { truncate: false, maxTokens });
106
+ const windows = createTokenWindows(tokenization, this.config.maxLength, this.config.windowOverlapTokens);
107
+ if (tokenization.truncated) {
108
+ const info = { scannedWindows: windows.length, inputLength: inputText.length };
109
+ if (this.config.onWindowCap) {
110
+ this.config.onWindowCap(info);
111
+ }
112
+ else {
113
+ console.warn(`[rehydra] NER input (${info.inputLength} chars) exceeds the window budget; scanning only the first ${info.scannedWindows} windows (maxWindowsPerInput)`);
114
+ }
115
+ }
116
+ const spans = [];
117
+ for (const window of windows) {
118
+ const { labels, confidences } = await this.runInference(window);
119
+ const rawEntities = decodeBIOTags(window.tokens, labels, confidences, originalText);
120
+ spans.push(...convertToSpanMatches(rawEntities, minConfidence));
121
+ }
122
+ // Chars of input actually scanned = end of the last content token (the
123
+ // token before the trailing SEP). When there is no content token, coverage
124
+ // is 0 if we truncated (nothing was scanned — a caller must not treat this
125
+ // as "all covered") and the full length otherwise (empty/whitespace input).
126
+ const lastContentToken = tokenization.tokens[tokenization.tokens.length - 2];
127
+ const hasContentToken = lastContentToken !== undefined && !lastContentToken.isSpecial;
128
+ const coverageChars = hasContentToken
129
+ ? lastContentToken.end
130
+ : tokenization.truncated
131
+ ? 0
132
+ : inputText.length;
133
+ return {
134
+ spans: mergeWindowSpans(spans, originalText),
135
+ truncated: tokenization.truncated,
136
+ coverageChars,
137
+ };
138
+ }
139
+ /**
140
+ * Predicts entities in text
141
+ */
142
+ async predict(text, policy) {
143
+ const startTime = performance.now();
144
+ if (!this.isLoaded || this.session === null || this.tokenizer === null) {
145
+ throw new Error("Model not loaded. Call load() first.");
146
+ }
147
+ const minConfidence = this.getMinConfidence(policy);
148
+ // Primary NER pass on original text
149
+ const primary = await this.runNERPass(text, text, minConfidence);
150
+ let spans = primary.spans;
151
+ let truncated = primary.truncated;
152
+ // A caller cutting at coverageChars must stay within what BOTH passes
153
+ // scanned, so take the smaller offset. (Title-casing preserves length but
154
+ // changes tokenization, so the fallback pass can cap at a different point.)
155
+ let coverageChars = primary.coverageChars;
156
+ // Case fallback: run a second pass on title-cased text to catch lowercase names
157
+ const caseFallback = this.config.caseFallback ?? false;
158
+ if (caseFallback) {
159
+ const titleCased = titleCaseWords(text);
160
+ if (titleCased !== text) {
161
+ const penalty = this.config.caseFallbackPenalty ?? 0.85;
162
+ const fallback = await this.runNERPass(titleCased, text, minConfidence);
163
+ truncated = truncated || fallback.truncated;
164
+ coverageChars = Math.min(coverageChars, fallback.coverageChars);
165
+ // Merge only non-overlapping fallback detections with a confidence penalty
166
+ for (const span of fallback.spans) {
167
+ const overlaps = spans.some((existing) => existing.start < span.end && span.start < existing.end);
168
+ if (!overlaps) {
169
+ spans.push({
170
+ ...span,
171
+ confidence: span.confidence * penalty,
172
+ });
173
+ }
174
+ }
175
+ }
176
+ }
177
+ // Post-process spans
178
+ spans = cleanupSpanBoundaries(spans, text);
179
+ spans = mergeAdjacentSpans(spans, text);
180
+ // Filter by enabled types in policy
181
+ if (policy !== undefined) {
182
+ spans = spans.filter((span) => policy.enabledTypes.has(span.type) &&
183
+ policy.nerEnabledTypes.has(span.type));
184
+ }
185
+ const endTime = performance.now();
186
+ return {
187
+ spans,
188
+ processingTimeMs: endTime - startTime,
189
+ modelVersion: this.config.modelVersion,
190
+ truncated,
191
+ coverageChars,
192
+ };
193
+ }
194
+ /**
195
+ * Runs ONNX inference
196
+ */
197
+ async runInference(tokenization) {
198
+ if (this.session === null || this.ort === null) {
199
+ throw new Error("Session not initialized");
200
+ }
201
+ const session = this.session;
202
+ const seqLength = tokenization.inputIds.length;
203
+ // Create tensors
204
+ const inputIdsTensor = new this.ort.Tensor("int64", BigInt64Array.from(tokenization.inputIds.map(BigInt)), [1, seqLength]);
205
+ const attentionMaskTensor = new this.ort.Tensor("int64", BigInt64Array.from(tokenization.attentionMask.map(BigInt)), [1, seqLength]);
206
+ const tokenTypeIdsTensor = new this.ort.Tensor("int64", BigInt64Array.from(tokenization.tokenTypeIds.map(BigInt)), [1, seqLength]);
207
+ // Run inference
208
+ const feeds = {
209
+ input_ids: inputIdsTensor,
210
+ attention_mask: attentionMaskTensor,
211
+ };
212
+ // Some models also need token_type_ids
213
+ const inputNames = session.inputNames;
214
+ if (inputNames.includes("token_type_ids")) {
215
+ feeds["token_type_ids"] = tokenTypeIdsTensor;
216
+ }
217
+ const results = await session.run(feeds);
218
+ // Get logits output
219
+ const outputName = session.outputNames[0];
220
+ if (outputName === undefined) {
221
+ throw new Error("No output from model");
222
+ }
223
+ const logits = results[outputName];
224
+ if (logits === undefined) {
225
+ throw new Error("Logits output not found");
226
+ }
227
+ // Process logits to get labels and confidences
228
+ return this.processLogits(logits, seqLength);
229
+ }
230
+ /**
231
+ * Processes model logits to extract labels and confidences
232
+ */
233
+ processLogits(logits, seqLength) {
234
+ const data = logits.data;
235
+ const numLabels = this.config.labelMap.length;
236
+ const labels = [];
237
+ const confidences = [];
238
+ for (let i = 0; i < seqLength; i++) {
239
+ // Get logits for this token
240
+ const tokenLogits = [];
241
+ for (let j = 0; j < numLabels; j++) {
242
+ tokenLogits.push(data[i * numLabels + j] ?? 0);
243
+ }
244
+ // Apply softmax
245
+ const probs = softmax(tokenLogits);
246
+ // Get argmax
247
+ let maxIdx = 0;
248
+ let maxProb = probs[0] ?? 0;
249
+ for (let j = 1; j < probs.length; j++) {
250
+ if ((probs[j] ?? 0) > maxProb) {
251
+ maxProb = probs[j] ?? 0;
252
+ maxIdx = j;
253
+ }
254
+ }
255
+ labels.push(this.config.labelMap[maxIdx] ?? "O");
256
+ confidences.push(maxProb);
257
+ }
258
+ return { labels, confidences };
259
+ }
260
+ /**
261
+ * Gets minimum confidence threshold from policy
262
+ */
263
+ getMinConfidence(policy) {
264
+ if (policy === undefined)
265
+ return 0.5;
266
+ // Get minimum from all NER-enabled types
267
+ let minThreshold = 1.0;
268
+ for (const type of policy.nerEnabledTypes) {
269
+ const threshold = policy.confidenceThresholds.get(type) ?? 0.5;
270
+ if (threshold < minThreshold) {
271
+ minThreshold = threshold;
272
+ }
273
+ }
274
+ return minThreshold;
275
+ }
276
+ /**
277
+ * Gets model version
278
+ */
279
+ get version() {
280
+ return this.config.modelVersion;
281
+ }
282
+ /**
283
+ * Checks if model is loaded
284
+ */
285
+ get loaded() {
286
+ return this.isLoaded;
287
+ }
288
+ /**
289
+ * Disposes of model resources
290
+ */
291
+ dispose() {
292
+ // ONNX Runtime Node doesn't have explicit dispose, but we can clear references
293
+ this.session = null;
294
+ this.tokenizer = null;
295
+ this.isLoaded = false;
296
+ return Promise.resolve();
297
+ }
298
+ }
299
+ /**
300
+ * Common function words / stopwords that should stay lowercase during case
301
+ * fallback so the NER model can still use contrastive casing as a signal.
302
+ * Only lowercase words NOT in this set get capitalized.
303
+ */
304
+ const CASE_FALLBACK_STOPWORDS = new Set([
305
+ // articles
306
+ "a", "an", "the",
307
+ // pronouns
308
+ "i", "me", "my", "mine", "myself",
309
+ "you", "your", "yours", "yourself",
310
+ "he", "him", "his", "himself",
311
+ "she", "her", "hers", "herself",
312
+ "it", "its", "itself",
313
+ "we", "us", "our", "ours", "ourselves",
314
+ "they", "them", "their", "theirs", "themselves",
315
+ "this", "that", "these", "those",
316
+ "who", "whom", "whose", "which", "what",
317
+ // prepositions
318
+ "in", "on", "at", "to", "for", "of", "with", "by", "from",
319
+ "up", "about", "into", "through", "during", "before", "after",
320
+ "above", "below", "between", "under", "over", "out", "off",
321
+ "against", "along", "around", "among", "without", "within",
322
+ // conjunctions
323
+ "and", "but", "or", "nor", "so", "yet", "both", "either",
324
+ "neither", "not", "than", "when", "while", "if", "then",
325
+ "because", "since", "although", "though", "unless", "until",
326
+ // common verbs / auxiliaries
327
+ "is", "am", "are", "was", "were", "be", "been", "being",
328
+ "have", "has", "had", "having",
329
+ "do", "does", "did", "doing",
330
+ "will", "would", "shall", "should",
331
+ "can", "could", "may", "might", "must",
332
+ "need", "dare", "ought",
333
+ "get", "got", "gets", "getting",
334
+ "let", "say", "said", "says",
335
+ "go", "goes", "went", "going", "gone",
336
+ "come", "comes", "came", "coming",
337
+ "make", "makes", "made", "making",
338
+ "take", "takes", "took", "taken", "taking",
339
+ "give", "gives", "gave", "given", "giving",
340
+ "tell", "tells", "told", "telling",
341
+ "know", "knows", "knew", "known", "knowing",
342
+ "think", "thinks", "thought", "thinking",
343
+ "see", "sees", "saw", "seen", "seeing",
344
+ "want", "wants", "wanted", "wanting",
345
+ "look", "looks", "looked", "looking",
346
+ "use", "uses", "used", "using",
347
+ "find", "finds", "found", "finding",
348
+ "put", "puts", "putting",
349
+ "try", "tries", "tried", "trying",
350
+ "ask", "asks", "asked", "asking",
351
+ "work", "works", "worked", "working",
352
+ "seem", "seems", "seemed", "seeming",
353
+ "feel", "feels", "felt", "feeling",
354
+ "leave", "leaves", "left", "leaving",
355
+ "call", "calls", "called", "calling",
356
+ "keep", "keeps", "kept", "keeping",
357
+ "set", "sets", "setting",
358
+ "show", "shows", "showed", "shown", "showing",
359
+ "turn", "turns", "turned", "turning",
360
+ "move", "moves", "moved", "moving",
361
+ "play", "plays", "played", "playing",
362
+ "run", "runs", "ran", "running",
363
+ "hold", "holds", "held", "holding",
364
+ "bring", "brings", "brought", "bringing",
365
+ "happen", "happens", "happened", "happening",
366
+ "write", "writes", "wrote", "written", "writing",
367
+ "sit", "sits", "sat", "sitting",
368
+ "stand", "stands", "stood", "standing",
369
+ "lose", "loses", "lost", "losing",
370
+ "pay", "pays", "paid", "paying",
371
+ "meet", "meets", "met", "meeting",
372
+ "send", "sends", "sent", "sending",
373
+ "read", "reads", "reading",
374
+ "spend", "spends", "spent", "spending",
375
+ "grow", "grows", "grew", "grown", "growing",
376
+ "open", "opens", "opened", "opening",
377
+ "walk", "walks", "walked", "walking",
378
+ "win", "wins", "won", "winning",
379
+ "teach", "teaches", "taught", "teaching",
380
+ "buy", "buys", "bought", "buying",
381
+ "speak", "speaks", "spoke", "spoken", "speaking",
382
+ // adverbs / misc
383
+ "now", "just", "also", "very", "often", "still", "already",
384
+ "how", "all", "each", "every", "any", "few", "more", "most",
385
+ "some", "such", "no", "only", "same", "other", "new", "old",
386
+ "right", "well", "back", "even", "too", "here", "there",
387
+ "where", "why", "again", "once", "never", "always",
388
+ "much", "many", "own", "quite", "really",
389
+ "way", "thing", "things", "part", "place", "case", "point",
390
+ "time", "times", "day", "days", "year", "years",
391
+ "man", "men", "woman", "women", "child", "children",
392
+ "world", "life", "hand", "long", "little", "big",
393
+ "good", "bad", "great", "small", "large", "high", "low",
394
+ "first", "last", "next", "bit", "lot", "kind", "sort",
395
+ "enough", "able", "away", "sure", "else",
396
+ // contractions / fragments
397
+ "don", "doesn", "didn", "won", "wouldn", "shouldn",
398
+ "couldn", "isn", "aren", "wasn", "weren", "hasn", "haven",
399
+ "hadn", "ll", "ve", "re", "nt",
400
+ // German stopwords (common in multilingual contexts)
401
+ "der", "die", "das", "ein", "eine", "einer",
402
+ "und", "oder", "aber", "denn", "weil",
403
+ "ist", "sind", "war", "waren", "bin", "bist",
404
+ "hat", "haben", "hatte", "hatten",
405
+ "wird", "werden", "wurde", "wurden",
406
+ "kann", "konnte", "soll", "sollte", "muss", "musste",
407
+ "nicht", "kein", "keine", "keiner",
408
+ "ich", "du", "er", "sie", "es", "wir", "ihr",
409
+ "mein", "dein", "sein", "unser", "euer",
410
+ "mir", "dir", "ihm", "uns", "euch", "ihnen",
411
+ "auf", "aus", "bei", "mit", "nach", "von", "zu", "vor",
412
+ "den", "dem", "des",
413
+ "als", "wie", "wenn", "dann", "doch", "noch", "schon",
414
+ "auch", "nur", "sehr", "mehr", "jetzt", "hier", "da",
415
+ "mal", "bitte", "etwas", "was", "wer", "wo",
416
+ "ja", "nein", "okay",
417
+ // French stopwords
418
+ "le", "la", "les", "un", "une", "des",
419
+ "et", "ou", "mais", "donc", "car",
420
+ "je", "tu", "il", "elle", "nous", "vous", "ils", "elles",
421
+ "mon", "ton", "son", "notre", "votre", "leur",
422
+ "ce", "cette", "ces",
423
+ "est", "sont", "suis", "es", "sommes",
424
+ "pas", "ne", "plus", "que", "qui",
425
+ "dans", "sur", "sous", "avec", "pour", "par", "entre",
426
+ "au", "aux", "du",
427
+ "tout", "tous", "bien", "peu", "trop",
428
+ // Spanish stopwords
429
+ "el", "los", "las", "uno", "una", "unos", "unas",
430
+ "yo", "nos", "su", "sus", "mi", "mis", "tu", "tus",
431
+ "es", "son", "fue", "era", "hay",
432
+ "en", "con", "sin", "sobre", "entre", "hacia",
433
+ "del", "al",
434
+ "no", "si", "muy", "mas", "menos",
435
+ "que", "como", "donde", "cuando", "porque",
436
+ ]);
437
+ /**
438
+ * Capitalizes the first letter of each word for case-insensitive NER fallback.
439
+ * Only capitalizes words NOT in the stopword list, so the NER model retains
440
+ * contrastive casing signal (lowercase function words vs. capitalized candidates).
441
+ * Preserves string length so character offsets remain valid.
442
+ */
443
+ function titleCaseWords(text) {
444
+ return text.replace(/\b([a-z][a-z]*)/g, (word) => {
445
+ if (CASE_FALLBACK_STOPWORDS.has(word)) {
446
+ return word;
447
+ }
448
+ return word.charAt(0).toUpperCase() + word.slice(1);
449
+ });
450
+ }
451
+ /**
452
+ * Softmax function for probability calculation
453
+ */
454
+ function softmax(logits) {
455
+ const maxLogit = Math.max(...logits);
456
+ const expLogits = logits.map((x) => Math.exp(x - maxLogit));
457
+ const sumExp = expLogits.reduce((a, b) => a + b, 0);
458
+ return expLogits.map((x) => x / sumExp);
459
+ }
460
+ /**
461
+ * Creates a NER model instance with configuration
462
+ */
463
+ export function createNERModel(config) {
464
+ const maxLength = config.maxLength ?? 512;
465
+ const fullConfig = {
466
+ modelPath: config.modelPath,
467
+ vocabPath: config.vocabPath,
468
+ labelMap: config.labelMap ?? DEFAULT_LABEL_MAP,
469
+ maxLength,
470
+ windowOverlapTokens: config.windowOverlapTokens
471
+ ?? Math.min(64, Math.max(0, Math.floor((maxLength - 2) / 4))),
472
+ maxWindowsPerInput: config.maxWindowsPerInput,
473
+ onWindowCap: config.onWindowCap,
474
+ doLowerCase: config.doLowerCase ?? false, // XLM-RoBERTa is cased
475
+ modelVersion: config.modelVersion ?? "1.0.0",
476
+ sessionOptions: config.sessionOptions,
477
+ caseFallback: config.caseFallback,
478
+ caseFallbackPenalty: config.caseFallbackPenalty,
479
+ };
480
+ // Fail fast on bad windowing config instead of on the first predict().
481
+ validateWindowConfig(fullConfig.maxLength, fullConfig.windowOverlapTokens, fullConfig.maxWindowsPerInput);
482
+ return new NERModel(fullConfig);
483
+ }
484
+ /**
485
+ * NER Model stub for when no model is available
486
+ * Returns empty results - useful for regex-only mode
487
+ */
488
+ export class NERModelStub {
489
+ version = "stub-1.0.0";
490
+ loaded = true;
491
+ async load() {
492
+ // No-op
493
+ }
494
+ predict(_text, _policy) {
495
+ return Promise.resolve({
496
+ spans: [],
497
+ processingTimeMs: 0,
498
+ modelVersion: this.version,
499
+ truncated: false,
500
+ coverageChars: _text.length,
501
+ });
502
+ }
503
+ dispose() {
504
+ // No-op
505
+ return Promise.resolve();
506
+ }
507
+ }
508
+ /**
509
+ * Creates a stub NER model (for testing or regex-only mode)
510
+ */
511
+ export function createNERModelStub() {
512
+ return new NERModelStub();
513
+ }
514
+ //# sourceMappingURL=ner-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ner-model.js","sourceRoot":"","sources":["../../src/ner/ner-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * ONNX Runtime Abstraction - Browser-Only Version
3
+ *
4
+ * This module provides the same interface as onnx-runtime.ts but only includes
5
+ * onnxruntime-web. It's used by the browser entry point to avoid bundler issues
6
+ * with onnxruntime-node.
7
+ *
8
+ * DO NOT import onnxruntime-node here - that's the whole point!
9
+ */
10
+ export interface OrtTensor {
11
+ data: Float32Array | BigInt64Array | Int32Array;
12
+ dims: readonly number[];
13
+ }
14
+ export interface OrtSession {
15
+ inputNames: readonly string[];
16
+ outputNames: readonly string[];
17
+ run(feeds: Record<string, OrtTensor>): Promise<Record<string, OrtTensor>>;
18
+ }
19
+ export interface OrtInferenceSession {
20
+ create(pathOrBuffer: string | ArrayBuffer | Uint8Array, options?: unknown): Promise<OrtSession>;
21
+ }
22
+ export interface OrtTensorConstructor {
23
+ new (type: string, data: Float32Array | BigInt64Array | Int32Array | number[] | bigint[], dims: number[]): OrtTensor;
24
+ }
25
+ export interface OrtRuntime {
26
+ InferenceSession: OrtInferenceSession;
27
+ Tensor: OrtTensorConstructor;
28
+ }
29
+ /**
30
+ * Detects the best ONNX runtime for the current environment
31
+ * Browser version always returns "web"
32
+ */
33
+ export declare function detectRuntime(): "node" | "web";
34
+ /**
35
+ * Loads the ONNX runtime (always onnxruntime-web in browser build)
36
+ */
37
+ export declare function loadRuntime(preferredRuntime?: "node" | "web"): Promise<OrtRuntime>;
38
+ /**
39
+ * Gets the currently loaded runtime type
40
+ */
41
+ export declare function getRuntimeType(): "node" | "web" | null;
42
+ /**
43
+ * Resets the runtime (useful for testing)
44
+ */
45
+ export declare function resetRuntime(): void;
46
+ //# sourceMappingURL=onnx-runtime.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onnx-runtime.browser.d.ts","sourceRoot":"","sources":["../../src/ner/onnx-runtime.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;IAChD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CACJ,YAAY,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,EAC/C,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KACE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EACrE,IAAI,EAAE,MAAM,EAAE,GACb,SAAS,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAQD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,KAAK,CAE9C;AAiCD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,GAChC,OAAO,CAAC,UAAU,CAAC,CAyBrB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,KAAK,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}