@steno-ai/engine 0.1.11 → 0.1.13

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 +186 -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 +88 -51
  85. package/dist/extraction/pipeline.js.map +1 -1
  86. package/dist/extraction/prompts.d.ts +0 -0
  87. package/dist/extraction/prompts.d.ts.map +0 -0
  88. package/dist/extraction/prompts.js +0 -0
  89. package/dist/extraction/prompts.js.map +0 -0
  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 +217 -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 +108 -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 +0 -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
@@ -11,6 +11,7 @@ import type {
11
11
  } from './types.js';
12
12
  import { extractHeuristic } from './heuristic.js';
13
13
  import { extractWithLLM, normalizeEntityName } from './llm-extractor.js';
14
+ import { extractCodebaseFacts } from './codebase-extractor.js';
14
15
  import { deduplicateFacts } from './dedup.js';
15
16
  import { processContradictions } from './contradiction.js';
16
17
  import { buildEntityIdMap, persistEdges } from './entity-extractor.js';
@@ -30,6 +31,8 @@ export interface PipelineConfig {
30
31
  decayNormalizationK?: number;
31
32
  entityTypes?: string[];
32
33
  domainEntityTypes?: DomainEntityType[];
34
+ /** Pipeline mode: 'conversation' (default) for chat/document memory, 'codebase' for code understanding */
35
+ mode?: 'conversation' | 'codebase';
33
36
  }
34
37
 
35
38
  // ---------------------------------------------------------------------------
@@ -89,87 +92,129 @@ async function executeExtraction(
89
92
  ): Promise<PipelineResult> {
90
93
  const tier = config.extractionTier ?? 'auto';
91
94
  const textContent = inputToText(input);
95
+ const isCodebaseMode = config.mode === 'codebase';
92
96
 
93
97
  let totalTokensInput = 0;
94
98
  let totalTokensOutput = 0;
95
99
  const tiersUsed: string[] = [];
96
100
 
97
- // Run heuristic extraction (always)
98
- const heuristicResult = extractHeuristic(textContent);
99
- tiersUsed.push('heuristic');
101
+ let mergedFacts: ExtractedFact[];
102
+ let mergedEntities: ExtractedEntity[];
103
+ let mergedEdges: ExtractedEdge[];
100
104
 
101
- let mergedFacts: ExtractedFact[] = heuristicResult.facts;
102
- let mergedEntities: ExtractedEntity[] = heuristicResult.entities;
103
- let mergedEdges: ExtractedEdge[] = heuristicResult.edges;
104
-
105
- // Run LLM extraction (unless heuristic_only)
106
- if (tier !== 'heuristic_only') {
105
+ if (isCodebaseMode) {
106
+ // ── CODEBASE MODE: Skip heuristic, use codebase-specific extraction ──
107
107
  const llmToUse = tier === 'smart_only' ? (config.smartLLM ?? config.cheapLLM) : config.cheapLLM;
108
108
  const llmTier = tier === 'smart_only' ? 'smart_llm' : 'cheap_llm';
109
109
 
110
- // Fetch existing facts for the LLM to compare against (enables contradiction detection)
111
- let existingFactsForLLM = input.existingFacts?.map(f => ({
112
- lineageId: f.lineageId,
113
- content: f.content,
114
- }));
115
-
116
- if (!existingFactsForLLM || existingFactsForLLM.length === 0) {
117
- try {
118
- const queryEmbedding = await config.embedding.embed(textContent.slice(0, 1000));
119
- const similar = await config.storage.vectorSearch({
120
- embedding: queryEmbedding,
121
- tenantId: input.tenantId,
122
- scope: input.scope,
123
- scopeId: input.scopeId,
124
- limit: 20,
125
- minSimilarity: 0.3,
126
- validOnly: true,
127
- });
128
- if (similar.length > 0) {
129
- existingFactsForLLM = similar.map(s => ({
130
- lineageId: s.fact.lineageId ?? s.fact.id,
131
- content: s.fact.content,
132
- }));
133
- }
134
- } catch {
135
- // Non-fatal — extraction continues without existing facts
136
- }
137
- }
138
-
139
- const llmResult = await extractWithLLM(
140
- { llm: llmToUse, tier: llmTier, entityTypes: config.entityTypes, domainEntityTypes: config.domainEntityTypes },
110
+ console.error(`[steno-pipeline] Codebase mode: extracting from ${textContent.length} chars with ${llmTier}`);
111
+ const codebaseResult = await extractCodebaseFacts(
112
+ { llm: llmToUse, tier: llmTier },
141
113
  textContent,
142
- existingFactsForLLM,
143
114
  );
144
115
 
145
- totalTokensInput += llmResult.tokensInput;
146
- totalTokensOutput += llmResult.tokensOutput;
116
+ console.error(`[steno-pipeline] Codebase extraction: ${codebaseResult.facts.length} facts, ${codebaseResult.entities.length} entities, ${codebaseResult.edges.length} edges, confidence=${codebaseResult.confidence}`);
117
+ totalTokensInput += codebaseResult.tokensInput;
118
+ totalTokensOutput += codebaseResult.tokensOutput;
147
119
  tiersUsed.push(llmTier);
148
120
 
149
121
  // Escalate to smart LLM if confidence is low
150
- let finalLLMResult = llmResult;
151
- if (
152
- tier === 'auto' &&
153
- llmResult.confidence < 0.6 &&
154
- config.smartLLM
155
- ) {
156
- const smartResult = await extractWithLLM(
157
- { llm: config.smartLLM, tier: 'smart_llm', entityTypes: config.entityTypes, domainEntityTypes: config.domainEntityTypes },
122
+ if (tier === 'auto' && codebaseResult.confidence < 0.6 && config.smartLLM) {
123
+ const smartResult = await extractCodebaseFacts(
124
+ { llm: config.smartLLM, tier: 'smart_llm' },
158
125
  textContent,
159
- existingFactsForLLM,
160
126
  );
161
127
  totalTokensInput += smartResult.tokensInput;
162
128
  totalTokensOutput += smartResult.tokensOutput;
163
129
  tiersUsed.push('smart_llm');
164
- finalLLMResult = smartResult;
130
+ mergedFacts = smartResult.facts;
131
+ mergedEntities = smartResult.entities;
132
+ mergedEdges = smartResult.edges;
133
+ } else {
134
+ mergedFacts = codebaseResult.facts;
135
+ mergedEntities = codebaseResult.entities;
136
+ mergedEdges = codebaseResult.edges;
165
137
  }
138
+ } else {
139
+ // ── CONVERSATION MODE: Original extraction logic ──
140
+
141
+ // Run heuristic extraction (always)
142
+ const heuristicResult = extractHeuristic(textContent);
143
+ tiersUsed.push('heuristic');
144
+
145
+ mergedFacts = heuristicResult.facts;
146
+ mergedEntities = heuristicResult.entities;
147
+ mergedEdges = heuristicResult.edges;
148
+
149
+ // Run LLM extraction (unless heuristic_only)
150
+ if (tier !== 'heuristic_only') {
151
+ const llmToUse = tier === 'smart_only' ? (config.smartLLM ?? config.cheapLLM) : config.cheapLLM;
152
+ const llmTier = tier === 'smart_only' ? 'smart_llm' : 'cheap_llm';
153
+
154
+ // Fetch existing facts for the LLM to compare against (enables contradiction detection)
155
+ let existingFactsForLLM = input.existingFacts?.map(f => ({
156
+ lineageId: f.lineageId,
157
+ content: f.content,
158
+ }));
159
+
160
+ if (!existingFactsForLLM || existingFactsForLLM.length === 0) {
161
+ try {
162
+ const queryEmbedding = await config.embedding.embed(textContent.slice(0, 1000));
163
+ const similar = await config.storage.vectorSearch({
164
+ embedding: queryEmbedding,
165
+ tenantId: input.tenantId,
166
+ scope: input.scope,
167
+ scopeId: input.scopeId,
168
+ limit: 20,
169
+ minSimilarity: 0.3,
170
+ validOnly: true,
171
+ });
172
+ if (similar.length > 0) {
173
+ existingFactsForLLM = similar.map(s => ({
174
+ lineageId: s.fact.lineageId ?? s.fact.id,
175
+ content: s.fact.content,
176
+ }));
177
+ }
178
+ } catch {
179
+ // Non-fatal — extraction continues without existing facts
180
+ }
181
+ }
166
182
 
167
- // Merge results: LLM takes priority
168
- mergedFacts = mergeFacts(heuristicResult.facts, finalLLMResult.facts);
183
+ const llmResult = await extractWithLLM(
184
+ { llm: llmToUse, tier: llmTier, entityTypes: config.entityTypes, domainEntityTypes: config.domainEntityTypes },
185
+ textContent,
186
+ existingFactsForLLM,
187
+ );
169
188
 
170
- // Merge entities: dedup by canonicalName, LLM overwrites heuristic
171
- mergedEntities = mergeEntities(heuristicResult.entities, finalLLMResult.entities);
172
- mergedEdges = [...heuristicResult.edges, ...finalLLMResult.edges];
189
+ totalTokensInput += llmResult.tokensInput;
190
+ totalTokensOutput += llmResult.tokensOutput;
191
+ tiersUsed.push(llmTier);
192
+
193
+ // Escalate to smart LLM if confidence is low
194
+ let finalLLMResult = llmResult;
195
+ if (
196
+ tier === 'auto' &&
197
+ llmResult.confidence < 0.6 &&
198
+ config.smartLLM
199
+ ) {
200
+ const smartResult = await extractWithLLM(
201
+ { llm: config.smartLLM, tier: 'smart_llm', entityTypes: config.entityTypes, domainEntityTypes: config.domainEntityTypes },
202
+ textContent,
203
+ existingFactsForLLM,
204
+ );
205
+ totalTokensInput += smartResult.tokensInput;
206
+ totalTokensOutput += smartResult.tokensOutput;
207
+ tiersUsed.push('smart_llm');
208
+ finalLLMResult = smartResult;
209
+ }
210
+
211
+ // Merge results: LLM takes priority
212
+ mergedFacts = mergeFacts(heuristicResult.facts, finalLLMResult.facts);
213
+
214
+ // Merge entities: dedup by canonicalName, LLM overwrites heuristic
215
+ mergedEntities = mergeEntities(heuristicResult.entities, finalLLMResult.entities);
216
+ mergedEdges = [...heuristicResult.edges, ...finalLLMResult.edges];
217
+ }
173
218
  }
174
219
 
175
220
  // Run deduplication against existing memories
@@ -185,8 +230,11 @@ async function executeExtraction(
185
230
  input.scopeId,
186
231
  );
187
232
 
233
+ console.error(`[steno-pipeline] After dedup: ${dedupedFacts.length} facts (from ${mergedFacts.length} pre-dedup)`);
234
+
188
235
  // Process contradictions
189
236
  const contradictionResults = processContradictions(dedupedFacts);
237
+ console.error(`[steno-pipeline] After contradiction processing: ${contradictionResults.length} results`);
190
238
 
191
239
  // Persist facts
192
240
  let factsCreated = 0;
@@ -203,7 +251,8 @@ async function executeExtraction(
203
251
 
204
252
  // Ensure "User" entity exists — LLM creates edges like "user → shops_at → target"
205
253
  // but never extracts "user" as an entity, so those edges get silently dropped.
206
- if (!mergedEntities.some(e => e.canonicalName === 'user')) {
254
+ // Skip in codebase mode — there is no "user" entity in code analysis.
255
+ if (!isCodebaseMode && !mergedEntities.some(e => e.canonicalName === 'user')) {
207
256
  mergedEntities.push({
208
257
  name: 'User',
209
258
  entityType: 'person',
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
@@ -60,7 +60,7 @@ export interface ExtractionInput {
60
60
  scope: Scope;
61
61
  scopeId: string;
62
62
  sessionId?: string;
63
- inputType: 'conversation' | 'document' | 'url' | 'raw_text' | 'image' | 'audio' | 'code';
63
+ inputType: 'conversation' | 'document' | 'url' | 'raw_text' | 'image' | 'audio' | 'code' | 'codebase_scan' | 'file_change' | 'architecture_doc';
64
64
  data: unknown;
65
65
  existingFacts?: Array<{ id: string; lineageId: string; content: string; embedding?: number[] }>;
66
66
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/src/index.ts CHANGED
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
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
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
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
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