@steno-ai/engine 0.1.10 → 0.1.12

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 (510) hide show
  1. package/README.md +0 -0
  2. package/dist/adapters/cache.d.ts +0 -0
  3. package/dist/adapters/cache.d.ts.map +0 -0
  4. package/dist/adapters/cache.js +0 -0
  5. package/dist/adapters/cache.js.map +0 -0
  6. package/dist/adapters/embedding.d.ts +0 -0
  7. package/dist/adapters/embedding.d.ts.map +0 -0
  8. package/dist/adapters/embedding.js +0 -0
  9. package/dist/adapters/embedding.js.map +0 -0
  10. package/dist/adapters/gemini-embedding.d.ts +0 -0
  11. package/dist/adapters/gemini-embedding.d.ts.map +0 -0
  12. package/dist/adapters/gemini-embedding.js +0 -0
  13. package/dist/adapters/gemini-embedding.js.map +0 -0
  14. package/dist/adapters/index.d.ts +0 -0
  15. package/dist/adapters/index.d.ts.map +0 -0
  16. package/dist/adapters/index.js +0 -0
  17. package/dist/adapters/index.js.map +0 -0
  18. package/dist/adapters/llm.d.ts +0 -0
  19. package/dist/adapters/llm.d.ts.map +0 -0
  20. package/dist/adapters/llm.js +0 -0
  21. package/dist/adapters/llm.js.map +0 -0
  22. package/dist/adapters/perplexity-embedding.d.ts +0 -0
  23. package/dist/adapters/perplexity-embedding.d.ts.map +0 -0
  24. package/dist/adapters/perplexity-embedding.js +0 -0
  25. package/dist/adapters/perplexity-embedding.js.map +0 -0
  26. package/dist/adapters/storage.d.ts +0 -0
  27. package/dist/adapters/storage.d.ts.map +0 -0
  28. package/dist/adapters/storage.js +0 -0
  29. package/dist/adapters/storage.js.map +0 -0
  30. package/dist/auth/api-key.d.ts +0 -0
  31. package/dist/auth/api-key.d.ts.map +0 -0
  32. package/dist/auth/api-key.js +0 -0
  33. package/dist/auth/api-key.js.map +0 -0
  34. package/dist/auth/index.d.ts +0 -0
  35. package/dist/auth/index.d.ts.map +0 -0
  36. package/dist/auth/index.js +0 -0
  37. package/dist/auth/index.js.map +0 -0
  38. package/dist/config.d.ts +4 -4
  39. package/dist/config.d.ts.map +1 -1
  40. package/dist/config.js +13 -1
  41. package/dist/config.js.map +1 -1
  42. package/dist/extraction/codebase-extractor.d.ts +14 -0
  43. package/dist/extraction/codebase-extractor.d.ts.map +1 -0
  44. package/dist/extraction/codebase-extractor.js +204 -0
  45. package/dist/extraction/codebase-extractor.js.map +1 -0
  46. package/dist/extraction/codebase-prompts.d.ts +13 -0
  47. package/dist/extraction/codebase-prompts.d.ts.map +1 -0
  48. package/dist/extraction/codebase-prompts.js +132 -0
  49. package/dist/extraction/codebase-prompts.js.map +1 -0
  50. package/dist/extraction/contradiction.d.ts +0 -0
  51. package/dist/extraction/contradiction.d.ts.map +0 -0
  52. package/dist/extraction/contradiction.js +0 -0
  53. package/dist/extraction/contradiction.js.map +0 -0
  54. package/dist/extraction/cross-linker.d.ts +0 -0
  55. package/dist/extraction/cross-linker.d.ts.map +0 -0
  56. package/dist/extraction/cross-linker.js +0 -0
  57. package/dist/extraction/cross-linker.js.map +0 -0
  58. package/dist/extraction/dedup.d.ts +0 -0
  59. package/dist/extraction/dedup.d.ts.map +0 -0
  60. package/dist/extraction/dedup.js +0 -0
  61. package/dist/extraction/dedup.js.map +0 -0
  62. package/dist/extraction/entity-extractor.d.ts +0 -0
  63. package/dist/extraction/entity-extractor.d.ts.map +0 -0
  64. package/dist/extraction/entity-extractor.js +0 -0
  65. package/dist/extraction/entity-extractor.js.map +0 -0
  66. package/dist/extraction/hasher.d.ts +0 -0
  67. package/dist/extraction/hasher.d.ts.map +0 -0
  68. package/dist/extraction/hasher.js +0 -0
  69. package/dist/extraction/hasher.js.map +0 -0
  70. package/dist/extraction/heuristic.d.ts +0 -0
  71. package/dist/extraction/heuristic.d.ts.map +0 -0
  72. package/dist/extraction/heuristic.js +0 -0
  73. package/dist/extraction/heuristic.js.map +0 -0
  74. package/dist/extraction/index.d.ts +2 -0
  75. package/dist/extraction/index.d.ts.map +1 -1
  76. package/dist/extraction/index.js +2 -0
  77. package/dist/extraction/index.js.map +1 -1
  78. package/dist/extraction/llm-extractor.d.ts +0 -0
  79. package/dist/extraction/llm-extractor.d.ts.map +1 -1
  80. package/dist/extraction/llm-extractor.js +5 -1
  81. package/dist/extraction/llm-extractor.js.map +1 -1
  82. package/dist/extraction/pipeline.d.ts +2 -0
  83. package/dist/extraction/pipeline.d.ts.map +1 -1
  84. package/dist/extraction/pipeline.js +84 -51
  85. package/dist/extraction/pipeline.js.map +1 -1
  86. package/dist/extraction/prompts.d.ts +2 -2
  87. package/dist/extraction/prompts.d.ts.map +1 -1
  88. package/dist/extraction/prompts.js +1 -0
  89. package/dist/extraction/prompts.js.map +1 -1
  90. package/dist/extraction/sliding-window.d.ts +0 -0
  91. package/dist/extraction/sliding-window.d.ts.map +0 -0
  92. package/dist/extraction/sliding-window.js +0 -0
  93. package/dist/extraction/sliding-window.js.map +0 -0
  94. package/dist/extraction/types.d.ts +1 -1
  95. package/dist/extraction/types.d.ts.map +1 -1
  96. package/dist/extraction/types.js +0 -0
  97. package/dist/extraction/types.js.map +0 -0
  98. package/dist/feedback/index.d.ts +0 -0
  99. package/dist/feedback/index.d.ts.map +0 -0
  100. package/dist/feedback/index.js +0 -0
  101. package/dist/feedback/index.js.map +0 -0
  102. package/dist/feedback/tracker.d.ts +0 -0
  103. package/dist/feedback/tracker.d.ts.map +0 -0
  104. package/dist/feedback/tracker.js +0 -0
  105. package/dist/feedback/tracker.js.map +0 -0
  106. package/dist/index.d.ts +0 -0
  107. package/dist/index.d.ts.map +0 -0
  108. package/dist/index.js +0 -0
  109. package/dist/index.js.map +0 -0
  110. package/dist/models/api-key.d.ts +0 -0
  111. package/dist/models/api-key.d.ts.map +0 -0
  112. package/dist/models/api-key.js +0 -0
  113. package/dist/models/api-key.js.map +0 -0
  114. package/dist/models/edge.d.ts +6 -6
  115. package/dist/models/edge.d.ts.map +0 -0
  116. package/dist/models/edge.js +0 -0
  117. package/dist/models/edge.js.map +0 -0
  118. package/dist/models/entity.d.ts +0 -0
  119. package/dist/models/entity.d.ts.map +0 -0
  120. package/dist/models/entity.js +0 -0
  121. package/dist/models/entity.js.map +0 -0
  122. package/dist/models/extraction.d.ts +12 -12
  123. package/dist/models/extraction.d.ts.map +0 -0
  124. package/dist/models/extraction.js +0 -0
  125. package/dist/models/extraction.js.map +0 -0
  126. package/dist/models/fact-entity.d.ts +0 -0
  127. package/dist/models/fact-entity.d.ts.map +0 -0
  128. package/dist/models/fact-entity.js +0 -0
  129. package/dist/models/fact-entity.js.map +0 -0
  130. package/dist/models/fact.d.ts +12 -12
  131. package/dist/models/fact.d.ts.map +0 -0
  132. package/dist/models/fact.js +0 -0
  133. package/dist/models/fact.js.map +0 -0
  134. package/dist/models/index.d.ts +0 -0
  135. package/dist/models/index.d.ts.map +0 -0
  136. package/dist/models/index.js +0 -0
  137. package/dist/models/index.js.map +0 -0
  138. package/dist/models/memory-access.d.ts +0 -0
  139. package/dist/models/memory-access.d.ts.map +0 -0
  140. package/dist/models/memory-access.js +0 -0
  141. package/dist/models/memory-access.js.map +0 -0
  142. package/dist/models/session-message.d.ts +0 -0
  143. package/dist/models/session-message.d.ts.map +0 -0
  144. package/dist/models/session-message.js +0 -0
  145. package/dist/models/session-message.js.map +0 -0
  146. package/dist/models/session.d.ts +0 -0
  147. package/dist/models/session.d.ts.map +0 -0
  148. package/dist/models/session.js +0 -0
  149. package/dist/models/session.js.map +0 -0
  150. package/dist/models/tenant.d.ts +0 -0
  151. package/dist/models/tenant.d.ts.map +0 -0
  152. package/dist/models/tenant.js +0 -0
  153. package/dist/models/tenant.js.map +0 -0
  154. package/dist/models/trigger.d.ts +6 -6
  155. package/dist/models/trigger.d.ts.map +0 -0
  156. package/dist/models/trigger.js +0 -0
  157. package/dist/models/trigger.js.map +0 -0
  158. package/dist/models/usage-record.d.ts +0 -0
  159. package/dist/models/usage-record.d.ts.map +0 -0
  160. package/dist/models/usage-record.js +0 -0
  161. package/dist/models/usage-record.js.map +0 -0
  162. package/dist/models/webhook.d.ts +0 -0
  163. package/dist/models/webhook.d.ts.map +0 -0
  164. package/dist/models/webhook.js +0 -0
  165. package/dist/models/webhook.js.map +0 -0
  166. package/dist/profiles/index.d.ts +0 -0
  167. package/dist/profiles/index.d.ts.map +0 -0
  168. package/dist/profiles/index.js +0 -0
  169. package/dist/profiles/index.js.map +0 -0
  170. package/dist/profiles/profile.d.ts +0 -0
  171. package/dist/profiles/profile.d.ts.map +0 -0
  172. package/dist/profiles/profile.js +0 -0
  173. package/dist/profiles/profile.js.map +0 -0
  174. package/dist/retrieval/compound-search.d.ts +0 -0
  175. package/dist/retrieval/compound-search.d.ts.map +0 -0
  176. package/dist/retrieval/compound-search.js +0 -0
  177. package/dist/retrieval/compound-search.js.map +0 -0
  178. package/dist/retrieval/contradiction-surfacer.d.ts +0 -0
  179. package/dist/retrieval/contradiction-surfacer.d.ts.map +0 -0
  180. package/dist/retrieval/contradiction-surfacer.js +0 -0
  181. package/dist/retrieval/contradiction-surfacer.js.map +0 -0
  182. package/dist/retrieval/embedding-cache.d.ts +0 -0
  183. package/dist/retrieval/embedding-cache.d.ts.map +0 -0
  184. package/dist/retrieval/embedding-cache.js +0 -0
  185. package/dist/retrieval/embedding-cache.js.map +0 -0
  186. package/dist/retrieval/fusion.d.ts +0 -0
  187. package/dist/retrieval/fusion.d.ts.map +0 -0
  188. package/dist/retrieval/fusion.js +0 -0
  189. package/dist/retrieval/fusion.js.map +0 -0
  190. package/dist/retrieval/graph-traversal.d.ts +0 -0
  191. package/dist/retrieval/graph-traversal.d.ts.map +0 -0
  192. package/dist/retrieval/graph-traversal.js +0 -0
  193. package/dist/retrieval/graph-traversal.js.map +0 -0
  194. package/dist/retrieval/index.d.ts +0 -0
  195. package/dist/retrieval/index.d.ts.map +0 -0
  196. package/dist/retrieval/index.js +0 -0
  197. package/dist/retrieval/index.js.map +0 -0
  198. package/dist/retrieval/keyword-search.d.ts +0 -0
  199. package/dist/retrieval/keyword-search.d.ts.map +0 -0
  200. package/dist/retrieval/keyword-search.js +0 -0
  201. package/dist/retrieval/keyword-search.js.map +0 -0
  202. package/dist/retrieval/query-expansion.d.ts +0 -0
  203. package/dist/retrieval/query-expansion.d.ts.map +0 -0
  204. package/dist/retrieval/query-expansion.js +0 -0
  205. package/dist/retrieval/query-expansion.js.map +0 -0
  206. package/dist/retrieval/reranker.d.ts +0 -0
  207. package/dist/retrieval/reranker.d.ts.map +0 -0
  208. package/dist/retrieval/reranker.js +0 -0
  209. package/dist/retrieval/reranker.js.map +0 -0
  210. package/dist/retrieval/salience-scorer.d.ts +0 -0
  211. package/dist/retrieval/salience-scorer.d.ts.map +0 -0
  212. package/dist/retrieval/salience-scorer.js +0 -0
  213. package/dist/retrieval/salience-scorer.js.map +0 -0
  214. package/dist/retrieval/search.d.ts +0 -0
  215. package/dist/retrieval/search.d.ts.map +1 -1
  216. package/dist/retrieval/search.js +77 -66
  217. package/dist/retrieval/search.js.map +1 -1
  218. package/dist/retrieval/temporal-scorer.d.ts +0 -0
  219. package/dist/retrieval/temporal-scorer.d.ts.map +0 -0
  220. package/dist/retrieval/temporal-scorer.js +0 -0
  221. package/dist/retrieval/temporal-scorer.js.map +0 -0
  222. package/dist/retrieval/trigger-matcher.d.ts +0 -0
  223. package/dist/retrieval/trigger-matcher.d.ts.map +0 -0
  224. package/dist/retrieval/trigger-matcher.js +0 -0
  225. package/dist/retrieval/trigger-matcher.js.map +0 -0
  226. package/dist/retrieval/types.d.ts +4 -0
  227. package/dist/retrieval/types.d.ts.map +1 -1
  228. package/dist/retrieval/types.js +10 -0
  229. package/dist/retrieval/types.js.map +1 -1
  230. package/dist/retrieval/vector-search.d.ts +0 -0
  231. package/dist/retrieval/vector-search.d.ts.map +0 -0
  232. package/dist/retrieval/vector-search.js +0 -0
  233. package/dist/retrieval/vector-search.js.map +0 -0
  234. package/dist/salience/decay.d.ts +0 -0
  235. package/dist/salience/decay.d.ts.map +0 -0
  236. package/dist/salience/decay.js +0 -0
  237. package/dist/salience/decay.js.map +0 -0
  238. package/dist/salience/index.d.ts +0 -0
  239. package/dist/salience/index.d.ts.map +0 -0
  240. package/dist/salience/index.js +0 -0
  241. package/dist/salience/index.js.map +0 -0
  242. package/dist/scratchpad/index.d.ts +0 -0
  243. package/dist/scratchpad/index.d.ts.map +0 -0
  244. package/dist/scratchpad/index.js +0 -0
  245. package/dist/scratchpad/index.js.map +0 -0
  246. package/dist/scratchpad/scratchpad.d.ts +0 -0
  247. package/dist/scratchpad/scratchpad.d.ts.map +0 -0
  248. package/dist/scratchpad/scratchpad.js +0 -0
  249. package/dist/scratchpad/scratchpad.js.map +0 -0
  250. package/dist/sessions/index.d.ts +0 -0
  251. package/dist/sessions/index.d.ts.map +0 -0
  252. package/dist/sessions/index.js +0 -0
  253. package/dist/sessions/index.js.map +0 -0
  254. package/dist/sessions/manager.d.ts +0 -0
  255. package/dist/sessions/manager.d.ts.map +0 -0
  256. package/dist/sessions/manager.js +0 -0
  257. package/dist/sessions/manager.js.map +0 -0
  258. package/package.json +9 -9
  259. package/src/adapters/cache.d.ts +0 -0
  260. package/src/adapters/cache.d.ts.map +0 -0
  261. package/src/adapters/cache.js +0 -0
  262. package/src/adapters/cache.js.map +0 -0
  263. package/src/adapters/cache.ts +0 -0
  264. package/src/adapters/embedding.d.ts +0 -0
  265. package/src/adapters/embedding.d.ts.map +0 -0
  266. package/src/adapters/embedding.js +0 -0
  267. package/src/adapters/embedding.js.map +0 -0
  268. package/src/adapters/embedding.ts +0 -0
  269. package/src/adapters/gemini-embedding.ts +0 -0
  270. package/src/adapters/index.ts +0 -0
  271. package/src/adapters/llm.d.ts +0 -0
  272. package/src/adapters/llm.d.ts.map +0 -0
  273. package/src/adapters/llm.js +0 -0
  274. package/src/adapters/llm.js.map +0 -0
  275. package/src/adapters/llm.ts +0 -0
  276. package/src/adapters/perplexity-embedding.d.ts +0 -0
  277. package/src/adapters/perplexity-embedding.d.ts.map +0 -0
  278. package/src/adapters/perplexity-embedding.js +0 -0
  279. package/src/adapters/perplexity-embedding.js.map +0 -0
  280. package/src/adapters/perplexity-embedding.ts +0 -0
  281. package/src/adapters/storage.d.ts +0 -0
  282. package/src/adapters/storage.d.ts.map +0 -0
  283. package/src/adapters/storage.js +0 -0
  284. package/src/adapters/storage.js.map +0 -0
  285. package/src/adapters/storage.ts +0 -0
  286. package/src/auth/api-key.ts +0 -0
  287. package/src/auth/index.ts +0 -0
  288. package/src/config.d.ts +0 -0
  289. package/src/config.d.ts.map +0 -0
  290. package/src/config.js +0 -0
  291. package/src/config.js.map +0 -0
  292. package/src/config.ts +13 -1
  293. package/src/extraction/codebase-extractor.ts +239 -0
  294. package/src/extraction/codebase-prompts.ts +141 -0
  295. package/src/extraction/contradiction.d.ts +0 -0
  296. package/src/extraction/contradiction.d.ts.map +0 -0
  297. package/src/extraction/contradiction.js +0 -0
  298. package/src/extraction/contradiction.js.map +0 -0
  299. package/src/extraction/contradiction.ts +0 -0
  300. package/src/extraction/cross-linker.d.ts +0 -0
  301. package/src/extraction/cross-linker.d.ts.map +0 -0
  302. package/src/extraction/cross-linker.js +0 -0
  303. package/src/extraction/cross-linker.js.map +0 -0
  304. package/src/extraction/cross-linker.ts +0 -0
  305. package/src/extraction/dedup.d.ts +0 -0
  306. package/src/extraction/dedup.d.ts.map +0 -0
  307. package/src/extraction/dedup.js +0 -0
  308. package/src/extraction/dedup.js.map +0 -0
  309. package/src/extraction/dedup.ts +0 -0
  310. package/src/extraction/entity-extractor.d.ts +0 -0
  311. package/src/extraction/entity-extractor.d.ts.map +0 -0
  312. package/src/extraction/entity-extractor.js +0 -0
  313. package/src/extraction/entity-extractor.js.map +0 -0
  314. package/src/extraction/entity-extractor.ts +0 -0
  315. package/src/extraction/hasher.d.ts +0 -0
  316. package/src/extraction/hasher.d.ts.map +0 -0
  317. package/src/extraction/hasher.js +0 -0
  318. package/src/extraction/hasher.js.map +0 -0
  319. package/src/extraction/hasher.ts +0 -0
  320. package/src/extraction/heuristic.d.ts +0 -0
  321. package/src/extraction/heuristic.d.ts.map +0 -0
  322. package/src/extraction/heuristic.js +0 -0
  323. package/src/extraction/heuristic.js.map +0 -0
  324. package/src/extraction/heuristic.ts +0 -0
  325. package/src/extraction/index.ts +2 -0
  326. package/src/extraction/llm-extractor.d.ts +0 -0
  327. package/src/extraction/llm-extractor.d.ts.map +0 -0
  328. package/src/extraction/llm-extractor.js +0 -0
  329. package/src/extraction/llm-extractor.js.map +0 -0
  330. package/src/extraction/llm-extractor.ts +5 -1
  331. package/src/extraction/pipeline.d.ts +0 -0
  332. package/src/extraction/pipeline.d.ts.map +0 -0
  333. package/src/extraction/pipeline.js +0 -0
  334. package/src/extraction/pipeline.js.map +0 -0
  335. package/src/extraction/pipeline.ts +103 -59
  336. package/src/extraction/prompts.d.ts +0 -0
  337. package/src/extraction/prompts.d.ts.map +0 -0
  338. package/src/extraction/prompts.js +0 -0
  339. package/src/extraction/prompts.js.map +0 -0
  340. package/src/extraction/prompts.ts +1 -0
  341. package/src/extraction/sliding-window.d.ts +0 -0
  342. package/src/extraction/sliding-window.d.ts.map +0 -0
  343. package/src/extraction/sliding-window.js +0 -0
  344. package/src/extraction/sliding-window.js.map +0 -0
  345. package/src/extraction/sliding-window.ts +0 -0
  346. package/src/extraction/types.d.ts +0 -0
  347. package/src/extraction/types.d.ts.map +0 -0
  348. package/src/extraction/types.js +0 -0
  349. package/src/extraction/types.js.map +0 -0
  350. package/src/extraction/types.ts +1 -1
  351. package/src/feedback/index.ts +0 -0
  352. package/src/feedback/tracker.d.ts +0 -0
  353. package/src/feedback/tracker.d.ts.map +0 -0
  354. package/src/feedback/tracker.js +0 -0
  355. package/src/feedback/tracker.js.map +0 -0
  356. package/src/feedback/tracker.ts +0 -0
  357. package/src/index.ts +0 -0
  358. package/src/models/api-key.d.ts +0 -0
  359. package/src/models/api-key.d.ts.map +0 -0
  360. package/src/models/api-key.js +0 -0
  361. package/src/models/api-key.js.map +0 -0
  362. package/src/models/api-key.ts +0 -0
  363. package/src/models/edge.d.ts +0 -0
  364. package/src/models/edge.d.ts.map +0 -0
  365. package/src/models/edge.js +0 -0
  366. package/src/models/edge.js.map +0 -0
  367. package/src/models/edge.ts +0 -0
  368. package/src/models/entity.d.ts +0 -0
  369. package/src/models/entity.d.ts.map +0 -0
  370. package/src/models/entity.js +0 -0
  371. package/src/models/entity.js.map +0 -0
  372. package/src/models/entity.ts +0 -0
  373. package/src/models/extraction.d.ts +0 -0
  374. package/src/models/extraction.d.ts.map +0 -0
  375. package/src/models/extraction.js +0 -0
  376. package/src/models/extraction.js.map +0 -0
  377. package/src/models/extraction.ts +0 -0
  378. package/src/models/fact-entity.d.ts +0 -0
  379. package/src/models/fact-entity.d.ts.map +0 -0
  380. package/src/models/fact-entity.js +0 -0
  381. package/src/models/fact-entity.js.map +0 -0
  382. package/src/models/fact-entity.ts +0 -0
  383. package/src/models/fact.d.ts +0 -0
  384. package/src/models/fact.d.ts.map +0 -0
  385. package/src/models/fact.js +0 -0
  386. package/src/models/fact.js.map +0 -0
  387. package/src/models/fact.ts +0 -0
  388. package/src/models/index.d.ts +0 -0
  389. package/src/models/index.d.ts.map +0 -0
  390. package/src/models/index.js +0 -0
  391. package/src/models/index.js.map +0 -0
  392. package/src/models/index.ts +0 -0
  393. package/src/models/memory-access.d.ts +0 -0
  394. package/src/models/memory-access.d.ts.map +0 -0
  395. package/src/models/memory-access.js +0 -0
  396. package/src/models/memory-access.js.map +0 -0
  397. package/src/models/memory-access.ts +0 -0
  398. package/src/models/session-message.ts +0 -0
  399. package/src/models/session.d.ts +0 -0
  400. package/src/models/session.d.ts.map +0 -0
  401. package/src/models/session.js +0 -0
  402. package/src/models/session.js.map +0 -0
  403. package/src/models/session.ts +0 -0
  404. package/src/models/tenant.d.ts +0 -0
  405. package/src/models/tenant.d.ts.map +0 -0
  406. package/src/models/tenant.js +0 -0
  407. package/src/models/tenant.js.map +0 -0
  408. package/src/models/tenant.ts +0 -0
  409. package/src/models/trigger.d.ts +0 -0
  410. package/src/models/trigger.d.ts.map +0 -0
  411. package/src/models/trigger.js +0 -0
  412. package/src/models/trigger.js.map +0 -0
  413. package/src/models/trigger.ts +0 -0
  414. package/src/models/usage-record.d.ts +0 -0
  415. package/src/models/usage-record.d.ts.map +0 -0
  416. package/src/models/usage-record.js +0 -0
  417. package/src/models/usage-record.js.map +0 -0
  418. package/src/models/usage-record.ts +0 -0
  419. package/src/models/webhook.d.ts +0 -0
  420. package/src/models/webhook.d.ts.map +0 -0
  421. package/src/models/webhook.js +0 -0
  422. package/src/models/webhook.js.map +0 -0
  423. package/src/models/webhook.ts +0 -0
  424. package/src/profiles/index.ts +0 -0
  425. package/src/profiles/profile.ts +0 -0
  426. package/src/retrieval/compound-search.d.ts +0 -0
  427. package/src/retrieval/compound-search.d.ts.map +0 -0
  428. package/src/retrieval/compound-search.js +0 -0
  429. package/src/retrieval/compound-search.js.map +0 -0
  430. package/src/retrieval/compound-search.ts +0 -0
  431. package/src/retrieval/contradiction-surfacer.d.ts +0 -0
  432. package/src/retrieval/contradiction-surfacer.d.ts.map +0 -0
  433. package/src/retrieval/contradiction-surfacer.js +0 -0
  434. package/src/retrieval/contradiction-surfacer.js.map +0 -0
  435. package/src/retrieval/contradiction-surfacer.ts +0 -0
  436. package/src/retrieval/embedding-cache.d.ts +0 -0
  437. package/src/retrieval/embedding-cache.d.ts.map +0 -0
  438. package/src/retrieval/embedding-cache.js +0 -0
  439. package/src/retrieval/embedding-cache.js.map +0 -0
  440. package/src/retrieval/embedding-cache.ts +0 -0
  441. package/src/retrieval/fusion.d.ts +0 -0
  442. package/src/retrieval/fusion.d.ts.map +0 -0
  443. package/src/retrieval/fusion.js +0 -0
  444. package/src/retrieval/fusion.js.map +0 -0
  445. package/src/retrieval/fusion.ts +0 -0
  446. package/src/retrieval/graph-traversal.d.ts +0 -0
  447. package/src/retrieval/graph-traversal.d.ts.map +0 -0
  448. package/src/retrieval/graph-traversal.js +0 -0
  449. package/src/retrieval/graph-traversal.js.map +0 -0
  450. package/src/retrieval/graph-traversal.ts +0 -0
  451. package/src/retrieval/index.ts +0 -0
  452. package/src/retrieval/keyword-search.ts +0 -0
  453. package/src/retrieval/query-expansion.d.ts +0 -0
  454. package/src/retrieval/query-expansion.d.ts.map +0 -0
  455. package/src/retrieval/query-expansion.js +0 -0
  456. package/src/retrieval/query-expansion.js.map +0 -0
  457. package/src/retrieval/query-expansion.ts +0 -0
  458. package/src/retrieval/reranker.d.ts +0 -0
  459. package/src/retrieval/reranker.d.ts.map +0 -0
  460. package/src/retrieval/reranker.js +0 -0
  461. package/src/retrieval/reranker.js.map +0 -0
  462. package/src/retrieval/reranker.ts +0 -0
  463. package/src/retrieval/salience-scorer.d.ts +0 -0
  464. package/src/retrieval/salience-scorer.d.ts.map +0 -0
  465. package/src/retrieval/salience-scorer.js +0 -0
  466. package/src/retrieval/salience-scorer.js.map +0 -0
  467. package/src/retrieval/salience-scorer.ts +0 -0
  468. package/src/retrieval/search.d.ts +0 -0
  469. package/src/retrieval/search.d.ts.map +0 -0
  470. package/src/retrieval/search.js +0 -0
  471. package/src/retrieval/search.js.map +0 -0
  472. package/src/retrieval/search.ts +84 -67
  473. package/src/retrieval/temporal-scorer.d.ts +0 -0
  474. package/src/retrieval/temporal-scorer.d.ts.map +0 -0
  475. package/src/retrieval/temporal-scorer.js +0 -0
  476. package/src/retrieval/temporal-scorer.js.map +0 -0
  477. package/src/retrieval/temporal-scorer.ts +0 -0
  478. package/src/retrieval/trigger-matcher.d.ts +0 -0
  479. package/src/retrieval/trigger-matcher.d.ts.map +0 -0
  480. package/src/retrieval/trigger-matcher.js +0 -0
  481. package/src/retrieval/trigger-matcher.js.map +0 -0
  482. package/src/retrieval/trigger-matcher.ts +0 -0
  483. package/src/retrieval/types.d.ts +0 -0
  484. package/src/retrieval/types.d.ts.map +0 -0
  485. package/src/retrieval/types.js +0 -0
  486. package/src/retrieval/types.js.map +0 -0
  487. package/src/retrieval/types.ts +12 -0
  488. package/src/retrieval/vector-search.d.ts +0 -0
  489. package/src/retrieval/vector-search.d.ts.map +0 -0
  490. package/src/retrieval/vector-search.js +0 -0
  491. package/src/retrieval/vector-search.js.map +0 -0
  492. package/src/retrieval/vector-search.ts +0 -0
  493. package/src/salience/decay.d.ts +0 -0
  494. package/src/salience/decay.d.ts.map +0 -0
  495. package/src/salience/decay.js +0 -0
  496. package/src/salience/decay.js.map +0 -0
  497. package/src/salience/decay.ts +0 -0
  498. package/src/salience/index.ts +0 -0
  499. package/src/scratchpad/index.ts +0 -0
  500. package/src/scratchpad/scratchpad.d.ts +0 -0
  501. package/src/scratchpad/scratchpad.d.ts.map +0 -0
  502. package/src/scratchpad/scratchpad.js +0 -0
  503. package/src/scratchpad/scratchpad.js.map +0 -0
  504. package/src/scratchpad/scratchpad.ts +0 -0
  505. package/src/sessions/index.ts +0 -0
  506. package/src/sessions/manager.d.ts +0 -0
  507. package/src/sessions/manager.d.ts.map +0 -0
  508. package/src/sessions/manager.js +0 -0
  509. package/src/sessions/manager.js.map +0 -0
  510. package/src/sessions/manager.ts +0 -0
@@ -3,7 +3,7 @@ import type { EmbeddingAdapter } from '../adapters/embedding.js';
3
3
  import type { CacheAdapter } from '../adapters/cache.js';
4
4
  import type { LLMAdapter } from '../adapters/llm.js';
5
5
  import type { SearchOptions, SearchResponse, FusionWeights, Candidate } from './types.js';
6
- import { DEFAULT_FUSION_WEIGHTS } from './types.js';
6
+ import { DEFAULT_FUSION_WEIGHTS, CODEBASE_FUSION_WEIGHTS } from './types.js';
7
7
  import { compoundSearchSignal } from './compound-search.js';
8
8
  import { graphSearch } from './graph-traversal.js';
9
9
  import { matchTriggers } from './trigger-matcher.js';
@@ -37,7 +37,10 @@ export async function search(
37
37
  ): Promise<SearchResponse> {
38
38
  const startTime = Date.now();
39
39
  const limit = Math.min(options.limit ?? 10, 100);
40
- const weights = options.weights ?? config.defaultWeights ?? DEFAULT_FUSION_WEIGHTS;
40
+ // Use codebase-optimized weights when the scope is 'codebase' (unless explicitly overridden)
41
+ const isCodebaseScope = options.scope === 'codebase';
42
+ const defaultWeightsForScope = isCodebaseScope ? CODEBASE_FUSION_WEIGHTS : DEFAULT_FUSION_WEIGHTS;
43
+ const weights = options.weights ?? config.defaultWeights ?? defaultWeightsForScope;
41
44
  const fetchMultiplier = 3; // fetch 3x limit from each signal for better fusion
42
45
 
43
46
  // Wrap embedding with cache if available
@@ -45,97 +48,111 @@ export async function search(
45
48
  ? new CachedEmbeddingAdapter(config.embedding, config.cache)
46
49
  : config.embedding;
47
50
 
48
- // 1. Run all signals in PARALLEL ONE compound search (not multiple)
49
- // Multi-query expansion adds latency (embedding calls). Instead:
50
- // - Single compound search with original query (vector + keyword in 1 DB call)
51
- // - Graph search with original query
52
- // - Trigger matching
53
- // All parallel = single round trip time.
51
+ // Fast mode: vector + keyword only, no graph, no triggers, no reranking
52
+ // Target: <300ms (embedding API ~150ms + DB ~100ms)
53
+ const isFast = options.fast === true;
54
+
55
+ // 1. Run retrieval signals
54
56
  const t0 = Date.now();
55
57
 
56
58
  const tCompound = Date.now();
57
59
  const compoundPromise = compoundSearchSignal(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId, limit * fetchMultiplier).catch(() => ({ vectorCandidates: [] as Candidate[], keywordCandidates: [] as Candidate[] }));
58
- const tGraph = Date.now();
59
- const graphPromise = graphSearch(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId, limit * fetchMultiplier, { maxDepth: config.graphMaxDepth, maxEntities: config.graphMaxEntities, asOf: options.temporalFilter?.asOf }).catch(() => [] as Candidate[]);
60
- const tTrigger = Date.now();
61
- const triggerPromise = matchTriggers(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId).catch(() => ({ candidates: [] as Candidate[], triggersMatched: [] as string[] }));
62
-
63
- const [compoundResult, graphSettled, triggerSettled] = await Promise.all([
64
- compoundPromise.then(r => { console.error(`[steno-search] compound: ${Date.now() - tCompound}ms (vec=${r.vectorCandidates.length}, kw=${r.keywordCandidates.length})`); return r; }),
65
- graphPromise.then(r => { console.error(`[steno-search] graph: ${Date.now() - tGraph}ms (${Array.isArray(r) ? r.length : 0} candidates)`); return r; }),
66
- triggerPromise.then(r => { console.error(`[steno-search] trigger: ${Date.now() - tTrigger}ms`); return r; }),
67
- ]);
68
- console.error(`[steno-search] Signals total: ${Date.now() - t0}ms`);
60
+
61
+ let graphPromise: Promise<Candidate[]> | null = null;
62
+ let triggerPromise: Promise<{ candidates: Candidate[]; triggersMatched: string[] }> | null = null;
63
+
64
+ if (!isFast) {
65
+ const tGraph = Date.now();
66
+ graphPromise = graphSearch(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId, limit * fetchMultiplier, { maxDepth: config.graphMaxDepth, maxEntities: config.graphMaxEntities, asOf: options.temporalFilter?.asOf })
67
+ .then(r => { console.error(`[steno-search] graph: ${Date.now() - tGraph}ms (${Array.isArray(r) ? r.length : 0} candidates)`); return r; })
68
+ .catch(() => [] as Candidate[]);
69
+ const tTrigger = Date.now();
70
+ triggerPromise = matchTriggers(config.storage, effectiveEmbedding, options.query, options.tenantId, options.scope, options.scopeId)
71
+ .then(r => { console.error(`[steno-search] trigger: ${Date.now() - tTrigger}ms`); return r; })
72
+ .catch(() => ({ candidates: [] as Candidate[], triggersMatched: [] as string[] }));
73
+ }
74
+
75
+ const compoundResult = await compoundPromise.then(r => { console.error(`[steno-search] compound: ${Date.now() - tCompound}ms (vec=${r.vectorCandidates.length}, kw=${r.keywordCandidates.length})`); return r; });
69
76
 
70
77
  const vectorCandidates = compoundResult.vectorCandidates;
71
78
  const keywordCandidates = compoundResult.keywordCandidates;
72
- const graphCandidates = Array.isArray(graphSettled) ? graphSettled : [];
73
- const triggerResult = triggerSettled;
74
- const triggersMatched = triggerResult.triggersMatched;
75
79
 
76
- // 2. Triple-tier pre-fusion reranking — rerank each stream INDEPENDENTLY
77
- // Only rerank when there are enough candidates to justify the embedding cost
78
- // before fusion, like Hydra DB's triple-tier architecture.
80
+ let graphCandidates: Candidate[] = [];
81
+ let triggersMatched: string[] = [];
82
+ let triggerCandidates: Candidate[] = [];
83
+
84
+ if (!isFast && graphPromise && triggerPromise) {
85
+ const [graphSettled, triggerSettled] = await Promise.all([graphPromise, triggerPromise]);
86
+ graphCandidates = Array.isArray(graphSettled) ? graphSettled : [];
87
+ triggersMatched = triggerSettled.triggersMatched;
88
+ triggerCandidates = triggerSettled.candidates;
89
+ }
90
+
91
+ console.error(`[steno-search] Signals total: ${Date.now() - t0}ms${isFast ? ' (fast mode)' : ''}`);
92
+
93
+ // 2. Pre-fusion reranking — skip entirely in fast mode
79
94
  const t1 = Date.now();
80
95
 
81
- // Batch-embed query + all unique candidate contents in ONE call
82
- const allPreRerankCandidates = [...vectorCandidates, ...graphCandidates];
83
- let queryEmbedding: number[] | null = null;
84
- const candidateEmbeddings = new Map<string, number[]>();
85
-
86
- // Only rerank if we have >10 candidates — for small sets the original order is fine
87
- if (allPreRerankCandidates.length > 10) {
88
- try {
89
- const uniqueTexts = new Map<string, string>();
90
- for (const c of allPreRerankCandidates) {
91
- if (!uniqueTexts.has(c.fact.id)) uniqueTexts.set(c.fact.id, c.fact.content);
92
- }
93
- const textsToEmbed = [options.query, ...uniqueTexts.values()];
94
- const embeddings = await effectiveEmbedding.embedBatch(textsToEmbed);
95
- queryEmbedding = embeddings[0]!;
96
- let idx = 1;
97
- for (const [factId] of uniqueTexts) {
98
- candidateEmbeddings.set(factId, embeddings[idx++]!);
96
+ if (!isFast) {
97
+ // Batch-embed query + all unique candidate contents in ONE call
98
+ const allPreRerankCandidates = [...vectorCandidates, ...graphCandidates];
99
+ let queryEmbedding: number[] | null = null;
100
+ const candidateEmbeddings = new Map<string, number[]>();
101
+
102
+ // Only rerank if we have >10 candidates — for small sets the original order is fine
103
+ if (allPreRerankCandidates.length > 10) {
104
+ try {
105
+ const uniqueTexts = new Map<string, string>();
106
+ for (const c of allPreRerankCandidates) {
107
+ if (!uniqueTexts.has(c.fact.id)) uniqueTexts.set(c.fact.id, c.fact.content);
108
+ }
109
+ const textsToEmbed = [options.query, ...uniqueTexts.values()];
110
+ const embeddings = await effectiveEmbedding.embedBatch(textsToEmbed);
111
+ queryEmbedding = embeddings[0]!;
112
+ let idx = 1;
113
+ for (const [factId] of uniqueTexts) {
114
+ candidateEmbeddings.set(factId, embeddings[idx++]!);
115
+ }
116
+ } catch {
117
+ // Reranking fails silently — proceed without it
99
118
  }
100
- } catch {
101
- // Reranking fails silently — proceed without it
102
119
  }
103
- }
104
120
 
105
- // Rerank vector candidates
106
- if (queryEmbedding && vectorCandidates.length > 1) {
107
- const RERANK_W = 0.4;
108
- for (const c of vectorCandidates) {
109
- const factEmb = candidateEmbeddings.get(c.fact.id);
110
- if (factEmb) {
111
- const sim = cosineSim(queryEmbedding, factEmb);
112
- c.vectorScore = c.vectorScore * (1 - RERANK_W) + sim * RERANK_W;
121
+ // Rerank vector candidates
122
+ if (queryEmbedding && vectorCandidates.length > 1) {
123
+ const RERANK_W = 0.4;
124
+ for (const c of vectorCandidates) {
125
+ const factEmb = candidateEmbeddings.get(c.fact.id);
126
+ if (factEmb) {
127
+ const sim = cosineSim(queryEmbedding, factEmb);
128
+ c.vectorScore = c.vectorScore * (1 - RERANK_W) + sim * RERANK_W;
129
+ }
113
130
  }
131
+ vectorCandidates.sort((a, b) => b.vectorScore - a.vectorScore);
114
132
  }
115
- vectorCandidates.sort((a, b) => b.vectorScore - a.vectorScore);
116
- }
117
133
 
118
- // Rerank graph candidates
119
- if (queryEmbedding && graphCandidates.length > 1) {
120
- const RERANK_W = 0.4;
121
- for (const c of graphCandidates) {
122
- const factEmb = candidateEmbeddings.get(c.fact.id);
123
- if (factEmb) {
124
- const sim = cosineSim(queryEmbedding, factEmb);
125
- c.graphScore = c.graphScore * (1 - RERANK_W) + sim * RERANK_W;
134
+ // Rerank graph candidates
135
+ if (queryEmbedding && graphCandidates.length > 1) {
136
+ const RERANK_W = 0.4;
137
+ for (const c of graphCandidates) {
138
+ const factEmb = candidateEmbeddings.get(c.fact.id);
139
+ if (factEmb) {
140
+ const sim = cosineSim(queryEmbedding, factEmb);
141
+ c.graphScore = c.graphScore * (1 - RERANK_W) + sim * RERANK_W;
142
+ }
126
143
  }
144
+ graphCandidates.sort((a, b) => b.graphScore - a.graphScore);
127
145
  }
128
- graphCandidates.sort((a, b) => b.graphScore - a.graphScore);
129
146
  }
130
147
  // Keyword candidates skip reranking — FTS scores shouldn't be overridden by embeddings
131
- console.error(`[steno-search] Pre-fusion rerank: ${Date.now() - t1}ms`);
148
+ console.error(`[steno-search] Pre-fusion rerank: ${Date.now() - t1}ms${isFast ? ' (skipped)' : ''}`);
132
149
 
133
150
  // 3. Merge all pre-reranked streams
134
151
  const allCandidates: Candidate[] = [
135
152
  ...vectorCandidates,
136
153
  ...keywordCandidates,
137
154
  ...graphCandidates,
138
- ...triggerResult.candidates,
155
+ ...triggerCandidates,
139
156
  ];
140
157
 
141
158
  if (allCandidates.length === 0) {
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -14,6 +14,7 @@ export interface SearchOptions {
14
14
  };
15
15
  weights?: FusionWeights; // override default fusion weights
16
16
  tokenBudget?: number; // max estimated tokens for results (rough: chars/4). Trims lowest-scored results to fit.
17
+ fast?: boolean; // skip graph traversal + reranking for <300ms latency
17
18
  }
18
19
 
19
20
  /** Configurable fusion weights (should sum to 1.0 — normalized if not) */
@@ -80,3 +81,14 @@ export const DEFAULT_FUSION_WEIGHTS: FusionWeights = {
80
81
  salience: 0.10,
81
82
  temporal: 0.20,
82
83
  };
84
+
85
+ /** Fusion weights optimized for codebase queries — heavier on graph + keyword,
86
+ * no temporal bias (code architecture is not time-sensitive) */
87
+ export const CODEBASE_FUSION_WEIGHTS: FusionWeights = {
88
+ vector: 0.30,
89
+ keyword: 0.25,
90
+ graph: 0.25,
91
+ recency: 0.10,
92
+ salience: 0.10,
93
+ temporal: 0.00,
94
+ };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes