@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
@@ -0,0 +1,217 @@
1
+ import type { LLMAdapter } from '../adapters/llm.js';
2
+ import type { ExtractionResult, ExtractedFact, ExtractedEntity, ExtractedEdge } from './types.js';
3
+ import type { ExtractionTier, EdgeType, SourceType } from '../config.js';
4
+ import { buildCodebaseFactExtractionPrompt, buildCodebaseGraphExtractionPrompt, CODEBASE_ENTITY_TYPES } from './codebase-prompts.js';
5
+ import { normalizeEntityName } from './llm-extractor.js';
6
+
7
+ export interface CodebaseExtractorConfig {
8
+ llm: LLMAdapter;
9
+ tier: ExtractionTier;
10
+ }
11
+
12
+ const VALID_CODEBASE_SOURCE_TYPES = new Set<string>([
13
+ 'file_analysis', 'ast_parse', 'git_history', 'dependency_scan',
14
+ ]);
15
+
16
+ const VALID_CODEBASE_EDGE_TYPES = new Set<string>([
17
+ 'imports', 'implements', 'owns', 'configures', 'tested_by',
18
+ 'depends_on', 'extends', 'associative', 'hierarchical',
19
+ ]);
20
+
21
+ /**
22
+ * Extract architectural facts from code content.
23
+ * Similar to extractWithLLM but uses codebase-specific prompts
24
+ * and skips conversation-oriented logic.
25
+ */
26
+ export async function extractCodebaseFacts(
27
+ config: CodebaseExtractorConfig,
28
+ input: string,
29
+ ): Promise<ExtractionResult> {
30
+ let totalTokensIn = 0;
31
+ let totalTokensOut = 0;
32
+
33
+ // ── PASS 1: Codebase fact extraction — ONE LLM call (no sliding window) ──
34
+ // Code doesn't need pronoun resolution. Send the full input as one chunk
35
+ // to minimize LLM calls (1 call vs 6+ with sliding window).
36
+ // Cap at 30K chars (~7.5K tokens) to fit gpt-4.1-mini's context.
37
+ const cappedInput = input.slice(0, 30_000);
38
+
39
+ let factEntries: Array<{
40
+ text: string;
41
+ importance: number;
42
+ sourceChunk: string;
43
+ sourceType: SourceType;
44
+ }> = [];
45
+
46
+ try {
47
+ const messages = buildCodebaseFactExtractionPrompt(cappedInput);
48
+ const response = await config.llm.complete(messages, { temperature: 0, responseFormat: 'json' });
49
+ totalTokensIn += response.tokensInput;
50
+ totalTokensOut += response.tokensOutput;
51
+
52
+ const parsed = JSON.parse(response.content) as Record<string, unknown>;
53
+ const rawFacts = Array.isArray(parsed.facts) ? parsed.facts : [];
54
+
55
+ for (const f of rawFacts) {
56
+ if (typeof f === 'string') {
57
+ const trimmed = f.trim();
58
+ if (trimmed.length > 0) {
59
+ factEntries.push({ text: trimmed, importance: 0.5, sourceChunk: cappedInput.slice(0, 500), sourceType: 'file_analysis' });
60
+ }
61
+ } else if (f && typeof f === 'object') {
62
+ const obj = f as Record<string, unknown>;
63
+ const text = (typeof obj.t === 'string' ? obj.t : typeof obj.text === 'string' ? obj.text : '').trim();
64
+ const importance = typeof obj.i === 'number' ? obj.i : typeof obj.importance === 'number' ? obj.importance : 0.5;
65
+ const rawSrc = typeof obj.src === 'string' ? obj.src : 'file_analysis';
66
+ const sourceType: SourceType = VALID_CODEBASE_SOURCE_TYPES.has(rawSrc)
67
+ ? rawSrc as SourceType
68
+ : 'file_analysis';
69
+
70
+ if (text.length > 0) {
71
+ factEntries.push({
72
+ text,
73
+ importance: Math.max(0, Math.min(1, importance)),
74
+ sourceChunk: cappedInput.slice(0, 500),
75
+ sourceType,
76
+ });
77
+ }
78
+ }
79
+ }
80
+ } catch (err) {
81
+ console.error('[steno-codebase] Fact extraction failed:', err instanceof Error ? err.message : err);
82
+ }
83
+
84
+ // Deduplicate facts by content similarity
85
+ const seenContent = new Set<string>();
86
+ factEntries = factEntries.filter(e => {
87
+ const key = e.text.toLowerCase().trim();
88
+ if (seenContent.has(key)) return false;
89
+ seenContent.add(key);
90
+ return true;
91
+ });
92
+
93
+ if (factEntries.length === 0) {
94
+ return emptyResult(config.tier, config.llm.model);
95
+ }
96
+
97
+ // Build ExtractedFact objects
98
+ const facts: ExtractedFact[] = factEntries.map(({ text, importance, sourceChunk, sourceType }) => ({
99
+ content: text,
100
+ importance,
101
+ confidence: 0.8,
102
+ sourceType,
103
+ modality: 'code' as const,
104
+ tags: ['codebase'],
105
+ originalContent: input,
106
+ entityCanonicalNames: [],
107
+ sourceChunk,
108
+ }));
109
+
110
+ // Add contextual embeddings
111
+ for (const fact of facts) {
112
+ const src = fact.sourceChunk ?? input;
113
+ const contextPrefix = src.length > 100
114
+ ? `Codebase context: ${src.slice(0, 200).trim()}... | Fact: `
115
+ : `Codebase context: ${src.trim()} | Fact: `;
116
+ fact.contextualContent = contextPrefix + fact.content;
117
+ }
118
+
119
+ // ── PASS 2: Architecture graph extraction ──
120
+ let entities: ExtractedEntity[] = [];
121
+ let edges: ExtractedEdge[] = [];
122
+
123
+ try {
124
+ const factStrings = factEntries.map(e => e.text);
125
+ const graphMessages = buildCodebaseGraphExtractionPrompt(factStrings);
126
+ const graphResponse = await config.llm.complete(graphMessages, { temperature: 0, responseFormat: 'json' });
127
+ totalTokensIn += graphResponse.tokensInput;
128
+ totalTokensOut += graphResponse.tokensOutput;
129
+
130
+ const graphParsed = JSON.parse(graphResponse.content) as Record<string, unknown>;
131
+
132
+ // Parse entities
133
+ const seenEntities = new Set<string>();
134
+ if (Array.isArray(graphParsed.entities)) {
135
+ for (const e of graphParsed.entities as unknown[]) {
136
+ if (!e || typeof (e as Record<string, unknown>).name !== 'string') continue;
137
+ const entity = e as Record<string, unknown>;
138
+ const canonical = normalizeEntityName(entity.name as string);
139
+ if (canonical.length === 0 || seenEntities.has(canonical)) continue;
140
+ seenEntities.add(canonical);
141
+
142
+ const rawType = String(entity.entity_type ?? entity.type ?? 'module');
143
+ const entityType = CODEBASE_ENTITY_TYPES.includes(rawType) ? rawType : 'module';
144
+
145
+ entities.push({
146
+ name: entity.name as string,
147
+ entityType,
148
+ canonicalName: canonical,
149
+ properties: {},
150
+ });
151
+ }
152
+ }
153
+
154
+ // Parse edges
155
+ if (Array.isArray(graphParsed.edges)) {
156
+ for (const r of graphParsed.edges as unknown[]) {
157
+ if (!r) continue;
158
+ const rel = r as Record<string, unknown>;
159
+ const rawSource = typeof rel.source === 'string' ? rel.source : null;
160
+ const rawTarget = typeof rel.target === 'string' ? rel.target : null;
161
+ if (!rawSource || !rawTarget) continue;
162
+ const source = normalizeEntityName(rawSource);
163
+ const target = normalizeEntityName(rawTarget);
164
+ if (!source || !target) continue;
165
+
166
+ const rawEdgeType = typeof rel.edge_type === 'string' ? rel.edge_type : 'associative';
167
+ const edgeType: EdgeType = VALID_CODEBASE_EDGE_TYPES.has(rawEdgeType)
168
+ ? rawEdgeType as EdgeType
169
+ : 'associative';
170
+
171
+ edges.push({
172
+ sourceName: source,
173
+ targetName: target,
174
+ relation: String(rel.relation ?? 'related_to'),
175
+ edgeType,
176
+ confidence: 0.8,
177
+ });
178
+ }
179
+ }
180
+
181
+ // Link entities to facts by text match
182
+ for (const fact of facts) {
183
+ const contentLower = fact.content.toLowerCase();
184
+ for (const entity of entities) {
185
+ if (entity.canonicalName.length >= 3 && contentLower.includes(entity.canonicalName)) {
186
+ fact.entityCanonicalNames!.push(entity.canonicalName);
187
+ }
188
+ }
189
+ }
190
+ } catch {
191
+ // Graph pass failed — facts are still useful without graph
192
+ }
193
+
194
+ return {
195
+ facts,
196
+ entities,
197
+ edges,
198
+ tier: config.tier,
199
+ confidence: 0.8,
200
+ tokensInput: totalTokensIn,
201
+ tokensOutput: totalTokensOut,
202
+ model: config.llm.model,
203
+ };
204
+ }
205
+
206
+ function emptyResult(tier: ExtractionTier, model: string): ExtractionResult {
207
+ return {
208
+ facts: [],
209
+ entities: [],
210
+ edges: [],
211
+ tier,
212
+ confidence: 0,
213
+ tokensInput: 0,
214
+ tokensOutput: 0,
215
+ model,
216
+ };
217
+ }
@@ -0,0 +1,141 @@
1
+ import type { LLMMessage } from '../adapters/llm.js';
2
+
3
+ // =============================================================================
4
+ // PASS 1: CODEBASE FACT EXTRACTION — Architectural facts from code
5
+ // =============================================================================
6
+
7
+ export const CODEBASE_FACT_EXTRACTION_PROMPT = `You are a codebase analysis engine. Extract architectural and structural facts from source code, configuration files, and project documentation.
8
+
9
+ ## WHAT TO EXTRACT
10
+
11
+ Focus on facts that help an AI assistant understand the codebase:
12
+
13
+ 1. **File structure patterns**: How the project is organized (monorepo layout, feature-based folders, barrel exports, etc.)
14
+ 2. **Framework choices**: Which frameworks, runtimes, and major libraries are used, and how they're configured
15
+ 3. **API conventions**: Route naming patterns, middleware usage, request/response shapes, authentication patterns
16
+ 4. **Error handling patterns**: How errors are caught, logged, and propagated — custom error classes, error boundaries, fallback strategies
17
+ 5. **Dependencies**: Key packages and their roles (ORM, auth, state management, testing, etc.)
18
+ 6. **Build & deploy config**: Build tools, CI/CD setup, environment variable patterns, deployment targets
19
+ 7. **Code conventions**: Naming conventions, module boundaries, shared utilities, type patterns
20
+ 8. **Data flow**: How data moves through the system — stores, caches, API layers, database access patterns
21
+
22
+ ## RULES
23
+
24
+ 1. Extract SELF-CONTAINED atomic facts. Each fact must be understandable without the original code.
25
+ 2. Be SPECIFIC — reference actual file paths, package names, and function signatures when visible.
26
+ BAD: "The project uses a database"
27
+ GOOD: "The project uses Supabase via @supabase/supabase-js with row-level security enabled in lib/supabase/client.ts"
28
+ 3. Write all facts in third person using the project/codebase as the subject.
29
+ - "The project uses Next.js App Router with server components"
30
+ - "The API routes follow REST conventions under app/api/"
31
+ 4. Focus on ARCHITECTURAL facts — patterns, conventions, and structure. Skip trivial implementation details.
32
+ 5. For configuration files, extract the meaningful settings, not every line.
33
+
34
+ ## OUTPUT
35
+
36
+ Return ONLY a JSON object:
37
+ {"facts": [{"t": "fact text here", "i": 0.7, "src": "file_analysis"}, ...]}
38
+
39
+ Score importance (i) from 0.0 to 1.0:
40
+ - 0.9-1.0: Core framework choice, primary database, authentication strategy, deployment target
41
+ - 0.7-0.8: API patterns, state management, key dependencies, build configuration
42
+ - 0.4-0.6: Utility patterns, naming conventions, folder structure details
43
+ - 0.1-0.3: Minor config settings, dev-only tooling, formatting preferences
44
+
45
+ Source type (src) must be one of: "file_analysis", "ast_parse", "git_history", "dependency_scan"
46
+
47
+ Nothing else. No explanation, no markdown.`;
48
+
49
+ // =============================================================================
50
+ // PASS 2: CODEBASE GRAPH EXTRACTION — Architecture graph from facts
51
+ // =============================================================================
52
+
53
+ export const CODEBASE_GRAPH_EXTRACTION_PROMPT = `You are an architecture graph builder. Given facts about a codebase, extract entities and their relationships to build an architecture graph.
54
+
55
+ ## ENTITIES
56
+
57
+ Extract packages, modules, services, configurations, and other structural components.
58
+
59
+ Entity types to use: package, module, config, service, api_route, database, library, test_suite, build_tool, runtime
60
+
61
+ Examples:
62
+ - {"name": "Next.js App Router", "entity_type": "runtime"}
63
+ - {"name": "lib/supabase", "entity_type": "module"}
64
+ - {"name": "Prisma", "entity_type": "library"}
65
+ - {"name": "app/api/auth", "entity_type": "api_route"}
66
+ - {"name": "jest.config.ts", "entity_type": "config"}
67
+
68
+ DO extract: Packages, modules, config files, services, API route groups, databases, key libraries
69
+ DO NOT extract: Individual variables, single functions (unless they are exported utilities), line-level details
70
+
71
+ ## RELATIONSHIPS
72
+
73
+ Extract structural relationships between entities. Use these edge types:
74
+
75
+ - imports: A imports/depends on B at code level
76
+ - implements: A implements interface/pattern B
77
+ - owns: A contains/owns B (package owns modules, module owns routes)
78
+ - configures: A configures/sets up B (config file configures a library)
79
+ - tested_by: A is tested by B (module has corresponding test suite)
80
+ - depends_on: A requires B at build/runtime level
81
+ - extends: A extends/inherits from B
82
+
83
+ ## OUTPUT
84
+
85
+ Return ONLY a JSON object:
86
+ {
87
+ "entities": [
88
+ {"name": "lib/supabase", "entity_type": "module"},
89
+ {"name": "Prisma", "entity_type": "library"}
90
+ ],
91
+ "edges": [
92
+ {"source": "lib/supabase", "target": "supabase-js", "relation": "imports", "edge_type": "imports"},
93
+ {"source": "app/api", "target": "lib/supabase", "relation": "uses_for_data", "edge_type": "depends_on"},
94
+ {"source": "jest.config.ts", "target": "jest", "relation": "configures", "edge_type": "configures"}
95
+ ]
96
+ }
97
+
98
+ Entity names should be clean identifiers — file paths, package names, or descriptive labels.
99
+ Return ONLY valid JSON.`;
100
+
101
+ // =============================================================================
102
+ // CODEBASE ENTITY TYPES
103
+ // =============================================================================
104
+
105
+ export const CODEBASE_ENTITY_TYPES = [
106
+ 'package',
107
+ 'module',
108
+ 'config',
109
+ 'service',
110
+ 'api_route',
111
+ 'database',
112
+ 'library',
113
+ 'test_suite',
114
+ 'build_tool',
115
+ 'runtime',
116
+ ];
117
+
118
+ // =============================================================================
119
+ // PROMPT BUILDERS
120
+ // =============================================================================
121
+
122
+ /**
123
+ * Build the codebase fact extraction prompt (Pass 1).
124
+ */
125
+ export function buildCodebaseFactExtractionPrompt(input: string): LLMMessage[] {
126
+ return [
127
+ { role: 'system', content: CODEBASE_FACT_EXTRACTION_PROMPT },
128
+ { role: 'user', content: `Extract architectural facts from this code/configuration:\n\n${input}` },
129
+ ];
130
+ }
131
+
132
+ /**
133
+ * Build the codebase graph extraction prompt (Pass 2).
134
+ */
135
+ export function buildCodebaseGraphExtractionPrompt(facts: string[]): LLMMessage[] {
136
+ const factsList = facts.map((f, i) => `${i + 1}. ${f}`).join('\n');
137
+ return [
138
+ { role: 'system', content: CODEBASE_GRAPH_EXTRACTION_PROMPT },
139
+ { role: 'user', content: `Build an architecture graph from these codebase facts:\n\n${factsList}` },
140
+ ];
141
+ }
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
@@ -1,9 +1,11 @@
1
1
  export * from './types.js';
2
2
  export * from './hasher.js';
3
3
  export * from './prompts.js';
4
+ export * from './codebase-prompts.js';
4
5
  export * from './heuristic.js';
5
6
  export * from './contradiction.js';
6
7
  export * from './entity-extractor.js';
7
8
  export * from './llm-extractor.js';
9
+ export * from './codebase-extractor.js';
8
10
  export * from './dedup.js';
9
11
  export * from './pipeline.js';
File without changes
File without changes
File without changes
File without changes
@@ -246,7 +246,11 @@ function emptyResult(tier: ExtractionTier, model: string): ExtractionResult {
246
246
  function isValidEdgeType(t: unknown): t is EdgeType {
247
247
  return (
248
248
  typeof t === 'string' &&
249
- ['associative', 'causal', 'temporal', 'contradictory', 'hierarchical'].includes(t)
249
+ [
250
+ 'associative', 'causal', 'temporal', 'contradictory', 'hierarchical',
251
+ 'updates', 'extends', 'derives', 'precedes', 'depends_on', 'deadline',
252
+ 'imports', 'implements', 'owns', 'configures', 'tested_by',
253
+ ].includes(t)
250
254
  );
251
255
  }
252
256
 
File without changes
File without changes
File without changes
File without changes