@stackmemoryai/stackmemory 0.2.7 → 0.2.9

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 (346) hide show
  1. package/README.md +25 -8
  2. package/dist/scripts/cancel-duplicate-tasks.js +2 -1
  3. package/dist/scripts/cancel-duplicate-tasks.js.map +1 -1
  4. package/dist/scripts/list-linear-tasks.js +3 -4
  5. package/dist/scripts/list-linear-tasks.js.map +1 -1
  6. package/dist/scripts/merge-linear-duplicates-safe.js +4 -2
  7. package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -1
  8. package/dist/scripts/show-linear-summary.js +4 -1
  9. package/dist/scripts/show-linear-summary.js.map +1 -1
  10. package/dist/scripts/status.js +6 -2
  11. package/dist/scripts/status.js.map +1 -1
  12. package/dist/src/cli/auto-detect.js.map +1 -1
  13. package/dist/src/cli/claude-sm.js.map +1 -1
  14. package/dist/src/cli/commands/config.d.ts +6 -0
  15. package/dist/src/cli/commands/config.d.ts.map +1 -0
  16. package/dist/src/cli/commands/config.js +224 -0
  17. package/dist/src/cli/commands/config.js.map +1 -0
  18. package/dist/src/cli/commands/linear.d.ts.map +1 -1
  19. package/dist/src/cli/commands/linear.js +123 -47
  20. package/dist/src/cli/commands/linear.js.map +1 -1
  21. package/dist/src/cli/index.d.ts.map +1 -1
  22. package/dist/src/cli/index.js +48 -1
  23. package/dist/src/cli/index.js.map +1 -1
  24. package/dist/src/core/config/config-manager.d.ts +95 -0
  25. package/dist/src/core/config/config-manager.d.ts.map +1 -0
  26. package/dist/src/core/config/config-manager.js +359 -0
  27. package/dist/src/core/config/config-manager.js.map +1 -0
  28. package/dist/src/core/config/types.d.ts +72 -0
  29. package/dist/src/core/config/types.d.ts.map +1 -0
  30. package/dist/src/core/config/types.js +127 -0
  31. package/dist/src/core/config/types.js.map +1 -0
  32. package/dist/src/core/context/compaction-handler.d.ts +119 -0
  33. package/dist/src/core/context/compaction-handler.d.ts.map +1 -0
  34. package/dist/src/core/context/compaction-handler.js +306 -0
  35. package/dist/src/core/context/compaction-handler.js.map +1 -0
  36. package/dist/src/core/context/model-aware-compaction.d.ts +101 -0
  37. package/dist/src/core/context/model-aware-compaction.d.ts.map +1 -0
  38. package/dist/src/core/context/model-aware-compaction.js +616 -0
  39. package/dist/src/core/context/model-aware-compaction.js.map +1 -0
  40. package/dist/src/core/digest/hybrid-digest-generator.d.ts +76 -0
  41. package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +1 -0
  42. package/dist/src/core/digest/hybrid-digest-generator.js +629 -0
  43. package/dist/src/core/digest/hybrid-digest-generator.js.map +1 -0
  44. package/dist/src/core/digest/index.d.ts +7 -0
  45. package/dist/src/core/digest/index.d.ts.map +1 -0
  46. package/dist/src/core/digest/index.js +7 -0
  47. package/dist/src/core/digest/index.js.map +1 -0
  48. package/dist/src/core/digest/types.d.ts +154 -0
  49. package/dist/src/core/digest/types.d.ts.map +1 -0
  50. package/dist/src/core/digest/types.js +18 -0
  51. package/dist/src/core/digest/types.js.map +1 -0
  52. package/dist/src/core/monitoring/logger.d.ts +2 -2
  53. package/dist/src/core/monitoring/logger.d.ts.map +1 -1
  54. package/dist/src/core/monitoring/logger.js +10 -5
  55. package/dist/src/core/monitoring/logger.js.map +1 -1
  56. package/dist/src/core/monitoring/metrics.d.ts +3 -0
  57. package/dist/src/core/monitoring/metrics.d.ts.map +1 -1
  58. package/dist/src/core/monitoring/metrics.js +142 -3
  59. package/dist/src/core/monitoring/metrics.js.map +1 -1
  60. package/dist/src/core/persistence/postgres-adapter.d.ts +31 -0
  61. package/dist/src/core/persistence/postgres-adapter.d.ts.map +1 -0
  62. package/dist/src/core/persistence/postgres-adapter.js +316 -0
  63. package/dist/src/core/persistence/postgres-adapter.js.map +1 -0
  64. package/dist/src/core/query/query-parser.d.ts +104 -0
  65. package/dist/src/core/query/query-parser.d.ts.map +1 -0
  66. package/dist/src/core/query/query-parser.js +347 -0
  67. package/dist/src/core/query/query-parser.js.map +1 -0
  68. package/dist/src/core/retrieval/index.d.ts +8 -0
  69. package/dist/src/core/retrieval/index.d.ts.map +1 -0
  70. package/dist/src/core/retrieval/index.js +8 -0
  71. package/dist/src/core/retrieval/index.js.map +1 -0
  72. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +71 -0
  73. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -0
  74. package/dist/src/core/retrieval/llm-context-retrieval.js +545 -0
  75. package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -0
  76. package/dist/src/core/retrieval/summary-generator.d.ts +63 -0
  77. package/dist/src/core/retrieval/summary-generator.d.ts.map +1 -0
  78. package/dist/src/core/retrieval/summary-generator.js +622 -0
  79. package/dist/src/core/retrieval/summary-generator.js.map +1 -0
  80. package/dist/src/core/retrieval/types.d.ts +257 -0
  81. package/dist/src/core/retrieval/types.d.ts.map +1 -0
  82. package/dist/src/core/retrieval/types.js +18 -0
  83. package/dist/src/core/retrieval/types.js.map +1 -0
  84. package/dist/src/core/trace/trace-detector.d.ts +108 -0
  85. package/dist/src/core/trace/trace-detector.d.ts.map +1 -0
  86. package/dist/src/core/trace/trace-detector.demo.d.ts +5 -0
  87. package/dist/src/core/trace/trace-detector.demo.d.ts.map +1 -0
  88. package/dist/src/core/trace/trace-detector.demo.js +145 -0
  89. package/dist/src/core/trace/trace-detector.demo.js.map +1 -0
  90. package/dist/src/core/trace/trace-detector.js +425 -0
  91. package/dist/src/core/trace/trace-detector.js.map +1 -0
  92. package/dist/src/core/trace/trace-store.d.ts +60 -0
  93. package/dist/src/core/trace/trace-store.d.ts.map +1 -0
  94. package/dist/src/core/trace/trace-store.js +323 -0
  95. package/dist/src/core/trace/trace-store.js.map +1 -0
  96. package/dist/src/core/trace/types.d.ts +81 -0
  97. package/dist/src/core/trace/types.d.ts.map +1 -0
  98. package/dist/src/core/trace/types.js +70 -0
  99. package/dist/src/core/trace/types.js.map +1 -0
  100. package/dist/src/core/types.d.ts +35 -0
  101. package/dist/src/core/types.d.ts.map +1 -0
  102. package/dist/src/core/types.js +2 -0
  103. package/dist/src/core/types.js.map +1 -0
  104. package/dist/src/integrations/linear/sync-manager.d.ts +76 -0
  105. package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -0
  106. package/dist/src/integrations/linear/sync-manager.js +223 -0
  107. package/dist/src/integrations/linear/sync-manager.js.map +1 -0
  108. package/dist/src/integrations/mcp/server.d.ts +8 -0
  109. package/dist/src/integrations/mcp/server.d.ts.map +1 -1
  110. package/dist/src/integrations/mcp/server.js +369 -17
  111. package/dist/src/integrations/mcp/server.js.map +1 -1
  112. package/dist/src/integrations/mcp/trace-test.d.ts +5 -0
  113. package/dist/src/integrations/mcp/trace-test.d.ts.map +1 -0
  114. package/dist/src/integrations/mcp/trace-test.js +54 -0
  115. package/dist/src/integrations/mcp/trace-test.js.map +1 -0
  116. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts +48 -0
  117. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +1 -0
  118. package/dist/src/integrations/pg-aiguide/embedding-provider.js +190 -0
  119. package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +1 -0
  120. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +34 -0
  121. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +1 -0
  122. package/dist/src/integrations/pg-aiguide/semantic-search.js +154 -0
  123. package/dist/src/integrations/pg-aiguide/semantic-search.js.map +1 -0
  124. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +44 -0
  125. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +1 -0
  126. package/dist/src/integrations/pg-aiguide/timescale-analytics.js +215 -0
  127. package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +1 -0
  128. package/dist/src/models/user.model.d.ts +55 -0
  129. package/dist/src/models/user.model.d.ts.map +1 -0
  130. package/dist/src/models/user.model.js +263 -0
  131. package/dist/src/models/user.model.js.map +1 -0
  132. package/dist/src/servers/production/auth-middleware.d.ts +7 -0
  133. package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
  134. package/dist/src/servers/production/auth-middleware.js +201 -26
  135. package/dist/src/servers/production/auth-middleware.js.map +1 -1
  136. package/dist/src/servers/railway/index.js.map +1 -1
  137. package/dist/src/services/config-service.d.ts +1 -1
  138. package/dist/src/services/config-service.d.ts.map +1 -1
  139. package/dist/src/services/config-service.js.map +1 -1
  140. package/dist/src/types/task.d.ts +11 -1
  141. package/dist/src/types/task.d.ts.map +1 -1
  142. package/dist/src/utils/logger.d.ts +4 -4
  143. package/dist/src/utils/logger.d.ts.map +1 -1
  144. package/dist/src/utils/logger.js.map +1 -1
  145. package/package.json +14 -8
  146. package/dist/attention-scoring/src/attention-tracker.d.ts +0 -79
  147. package/dist/attention-scoring/src/attention-tracker.d.ts.map +0 -1
  148. package/dist/attention-scoring/src/attention-tracker.js +0 -488
  149. package/dist/attention-scoring/src/attention-tracker.js.map +0 -1
  150. package/dist/attention-scoring/src/mcp-integration.d.ts +0 -56
  151. package/dist/attention-scoring/src/mcp-integration.d.ts.map +0 -1
  152. package/dist/attention-scoring/src/mcp-integration.js +0 -369
  153. package/dist/attention-scoring/src/mcp-integration.js.map +0 -1
  154. package/dist/index.js +0 -382
  155. package/dist/p2p-sync/src/p2p-sync.d.ts +0 -81
  156. package/dist/p2p-sync/src/p2p-sync.d.ts.map +0 -1
  157. package/dist/p2p-sync/src/p2p-sync.js +0 -457
  158. package/dist/p2p-sync/src/p2p-sync.js.map +0 -1
  159. package/dist/p2p-sync/src/team-context-sync.d.ts +0 -99
  160. package/dist/p2p-sync/src/team-context-sync.d.ts.map +0 -1
  161. package/dist/p2p-sync/src/team-context-sync.js +0 -491
  162. package/dist/p2p-sync/src/team-context-sync.js.map +0 -1
  163. package/dist/scripts/merge-linear-duplicates.d.ts +0 -7
  164. package/dist/scripts/merge-linear-duplicates.d.ts.map +0 -1
  165. package/dist/scripts/merge-linear-duplicates.js +0 -126
  166. package/dist/scripts/merge-linear-duplicates.js.map +0 -1
  167. package/dist/src/analytics/api/analytics-api.d.ts +0 -24
  168. package/dist/src/analytics/api/analytics-api.d.ts.map +0 -1
  169. package/dist/src/analytics/api/analytics-api.js +0 -279
  170. package/dist/src/analytics/api/analytics-api.js.map +0 -1
  171. package/dist/src/analytics/core/analytics-service.d.ts +0 -23
  172. package/dist/src/analytics/core/analytics-service.d.ts.map +0 -1
  173. package/dist/src/analytics/core/analytics-service.js +0 -160
  174. package/dist/src/analytics/core/analytics-service.js.map +0 -1
  175. package/dist/src/analytics/index.d.ts +0 -12
  176. package/dist/src/analytics/index.d.ts.map +0 -1
  177. package/dist/src/analytics/index.js +0 -11
  178. package/dist/src/analytics/index.js.map +0 -1
  179. package/dist/src/analytics/queries/metrics-queries.d.ts +0 -11
  180. package/dist/src/analytics/queries/metrics-queries.d.ts.map +0 -1
  181. package/dist/src/analytics/queries/metrics-queries.js +0 -179
  182. package/dist/src/analytics/queries/metrics-queries.js.map +0 -1
  183. package/dist/src/analytics/types/metrics.d.ts +0 -60
  184. package/dist/src/analytics/types/metrics.d.ts.map +0 -1
  185. package/dist/src/analytics/types/metrics.js +0 -2
  186. package/dist/src/analytics/types/metrics.js.map +0 -1
  187. package/dist/src/beads/beads-task-store.d.ts +0 -117
  188. package/dist/src/beads/beads-task-store.d.ts.map +0 -1
  189. package/dist/src/beads/beads-task-store.js +0 -318
  190. package/dist/src/beads/beads-task-store.js.map +0 -1
  191. package/dist/src/beads/task-aware-context.d.ts +0 -103
  192. package/dist/src/beads/task-aware-context.d.ts.map +0 -1
  193. package/dist/src/beads/task-aware-context.js +0 -395
  194. package/dist/src/beads/task-aware-context.js.map +0 -1
  195. package/dist/src/beads-task-store.d.ts +0 -117
  196. package/dist/src/beads-task-store.d.ts.map +0 -1
  197. package/dist/src/beads-task-store.js +0 -318
  198. package/dist/src/beads-task-store.js.map +0 -1
  199. package/dist/src/cli/__tests__/index.test.d.ts +0 -5
  200. package/dist/src/cli/__tests__/index.test.d.ts.map +0 -1
  201. package/dist/src/cli/__tests__/index.test.js +0 -726
  202. package/dist/src/cli/__tests__/index.test.js.map +0 -1
  203. package/dist/src/cli/analytics-viewer.d.ts +0 -3
  204. package/dist/src/cli/analytics-viewer.d.ts.map +0 -1
  205. package/dist/src/cli/analytics-viewer.js +0 -89
  206. package/dist/src/cli/analytics-viewer.js.map +0 -1
  207. package/dist/src/cli/cli.d.ts +0 -7
  208. package/dist/src/cli/cli.d.ts.map +0 -1
  209. package/dist/src/cli/cli.js +0 -704
  210. package/dist/src/cli/cli.js.map +0 -1
  211. package/dist/src/cli/project-commands.d.ts +0 -8
  212. package/dist/src/cli/project-commands.d.ts.map +0 -1
  213. package/dist/src/cli/project-commands.js +0 -212
  214. package/dist/src/cli/project-commands.js.map +0 -1
  215. package/dist/src/cli.d.ts +0 -7
  216. package/dist/src/cli.d.ts.map +0 -1
  217. package/dist/src/cli.js +0 -73
  218. package/dist/src/cli.js.map +0 -1
  219. package/dist/src/core/context/__tests__/frame-manager.test.d.ts +0 -5
  220. package/dist/src/core/context/__tests__/frame-manager.test.d.ts.map +0 -1
  221. package/dist/src/core/context/__tests__/frame-manager.test.js +0 -892
  222. package/dist/src/core/context/__tests__/frame-manager.test.js.map +0 -1
  223. package/dist/src/core/error-handler.d.ts +0 -46
  224. package/dist/src/core/error-handler.d.ts.map +0 -1
  225. package/dist/src/core/error-handler.js +0 -212
  226. package/dist/src/core/error-handler.js.map +0 -1
  227. package/dist/src/core/errors/__tests__/error-handling.test.d.ts +0 -5
  228. package/dist/src/core/errors/__tests__/error-handling.test.d.ts.map +0 -1
  229. package/dist/src/core/errors/__tests__/error-handling.test.js +0 -239
  230. package/dist/src/core/errors/__tests__/error-handling.test.js.map +0 -1
  231. package/dist/src/core/frame-manager.d.ts +0 -106
  232. package/dist/src/core/frame-manager.d.ts.map +0 -1
  233. package/dist/src/core/frame-manager.js +0 -387
  234. package/dist/src/core/frame-manager.js.map +0 -1
  235. package/dist/src/core/logger.d.ts +0 -24
  236. package/dist/src/core/logger.d.ts.map +0 -1
  237. package/dist/src/core/logger.js +0 -121
  238. package/dist/src/core/logger.js.map +0 -1
  239. package/dist/src/core/logger.test.d.ts +0 -2
  240. package/dist/src/core/logger.test.d.ts.map +0 -1
  241. package/dist/src/core/logger.test.js +0 -31
  242. package/dist/src/core/logger.test.js.map +0 -1
  243. package/dist/src/core/progress-tracker.d.ts +0 -95
  244. package/dist/src/core/progress-tracker.d.ts.map +0 -1
  245. package/dist/src/core/progress-tracker.js +0 -178
  246. package/dist/src/core/progress-tracker.js.map +0 -1
  247. package/dist/src/core/project-manager.d.ts +0 -130
  248. package/dist/src/core/project-manager.d.ts.map +0 -1
  249. package/dist/src/core/project-manager.js +0 -582
  250. package/dist/src/core/project-manager.js.map +0 -1
  251. package/dist/src/core/update-checker.d.ts +0 -38
  252. package/dist/src/core/update-checker.d.ts.map +0 -1
  253. package/dist/src/core/update-checker.js +0 -156
  254. package/dist/src/core/update-checker.js.map +0 -1
  255. package/dist/src/error-handler.d.ts +0 -42
  256. package/dist/src/error-handler.d.ts.map +0 -1
  257. package/dist/src/error-handler.js +0 -155
  258. package/dist/src/error-handler.js.map +0 -1
  259. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts +0 -5
  260. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts.map +0 -1
  261. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js +0 -712
  262. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js.map +0 -1
  263. package/dist/src/frame-manager.d.ts +0 -106
  264. package/dist/src/frame-manager.d.ts.map +0 -1
  265. package/dist/src/frame-manager.js +0 -361
  266. package/dist/src/frame-manager.js.map +0 -1
  267. package/dist/src/integrations/browser-mcp.d.ts +0 -94
  268. package/dist/src/integrations/browser-mcp.d.ts.map +0 -1
  269. package/dist/src/integrations/browser-mcp.js +0 -431
  270. package/dist/src/integrations/browser-mcp.js.map +0 -1
  271. package/dist/src/integrations/linear/__tests__/auth.test.d.ts +0 -5
  272. package/dist/src/integrations/linear/__tests__/auth.test.d.ts.map +0 -1
  273. package/dist/src/integrations/linear/__tests__/auth.test.js +0 -517
  274. package/dist/src/integrations/linear/__tests__/auth.test.js.map +0 -1
  275. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts +0 -5
  276. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts.map +0 -1
  277. package/dist/src/integrations/linear/__tests__/sync-service.test.js +0 -700
  278. package/dist/src/integrations/linear/__tests__/sync-service.test.js.map +0 -1
  279. package/dist/src/integrations/linear-auth.d.ts +0 -99
  280. package/dist/src/integrations/linear-auth.d.ts.map +0 -1
  281. package/dist/src/integrations/linear-auth.js +0 -319
  282. package/dist/src/integrations/linear-auth.js.map +0 -1
  283. package/dist/src/integrations/linear-auto-sync.d.ts +0 -77
  284. package/dist/src/integrations/linear-auto-sync.d.ts.map +0 -1
  285. package/dist/src/integrations/linear-auto-sync.js +0 -268
  286. package/dist/src/integrations/linear-auto-sync.js.map +0 -1
  287. package/dist/src/integrations/linear-client.d.ts +0 -86
  288. package/dist/src/integrations/linear-client.d.ts.map +0 -1
  289. package/dist/src/integrations/linear-client.js +0 -277
  290. package/dist/src/integrations/linear-client.js.map +0 -1
  291. package/dist/src/integrations/linear-config.d.ts +0 -51
  292. package/dist/src/integrations/linear-config.d.ts.map +0 -1
  293. package/dist/src/integrations/linear-config.js +0 -103
  294. package/dist/src/integrations/linear-config.js.map +0 -1
  295. package/dist/src/integrations/linear-sync.d.ts +0 -97
  296. package/dist/src/integrations/linear-sync.d.ts.map +0 -1
  297. package/dist/src/integrations/linear-sync.js +0 -391
  298. package/dist/src/integrations/linear-sync.js.map +0 -1
  299. package/dist/src/integrations/mcp/__tests__/server.test.d.ts +0 -5
  300. package/dist/src/integrations/mcp/__tests__/server.test.d.ts.map +0 -1
  301. package/dist/src/integrations/mcp/__tests__/server.test.js +0 -790
  302. package/dist/src/integrations/mcp/__tests__/server.test.js.map +0 -1
  303. package/dist/src/logger.d.ts +0 -24
  304. package/dist/src/logger.d.ts.map +0 -1
  305. package/dist/src/logger.js +0 -120
  306. package/dist/src/logger.js.map +0 -1
  307. package/dist/src/mcp/mcp-server.d.ts +0 -40
  308. package/dist/src/mcp/mcp-server.d.ts.map +0 -1
  309. package/dist/src/mcp/mcp-server.js +0 -828
  310. package/dist/src/mcp/mcp-server.js.map +0 -1
  311. package/dist/src/mcp-server.d.ts +0 -32
  312. package/dist/src/mcp-server.d.ts.map +0 -1
  313. package/dist/src/mcp-server.js +0 -441
  314. package/dist/src/mcp-server.js.map +0 -1
  315. package/dist/src/pebbles/pebbles-task-store.d.ts +0 -117
  316. package/dist/src/pebbles/pebbles-task-store.d.ts.map +0 -1
  317. package/dist/src/pebbles/pebbles-task-store.js +0 -335
  318. package/dist/src/pebbles/pebbles-task-store.js.map +0 -1
  319. package/dist/src/pebbles/task-aware-context.d.ts +0 -103
  320. package/dist/src/pebbles/task-aware-context.d.ts.map +0 -1
  321. package/dist/src/pebbles/task-aware-context.js +0 -412
  322. package/dist/src/pebbles/task-aware-context.js.map +0 -1
  323. package/dist/src/railway/index.d.ts +0 -7
  324. package/dist/src/railway/index.d.ts.map +0 -1
  325. package/dist/src/railway/index.js +0 -401
  326. package/dist/src/railway/index.js.map +0 -1
  327. package/dist/src/runway/auth/auth-middleware.d.ts +0 -66
  328. package/dist/src/runway/auth/auth-middleware.d.ts.map +0 -1
  329. package/dist/src/runway/auth/auth-middleware.js +0 -337
  330. package/dist/src/runway/auth/auth-middleware.js.map +0 -1
  331. package/dist/src/runway/server/runway-mcp-server.d.ts +0 -46
  332. package/dist/src/runway/server/runway-mcp-server.d.ts.map +0 -1
  333. package/dist/src/runway/server/runway-mcp-server.js +0 -601
  334. package/dist/src/runway/server/runway-mcp-server.js.map +0 -1
  335. package/dist/src/runway.bak/auth/auth-middleware.d.ts +0 -66
  336. package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +0 -1
  337. package/dist/src/runway.bak/auth/auth-middleware.js +0 -337
  338. package/dist/src/runway.bak/auth/auth-middleware.js.map +0 -1
  339. package/dist/src/runway.bak/server/runway-mcp-server.d.ts +0 -46
  340. package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +0 -1
  341. package/dist/src/runway.bak/server/runway-mcp-server.js +0 -601
  342. package/dist/src/runway.bak/server/runway-mcp-server.js.map +0 -1
  343. package/dist/src/task-aware-context.d.ts +0 -103
  344. package/dist/src/task-aware-context.d.ts.map +0 -1
  345. package/dist/src/task-aware-context.js +0 -395
  346. package/dist/src/task-aware-context.js.map +0 -1
@@ -0,0 +1,545 @@
1
+ /**
2
+ * LLM-Driven Context Retrieval System
3
+ * Uses LLM analysis to intelligently select relevant context
4
+ */
5
+ import { QueryParser } from '../query/query-parser.js';
6
+ import { CompressedSummaryGenerator } from './summary-generator.js';
7
+ import { DEFAULT_RETRIEVAL_CONFIG, } from './types.js';
8
+ import { logger } from '../monitoring/logger.js';
9
+ /**
10
+ * Simple heuristic-based fallback when LLM is unavailable
11
+ */
12
+ class HeuristicAnalyzer {
13
+ analyze(query, summary, parsedQuery) {
14
+ const framesToRetrieve = [];
15
+ const recommendations = [];
16
+ const matchedPatterns = [];
17
+ // Score frames based on query relevance
18
+ const queryLower = query.toLowerCase();
19
+ const queryWords = queryLower.split(/\W+/).filter((w) => w.length > 2);
20
+ for (const frame of summary.recentSession.frames) {
21
+ let priority = 5; // Base priority
22
+ const reasons = [];
23
+ // Recency boost
24
+ const ageHours = (Date.now() - frame.createdAt) / (1000 * 60 * 60);
25
+ if (ageHours < 1) {
26
+ priority += 3;
27
+ reasons.push('very recent');
28
+ }
29
+ else if (ageHours < 6) {
30
+ priority += 2;
31
+ reasons.push('recent');
32
+ }
33
+ // Score boost
34
+ priority += Math.floor(frame.score * 3);
35
+ // Name matching
36
+ const nameLower = frame.name.toLowerCase();
37
+ const nameMatches = queryWords.filter((w) => nameLower.includes(w));
38
+ if (nameMatches.length > 0) {
39
+ priority += nameMatches.length * 2;
40
+ reasons.push(`matches: ${nameMatches.join(', ')}`);
41
+ matchedPatterns.push(`name_match:${nameMatches.join(',')}`);
42
+ }
43
+ // Type matching from parsed query
44
+ if (parsedQuery?.frame?.type) {
45
+ const frameType = frame.type.toLowerCase();
46
+ if (parsedQuery.frame.type.some((t) => t.toLowerCase() === frameType)) {
47
+ priority += 2;
48
+ reasons.push('type match');
49
+ }
50
+ }
51
+ // Topic matching
52
+ if (parsedQuery?.content?.topic) {
53
+ const topics = parsedQuery.content.topic;
54
+ const topicMatches = topics.filter((t) => nameLower.includes(t.toLowerCase()) ||
55
+ (frame.digestPreview &&
56
+ frame.digestPreview.toLowerCase().includes(t.toLowerCase())));
57
+ if (topicMatches.length > 0) {
58
+ priority += topicMatches.length;
59
+ reasons.push(`topic: ${topicMatches.join(', ')}`);
60
+ }
61
+ }
62
+ // Cap priority at 10
63
+ priority = Math.min(priority, 10);
64
+ if (priority >= 5) {
65
+ framesToRetrieve.push({
66
+ frameId: frame.frameId,
67
+ priority,
68
+ reason: reasons.length > 0 ? reasons.join('; ') : 'relevant context',
69
+ includeEvents: priority >= 7,
70
+ includeAnchors: true,
71
+ includeDigest: true,
72
+ estimatedTokens: this.estimateFrameTokens(frame),
73
+ });
74
+ }
75
+ }
76
+ // Sort by priority
77
+ framesToRetrieve.sort((a, b) => b.priority - a.priority);
78
+ // Generate recommendations based on errors
79
+ if (summary.recentSession.errorsEncountered.length > 0) {
80
+ recommendations.push({
81
+ type: 'include',
82
+ target: 'error_context',
83
+ reason: `${summary.recentSession.errorsEncountered.length} errors encountered recently`,
84
+ impact: 'medium',
85
+ });
86
+ }
87
+ // Recommend including decisions if query seems decision-related
88
+ if (queryLower.includes('decision') ||
89
+ queryLower.includes('why') ||
90
+ queryLower.includes('chose')) {
91
+ recommendations.push({
92
+ type: 'include',
93
+ target: 'decisions',
94
+ reason: 'Query appears to be about past decisions',
95
+ impact: 'high',
96
+ });
97
+ }
98
+ // Calculate confidence based on match quality
99
+ const avgPriority = framesToRetrieve.length > 0
100
+ ? framesToRetrieve.reduce((sum, f) => sum + f.priority, 0) /
101
+ framesToRetrieve.length
102
+ : 0;
103
+ const confidenceScore = Math.min(avgPriority / 10, 0.95);
104
+ // Generate reasoning
105
+ const reasoning = this.generateReasoning(query, framesToRetrieve, summary, matchedPatterns);
106
+ return {
107
+ reasoning,
108
+ framesToRetrieve: framesToRetrieve.slice(0, 10), // Limit to top 10
109
+ confidenceScore,
110
+ recommendations,
111
+ metadata: {
112
+ analysisTimeMs: 0, // Will be set by caller
113
+ summaryTokens: this.estimateSummaryTokens(summary),
114
+ queryComplexity: this.assessQueryComplexity(query, parsedQuery),
115
+ matchedPatterns,
116
+ fallbackUsed: true,
117
+ },
118
+ };
119
+ }
120
+ estimateFrameTokens(frame) {
121
+ let tokens = 50; // Base frame header
122
+ tokens += frame.eventCount * 30; // Estimate per event
123
+ tokens += frame.anchorCount * 40; // Estimate per anchor
124
+ if (frame.digestPreview)
125
+ tokens += frame.digestPreview.length / 4;
126
+ return Math.floor(tokens);
127
+ }
128
+ estimateSummaryTokens(summary) {
129
+ return Math.floor(JSON.stringify(summary).length / 4);
130
+ }
131
+ assessQueryComplexity(query, parsedQuery) {
132
+ const wordCount = query.split(/\s+/).length;
133
+ const hasTimeFilter = !!parsedQuery?.time;
134
+ const hasContentFilter = !!parsedQuery?.content;
135
+ const hasPeopleFilter = !!parsedQuery?.people;
136
+ const hasFrameFilter = !!parsedQuery?.frame;
137
+ const filterCount = [
138
+ hasTimeFilter,
139
+ hasContentFilter,
140
+ hasPeopleFilter,
141
+ hasFrameFilter,
142
+ ].filter(Boolean).length;
143
+ if (wordCount <= 5 && filterCount <= 1)
144
+ return 'simple';
145
+ if (wordCount <= 15 && filterCount <= 2)
146
+ return 'moderate';
147
+ return 'complex';
148
+ }
149
+ generateReasoning(query, frames, summary, matchedPatterns) {
150
+ const parts = [];
151
+ parts.push(`Query: "${query}"`);
152
+ parts.push(`Analyzed ${summary.recentSession.frames.length} recent frames.`);
153
+ if (matchedPatterns.length > 0) {
154
+ parts.push(`Matched patterns: ${matchedPatterns.join(', ')}`);
155
+ }
156
+ if (frames.length > 0) {
157
+ parts.push(`Selected ${frames.length} frames for retrieval.`);
158
+ const topFrames = frames.slice(0, 3);
159
+ parts.push(`Top frames: ${topFrames.map((f) => `${f.frameId} (priority: ${f.priority})`).join(', ')}`);
160
+ }
161
+ else {
162
+ parts.push('No highly relevant frames found. Using general context.');
163
+ }
164
+ return parts.join(' ');
165
+ }
166
+ }
167
+ /**
168
+ * Main LLM Context Retrieval class
169
+ */
170
+ export class LLMContextRetrieval {
171
+ db;
172
+ frameManager;
173
+ summaryGenerator;
174
+ queryParser;
175
+ heuristicAnalyzer;
176
+ llmProvider;
177
+ config;
178
+ projectId;
179
+ constructor(db, frameManager, projectId, config = {}, llmProvider) {
180
+ this.db = db;
181
+ this.frameManager = frameManager;
182
+ this.projectId = projectId;
183
+ this.config = { ...DEFAULT_RETRIEVAL_CONFIG, ...config };
184
+ this.llmProvider = llmProvider;
185
+ this.summaryGenerator = new CompressedSummaryGenerator(db, frameManager, projectId, config);
186
+ this.queryParser = new QueryParser();
187
+ this.heuristicAnalyzer = new HeuristicAnalyzer();
188
+ }
189
+ /**
190
+ * Retrieve context based on query using LLM analysis
191
+ */
192
+ async retrieveContext(query, options = {}) {
193
+ const startTime = Date.now();
194
+ const tokenBudget = options.tokenBudget || this.config.defaultTokenBudget;
195
+ logger.info('Starting context retrieval', {
196
+ projectId: this.projectId,
197
+ query: query.substring(0, 100),
198
+ tokenBudget,
199
+ });
200
+ // 1. Parse the query
201
+ const parsedQuery = this.queryParser.parseNaturalLanguage(query);
202
+ // 2. Generate compressed summary
203
+ const summary = this.summaryGenerator.generateSummary({
204
+ forceRefresh: options.forceRefresh,
205
+ });
206
+ // 3. Perform LLM analysis
207
+ const analysis = await this.analyzeWithLLM({
208
+ currentQuery: query,
209
+ parsedQuery,
210
+ compressedSummary: summary,
211
+ tokenBudget,
212
+ hints: options.hints,
213
+ });
214
+ // 4. Retrieve frames based on analysis
215
+ const { frames, anchors, events, tokensUsed } = this.retrieveFrames(analysis, tokenBudget);
216
+ // 5. Assemble context string
217
+ const context = this.assembleContext(frames, anchors, events, analysis);
218
+ const metadata = {
219
+ retrievalTimeMs: Date.now() - startTime,
220
+ cacheHit: false, // Would need cache tracking
221
+ framesScanned: summary.recentSession.frames.length,
222
+ framesIncluded: frames.length,
223
+ compressionRatio: tokensUsed > 0 ? tokenBudget / tokensUsed : 1,
224
+ };
225
+ logger.info('Context retrieval complete', {
226
+ projectId: this.projectId,
227
+ framesIncluded: frames.length,
228
+ tokensUsed,
229
+ retrievalTimeMs: metadata.retrievalTimeMs,
230
+ confidence: analysis.confidenceScore,
231
+ });
232
+ return {
233
+ context,
234
+ frames,
235
+ anchors,
236
+ events,
237
+ analysis,
238
+ tokenUsage: {
239
+ budget: tokenBudget,
240
+ used: tokensUsed,
241
+ remaining: tokenBudget - tokensUsed,
242
+ },
243
+ metadata,
244
+ };
245
+ }
246
+ /**
247
+ * Perform LLM analysis or fall back to heuristics
248
+ */
249
+ async analyzeWithLLM(request) {
250
+ const startTime = Date.now();
251
+ // Try LLM analysis if provider is available
252
+ if (this.llmProvider) {
253
+ try {
254
+ const prompt = this.buildAnalysisPrompt(request);
255
+ const response = await this.llmProvider.analyze(prompt, this.config.llmConfig.maxTokens);
256
+ const analysis = this.parseAnalysisResponse(response, request);
257
+ analysis.metadata.analysisTimeMs = Date.now() - startTime;
258
+ analysis.metadata.fallbackUsed = false;
259
+ // Validate confidence threshold
260
+ if (analysis.confidenceScore >= this.config.minConfidenceThreshold) {
261
+ return analysis;
262
+ }
263
+ logger.warn('LLM confidence below threshold, using fallback', {
264
+ confidence: analysis.confidenceScore,
265
+ threshold: this.config.minConfidenceThreshold,
266
+ });
267
+ }
268
+ catch (error) {
269
+ logger.error('LLM analysis failed, using fallback', error instanceof Error ? error : new Error(String(error)));
270
+ }
271
+ }
272
+ // Fall back to heuristic analysis
273
+ if (this.config.enableFallback) {
274
+ const analysis = this.heuristicAnalyzer.analyze(request.currentQuery, request.compressedSummary, request.parsedQuery);
275
+ analysis.metadata.analysisTimeMs = Date.now() - startTime;
276
+ return analysis;
277
+ }
278
+ // Return empty analysis if no fallback
279
+ return {
280
+ reasoning: 'Unable to perform analysis - LLM unavailable and fallback disabled',
281
+ framesToRetrieve: [],
282
+ confidenceScore: 0,
283
+ recommendations: [],
284
+ metadata: {
285
+ analysisTimeMs: Date.now() - startTime,
286
+ summaryTokens: 0,
287
+ queryComplexity: 'simple',
288
+ matchedPatterns: [],
289
+ fallbackUsed: false,
290
+ },
291
+ };
292
+ }
293
+ /**
294
+ * Build the prompt for LLM analysis
295
+ */
296
+ buildAnalysisPrompt(request) {
297
+ const summary = request.compressedSummary;
298
+ return `You are analyzing a code project's memory to retrieve relevant context.
299
+
300
+ ## Current Query
301
+ "${request.currentQuery}"
302
+
303
+ ## Token Budget
304
+ ${request.tokenBudget} tokens available
305
+
306
+ ## Recent Session Summary
307
+ - Frames: ${summary.recentSession.frames.length}
308
+ - Time range: ${new Date(summary.recentSession.timeRange.start).toISOString()} to ${new Date(summary.recentSession.timeRange.end).toISOString()}
309
+ - Dominant operations: ${summary.recentSession.dominantOperations.map((o) => `${o.operation}(${o.count})`).join(', ')}
310
+ - Files touched: ${summary.recentSession.filesTouched
311
+ .slice(0, 5)
312
+ .map((f) => f.path)
313
+ .join(', ')}
314
+ - Errors: ${summary.recentSession.errorsEncountered.length}
315
+
316
+ ## Available Frames
317
+ ${summary.recentSession.frames
318
+ .slice(0, 15)
319
+ .map((f) => `- ${f.frameId}: "${f.name}" (${f.type}, score: ${f.score.toFixed(2)}, events: ${f.eventCount})`)
320
+ .join('\n')}
321
+
322
+ ## Key Decisions
323
+ ${summary.historicalPatterns.keyDecisions
324
+ .slice(0, 5)
325
+ .map((d) => `- ${d.text.substring(0, 80)}...`)
326
+ .join('\n')}
327
+
328
+ ## Task
329
+ Analyze the query and select the most relevant frames to retrieve.
330
+ Return a JSON object with:
331
+ {
332
+ "reasoning": "Your analysis of why these frames are relevant",
333
+ "framesToRetrieve": [
334
+ {"frameId": "...", "priority": 1-10, "reason": "...", "includeEvents": true/false, "includeAnchors": true/false}
335
+ ],
336
+ "confidenceScore": 0.0-1.0,
337
+ "recommendations": [{"type": "include/exclude/summarize", "target": "...", "reason": "...", "impact": "low/medium/high"}]
338
+ }
339
+
340
+ ${request.hints ? `\n## Hints\n${JSON.stringify(request.hints)}` : ''}
341
+
342
+ Respond with only the JSON object, no other text.`;
343
+ }
344
+ /**
345
+ * Parse LLM response into structured analysis
346
+ */
347
+ parseAnalysisResponse(response, request) {
348
+ try {
349
+ // Extract JSON from response (handle markdown code blocks)
350
+ let jsonStr = response;
351
+ const jsonMatch = response.match(/```(?:json)?\s*([\s\S]*?)```/);
352
+ if (jsonMatch) {
353
+ jsonStr = jsonMatch[1];
354
+ }
355
+ const parsed = JSON.parse(jsonStr.trim());
356
+ // Validate and normalize the response
357
+ return {
358
+ reasoning: parsed.reasoning || 'No reasoning provided',
359
+ framesToRetrieve: (parsed.framesToRetrieve || []).map((f) => ({
360
+ frameId: f.frameId,
361
+ priority: Math.min(10, Math.max(1, f.priority || 5)),
362
+ reason: f.reason || 'Selected by LLM',
363
+ includeEvents: f.includeEvents ?? true,
364
+ includeAnchors: f.includeAnchors ?? true,
365
+ includeDigest: f.includeDigest ?? true,
366
+ estimatedTokens: f.estimatedTokens || 100,
367
+ })),
368
+ confidenceScore: Math.min(1, Math.max(0, parsed.confidenceScore || 0.5)),
369
+ recommendations: (parsed.recommendations || []).map((r) => ({
370
+ type: r.type || 'include',
371
+ target: r.target || '',
372
+ reason: r.reason || '',
373
+ impact: r.impact || 'medium',
374
+ })),
375
+ metadata: {
376
+ analysisTimeMs: 0,
377
+ summaryTokens: Math.floor(JSON.stringify(request.compressedSummary).length / 4),
378
+ queryComplexity: this.assessQueryComplexity(request.currentQuery),
379
+ matchedPatterns: [],
380
+ fallbackUsed: false,
381
+ },
382
+ };
383
+ }
384
+ catch (error) {
385
+ logger.warn('Failed to parse LLM response, using fallback', {
386
+ error,
387
+ response,
388
+ });
389
+ return this.heuristicAnalyzer.analyze(request.currentQuery, request.compressedSummary, request.parsedQuery);
390
+ }
391
+ }
392
+ assessQueryComplexity(query) {
393
+ const wordCount = query.split(/\s+/).length;
394
+ if (wordCount <= 5)
395
+ return 'simple';
396
+ if (wordCount <= 15)
397
+ return 'moderate';
398
+ return 'complex';
399
+ }
400
+ /**
401
+ * Retrieve frames based on analysis
402
+ */
403
+ retrieveFrames(analysis, tokenBudget) {
404
+ const frames = [];
405
+ const anchors = [];
406
+ const events = [];
407
+ let tokensUsed = 0;
408
+ // Retrieve frames in priority order within budget
409
+ for (const plan of analysis.framesToRetrieve) {
410
+ if (tokensUsed + plan.estimatedTokens > tokenBudget) {
411
+ logger.debug('Token budget exceeded, stopping retrieval', {
412
+ tokensUsed,
413
+ budget: tokenBudget,
414
+ });
415
+ break;
416
+ }
417
+ const frame = this.frameManager.getFrame(plan.frameId);
418
+ if (!frame)
419
+ continue;
420
+ frames.push(frame);
421
+ tokensUsed += 50; // Base frame tokens
422
+ // Include anchors if requested
423
+ if (plan.includeAnchors) {
424
+ const frameAnchors = this.getFrameAnchors(plan.frameId);
425
+ anchors.push(...frameAnchors);
426
+ tokensUsed += frameAnchors.length * 40;
427
+ }
428
+ // Include events if requested
429
+ if (plan.includeEvents) {
430
+ const frameEvents = this.frameManager.getFrameEvents(plan.frameId, 10);
431
+ events.push(...frameEvents);
432
+ tokensUsed += frameEvents.length * 30;
433
+ }
434
+ }
435
+ return { frames, anchors, events, tokensUsed };
436
+ }
437
+ getFrameAnchors(frameId) {
438
+ try {
439
+ const rows = this.db
440
+ .prepare(`
441
+ SELECT * FROM anchors WHERE frame_id = ?
442
+ ORDER BY priority DESC, created_at DESC
443
+ `)
444
+ .all(frameId);
445
+ return rows.map((row) => ({
446
+ ...row,
447
+ metadata: JSON.parse(row.metadata || '{}'),
448
+ }));
449
+ }
450
+ catch {
451
+ return [];
452
+ }
453
+ }
454
+ /**
455
+ * Assemble final context string
456
+ */
457
+ assembleContext(frames, anchors, events, analysis) {
458
+ const sections = [];
459
+ // Add retrieval reasoning (auditable)
460
+ sections.push('## Context Retrieval Analysis');
461
+ sections.push(`*Confidence: ${(analysis.confidenceScore * 100).toFixed(0)}%*`);
462
+ sections.push(analysis.reasoning);
463
+ sections.push('');
464
+ // Add frames
465
+ if (frames.length > 0) {
466
+ sections.push('## Relevant Frames');
467
+ for (const frame of frames) {
468
+ sections.push(`### ${frame.name} (${frame.type})`);
469
+ if (frame.digest_text) {
470
+ sections.push(frame.digest_text);
471
+ }
472
+ sections.push('');
473
+ }
474
+ }
475
+ // Add key anchors
476
+ const decisions = anchors.filter((a) => a.type === 'DECISION');
477
+ const constraints = anchors.filter((a) => a.type === 'CONSTRAINT');
478
+ const facts = anchors.filter((a) => a.type === 'FACT');
479
+ if (decisions.length > 0) {
480
+ sections.push('## Key Decisions');
481
+ for (const d of decisions.slice(0, 5)) {
482
+ sections.push(`- ${d.text}`);
483
+ }
484
+ sections.push('');
485
+ }
486
+ if (constraints.length > 0) {
487
+ sections.push('## Active Constraints');
488
+ for (const c of constraints.slice(0, 5)) {
489
+ sections.push(`- ${c.text}`);
490
+ }
491
+ sections.push('');
492
+ }
493
+ if (facts.length > 0) {
494
+ sections.push('## Important Facts');
495
+ for (const f of facts.slice(0, 5)) {
496
+ sections.push(`- ${f.text}`);
497
+ }
498
+ sections.push('');
499
+ }
500
+ // Add recent events summary
501
+ if (events.length > 0) {
502
+ sections.push('## Recent Activity');
503
+ const eventSummary = this.summarizeEvents(events);
504
+ sections.push(eventSummary);
505
+ sections.push('');
506
+ }
507
+ // Add recommendations
508
+ if (analysis.recommendations.length > 0) {
509
+ sections.push('## Recommendations');
510
+ for (const rec of analysis.recommendations) {
511
+ const icon = rec.type === 'include' ? '+' : rec.type === 'exclude' ? '-' : '~';
512
+ sections.push(`${icon} [${rec.impact.toUpperCase()}] ${rec.reason}`);
513
+ }
514
+ }
515
+ return sections.join('\n');
516
+ }
517
+ summarizeEvents(events) {
518
+ const byType = {};
519
+ for (const event of events) {
520
+ byType[event.event_type] = (byType[event.event_type] || 0) + 1;
521
+ }
522
+ return Object.entries(byType)
523
+ .map(([type, count]) => `- ${type}: ${count} occurrences`)
524
+ .join('\n');
525
+ }
526
+ /**
527
+ * Get just the compressed summary (useful for external analysis)
528
+ */
529
+ getSummary(forceRefresh = false) {
530
+ return this.summaryGenerator.generateSummary({ forceRefresh });
531
+ }
532
+ /**
533
+ * Set LLM provider
534
+ */
535
+ setLLMProvider(provider) {
536
+ this.llmProvider = provider;
537
+ }
538
+ /**
539
+ * Clear caches
540
+ */
541
+ clearCache() {
542
+ this.summaryGenerator.clearCache();
543
+ }
544
+ }
545
+ //# sourceMappingURL=llm-context-retrieval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-context-retrieval.js","sourceRoot":"","sources":["../../../../src/core/retrieval/llm-context-retrieval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Compressed Summary Generator
3
+ * Creates compact summaries of project memory for LLM analysis
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ import { FrameManager } from '../context/frame-manager.js';
7
+ import { TraceDetector } from '../trace/trace-detector.js';
8
+ import { CompressedSummary, RetrievalConfig } from './types.js';
9
+ export declare class CompressedSummaryGenerator {
10
+ private db;
11
+ private frameManager;
12
+ private traceDetector?;
13
+ private projectId;
14
+ private config;
15
+ private cache;
16
+ constructor(db: Database.Database, frameManager: FrameManager, projectId: string, config?: Partial<RetrievalConfig>, traceDetector?: TraceDetector);
17
+ /**
18
+ * Generate a compressed summary for LLM analysis
19
+ */
20
+ generateSummary(options?: {
21
+ maxFrames?: number;
22
+ timeRangeHours?: number;
23
+ forceRefresh?: boolean;
24
+ }): CompressedSummary;
25
+ /**
26
+ * Generate recent session summary
27
+ */
28
+ private generateRecentSessionSummary;
29
+ /**
30
+ * Generate historical patterns
31
+ */
32
+ private generateHistoricalPatterns;
33
+ /**
34
+ * Generate queryable indices
35
+ */
36
+ private generateQueryableIndices;
37
+ /**
38
+ * Generate summary statistics
39
+ */
40
+ private generateStats;
41
+ private getRecentFrames;
42
+ private summarizeFrame;
43
+ private calculateFrameScore;
44
+ private getDominantOperations;
45
+ private getFilesTouched;
46
+ private getErrorsEncountered;
47
+ private getTopicFrameCounts;
48
+ private getKeyDecisions;
49
+ private getRecurringIssues;
50
+ private getCommonToolSequences;
51
+ private getActivityPatterns;
52
+ private indexByErrorType;
53
+ private indexByTimeframe;
54
+ private indexByContributor;
55
+ private indexByTopic;
56
+ private indexByFile;
57
+ private extractKeywords;
58
+ /**
59
+ * Clear the cache
60
+ */
61
+ clearCache(): void;
62
+ }
63
+ //# sourceMappingURL=summary-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-generator.d.ts","sourceRoot":"","sources":["../../../../src/core/retrieval/summary-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,YAAY,EAIb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,iBAAiB,EAajB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAGpB,qBAAa,0BAA0B;IACrC,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAGC;gBAGZ,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,aAAa,CAAC,EAAE,aAAa;IAS/B;;OAEG;IACI,eAAe,CACpB,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KACnB,GACL,iBAAiB;IAiDpB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAwCpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACH,OAAO,CAAC,aAAa;IA6ErB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IA+B7B,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACI,UAAU,IAAI,IAAI;CAI1B"}