@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,54 @@
1
+ /**
2
+ * Test the trace detection integration with MCP server
3
+ */
4
+ import LocalStackMemoryMCP from './server';
5
+ async function testTraceIntegration() {
6
+ console.log('🧪 Testing Trace Detection in MCP Server\n');
7
+ // Mock minimal server setup
8
+ const mockServer = {
9
+ setRequestHandler: () => { },
10
+ connect: () => Promise.resolve(),
11
+ };
12
+ // Access the private methods through prototype
13
+ const MCPClass = LocalStackMemoryMCP;
14
+ const mcp = new MCPClass();
15
+ // Simulate tool calls directly on the trace detector
16
+ console.log('📋 Simulating tool calls:');
17
+ // Simulate a search-driven trace
18
+ const baseTime = Date.now();
19
+ mcp.traceDetector.addToolCall({
20
+ id: '1',
21
+ tool: 'get_context',
22
+ timestamp: baseTime,
23
+ arguments: { query: 'authentication' },
24
+ });
25
+ console.log(' ✓ Added get_context');
26
+ mcp.traceDetector.addToolCall({
27
+ id: '2',
28
+ tool: 'add_decision',
29
+ timestamp: baseTime + 1000,
30
+ arguments: { content: 'Use JWT tokens', type: 'decision' },
31
+ });
32
+ console.log(' ✓ Added add_decision');
33
+ mcp.traceDetector.addToolCall({
34
+ id: '3',
35
+ tool: 'start_frame',
36
+ timestamp: baseTime + 2000,
37
+ arguments: { name: 'implement-auth' },
38
+ });
39
+ console.log(' ✓ Added start_frame');
40
+ // Flush traces
41
+ mcp.traceDetector.flush();
42
+ // Get statistics
43
+ const stats = await mcp.handleGetTraceStatistics({});
44
+ console.log('\n📊 Trace Statistics:');
45
+ console.log(stats.content[0].text);
46
+ // Get traces
47
+ const traces = await mcp.handleGetTraces({ limit: 10 });
48
+ console.log('\n📝 Detected Traces:');
49
+ console.log(traces.content[0].text);
50
+ console.log('\n✅ MCP Trace Integration Test Complete!');
51
+ }
52
+ // Run the test
53
+ testTraceIntegration().catch(console.error);
54
+ //# sourceMappingURL=trace-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-test.js","sourceRoot":"","sources":["../../../../src/integrations/mcp/trace-test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,mBAAmB,MAAM,UAAU,CAAC;AAG3C,KAAK,UAAU,oBAAoB;IACjC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1D,4BAA4B;IAC5B,MAAM,UAAU,GAAG;QACjB,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;KAC1B,CAAC;IAET,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,mBAA0B,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;IAE3B,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;KACvC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,QAAQ,GAAG,IAAI;QAC1B,SAAS,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE;KAC3D,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,QAAQ,GAAG,IAAI;QAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;KACtC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,eAAe;IACf,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAE1B,iBAAiB;IACjB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEnC,aAAa;IACb,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAC1D,CAAC;AAED,eAAe;AACf,oBAAoB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ export interface EmbeddingProvider {
2
+ createEmbedding(text: string): Promise<number[]>;
3
+ getDimensions(): number;
4
+ getName(): string;
5
+ }
6
+ /**
7
+ * OpenAI Embeddings Provider
8
+ * Requires OPENAI_API_KEY environment variable
9
+ */
10
+ export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
11
+ private apiKey;
12
+ private model;
13
+ private dimensions;
14
+ constructor(model?: string);
15
+ createEmbedding(text: string): Promise<number[]>;
16
+ getDimensions(): number;
17
+ getName(): string;
18
+ }
19
+ /**
20
+ * Local Embeddings Provider using simple TF-IDF-like approach
21
+ * Deterministic and doesn't require external APIs
22
+ */
23
+ export declare class LocalEmbeddingProvider implements EmbeddingProvider {
24
+ private dimensions;
25
+ private vocabulary;
26
+ private idf;
27
+ private documentCount;
28
+ constructor(dimensions?: number);
29
+ private tokenize;
30
+ private getWordVector;
31
+ createEmbedding(text: string): Promise<number[]>;
32
+ getDimensions(): number;
33
+ getName(): string;
34
+ }
35
+ /**
36
+ * Hybrid provider that tries OpenAI first, falls back to local
37
+ */
38
+ export declare class HybridEmbeddingProvider implements EmbeddingProvider {
39
+ private openai;
40
+ private local;
41
+ private useOpenAI;
42
+ constructor(dimensions?: number);
43
+ createEmbedding(text: string): Promise<number[]>;
44
+ getDimensions(): number;
45
+ getName(): string;
46
+ }
47
+ export declare function createEmbeddingProvider(type?: 'openai' | 'local' | 'hybrid'): EmbeddingProvider;
48
+ //# sourceMappingURL=embedding-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../../../src/integrations/pg-aiguide/embedding-provider.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,aAAa,IAAI,MAAM,CAAC;IACxB,OAAO,IAAI,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;gBAEf,KAAK,SAA2B;IAMtC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmCtD,aAAa,IAAI,MAAM;IAIvB,OAAO,IAAI,MAAM;CAGlB;AAED;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,aAAa,CAAK;gBAEd,UAAU,SAAM;IAI5B,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,aAAa;IAcf,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwDtD,aAAa,IAAI,MAAM;IAIvB,OAAO,IAAI,MAAM;CAGlB;AAED;;GAEG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,SAAS,CAAU;gBAEf,UAAU,SAAO;IAUvB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0BtD,aAAa,IAAI,MAAM;IAMvB,OAAO,IAAI,MAAM;CAKlB;AAGD,wBAAgB,uBAAuB,CACrC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GACnC,iBAAiB,CAUnB"}
@@ -0,0 +1,190 @@
1
+ import { logger } from '../../core/monitoring/logger.js';
2
+ import crypto from 'crypto';
3
+ /**
4
+ * OpenAI Embeddings Provider
5
+ * Requires OPENAI_API_KEY environment variable
6
+ */
7
+ export class OpenAIEmbeddingProvider {
8
+ apiKey;
9
+ model;
10
+ dimensions;
11
+ constructor(model = 'text-embedding-ada-002') {
12
+ this.apiKey = process.env.OPENAI_API_KEY;
13
+ this.model = model;
14
+ this.dimensions = model === 'text-embedding-ada-002' ? 1536 : 3072; // ada-002 vs text-embedding-3-small
15
+ }
16
+ async createEmbedding(text) {
17
+ if (!this.apiKey) {
18
+ throw new Error('OPENAI_API_KEY environment variable is not set');
19
+ }
20
+ try {
21
+ const response = await fetch('https://api.openai.com/v1/embeddings', {
22
+ method: 'POST',
23
+ headers: {
24
+ 'Content-Type': 'application/json',
25
+ Authorization: `Bearer ${this.apiKey}`,
26
+ },
27
+ body: JSON.stringify({
28
+ input: text,
29
+ model: this.model,
30
+ }),
31
+ });
32
+ if (!response.ok) {
33
+ throw new Error(`OpenAI API error: ${response.statusText}`);
34
+ }
35
+ const data = (await response.json());
36
+ return data.data[0].embedding;
37
+ }
38
+ catch (error) {
39
+ logger.error('Failed to create OpenAI embedding', error instanceof Error ? error : new Error(String(error)));
40
+ throw error;
41
+ }
42
+ }
43
+ getDimensions() {
44
+ return this.dimensions;
45
+ }
46
+ getName() {
47
+ return `OpenAI-${this.model}`;
48
+ }
49
+ }
50
+ /**
51
+ * Local Embeddings Provider using simple TF-IDF-like approach
52
+ * Deterministic and doesn't require external APIs
53
+ */
54
+ export class LocalEmbeddingProvider {
55
+ dimensions;
56
+ vocabulary = new Map();
57
+ idf = new Map();
58
+ documentCount = 0;
59
+ constructor(dimensions = 384) {
60
+ this.dimensions = dimensions;
61
+ }
62
+ tokenize(text) {
63
+ return text
64
+ .toLowerCase()
65
+ .replace(/[^\w\s]/g, ' ')
66
+ .split(/\s+/)
67
+ .filter((token) => token.length > 2);
68
+ }
69
+ getWordVector(word) {
70
+ // Use deterministic hashing to create a vector for each word
71
+ const hash = crypto.createHash('sha256').update(word).digest();
72
+ const vector = new Array(this.dimensions).fill(0);
73
+ // Use hash bytes to set vector components
74
+ for (let i = 0; i < Math.min(hash.length, this.dimensions); i++) {
75
+ const value = (hash[i] - 128) / 128; // Normalize to [-1, 1]
76
+ vector[i] = value;
77
+ }
78
+ return vector;
79
+ }
80
+ async createEmbedding(text) {
81
+ const tokens = this.tokenize(text);
82
+ const vector = new Array(this.dimensions).fill(0);
83
+ if (tokens.length === 0) {
84
+ return vector;
85
+ }
86
+ // Calculate TF-IDF weighted average of word vectors
87
+ const termFreq = new Map();
88
+ // Count term frequencies
89
+ for (const token of tokens) {
90
+ termFreq.set(token, (termFreq.get(token) || 0) + 1);
91
+ }
92
+ // Build vocabulary and update document frequency
93
+ this.documentCount++;
94
+ for (const token of new Set(tokens)) {
95
+ if (!this.vocabulary.has(token)) {
96
+ this.vocabulary.set(token, this.vocabulary.size);
97
+ }
98
+ this.idf.set(token, (this.idf.get(token) || 0) + 1);
99
+ }
100
+ // Calculate weighted vector
101
+ let totalWeight = 0;
102
+ for (const [token, freq] of termFreq.entries()) {
103
+ const tf = freq / tokens.length;
104
+ const docFreq = this.idf.get(token) || 1;
105
+ const idf = Math.log((this.documentCount + 1) / (docFreq + 1));
106
+ const weight = tf * idf;
107
+ const wordVector = this.getWordVector(token);
108
+ for (let i = 0; i < this.dimensions; i++) {
109
+ vector[i] += wordVector[i] * weight;
110
+ }
111
+ totalWeight += weight;
112
+ }
113
+ // Normalize the vector
114
+ if (totalWeight > 0) {
115
+ const magnitude = Math.sqrt(vector.reduce((sum, val) => sum + val * val, 0));
116
+ if (magnitude > 0) {
117
+ for (let i = 0; i < this.dimensions; i++) {
118
+ vector[i] /= magnitude;
119
+ }
120
+ }
121
+ }
122
+ return vector;
123
+ }
124
+ getDimensions() {
125
+ return this.dimensions;
126
+ }
127
+ getName() {
128
+ return 'Local-TFIDF';
129
+ }
130
+ }
131
+ /**
132
+ * Hybrid provider that tries OpenAI first, falls back to local
133
+ */
134
+ export class HybridEmbeddingProvider {
135
+ openai;
136
+ local;
137
+ useOpenAI;
138
+ constructor(dimensions = 1536) {
139
+ this.openai = new OpenAIEmbeddingProvider();
140
+ this.local = new LocalEmbeddingProvider(dimensions);
141
+ this.useOpenAI = !!process.env.OPENAI_API_KEY;
142
+ if (!this.useOpenAI) {
143
+ logger.warn('OPENAI_API_KEY not set, using local embeddings');
144
+ }
145
+ }
146
+ async createEmbedding(text) {
147
+ if (this.useOpenAI) {
148
+ try {
149
+ return await this.openai.createEmbedding(text);
150
+ }
151
+ catch (error) {
152
+ logger.warn('OpenAI embedding failed, falling back to local', error instanceof Error ? error : undefined);
153
+ this.useOpenAI = false; // Disable for future calls
154
+ }
155
+ }
156
+ const localEmbedding = await this.local.createEmbedding(text);
157
+ // Pad or truncate to match expected dimensions
158
+ const targetDimensions = this.getDimensions();
159
+ if (localEmbedding.length < targetDimensions) {
160
+ return [
161
+ ...localEmbedding,
162
+ ...new Array(targetDimensions - localEmbedding.length).fill(0),
163
+ ];
164
+ }
165
+ return localEmbedding.slice(0, targetDimensions);
166
+ }
167
+ getDimensions() {
168
+ return this.useOpenAI
169
+ ? this.openai.getDimensions()
170
+ : this.local.getDimensions();
171
+ }
172
+ getName() {
173
+ return this.useOpenAI
174
+ ? this.openai.getName()
175
+ : `Hybrid-${this.local.getName()}`;
176
+ }
177
+ }
178
+ // Factory function
179
+ export function createEmbeddingProvider(type) {
180
+ switch (type) {
181
+ case 'openai':
182
+ return new OpenAIEmbeddingProvider();
183
+ case 'local':
184
+ return new LocalEmbeddingProvider();
185
+ case 'hybrid':
186
+ default:
187
+ return new HybridEmbeddingProvider();
188
+ }
189
+ }
190
+ //# sourceMappingURL=embedding-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.js","sourceRoot":"","sources":["../../../../src/integrations/pg-aiguide/embedding-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { Pool } from 'pg';
2
+ import { EmbeddingProvider } from './embedding-provider.js';
3
+ export interface SemanticSearchConfig {
4
+ pool: Pool;
5
+ tableName: string;
6
+ embeddingColumn: string;
7
+ contentColumn: string;
8
+ vectorDimensions: number;
9
+ embeddingProvider?: EmbeddingProvider;
10
+ }
11
+ export interface SearchResult {
12
+ id: string;
13
+ content: string;
14
+ similarity: number;
15
+ metadata?: Record<string, any>;
16
+ }
17
+ export declare class SemanticSearch {
18
+ private pool;
19
+ private config;
20
+ private embeddingProvider;
21
+ constructor(config: SemanticSearchConfig);
22
+ createEmbedding(text: string): Promise<number[]>;
23
+ indexContent(id: string, content: string, metadata?: Record<string, any>): Promise<void>;
24
+ search(query: string, limit?: number, threshold?: number): Promise<SearchResult[]>;
25
+ findSimilar(id: string, limit?: number): Promise<SearchResult[]>;
26
+ cluster(k: number, maxIterations?: number): Promise<Map<number, SearchResult[]>>;
27
+ reindex(): Promise<void>;
28
+ getStats(): Promise<{
29
+ totalDocuments: number;
30
+ avgSimilarity: number;
31
+ indexSize: string;
32
+ }>;
33
+ }
34
+ //# sourceMappingURL=semantic-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../../../src/integrations/pg-aiguide/semantic-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,OAAO,EACL,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,MAAM,EAAE,oBAAoB;IAgBlC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhD,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAoBV,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,EACV,SAAS,SAAM,GACd,OAAO,CAAC,YAAY,EAAE,CAAC;IA6BpB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA4B5D,OAAO,CACX,CAAC,EAAE,MAAM,EACT,aAAa,SAAK,GACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAmCjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBxB,QAAQ,IAAI,OAAO,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAyBH"}
@@ -0,0 +1,154 @@
1
+ import { logger } from '../../core/monitoring/logger.js';
2
+ import { createEmbeddingProvider, } from './embedding-provider.js';
3
+ export class SemanticSearch {
4
+ pool;
5
+ config;
6
+ embeddingProvider;
7
+ constructor(config) {
8
+ this.pool = config.pool;
9
+ this.config = config;
10
+ this.embeddingProvider =
11
+ config.embeddingProvider || createEmbeddingProvider('hybrid');
12
+ // Verify dimensions match
13
+ if (this.embeddingProvider.getDimensions() !== config.vectorDimensions) {
14
+ logger.warn(`Embedding provider dimensions (${this.embeddingProvider.getDimensions()}) ` +
15
+ `don't match config (${config.vectorDimensions}). Using provider dimensions.`);
16
+ this.config.vectorDimensions = this.embeddingProvider.getDimensions();
17
+ }
18
+ }
19
+ async createEmbedding(text) {
20
+ return this.embeddingProvider.createEmbedding(text);
21
+ }
22
+ async indexContent(id, content, metadata) {
23
+ const embedding = await this.createEmbedding(content);
24
+ const query = `
25
+ INSERT INTO ${this.config.tableName} (id, ${this.config.contentColumn}, ${this.config.embeddingColumn}, metadata)
26
+ VALUES ($1, $2, $3, $4)
27
+ ON CONFLICT (id) DO UPDATE
28
+ SET ${this.config.contentColumn} = $2,
29
+ ${this.config.embeddingColumn} = $3,
30
+ metadata = $4
31
+ `;
32
+ await this.pool.query(query, [
33
+ id,
34
+ content,
35
+ `[${embedding.join(',')}]`,
36
+ metadata ? JSON.stringify(metadata) : null,
37
+ ]);
38
+ }
39
+ async search(query, limit = 10, threshold = 0.7) {
40
+ const queryEmbedding = await this.createEmbedding(query);
41
+ const searchQuery = `
42
+ SELECT
43
+ id,
44
+ ${this.config.contentColumn} as content,
45
+ metadata,
46
+ 1 - (${this.config.embeddingColumn} <=> $1::vector) as similarity
47
+ FROM ${this.config.tableName}
48
+ WHERE 1 - (${this.config.embeddingColumn} <=> $1::vector) > $2
49
+ ORDER BY ${this.config.embeddingColumn} <=> $1::vector
50
+ LIMIT $3
51
+ `;
52
+ const result = await this.pool.query(searchQuery, [
53
+ `[${queryEmbedding.join(',')}]`,
54
+ threshold,
55
+ limit,
56
+ ]);
57
+ return result.rows.map((row) => ({
58
+ id: row.id,
59
+ content: row.content,
60
+ similarity: row.similarity,
61
+ metadata: row.metadata,
62
+ }));
63
+ }
64
+ async findSimilar(id, limit = 10) {
65
+ const query = `
66
+ WITH target AS (
67
+ SELECT ${this.config.embeddingColumn} as embedding
68
+ FROM ${this.config.tableName}
69
+ WHERE id = $1
70
+ )
71
+ SELECT
72
+ t.id,
73
+ t.${this.config.contentColumn} as content,
74
+ t.metadata,
75
+ 1 - (t.${this.config.embeddingColumn} <=> target.embedding) as similarity
76
+ FROM ${this.config.tableName} t, target
77
+ WHERE t.id != $1
78
+ ORDER BY t.${this.config.embeddingColumn} <=> target.embedding
79
+ LIMIT $2
80
+ `;
81
+ const result = await this.pool.query(query, [id, limit]);
82
+ return result.rows.map((row) => ({
83
+ id: row.id,
84
+ content: row.content,
85
+ similarity: row.similarity,
86
+ metadata: row.metadata,
87
+ }));
88
+ }
89
+ async cluster(k, maxIterations = 10) {
90
+ // K-means clustering using pgvector
91
+ const query = `
92
+ WITH clusters AS (
93
+ SELECT
94
+ id,
95
+ ${this.config.contentColumn} as content,
96
+ metadata,
97
+ kmeans(${this.config.embeddingColumn}, $1, $2) OVER () as cluster_id
98
+ FROM ${this.config.tableName}
99
+ )
100
+ SELECT * FROM clusters ORDER BY cluster_id
101
+ `;
102
+ const result = await this.pool.query(query, [k, maxIterations]);
103
+ const clusterMap = new Map();
104
+ for (const row of result.rows) {
105
+ const clusterId = row.cluster_id;
106
+ if (!clusterMap.has(clusterId)) {
107
+ clusterMap.set(clusterId, []);
108
+ }
109
+ clusterMap.get(clusterId).push({
110
+ id: row.id,
111
+ content: row.content,
112
+ similarity: 1.0, // Cluster membership
113
+ metadata: row.metadata,
114
+ });
115
+ }
116
+ return clusterMap;
117
+ }
118
+ async reindex() {
119
+ // Rebuild the IVFFlat index for better performance
120
+ const query = `REINDEX INDEX CONCURRENTLY idx_${this.config.tableName}_embedding`;
121
+ try {
122
+ await this.pool.query(query);
123
+ logger.info(`Reindexed ${this.config.tableName} embeddings`);
124
+ }
125
+ catch (error) {
126
+ logger.error('Failed to reindex embeddings', error instanceof Error ? error : undefined);
127
+ throw error;
128
+ }
129
+ }
130
+ async getStats() {
131
+ const statsQuery = `
132
+ SELECT
133
+ COUNT(*) as total,
134
+ AVG(
135
+ 1 - (${this.config.embeddingColumn} <=> (
136
+ SELECT AVG(${this.config.embeddingColumn})::vector
137
+ FROM ${this.config.tableName}
138
+ ))
139
+ ) as avg_similarity,
140
+ pg_size_pretty(
141
+ pg_relation_size('idx_${this.config.tableName}_embedding')
142
+ ) as index_size
143
+ FROM ${this.config.tableName}
144
+ `;
145
+ const result = await this.pool.query(statsQuery);
146
+ const row = result.rows[0];
147
+ return {
148
+ totalDocuments: parseInt(row.total),
149
+ avgSimilarity: parseFloat(row.avg_similarity) || 0,
150
+ indexSize: row.index_size || '0 bytes',
151
+ };
152
+ }
153
+ }
154
+ //# sourceMappingURL=semantic-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../../../src/integrations/pg-aiguide/semantic-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAEL,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAkBjC,MAAM,OAAO,cAAc;IACjB,IAAI,CAAO;IACX,MAAM,CAAuB;IAC7B,iBAAiB,CAAoB;IAE7C,YAAY,MAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB;YACpB,MAAM,CAAC,iBAAiB,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAEhE,0BAA0B;QAC1B,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CACT,kCAAkC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI;gBAC1E,uBAAuB,MAAM,CAAC,gBAAgB,+BAA+B,CAChF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,EAAU,EACV,OAAe,EACf,QAA8B;QAE9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG;oBACE,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,CAAC,eAAe;;;YAG/F,IAAI,CAAC,MAAM,CAAC,aAAa;YACzB,IAAI,CAAC,MAAM,CAAC,eAAe;;KAElC,CAAC;QAEF,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAC3B,EAAE;YACF,OAAO;YACP,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YAC1B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,GAAG;QAEf,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG;;;UAGd,IAAI,CAAC,MAAM,CAAC,aAAa;;eAEpB,IAAI,CAAC,MAAM,CAAC,eAAe;aAC7B,IAAI,CAAC,MAAM,CAAC,SAAS;mBACf,IAAI,CAAC,MAAM,CAAC,eAAe;iBAC7B,IAAI,CAAC,MAAM,CAAC,eAAe;;KAEvC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAChD,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YAC/B,SAAS;YACT,KAAK;SACN,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,KAAK,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG;;iBAED,IAAI,CAAC,MAAM,CAAC,eAAe;eAC7B,IAAI,CAAC,MAAM,CAAC,SAAS;;;;;YAKxB,IAAI,CAAC,MAAM,CAAC,aAAa;;iBAEpB,IAAI,CAAC,MAAM,CAAC,eAAe;aAC/B,IAAI,CAAC,MAAM,CAAC,SAAS;;mBAEf,IAAI,CAAC,MAAM,CAAC,eAAe;;KAEzC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CACX,CAAS,EACT,aAAa,GAAG,EAAE;QAElB,oCAAoC;QACpC,MAAM,KAAK,GAAG;;;;YAIN,IAAI,CAAC,MAAM,CAAC,aAAa;;mBAElB,IAAI,CAAC,MAAM,CAAC,eAAe;eAC/B,IAAI,CAAC,MAAM,CAAC,SAAS;;;KAG/B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAEhE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC;gBAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,GAAG,EAAE,qBAAqB;gBACtC,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,mDAAmD;QACnD,MAAM,KAAK,GAAG,kCAAkC,IAAI,CAAC,MAAM,CAAC,SAAS,YAAY,CAAC;QAElF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,aAAa,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,8BAA8B,EAC9B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QAKZ,MAAM,UAAU,GAAG;;;;iBAIN,IAAI,CAAC,MAAM,CAAC,eAAe;yBACnB,IAAI,CAAC,MAAM,CAAC,eAAe;mBACjC,IAAI,CAAC,MAAM,CAAC,SAAS;;;;kCAIN,IAAI,CAAC,MAAM,CAAC,SAAS;;aAE1C,IAAI,CAAC,MAAM,CAAC,SAAS;KAC7B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,GAAG,GAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhC,OAAO;YACL,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YACnC,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC;YAClD,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;SACvC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ import { Pool } from 'pg';
2
+ export interface TimeSeriesConfig {
3
+ pool: Pool;
4
+ tableName: string;
5
+ timeColumn: string;
6
+ valueColumns: string[];
7
+ }
8
+ export interface TimeSeriesData {
9
+ timestamp: Date;
10
+ values: Record<string, any>;
11
+ metadata?: Record<string, any>;
12
+ }
13
+ export interface AggregateResult {
14
+ period: Date;
15
+ count: number;
16
+ avg: Record<string, number>;
17
+ min: Record<string, number>;
18
+ max: Record<string, number>;
19
+ sum: Record<string, number>;
20
+ }
21
+ export declare class TimescaleAnalytics {
22
+ private pool;
23
+ private config;
24
+ constructor(config: TimeSeriesConfig);
25
+ createContinuousAggregate(name: string, interval: string, columns: string[]): Promise<void>;
26
+ getTimeSeries(startTime: Date, endTime: Date, interval: string, columns?: string[]): Promise<AggregateResult[]>;
27
+ detectAnomalies(column: string, sensitivity?: number, lookback?: string): Promise<TimeSeriesData[]>;
28
+ forecast(column: string, periods: number, method?: 'linear' | 'seasonal'): Promise<TimeSeriesData[]>;
29
+ getRetentionPolicy(): Promise<{
30
+ tableName: string;
31
+ retentionPeriod: string;
32
+ isEnabled: boolean;
33
+ }[]>;
34
+ setRetentionPolicy(retentionPeriod: string): Promise<void>;
35
+ compress(olderThan: string): Promise<void>;
36
+ getChunkStats(): Promise<{
37
+ totalChunks: number;
38
+ compressedChunks: number;
39
+ totalSize: string;
40
+ compressedSize: string;
41
+ compressionRatio: number;
42
+ }>;
43
+ }
44
+ //# sourceMappingURL=timescale-analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timescale-analytics.d.ts","sourceRoot":"","sources":["../../../../src/integrations/pg-aiguide/timescale-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG1B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IAK9B,yBAAyB,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC;IAuCV,aAAa,CACjB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,eAAe,EAAE,CAAC;IAoDvB,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,WAAW,SAAM,EACjB,QAAQ,SAAW,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;IAgCtB,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,QAAQ,GAAG,UAAqB,GACvC,OAAO,CAAC,cAAc,EAAE,CAAC;IAqCtB,kBAAkB,IAAI,OAAO,CACjC;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;KACpB,EAAE,CACJ;IAmBK,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1C,aAAa,IAAI,OAAO,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CA2BH"}