@stackmemoryai/stackmemory 0.5.58 → 0.5.59

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 (596) hide show
  1. package/dist/cli/commands/search.js +20 -3
  2. package/dist/cli/commands/search.js.map +2 -2
  3. package/dist/core/database/sqlite-adapter.js +13 -3
  4. package/dist/core/database/sqlite-adapter.js.map +2 -2
  5. package/dist/core/errors/error-utils.js +208 -0
  6. package/dist/core/errors/error-utils.js.map +7 -0
  7. package/dist/core/errors/index.js +13 -4
  8. package/dist/core/errors/index.js.map +2 -2
  9. package/dist/core/merge/unified-merge-resolver.js +303 -0
  10. package/dist/core/merge/unified-merge-resolver.js.map +7 -0
  11. package/dist/core/monitoring/logger.js +61 -9
  12. package/dist/core/monitoring/logger.js.map +2 -2
  13. package/dist/core/security/index.js +35 -0
  14. package/dist/core/security/index.js.map +7 -0
  15. package/dist/core/security/input-sanitizer.js +321 -0
  16. package/dist/core/security/input-sanitizer.js.map +7 -0
  17. package/dist/integrations/linear/client.js +5 -1
  18. package/dist/integrations/linear/client.js.map +2 -2
  19. package/dist/integrations/mcp/remote-server.js +27 -36
  20. package/dist/integrations/mcp/remote-server.js.map +2 -2
  21. package/dist/integrations/mcp/server.js +44 -29
  22. package/dist/integrations/mcp/server.js.map +3 -3
  23. package/dist/scripts/benchmark-performance.js +48 -0
  24. package/dist/scripts/benchmark-performance.js.map +7 -0
  25. package/dist/scripts/check-redis.js +42 -0
  26. package/dist/scripts/check-redis.js.map +7 -0
  27. package/dist/scripts/initialize.js +116 -0
  28. package/dist/scripts/initialize.js.map +7 -0
  29. package/dist/scripts/list-linear-tasks.js +124 -0
  30. package/dist/scripts/list-linear-tasks.js.map +7 -0
  31. package/dist/scripts/measure-handoff-impact.js +340 -0
  32. package/dist/scripts/measure-handoff-impact.js.map +7 -0
  33. package/dist/scripts/query-chromadb.js +160 -0
  34. package/dist/scripts/query-chromadb.js.map +7 -0
  35. package/dist/scripts/show-linear-summary.js +119 -0
  36. package/dist/scripts/show-linear-summary.js.map +7 -0
  37. package/dist/scripts/simple-swarm-demo.js +90 -0
  38. package/dist/scripts/simple-swarm-demo.js.map +7 -0
  39. package/dist/scripts/status.js +155 -0
  40. package/dist/scripts/status.js.map +7 -0
  41. package/dist/scripts/test-chromadb-sync.js +192 -0
  42. package/dist/scripts/test-chromadb-sync.js.map +7 -0
  43. package/dist/scripts/test-ralph-iteration-fix.js +86 -0
  44. package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
  45. package/dist/scripts/test-ralph-iterations.js +121 -0
  46. package/dist/scripts/test-ralph-iterations.js.map +7 -0
  47. package/dist/scripts/test-redis-storage.js +389 -0
  48. package/dist/scripts/test-redis-storage.js.map +7 -0
  49. package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
  50. package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
  51. package/dist/scripts/test-swarm-fixes.js +125 -0
  52. package/dist/scripts/test-swarm-fixes.js.map +7 -0
  53. package/dist/scripts/test-swarm-tui.js +23 -0
  54. package/dist/scripts/test-swarm-tui.js.map +7 -0
  55. package/dist/scripts/test-tui-shortcuts.js +52 -0
  56. package/dist/scripts/test-tui-shortcuts.js.map +7 -0
  57. package/dist/scripts/validate-tui-shortcuts.js +60 -0
  58. package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
  59. package/dist/src/agents/core/agent-task-manager.js +527 -0
  60. package/dist/src/agents/core/agent-task-manager.js.map +7 -0
  61. package/dist/src/agents/verifiers/base-verifier.js +133 -0
  62. package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
  63. package/dist/src/agents/verifiers/formatter-verifier.js +130 -0
  64. package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
  65. package/dist/src/agents/verifiers/llm-judge.js +252 -0
  66. package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
  67. package/dist/src/cli/auto-detect.js +321 -0
  68. package/dist/src/cli/auto-detect.js.map +7 -0
  69. package/dist/src/cli/claude-sm-danger.js +21 -0
  70. package/dist/src/cli/claude-sm-danger.js.map +7 -0
  71. package/dist/src/cli/claude-sm.js +1156 -0
  72. package/dist/src/cli/claude-sm.js.map +7 -0
  73. package/dist/src/cli/codex-sm-danger.js +21 -0
  74. package/dist/src/cli/codex-sm-danger.js.map +7 -0
  75. package/dist/src/cli/codex-sm.js +349 -0
  76. package/dist/src/cli/codex-sm.js.map +7 -0
  77. package/dist/src/cli/commands/api.js +232 -0
  78. package/dist/src/cli/commands/api.js.map +7 -0
  79. package/dist/src/cli/commands/auto-background.js +180 -0
  80. package/dist/src/cli/commands/auto-background.js.map +7 -0
  81. package/dist/src/cli/commands/cleanup-processes.js +68 -0
  82. package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
  83. package/dist/src/cli/commands/clear.js +202 -0
  84. package/dist/src/cli/commands/clear.js.map +7 -0
  85. package/dist/src/cli/commands/config.js +445 -0
  86. package/dist/src/cli/commands/config.js.map +7 -0
  87. package/dist/src/cli/commands/context-rehydrate.js +751 -0
  88. package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
  89. package/dist/src/cli/commands/context.js +343 -0
  90. package/dist/src/cli/commands/context.js.map +7 -0
  91. package/dist/src/cli/commands/daemon.js +392 -0
  92. package/dist/src/cli/commands/daemon.js.map +7 -0
  93. package/dist/src/cli/commands/dashboard.js +210 -0
  94. package/dist/src/cli/commands/dashboard.js.map +7 -0
  95. package/dist/src/cli/commands/db.js +147 -0
  96. package/dist/src/cli/commands/db.js.map +7 -0
  97. package/dist/src/cli/commands/decision.js +266 -0
  98. package/dist/src/cli/commands/decision.js.map +7 -0
  99. package/dist/src/cli/commands/discovery.js +279 -0
  100. package/dist/src/cli/commands/discovery.js.map +7 -0
  101. package/dist/src/cli/commands/handoff.js +624 -0
  102. package/dist/src/cli/commands/handoff.js.map +7 -0
  103. package/dist/src/cli/commands/hooks.js +298 -0
  104. package/dist/src/cli/commands/hooks.js.map +7 -0
  105. package/dist/src/cli/commands/linear.js +529 -0
  106. package/dist/src/cli/commands/linear.js.map +7 -0
  107. package/dist/src/cli/commands/log.js +169 -0
  108. package/dist/src/cli/commands/log.js.map +7 -0
  109. package/dist/src/cli/commands/login.js +172 -0
  110. package/dist/src/cli/commands/login.js.map +7 -0
  111. package/dist/src/cli/commands/migrate.js +240 -0
  112. package/dist/src/cli/commands/migrate.js.map +7 -0
  113. package/dist/src/cli/commands/model.js +533 -0
  114. package/dist/src/cli/commands/model.js.map +7 -0
  115. package/dist/src/cli/commands/onboard.js +536 -0
  116. package/dist/src/cli/commands/onboard.js.map +7 -0
  117. package/dist/src/cli/commands/projects.js +199 -0
  118. package/dist/src/cli/commands/projects.js.map +7 -0
  119. package/dist/src/cli/commands/ralph.js +909 -0
  120. package/dist/src/cli/commands/ralph.js.map +7 -0
  121. package/dist/src/cli/commands/retrieval.js +248 -0
  122. package/dist/src/cli/commands/retrieval.js.map +7 -0
  123. package/dist/src/cli/commands/search.js +173 -0
  124. package/dist/src/cli/commands/search.js.map +7 -0
  125. package/dist/src/cli/commands/service.js +749 -0
  126. package/dist/src/cli/commands/service.js.map +7 -0
  127. package/dist/src/cli/commands/session.js +200 -0
  128. package/dist/src/cli/commands/session.js.map +7 -0
  129. package/dist/src/cli/commands/settings.js +306 -0
  130. package/dist/src/cli/commands/settings.js.map +7 -0
  131. package/dist/src/cli/commands/setup.js +701 -0
  132. package/dist/src/cli/commands/setup.js.map +7 -0
  133. package/dist/src/cli/commands/shell.js +249 -0
  134. package/dist/src/cli/commands/shell.js.map +7 -0
  135. package/dist/src/cli/commands/signup.js +50 -0
  136. package/dist/src/cli/commands/signup.js.map +7 -0
  137. package/dist/src/cli/commands/skills.js +470 -0
  138. package/dist/src/cli/commands/skills.js.map +7 -0
  139. package/dist/src/cli/commands/sms-notify.js +795 -0
  140. package/dist/src/cli/commands/sms-notify.js.map +7 -0
  141. package/dist/src/cli/commands/storage-tier.js +183 -0
  142. package/dist/src/cli/commands/storage-tier.js.map +7 -0
  143. package/dist/src/cli/commands/sweep.js +249 -0
  144. package/dist/src/cli/commands/sweep.js.map +7 -0
  145. package/dist/src/cli/commands/tasks.js +213 -0
  146. package/dist/src/cli/commands/tasks.js.map +7 -0
  147. package/dist/src/cli/commands/worktree.js +319 -0
  148. package/dist/src/cli/commands/worktree.js.map +7 -0
  149. package/dist/src/cli/index.js +594 -0
  150. package/dist/src/cli/index.js.map +7 -0
  151. package/dist/src/cli/opencode-sm.js +448 -0
  152. package/dist/src/cli/opencode-sm.js.map +7 -0
  153. package/dist/src/cli/utils/viewer.js +96 -0
  154. package/dist/src/cli/utils/viewer.js.map +7 -0
  155. package/dist/src/core/config/config-manager.js +398 -0
  156. package/dist/src/core/config/config-manager.js.map +7 -0
  157. package/dist/src/core/config/feature-flags.js +76 -0
  158. package/dist/src/core/config/feature-flags.js.map +7 -0
  159. package/dist/src/core/config/storage-config.js +115 -0
  160. package/dist/src/core/config/storage-config.js.map +7 -0
  161. package/dist/src/core/config/types.js +144 -0
  162. package/dist/src/core/config/types.js.map +7 -0
  163. package/dist/src/core/context/auto-context.js +80 -0
  164. package/dist/src/core/context/auto-context.js.map +7 -0
  165. package/dist/src/core/context/dual-stack-manager.js +870 -0
  166. package/dist/src/core/context/dual-stack-manager.js.map +7 -0
  167. package/dist/src/core/context/enhanced-rehydration.js +994 -0
  168. package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
  169. package/dist/src/core/context/frame-database.js +479 -0
  170. package/dist/src/core/context/frame-database.js.map +7 -0
  171. package/dist/src/core/context/frame-digest.js +250 -0
  172. package/dist/src/core/context/frame-digest.js.map +7 -0
  173. package/dist/src/core/context/frame-handoff-manager.js +778 -0
  174. package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
  175. package/dist/src/core/context/frame-lifecycle-hooks.js +119 -0
  176. package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
  177. package/dist/src/core/context/frame-recovery.js +302 -0
  178. package/dist/src/core/context/frame-recovery.js.map +7 -0
  179. package/dist/src/core/context/frame-stack.js +314 -0
  180. package/dist/src/core/context/frame-stack.js.map +7 -0
  181. package/dist/src/core/context/frame-types.js +5 -0
  182. package/dist/src/core/context/frame-types.js.map +7 -0
  183. package/dist/src/core/context/index.js +25 -0
  184. package/dist/src/core/context/index.js.map +7 -0
  185. package/dist/src/core/context/permission-manager.js +185 -0
  186. package/dist/src/core/context/permission-manager.js.map +7 -0
  187. package/dist/src/core/context/recursive-context-manager.js +592 -0
  188. package/dist/src/core/context/recursive-context-manager.js.map +7 -0
  189. package/dist/src/core/context/refactored-frame-manager.js +754 -0
  190. package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
  191. package/dist/src/core/context/shared-context-layer.js +621 -0
  192. package/dist/src/core/context/shared-context-layer.js.map +7 -0
  193. package/dist/src/core/context/stack-merge-resolver.js +749 -0
  194. package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
  195. package/dist/src/core/context/validation.js +130 -0
  196. package/dist/src/core/context/validation.js.map +7 -0
  197. package/dist/src/core/database/batch-operations.js +384 -0
  198. package/dist/src/core/database/batch-operations.js.map +7 -0
  199. package/dist/src/core/database/connection-pool.js +330 -0
  200. package/dist/src/core/database/connection-pool.js.map +7 -0
  201. package/dist/src/core/database/database-adapter.js +60 -0
  202. package/dist/src/core/database/database-adapter.js.map +7 -0
  203. package/dist/src/core/database/migration-manager.js +614 -0
  204. package/dist/src/core/database/migration-manager.js.map +7 -0
  205. package/dist/src/core/database/query-cache.js +298 -0
  206. package/dist/src/core/database/query-cache.js.map +7 -0
  207. package/dist/src/core/database/query-router.js +430 -0
  208. package/dist/src/core/database/query-router.js.map +7 -0
  209. package/dist/src/core/database/sqlite-adapter.js +738 -0
  210. package/dist/src/core/database/sqlite-adapter.js.map +7 -0
  211. package/dist/src/core/digest/enhanced-hybrid-digest.js +277 -0
  212. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
  213. package/dist/src/core/digest/frame-digest-integration.js +176 -0
  214. package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
  215. package/dist/src/core/digest/hybrid-digest-generator.js +553 -0
  216. package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
  217. package/dist/src/core/digest/index.js +9 -0
  218. package/dist/src/core/digest/index.js.map +7 -0
  219. package/dist/src/core/digest/types.js +25 -0
  220. package/dist/src/core/digest/types.js.map +7 -0
  221. package/dist/src/core/errors/error-utils.js +208 -0
  222. package/dist/src/core/errors/error-utils.js.map +7 -0
  223. package/dist/src/core/errors/index.js +521 -0
  224. package/dist/src/core/errors/index.js.map +7 -0
  225. package/dist/src/core/errors/recovery.js +269 -0
  226. package/dist/src/core/errors/recovery.js.map +7 -0
  227. package/dist/src/core/execution/parallel-executor.js +258 -0
  228. package/dist/src/core/execution/parallel-executor.js.map +7 -0
  229. package/dist/src/core/frame/workflow-templates.js +319 -0
  230. package/dist/src/core/frame/workflow-templates.js.map +7 -0
  231. package/dist/src/core/merge/conflict-detector.js +431 -0
  232. package/dist/src/core/merge/conflict-detector.js.map +7 -0
  233. package/dist/src/core/merge/index.js +9 -0
  234. package/dist/src/core/merge/index.js.map +7 -0
  235. package/dist/src/core/merge/resolution-engine.js +558 -0
  236. package/dist/src/core/merge/resolution-engine.js.map +7 -0
  237. package/dist/src/core/merge/stack-diff.js +532 -0
  238. package/dist/src/core/merge/stack-diff.js.map +7 -0
  239. package/dist/src/core/merge/types.js +5 -0
  240. package/dist/src/core/merge/types.js.map +7 -0
  241. package/dist/src/core/merge/unified-merge-resolver.js +303 -0
  242. package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
  243. package/dist/src/core/models/fallback-monitor.js +232 -0
  244. package/dist/src/core/models/fallback-monitor.js.map +7 -0
  245. package/dist/src/core/models/model-router.js +340 -0
  246. package/dist/src/core/models/model-router.js.map +7 -0
  247. package/dist/src/core/monitoring/error-handler.js +49 -0
  248. package/dist/src/core/monitoring/error-handler.js.map +7 -0
  249. package/dist/src/core/monitoring/logger.js +202 -0
  250. package/dist/src/core/monitoring/logger.js.map +7 -0
  251. package/dist/src/core/monitoring/metrics.js +172 -0
  252. package/dist/src/core/monitoring/metrics.js.map +7 -0
  253. package/dist/src/core/monitoring/progress-tracker.js +189 -0
  254. package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
  255. package/dist/src/core/monitoring/session-monitor.js +300 -0
  256. package/dist/src/core/monitoring/session-monitor.js.map +7 -0
  257. package/dist/src/core/performance/context-cache.js +273 -0
  258. package/dist/src/core/performance/context-cache.js.map +7 -0
  259. package/dist/src/core/performance/index.js +11 -0
  260. package/dist/src/core/performance/index.js.map +7 -0
  261. package/dist/src/core/performance/lazy-context-loader.js +327 -0
  262. package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
  263. package/dist/src/core/performance/monitor.js +221 -0
  264. package/dist/src/core/performance/monitor.js.map +7 -0
  265. package/dist/src/core/performance/optimized-frame-context.js +345 -0
  266. package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
  267. package/dist/src/core/performance/performance-benchmark.js +277 -0
  268. package/dist/src/core/performance/performance-benchmark.js.map +7 -0
  269. package/dist/src/core/performance/performance-profiler.js +370 -0
  270. package/dist/src/core/performance/performance-profiler.js.map +7 -0
  271. package/dist/src/core/performance/streaming-jsonl-parser.js +195 -0
  272. package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
  273. package/dist/src/core/persistence/postgres-adapter.js +349 -0
  274. package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
  275. package/dist/src/core/projects/project-isolation.js +201 -0
  276. package/dist/src/core/projects/project-isolation.js.map +7 -0
  277. package/dist/src/core/projects/project-manager.js +697 -0
  278. package/dist/src/core/projects/project-manager.js.map +7 -0
  279. package/dist/src/core/query/query-parser.js +370 -0
  280. package/dist/src/core/query/query-parser.js.map +7 -0
  281. package/dist/src/core/query/query-templates.js +321 -0
  282. package/dist/src/core/query/query-templates.js.map +7 -0
  283. package/dist/src/core/retrieval/context-retriever.js +479 -0
  284. package/dist/src/core/retrieval/context-retriever.js.map +7 -0
  285. package/dist/src/core/retrieval/index.js +8 -0
  286. package/dist/src/core/retrieval/index.js.map +7 -0
  287. package/dist/src/core/retrieval/llm-context-retrieval.js +613 -0
  288. package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
  289. package/dist/src/core/retrieval/llm-provider.js +151 -0
  290. package/dist/src/core/retrieval/llm-provider.js.map +7 -0
  291. package/dist/src/core/retrieval/retrieval-audit.js +236 -0
  292. package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
  293. package/dist/src/core/retrieval/summary-generator.js +589 -0
  294. package/dist/src/core/retrieval/summary-generator.js.map +7 -0
  295. package/dist/src/core/retrieval/types.js +21 -0
  296. package/dist/src/core/retrieval/types.js.map +7 -0
  297. package/dist/src/core/security/index.js +35 -0
  298. package/dist/src/core/security/index.js.map +7 -0
  299. package/dist/src/core/security/input-sanitizer.js +321 -0
  300. package/dist/src/core/security/input-sanitizer.js.map +7 -0
  301. package/dist/src/core/session/clear-survival.js +465 -0
  302. package/dist/src/core/session/clear-survival.js.map +7 -0
  303. package/dist/src/core/session/enhanced-handoff.js +792 -0
  304. package/dist/src/core/session/enhanced-handoff.js.map +7 -0
  305. package/dist/src/core/session/handoff-generator.js +343 -0
  306. package/dist/src/core/session/handoff-generator.js.map +7 -0
  307. package/dist/src/core/session/index.js +15 -0
  308. package/dist/src/core/session/index.js.map +7 -0
  309. package/dist/src/core/session/session-manager.js +347 -0
  310. package/dist/src/core/session/session-manager.js.map +7 -0
  311. package/dist/src/core/skills/index.js +7 -0
  312. package/dist/src/core/skills/index.js.map +7 -0
  313. package/dist/src/core/skills/skill-storage.js +764 -0
  314. package/dist/src/core/skills/skill-storage.js.map +7 -0
  315. package/dist/src/core/skills/types.js +193 -0
  316. package/dist/src/core/skills/types.js.map +7 -0
  317. package/dist/src/core/storage/chromadb-adapter.js +354 -0
  318. package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
  319. package/dist/src/core/storage/infinite-storage.js +510 -0
  320. package/dist/src/core/storage/infinite-storage.js.map +7 -0
  321. package/dist/src/core/storage/remote-storage.js +489 -0
  322. package/dist/src/core/storage/remote-storage.js.map +7 -0
  323. package/dist/src/core/storage/two-tier-storage.js +766 -0
  324. package/dist/src/core/storage/two-tier-storage.js.map +7 -0
  325. package/dist/src/core/trace/cli-trace-wrapper.js +132 -0
  326. package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
  327. package/dist/src/core/trace/db-trace-wrapper.js +247 -0
  328. package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
  329. package/dist/src/core/trace/debug-trace.js +417 -0
  330. package/dist/src/core/trace/debug-trace.js.map +7 -0
  331. package/dist/src/core/trace/index.js +109 -0
  332. package/dist/src/core/trace/index.js.map +7 -0
  333. package/dist/src/core/trace/linear-api-wrapper.js +178 -0
  334. package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
  335. package/dist/src/core/trace/trace-detector.js +528 -0
  336. package/dist/src/core/trace/trace-detector.js.map +7 -0
  337. package/dist/src/core/trace/trace-store.js +345 -0
  338. package/dist/src/core/trace/trace-store.js.map +7 -0
  339. package/dist/src/core/trace/types.js +77 -0
  340. package/dist/src/core/trace/types.js.map +7 -0
  341. package/dist/src/core/types.js +5 -0
  342. package/dist/src/core/types.js.map +7 -0
  343. package/dist/src/core/utils/async-mutex.js +114 -0
  344. package/dist/src/core/utils/async-mutex.js.map +7 -0
  345. package/dist/src/core/utils/compression.js +83 -0
  346. package/dist/src/core/utils/compression.js.map +7 -0
  347. package/dist/src/core/utils/update-checker.js +218 -0
  348. package/dist/src/core/utils/update-checker.js.map +7 -0
  349. package/dist/src/core/worktree/worktree-manager.js +465 -0
  350. package/dist/src/core/worktree/worktree-manager.js.map +7 -0
  351. package/dist/src/daemon/daemon-config.js +149 -0
  352. package/dist/src/daemon/daemon-config.js.map +7 -0
  353. package/dist/src/daemon/services/context-service.js +122 -0
  354. package/dist/src/daemon/services/context-service.js.map +7 -0
  355. package/dist/src/daemon/services/linear-service.js +136 -0
  356. package/dist/src/daemon/services/linear-service.js.map +7 -0
  357. package/dist/src/daemon/session-daemon.js +312 -0
  358. package/dist/src/daemon/session-daemon.js.map +7 -0
  359. package/dist/src/daemon/unified-daemon.js +276 -0
  360. package/dist/src/daemon/unified-daemon.js.map +7 -0
  361. package/dist/src/features/analytics/api/analytics-api.js +287 -0
  362. package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
  363. package/dist/src/features/analytics/core/analytics-service.js +282 -0
  364. package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
  365. package/dist/src/features/analytics/index.js +18 -0
  366. package/dist/src/features/analytics/index.js.map +7 -0
  367. package/dist/src/features/analytics/queries/metrics-queries.js +277 -0
  368. package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
  369. package/dist/src/features/analytics/types/metrics.js +5 -0
  370. package/dist/src/features/analytics/types/metrics.js.map +7 -0
  371. package/dist/src/features/browser/browser-mcp.js +492 -0
  372. package/dist/src/features/browser/browser-mcp.js.map +7 -0
  373. package/dist/src/features/sweep/index.js +20 -0
  374. package/dist/src/features/sweep/index.js.map +7 -0
  375. package/dist/src/features/sweep/prediction-client.js +155 -0
  376. package/dist/src/features/sweep/prediction-client.js.map +7 -0
  377. package/dist/src/features/sweep/prompt-builder.js +85 -0
  378. package/dist/src/features/sweep/prompt-builder.js.map +7 -0
  379. package/dist/src/features/sweep/pty-wrapper.js +171 -0
  380. package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
  381. package/dist/src/features/sweep/state-watcher.js +87 -0
  382. package/dist/src/features/sweep/state-watcher.js.map +7 -0
  383. package/dist/src/features/sweep/status-bar.js +88 -0
  384. package/dist/src/features/sweep/status-bar.js.map +7 -0
  385. package/dist/src/features/sweep/sweep-server-manager.js +226 -0
  386. package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
  387. package/dist/src/features/sweep/tab-interceptor.js +38 -0
  388. package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
  389. package/dist/src/features/sweep/types.js +18 -0
  390. package/dist/src/features/sweep/types.js.map +7 -0
  391. package/dist/src/features/tasks/linear-task-manager.js +487 -0
  392. package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
  393. package/dist/src/features/tasks/task-aware-context.js +410 -0
  394. package/dist/src/features/tasks/task-aware-context.js.map +7 -0
  395. package/dist/src/features/tui/simple-monitor.js +116 -0
  396. package/dist/src/features/tui/simple-monitor.js.map +7 -0
  397. package/dist/src/features/tui/swarm-monitor.js +648 -0
  398. package/dist/src/features/tui/swarm-monitor.js.map +7 -0
  399. package/dist/src/features/web/client/stores/task-store.js +26 -0
  400. package/dist/src/features/web/client/stores/task-store.js.map +7 -0
  401. package/dist/src/features/web/server/index.js +194 -0
  402. package/dist/src/features/web/server/index.js.map +7 -0
  403. package/dist/src/hooks/auto-background.js +151 -0
  404. package/dist/src/hooks/auto-background.js.map +7 -0
  405. package/dist/src/hooks/claude-code-whatsapp-hook.js +197 -0
  406. package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
  407. package/dist/src/hooks/config.js +150 -0
  408. package/dist/src/hooks/config.js.map +7 -0
  409. package/dist/src/hooks/daemon.js +364 -0
  410. package/dist/src/hooks/daemon.js.map +7 -0
  411. package/dist/src/hooks/events.js +58 -0
  412. package/dist/src/hooks/events.js.map +7 -0
  413. package/dist/src/hooks/index.js +12 -0
  414. package/dist/src/hooks/index.js.map +7 -0
  415. package/dist/src/hooks/linear-task-picker.js +186 -0
  416. package/dist/src/hooks/linear-task-picker.js.map +7 -0
  417. package/dist/src/hooks/schemas.js +197 -0
  418. package/dist/src/hooks/schemas.js.map +7 -0
  419. package/dist/src/hooks/secure-fs.js +49 -0
  420. package/dist/src/hooks/secure-fs.js.map +7 -0
  421. package/dist/src/hooks/security-logger.js +155 -0
  422. package/dist/src/hooks/security-logger.js.map +7 -0
  423. package/dist/src/hooks/session-summary.js +222 -0
  424. package/dist/src/hooks/session-summary.js.map +7 -0
  425. package/dist/src/hooks/sms-action-runner.js +371 -0
  426. package/dist/src/hooks/sms-action-runner.js.map +7 -0
  427. package/dist/src/hooks/sms-notify.js +506 -0
  428. package/dist/src/hooks/sms-notify.js.map +7 -0
  429. package/dist/src/hooks/sms-watcher.js +93 -0
  430. package/dist/src/hooks/sms-watcher.js.map +7 -0
  431. package/dist/src/hooks/sms-webhook.js +555 -0
  432. package/dist/src/hooks/sms-webhook.js.map +7 -0
  433. package/dist/src/hooks/whatsapp-commands.js +479 -0
  434. package/dist/src/hooks/whatsapp-commands.js.map +7 -0
  435. package/dist/src/hooks/whatsapp-scheduler.js +317 -0
  436. package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
  437. package/dist/src/hooks/whatsapp-sync.js +409 -0
  438. package/dist/src/hooks/whatsapp-sync.js.map +7 -0
  439. package/dist/src/index.js +25 -0
  440. package/dist/src/index.js.map +7 -0
  441. package/dist/src/integrations/anthropic/client.js +263 -0
  442. package/dist/src/integrations/anthropic/client.js.map +7 -0
  443. package/dist/src/integrations/claude-code/agent-bridge.js +768 -0
  444. package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
  445. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js +459 -0
  446. package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
  447. package/dist/src/integrations/claude-code/lifecycle-hooks.js +254 -0
  448. package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
  449. package/dist/src/integrations/claude-code/post-task-hooks.js +545 -0
  450. package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
  451. package/dist/src/integrations/claude-code/subagent-client-stub.js +20 -0
  452. package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
  453. package/dist/src/integrations/claude-code/subagent-client.js +511 -0
  454. package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
  455. package/dist/src/integrations/claude-code/task-coordinator.js +360 -0
  456. package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
  457. package/dist/src/integrations/linear/auth.js +337 -0
  458. package/dist/src/integrations/linear/auth.js.map +7 -0
  459. package/dist/src/integrations/linear/auto-sync.js +258 -0
  460. package/dist/src/integrations/linear/auto-sync.js.map +7 -0
  461. package/dist/src/integrations/linear/client.js +634 -0
  462. package/dist/src/integrations/linear/client.js.map +7 -0
  463. package/dist/src/integrations/linear/config.js +130 -0
  464. package/dist/src/integrations/linear/config.js.map +7 -0
  465. package/dist/src/integrations/linear/migration.js +361 -0
  466. package/dist/src/integrations/linear/migration.js.map +7 -0
  467. package/dist/src/integrations/linear/oauth-server.js +454 -0
  468. package/dist/src/integrations/linear/oauth-server.js.map +7 -0
  469. package/dist/src/integrations/linear/rest-client.js +213 -0
  470. package/dist/src/integrations/linear/rest-client.js.map +7 -0
  471. package/dist/src/integrations/linear/sync-manager.js +236 -0
  472. package/dist/src/integrations/linear/sync-manager.js.map +7 -0
  473. package/dist/src/integrations/linear/sync-service.js +231 -0
  474. package/dist/src/integrations/linear/sync-service.js.map +7 -0
  475. package/dist/src/integrations/linear/sync.js +782 -0
  476. package/dist/src/integrations/linear/sync.js.map +7 -0
  477. package/dist/src/integrations/linear/types.js +5 -0
  478. package/dist/src/integrations/linear/types.js.map +7 -0
  479. package/dist/src/integrations/linear/unified-sync.js +589 -0
  480. package/dist/src/integrations/linear/unified-sync.js.map +7 -0
  481. package/dist/src/integrations/linear/webhook-handler.js +219 -0
  482. package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
  483. package/dist/src/integrations/linear/webhook-server.js +218 -0
  484. package/dist/src/integrations/linear/webhook-server.js.map +7 -0
  485. package/dist/src/integrations/linear/webhook.js +291 -0
  486. package/dist/src/integrations/linear/webhook.js.map +7 -0
  487. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js +266 -0
  488. package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
  489. package/dist/src/integrations/mcp/handlers/context-handlers.js +257 -0
  490. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
  491. package/dist/src/integrations/mcp/handlers/discovery-handlers.js +497 -0
  492. package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
  493. package/dist/src/integrations/mcp/handlers/index.js +166 -0
  494. package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
  495. package/dist/src/integrations/mcp/handlers/linear-handlers.js +247 -0
  496. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
  497. package/dist/src/integrations/mcp/handlers/skill-handlers.js +529 -0
  498. package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
  499. package/dist/src/integrations/mcp/handlers/task-handlers.js +239 -0
  500. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
  501. package/dist/src/integrations/mcp/handlers/trace-handlers.js +308 -0
  502. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
  503. package/dist/src/integrations/mcp/index.js +23 -0
  504. package/dist/src/integrations/mcp/index.js.map +7 -0
  505. package/dist/src/integrations/mcp/middleware/tool-scoring.js +356 -0
  506. package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
  507. package/dist/src/integrations/mcp/refactored-server.js +374 -0
  508. package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
  509. package/dist/src/integrations/mcp/remote-server.js +682 -0
  510. package/dist/src/integrations/mcp/remote-server.js.map +7 -0
  511. package/dist/src/integrations/mcp/schemas.js +147 -0
  512. package/dist/src/integrations/mcp/schemas.js.map +7 -0
  513. package/dist/src/integrations/mcp/server.js +1975 -0
  514. package/dist/src/integrations/mcp/server.js.map +7 -0
  515. package/dist/src/integrations/mcp/tool-definitions-code.js +125 -0
  516. package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
  517. package/dist/src/integrations/mcp/tool-definitions.js +702 -0
  518. package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
  519. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +860 -0
  520. package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
  521. package/dist/src/integrations/ralph/context/context-budget-manager.js +301 -0
  522. package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
  523. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +360 -0
  524. package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
  525. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js +410 -0
  526. package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
  527. package/dist/src/integrations/ralph/index.js +18 -0
  528. package/dist/src/integrations/ralph/index.js.map +7 -0
  529. package/dist/src/integrations/ralph/learning/pattern-learner.js +401 -0
  530. package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
  531. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js +448 -0
  532. package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
  533. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js +294 -0
  534. package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
  535. package/dist/src/integrations/ralph/monitoring/swarm-registry.js +108 -0
  536. package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
  537. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +463 -0
  538. package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
  539. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +400 -0
  540. package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
  541. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +473 -0
  542. package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
  543. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +388 -0
  544. package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
  545. package/dist/src/integrations/ralph/performance/performance-optimizer.js +358 -0
  546. package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
  547. package/dist/src/integrations/ralph/recovery/crash-recovery.js +462 -0
  548. package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
  549. package/dist/src/integrations/ralph/state/state-reconciler.js +404 -0
  550. package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
  551. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +428 -0
  552. package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
  553. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +996 -0
  554. package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
  555. package/dist/src/integrations/ralph/types.js +5 -0
  556. package/dist/src/integrations/ralph/types.js.map +7 -0
  557. package/dist/src/integrations/ralph/visualization/ralph-debugger.js +585 -0
  558. package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
  559. package/dist/src/mcp/stackmemory-mcp-server.js +554 -0
  560. package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
  561. package/dist/src/middleware/exponential-rate-limiter.js +289 -0
  562. package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
  563. package/dist/src/models/user.model.js +358 -0
  564. package/dist/src/models/user.model.js.map +7 -0
  565. package/dist/src/servers/production/auth-middleware.js +528 -0
  566. package/dist/src/servers/production/auth-middleware.js.map +7 -0
  567. package/dist/src/services/config-service.js +65 -0
  568. package/dist/src/services/config-service.js.map +7 -0
  569. package/dist/src/services/context-service.js +194 -0
  570. package/dist/src/services/context-service.js.map +7 -0
  571. package/dist/src/skills/api-discovery.js +354 -0
  572. package/dist/src/skills/api-discovery.js.map +7 -0
  573. package/dist/src/skills/api-skill.js +475 -0
  574. package/dist/src/skills/api-skill.js.map +7 -0
  575. package/dist/src/skills/claude-skills.js +1061 -0
  576. package/dist/src/skills/claude-skills.js.map +7 -0
  577. package/dist/src/skills/dashboard-launcher.js +216 -0
  578. package/dist/src/skills/dashboard-launcher.js.map +7 -0
  579. package/dist/src/skills/recursive-agent-orchestrator.js +575 -0
  580. package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
  581. package/dist/src/skills/repo-ingestion-skill.js +609 -0
  582. package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
  583. package/dist/src/skills/unified-rlm-orchestrator.js +404 -0
  584. package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
  585. package/dist/src/types/task.js +5 -0
  586. package/dist/src/types/task.js.map +7 -0
  587. package/dist/src/utils/env.js +50 -0
  588. package/dist/src/utils/env.js.map +7 -0
  589. package/dist/src/utils/formatting.js +62 -0
  590. package/dist/src/utils/formatting.js.map +7 -0
  591. package/dist/src/utils/process-cleanup.js +136 -0
  592. package/dist/src/utils/process-cleanup.js.map +7 -0
  593. package/package.json +3 -3
  594. package/scripts/initialize.ts +16 -7
  595. package/scripts/install.sh +14 -62
  596. package/scripts/status.ts +111 -46
@@ -0,0 +1,166 @@
1
+ import { fileURLToPath as __fileURLToPath } from 'url';
2
+ import { dirname as __pathDirname } from 'path';
3
+ const __filename = __fileURLToPath(import.meta.url);
4
+ const __dirname = __pathDirname(__filename);
5
+ import {
6
+ ContextHandlers
7
+ } from "./context-handlers.js";
8
+ import { TaskHandlers } from "./task-handlers.js";
9
+ import {
10
+ LinearHandlers
11
+ } from "./linear-handlers.js";
12
+ import {
13
+ TraceHandlers
14
+ } from "./trace-handlers.js";
15
+ import {
16
+ DiscoveryHandlers
17
+ } from "./discovery-handlers.js";
18
+ import {
19
+ ContextHandlers as ContextHandlers2
20
+ } from "./context-handlers.js";
21
+ import { TaskHandlers as TaskHandlers2 } from "./task-handlers.js";
22
+ import {
23
+ LinearHandlers as LinearHandlers2
24
+ } from "./linear-handlers.js";
25
+ import { TraceHandlers as TraceHandlers2 } from "./trace-handlers.js";
26
+ class MCPHandlerFactory {
27
+ contextHandlers;
28
+ taskHandlers;
29
+ linearHandlers;
30
+ traceHandlers;
31
+ constructor(deps) {
32
+ this.contextHandlers = new ContextHandlers2({
33
+ frameManager: deps.frameManager,
34
+ contextRetrieval: deps.contextRetrieval
35
+ });
36
+ this.taskHandlers = new TaskHandlers2({
37
+ taskStore: deps.taskStore,
38
+ projectId: deps.projectId
39
+ });
40
+ this.linearHandlers = new LinearHandlers2({
41
+ linearAuthManager: deps.linearAuthManager,
42
+ linearSync: deps.linearSync,
43
+ taskStore: deps.taskStore
44
+ });
45
+ this.traceHandlers = new TraceHandlers2({
46
+ traceDetector: deps.traceDetector,
47
+ browserMCP: deps.browserMCP
48
+ });
49
+ }
50
+ /**
51
+ * Get handler for a specific tool
52
+ */
53
+ getHandler(toolName) {
54
+ switch (toolName) {
55
+ // Context handlers
56
+ case "get_context":
57
+ return this.contextHandlers.handleGetContext.bind(this.contextHandlers);
58
+ case "add_decision":
59
+ return this.contextHandlers.handleAddDecision.bind(
60
+ this.contextHandlers
61
+ );
62
+ case "start_frame":
63
+ return this.contextHandlers.handleStartFrame.bind(this.contextHandlers);
64
+ case "close_frame":
65
+ return this.contextHandlers.handleCloseFrame.bind(this.contextHandlers);
66
+ case "add_anchor":
67
+ return this.contextHandlers.handleAddAnchor.bind(this.contextHandlers);
68
+ case "get_hot_stack":
69
+ return this.contextHandlers.handleGetHotStack.bind(
70
+ this.contextHandlers
71
+ );
72
+ // Task handlers
73
+ case "create_task":
74
+ return this.taskHandlers.handleCreateTask.bind(this.taskHandlers);
75
+ case "update_task_status":
76
+ return this.taskHandlers.handleUpdateTaskStatus.bind(this.taskHandlers);
77
+ case "get_active_tasks":
78
+ return this.taskHandlers.handleGetActiveTasks.bind(this.taskHandlers);
79
+ case "get_task_metrics":
80
+ return this.taskHandlers.handleGetTaskMetrics.bind(this.taskHandlers);
81
+ case "add_task_dependency":
82
+ return this.taskHandlers.handleAddTaskDependency.bind(
83
+ this.taskHandlers
84
+ );
85
+ // Linear handlers
86
+ case "linear_sync":
87
+ return this.linearHandlers.handleLinearSync.bind(this.linearHandlers);
88
+ case "linear_update_task":
89
+ return this.linearHandlers.handleLinearUpdateTask.bind(
90
+ this.linearHandlers
91
+ );
92
+ case "linear_get_tasks":
93
+ return this.linearHandlers.handleLinearGetTasks.bind(
94
+ this.linearHandlers
95
+ );
96
+ case "linear_status":
97
+ return this.linearHandlers.handleLinearStatus.bind(this.linearHandlers);
98
+ // Trace handlers
99
+ case "get_traces":
100
+ return this.traceHandlers.handleGetTraces.bind(this.traceHandlers);
101
+ case "analyze_traces":
102
+ return this.traceHandlers.handleAnalyzeTraces.bind(this.traceHandlers);
103
+ case "start_browser_debug":
104
+ return this.traceHandlers.handleStartBrowserDebug.bind(
105
+ this.traceHandlers
106
+ );
107
+ case "take_screenshot":
108
+ return this.traceHandlers.handleTakeScreenshot.bind(this.traceHandlers);
109
+ case "execute_script":
110
+ return this.traceHandlers.handleExecuteScript.bind(this.traceHandlers);
111
+ case "stop_browser_debug":
112
+ return this.traceHandlers.handleStopBrowserDebug.bind(
113
+ this.traceHandlers
114
+ );
115
+ default:
116
+ throw new Error(`Unknown tool: ${toolName}`);
117
+ }
118
+ }
119
+ /**
120
+ * Get all available tool names
121
+ */
122
+ getAvailableTools() {
123
+ return [
124
+ // Context tools
125
+ "get_context",
126
+ "add_decision",
127
+ "start_frame",
128
+ "close_frame",
129
+ "add_anchor",
130
+ "get_hot_stack",
131
+ // Task tools
132
+ "create_task",
133
+ "update_task_status",
134
+ "get_active_tasks",
135
+ "get_task_metrics",
136
+ "add_task_dependency",
137
+ // Linear tools
138
+ "linear_sync",
139
+ "linear_update_task",
140
+ "linear_get_tasks",
141
+ "linear_status",
142
+ // Trace tools
143
+ "get_traces",
144
+ "analyze_traces",
145
+ "start_browser_debug",
146
+ "take_screenshot",
147
+ "execute_script",
148
+ "stop_browser_debug"
149
+ ];
150
+ }
151
+ /**
152
+ * Check if a tool exists
153
+ */
154
+ hasHandler(toolName) {
155
+ return this.getAvailableTools().includes(toolName);
156
+ }
157
+ }
158
+ export {
159
+ ContextHandlers,
160
+ DiscoveryHandlers,
161
+ LinearHandlers,
162
+ MCPHandlerFactory,
163
+ TaskHandlers,
164
+ TraceHandlers
165
+ };
166
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/integrations/mcp/handlers/index.ts"],
4
+ "sourcesContent": ["/**\n * MCP Handler Modules\n * Centralized exports for all MCP tool handlers\n */\n\nexport {\n ContextHandlers,\n type ContextHandlerDependencies,\n} from './context-handlers.js';\nexport { TaskHandlers, type TaskHandlerDependencies } from './task-handlers.js';\nexport {\n LinearHandlers,\n type LinearHandlerDependencies,\n} from './linear-handlers.js';\nexport {\n TraceHandlers,\n type TraceHandlerDependencies,\n} from './trace-handlers.js';\nexport {\n DiscoveryHandlers,\n type DiscoveryDependencies,\n} from './discovery-handlers.js';\n\nimport {\n ContextHandlers,\n ContextHandlerDependencies,\n} from './context-handlers.js';\nimport { TaskHandlers, TaskHandlerDependencies } from './task-handlers.js';\nimport {\n LinearHandlers,\n LinearHandlerDependencies,\n} from './linear-handlers.js';\nimport { TraceHandlers, TraceHandlerDependencies } from './trace-handlers.js';\n\n// Combined dependencies interface\nexport interface MCPHandlerDependencies\n extends\n ContextHandlerDependencies,\n TaskHandlerDependencies,\n LinearHandlerDependencies,\n TraceHandlerDependencies {}\n\n/**\n * Handler factory that creates all MCP tool handlers\n */\nexport class MCPHandlerFactory {\n private contextHandlers: ContextHandlers;\n private taskHandlers: TaskHandlers;\n private linearHandlers: LinearHandlers;\n private traceHandlers: TraceHandlers;\n\n constructor(deps: MCPHandlerDependencies) {\n this.contextHandlers = new ContextHandlers({\n frameManager: deps.frameManager,\n contextRetrieval: deps.contextRetrieval,\n });\n\n this.taskHandlers = new TaskHandlers({\n taskStore: deps.taskStore,\n projectId: deps.projectId,\n });\n\n this.linearHandlers = new LinearHandlers({\n linearAuthManager: deps.linearAuthManager,\n linearSync: deps.linearSync,\n taskStore: deps.taskStore,\n });\n\n this.traceHandlers = new TraceHandlers({\n traceDetector: deps.traceDetector,\n browserMCP: deps.browserMCP,\n });\n }\n\n /**\n * Get handler for a specific tool\n */\n getHandler(toolName: string): (args: any) => Promise<any> {\n switch (toolName) {\n // Context handlers\n case 'get_context':\n return this.contextHandlers.handleGetContext.bind(this.contextHandlers);\n case 'add_decision':\n return this.contextHandlers.handleAddDecision.bind(\n this.contextHandlers\n );\n case 'start_frame':\n return this.contextHandlers.handleStartFrame.bind(this.contextHandlers);\n case 'close_frame':\n return this.contextHandlers.handleCloseFrame.bind(this.contextHandlers);\n case 'add_anchor':\n return this.contextHandlers.handleAddAnchor.bind(this.contextHandlers);\n case 'get_hot_stack':\n return this.contextHandlers.handleGetHotStack.bind(\n this.contextHandlers\n );\n\n // Task handlers\n case 'create_task':\n return this.taskHandlers.handleCreateTask.bind(this.taskHandlers);\n case 'update_task_status':\n return this.taskHandlers.handleUpdateTaskStatus.bind(this.taskHandlers);\n case 'get_active_tasks':\n return this.taskHandlers.handleGetActiveTasks.bind(this.taskHandlers);\n case 'get_task_metrics':\n return this.taskHandlers.handleGetTaskMetrics.bind(this.taskHandlers);\n case 'add_task_dependency':\n return this.taskHandlers.handleAddTaskDependency.bind(\n this.taskHandlers\n );\n\n // Linear handlers\n case 'linear_sync':\n return this.linearHandlers.handleLinearSync.bind(this.linearHandlers);\n case 'linear_update_task':\n return this.linearHandlers.handleLinearUpdateTask.bind(\n this.linearHandlers\n );\n case 'linear_get_tasks':\n return this.linearHandlers.handleLinearGetTasks.bind(\n this.linearHandlers\n );\n case 'linear_status':\n return this.linearHandlers.handleLinearStatus.bind(this.linearHandlers);\n\n // Trace handlers\n case 'get_traces':\n return this.traceHandlers.handleGetTraces.bind(this.traceHandlers);\n case 'analyze_traces':\n return this.traceHandlers.handleAnalyzeTraces.bind(this.traceHandlers);\n case 'start_browser_debug':\n return this.traceHandlers.handleStartBrowserDebug.bind(\n this.traceHandlers\n );\n case 'take_screenshot':\n return this.traceHandlers.handleTakeScreenshot.bind(this.traceHandlers);\n case 'execute_script':\n return this.traceHandlers.handleExecuteScript.bind(this.traceHandlers);\n case 'stop_browser_debug':\n return this.traceHandlers.handleStopBrowserDebug.bind(\n this.traceHandlers\n );\n\n default:\n throw new Error(`Unknown tool: ${toolName}`);\n }\n }\n\n /**\n * Get all available tool names\n */\n getAvailableTools(): string[] {\n return [\n // Context tools\n 'get_context',\n 'add_decision',\n 'start_frame',\n 'close_frame',\n 'add_anchor',\n 'get_hot_stack',\n\n // Task tools\n 'create_task',\n 'update_task_status',\n 'get_active_tasks',\n 'get_task_metrics',\n 'add_task_dependency',\n\n // Linear tools\n 'linear_sync',\n 'linear_update_task',\n 'linear_get_tasks',\n 'linear_status',\n\n // Trace tools\n 'get_traces',\n 'analyze_traces',\n 'start_browser_debug',\n 'take_screenshot',\n 'execute_script',\n 'stop_browser_debug',\n ];\n }\n\n /**\n * Check if a tool exists\n */\n hasHandler(toolName: string): boolean {\n return this.getAvailableTools().includes(toolName);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["ContextHandlers", "TaskHandlers", "LinearHandlers", "TraceHandlers"]
7
+ }
@@ -0,0 +1,247 @@
1
+ import { fileURLToPath as __fileURLToPath } from 'url';
2
+ import { dirname as __pathDirname } from 'path';
3
+ const __filename = __fileURLToPath(import.meta.url);
4
+ const __dirname = __pathDirname(__filename);
5
+ import { logger } from "../../../core/monitoring/logger.js";
6
+ class LinearHandlers {
7
+ constructor(deps) {
8
+ this.deps = deps;
9
+ }
10
+ /**
11
+ * Sync tasks with Linear
12
+ */
13
+ async handleLinearSync(args) {
14
+ try {
15
+ const { direction = "both", force = false } = args;
16
+ try {
17
+ await this.deps.linearAuthManager.getValidToken();
18
+ } catch {
19
+ return {
20
+ content: [
21
+ {
22
+ type: "text",
23
+ text: "Linear auth required. Please run: stackmemory linear setup"
24
+ }
25
+ ],
26
+ metadata: {
27
+ authRequired: true
28
+ }
29
+ };
30
+ }
31
+ logger.info("Starting Linear sync", { direction, force });
32
+ const result = await this.deps.linearSync.sync();
33
+ const syncText = `Linear Sync Complete:
34
+ - To Linear: ${result.synced.toLinear} tasks
35
+ - From Linear: ${result.synced.fromLinear} tasks
36
+ - Updated: ${result.synced.updated} tasks
37
+ - Errors: ${result.errors.length}`;
38
+ return {
39
+ content: [
40
+ {
41
+ type: "text",
42
+ text: syncText
43
+ }
44
+ ],
45
+ metadata: result
46
+ };
47
+ } catch (error) {
48
+ logger.error("Linear sync failed", error instanceof Error ? error : new Error(String(error)));
49
+ const errorMessage = error instanceof Error ? error.message : String(error);
50
+ if (errorMessage?.includes("unauthorized") || errorMessage?.includes("auth")) {
51
+ return {
52
+ content: [
53
+ {
54
+ type: "text",
55
+ text: "Linear authentication failed. Please run: stackmemory linear setup"
56
+ }
57
+ ],
58
+ metadata: {
59
+ authError: true
60
+ }
61
+ };
62
+ }
63
+ throw error;
64
+ }
65
+ }
66
+ /**
67
+ * Update Linear task status
68
+ */
69
+ async handleLinearUpdateTask(args) {
70
+ try {
71
+ const { linear_id, status, assignee_id, priority, labels } = args;
72
+ if (!linear_id) {
73
+ throw new Error("Linear ID is required");
74
+ }
75
+ try {
76
+ await this.deps.linearAuthManager.getValidToken();
77
+ } catch {
78
+ throw new Error("Linear authentication required");
79
+ }
80
+ const updateData = {};
81
+ if (status) {
82
+ updateData.status = status;
83
+ }
84
+ if (assignee_id) {
85
+ updateData.assigneeId = assignee_id;
86
+ }
87
+ if (priority) {
88
+ updateData.priority = priority;
89
+ }
90
+ if (labels) {
91
+ updateData.labels = Array.isArray(labels) ? labels : [labels];
92
+ }
93
+ const result = { success: true };
94
+ logger.info("Updated Linear task", { linearId: linear_id, updates: updateData });
95
+ return {
96
+ content: [
97
+ {
98
+ type: "text",
99
+ text: `Updated Linear issue ${linear_id}: ${Object.keys(updateData).join(", ")}`
100
+ }
101
+ ],
102
+ metadata: {
103
+ linearId: linear_id,
104
+ updates: updateData,
105
+ result
106
+ }
107
+ };
108
+ } catch (error) {
109
+ logger.error("Error updating Linear task", error instanceof Error ? error : new Error(String(error)));
110
+ throw error;
111
+ }
112
+ }
113
+ /**
114
+ * Get tasks from Linear
115
+ */
116
+ async handleLinearGetTasks(args) {
117
+ try {
118
+ const {
119
+ team_id,
120
+ assignee_id,
121
+ state = "active",
122
+ limit = 20,
123
+ search
124
+ } = args;
125
+ try {
126
+ await this.deps.linearAuthManager.getValidToken();
127
+ } catch {
128
+ throw new Error("Linear authentication required");
129
+ }
130
+ const filters = {
131
+ limit
132
+ };
133
+ if (team_id) {
134
+ filters.teamId = team_id;
135
+ }
136
+ if (assignee_id) {
137
+ filters.assigneeId = assignee_id;
138
+ }
139
+ if (state) {
140
+ filters.state = state;
141
+ }
142
+ if (search) {
143
+ filters.search = search;
144
+ }
145
+ const issues = [];
146
+ const issuesSummary = issues.map((issue) => ({
147
+ id: issue.id,
148
+ identifier: issue.identifier,
149
+ title: issue.title,
150
+ state: issue.state?.name || "Unknown",
151
+ priority: issue.priority || 0,
152
+ assignee: issue.assignee?.name || "Unassigned",
153
+ team: issue.team?.name || "Unknown",
154
+ url: issue.url
155
+ }));
156
+ const summaryText = issuesSummary.length > 0 ? issuesSummary.map(
157
+ (i) => `${i.identifier}: ${i.title} [${i.state}] (${i.assignee})`
158
+ ).join("\n") : "No Linear issues found";
159
+ return {
160
+ content: [
161
+ {
162
+ type: "text",
163
+ text: `Linear Issues (${issues.length}):
164
+ ${summaryText}`
165
+ }
166
+ ],
167
+ metadata: {
168
+ issues: issuesSummary,
169
+ totalCount: issues.length,
170
+ filters
171
+ }
172
+ };
173
+ } catch (error) {
174
+ logger.error("Error getting Linear tasks", error instanceof Error ? error : new Error(String(error)));
175
+ throw error;
176
+ }
177
+ }
178
+ /**
179
+ * Get Linear integration status
180
+ */
181
+ async handleLinearStatus(args) {
182
+ try {
183
+ let authStatus = false;
184
+ try {
185
+ await this.deps.linearAuthManager.getValidToken();
186
+ authStatus = true;
187
+ } catch {
188
+ authStatus = false;
189
+ }
190
+ if (!authStatus) {
191
+ return {
192
+ content: [
193
+ {
194
+ type: "text",
195
+ text: "Linear: Not connected\nRun: stackmemory linear setup"
196
+ }
197
+ ],
198
+ metadata: {
199
+ connected: false,
200
+ authRequired: true
201
+ }
202
+ };
203
+ }
204
+ const userInfo = null;
205
+ const teams = [];
206
+ const syncStats = { lastSync: "Never", totalSynced: 0, errors: 0 };
207
+ const statusText = `Linear Integration Status:
208
+ \u2713 Connected as: ${userInfo?.name || "Unknown"}
209
+ \u2713 Teams: ${teams.length || 0}
210
+ \u2713 Last sync: ${syncStats.lastSync || "Never"}
211
+ \u2713 Synced tasks: ${syncStats.totalSynced || 0}
212
+ \u2713 Sync errors: ${syncStats.errors || 0}`;
213
+ return {
214
+ content: [
215
+ {
216
+ type: "text",
217
+ text: statusText
218
+ }
219
+ ],
220
+ metadata: {
221
+ connected: true,
222
+ user: userInfo,
223
+ teams,
224
+ syncStats
225
+ }
226
+ };
227
+ } catch (error) {
228
+ logger.error("Error getting Linear status", error instanceof Error ? error : new Error(String(error)));
229
+ return {
230
+ content: [
231
+ {
232
+ type: "text",
233
+ text: "Linear: Connection error - please check auth"
234
+ }
235
+ ],
236
+ metadata: {
237
+ connected: false,
238
+ error: error instanceof Error ? error.message : String(error)
239
+ }
240
+ };
241
+ }
242
+ }
243
+ }
244
+ export {
245
+ LinearHandlers
246
+ };
247
+ //# sourceMappingURL=linear-handlers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/integrations/mcp/handlers/linear-handlers.ts"],
4
+ "sourcesContent": ["/**\n * Linear integration MCP tool handlers\n * Handles Linear sync, task updates, and status queries\n */\n\nimport { LinearAuthManager } from '../../linear/auth.js';\nimport { LinearSyncEngine, DEFAULT_SYNC_CONFIG } from '../../linear/sync.js';\nimport { LinearTaskManager } from '../../../features/tasks/linear-task-manager.js';\nimport { logger } from '../../../core/monitoring/logger.js';\n\nexport interface LinearHandlerDependencies {\n linearAuthManager: LinearAuthManager;\n linearSync: LinearSyncEngine;\n taskStore: LinearTaskManager;\n}\n\nexport class LinearHandlers {\n constructor(private deps: LinearHandlerDependencies) {}\n\n /**\n * Sync tasks with Linear\n */\n async handleLinearSync(args: any): Promise<any> {\n try {\n const { direction = 'both', force = false } = args;\n\n // Check auth first\n try {\n await this.deps.linearAuthManager.getValidToken();\n } catch {\n return {\n content: [\n {\n type: 'text',\n text: 'Linear auth required. Please run: stackmemory linear setup',\n },\n ],\n metadata: {\n authRequired: true,\n },\n };\n }\n\n logger.info('Starting Linear sync', { direction, force });\n\n const result = await this.deps.linearSync.sync();\n\n const syncText = `Linear Sync Complete:\n- To Linear: ${result.synced.toLinear} tasks\n- From Linear: ${result.synced.fromLinear} tasks \n- Updated: ${result.synced.updated} tasks\n- Errors: ${result.errors.length}`;\n\n return {\n content: [\n {\n type: 'text',\n text: syncText,\n },\n ],\n metadata: result,\n };\n } catch (error: unknown) {\n logger.error('Linear sync failed', error instanceof Error ? error : new Error(String(error)));\n \n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage?.includes('unauthorized') || errorMessage?.includes('auth')) {\n return {\n content: [\n {\n type: 'text',\n text: 'Linear authentication failed. Please run: stackmemory linear setup',\n },\n ],\n metadata: {\n authError: true,\n },\n };\n }\n \n throw error;\n }\n }\n\n /**\n * Update Linear task status\n */\n async handleLinearUpdateTask(args: any): Promise<any> {\n try {\n const { linear_id, status, assignee_id, priority, labels } = args;\n \n if (!linear_id) {\n throw new Error('Linear ID is required');\n }\n\n try {\n await this.deps.linearAuthManager.getValidToken();\n } catch {\n throw new Error('Linear authentication required');\n }\n\n const updateData: any = {};\n \n if (status) {\n updateData.status = status;\n }\n \n if (assignee_id) {\n updateData.assigneeId = assignee_id;\n }\n \n if (priority) {\n updateData.priority = priority;\n }\n \n if (labels) {\n updateData.labels = Array.isArray(labels) ? labels : [labels];\n }\n\n // TODO: Implement updateLinearIssue public method\n const result = { success: true };\n\n logger.info('Updated Linear task', { linearId: linear_id, updates: updateData });\n\n return {\n content: [\n {\n type: 'text',\n text: `Updated Linear issue ${linear_id}: ${Object.keys(updateData).join(', ')}`,\n },\n ],\n metadata: {\n linearId: linear_id,\n updates: updateData,\n result,\n },\n };\n } catch (error: unknown) {\n logger.error('Error updating Linear task', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Get tasks from Linear\n */\n async handleLinearGetTasks(args: any): Promise<any> {\n try {\n const { \n team_id, \n assignee_id, \n state = 'active',\n limit = 20,\n search \n } = args;\n\n try {\n await this.deps.linearAuthManager.getValidToken();\n } catch {\n throw new Error('Linear authentication required');\n }\n\n const filters: any = {\n limit,\n };\n \n if (team_id) {\n filters.teamId = team_id;\n }\n \n if (assignee_id) {\n filters.assigneeId = assignee_id;\n }\n \n if (state) {\n filters.state = state;\n }\n \n if (search) {\n filters.search = search;\n }\n\n // TODO: Implement getLinearIssues public method\n const issues: any[] = [];\n\n const issuesSummary = issues.map((issue: any) => ({\n id: issue.id,\n identifier: issue.identifier,\n title: issue.title,\n state: issue.state?.name || 'Unknown',\n priority: issue.priority || 0,\n assignee: issue.assignee?.name || 'Unassigned',\n team: issue.team?.name || 'Unknown',\n url: issue.url,\n }));\n\n const summaryText = issuesSummary.length > 0\n ? issuesSummary.map((i: any) => \n `${i.identifier}: ${i.title} [${i.state}] (${i.assignee})`\n ).join('\\n')\n : 'No Linear issues found';\n\n return {\n content: [\n {\n type: 'text',\n text: `Linear Issues (${issues.length}):\\n${summaryText}`,\n },\n ],\n metadata: {\n issues: issuesSummary,\n totalCount: issues.length,\n filters,\n },\n };\n } catch (error: unknown) {\n logger.error('Error getting Linear tasks', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Get Linear integration status\n */\n async handleLinearStatus(args: any): Promise<any> {\n try {\n let authStatus = false;\n try {\n await this.deps.linearAuthManager.getValidToken();\n authStatus = true;\n } catch {\n authStatus = false;\n }\n \n if (!authStatus) {\n return {\n content: [\n {\n type: 'text',\n text: 'Linear: Not connected\\nRun: stackmemory linear setup',\n },\n ],\n metadata: {\n connected: false,\n authRequired: true,\n },\n };\n }\n\n // Get basic Linear info\n const userInfo = null; // TODO: Implement getUserInfo\n const teams: any[] = []; // TODO: Implement getTeams\n \n // Get sync stats\n const syncStats = { lastSync: 'Never', totalSynced: 0, errors: 0 }; // TODO: Implement getSyncStatistics\n\n const statusText = `Linear Integration Status:\n\u2713 Connected as: ${userInfo?.name || 'Unknown'}\n\u2713 Teams: ${teams.length || 0}\n\u2713 Last sync: ${syncStats.lastSync || 'Never'}\n\u2713 Synced tasks: ${syncStats.totalSynced || 0}\n\u2713 Sync errors: ${syncStats.errors || 0}`;\n\n return {\n content: [\n {\n type: 'text',\n text: statusText,\n },\n ],\n metadata: {\n connected: true,\n user: userInfo,\n teams,\n syncStats,\n },\n };\n } catch (error: unknown) {\n logger.error('Error getting Linear status', error instanceof Error ? error : new Error(String(error)));\n \n return {\n content: [\n {\n type: 'text',\n text: 'Linear: Connection error - please check auth',\n },\n ],\n metadata: {\n connected: false,\n error: error instanceof Error ? error.message : String(error),\n },\n };\n }\n }\n}"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }