@stackmemoryai/stackmemory 0.2.4 → 0.2.7

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 (331) hide show
  1. package/README.md +353 -83
  2. package/dist/index.js +382 -0
  3. package/dist/scripts/cancel-duplicate-tasks.d.ts +7 -0
  4. package/dist/scripts/cancel-duplicate-tasks.d.ts.map +1 -0
  5. package/dist/scripts/cancel-duplicate-tasks.js +171 -0
  6. package/dist/scripts/cancel-duplicate-tasks.js.map +1 -0
  7. package/dist/scripts/list-linear-tasks.d.ts +6 -0
  8. package/dist/scripts/list-linear-tasks.d.ts.map +1 -0
  9. package/dist/scripts/list-linear-tasks.js +122 -0
  10. package/dist/scripts/list-linear-tasks.js.map +1 -0
  11. package/dist/scripts/merge-linear-duplicates-safe.d.ts +7 -0
  12. package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +1 -0
  13. package/dist/scripts/merge-linear-duplicates-safe.js +265 -0
  14. package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -0
  15. package/dist/scripts/merge-linear-duplicates.d.ts +7 -0
  16. package/dist/scripts/merge-linear-duplicates.d.ts.map +1 -0
  17. package/dist/scripts/merge-linear-duplicates.js +126 -0
  18. package/dist/scripts/merge-linear-duplicates.js.map +1 -0
  19. package/dist/scripts/show-linear-summary.d.ts +6 -0
  20. package/dist/scripts/show-linear-summary.d.ts.map +1 -0
  21. package/dist/scripts/show-linear-summary.js +117 -0
  22. package/dist/scripts/show-linear-summary.js.map +1 -0
  23. package/dist/src/analytics/api/analytics-api.d.ts +24 -0
  24. package/dist/src/analytics/api/analytics-api.d.ts.map +1 -0
  25. package/dist/src/analytics/api/analytics-api.js +279 -0
  26. package/dist/src/analytics/api/analytics-api.js.map +1 -0
  27. package/dist/src/analytics/core/analytics-service.d.ts +23 -0
  28. package/dist/src/analytics/core/analytics-service.d.ts.map +1 -0
  29. package/dist/src/analytics/core/analytics-service.js +160 -0
  30. package/dist/src/analytics/core/analytics-service.js.map +1 -0
  31. package/dist/src/analytics/index.d.ts +12 -0
  32. package/dist/src/analytics/index.d.ts.map +1 -0
  33. package/dist/src/analytics/index.js +11 -0
  34. package/dist/src/analytics/index.js.map +1 -0
  35. package/dist/src/analytics/queries/metrics-queries.d.ts +11 -0
  36. package/dist/src/analytics/queries/metrics-queries.d.ts.map +1 -0
  37. package/dist/src/analytics/queries/metrics-queries.js +179 -0
  38. package/dist/src/analytics/queries/metrics-queries.js.map +1 -0
  39. package/dist/src/analytics/types/metrics.d.ts +60 -0
  40. package/dist/src/analytics/types/metrics.d.ts.map +1 -0
  41. package/dist/src/analytics/types/metrics.js +2 -0
  42. package/dist/src/analytics/types/metrics.js.map +1 -0
  43. package/dist/src/cli/__tests__/index.test.d.ts +5 -0
  44. package/dist/src/cli/__tests__/index.test.d.ts.map +1 -0
  45. package/dist/src/cli/__tests__/index.test.js +726 -0
  46. package/dist/src/cli/__tests__/index.test.js.map +1 -0
  47. package/dist/src/cli/analytics-viewer.d.ts +3 -0
  48. package/dist/src/cli/analytics-viewer.d.ts.map +1 -0
  49. package/dist/src/cli/analytics-viewer.js +89 -0
  50. package/dist/src/cli/analytics-viewer.js.map +1 -0
  51. package/dist/src/cli/auto-detect.d.ts +61 -0
  52. package/dist/src/cli/auto-detect.d.ts.map +1 -0
  53. package/dist/src/cli/auto-detect.js +350 -0
  54. package/dist/src/cli/auto-detect.js.map +1 -0
  55. package/dist/src/cli/browser-test.d.ts +6 -0
  56. package/dist/src/cli/browser-test.d.ts.map +1 -0
  57. package/dist/src/cli/browser-test.js +32 -0
  58. package/dist/src/cli/browser-test.js.map +1 -0
  59. package/dist/src/cli/claude-sm.d.ts +7 -0
  60. package/dist/src/cli/claude-sm.d.ts.map +1 -0
  61. package/dist/src/cli/claude-sm.js +357 -0
  62. package/dist/src/cli/claude-sm.js.map +1 -0
  63. package/dist/src/cli/cli.js +157 -0
  64. package/dist/src/cli/cli.js.map +1 -1
  65. package/dist/src/cli/commands/context.d.ts +7 -0
  66. package/dist/src/cli/commands/context.d.ts.map +1 -0
  67. package/dist/src/cli/commands/context.js +365 -0
  68. package/dist/src/cli/commands/context.js.map +1 -0
  69. package/dist/src/cli/commands/linear-test.d.ts +6 -0
  70. package/dist/src/cli/commands/linear-test.d.ts.map +1 -0
  71. package/dist/src/cli/commands/linear-test.js +123 -0
  72. package/dist/src/cli/commands/linear-test.js.map +1 -0
  73. package/dist/src/cli/commands/linear.d.ts +6 -0
  74. package/dist/src/cli/commands/linear.d.ts.map +1 -0
  75. package/dist/src/cli/commands/linear.js +317 -0
  76. package/dist/src/cli/commands/linear.js.map +1 -0
  77. package/dist/src/cli/commands/log.d.ts +7 -0
  78. package/dist/src/cli/commands/log.d.ts.map +1 -0
  79. package/dist/src/cli/commands/log.js +168 -0
  80. package/dist/src/cli/commands/log.js.map +1 -0
  81. package/dist/src/cli/commands/onboard.d.ts +8 -0
  82. package/dist/src/cli/commands/onboard.d.ts.map +1 -0
  83. package/dist/src/cli/commands/onboard.js +363 -0
  84. package/dist/src/cli/commands/onboard.js.map +1 -0
  85. package/dist/src/cli/commands/projects.d.ts +8 -0
  86. package/dist/src/cli/commands/projects.d.ts.map +1 -0
  87. package/dist/src/cli/commands/projects.js +220 -0
  88. package/dist/src/cli/commands/projects.js.map +1 -0
  89. package/dist/src/cli/commands/search.d.ts +7 -0
  90. package/dist/src/cli/commands/search.d.ts.map +1 -0
  91. package/dist/src/cli/commands/search.js +162 -0
  92. package/dist/src/cli/commands/search.js.map +1 -0
  93. package/dist/src/cli/commands/session.d.ts +7 -0
  94. package/dist/src/cli/commands/session.d.ts.map +1 -0
  95. package/dist/src/cli/commands/session.js +222 -0
  96. package/dist/src/cli/commands/session.js.map +1 -0
  97. package/dist/src/cli/commands/tasks.d.ts +7 -0
  98. package/dist/src/cli/commands/tasks.d.ts.map +1 -0
  99. package/dist/src/cli/commands/tasks.js +229 -0
  100. package/dist/src/cli/commands/tasks.js.map +1 -0
  101. package/dist/src/cli/commands/webhook.d.ts +3 -0
  102. package/dist/src/cli/commands/webhook.d.ts.map +1 -0
  103. package/dist/src/cli/commands/webhook.js +157 -0
  104. package/dist/src/cli/commands/webhook.js.map +1 -0
  105. package/dist/src/cli/commands/worktree.d.ts +8 -0
  106. package/dist/src/cli/commands/worktree.d.ts.map +1 -0
  107. package/dist/src/cli/commands/worktree.js +339 -0
  108. package/dist/src/cli/commands/worktree.js.map +1 -0
  109. package/dist/src/cli/index.d.ts +8 -0
  110. package/dist/src/cli/index.d.ts.map +1 -0
  111. package/dist/src/cli/index.js +944 -0
  112. package/dist/src/cli/index.js.map +1 -0
  113. package/dist/src/cli/project-commands.d.ts +8 -0
  114. package/dist/src/cli/project-commands.d.ts.map +1 -0
  115. package/dist/src/cli/project-commands.js +212 -0
  116. package/dist/src/cli/project-commands.js.map +1 -0
  117. package/dist/src/cli/utils/viewer.d.ts +3 -0
  118. package/dist/src/cli/utils/viewer.d.ts.map +1 -0
  119. package/dist/src/cli/utils/viewer.js +91 -0
  120. package/dist/src/cli/utils/viewer.js.map +1 -0
  121. package/dist/src/core/context/__tests__/frame-manager.test.d.ts +5 -0
  122. package/dist/src/core/context/__tests__/frame-manager.test.d.ts.map +1 -0
  123. package/dist/src/core/context/__tests__/frame-manager.test.js +892 -0
  124. package/dist/src/core/context/__tests__/frame-manager.test.js.map +1 -0
  125. package/dist/src/core/context/auto-context.d.ts +22 -0
  126. package/dist/src/core/context/auto-context.d.ts.map +1 -0
  127. package/dist/src/core/context/auto-context.js +77 -0
  128. package/dist/src/core/context/auto-context.js.map +1 -0
  129. package/dist/src/core/context/frame-manager.d.ts +110 -0
  130. package/dist/src/core/context/frame-manager.d.ts.map +1 -0
  131. package/dist/src/core/context/frame-manager.js +593 -0
  132. package/dist/src/core/context/frame-manager.js.map +1 -0
  133. package/dist/src/core/errors/__tests__/error-handling.test.d.ts +5 -0
  134. package/dist/src/core/errors/__tests__/error-handling.test.d.ts.map +1 -0
  135. package/dist/src/core/errors/__tests__/error-handling.test.js +239 -0
  136. package/dist/src/core/errors/__tests__/error-handling.test.js.map +1 -0
  137. package/dist/src/core/errors/index.d.ts +135 -0
  138. package/dist/src/core/errors/index.d.ts.map +1 -0
  139. package/dist/src/core/errors/index.js +274 -0
  140. package/dist/src/core/errors/index.js.map +1 -0
  141. package/dist/src/core/errors/recovery.d.ts +86 -0
  142. package/dist/src/core/errors/recovery.d.ts.map +1 -0
  143. package/dist/src/core/errors/recovery.js +274 -0
  144. package/dist/src/core/errors/recovery.js.map +1 -0
  145. package/dist/src/core/logger.test.js +1 -1
  146. package/dist/src/core/logger.test.js.map +1 -1
  147. package/dist/src/core/monitoring/error-handler.d.ts +46 -0
  148. package/dist/src/core/monitoring/error-handler.d.ts.map +1 -0
  149. package/dist/src/core/monitoring/error-handler.js +212 -0
  150. package/dist/src/core/monitoring/error-handler.js.map +1 -0
  151. package/dist/src/core/monitoring/logger.d.ts +24 -0
  152. package/dist/src/core/monitoring/logger.d.ts.map +1 -0
  153. package/dist/src/core/monitoring/logger.js +121 -0
  154. package/dist/src/core/monitoring/logger.js.map +1 -0
  155. package/dist/src/core/monitoring/metrics.d.ts +7 -0
  156. package/dist/src/core/monitoring/metrics.d.ts.map +1 -0
  157. package/dist/src/core/monitoring/metrics.js +13 -0
  158. package/dist/src/core/monitoring/metrics.js.map +1 -0
  159. package/dist/src/core/monitoring/progress-tracker.d.ts +95 -0
  160. package/dist/src/core/monitoring/progress-tracker.d.ts.map +1 -0
  161. package/dist/src/core/monitoring/progress-tracker.js +178 -0
  162. package/dist/src/core/monitoring/progress-tracker.js.map +1 -0
  163. package/dist/src/core/project-manager.d.ts +130 -0
  164. package/dist/src/core/project-manager.d.ts.map +1 -0
  165. package/dist/src/core/project-manager.js +582 -0
  166. package/dist/src/core/project-manager.js.map +1 -0
  167. package/dist/src/core/projects/project-manager.d.ts +130 -0
  168. package/dist/src/core/projects/project-manager.d.ts.map +1 -0
  169. package/dist/src/core/projects/project-manager.js +709 -0
  170. package/dist/src/core/projects/project-manager.js.map +1 -0
  171. package/dist/src/core/session/index.d.ts +2 -0
  172. package/dist/src/core/session/index.d.ts.map +1 -0
  173. package/dist/src/core/session/index.js +2 -0
  174. package/dist/src/core/session/index.js.map +1 -0
  175. package/dist/src/core/session/session-manager.d.ts +69 -0
  176. package/dist/src/core/session/session-manager.d.ts.map +1 -0
  177. package/dist/src/core/session/session-manager.js +311 -0
  178. package/dist/src/core/session/session-manager.js.map +1 -0
  179. package/dist/src/core/utils/update-checker.d.ts +38 -0
  180. package/dist/src/core/utils/update-checker.d.ts.map +1 -0
  181. package/dist/src/core/utils/update-checker.js +213 -0
  182. package/dist/src/core/utils/update-checker.js.map +1 -0
  183. package/dist/src/core/worktree/worktree-manager.d.ts +110 -0
  184. package/dist/src/core/worktree/worktree-manager.d.ts.map +1 -0
  185. package/dist/src/core/worktree/worktree-manager.js +456 -0
  186. package/dist/src/core/worktree/worktree-manager.js.map +1 -0
  187. package/dist/src/features/analytics/api/analytics-api.d.ts +24 -0
  188. package/dist/src/features/analytics/api/analytics-api.d.ts.map +1 -0
  189. package/dist/src/features/analytics/api/analytics-api.js +289 -0
  190. package/dist/src/features/analytics/api/analytics-api.js.map +1 -0
  191. package/dist/src/features/analytics/core/analytics-service.d.ts +29 -0
  192. package/dist/src/features/analytics/core/analytics-service.d.ts.map +1 -0
  193. package/dist/src/features/analytics/core/analytics-service.js +275 -0
  194. package/dist/src/features/analytics/core/analytics-service.js.map +1 -0
  195. package/dist/src/features/analytics/index.d.ts +12 -0
  196. package/dist/src/features/analytics/index.d.ts.map +1 -0
  197. package/dist/src/features/analytics/index.js +11 -0
  198. package/dist/src/features/analytics/index.js.map +1 -0
  199. package/dist/src/features/analytics/queries/metrics-queries.d.ts +11 -0
  200. package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +1 -0
  201. package/dist/src/features/analytics/queries/metrics-queries.js +240 -0
  202. package/dist/src/features/analytics/queries/metrics-queries.js.map +1 -0
  203. package/dist/src/features/analytics/types/metrics.d.ts +60 -0
  204. package/dist/src/features/analytics/types/metrics.d.ts.map +1 -0
  205. package/dist/src/features/analytics/types/metrics.js +2 -0
  206. package/dist/src/features/analytics/types/metrics.js.map +1 -0
  207. package/dist/src/features/browser/browser-mcp.d.ts +94 -0
  208. package/dist/src/features/browser/browser-mcp.d.ts.map +1 -0
  209. package/dist/src/features/browser/browser-mcp.js +459 -0
  210. package/dist/src/features/browser/browser-mcp.js.map +1 -0
  211. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts +5 -0
  212. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts.map +1 -0
  213. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js +712 -0
  214. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js.map +1 -0
  215. package/dist/src/features/tasks/pebbles-task-store.d.ts +121 -0
  216. package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -0
  217. package/dist/src/features/tasks/pebbles-task-store.js +493 -0
  218. package/dist/src/features/tasks/pebbles-task-store.js.map +1 -0
  219. package/dist/src/features/tasks/task-aware-context.d.ts +103 -0
  220. package/dist/src/features/tasks/task-aware-context.d.ts.map +1 -0
  221. package/dist/src/features/tasks/task-aware-context.js +412 -0
  222. package/dist/src/features/tasks/task-aware-context.js.map +1 -0
  223. package/dist/src/index.d.ts +4 -4
  224. package/dist/src/index.d.ts.map +1 -1
  225. package/dist/src/index.js +4 -4
  226. package/dist/src/index.js.map +1 -1
  227. package/dist/src/integrations/browser-mcp.d.ts +94 -0
  228. package/dist/src/integrations/browser-mcp.d.ts.map +1 -0
  229. package/dist/src/integrations/browser-mcp.js +431 -0
  230. package/dist/src/integrations/browser-mcp.js.map +1 -0
  231. package/dist/src/integrations/linear/__tests__/auth.test.d.ts +5 -0
  232. package/dist/src/integrations/linear/__tests__/auth.test.d.ts.map +1 -0
  233. package/dist/src/integrations/linear/__tests__/auth.test.js +517 -0
  234. package/dist/src/integrations/linear/__tests__/auth.test.js.map +1 -0
  235. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts +5 -0
  236. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts.map +1 -0
  237. package/dist/src/integrations/linear/__tests__/sync-service.test.js +700 -0
  238. package/dist/src/integrations/linear/__tests__/sync-service.test.js.map +1 -0
  239. package/dist/src/integrations/linear/auth.d.ts +99 -0
  240. package/dist/src/integrations/linear/auth.d.ts.map +1 -0
  241. package/dist/src/integrations/linear/auth.js +319 -0
  242. package/dist/src/integrations/linear/auth.js.map +1 -0
  243. package/dist/src/integrations/linear/auto-sync.d.ts +77 -0
  244. package/dist/src/integrations/linear/auto-sync.d.ts.map +1 -0
  245. package/dist/src/integrations/linear/auto-sync.js +268 -0
  246. package/dist/src/integrations/linear/auto-sync.js.map +1 -0
  247. package/dist/src/integrations/linear/client.d.ts +113 -0
  248. package/dist/src/integrations/linear/client.d.ts.map +1 -0
  249. package/dist/src/integrations/linear/client.js +364 -0
  250. package/dist/src/integrations/linear/client.js.map +1 -0
  251. package/dist/src/integrations/linear/config.d.ts +51 -0
  252. package/dist/src/integrations/linear/config.d.ts.map +1 -0
  253. package/dist/src/integrations/linear/config.js +103 -0
  254. package/dist/src/integrations/linear/config.js.map +1 -0
  255. package/dist/src/integrations/linear/sync-service.d.ts +25 -0
  256. package/dist/src/integrations/linear/sync-service.d.ts.map +1 -0
  257. package/dist/src/integrations/linear/sync-service.js +198 -0
  258. package/dist/src/integrations/linear/sync-service.js.map +1 -0
  259. package/dist/src/integrations/linear/sync.d.ts +119 -0
  260. package/dist/src/integrations/linear/sync.d.ts.map +1 -0
  261. package/dist/src/integrations/linear/sync.js +538 -0
  262. package/dist/src/integrations/linear/sync.js.map +1 -0
  263. package/dist/src/integrations/linear/types.d.ts +75 -0
  264. package/dist/src/integrations/linear/types.d.ts.map +1 -0
  265. package/dist/src/integrations/linear/types.js +2 -0
  266. package/dist/src/integrations/linear/types.js.map +1 -0
  267. package/dist/src/integrations/linear/webhook-server.d.ts +32 -0
  268. package/dist/src/integrations/linear/webhook-server.d.ts.map +1 -0
  269. package/dist/src/integrations/linear/webhook-server.js +188 -0
  270. package/dist/src/integrations/linear/webhook-server.js.map +1 -0
  271. package/dist/src/integrations/linear/webhook.d.ts +95 -0
  272. package/dist/src/integrations/linear/webhook.d.ts.map +1 -0
  273. package/dist/src/integrations/linear/webhook.js +204 -0
  274. package/dist/src/integrations/linear/webhook.js.map +1 -0
  275. package/dist/src/integrations/mcp/__tests__/server.test.d.ts +5 -0
  276. package/dist/src/integrations/mcp/__tests__/server.test.d.ts.map +1 -0
  277. package/dist/src/integrations/mcp/__tests__/server.test.js +790 -0
  278. package/dist/src/integrations/mcp/__tests__/server.test.js.map +1 -0
  279. package/dist/src/integrations/mcp/server.d.ts +46 -0
  280. package/dist/src/integrations/mcp/server.d.ts.map +1 -0
  281. package/dist/src/integrations/mcp/server.js +1264 -0
  282. package/dist/src/integrations/mcp/server.js.map +1 -0
  283. package/dist/src/mcp/mcp-server.d.ts +1 -0
  284. package/dist/src/mcp/mcp-server.d.ts.map +1 -1
  285. package/dist/src/mcp/mcp-server.js +11 -0
  286. package/dist/src/mcp/mcp-server.js.map +1 -1
  287. package/dist/src/railway/index.d.ts +7 -0
  288. package/dist/src/railway/index.d.ts.map +1 -0
  289. package/dist/src/railway/index.js +401 -0
  290. package/dist/src/railway/index.js.map +1 -0
  291. package/dist/src/runway/auth/auth-middleware.d.ts +66 -0
  292. package/dist/src/runway/auth/auth-middleware.d.ts.map +1 -0
  293. package/dist/src/runway/auth/auth-middleware.js +337 -0
  294. package/dist/src/runway/auth/auth-middleware.js.map +1 -0
  295. package/dist/src/runway/server/runway-mcp-server.d.ts +46 -0
  296. package/dist/src/runway/server/runway-mcp-server.d.ts.map +1 -0
  297. package/dist/src/runway/server/runway-mcp-server.js +601 -0
  298. package/dist/src/runway/server/runway-mcp-server.js.map +1 -0
  299. package/dist/src/runway.bak/auth/auth-middleware.d.ts +66 -0
  300. package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +1 -0
  301. package/dist/src/runway.bak/auth/auth-middleware.js +337 -0
  302. package/dist/src/runway.bak/auth/auth-middleware.js.map +1 -0
  303. package/dist/src/runway.bak/server/runway-mcp-server.d.ts +46 -0
  304. package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +1 -0
  305. package/dist/src/runway.bak/server/runway-mcp-server.js +601 -0
  306. package/dist/src/runway.bak/server/runway-mcp-server.js.map +1 -0
  307. package/dist/src/servers/production/auth-middleware.d.ts +66 -0
  308. package/dist/src/servers/production/auth-middleware.d.ts.map +1 -0
  309. package/dist/src/servers/production/auth-middleware.js +346 -0
  310. package/dist/src/servers/production/auth-middleware.js.map +1 -0
  311. package/dist/src/servers/railway/index.d.ts +7 -0
  312. package/dist/src/servers/railway/index.d.ts.map +1 -0
  313. package/dist/src/servers/railway/index.js +401 -0
  314. package/dist/src/servers/railway/index.js.map +1 -0
  315. package/dist/src/services/config-service.d.ts +44 -0
  316. package/dist/src/services/config-service.d.ts.map +1 -0
  317. package/dist/src/services/config-service.js +61 -0
  318. package/dist/src/services/config-service.js.map +1 -0
  319. package/dist/src/services/context-service.d.ts +17 -0
  320. package/dist/src/services/context-service.d.ts.map +1 -0
  321. package/dist/src/services/context-service.js +88 -0
  322. package/dist/src/services/context-service.js.map +1 -0
  323. package/dist/src/types/task.d.ts +17 -0
  324. package/dist/src/types/task.d.ts.map +1 -0
  325. package/dist/src/types/task.js +2 -0
  326. package/dist/src/types/task.js.map +1 -0
  327. package/dist/src/utils/logger.d.ts +13 -0
  328. package/dist/src/utils/logger.d.ts.map +1 -0
  329. package/dist/src/utils/logger.js +52 -0
  330. package/dist/src/utils/logger.js.map +1 -0
  331. package/package.json +40 -5
@@ -0,0 +1,593 @@
1
+ /**
2
+ * StackMemory Frame Manager - Call Stack Implementation
3
+ * Manages nested frames representing the call stack of work
4
+ */
5
+ import { v4 as uuidv4 } from 'uuid';
6
+ import { logger } from '../monitoring/logger.js';
7
+ import { DatabaseError, FrameError, ErrorCode, createErrorHandler, } from '../errors/index.js';
8
+ import { sessionManager, FrameQueryMode } from '../session/index.js';
9
+ export class FrameManager {
10
+ db;
11
+ currentRunId;
12
+ sessionId;
13
+ projectId;
14
+ activeStack = []; // Stack of active frame IDs
15
+ queryMode = FrameQueryMode.PROJECT_ACTIVE;
16
+ constructor(db, projectId, runId) {
17
+ this.db = db;
18
+ this.projectId = projectId;
19
+ // Use session manager for run ID if available
20
+ const session = sessionManager.getCurrentSession();
21
+ if (session) {
22
+ this.currentRunId = session.runId;
23
+ this.sessionId = session.sessionId;
24
+ }
25
+ else {
26
+ this.currentRunId = runId || uuidv4();
27
+ this.sessionId = this.currentRunId; // Fallback for legacy behavior
28
+ }
29
+ this.initializeSchema();
30
+ this.loadActiveStack();
31
+ }
32
+ setQueryMode(mode) {
33
+ this.queryMode = mode;
34
+ this.loadActiveStack(); // Reload with new mode
35
+ }
36
+ initializeSchema() {
37
+ const errorHandler = createErrorHandler({
38
+ operation: 'initializeSchema',
39
+ projectId: this.projectId,
40
+ runId: this.currentRunId,
41
+ });
42
+ try {
43
+ // Enhanced frames table matching architecture
44
+ this.db.exec(`
45
+ CREATE TABLE IF NOT EXISTS frames (
46
+ frame_id TEXT PRIMARY KEY,
47
+ run_id TEXT NOT NULL,
48
+ project_id TEXT NOT NULL,
49
+ parent_frame_id TEXT REFERENCES frames(frame_id),
50
+ depth INTEGER NOT NULL DEFAULT 0,
51
+ type TEXT NOT NULL,
52
+ name TEXT NOT NULL,
53
+ state TEXT DEFAULT 'active',
54
+ inputs TEXT DEFAULT '{}',
55
+ outputs TEXT DEFAULT '{}',
56
+ digest_text TEXT,
57
+ digest_json TEXT DEFAULT '{}',
58
+ created_at INTEGER DEFAULT (unixepoch()),
59
+ closed_at INTEGER
60
+ );
61
+
62
+ CREATE TABLE IF NOT EXISTS events (
63
+ event_id TEXT PRIMARY KEY,
64
+ run_id TEXT NOT NULL,
65
+ frame_id TEXT NOT NULL,
66
+ seq INTEGER NOT NULL,
67
+ event_type TEXT NOT NULL,
68
+ payload TEXT NOT NULL,
69
+ ts INTEGER DEFAULT (unixepoch()),
70
+ FOREIGN KEY(frame_id) REFERENCES frames(frame_id)
71
+ );
72
+
73
+ CREATE TABLE IF NOT EXISTS anchors (
74
+ anchor_id TEXT PRIMARY KEY,
75
+ frame_id TEXT NOT NULL,
76
+ project_id TEXT NOT NULL,
77
+ type TEXT NOT NULL,
78
+ text TEXT NOT NULL,
79
+ priority INTEGER DEFAULT 0,
80
+ created_at INTEGER DEFAULT (unixepoch()),
81
+ metadata TEXT DEFAULT '{}',
82
+ FOREIGN KEY(frame_id) REFERENCES frames(frame_id)
83
+ );
84
+
85
+ CREATE INDEX IF NOT EXISTS idx_frames_run ON frames(run_id);
86
+ CREATE INDEX IF NOT EXISTS idx_frames_parent ON frames(parent_frame_id);
87
+ CREATE INDEX IF NOT EXISTS idx_frames_state ON frames(state);
88
+ CREATE INDEX IF NOT EXISTS idx_events_frame ON events(frame_id);
89
+ CREATE INDEX IF NOT EXISTS idx_events_seq ON events(frame_id, seq);
90
+ CREATE INDEX IF NOT EXISTS idx_anchors_frame ON anchors(frame_id);
91
+ `);
92
+ }
93
+ catch (error) {
94
+ const dbError = errorHandler(error, {
95
+ operation: 'initializeSchema',
96
+ schema: 'frames',
97
+ });
98
+ if (dbError instanceof DatabaseError) {
99
+ throw new DatabaseError('Failed to initialize frame database schema', ErrorCode.DB_MIGRATION_FAILED, {
100
+ projectId: this.projectId,
101
+ operation: 'initializeSchema',
102
+ originalError: error,
103
+ }, error instanceof Error ? error : undefined);
104
+ }
105
+ throw dbError;
106
+ }
107
+ }
108
+ loadActiveStack() {
109
+ const errorHandler = createErrorHandler({
110
+ operation: 'loadActiveStack',
111
+ runId: this.currentRunId,
112
+ projectId: this.projectId,
113
+ });
114
+ try {
115
+ let query;
116
+ let params;
117
+ // Build query based on query mode
118
+ switch (this.queryMode) {
119
+ case FrameQueryMode.ALL_ACTIVE:
120
+ query = `
121
+ SELECT frame_id, parent_frame_id, depth
122
+ FROM frames
123
+ WHERE state = 'active'
124
+ ORDER BY created_at DESC, depth ASC
125
+ `;
126
+ params = [];
127
+ break;
128
+ case FrameQueryMode.PROJECT_ACTIVE:
129
+ query = `
130
+ SELECT frame_id, parent_frame_id, depth, run_id
131
+ FROM frames
132
+ WHERE state = 'active' AND project_id = ?
133
+ ORDER BY created_at DESC, depth ASC
134
+ `;
135
+ params = [this.projectId];
136
+ break;
137
+ case FrameQueryMode.HISTORICAL:
138
+ query = `
139
+ SELECT frame_id, parent_frame_id, depth
140
+ FROM frames
141
+ WHERE project_id = ?
142
+ ORDER BY created_at DESC, depth ASC
143
+ `;
144
+ params = [this.projectId];
145
+ break;
146
+ case FrameQueryMode.CURRENT_SESSION:
147
+ default:
148
+ query = `
149
+ SELECT frame_id, parent_frame_id, depth
150
+ FROM frames
151
+ WHERE run_id = ? AND state = 'active'
152
+ ORDER BY depth ASC
153
+ `;
154
+ params = [this.currentRunId];
155
+ break;
156
+ }
157
+ const activeFrames = this.db.prepare(query).all(...params);
158
+ // Rebuild stack order
159
+ this.activeStack = this.buildStackOrder(activeFrames);
160
+ logger.info('Loaded active stack', {
161
+ runId: this.currentRunId,
162
+ stackDepth: this.activeStack.length,
163
+ activeFrames: this.activeStack,
164
+ queryMode: this.queryMode,
165
+ });
166
+ }
167
+ catch (error) {
168
+ const dbError = errorHandler(error, {
169
+ query: 'Frame loading query',
170
+ runId: this.currentRunId,
171
+ queryMode: this.queryMode,
172
+ });
173
+ if (dbError instanceof DatabaseError) {
174
+ throw new DatabaseError('Failed to load active frame stack', ErrorCode.DB_QUERY_FAILED, {
175
+ runId: this.currentRunId,
176
+ projectId: this.projectId,
177
+ operation: 'loadActiveStack',
178
+ }, error instanceof Error ? error : undefined);
179
+ }
180
+ throw dbError;
181
+ }
182
+ }
183
+ buildStackOrder(frames) {
184
+ const stack = [];
185
+ // Find root frame (no parent)
186
+ const rootFrame = frames.find((f) => !f.parent_frame_id);
187
+ if (!rootFrame)
188
+ return [];
189
+ // Build stack by following parent-child relationships
190
+ let currentFrame = rootFrame;
191
+ stack.push(currentFrame.frame_id);
192
+ while (currentFrame) {
193
+ const childFrame = frames.find((f) => f.parent_frame_id === currentFrame.frame_id);
194
+ if (!childFrame)
195
+ break;
196
+ stack.push(childFrame.frame_id);
197
+ currentFrame = childFrame;
198
+ }
199
+ return stack;
200
+ }
201
+ /**
202
+ * Create a new frame and push to stack
203
+ */
204
+ createFrame(options) {
205
+ const frameId = uuidv4();
206
+ const parentFrameId = options.parentFrameId || this.getCurrentFrameId();
207
+ const depth = parentFrameId ? this.getFrameDepth(parentFrameId) + 1 : 0;
208
+ const frame = {
209
+ frame_id: frameId,
210
+ run_id: this.currentRunId,
211
+ project_id: this.projectId,
212
+ parent_frame_id: parentFrameId,
213
+ depth,
214
+ type: options.type,
215
+ name: options.name,
216
+ state: 'active',
217
+ inputs: options.inputs || {},
218
+ created_at: Math.floor(Date.now() / 1000),
219
+ };
220
+ try {
221
+ this.db
222
+ .prepare(`
223
+ INSERT INTO frames (
224
+ frame_id, run_id, project_id, parent_frame_id, depth, type, name, state, inputs, created_at
225
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
226
+ `)
227
+ .run(frame.frame_id, frame.run_id, frame.project_id, frame.parent_frame_id, frame.depth, frame.type, frame.name, frame.state, JSON.stringify(frame.inputs), frame.created_at);
228
+ }
229
+ catch (error) {
230
+ throw new DatabaseError(`Failed to create frame: ${options.name}`, ErrorCode.DB_QUERY_FAILED, {
231
+ frameId,
232
+ frameType: options.type,
233
+ frameName: options.name,
234
+ parentFrameId,
235
+ depth,
236
+ operation: 'createFrame',
237
+ }, error instanceof Error ? error : undefined);
238
+ }
239
+ // Push to active stack
240
+ this.activeStack.push(frameId);
241
+ logger.info('Created frame', {
242
+ frameId,
243
+ type: options.type,
244
+ name: options.name,
245
+ depth,
246
+ parentFrameId,
247
+ stackDepth: this.activeStack.length,
248
+ });
249
+ return frameId;
250
+ }
251
+ /**
252
+ * Close the current frame and generate digest
253
+ */
254
+ closeFrame(frameId, outputs) {
255
+ const targetFrameId = frameId || this.getCurrentFrameId();
256
+ if (!targetFrameId) {
257
+ throw new FrameError('No active frame to close', ErrorCode.FRAME_INVALID_STATE, {
258
+ operation: 'closeFrame',
259
+ activeStack: this.activeStack,
260
+ stackDepth: this.activeStack.length,
261
+ });
262
+ }
263
+ // Get frame details
264
+ const frame = this.getFrame(targetFrameId);
265
+ if (!frame) {
266
+ throw new FrameError(`Frame not found: ${targetFrameId}`, ErrorCode.FRAME_NOT_FOUND, {
267
+ frameId: targetFrameId,
268
+ operation: 'closeFrame',
269
+ runId: this.currentRunId,
270
+ });
271
+ }
272
+ if (frame.state === 'closed') {
273
+ logger.warn('Attempted to close already closed frame', {
274
+ frameId: targetFrameId,
275
+ });
276
+ return;
277
+ }
278
+ // Generate digest before closing
279
+ const digest = this.generateDigest(targetFrameId);
280
+ const finalOutputs = { ...outputs, ...digest.structured };
281
+ try {
282
+ // Update frame to closed state
283
+ this.db
284
+ .prepare(`
285
+ UPDATE frames
286
+ SET state = 'closed',
287
+ outputs = ?,
288
+ digest_text = ?,
289
+ digest_json = ?,
290
+ closed_at = unixepoch()
291
+ WHERE frame_id = ?
292
+ `)
293
+ .run(JSON.stringify(finalOutputs), digest.text, JSON.stringify(digest.structured), targetFrameId);
294
+ }
295
+ catch (error) {
296
+ throw new DatabaseError(`Failed to close frame: ${targetFrameId}`, ErrorCode.DB_QUERY_FAILED, {
297
+ frameId: targetFrameId,
298
+ frameName: frame.name,
299
+ operation: 'closeFrame',
300
+ }, error instanceof Error ? error : undefined);
301
+ }
302
+ // Remove from active stack
303
+ this.activeStack = this.activeStack.filter((id) => id !== targetFrameId);
304
+ // Close all child frames recursively
305
+ this.closeChildFrames(targetFrameId);
306
+ logger.info('Closed frame', {
307
+ frameId: targetFrameId,
308
+ name: frame.name,
309
+ duration: Math.floor(Date.now() / 1000) - frame.created_at,
310
+ digestLength: digest.text.length,
311
+ stackDepth: this.activeStack.length,
312
+ });
313
+ }
314
+ closeChildFrames(parentFrameId) {
315
+ try {
316
+ const children = this.db
317
+ .prepare(`
318
+ SELECT frame_id FROM frames
319
+ WHERE parent_frame_id = ? AND state = 'active'
320
+ `)
321
+ .all(parentFrameId);
322
+ children.forEach((child) => {
323
+ try {
324
+ this.closeFrame(child.frame_id);
325
+ }
326
+ catch (error) {
327
+ logger.error('Failed to close child frame', error instanceof Error ? error : new Error(String(error)), {
328
+ parentFrameId,
329
+ childFrameId: child.frame_id,
330
+ });
331
+ }
332
+ });
333
+ }
334
+ catch (error) {
335
+ throw new DatabaseError(`Failed to close child frames for parent: ${parentFrameId}`, ErrorCode.DB_QUERY_FAILED, {
336
+ parentFrameId,
337
+ operation: 'closeChildFrames',
338
+ }, error instanceof Error ? error : undefined);
339
+ }
340
+ }
341
+ /**
342
+ * Generate digest for a frame
343
+ */
344
+ generateDigest(frameId) {
345
+ const frame = this.getFrame(frameId);
346
+ const events = this.getFrameEvents(frameId);
347
+ const anchors = this.getFrameAnchors(frameId);
348
+ if (!frame) {
349
+ throw new FrameError(`Cannot generate digest: frame not found ${frameId}`, ErrorCode.FRAME_NOT_FOUND, {
350
+ frameId,
351
+ operation: 'generateDigest',
352
+ runId: this.currentRunId,
353
+ });
354
+ }
355
+ // Extract key information
356
+ const decisions = anchors.filter((a) => a.type === 'DECISION');
357
+ const constraints = anchors.filter((a) => a.type === 'CONSTRAINT');
358
+ const risks = anchors.filter((a) => a.type === 'RISK');
359
+ const toolCalls = events.filter((e) => e.event_type === 'tool_call');
360
+ const artifacts = events.filter((e) => e.event_type === 'artifact');
361
+ // Generate structured digest
362
+ const structured = {
363
+ result: frame.name,
364
+ decisions: decisions.map((d) => ({ id: d.anchor_id, text: d.text })),
365
+ constraints: constraints.map((c) => ({ id: c.anchor_id, text: c.text })),
366
+ risks: risks.map((r) => ({ id: r.anchor_id, text: r.text })),
367
+ artifacts: artifacts.map((a) => ({
368
+ kind: a.payload.kind || 'unknown',
369
+ ref: a.payload.ref,
370
+ })),
371
+ tool_calls_count: toolCalls.length,
372
+ duration_seconds: frame.closed_at
373
+ ? frame.closed_at - frame.created_at
374
+ : 0,
375
+ };
376
+ // Generate text summary
377
+ const text = this.generateDigestText(frame, structured, events.length);
378
+ return { text, structured };
379
+ }
380
+ generateDigestText(frame, structured, eventCount) {
381
+ let summary = `Completed: ${frame.name}\n`;
382
+ if (structured.decisions.length > 0) {
383
+ summary += `\nDecisions made:\n${structured.decisions.map((d) => `- ${d.text}`).join('\n')}`;
384
+ }
385
+ if (structured.constraints.length > 0) {
386
+ summary += `\nConstraints established:\n${structured.constraints.map((c) => `- ${c.text}`).join('\n')}`;
387
+ }
388
+ if (structured.risks.length > 0) {
389
+ summary += `\nRisks identified:\n${structured.risks.map((r) => `- ${r.text}`).join('\n')}`;
390
+ }
391
+ summary += `\nActivity: ${eventCount} events, ${structured.tool_calls_count} tool calls`;
392
+ if (structured.duration_seconds > 0) {
393
+ summary += `, ${Math.floor(structured.duration_seconds / 60)}m ${structured.duration_seconds % 60}s duration`;
394
+ }
395
+ return summary;
396
+ }
397
+ /**
398
+ * Add event to current frame
399
+ */
400
+ addEvent(eventType, payload, frameId) {
401
+ const targetFrameId = frameId || this.getCurrentFrameId();
402
+ if (!targetFrameId) {
403
+ throw new FrameError('No active frame for event', ErrorCode.FRAME_INVALID_STATE, {
404
+ operation: 'addEvent',
405
+ eventType,
406
+ activeStack: this.activeStack,
407
+ });
408
+ }
409
+ const eventId = uuidv4();
410
+ const seq = this.getNextEventSequence(targetFrameId);
411
+ try {
412
+ this.db
413
+ .prepare(`
414
+ INSERT INTO events (event_id, run_id, frame_id, seq, event_type, payload)
415
+ VALUES (?, ?, ?, ?, ?, ?)
416
+ `)
417
+ .run(eventId, this.currentRunId, targetFrameId, seq, eventType, JSON.stringify(payload));
418
+ }
419
+ catch (error) {
420
+ throw new DatabaseError(`Failed to add event to frame: ${targetFrameId}`, ErrorCode.DB_QUERY_FAILED, {
421
+ eventId,
422
+ frameId: targetFrameId,
423
+ eventType,
424
+ seq,
425
+ operation: 'addEvent',
426
+ }, error instanceof Error ? error : undefined);
427
+ }
428
+ return eventId;
429
+ }
430
+ /**
431
+ * Add anchor to frame
432
+ */
433
+ addAnchor(type, text, priority = 0, metadata = {}, frameId) {
434
+ const targetFrameId = frameId || this.getCurrentFrameId();
435
+ if (!targetFrameId) {
436
+ throw new FrameError('No active frame for anchor', ErrorCode.FRAME_INVALID_STATE, {
437
+ operation: 'addAnchor',
438
+ anchorType: type,
439
+ text: text.substring(0, 100),
440
+ activeStack: this.activeStack,
441
+ });
442
+ }
443
+ const anchorId = uuidv4();
444
+ try {
445
+ this.db
446
+ .prepare(`
447
+ INSERT INTO anchors (anchor_id, frame_id, project_id, type, text, priority, metadata)
448
+ VALUES (?, ?, ?, ?, ?, ?, ?)
449
+ `)
450
+ .run(anchorId, targetFrameId, this.projectId, type, text, priority, JSON.stringify(metadata));
451
+ }
452
+ catch (error) {
453
+ throw new DatabaseError(`Failed to add anchor to frame: ${targetFrameId}`, ErrorCode.DB_QUERY_FAILED, {
454
+ anchorId,
455
+ frameId: targetFrameId,
456
+ anchorType: type,
457
+ operation: 'addAnchor',
458
+ }, error instanceof Error ? error : undefined);
459
+ }
460
+ return anchorId;
461
+ }
462
+ /**
463
+ * Get hot stack context for current active frames
464
+ */
465
+ getHotStackContext(maxEvents = 20) {
466
+ return this.activeStack
467
+ .map((frameId) => {
468
+ const frame = this.getFrame(frameId);
469
+ if (!frame)
470
+ return null;
471
+ return {
472
+ frameId,
473
+ header: {
474
+ goal: frame.name,
475
+ constraints: this.extractConstraints(frame.inputs),
476
+ definitions: frame.inputs.definitions,
477
+ },
478
+ anchors: this.getFrameAnchors(frameId),
479
+ recentEvents: this.getFrameEvents(frameId, maxEvents),
480
+ activeArtifacts: this.getActiveArtifacts(frameId),
481
+ };
482
+ })
483
+ .filter(Boolean);
484
+ }
485
+ /**
486
+ * Get active frame path (root to current)
487
+ */
488
+ getActiveFramePath() {
489
+ return this.activeStack
490
+ .map((frameId) => this.getFrame(frameId))
491
+ .filter(Boolean);
492
+ }
493
+ // Utility methods
494
+ getCurrentFrameId() {
495
+ return this.activeStack[this.activeStack.length - 1];
496
+ }
497
+ getStackDepth() {
498
+ return this.activeStack.length;
499
+ }
500
+ getFrameDepth(frameId) {
501
+ const frame = this.getFrame(frameId);
502
+ return frame?.depth || 0;
503
+ }
504
+ getFrame(frameId) {
505
+ try {
506
+ const row = this.db
507
+ .prepare(`
508
+ SELECT * FROM frames WHERE frame_id = ?
509
+ `)
510
+ .get(frameId);
511
+ if (!row)
512
+ return undefined;
513
+ return {
514
+ ...row,
515
+ inputs: JSON.parse(row.inputs || '{}'),
516
+ outputs: JSON.parse(row.outputs || '{}'),
517
+ digest_json: JSON.parse(row.digest_json || '{}'),
518
+ };
519
+ }
520
+ catch (error) {
521
+ throw new DatabaseError(`Failed to get frame: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
522
+ frameId,
523
+ operation: 'getFrame',
524
+ }, error instanceof Error ? error : undefined);
525
+ }
526
+ }
527
+ getFrameEvents(frameId, limit) {
528
+ try {
529
+ const query = limit
530
+ ? `SELECT * FROM events WHERE frame_id = ? ORDER BY seq DESC LIMIT ?`
531
+ : `SELECT * FROM events WHERE frame_id = ? ORDER BY seq ASC`;
532
+ const params = limit ? [frameId, limit] : [frameId];
533
+ const rows = this.db.prepare(query).all(...params);
534
+ return rows.map((row) => ({
535
+ ...row,
536
+ payload: JSON.parse(row.payload),
537
+ }));
538
+ }
539
+ catch (error) {
540
+ throw new DatabaseError(`Failed to get frame events: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
541
+ frameId,
542
+ limit,
543
+ operation: 'getFrameEvents',
544
+ }, error instanceof Error ? error : undefined);
545
+ }
546
+ }
547
+ getFrameAnchors(frameId) {
548
+ try {
549
+ const rows = this.db
550
+ .prepare(`
551
+ SELECT * FROM anchors WHERE frame_id = ? ORDER BY priority DESC, created_at ASC
552
+ `)
553
+ .all(frameId);
554
+ return rows.map((row) => ({
555
+ ...row,
556
+ metadata: JSON.parse(row.metadata || '{}'),
557
+ }));
558
+ }
559
+ catch (error) {
560
+ throw new DatabaseError(`Failed to get frame anchors: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
561
+ frameId,
562
+ operation: 'getFrameAnchors',
563
+ }, error instanceof Error ? error : undefined);
564
+ }
565
+ }
566
+ getNextEventSequence(frameId) {
567
+ try {
568
+ const result = this.db
569
+ .prepare(`
570
+ SELECT MAX(seq) as max_seq FROM events WHERE frame_id = ?
571
+ `)
572
+ .get(frameId);
573
+ return (result.max_seq || 0) + 1;
574
+ }
575
+ catch (error) {
576
+ throw new DatabaseError(`Failed to get next event sequence for frame: ${frameId}`, ErrorCode.DB_QUERY_FAILED, {
577
+ frameId,
578
+ operation: 'getNextEventSequence',
579
+ }, error instanceof Error ? error : undefined);
580
+ }
581
+ }
582
+ extractConstraints(inputs) {
583
+ return inputs.constraints;
584
+ }
585
+ getActiveArtifacts(frameId) {
586
+ const artifacts = this.getFrameEvents(frameId)
587
+ .filter((e) => e.event_type === 'artifact')
588
+ .map((e) => e.payload.ref)
589
+ .filter(Boolean);
590
+ return artifacts;
591
+ }
592
+ }
593
+ //# sourceMappingURL=frame-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-manager.js","sourceRoot":"","sources":["../../../../src/core/context/frame-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for error handling system
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=error-handling.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.test.d.ts","sourceRoot":"","sources":["../../../../../src/core/errors/__tests__/error-handling.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}