@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
@@ -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,127 @@ 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
+ const codebaseResult = await extractCodebaseFacts(
111
+ { llm: llmToUse, tier: llmTier },
141
112
  textContent,
142
- existingFactsForLLM,
143
113
  );
144
114
 
145
- totalTokensInput += llmResult.tokensInput;
146
- totalTokensOutput += llmResult.tokensOutput;
115
+ totalTokensInput += codebaseResult.tokensInput;
116
+ totalTokensOutput += codebaseResult.tokensOutput;
147
117
  tiersUsed.push(llmTier);
148
118
 
149
119
  // 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 },
120
+ if (tier === 'auto' && codebaseResult.confidence < 0.6 && config.smartLLM) {
121
+ const smartResult = await extractCodebaseFacts(
122
+ { llm: config.smartLLM, tier: 'smart_llm' },
158
123
  textContent,
159
- existingFactsForLLM,
160
124
  );
161
125
  totalTokensInput += smartResult.tokensInput;
162
126
  totalTokensOutput += smartResult.tokensOutput;
163
127
  tiersUsed.push('smart_llm');
164
- finalLLMResult = smartResult;
128
+ mergedFacts = smartResult.facts;
129
+ mergedEntities = smartResult.entities;
130
+ mergedEdges = smartResult.edges;
131
+ } else {
132
+ mergedFacts = codebaseResult.facts;
133
+ mergedEntities = codebaseResult.entities;
134
+ mergedEdges = codebaseResult.edges;
165
135
  }
136
+ } else {
137
+ // ── CONVERSATION MODE: Original extraction logic ──
138
+
139
+ // Run heuristic extraction (always)
140
+ const heuristicResult = extractHeuristic(textContent);
141
+ tiersUsed.push('heuristic');
142
+
143
+ mergedFacts = heuristicResult.facts;
144
+ mergedEntities = heuristicResult.entities;
145
+ mergedEdges = heuristicResult.edges;
146
+
147
+ // Run LLM extraction (unless heuristic_only)
148
+ if (tier !== 'heuristic_only') {
149
+ const llmToUse = tier === 'smart_only' ? (config.smartLLM ?? config.cheapLLM) : config.cheapLLM;
150
+ const llmTier = tier === 'smart_only' ? 'smart_llm' : 'cheap_llm';
151
+
152
+ // Fetch existing facts for the LLM to compare against (enables contradiction detection)
153
+ let existingFactsForLLM = input.existingFacts?.map(f => ({
154
+ lineageId: f.lineageId,
155
+ content: f.content,
156
+ }));
157
+
158
+ if (!existingFactsForLLM || existingFactsForLLM.length === 0) {
159
+ try {
160
+ const queryEmbedding = await config.embedding.embed(textContent.slice(0, 1000));
161
+ const similar = await config.storage.vectorSearch({
162
+ embedding: queryEmbedding,
163
+ tenantId: input.tenantId,
164
+ scope: input.scope,
165
+ scopeId: input.scopeId,
166
+ limit: 20,
167
+ minSimilarity: 0.3,
168
+ validOnly: true,
169
+ });
170
+ if (similar.length > 0) {
171
+ existingFactsForLLM = similar.map(s => ({
172
+ lineageId: s.fact.lineageId ?? s.fact.id,
173
+ content: s.fact.content,
174
+ }));
175
+ }
176
+ } catch {
177
+ // Non-fatal — extraction continues without existing facts
178
+ }
179
+ }
180
+
181
+ const llmResult = await extractWithLLM(
182
+ { llm: llmToUse, tier: llmTier, entityTypes: config.entityTypes, domainEntityTypes: config.domainEntityTypes },
183
+ textContent,
184
+ existingFactsForLLM,
185
+ );
186
+
187
+ totalTokensInput += llmResult.tokensInput;
188
+ totalTokensOutput += llmResult.tokensOutput;
189
+ tiersUsed.push(llmTier);
190
+
191
+ // Escalate to smart LLM if confidence is low
192
+ let finalLLMResult = llmResult;
193
+ if (
194
+ tier === 'auto' &&
195
+ llmResult.confidence < 0.6 &&
196
+ config.smartLLM
197
+ ) {
198
+ const smartResult = await extractWithLLM(
199
+ { llm: config.smartLLM, tier: 'smart_llm', entityTypes: config.entityTypes, domainEntityTypes: config.domainEntityTypes },
200
+ textContent,
201
+ existingFactsForLLM,
202
+ );
203
+ totalTokensInput += smartResult.tokensInput;
204
+ totalTokensOutput += smartResult.tokensOutput;
205
+ tiersUsed.push('smart_llm');
206
+ finalLLMResult = smartResult;
207
+ }
166
208
 
167
- // Merge results: LLM takes priority
168
- mergedFacts = mergeFacts(heuristicResult.facts, finalLLMResult.facts);
209
+ // Merge results: LLM takes priority
210
+ mergedFacts = mergeFacts(heuristicResult.facts, finalLLMResult.facts);
169
211
 
170
- // Merge entities: dedup by canonicalName, LLM overwrites heuristic
171
- mergedEntities = mergeEntities(heuristicResult.entities, finalLLMResult.entities);
172
- mergedEdges = [...heuristicResult.edges, ...finalLLMResult.edges];
212
+ // Merge entities: dedup by canonicalName, LLM overwrites heuristic
213
+ mergedEntities = mergeEntities(heuristicResult.entities, finalLLMResult.entities);
214
+ mergedEdges = [...heuristicResult.edges, ...finalLLMResult.edges];
215
+ }
173
216
  }
174
217
 
175
218
  // Run deduplication against existing memories
@@ -203,7 +246,8 @@ async function executeExtraction(
203
246
 
204
247
  // Ensure "User" entity exists — LLM creates edges like "user → shops_at → target"
205
248
  // but never extracts "user" as an entity, so those edges get silently dropped.
206
- if (!mergedEntities.some(e => e.canonicalName === 'user')) {
249
+ // Skip in codebase mode — there is no "user" entity in code analysis.
250
+ if (!isCodebaseMode && !mergedEntities.some(e => e.canonicalName === 'user')) {
207
251
  mergedEntities.push({
208
252
  name: 'User',
209
253
  entityType: 'person',
File without changes
File without changes
File without changes
File without changes
@@ -22,6 +22,7 @@ For identity/trait facts, state them DIRECTLY:
22
22
  ## RULES
23
23
 
24
24
  1. Extract SELF-CONTAINED atomic facts. Each fact must be understandable on its own, without the original conversation.
25
+ HOWEVER: if multiple pieces of information describe the SAME event or feature, combine them into 1-2 dense facts rather than 5-6 thin ones. Prefer "User shipped X with features A, B, and C" over three separate facts about A, B, and C individually.
25
26
 
26
27
  2. **DATES ARE CRITICAL** — Resolve ALL temporal references to exact dates:
27
28
  - "yesterday" → "on 7 May 2023"
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