@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
@@ -1,268 +0,0 @@
1
- /**
2
- * Linear Auto-Sync Service
3
- * Background service for automatic bidirectional synchronization
4
- */
5
- import { logger } from '../core/logger.js';
6
- import { PebblesTaskStore } from '../pebbles/pebbles-task-store.js';
7
- import { LinearAuthManager } from './linear-auth.js';
8
- import { LinearSyncEngine, DEFAULT_SYNC_CONFIG, } from './linear-sync.js';
9
- import { LinearConfigManager } from './linear-config.js';
10
- import Database from 'better-sqlite3';
11
- import { join } from 'path';
12
- import { existsSync } from 'fs';
13
- export class LinearAutoSyncService {
14
- config;
15
- projectRoot;
16
- configManager;
17
- syncEngine;
18
- intervalId;
19
- isRunning = false;
20
- lastSyncTime = 0;
21
- retryCount = 0;
22
- constructor(projectRoot, config) {
23
- this.projectRoot = projectRoot;
24
- this.configManager = new LinearConfigManager(projectRoot);
25
- // Load persisted config or use defaults
26
- const persistedConfig = this.configManager.loadConfig();
27
- const baseConfig = persistedConfig
28
- ? this.configManager.toAutoSyncConfig(persistedConfig)
29
- : {
30
- ...DEFAULT_SYNC_CONFIG,
31
- enabled: true,
32
- interval: 5,
33
- retryAttempts: 3,
34
- retryDelay: 30000,
35
- autoSync: true,
36
- direction: 'bidirectional',
37
- conflictResolution: 'newest_wins',
38
- quietHours: { start: 22, end: 7 },
39
- };
40
- this.config = { ...baseConfig, ...config };
41
- // Save any new config updates
42
- if (config && Object.keys(config).length > 0) {
43
- this.configManager.saveConfig(config);
44
- }
45
- }
46
- /**
47
- * Start the auto-sync service
48
- */
49
- async start() {
50
- if (this.isRunning) {
51
- logger.warn('Linear auto-sync service is already running');
52
- return;
53
- }
54
- try {
55
- // Verify Linear integration is configured
56
- const authManager = new LinearAuthManager(this.projectRoot);
57
- if (!authManager.isConfigured()) {
58
- throw new Error('Linear integration not configured. Run "stackmemory linear setup" first.');
59
- }
60
- // Initialize sync engine
61
- const dbPath = join(this.projectRoot, '.stackmemory', 'context.db');
62
- if (!existsSync(dbPath)) {
63
- throw new Error('StackMemory not initialized. Run "stackmemory init" first.');
64
- }
65
- const db = new Database(dbPath);
66
- const taskStore = new PebblesTaskStore(this.projectRoot, db);
67
- this.syncEngine = new LinearSyncEngine(taskStore, authManager, this.config);
68
- // Test connection before starting
69
- const token = await authManager.getValidToken();
70
- if (!token) {
71
- throw new Error('Unable to get valid Linear token. Check authentication.');
72
- }
73
- this.isRunning = true;
74
- this.scheduleNextSync();
75
- logger.info('Linear auto-sync service started', {
76
- interval: this.config.interval,
77
- direction: this.config.direction,
78
- conflictResolution: this.config.conflictResolution,
79
- });
80
- // Perform initial sync
81
- this.performSync();
82
- }
83
- catch (error) {
84
- logger.error('Failed to start Linear auto-sync service:', error);
85
- throw error;
86
- }
87
- }
88
- /**
89
- * Stop the auto-sync service
90
- */
91
- stop() {
92
- if (this.intervalId) {
93
- clearTimeout(this.intervalId);
94
- this.intervalId = undefined;
95
- }
96
- this.isRunning = false;
97
- logger.info('Linear auto-sync service stopped');
98
- }
99
- /**
100
- * Get service status
101
- */
102
- getStatus() {
103
- const nextSyncTime = this.intervalId
104
- ? this.lastSyncTime + this.config.interval * 60 * 1000
105
- : undefined;
106
- return {
107
- running: this.isRunning,
108
- lastSyncTime: this.lastSyncTime,
109
- nextSyncTime,
110
- retryCount: this.retryCount,
111
- config: this.config,
112
- };
113
- }
114
- /**
115
- * Update configuration
116
- */
117
- updateConfig(newConfig) {
118
- this.config = { ...this.config, ...newConfig };
119
- if (this.isRunning) {
120
- // Restart with new config
121
- this.stop();
122
- this.start();
123
- }
124
- logger.info('Linear auto-sync config updated', newConfig);
125
- }
126
- /**
127
- * Force immediate sync
128
- */
129
- async forceSync() {
130
- if (!this.syncEngine) {
131
- throw new Error('Sync engine not initialized');
132
- }
133
- logger.info('Forcing immediate Linear sync');
134
- await this.performSync();
135
- }
136
- /**
137
- * Schedule next sync based on configuration
138
- */
139
- scheduleNextSync() {
140
- if (!this.isRunning)
141
- return;
142
- const delay = this.config.interval * 60 * 1000; // Convert minutes to milliseconds
143
- this.intervalId = setTimeout(() => {
144
- if (this.isRunning) {
145
- this.performSync();
146
- }
147
- }, delay);
148
- }
149
- /**
150
- * Perform synchronization with error handling and retries
151
- */
152
- async performSync() {
153
- if (!this.syncEngine) {
154
- logger.error('Sync engine not available');
155
- return;
156
- }
157
- // Check quiet hours
158
- if (this.isInQuietHours()) {
159
- logger.debug('Skipping sync during quiet hours');
160
- this.scheduleNextSync();
161
- return;
162
- }
163
- try {
164
- logger.debug('Starting Linear auto-sync');
165
- const result = await this.syncEngine.sync();
166
- if (result.success) {
167
- this.lastSyncTime = Date.now();
168
- this.retryCount = 0;
169
- // Log sync results
170
- const hasChanges = result.synced.toLinear > 0 ||
171
- result.synced.fromLinear > 0 ||
172
- result.synced.updated > 0;
173
- if (hasChanges) {
174
- logger.info('Linear auto-sync completed with changes', {
175
- toLinear: result.synced.toLinear,
176
- fromLinear: result.synced.fromLinear,
177
- updated: result.synced.updated,
178
- conflicts: result.conflicts.length,
179
- });
180
- }
181
- else {
182
- logger.debug('Linear auto-sync completed - no changes');
183
- }
184
- // Handle conflicts
185
- if (result.conflicts.length > 0) {
186
- logger.warn('Linear sync conflicts detected', {
187
- count: result.conflicts.length,
188
- conflicts: result.conflicts.map((c) => ({
189
- taskId: c.taskId,
190
- reason: c.reason,
191
- })),
192
- });
193
- }
194
- }
195
- else {
196
- throw new Error(`Sync failed: ${result.errors.join(', ')}`);
197
- }
198
- }
199
- catch (error) {
200
- logger.error('Linear auto-sync failed:', error);
201
- this.retryCount++;
202
- if (this.retryCount <= this.config.retryAttempts) {
203
- logger.info(`Retrying Linear sync in ${this.config.retryDelay / 1000}s (attempt ${this.retryCount}/${this.config.retryAttempts})`);
204
- // Schedule retry
205
- setTimeout(() => {
206
- if (this.isRunning) {
207
- this.performSync();
208
- }
209
- }, this.config.retryDelay);
210
- return; // Don't schedule next sync yet
211
- }
212
- else {
213
- logger.error(`Linear auto-sync failed after ${this.config.retryAttempts} attempts, skipping until next interval`);
214
- this.retryCount = 0;
215
- }
216
- }
217
- // Schedule next sync
218
- this.scheduleNextSync();
219
- }
220
- /**
221
- * Check if current time is within quiet hours
222
- */
223
- isInQuietHours() {
224
- if (!this.config.quietHours)
225
- return false;
226
- const now = new Date();
227
- const currentHour = now.getHours();
228
- const { start, end } = this.config.quietHours;
229
- if (start < end) {
230
- // Quiet hours within same day (e.g., 22:00 - 07:00 next day)
231
- return currentHour >= start || currentHour < end;
232
- }
233
- else {
234
- // Quiet hours span midnight (e.g., 10:00 - 18:00)
235
- return currentHour >= start && currentHour < end;
236
- }
237
- }
238
- }
239
- /**
240
- * Global auto-sync service instance
241
- */
242
- let autoSyncService = null;
243
- /**
244
- * Initialize global auto-sync service
245
- */
246
- export function initializeAutoSync(projectRoot, config) {
247
- if (autoSyncService) {
248
- autoSyncService.stop();
249
- }
250
- autoSyncService = new LinearAutoSyncService(projectRoot, config);
251
- return autoSyncService;
252
- }
253
- /**
254
- * Get global auto-sync service
255
- */
256
- export function getAutoSyncService() {
257
- return autoSyncService;
258
- }
259
- /**
260
- * Stop global auto-sync service
261
- */
262
- export function stopAutoSync() {
263
- if (autoSyncService) {
264
- autoSyncService.stop();
265
- autoSyncService = null;
266
- }
267
- }
268
- //# sourceMappingURL=linear-auto-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linear-auto-sync.js","sourceRoot":"","sources":["../../../src/integrations/linear-auto-sync.ts"],"names":[],"mappings":"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"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Linear API Client for StackMemory
3
- * Handles bi-directional sync with Linear's GraphQL API
4
- */
5
- export interface LinearConfig {
6
- apiKey: string;
7
- teamId?: string;
8
- webhookSecret?: string;
9
- baseUrl?: string;
10
- }
11
- export interface LinearIssue {
12
- id: string;
13
- identifier: string;
14
- title: string;
15
- description?: string;
16
- state: {
17
- id: string;
18
- name: string;
19
- type: 'backlog' | 'unstarted' | 'started' | 'completed' | 'cancelled';
20
- };
21
- priority: number;
22
- assignee?: {
23
- id: string;
24
- name: string;
25
- email: string;
26
- };
27
- estimate?: number;
28
- labels: Array<{
29
- id: string;
30
- name: string;
31
- }>;
32
- createdAt: string;
33
- updatedAt: string;
34
- url: string;
35
- }
36
- export interface LinearCreateIssueInput {
37
- title: string;
38
- description?: string;
39
- teamId: string;
40
- priority?: number;
41
- estimate?: number;
42
- labelIds?: string[];
43
- }
44
- export declare class LinearClient {
45
- private config;
46
- private baseUrl;
47
- constructor(config: LinearConfig);
48
- /**
49
- * Execute GraphQL query against Linear API
50
- */
51
- private graphql;
52
- /**
53
- * Create a new issue in Linear
54
- */
55
- createIssue(input: LinearCreateIssueInput): Promise<LinearIssue>;
56
- /**
57
- * Update an existing Linear issue
58
- */
59
- updateIssue(issueId: string, updates: Partial<LinearCreateIssueInput>): Promise<LinearIssue>;
60
- /**
61
- * Get issue by ID
62
- */
63
- getIssue(issueId: string): Promise<LinearIssue | null>;
64
- /**
65
- * Search for issues by identifier (e.g., "SM-123")
66
- */
67
- findIssueByIdentifier(identifier: string): Promise<LinearIssue | null>;
68
- /**
69
- * Get team information
70
- */
71
- getTeam(teamId?: string): Promise<{
72
- id: string;
73
- name: string;
74
- key: string;
75
- }>;
76
- /**
77
- * Get workflow states for a team
78
- */
79
- getWorkflowStates(teamId: string): Promise<Array<{
80
- id: string;
81
- name: string;
82
- type: 'backlog' | 'unstarted' | 'started' | 'completed' | 'cancelled';
83
- color: string;
84
- }>>;
85
- }
86
- //# sourceMappingURL=linear-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linear-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/linear-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;KACvE,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAShC;;OAEG;YACW,OAAO;IAqCrB;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkDtE;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACvC,OAAO,CAAC,WAAW,CAAC;IAkDvB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwC5D;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAkD5E;;OAEG;IACG,OAAO,CACX,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IA8CrD;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAC9C,KAAK,CAAC;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;QACtE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CACH;CAoCF"}
@@ -1,277 +0,0 @@
1
- /**
2
- * Linear API Client for StackMemory
3
- * Handles bi-directional sync with Linear's GraphQL API
4
- */
5
- import { logger } from '../core/logger.js';
6
- export class LinearClient {
7
- config;
8
- baseUrl;
9
- constructor(config) {
10
- this.config = config;
11
- this.baseUrl = config.baseUrl || 'https://api.linear.app';
12
- if (!config.apiKey) {
13
- throw new Error('Linear API key is required');
14
- }
15
- }
16
- /**
17
- * Execute GraphQL query against Linear API
18
- */
19
- async graphql(query, variables) {
20
- const response = await fetch(`${this.baseUrl}/graphql`, {
21
- method: 'POST',
22
- headers: {
23
- Authorization: this.config.apiKey,
24
- 'Content-Type': 'application/json',
25
- },
26
- body: JSON.stringify({
27
- query,
28
- variables,
29
- }),
30
- });
31
- if (!response.ok) {
32
- const errorText = await response.text();
33
- logger.error('Linear API error response:', new Error(`${response.status}: ${errorText}`));
34
- throw new Error(`Linear API error: ${response.status} ${response.statusText} - ${errorText}`);
35
- }
36
- const result = (await response.json());
37
- if (result.errors) {
38
- logger.error('Linear GraphQL errors:', result.errors);
39
- throw new Error(`Linear GraphQL error: ${result.errors[0].message}`);
40
- }
41
- return result.data;
42
- }
43
- /**
44
- * Create a new issue in Linear
45
- */
46
- async createIssue(input) {
47
- const mutation = `
48
- mutation CreateIssue($input: IssueCreateInput!) {
49
- issueCreate(input: $input) {
50
- success
51
- issue {
52
- id
53
- identifier
54
- title
55
- description
56
- state {
57
- id
58
- name
59
- type
60
- }
61
- priority
62
- assignee {
63
- id
64
- name
65
- email
66
- }
67
- estimate
68
- labels {
69
- nodes {
70
- id
71
- name
72
- }
73
- }
74
- createdAt
75
- updatedAt
76
- url
77
- }
78
- }
79
- }
80
- `;
81
- const result = await this.graphql(mutation, { input });
82
- if (!result.issueCreate.success) {
83
- throw new Error('Failed to create Linear issue');
84
- }
85
- return result.issueCreate.issue;
86
- }
87
- /**
88
- * Update an existing Linear issue
89
- */
90
- async updateIssue(issueId, updates) {
91
- const mutation = `
92
- mutation UpdateIssue($id: String!, $input: IssueUpdateInput!) {
93
- issueUpdate(id: $id, input: $input) {
94
- success
95
- issue {
96
- id
97
- identifier
98
- title
99
- description
100
- state {
101
- id
102
- name
103
- type
104
- }
105
- priority
106
- assignee {
107
- id
108
- name
109
- email
110
- }
111
- estimate
112
- labels {
113
- nodes {
114
- id
115
- name
116
- }
117
- }
118
- createdAt
119
- updatedAt
120
- url
121
- }
122
- }
123
- }
124
- `;
125
- const result = await this.graphql(mutation, { id: issueId, input: updates });
126
- if (!result.issueUpdate.success) {
127
- throw new Error(`Failed to update Linear issue ${issueId}`);
128
- }
129
- return result.issueUpdate.issue;
130
- }
131
- /**
132
- * Get issue by ID
133
- */
134
- async getIssue(issueId) {
135
- const query = `
136
- query GetIssue($id: String!) {
137
- issue(id: $id) {
138
- id
139
- identifier
140
- title
141
- description
142
- state {
143
- id
144
- name
145
- type
146
- }
147
- priority
148
- assignee {
149
- id
150
- name
151
- email
152
- }
153
- estimate
154
- labels {
155
- nodes {
156
- id
157
- name
158
- }
159
- }
160
- createdAt
161
- updatedAt
162
- url
163
- }
164
- }
165
- `;
166
- const result = await this.graphql(query, { id: issueId });
167
- return result.issue;
168
- }
169
- /**
170
- * Search for issues by identifier (e.g., "SM-123")
171
- */
172
- async findIssueByIdentifier(identifier) {
173
- const query = `
174
- query FindIssue($filter: IssueFilter!) {
175
- issues(filter: $filter, first: 1) {
176
- nodes {
177
- id
178
- identifier
179
- title
180
- description
181
- state {
182
- id
183
- name
184
- type
185
- }
186
- priority
187
- assignee {
188
- id
189
- name
190
- email
191
- }
192
- estimate
193
- labels {
194
- nodes {
195
- id
196
- name
197
- }
198
- }
199
- createdAt
200
- updatedAt
201
- url
202
- }
203
- }
204
- }
205
- `;
206
- const result = await this.graphql(query, {
207
- filter: {
208
- number: {
209
- eq: parseInt(identifier.split('-')[1] || '0') || 0,
210
- },
211
- },
212
- });
213
- return result.issues.nodes[0] || null;
214
- }
215
- /**
216
- * Get team information
217
- */
218
- async getTeam(teamId) {
219
- const query = teamId
220
- ? `
221
- query GetTeam($id: String!) {
222
- team(id: $id) {
223
- id
224
- name
225
- key
226
- }
227
- }
228
- `
229
- : `
230
- query GetTeams {
231
- teams(first: 1) {
232
- nodes {
233
- id
234
- name
235
- key
236
- }
237
- }
238
- }
239
- `;
240
- if (teamId) {
241
- const result = await this.graphql(query, { id: teamId });
242
- if (!result.team) {
243
- throw new Error(`Team ${teamId} not found`);
244
- }
245
- return result.team;
246
- }
247
- else {
248
- const result = await this.graphql(query);
249
- if (result.teams.nodes.length === 0) {
250
- throw new Error('No teams found');
251
- }
252
- return result.teams.nodes[0];
253
- }
254
- }
255
- /**
256
- * Get workflow states for a team
257
- */
258
- async getWorkflowStates(teamId) {
259
- const query = `
260
- query GetWorkflowStates($teamId: String!) {
261
- team(id: $teamId) {
262
- states {
263
- nodes {
264
- id
265
- name
266
- type
267
- color
268
- }
269
- }
270
- }
271
- }
272
- `;
273
- const result = await this.graphql(query, { teamId });
274
- return result.team.states.nodes;
275
- }
276
- }
277
- //# sourceMappingURL=linear-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linear-client.js","sourceRoot":"","sources":["../../../src/integrations/linear-client.ts"],"names":[],"mappings":"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"}