@stackmemoryai/stackmemory 0.2.6 → 0.2.8

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 (406) hide show
  1. package/README.md +262 -83
  2. package/dist/scripts/cancel-duplicate-tasks.d.ts +7 -0
  3. package/dist/scripts/cancel-duplicate-tasks.d.ts.map +1 -0
  4. package/dist/scripts/cancel-duplicate-tasks.js +172 -0
  5. package/dist/scripts/cancel-duplicate-tasks.js.map +1 -0
  6. package/dist/scripts/list-linear-tasks.d.ts +6 -0
  7. package/dist/scripts/list-linear-tasks.d.ts.map +1 -0
  8. package/dist/scripts/list-linear-tasks.js +121 -0
  9. package/dist/scripts/list-linear-tasks.js.map +1 -0
  10. package/dist/scripts/merge-linear-duplicates-safe.d.ts +7 -0
  11. package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +1 -0
  12. package/dist/scripts/merge-linear-duplicates-safe.js +267 -0
  13. package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -0
  14. package/dist/scripts/show-linear-summary.d.ts +6 -0
  15. package/dist/scripts/show-linear-summary.d.ts.map +1 -0
  16. package/dist/scripts/show-linear-summary.js +120 -0
  17. package/dist/scripts/show-linear-summary.js.map +1 -0
  18. package/dist/scripts/status.js +6 -2
  19. package/dist/scripts/status.js.map +1 -1
  20. package/dist/src/cli/auto-detect.d.ts +61 -0
  21. package/dist/src/cli/auto-detect.d.ts.map +1 -0
  22. package/dist/src/cli/auto-detect.js +350 -0
  23. package/dist/src/cli/auto-detect.js.map +1 -0
  24. package/dist/src/cli/claude-sm.d.ts +7 -0
  25. package/dist/src/cli/claude-sm.d.ts.map +1 -0
  26. package/dist/src/cli/claude-sm.js +357 -0
  27. package/dist/src/cli/claude-sm.js.map +1 -0
  28. package/dist/src/cli/commands/config.d.ts +6 -0
  29. package/dist/src/cli/commands/config.d.ts.map +1 -0
  30. package/dist/src/cli/commands/config.js +224 -0
  31. package/dist/src/cli/commands/config.js.map +1 -0
  32. package/dist/src/cli/commands/context.d.ts +7 -0
  33. package/dist/src/cli/commands/context.d.ts.map +1 -0
  34. package/dist/src/cli/commands/context.js +365 -0
  35. package/dist/src/cli/commands/context.js.map +1 -0
  36. package/dist/src/cli/commands/linear-test.d.ts +6 -0
  37. package/dist/src/cli/commands/linear-test.d.ts.map +1 -0
  38. package/dist/src/cli/commands/linear-test.js +123 -0
  39. package/dist/src/cli/commands/linear-test.js.map +1 -0
  40. package/dist/src/cli/commands/linear.d.ts +6 -0
  41. package/dist/src/cli/commands/linear.d.ts.map +1 -0
  42. package/dist/src/cli/commands/linear.js +393 -0
  43. package/dist/src/cli/commands/linear.js.map +1 -0
  44. package/dist/src/cli/commands/log.d.ts +7 -0
  45. package/dist/src/cli/commands/log.d.ts.map +1 -0
  46. package/dist/src/cli/commands/log.js +168 -0
  47. package/dist/src/cli/commands/log.js.map +1 -0
  48. package/dist/src/cli/commands/onboard.d.ts +8 -0
  49. package/dist/src/cli/commands/onboard.d.ts.map +1 -0
  50. package/dist/src/cli/commands/onboard.js +363 -0
  51. package/dist/src/cli/commands/onboard.js.map +1 -0
  52. package/dist/src/cli/commands/projects.js +1 -1
  53. package/dist/src/cli/commands/projects.js.map +1 -1
  54. package/dist/src/cli/commands/search.d.ts +7 -0
  55. package/dist/src/cli/commands/search.d.ts.map +1 -0
  56. package/dist/src/cli/commands/search.js +162 -0
  57. package/dist/src/cli/commands/search.js.map +1 -0
  58. package/dist/src/cli/commands/session.d.ts +7 -0
  59. package/dist/src/cli/commands/session.d.ts.map +1 -0
  60. package/dist/src/cli/commands/session.js +222 -0
  61. package/dist/src/cli/commands/session.js.map +1 -0
  62. package/dist/src/cli/commands/tasks.d.ts +7 -0
  63. package/dist/src/cli/commands/tasks.d.ts.map +1 -0
  64. package/dist/src/cli/commands/tasks.js +229 -0
  65. package/dist/src/cli/commands/tasks.js.map +1 -0
  66. package/dist/src/cli/commands/webhook.d.ts +3 -0
  67. package/dist/src/cli/commands/webhook.d.ts.map +1 -0
  68. package/dist/src/cli/commands/webhook.js +157 -0
  69. package/dist/src/cli/commands/webhook.js.map +1 -0
  70. package/dist/src/cli/commands/worktree.d.ts +8 -0
  71. package/dist/src/cli/commands/worktree.d.ts.map +1 -0
  72. package/dist/src/cli/commands/worktree.js +339 -0
  73. package/dist/src/cli/commands/worktree.js.map +1 -0
  74. package/dist/src/cli/index.d.ts +2 -1
  75. package/dist/src/cli/index.d.ts.map +1 -1
  76. package/dist/src/cli/index.js +337 -50
  77. package/dist/src/cli/index.js.map +1 -1
  78. package/dist/src/cli/utils/viewer.d.ts.map +1 -1
  79. package/dist/src/cli/utils/viewer.js +3 -1
  80. package/dist/src/cli/utils/viewer.js.map +1 -1
  81. package/dist/src/core/config/config-manager.d.ts +95 -0
  82. package/dist/src/core/config/config-manager.d.ts.map +1 -0
  83. package/dist/src/core/config/config-manager.js +359 -0
  84. package/dist/src/core/config/config-manager.js.map +1 -0
  85. package/dist/src/core/config/types.d.ts +72 -0
  86. package/dist/src/core/config/types.d.ts.map +1 -0
  87. package/dist/src/core/config/types.js +127 -0
  88. package/dist/src/core/config/types.js.map +1 -0
  89. package/dist/src/core/context/auto-context.d.ts +22 -0
  90. package/dist/src/core/context/auto-context.d.ts.map +1 -0
  91. package/dist/src/core/context/auto-context.js +77 -0
  92. package/dist/src/core/context/auto-context.js.map +1 -0
  93. package/dist/src/core/context/compaction-handler.d.ts +119 -0
  94. package/dist/src/core/context/compaction-handler.d.ts.map +1 -0
  95. package/dist/src/core/context/compaction-handler.js +306 -0
  96. package/dist/src/core/context/compaction-handler.js.map +1 -0
  97. package/dist/src/core/context/frame-manager.d.ts +4 -0
  98. package/dist/src/core/context/frame-manager.d.ts.map +1 -1
  99. package/dist/src/core/context/frame-manager.js +350 -144
  100. package/dist/src/core/context/frame-manager.js.map +1 -1
  101. package/dist/src/core/context/model-aware-compaction.d.ts +101 -0
  102. package/dist/src/core/context/model-aware-compaction.d.ts.map +1 -0
  103. package/dist/src/core/context/model-aware-compaction.js +616 -0
  104. package/dist/src/core/context/model-aware-compaction.js.map +1 -0
  105. package/dist/src/core/errors/index.d.ts +135 -0
  106. package/dist/src/core/errors/index.d.ts.map +1 -0
  107. package/dist/src/core/errors/index.js +274 -0
  108. package/dist/src/core/errors/index.js.map +1 -0
  109. package/dist/src/core/errors/recovery.d.ts +86 -0
  110. package/dist/src/core/errors/recovery.d.ts.map +1 -0
  111. package/dist/src/core/errors/recovery.js +274 -0
  112. package/dist/src/core/errors/recovery.js.map +1 -0
  113. package/dist/src/core/projects/project-manager.d.ts.map +1 -1
  114. package/dist/src/core/projects/project-manager.js +240 -122
  115. package/dist/src/core/projects/project-manager.js.map +1 -1
  116. package/dist/src/core/query/query-parser.d.ts +104 -0
  117. package/dist/src/core/query/query-parser.d.ts.map +1 -0
  118. package/dist/src/core/query/query-parser.js +347 -0
  119. package/dist/src/core/query/query-parser.js.map +1 -0
  120. package/dist/src/core/retrieval/index.d.ts +8 -0
  121. package/dist/src/core/retrieval/index.d.ts.map +1 -0
  122. package/dist/src/core/retrieval/index.js +8 -0
  123. package/dist/src/core/retrieval/index.js.map +1 -0
  124. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +71 -0
  125. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -0
  126. package/dist/src/core/retrieval/llm-context-retrieval.js +545 -0
  127. package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -0
  128. package/dist/src/core/retrieval/summary-generator.d.ts +63 -0
  129. package/dist/src/core/retrieval/summary-generator.d.ts.map +1 -0
  130. package/dist/src/core/retrieval/summary-generator.js +622 -0
  131. package/dist/src/core/retrieval/summary-generator.js.map +1 -0
  132. package/dist/src/core/retrieval/types.d.ts +257 -0
  133. package/dist/src/core/retrieval/types.d.ts.map +1 -0
  134. package/dist/src/core/retrieval/types.js +18 -0
  135. package/dist/src/core/retrieval/types.js.map +1 -0
  136. package/dist/src/core/session/index.d.ts +2 -0
  137. package/dist/src/core/session/index.d.ts.map +1 -0
  138. package/dist/src/core/session/index.js +2 -0
  139. package/dist/src/core/session/index.js.map +1 -0
  140. package/dist/src/core/session/session-manager.d.ts +69 -0
  141. package/dist/src/core/session/session-manager.d.ts.map +1 -0
  142. package/dist/src/core/session/session-manager.js +311 -0
  143. package/dist/src/core/session/session-manager.js.map +1 -0
  144. package/dist/src/core/trace/trace-detector.d.ts +108 -0
  145. package/dist/src/core/trace/trace-detector.d.ts.map +1 -0
  146. package/dist/src/core/trace/trace-detector.demo.d.ts +5 -0
  147. package/dist/src/core/trace/trace-detector.demo.d.ts.map +1 -0
  148. package/dist/src/core/trace/trace-detector.demo.js +145 -0
  149. package/dist/src/core/trace/trace-detector.demo.js.map +1 -0
  150. package/dist/src/core/trace/trace-detector.js +425 -0
  151. package/dist/src/core/trace/trace-detector.js.map +1 -0
  152. package/dist/src/core/trace/trace-store.d.ts +60 -0
  153. package/dist/src/core/trace/trace-store.d.ts.map +1 -0
  154. package/dist/src/core/trace/trace-store.js +323 -0
  155. package/dist/src/core/trace/trace-store.js.map +1 -0
  156. package/dist/src/core/trace/types.d.ts +81 -0
  157. package/dist/src/core/trace/types.d.ts.map +1 -0
  158. package/dist/src/core/trace/types.js +70 -0
  159. package/dist/src/core/trace/types.js.map +1 -0
  160. package/dist/src/core/utils/update-checker.d.ts.map +1 -1
  161. package/dist/src/core/utils/update-checker.js +82 -25
  162. package/dist/src/core/utils/update-checker.js.map +1 -1
  163. package/dist/src/core/worktree/worktree-manager.d.ts +110 -0
  164. package/dist/src/core/worktree/worktree-manager.d.ts.map +1 -0
  165. package/dist/src/core/worktree/worktree-manager.js +456 -0
  166. package/dist/src/core/worktree/worktree-manager.js.map +1 -0
  167. package/dist/src/features/analytics/core/analytics-service.d.ts +6 -0
  168. package/dist/src/features/analytics/core/analytics-service.d.ts.map +1 -1
  169. package/dist/src/features/analytics/core/analytics-service.js +125 -10
  170. package/dist/src/features/analytics/core/analytics-service.js.map +1 -1
  171. package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +1 -1
  172. package/dist/src/features/analytics/queries/metrics-queries.js +220 -163
  173. package/dist/src/features/analytics/queries/metrics-queries.js.map +1 -1
  174. package/dist/src/features/browser/browser-mcp.d.ts.map +1 -1
  175. package/dist/src/features/browser/browser-mcp.js +3 -0
  176. package/dist/src/features/browser/browser-mcp.js.map +1 -1
  177. package/dist/src/features/tasks/pebbles-task-store.d.ts +4 -0
  178. package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -1
  179. package/dist/src/features/tasks/pebbles-task-store.js +299 -141
  180. package/dist/src/features/tasks/pebbles-task-store.js.map +1 -1
  181. package/dist/src/integrations/linear/client.d.ts +28 -1
  182. package/dist/src/integrations/linear/client.d.ts.map +1 -1
  183. package/dist/src/integrations/linear/client.js +87 -0
  184. package/dist/src/integrations/linear/client.js.map +1 -1
  185. package/dist/src/integrations/linear/sync-manager.d.ts +76 -0
  186. package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -0
  187. package/dist/src/integrations/linear/sync-manager.js +223 -0
  188. package/dist/src/integrations/linear/sync-manager.js.map +1 -0
  189. package/dist/src/integrations/linear/sync-service.d.ts +25 -0
  190. package/dist/src/integrations/linear/sync-service.d.ts.map +1 -0
  191. package/dist/src/integrations/linear/sync-service.js +198 -0
  192. package/dist/src/integrations/linear/sync-service.js.map +1 -0
  193. package/dist/src/integrations/linear/sync.d.ts +23 -1
  194. package/dist/src/integrations/linear/sync.d.ts.map +1 -1
  195. package/dist/src/integrations/linear/sync.js +156 -9
  196. package/dist/src/integrations/linear/sync.js.map +1 -1
  197. package/dist/src/integrations/linear/types.d.ts +75 -0
  198. package/dist/src/integrations/linear/types.d.ts.map +1 -0
  199. package/dist/src/integrations/linear/types.js +2 -0
  200. package/dist/src/integrations/linear/types.js.map +1 -0
  201. package/dist/src/integrations/linear/webhook-server.d.ts +32 -0
  202. package/dist/src/integrations/linear/webhook-server.d.ts.map +1 -0
  203. package/dist/src/integrations/linear/webhook-server.js +188 -0
  204. package/dist/src/integrations/linear/webhook-server.js.map +1 -0
  205. package/dist/src/integrations/linear/webhook.d.ts +95 -0
  206. package/dist/src/integrations/linear/webhook.d.ts.map +1 -0
  207. package/dist/src/integrations/linear/webhook.js +204 -0
  208. package/dist/src/integrations/linear/webhook.js.map +1 -0
  209. package/dist/src/integrations/mcp/server.d.ts +14 -0
  210. package/dist/src/integrations/mcp/server.d.ts.map +1 -1
  211. package/dist/src/integrations/mcp/server.js +849 -61
  212. package/dist/src/integrations/mcp/server.js.map +1 -1
  213. package/dist/src/integrations/mcp/trace-test.d.ts +5 -0
  214. package/dist/src/integrations/mcp/trace-test.d.ts.map +1 -0
  215. package/dist/src/integrations/mcp/trace-test.js +54 -0
  216. package/dist/src/integrations/mcp/trace-test.js.map +1 -0
  217. package/dist/src/servers/production/auth-middleware.d.ts +2 -2
  218. package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
  219. package/dist/src/servers/production/auth-middleware.js +1 -1
  220. package/dist/src/servers/production/auth-middleware.js.map +1 -1
  221. package/dist/src/services/config-service.d.ts +44 -0
  222. package/dist/src/services/config-service.d.ts.map +1 -0
  223. package/dist/src/services/config-service.js +61 -0
  224. package/dist/src/services/config-service.js.map +1 -0
  225. package/dist/src/services/context-service.d.ts +17 -0
  226. package/dist/src/services/context-service.d.ts.map +1 -0
  227. package/dist/src/services/context-service.js +88 -0
  228. package/dist/src/services/context-service.js.map +1 -0
  229. package/dist/src/types/task.d.ts +27 -0
  230. package/dist/src/types/task.d.ts.map +1 -0
  231. package/dist/src/types/task.js +2 -0
  232. package/dist/src/types/task.js.map +1 -0
  233. package/dist/src/utils/logger.d.ts +13 -0
  234. package/dist/src/utils/logger.d.ts.map +1 -0
  235. package/dist/src/utils/logger.js +52 -0
  236. package/dist/src/utils/logger.js.map +1 -0
  237. package/package.json +24 -10
  238. package/dist/attention-scoring/src/attention-tracker.d.ts +0 -79
  239. package/dist/attention-scoring/src/attention-tracker.d.ts.map +0 -1
  240. package/dist/attention-scoring/src/attention-tracker.js +0 -488
  241. package/dist/attention-scoring/src/attention-tracker.js.map +0 -1
  242. package/dist/attention-scoring/src/mcp-integration.d.ts +0 -56
  243. package/dist/attention-scoring/src/mcp-integration.d.ts.map +0 -1
  244. package/dist/attention-scoring/src/mcp-integration.js +0 -369
  245. package/dist/attention-scoring/src/mcp-integration.js.map +0 -1
  246. package/dist/index.js +0 -382
  247. package/dist/p2p-sync/src/p2p-sync.d.ts +0 -81
  248. package/dist/p2p-sync/src/p2p-sync.d.ts.map +0 -1
  249. package/dist/p2p-sync/src/p2p-sync.js +0 -457
  250. package/dist/p2p-sync/src/p2p-sync.js.map +0 -1
  251. package/dist/p2p-sync/src/team-context-sync.d.ts +0 -99
  252. package/dist/p2p-sync/src/team-context-sync.d.ts.map +0 -1
  253. package/dist/p2p-sync/src/team-context-sync.js +0 -491
  254. package/dist/p2p-sync/src/team-context-sync.js.map +0 -1
  255. package/dist/src/analytics/api/analytics-api.d.ts +0 -24
  256. package/dist/src/analytics/api/analytics-api.d.ts.map +0 -1
  257. package/dist/src/analytics/api/analytics-api.js +0 -279
  258. package/dist/src/analytics/api/analytics-api.js.map +0 -1
  259. package/dist/src/analytics/core/analytics-service.d.ts +0 -23
  260. package/dist/src/analytics/core/analytics-service.d.ts.map +0 -1
  261. package/dist/src/analytics/core/analytics-service.js +0 -160
  262. package/dist/src/analytics/core/analytics-service.js.map +0 -1
  263. package/dist/src/analytics/index.d.ts +0 -12
  264. package/dist/src/analytics/index.d.ts.map +0 -1
  265. package/dist/src/analytics/index.js +0 -11
  266. package/dist/src/analytics/index.js.map +0 -1
  267. package/dist/src/analytics/queries/metrics-queries.d.ts +0 -11
  268. package/dist/src/analytics/queries/metrics-queries.d.ts.map +0 -1
  269. package/dist/src/analytics/queries/metrics-queries.js +0 -179
  270. package/dist/src/analytics/queries/metrics-queries.js.map +0 -1
  271. package/dist/src/analytics/types/metrics.d.ts +0 -60
  272. package/dist/src/analytics/types/metrics.d.ts.map +0 -1
  273. package/dist/src/analytics/types/metrics.js +0 -2
  274. package/dist/src/analytics/types/metrics.js.map +0 -1
  275. package/dist/src/beads/beads-task-store.d.ts +0 -117
  276. package/dist/src/beads/beads-task-store.d.ts.map +0 -1
  277. package/dist/src/beads/beads-task-store.js +0 -318
  278. package/dist/src/beads/beads-task-store.js.map +0 -1
  279. package/dist/src/beads/task-aware-context.d.ts +0 -103
  280. package/dist/src/beads/task-aware-context.d.ts.map +0 -1
  281. package/dist/src/beads/task-aware-context.js +0 -395
  282. package/dist/src/beads/task-aware-context.js.map +0 -1
  283. package/dist/src/beads-task-store.d.ts +0 -117
  284. package/dist/src/beads-task-store.d.ts.map +0 -1
  285. package/dist/src/beads-task-store.js +0 -318
  286. package/dist/src/beads-task-store.js.map +0 -1
  287. package/dist/src/cli/analytics-viewer.d.ts +0 -3
  288. package/dist/src/cli/analytics-viewer.d.ts.map +0 -1
  289. package/dist/src/cli/analytics-viewer.js +0 -89
  290. package/dist/src/cli/analytics-viewer.js.map +0 -1
  291. package/dist/src/cli/cli.d.ts +0 -7
  292. package/dist/src/cli/cli.d.ts.map +0 -1
  293. package/dist/src/cli/cli.js +0 -704
  294. package/dist/src/cli/cli.js.map +0 -1
  295. package/dist/src/cli/project-commands.d.ts +0 -8
  296. package/dist/src/cli/project-commands.d.ts.map +0 -1
  297. package/dist/src/cli/project-commands.js +0 -212
  298. package/dist/src/cli/project-commands.js.map +0 -1
  299. package/dist/src/cli.d.ts +0 -7
  300. package/dist/src/cli.d.ts.map +0 -1
  301. package/dist/src/cli.js +0 -73
  302. package/dist/src/cli.js.map +0 -1
  303. package/dist/src/core/error-handler.d.ts +0 -46
  304. package/dist/src/core/error-handler.d.ts.map +0 -1
  305. package/dist/src/core/error-handler.js +0 -212
  306. package/dist/src/core/error-handler.js.map +0 -1
  307. package/dist/src/core/frame-manager.d.ts +0 -106
  308. package/dist/src/core/frame-manager.d.ts.map +0 -1
  309. package/dist/src/core/frame-manager.js +0 -387
  310. package/dist/src/core/frame-manager.js.map +0 -1
  311. package/dist/src/core/logger.d.ts +0 -24
  312. package/dist/src/core/logger.d.ts.map +0 -1
  313. package/dist/src/core/logger.js +0 -121
  314. package/dist/src/core/logger.js.map +0 -1
  315. package/dist/src/core/logger.test.d.ts +0 -2
  316. package/dist/src/core/logger.test.d.ts.map +0 -1
  317. package/dist/src/core/logger.test.js +0 -31
  318. package/dist/src/core/logger.test.js.map +0 -1
  319. package/dist/src/core/progress-tracker.d.ts +0 -95
  320. package/dist/src/core/progress-tracker.d.ts.map +0 -1
  321. package/dist/src/core/progress-tracker.js +0 -178
  322. package/dist/src/core/progress-tracker.js.map +0 -1
  323. package/dist/src/core/project-manager.d.ts +0 -130
  324. package/dist/src/core/project-manager.d.ts.map +0 -1
  325. package/dist/src/core/project-manager.js +0 -582
  326. package/dist/src/core/project-manager.js.map +0 -1
  327. package/dist/src/core/update-checker.d.ts +0 -38
  328. package/dist/src/core/update-checker.d.ts.map +0 -1
  329. package/dist/src/core/update-checker.js +0 -156
  330. package/dist/src/core/update-checker.js.map +0 -1
  331. package/dist/src/error-handler.d.ts +0 -42
  332. package/dist/src/error-handler.d.ts.map +0 -1
  333. package/dist/src/error-handler.js +0 -155
  334. package/dist/src/error-handler.js.map +0 -1
  335. package/dist/src/frame-manager.d.ts +0 -106
  336. package/dist/src/frame-manager.d.ts.map +0 -1
  337. package/dist/src/frame-manager.js +0 -361
  338. package/dist/src/frame-manager.js.map +0 -1
  339. package/dist/src/integrations/browser-mcp.d.ts +0 -94
  340. package/dist/src/integrations/browser-mcp.d.ts.map +0 -1
  341. package/dist/src/integrations/browser-mcp.js +0 -431
  342. package/dist/src/integrations/browser-mcp.js.map +0 -1
  343. package/dist/src/integrations/linear-auth.d.ts +0 -99
  344. package/dist/src/integrations/linear-auth.d.ts.map +0 -1
  345. package/dist/src/integrations/linear-auth.js +0 -319
  346. package/dist/src/integrations/linear-auth.js.map +0 -1
  347. package/dist/src/integrations/linear-auto-sync.d.ts +0 -77
  348. package/dist/src/integrations/linear-auto-sync.d.ts.map +0 -1
  349. package/dist/src/integrations/linear-auto-sync.js +0 -268
  350. package/dist/src/integrations/linear-auto-sync.js.map +0 -1
  351. package/dist/src/integrations/linear-client.d.ts +0 -86
  352. package/dist/src/integrations/linear-client.d.ts.map +0 -1
  353. package/dist/src/integrations/linear-client.js +0 -277
  354. package/dist/src/integrations/linear-client.js.map +0 -1
  355. package/dist/src/integrations/linear-config.d.ts +0 -51
  356. package/dist/src/integrations/linear-config.d.ts.map +0 -1
  357. package/dist/src/integrations/linear-config.js +0 -103
  358. package/dist/src/integrations/linear-config.js.map +0 -1
  359. package/dist/src/integrations/linear-sync.d.ts +0 -97
  360. package/dist/src/integrations/linear-sync.d.ts.map +0 -1
  361. package/dist/src/integrations/linear-sync.js +0 -391
  362. package/dist/src/integrations/linear-sync.js.map +0 -1
  363. package/dist/src/logger.d.ts +0 -24
  364. package/dist/src/logger.d.ts.map +0 -1
  365. package/dist/src/logger.js +0 -120
  366. package/dist/src/logger.js.map +0 -1
  367. package/dist/src/mcp/mcp-server.d.ts +0 -40
  368. package/dist/src/mcp/mcp-server.d.ts.map +0 -1
  369. package/dist/src/mcp/mcp-server.js +0 -828
  370. package/dist/src/mcp/mcp-server.js.map +0 -1
  371. package/dist/src/mcp-server.d.ts +0 -32
  372. package/dist/src/mcp-server.d.ts.map +0 -1
  373. package/dist/src/mcp-server.js +0 -441
  374. package/dist/src/mcp-server.js.map +0 -1
  375. package/dist/src/pebbles/pebbles-task-store.d.ts +0 -117
  376. package/dist/src/pebbles/pebbles-task-store.d.ts.map +0 -1
  377. package/dist/src/pebbles/pebbles-task-store.js +0 -335
  378. package/dist/src/pebbles/pebbles-task-store.js.map +0 -1
  379. package/dist/src/pebbles/task-aware-context.d.ts +0 -103
  380. package/dist/src/pebbles/task-aware-context.d.ts.map +0 -1
  381. package/dist/src/pebbles/task-aware-context.js +0 -412
  382. package/dist/src/pebbles/task-aware-context.js.map +0 -1
  383. package/dist/src/railway/index.d.ts +0 -7
  384. package/dist/src/railway/index.d.ts.map +0 -1
  385. package/dist/src/railway/index.js +0 -401
  386. package/dist/src/railway/index.js.map +0 -1
  387. package/dist/src/runway/auth/auth-middleware.d.ts +0 -66
  388. package/dist/src/runway/auth/auth-middleware.d.ts.map +0 -1
  389. package/dist/src/runway/auth/auth-middleware.js +0 -337
  390. package/dist/src/runway/auth/auth-middleware.js.map +0 -1
  391. package/dist/src/runway/server/runway-mcp-server.d.ts +0 -46
  392. package/dist/src/runway/server/runway-mcp-server.d.ts.map +0 -1
  393. package/dist/src/runway/server/runway-mcp-server.js +0 -601
  394. package/dist/src/runway/server/runway-mcp-server.js.map +0 -1
  395. package/dist/src/runway.bak/auth/auth-middleware.d.ts +0 -66
  396. package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +0 -1
  397. package/dist/src/runway.bak/auth/auth-middleware.js +0 -337
  398. package/dist/src/runway.bak/auth/auth-middleware.js.map +0 -1
  399. package/dist/src/runway.bak/server/runway-mcp-server.d.ts +0 -46
  400. package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +0 -1
  401. package/dist/src/runway.bak/server/runway-mcp-server.js +0 -601
  402. package/dist/src/runway.bak/server/runway-mcp-server.js.map +0 -1
  403. package/dist/src/task-aware-context.d.ts +0 -103
  404. package/dist/src/task-aware-context.d.ts.map +0 -1
  405. package/dist/src/task-aware-context.js +0 -395
  406. package/dist/src/task-aware-context.js.map +0 -1
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Types for LLM-Driven Context Retrieval System
3
+ * Implements intelligent context selection based on compressed summaries
4
+ */
5
+ import { Frame, Anchor, Event } from '../context/frame-manager.js';
6
+ import { StackMemoryQuery } from '../query/query-parser.js';
7
+ /**
8
+ * Compressed summary of recent session activity
9
+ */
10
+ export interface RecentSessionSummary {
11
+ /** Recent frames with their key attributes */
12
+ frames: FrameSummary[];
13
+ /** Dominant operations performed */
14
+ dominantOperations: OperationSummary[];
15
+ /** Files that were touched */
16
+ filesTouched: FileSummary[];
17
+ /** Errors encountered */
18
+ errorsEncountered: ErrorSummary[];
19
+ /** Time range covered */
20
+ timeRange: {
21
+ start: number;
22
+ end: number;
23
+ durationMs: number;
24
+ };
25
+ }
26
+ export interface FrameSummary {
27
+ frameId: string;
28
+ name: string;
29
+ type: string;
30
+ depth: number;
31
+ eventCount: number;
32
+ anchorCount: number;
33
+ score: number;
34
+ createdAt: number;
35
+ closedAt?: number;
36
+ digestPreview?: string;
37
+ }
38
+ export interface OperationSummary {
39
+ operation: string;
40
+ count: number;
41
+ lastOccurrence: number;
42
+ successRate: number;
43
+ }
44
+ export interface FileSummary {
45
+ path: string;
46
+ operationCount: number;
47
+ lastModified: number;
48
+ operations: string[];
49
+ }
50
+ export interface ErrorSummary {
51
+ errorType: string;
52
+ message: string;
53
+ count: number;
54
+ lastOccurrence: number;
55
+ resolved: boolean;
56
+ }
57
+ /**
58
+ * Historical patterns extracted from memory
59
+ */
60
+ export interface HistoricalPatterns {
61
+ /** Frame counts by topic */
62
+ topicFrameCounts: Record<string, number>;
63
+ /** Key decisions made */
64
+ keyDecisions: DecisionSummary[];
65
+ /** Recurring issues */
66
+ recurringIssues: IssueSummary[];
67
+ /** Common tool sequences */
68
+ commonToolSequences: ToolSequence[];
69
+ /** Time-based activity patterns */
70
+ activityPatterns: ActivityPattern[];
71
+ }
72
+ export interface DecisionSummary {
73
+ id: string;
74
+ text: string;
75
+ frameId: string;
76
+ timestamp: number;
77
+ impact: 'low' | 'medium' | 'high';
78
+ relatedFiles?: string[];
79
+ }
80
+ export interface IssueSummary {
81
+ issueType: string;
82
+ occurrenceCount: number;
83
+ lastSeen: number;
84
+ resolutionRate: number;
85
+ commonFixes?: string[];
86
+ }
87
+ export interface ToolSequence {
88
+ pattern: string;
89
+ frequency: number;
90
+ avgDuration: number;
91
+ successRate: number;
92
+ }
93
+ export interface ActivityPattern {
94
+ periodType: 'hourly' | 'daily' | 'weekly';
95
+ peakPeriods: string[];
96
+ avgEventsPerPeriod: number;
97
+ }
98
+ /**
99
+ * Queryable indices for fast retrieval
100
+ */
101
+ export interface QueryableIndices {
102
+ /** Index by error type */
103
+ byErrorType: Record<string, string[]>;
104
+ /** Index by timeframe */
105
+ byTimeframe: Record<string, string[]>;
106
+ /** Index by contributor */
107
+ byContributor: Record<string, string[]>;
108
+ /** Index by topic */
109
+ byTopic: Record<string, string[]>;
110
+ /** Index by file */
111
+ byFile: Record<string, string[]>;
112
+ }
113
+ /**
114
+ * Complete compressed summary for LLM analysis
115
+ */
116
+ export interface CompressedSummary {
117
+ /** Project identifier */
118
+ projectId: string;
119
+ /** Generation timestamp */
120
+ generatedAt: number;
121
+ /** Recent session summary */
122
+ recentSession: RecentSessionSummary;
123
+ /** Historical patterns */
124
+ historicalPatterns: HistoricalPatterns;
125
+ /** Queryable indices */
126
+ queryableIndices: QueryableIndices;
127
+ /** Summary statistics */
128
+ stats: SummaryStats;
129
+ }
130
+ export interface SummaryStats {
131
+ totalFrames: number;
132
+ totalEvents: number;
133
+ totalAnchors: number;
134
+ totalDecisions: number;
135
+ oldestFrame: number;
136
+ newestFrame: number;
137
+ avgFrameDepth: number;
138
+ avgEventsPerFrame: number;
139
+ }
140
+ /**
141
+ * LLM analysis request
142
+ */
143
+ export interface LLMAnalysisRequest {
144
+ /** Current user query */
145
+ currentQuery: string;
146
+ /** Parsed structured query */
147
+ parsedQuery?: StackMemoryQuery;
148
+ /** Compressed summary */
149
+ compressedSummary: CompressedSummary;
150
+ /** Token budget for context */
151
+ tokenBudget: number;
152
+ /** Optional hints for retrieval */
153
+ hints?: RetrievalHints;
154
+ }
155
+ export interface RetrievalHints {
156
+ /** Prefer recent frames */
157
+ preferRecent?: boolean;
158
+ /** Focus on specific topics */
159
+ focusTopics?: string[];
160
+ /** Include error context */
161
+ includeErrors?: boolean;
162
+ /** Include decision history */
163
+ includeDecisions?: boolean;
164
+ /** Minimum relevance score */
165
+ minRelevance?: number;
166
+ }
167
+ /**
168
+ * LLM analysis response
169
+ */
170
+ export interface LLMAnalysisResponse {
171
+ /** Reasoning for the retrieval decision (auditable) */
172
+ reasoning: string;
173
+ /** Frames to retrieve with priority order */
174
+ framesToRetrieve: FrameRetrievalPlan[];
175
+ /** Confidence score (0.0 - 1.0) */
176
+ confidenceScore: number;
177
+ /** Additional context recommendations */
178
+ recommendations: ContextRecommendation[];
179
+ /** Analysis metadata */
180
+ metadata: AnalysisMetadata;
181
+ }
182
+ export interface FrameRetrievalPlan {
183
+ frameId: string;
184
+ priority: number;
185
+ reason: string;
186
+ includeEvents: boolean;
187
+ includeAnchors: boolean;
188
+ includeDigest: boolean;
189
+ estimatedTokens: number;
190
+ }
191
+ export interface ContextRecommendation {
192
+ type: 'include' | 'exclude' | 'summarize';
193
+ target: string;
194
+ reason: string;
195
+ impact: 'low' | 'medium' | 'high';
196
+ }
197
+ export interface AnalysisMetadata {
198
+ analysisTimeMs: number;
199
+ summaryTokens: number;
200
+ queryComplexity: 'simple' | 'moderate' | 'complex';
201
+ matchedPatterns: string[];
202
+ fallbackUsed: boolean;
203
+ }
204
+ /**
205
+ * Retrieved context result
206
+ */
207
+ export interface RetrievedContext {
208
+ /** Assembled context string */
209
+ context: string;
210
+ /** Frames included */
211
+ frames: Frame[];
212
+ /** Anchors included */
213
+ anchors: Anchor[];
214
+ /** Events included */
215
+ events: Event[];
216
+ /** LLM analysis that drove retrieval */
217
+ analysis: LLMAnalysisResponse;
218
+ /** Token usage */
219
+ tokenUsage: {
220
+ budget: number;
221
+ used: number;
222
+ remaining: number;
223
+ };
224
+ /** Retrieval metadata */
225
+ metadata: RetrievalMetadata;
226
+ }
227
+ export interface RetrievalMetadata {
228
+ retrievalTimeMs: number;
229
+ cacheHit: boolean;
230
+ framesScanned: number;
231
+ framesIncluded: number;
232
+ compressionRatio: number;
233
+ }
234
+ /**
235
+ * Configuration for the retrieval system
236
+ */
237
+ export interface RetrievalConfig {
238
+ /** Maximum frames to include in summary */
239
+ maxSummaryFrames: number;
240
+ /** Default token budget */
241
+ defaultTokenBudget: number;
242
+ /** Cache TTL in seconds */
243
+ cacheTtlSeconds: number;
244
+ /** Minimum confidence to use LLM suggestions */
245
+ minConfidenceThreshold: number;
246
+ /** Enable fallback to heuristic retrieval */
247
+ enableFallback: boolean;
248
+ /** LLM provider configuration */
249
+ llmConfig: {
250
+ provider: 'anthropic' | 'openai' | 'local';
251
+ model: string;
252
+ maxTokens: number;
253
+ temperature: number;
254
+ };
255
+ }
256
+ export declare const DEFAULT_RETRIEVAL_CONFIG: RetrievalConfig;
257
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/retrieval/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Types for LLM-Driven Context Retrieval System
3
+ * Implements intelligent context selection based on compressed summaries
4
+ */
5
+ export const DEFAULT_RETRIEVAL_CONFIG = {
6
+ maxSummaryFrames: 15,
7
+ defaultTokenBudget: 8000,
8
+ cacheTtlSeconds: 300,
9
+ minConfidenceThreshold: 0.6,
10
+ enableFallback: true,
11
+ llmConfig: {
12
+ provider: 'anthropic',
13
+ model: 'claude-3-haiku-20240307',
14
+ maxTokens: 1024,
15
+ temperature: 0.3,
16
+ },
17
+ };
18
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/retrieval/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoRH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,GAAG;IACpB,sBAAsB,EAAE,GAAG;IAC3B,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE;QACT,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,GAAG;KACjB;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SessionManager, sessionManager, type Session, type SessionOptions, FrameQueryMode } from './session-manager.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SessionManager, sessionManager, FrameQueryMode } from './session-manager.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EAGd,cAAc,EACf,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Session Management for StackMemory
3
+ * Provides session persistence and recovery across CLI invocations
4
+ */
5
+ export interface Session {
6
+ sessionId: string;
7
+ runId: string;
8
+ projectId: string;
9
+ branch?: string;
10
+ startedAt: number;
11
+ lastActiveAt: number;
12
+ metadata: {
13
+ user?: string;
14
+ environment?: string;
15
+ tags?: string[];
16
+ cliVersion?: string;
17
+ };
18
+ state: 'active' | 'suspended' | 'closed';
19
+ }
20
+ export interface SessionOptions {
21
+ sessionId?: string;
22
+ projectPath?: string;
23
+ branch?: string;
24
+ metadata?: Session['metadata'];
25
+ }
26
+ export declare enum FrameQueryMode {
27
+ CURRENT_SESSION = "current",
28
+ PROJECT_ACTIVE = "project",
29
+ ALL_ACTIVE = "all",
30
+ HISTORICAL = "historical"
31
+ }
32
+ export declare class SessionManager {
33
+ private static instance;
34
+ private sessionsDir;
35
+ private currentSession;
36
+ private readonly STALE_THRESHOLD;
37
+ private constructor();
38
+ static getInstance(): SessionManager;
39
+ initialize(): Promise<void>;
40
+ getOrCreateSession(options?: SessionOptions): Promise<Session>;
41
+ createSession(params: {
42
+ projectId: string;
43
+ branch?: string;
44
+ metadata?: Session['metadata'];
45
+ }): Promise<Session>;
46
+ loadSession(sessionId: string): Promise<Session | null>;
47
+ saveSession(session: Session): Promise<void>;
48
+ suspendSession(sessionId?: string): Promise<void>;
49
+ resumeSession(sessionId: string): Promise<Session>;
50
+ closeSession(sessionId?: string): Promise<void>;
51
+ listSessions(filter?: {
52
+ projectId?: string;
53
+ state?: Session['state'];
54
+ branch?: string;
55
+ }): Promise<Session[]>;
56
+ mergeSessions(sourceId: string, targetId: string): Promise<Session>;
57
+ cleanupStaleSessions(maxAge?: number): Promise<number>;
58
+ getCurrentSession(): Session | null;
59
+ getSessionRunId(): string;
60
+ private getProjectHash;
61
+ private getGitBranch;
62
+ private findProjectBranchSession;
63
+ private findLastActiveSession;
64
+ private setProjectActiveSession;
65
+ private isSessionRecent;
66
+ private touchSession;
67
+ }
68
+ export declare const sessionManager: SessionManager;
69
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/session/session-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAChC;AAED,oBAAY,cAAc;IACxB,eAAe,YAAY;IAC3B,cAAc,YAAY;IAC1B,UAAU,QAAQ;IAClB,UAAU,eAAe;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAEvD,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,cAAc;IAO9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,kBAAkB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAqD9D,aAAa,CAAC,MAAM,EAAE;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCd,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAiBvD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBlD,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/C,YAAY,CAAC,MAAM,CAAC,EAAE;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAuBhB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCnE,oBAAoB,CAAC,MAAM,GAAE,MAAiC,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBtF,iBAAiB,IAAI,OAAO,GAAG,IAAI;IAInC,eAAe,IAAI,MAAM;YAIX,cAAc;YAsBd,YAAY;YAcZ,wBAAwB;YAexB,qBAAqB;YASrB,uBAAuB;IASrC,OAAO,CAAC,eAAe;YAIT,YAAY;CAI3B;AAED,eAAO,MAAM,cAAc,gBAA+B,CAAC"}
@@ -0,0 +1,311 @@
1
+ /**
2
+ * Session Management for StackMemory
3
+ * Provides session persistence and recovery across CLI invocations
4
+ */
5
+ import { v4 as uuidv4 } from 'uuid';
6
+ import * as fs from 'fs/promises';
7
+ import * as path from 'path';
8
+ import * as crypto from 'crypto';
9
+ import { logger } from '../monitoring/logger.js';
10
+ import { SystemError, ErrorCode } from '../errors/index.js';
11
+ export var FrameQueryMode;
12
+ (function (FrameQueryMode) {
13
+ FrameQueryMode["CURRENT_SESSION"] = "current";
14
+ FrameQueryMode["PROJECT_ACTIVE"] = "project";
15
+ FrameQueryMode["ALL_ACTIVE"] = "all";
16
+ FrameQueryMode["HISTORICAL"] = "historical";
17
+ })(FrameQueryMode || (FrameQueryMode = {}));
18
+ export class SessionManager {
19
+ static instance;
20
+ sessionsDir;
21
+ currentSession = null;
22
+ STALE_THRESHOLD = 24 * 60 * 60 * 1000; // 24 hours
23
+ constructor() {
24
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
25
+ this.sessionsDir = path.join(homeDir, '.stackmemory', 'sessions');
26
+ }
27
+ static getInstance() {
28
+ if (!SessionManager.instance) {
29
+ SessionManager.instance = new SessionManager();
30
+ }
31
+ return SessionManager.instance;
32
+ }
33
+ async initialize() {
34
+ try {
35
+ await fs.mkdir(this.sessionsDir, { recursive: true });
36
+ await fs.mkdir(path.join(this.sessionsDir, 'projects'), { recursive: true });
37
+ await fs.mkdir(path.join(this.sessionsDir, 'history'), { recursive: true });
38
+ }
39
+ catch (error) {
40
+ throw new SystemError('Failed to initialize session directories', ErrorCode.INITIALIZATION_ERROR, { error, sessionsDir: this.sessionsDir });
41
+ }
42
+ }
43
+ async getOrCreateSession(options) {
44
+ // 1. Check explicit session ID
45
+ if (options?.sessionId) {
46
+ const session = await this.loadSession(options.sessionId);
47
+ if (session) {
48
+ this.currentSession = session;
49
+ return session;
50
+ }
51
+ }
52
+ // 2. Check environment variable
53
+ const envSessionId = process.env.STACKMEMORY_SESSION;
54
+ if (envSessionId) {
55
+ const session = await this.loadSession(envSessionId);
56
+ if (session) {
57
+ this.currentSession = session;
58
+ return session;
59
+ }
60
+ }
61
+ // 3. Check project + branch context
62
+ const projectHash = await this.getProjectHash(options?.projectPath);
63
+ const branch = options?.branch || await this.getGitBranch(options?.projectPath);
64
+ if (projectHash) {
65
+ // Try project+branch session
66
+ const branchSession = await this.findProjectBranchSession(projectHash, branch);
67
+ if (branchSession && this.isSessionRecent(branchSession)) {
68
+ await this.touchSession(branchSession);
69
+ this.currentSession = branchSession;
70
+ return branchSession;
71
+ }
72
+ // Try last active for project
73
+ const lastActive = await this.findLastActiveSession(projectHash);
74
+ if (lastActive && this.isSessionRecent(lastActive)) {
75
+ await this.touchSession(lastActive);
76
+ this.currentSession = lastActive;
77
+ return lastActive;
78
+ }
79
+ }
80
+ // 4. Create new session
81
+ const newSession = await this.createSession({
82
+ projectId: projectHash || 'global',
83
+ branch,
84
+ metadata: options?.metadata
85
+ });
86
+ this.currentSession = newSession;
87
+ return newSession;
88
+ }
89
+ async createSession(params) {
90
+ const session = {
91
+ sessionId: uuidv4(),
92
+ runId: uuidv4(),
93
+ projectId: params.projectId,
94
+ branch: params.branch,
95
+ startedAt: Date.now(),
96
+ lastActiveAt: Date.now(),
97
+ metadata: {
98
+ ...params.metadata,
99
+ user: process.env.USER,
100
+ environment: process.env.NODE_ENV || 'development',
101
+ cliVersion: process.env.npm_package_version
102
+ },
103
+ state: 'active'
104
+ };
105
+ await this.saveSession(session);
106
+ await this.setProjectActiveSession(params.projectId, session.sessionId);
107
+ // Set as current session
108
+ this.currentSession = session;
109
+ logger.info('Created new session', {
110
+ sessionId: session.sessionId,
111
+ projectId: session.projectId,
112
+ branch: session.branch
113
+ });
114
+ return session;
115
+ }
116
+ async loadSession(sessionId) {
117
+ try {
118
+ const sessionPath = path.join(this.sessionsDir, `${sessionId}.json`);
119
+ const data = await fs.readFile(sessionPath, 'utf-8');
120
+ return JSON.parse(data);
121
+ }
122
+ catch (error) {
123
+ // Check history
124
+ try {
125
+ const historyPath = path.join(this.sessionsDir, 'history', `${sessionId}.json`);
126
+ const data = await fs.readFile(historyPath, 'utf-8');
127
+ return JSON.parse(data);
128
+ }
129
+ catch {
130
+ return null;
131
+ }
132
+ }
133
+ }
134
+ async saveSession(session) {
135
+ const sessionPath = path.join(this.sessionsDir, `${session.sessionId}.json`);
136
+ await fs.writeFile(sessionPath, JSON.stringify(session, null, 2));
137
+ }
138
+ async suspendSession(sessionId) {
139
+ const id = sessionId || this.currentSession?.sessionId;
140
+ if (!id)
141
+ return;
142
+ const session = await this.loadSession(id);
143
+ if (session) {
144
+ session.state = 'suspended';
145
+ session.lastActiveAt = Date.now();
146
+ await this.saveSession(session);
147
+ }
148
+ }
149
+ async resumeSession(sessionId) {
150
+ const session = await this.loadSession(sessionId);
151
+ if (!session) {
152
+ throw new SystemError('Session not found', ErrorCode.NOT_FOUND, { sessionId });
153
+ }
154
+ session.state = 'active';
155
+ session.lastActiveAt = Date.now();
156
+ await this.saveSession(session);
157
+ this.currentSession = session;
158
+ return session;
159
+ }
160
+ async closeSession(sessionId) {
161
+ const id = sessionId || this.currentSession?.sessionId;
162
+ if (!id)
163
+ return;
164
+ const session = await this.loadSession(id);
165
+ if (session) {
166
+ session.state = 'closed';
167
+ session.lastActiveAt = Date.now();
168
+ // Move to history
169
+ const sessionPath = path.join(this.sessionsDir, `${session.sessionId}.json`);
170
+ const historyPath = path.join(this.sessionsDir, 'history', `${session.sessionId}.json`);
171
+ await fs.rename(sessionPath, historyPath);
172
+ }
173
+ }
174
+ async listSessions(filter) {
175
+ const sessions = [];
176
+ // Load active sessions
177
+ const files = await fs.readdir(this.sessionsDir);
178
+ for (const file of files) {
179
+ if (file.endsWith('.json')) {
180
+ const session = await this.loadSession(file.replace('.json', ''));
181
+ if (session) {
182
+ sessions.push(session);
183
+ }
184
+ }
185
+ }
186
+ // Apply filters
187
+ return sessions.filter(s => {
188
+ if (filter?.projectId && s.projectId !== filter.projectId)
189
+ return false;
190
+ if (filter?.state && s.state !== filter.state)
191
+ return false;
192
+ if (filter?.branch && s.branch !== filter.branch)
193
+ return false;
194
+ return true;
195
+ });
196
+ }
197
+ async mergeSessions(sourceId, targetId) {
198
+ const source = await this.loadSession(sourceId);
199
+ const target = await this.loadSession(targetId);
200
+ if (!source || !target) {
201
+ throw new SystemError('Session not found for merge', ErrorCode.NOT_FOUND, { sourceId, targetId });
202
+ }
203
+ // Merge metadata
204
+ target.metadata = {
205
+ ...target.metadata,
206
+ ...source.metadata,
207
+ tags: [...(target.metadata.tags || []), ...(source.metadata.tags || [])]
208
+ };
209
+ // Update timestamps
210
+ target.lastActiveAt = Date.now();
211
+ // Close source session
212
+ await this.closeSession(sourceId);
213
+ await this.saveSession(target);
214
+ logger.info('Merged sessions', {
215
+ source: sourceId,
216
+ target: targetId
217
+ });
218
+ return target;
219
+ }
220
+ async cleanupStaleSessions(maxAge = 30 * 24 * 60 * 60 * 1000) {
221
+ const historyDir = path.join(this.sessionsDir, 'history');
222
+ const files = await fs.readdir(historyDir);
223
+ const cutoff = Date.now() - maxAge;
224
+ let cleaned = 0;
225
+ for (const file of files) {
226
+ if (file.endsWith('.json')) {
227
+ const filePath = path.join(historyDir, file);
228
+ const stats = await fs.stat(filePath);
229
+ if (stats.mtimeMs < cutoff) {
230
+ await fs.unlink(filePath);
231
+ cleaned++;
232
+ }
233
+ }
234
+ }
235
+ logger.info(`Cleaned up ${cleaned} stale sessions`);
236
+ return cleaned;
237
+ }
238
+ getCurrentSession() {
239
+ return this.currentSession;
240
+ }
241
+ getSessionRunId() {
242
+ return this.currentSession?.runId || uuidv4();
243
+ }
244
+ async getProjectHash(projectPath) {
245
+ try {
246
+ const cwd = projectPath || process.cwd();
247
+ // Try to use the basename of the directory as project ID
248
+ const path = await import('path');
249
+ const projectName = path.basename(cwd);
250
+ // Check if it looks like a demo/development project
251
+ if (projectName === 'stackmemory') {
252
+ return 'stackmemory-demo';
253
+ }
254
+ // Otherwise use hash for consistency
255
+ const hash = crypto.createHash('sha256');
256
+ hash.update(cwd);
257
+ return hash.digest('hex').substring(0, 12);
258
+ }
259
+ catch {
260
+ return null;
261
+ }
262
+ }
263
+ async getGitBranch(projectPath) {
264
+ try {
265
+ const { execSync } = await import('child_process');
266
+ const cwd = projectPath || process.cwd();
267
+ const branch = execSync('git rev-parse --abbrev-ref HEAD', {
268
+ cwd,
269
+ encoding: 'utf-8'
270
+ }).trim();
271
+ return branch;
272
+ }
273
+ catch {
274
+ return undefined;
275
+ }
276
+ }
277
+ async findProjectBranchSession(projectHash, branch) {
278
+ if (!branch)
279
+ return null;
280
+ const sessions = await this.listSessions({
281
+ projectId: projectHash,
282
+ state: 'active',
283
+ branch
284
+ });
285
+ return sessions.sort((a, b) => b.lastActiveAt - a.lastActiveAt)[0] || null;
286
+ }
287
+ async findLastActiveSession(projectHash) {
288
+ const sessions = await this.listSessions({
289
+ projectId: projectHash,
290
+ state: 'active'
291
+ });
292
+ return sessions.sort((a, b) => b.lastActiveAt - a.lastActiveAt)[0] || null;
293
+ }
294
+ async setProjectActiveSession(projectId, sessionId) {
295
+ const projectFile = path.join(this.sessionsDir, 'projects', `${projectId}.json`);
296
+ await fs.writeFile(projectFile, JSON.stringify({
297
+ projectId,
298
+ activeSessionId: sessionId,
299
+ updatedAt: Date.now()
300
+ }, null, 2));
301
+ }
302
+ isSessionRecent(session) {
303
+ return Date.now() - session.lastActiveAt < this.STALE_THRESHOLD;
304
+ }
305
+ async touchSession(session) {
306
+ session.lastActiveAt = Date.now();
307
+ await this.saveSession(session);
308
+ }
309
+ }
310
+ export const sessionManager = SessionManager.getInstance();
311
+ //# sourceMappingURL=session-manager.js.map