@stackmemoryai/stackmemory 0.5.5 → 0.5.6

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 (490) hide show
  1. package/dist/agents/core/agent-task-manager.js +4 -0
  2. package/dist/agents/core/agent-task-manager.js.map +1 -1
  3. package/dist/agents/testing-agent.js +4 -0
  4. package/dist/agents/testing-agent.js.map +1 -1
  5. package/dist/agents/verifiers/base-verifier.js +4 -0
  6. package/dist/agents/verifiers/base-verifier.js.map +1 -1
  7. package/dist/agents/verifiers/formatter-verifier.js +4 -0
  8. package/dist/agents/verifiers/formatter-verifier.js.map +1 -1
  9. package/dist/agents/verifiers/llm-judge.js +4 -0
  10. package/dist/agents/verifiers/llm-judge.js.map +1 -1
  11. package/dist/cli/auto-detect.js +4 -0
  12. package/dist/cli/auto-detect.js.map +1 -1
  13. package/dist/cli/browser-test.js +4 -0
  14. package/dist/cli/browser-test.js.map +1 -1
  15. package/dist/cli/claude-sm-danger.js +4 -3
  16. package/dist/cli/claude-sm-danger.js.map +2 -2
  17. package/dist/cli/claude-sm.js +4 -0
  18. package/dist/cli/claude-sm.js.map +2 -2
  19. package/dist/cli/codex-sm.js +4 -0
  20. package/dist/cli/codex-sm.js.map +1 -1
  21. package/dist/cli/commands/api.js +4 -0
  22. package/dist/cli/commands/api.js.map +1 -1
  23. package/dist/cli/commands/cleanup-processes.js +4 -0
  24. package/dist/cli/commands/cleanup-processes.js.map +1 -1
  25. package/dist/cli/commands/clear.js +4 -0
  26. package/dist/cli/commands/clear.js.map +1 -1
  27. package/dist/cli/commands/config.js +4 -0
  28. package/dist/cli/commands/config.js.map +1 -1
  29. package/dist/cli/commands/context-rehydrate.js +4 -0
  30. package/dist/cli/commands/context-rehydrate.js.map +1 -1
  31. package/dist/cli/commands/context.js +4 -0
  32. package/dist/cli/commands/context.js.map +1 -1
  33. package/dist/cli/commands/dashboard.js +4 -0
  34. package/dist/cli/commands/dashboard.js.map +1 -1
  35. package/dist/cli/commands/db.js +4 -0
  36. package/dist/cli/commands/db.js.map +1 -1
  37. package/dist/cli/commands/decision.js +4 -0
  38. package/dist/cli/commands/decision.js.map +1 -1
  39. package/dist/cli/commands/handoff.js +4 -0
  40. package/dist/cli/commands/handoff.js.map +1 -1
  41. package/dist/cli/commands/hooks.js +4 -0
  42. package/dist/cli/commands/hooks.js.map +1 -1
  43. package/dist/cli/commands/linear-unified.js +4 -0
  44. package/dist/cli/commands/linear-unified.js.map +1 -1
  45. package/dist/cli/commands/linear.js +4 -0
  46. package/dist/cli/commands/linear.js.map +1 -1
  47. package/dist/cli/commands/log.js +4 -0
  48. package/dist/cli/commands/log.js.map +1 -1
  49. package/dist/cli/commands/login.js +4 -0
  50. package/dist/cli/commands/login.js.map +1 -1
  51. package/dist/cli/commands/migrate.js +4 -0
  52. package/dist/cli/commands/migrate.js.map +1 -1
  53. package/dist/cli/commands/monitor.js +4 -0
  54. package/dist/cli/commands/monitor.js.map +1 -1
  55. package/dist/cli/commands/onboard.js +4 -0
  56. package/dist/cli/commands/onboard.js.map +1 -1
  57. package/dist/cli/commands/projects.js +4 -0
  58. package/dist/cli/commands/projects.js.map +1 -1
  59. package/dist/cli/commands/quality.js +4 -0
  60. package/dist/cli/commands/quality.js.map +1 -1
  61. package/dist/cli/commands/ralph.js +4 -0
  62. package/dist/cli/commands/ralph.js.map +1 -1
  63. package/dist/cli/commands/search.js +4 -0
  64. package/dist/cli/commands/search.js.map +1 -1
  65. package/dist/cli/commands/service.js +4 -0
  66. package/dist/cli/commands/service.js.map +1 -1
  67. package/dist/cli/commands/session.js +4 -0
  68. package/dist/cli/commands/session.js.map +1 -1
  69. package/dist/cli/commands/shell.js +5 -4
  70. package/dist/cli/commands/shell.js.map +2 -2
  71. package/dist/cli/commands/signup.js +4 -0
  72. package/dist/cli/commands/signup.js.map +1 -1
  73. package/dist/cli/commands/skills.js +4 -0
  74. package/dist/cli/commands/skills.js.map +1 -1
  75. package/dist/cli/commands/storage-tier.js +4 -0
  76. package/dist/cli/commands/storage-tier.js.map +1 -1
  77. package/dist/cli/commands/storage.js +4 -0
  78. package/dist/cli/commands/storage.js.map +1 -1
  79. package/dist/cli/commands/sweep.js +5 -4
  80. package/dist/cli/commands/sweep.js.map +2 -2
  81. package/dist/cli/commands/tasks.js +4 -0
  82. package/dist/cli/commands/tasks.js.map +1 -1
  83. package/dist/cli/commands/test.js +4 -0
  84. package/dist/cli/commands/test.js.map +1 -1
  85. package/dist/cli/commands/workflow.js +4 -0
  86. package/dist/cli/commands/workflow.js.map +1 -1
  87. package/dist/cli/commands/worktree.js +4 -0
  88. package/dist/cli/commands/worktree.js.map +1 -1
  89. package/dist/cli/index.js +4 -0
  90. package/dist/cli/index.js.map +1 -1
  91. package/dist/cli/utils/viewer.js +4 -0
  92. package/dist/cli/utils/viewer.js.map +1 -1
  93. package/dist/core/analytics/team-analytics.js +4 -0
  94. package/dist/core/analytics/team-analytics.js.map +1 -1
  95. package/dist/core/config/config-manager.js +4 -0
  96. package/dist/core/config/config-manager.js.map +1 -1
  97. package/dist/core/config/storage-config.js +4 -0
  98. package/dist/core/config/storage-config.js.map +1 -1
  99. package/dist/core/config/types.js +4 -0
  100. package/dist/core/config/types.js.map +1 -1
  101. package/dist/core/context/auto-context.js +4 -0
  102. package/dist/core/context/auto-context.js.map +1 -1
  103. package/dist/core/context/compaction-handler.js +4 -0
  104. package/dist/core/context/compaction-handler.js.map +1 -1
  105. package/dist/core/context/context-bridge.js +4 -0
  106. package/dist/core/context/context-bridge.js.map +1 -1
  107. package/dist/core/context/dual-stack-manager.js +4 -0
  108. package/dist/core/context/dual-stack-manager.js.map +1 -1
  109. package/dist/core/context/enhanced-rehydration.js +4 -0
  110. package/dist/core/context/enhanced-rehydration.js.map +1 -1
  111. package/dist/core/context/frame-database.js +4 -0
  112. package/dist/core/context/frame-database.js.map +1 -1
  113. package/dist/core/context/frame-digest.js +4 -0
  114. package/dist/core/context/frame-digest.js.map +1 -1
  115. package/dist/core/context/frame-handoff-manager.js +4 -0
  116. package/dist/core/context/frame-handoff-manager.js.map +1 -1
  117. package/dist/core/context/frame-manager.js +4 -0
  118. package/dist/core/context/frame-manager.js.map +1 -1
  119. package/dist/core/context/frame-stack.js +4 -0
  120. package/dist/core/context/frame-stack.js.map +1 -1
  121. package/dist/core/context/frame-types.js +4 -0
  122. package/dist/core/context/incremental-gc.js +4 -0
  123. package/dist/core/context/incremental-gc.js.map +1 -1
  124. package/dist/core/context/index.js +4 -0
  125. package/dist/core/context/index.js.map +1 -1
  126. package/dist/core/context/model-aware-compaction.js +4 -0
  127. package/dist/core/context/model-aware-compaction.js.map +1 -1
  128. package/dist/core/context/permission-manager.js +4 -0
  129. package/dist/core/context/permission-manager.js.map +1 -1
  130. package/dist/core/context/recursive-context-manager.js +4 -0
  131. package/dist/core/context/recursive-context-manager.js.map +1 -1
  132. package/dist/core/context/refactored-frame-manager.js +4 -0
  133. package/dist/core/context/refactored-frame-manager.js.map +1 -1
  134. package/dist/core/context/shared-context-layer.js +4 -0
  135. package/dist/core/context/shared-context-layer.js.map +1 -1
  136. package/dist/core/context/stack-merge-resolver.js +4 -0
  137. package/dist/core/context/stack-merge-resolver.js.map +1 -1
  138. package/dist/core/context/validation.js +4 -0
  139. package/dist/core/context/validation.js.map +1 -1
  140. package/dist/core/database/batch-operations.js +4 -0
  141. package/dist/core/database/batch-operations.js.map +1 -1
  142. package/dist/core/database/connection-pool.js +4 -0
  143. package/dist/core/database/connection-pool.js.map +1 -1
  144. package/dist/core/database/database-adapter.js +4 -0
  145. package/dist/core/database/database-adapter.js.map +1 -1
  146. package/dist/core/database/migration-manager.js +4 -0
  147. package/dist/core/database/migration-manager.js.map +1 -1
  148. package/dist/core/database/paradedb-adapter.js +4 -0
  149. package/dist/core/database/paradedb-adapter.js.map +1 -1
  150. package/dist/core/database/query-cache.js +4 -0
  151. package/dist/core/database/query-cache.js.map +1 -1
  152. package/dist/core/database/query-router.js +4 -0
  153. package/dist/core/database/query-router.js.map +1 -1
  154. package/dist/core/database/sqlite-adapter.js +4 -0
  155. package/dist/core/database/sqlite-adapter.js.map +1 -1
  156. package/dist/core/digest/enhanced-hybrid-digest.js +4 -0
  157. package/dist/core/digest/enhanced-hybrid-digest.js.map +1 -1
  158. package/dist/core/digest/frame-digest-integration.js +4 -0
  159. package/dist/core/digest/frame-digest-integration.js.map +1 -1
  160. package/dist/core/digest/hybrid-digest-generator.js +4 -0
  161. package/dist/core/digest/hybrid-digest-generator.js.map +1 -1
  162. package/dist/core/digest/index.js +4 -0
  163. package/dist/core/digest/index.js.map +1 -1
  164. package/dist/core/digest/types.js +4 -0
  165. package/dist/core/digest/types.js.map +1 -1
  166. package/dist/core/errors/index.js +4 -0
  167. package/dist/core/errors/index.js.map +1 -1
  168. package/dist/core/errors/recovery.js +4 -0
  169. package/dist/core/errors/recovery.js.map +1 -1
  170. package/dist/core/execution/parallel-executor.js +4 -0
  171. package/dist/core/execution/parallel-executor.js.map +1 -1
  172. package/dist/core/frame/workflow-templates.js +4 -0
  173. package/dist/core/frame/workflow-templates.js.map +1 -1
  174. package/dist/core/merge/conflict-detector.js +4 -0
  175. package/dist/core/merge/conflict-detector.js.map +1 -1
  176. package/dist/core/merge/index.js +4 -0
  177. package/dist/core/merge/index.js.map +1 -1
  178. package/dist/core/merge/resolution-engine.js +4 -0
  179. package/dist/core/merge/resolution-engine.js.map +1 -1
  180. package/dist/core/merge/stack-diff.js +4 -0
  181. package/dist/core/merge/stack-diff.js.map +1 -1
  182. package/dist/core/merge/types.js +4 -0
  183. package/dist/core/monitoring/error-handler.js +4 -0
  184. package/dist/core/monitoring/error-handler.js.map +1 -1
  185. package/dist/core/monitoring/logger.js +4 -0
  186. package/dist/core/monitoring/logger.js.map +1 -1
  187. package/dist/core/monitoring/metrics.js +4 -0
  188. package/dist/core/monitoring/metrics.js.map +1 -1
  189. package/dist/core/monitoring/progress-tracker.js +4 -0
  190. package/dist/core/monitoring/progress-tracker.js.map +1 -1
  191. package/dist/core/monitoring/session-monitor.js +4 -0
  192. package/dist/core/monitoring/session-monitor.js.map +1 -1
  193. package/dist/core/performance/context-cache.js +4 -0
  194. package/dist/core/performance/context-cache.js.map +1 -1
  195. package/dist/core/performance/index.js +4 -0
  196. package/dist/core/performance/index.js.map +1 -1
  197. package/dist/core/performance/lazy-context-loader.js +4 -0
  198. package/dist/core/performance/lazy-context-loader.js.map +1 -1
  199. package/dist/core/performance/monitor.js +4 -0
  200. package/dist/core/performance/monitor.js.map +1 -1
  201. package/dist/core/performance/optimized-frame-context.js +4 -0
  202. package/dist/core/performance/optimized-frame-context.js.map +1 -1
  203. package/dist/core/performance/performance-benchmark.js +4 -0
  204. package/dist/core/performance/performance-benchmark.js.map +1 -1
  205. package/dist/core/performance/performance-profiler.js +4 -0
  206. package/dist/core/performance/performance-profiler.js.map +1 -1
  207. package/dist/core/performance/streaming-jsonl-parser.js +4 -0
  208. package/dist/core/performance/streaming-jsonl-parser.js.map +1 -1
  209. package/dist/core/persistence/postgres-adapter.js +4 -0
  210. package/dist/core/persistence/postgres-adapter.js.map +1 -1
  211. package/dist/core/projects/project-isolation.js +4 -0
  212. package/dist/core/projects/project-isolation.js.map +1 -1
  213. package/dist/core/projects/project-manager.js +4 -0
  214. package/dist/core/projects/project-manager.js.map +1 -1
  215. package/dist/core/query/query-parser.js +4 -0
  216. package/dist/core/query/query-parser.js.map +1 -1
  217. package/dist/core/query/query-templates.js +4 -0
  218. package/dist/core/query/query-templates.js.map +1 -1
  219. package/dist/core/retrieval/context-retriever.js +4 -0
  220. package/dist/core/retrieval/context-retriever.js.map +1 -1
  221. package/dist/core/retrieval/graph-retrieval.js +4 -0
  222. package/dist/core/retrieval/graph-retrieval.js.map +1 -1
  223. package/dist/core/retrieval/hierarchical-retrieval.js +4 -0
  224. package/dist/core/retrieval/hierarchical-retrieval.js.map +1 -1
  225. package/dist/core/retrieval/index.js +4 -0
  226. package/dist/core/retrieval/index.js.map +1 -1
  227. package/dist/core/retrieval/llm-context-retrieval.js +4 -0
  228. package/dist/core/retrieval/llm-context-retrieval.js.map +1 -1
  229. package/dist/core/retrieval/retrieval-benchmarks.js +4 -0
  230. package/dist/core/retrieval/retrieval-benchmarks.js.map +1 -1
  231. package/dist/core/retrieval/summary-generator.js +4 -0
  232. package/dist/core/retrieval/summary-generator.js.map +1 -1
  233. package/dist/core/retrieval/types.js +4 -0
  234. package/dist/core/retrieval/types.js.map +1 -1
  235. package/dist/core/session/clear-survival.js +4 -0
  236. package/dist/core/session/clear-survival.js.map +1 -1
  237. package/dist/core/session/enhanced-handoff.js +4 -0
  238. package/dist/core/session/enhanced-handoff.js.map +1 -1
  239. package/dist/core/session/handoff-generator.js +4 -0
  240. package/dist/core/session/handoff-generator.js.map +1 -1
  241. package/dist/core/session/index.js +4 -0
  242. package/dist/core/session/index.js.map +1 -1
  243. package/dist/core/session/session-manager.js +4 -0
  244. package/dist/core/session/session-manager.js.map +1 -1
  245. package/dist/core/skills/index.js +4 -0
  246. package/dist/core/skills/index.js.map +1 -1
  247. package/dist/core/skills/skill-storage.js +4 -0
  248. package/dist/core/skills/skill-storage.js.map +1 -1
  249. package/dist/core/skills/types.js +4 -0
  250. package/dist/core/skills/types.js.map +1 -1
  251. package/dist/core/storage/chromadb-adapter.js +4 -0
  252. package/dist/core/storage/chromadb-adapter.js.map +1 -1
  253. package/dist/core/storage/infinite-storage.js +4 -0
  254. package/dist/core/storage/infinite-storage.js.map +1 -1
  255. package/dist/core/storage/railway-optimized-storage.js +4 -0
  256. package/dist/core/storage/railway-optimized-storage.js.map +1 -1
  257. package/dist/core/storage/remote-storage.js +4 -0
  258. package/dist/core/storage/remote-storage.js.map +1 -1
  259. package/dist/core/storage/two-tier-storage.js +4 -0
  260. package/dist/core/storage/two-tier-storage.js.map +1 -1
  261. package/dist/core/trace/cli-trace-wrapper.js +4 -0
  262. package/dist/core/trace/cli-trace-wrapper.js.map +1 -1
  263. package/dist/core/trace/db-trace-wrapper.js +4 -0
  264. package/dist/core/trace/db-trace-wrapper.js.map +1 -1
  265. package/dist/core/trace/debug-trace.js +4 -0
  266. package/dist/core/trace/debug-trace.js.map +1 -1
  267. package/dist/core/trace/index.js +4 -0
  268. package/dist/core/trace/index.js.map +1 -1
  269. package/dist/core/trace/linear-api-wrapper.js +4 -0
  270. package/dist/core/trace/linear-api-wrapper.js.map +1 -1
  271. package/dist/core/trace/trace-demo.js +4 -0
  272. package/dist/core/trace/trace-demo.js.map +1 -1
  273. package/dist/core/trace/trace-detector.demo.js +4 -0
  274. package/dist/core/trace/trace-detector.demo.js.map +1 -1
  275. package/dist/core/trace/trace-detector.js +4 -0
  276. package/dist/core/trace/trace-detector.js.map +1 -1
  277. package/dist/core/trace/trace-store.js +4 -0
  278. package/dist/core/trace/trace-store.js.map +1 -1
  279. package/dist/core/trace/types.js +4 -0
  280. package/dist/core/trace/types.js.map +1 -1
  281. package/dist/core/types.js +4 -0
  282. package/dist/core/utils/compression.js +4 -0
  283. package/dist/core/utils/compression.js.map +1 -1
  284. package/dist/core/utils/update-checker.js +4 -0
  285. package/dist/core/utils/update-checker.js.map +1 -1
  286. package/dist/core/worktree/worktree-manager.js +4 -0
  287. package/dist/core/worktree/worktree-manager.js.map +1 -1
  288. package/dist/daemon/session-daemon.js +4 -0
  289. package/dist/daemon/session-daemon.js.map +1 -1
  290. package/dist/features/analytics/api/analytics-api.js +4 -0
  291. package/dist/features/analytics/api/analytics-api.js.map +1 -1
  292. package/dist/features/analytics/core/analytics-service.js +4 -0
  293. package/dist/features/analytics/core/analytics-service.js.map +1 -1
  294. package/dist/features/analytics/index.js +4 -0
  295. package/dist/features/analytics/index.js.map +1 -1
  296. package/dist/features/analytics/queries/metrics-queries.js +4 -0
  297. package/dist/features/analytics/queries/metrics-queries.js.map +1 -1
  298. package/dist/features/analytics/types/metrics.js +4 -0
  299. package/dist/features/browser/browser-mcp.js +4 -0
  300. package/dist/features/browser/browser-mcp.js.map +1 -1
  301. package/dist/features/tasks/linear-task-manager.js +4 -0
  302. package/dist/features/tasks/linear-task-manager.js.map +1 -1
  303. package/dist/features/tasks/task-aware-context.js +4 -0
  304. package/dist/features/tasks/task-aware-context.js.map +1 -1
  305. package/dist/features/tui/simple-monitor.js +4 -0
  306. package/dist/features/tui/simple-monitor.js.map +1 -1
  307. package/dist/features/tui/swarm-monitor.js +4 -0
  308. package/dist/features/tui/swarm-monitor.js.map +1 -1
  309. package/dist/features/web/client/stores/task-store.js +4 -0
  310. package/dist/features/web/client/stores/task-store.js.map +1 -1
  311. package/dist/features/web/server/index.js +4 -0
  312. package/dist/features/web/server/index.js.map +1 -1
  313. package/dist/hooks/config.js +4 -0
  314. package/dist/hooks/config.js.map +1 -1
  315. package/dist/hooks/daemon.js +4 -0
  316. package/dist/hooks/daemon.js.map +1 -1
  317. package/dist/hooks/events.js +4 -0
  318. package/dist/hooks/events.js.map +1 -1
  319. package/dist/hooks/index.js +4 -0
  320. package/dist/hooks/index.js.map +1 -1
  321. package/dist/index.js +4 -0
  322. package/dist/index.js.map +1 -1
  323. package/dist/integrations/anthropic/client.js +4 -0
  324. package/dist/integrations/anthropic/client.js.map +1 -1
  325. package/dist/integrations/claude-code/agent-bridge.js +4 -0
  326. package/dist/integrations/claude-code/agent-bridge.js.map +1 -1
  327. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +4 -0
  328. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +1 -1
  329. package/dist/integrations/claude-code/lifecycle-hooks.js +4 -0
  330. package/dist/integrations/claude-code/lifecycle-hooks.js.map +1 -1
  331. package/dist/integrations/claude-code/post-task-hooks.js +4 -0
  332. package/dist/integrations/claude-code/post-task-hooks.js.map +1 -1
  333. package/dist/integrations/claude-code/subagent-client-stub.js +4 -0
  334. package/dist/integrations/claude-code/subagent-client-stub.js.map +1 -1
  335. package/dist/integrations/claude-code/subagent-client.js +4 -0
  336. package/dist/integrations/claude-code/subagent-client.js.map +1 -1
  337. package/dist/integrations/claude-code/task-coordinator.js +4 -0
  338. package/dist/integrations/claude-code/task-coordinator.js.map +1 -1
  339. package/dist/integrations/linear/auth.js +4 -0
  340. package/dist/integrations/linear/auth.js.map +1 -1
  341. package/dist/integrations/linear/auto-sync.js +4 -0
  342. package/dist/integrations/linear/auto-sync.js.map +1 -1
  343. package/dist/integrations/linear/client.js +4 -0
  344. package/dist/integrations/linear/client.js.map +1 -1
  345. package/dist/integrations/linear/config.js +4 -0
  346. package/dist/integrations/linear/config.js.map +1 -1
  347. package/dist/integrations/linear/migration.js +4 -0
  348. package/dist/integrations/linear/migration.js.map +1 -1
  349. package/dist/integrations/linear/oauth-server.js +4 -0
  350. package/dist/integrations/linear/oauth-server.js.map +1 -1
  351. package/dist/integrations/linear/rest-client.js +4 -0
  352. package/dist/integrations/linear/rest-client.js.map +1 -1
  353. package/dist/integrations/linear/sync-manager.js +4 -0
  354. package/dist/integrations/linear/sync-manager.js.map +1 -1
  355. package/dist/integrations/linear/sync-service.js +4 -0
  356. package/dist/integrations/linear/sync-service.js.map +1 -1
  357. package/dist/integrations/linear/sync.js +4 -0
  358. package/dist/integrations/linear/sync.js.map +1 -1
  359. package/dist/integrations/linear/types.js +4 -0
  360. package/dist/integrations/linear/unified-sync.js +4 -0
  361. package/dist/integrations/linear/unified-sync.js.map +1 -1
  362. package/dist/integrations/linear/webhook-handler.js +4 -0
  363. package/dist/integrations/linear/webhook-handler.js.map +1 -1
  364. package/dist/integrations/linear/webhook-server.js +4 -0
  365. package/dist/integrations/linear/webhook-server.js.map +1 -1
  366. package/dist/integrations/linear/webhook.js +4 -0
  367. package/dist/integrations/linear/webhook.js.map +1 -1
  368. package/dist/integrations/mcp/handlers/code-execution-handlers.js +4 -0
  369. package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +1 -1
  370. package/dist/integrations/mcp/handlers/context-handlers.js +4 -0
  371. package/dist/integrations/mcp/handlers/context-handlers.js.map +1 -1
  372. package/dist/integrations/mcp/handlers/index.js +4 -0
  373. package/dist/integrations/mcp/handlers/index.js.map +1 -1
  374. package/dist/integrations/mcp/handlers/linear-handlers.js +4 -0
  375. package/dist/integrations/mcp/handlers/linear-handlers.js.map +1 -1
  376. package/dist/integrations/mcp/handlers/skill-handlers.js +4 -0
  377. package/dist/integrations/mcp/handlers/skill-handlers.js.map +1 -1
  378. package/dist/integrations/mcp/handlers/task-handlers.js +4 -0
  379. package/dist/integrations/mcp/handlers/task-handlers.js.map +1 -1
  380. package/dist/integrations/mcp/handlers/trace-handlers.js +4 -0
  381. package/dist/integrations/mcp/handlers/trace-handlers.js.map +1 -1
  382. package/dist/integrations/mcp/index.js +4 -0
  383. package/dist/integrations/mcp/index.js.map +1 -1
  384. package/dist/integrations/mcp/middleware/tool-scoring.js +4 -0
  385. package/dist/integrations/mcp/middleware/tool-scoring.js.map +1 -1
  386. package/dist/integrations/mcp/refactored-server.js +4 -0
  387. package/dist/integrations/mcp/refactored-server.js.map +1 -1
  388. package/dist/integrations/mcp/server.js +4 -0
  389. package/dist/integrations/mcp/server.js.map +1 -1
  390. package/dist/integrations/mcp/tool-definitions-code.js +4 -0
  391. package/dist/integrations/mcp/tool-definitions-code.js.map +1 -1
  392. package/dist/integrations/mcp/tool-definitions.js +4 -0
  393. package/dist/integrations/mcp/tool-definitions.js.map +1 -1
  394. package/dist/integrations/mcp/trace-test.js +4 -0
  395. package/dist/integrations/mcp/trace-test.js.map +1 -1
  396. package/dist/integrations/pg-aiguide/embedding-provider.js +4 -0
  397. package/dist/integrations/pg-aiguide/embedding-provider.js.map +1 -1
  398. package/dist/integrations/pg-aiguide/semantic-search.js +4 -0
  399. package/dist/integrations/pg-aiguide/semantic-search.js.map +1 -1
  400. package/dist/integrations/pg-aiguide/timescale-analytics.js +4 -0
  401. package/dist/integrations/pg-aiguide/timescale-analytics.js.map +1 -1
  402. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js +4 -0
  403. package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +1 -1
  404. package/dist/integrations/ralph/context/context-budget-manager.js +4 -0
  405. package/dist/integrations/ralph/context/context-budget-manager.js.map +1 -1
  406. package/dist/integrations/ralph/context/stackmemory-context-loader.js +4 -0
  407. package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +1 -1
  408. package/dist/integrations/ralph/coordination/enhanced-coordination.js +4 -0
  409. package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +1 -1
  410. package/dist/integrations/ralph/index.js +4 -0
  411. package/dist/integrations/ralph/index.js.map +1 -1
  412. package/dist/integrations/ralph/learning/pattern-learner.js +4 -0
  413. package/dist/integrations/ralph/learning/pattern-learner.js.map +1 -1
  414. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js +4 -0
  415. package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +1 -1
  416. package/dist/integrations/ralph/monitoring/swarm-dashboard.js +4 -0
  417. package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +1 -1
  418. package/dist/integrations/ralph/monitoring/swarm-registry.js +4 -0
  419. package/dist/integrations/ralph/monitoring/swarm-registry.js.map +1 -1
  420. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js +4 -0
  421. package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +1 -1
  422. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js +4 -0
  423. package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +1 -1
  424. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js +4 -0
  425. package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +1 -1
  426. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js +4 -0
  427. package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +1 -1
  428. package/dist/integrations/ralph/performance/performance-optimizer.js +4 -0
  429. package/dist/integrations/ralph/performance/performance-optimizer.js.map +1 -1
  430. package/dist/integrations/ralph/ralph-integration-demo.js +4 -0
  431. package/dist/integrations/ralph/ralph-integration-demo.js.map +1 -1
  432. package/dist/integrations/ralph/recovery/crash-recovery.js +4 -0
  433. package/dist/integrations/ralph/recovery/crash-recovery.js.map +1 -1
  434. package/dist/integrations/ralph/state/state-reconciler.js +4 -0
  435. package/dist/integrations/ralph/state/state-reconciler.js.map +1 -1
  436. package/dist/integrations/ralph/swarm/git-workflow-manager.js +4 -0
  437. package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +1 -1
  438. package/dist/integrations/ralph/swarm/swarm-coordinator.js +4 -0
  439. package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +1 -1
  440. package/dist/integrations/ralph/types.js +4 -0
  441. package/dist/integrations/ralph/visualization/ralph-debugger.js +4 -0
  442. package/dist/integrations/ralph/visualization/ralph-debugger.js.map +1 -1
  443. package/dist/mcp/stackmemory-mcp-server.js +4 -0
  444. package/dist/mcp/stackmemory-mcp-server.js.map +1 -1
  445. package/dist/middleware/exponential-rate-limiter.js +4 -0
  446. package/dist/middleware/exponential-rate-limiter.js.map +1 -1
  447. package/dist/models/user.model.js +4 -0
  448. package/dist/models/user.model.js.map +1 -1
  449. package/dist/servers/production/auth-middleware.js +4 -0
  450. package/dist/servers/production/auth-middleware.js.map +1 -1
  451. package/dist/servers/railway/config.js +4 -0
  452. package/dist/servers/railway/config.js.map +1 -1
  453. package/dist/servers/railway/index-enhanced.js +4 -0
  454. package/dist/servers/railway/index-enhanced.js.map +1 -1
  455. package/dist/servers/railway/index.js +4 -0
  456. package/dist/servers/railway/index.js.map +1 -1
  457. package/dist/servers/railway/simple.js +4 -0
  458. package/dist/servers/railway/simple.js.map +1 -1
  459. package/dist/servers/railway/storage-test.js +4 -0
  460. package/dist/servers/railway/storage-test.js.map +1 -1
  461. package/dist/services/config-service.js +4 -0
  462. package/dist/services/config-service.js.map +1 -1
  463. package/dist/services/context-service.js +4 -0
  464. package/dist/services/context-service.js.map +1 -1
  465. package/dist/skills/api-discovery.js +4 -0
  466. package/dist/skills/api-discovery.js.map +1 -1
  467. package/dist/skills/api-skill.js +4 -0
  468. package/dist/skills/api-skill.js.map +1 -1
  469. package/dist/skills/claude-skills.js +4 -0
  470. package/dist/skills/claude-skills.js.map +1 -1
  471. package/dist/skills/dashboard-launcher.js +4 -0
  472. package/dist/skills/dashboard-launcher.js.map +1 -1
  473. package/dist/skills/recursive-agent-orchestrator.js +4 -0
  474. package/dist/skills/recursive-agent-orchestrator.js.map +1 -1
  475. package/dist/skills/repo-ingestion-skill.js +4 -0
  476. package/dist/skills/repo-ingestion-skill.js.map +1 -1
  477. package/dist/skills/security-secrets-scanner.js +4 -0
  478. package/dist/skills/security-secrets-scanner.js.map +1 -1
  479. package/dist/skills/unified-rlm-orchestrator.js +4 -0
  480. package/dist/skills/unified-rlm-orchestrator.js.map +1 -1
  481. package/dist/types/task.js +4 -0
  482. package/dist/utils/env.js +4 -0
  483. package/dist/utils/env.js.map +1 -1
  484. package/dist/utils/formatting.js +4 -0
  485. package/dist/utils/formatting.js.map +1 -1
  486. package/dist/utils/process-cleanup.js +4 -0
  487. package/dist/utils/process-cleanup.js.map +1 -1
  488. package/dist/validation/schemas.js +4 -0
  489. package/dist/validation/schemas.js.map +1 -1
  490. package/package.json +1 -1
@@ -1,3 +1,7 @@
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);
1
5
  import { spawn } from "child_process";
2
6
  import { promises as fs } from "fs";
3
7
  import { join } from "path";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/code-execution-handlers.ts"],
4
4
  "sourcesContent": ["/**\n * Code Execution MCP Handlers\n * Provides controlled Python/JavaScript code execution with safety measures\n */\n\nimport { spawn } from 'child_process';\nimport { promises as fs } from 'fs';\nimport { join } from 'path';\nimport { tmpdir } from 'os';\nimport { randomBytes } from 'crypto';\n\ninterface ExecutionResult {\n success: boolean;\n stdout: string;\n stderr: string;\n exitCode: number | null;\n truncated: boolean;\n outputFile?: string;\n}\n\nconst MAX_OUTPUT_SIZE = 50000; // Maximum output size before truncation\nconst EXECUTION_TIMEOUT = 30000; // 30 seconds timeout\n\nexport class CodeExecutionHandler {\n private readonly allowedLanguages = ['python', 'javascript', 'typescript'];\n private readonly sandboxDir: string;\n\n constructor() {\n // Create a sandbox directory for code execution\n this.sandboxDir = join(tmpdir(), 'stackmemory-sandbox');\n this.ensureSandboxDir();\n }\n\n private async ensureSandboxDir(): Promise<void> {\n try {\n await fs.mkdir(this.sandboxDir, { recursive: true });\n } catch (error) {\n console.error('Failed to create sandbox directory:', error);\n }\n }\n\n /**\n * Execute code in a controlled environment\n */\n async executeCode(params: {\n language: string;\n code: string;\n workingDirectory?: string;\n timeout?: number;\n }): Promise<ExecutionResult> {\n const { language, code, workingDirectory, timeout = EXECUTION_TIMEOUT } = params;\n\n // Validate language\n if (!this.allowedLanguages.includes(language.toLowerCase())) {\n return {\n success: false,\n stdout: '',\n stderr: `Language '${language}' is not allowed. Use: ${this.allowedLanguages.join(', ')}`,\n exitCode: 1,\n truncated: false,\n };\n }\n\n // Create temporary file for code\n const tempFile = join(\n this.sandboxDir,\n `code_${randomBytes(8).toString('hex')}.${this.getFileExtension(language)}`\n );\n\n try {\n // Write code to temporary file\n await fs.writeFile(tempFile, code, 'utf-8');\n\n // Execute code\n const result = await this.runCode(language, tempFile, workingDirectory || this.sandboxDir, timeout);\n\n // Clean up temp file\n await fs.unlink(tempFile).catch(() => {});\n\n return result;\n } catch (error) {\n return {\n success: false,\n stdout: '',\n stderr: `Execution error: ${error instanceof Error ? error.message : String(error)}`,\n exitCode: 1,\n truncated: false,\n };\n }\n }\n\n /**\n * Run code with appropriate interpreter\n */\n private async runCode(\n language: string,\n filePath: string,\n workingDirectory: string,\n timeout: number\n ): Promise<ExecutionResult> {\n const command = this.getCommand(language);\n const args = this.getArgs(language, filePath);\n\n return new Promise((resolve) => {\n let stdout = '';\n let stderr = '';\n let truncated = false;\n\n const child = spawn(command, args, {\n cwd: workingDirectory,\n env: {\n ...process.env,\n PYTHONDONTWRITEBYTECODE: '1', // Don't create .pyc files\n NODE_ENV: 'sandbox',\n },\n });\n\n // Set timeout\n const timeoutId = setTimeout(() => {\n child.kill('SIGTERM');\n stderr += '\\n[Process killed due to timeout]';\n }, timeout);\n\n child.stdout.on('data', (data) => {\n stdout += data.toString();\n if (stdout.length > MAX_OUTPUT_SIZE) {\n truncated = true;\n child.kill('SIGTERM');\n }\n });\n\n child.stderr.on('data', (data) => {\n stderr += data.toString();\n if (stderr.length > MAX_OUTPUT_SIZE) {\n truncated = true;\n child.kill('SIGTERM');\n }\n });\n\n child.on('close', async (code) => {\n clearTimeout(timeoutId);\n\n // If output is truncated, save to file\n let outputFile: string | undefined;\n if (truncated) {\n outputFile = join(this.sandboxDir, `output_${randomBytes(8).toString('hex')}.txt`);\n await fs.writeFile(outputFile, stdout + '\\n---STDERR---\\n' + stderr, 'utf-8').catch(() => {});\n }\n\n resolve({\n success: code === 0,\n stdout: truncated ? stdout.slice(0, MAX_OUTPUT_SIZE) + '\\n[Output truncated]' : stdout,\n stderr: truncated ? stderr.slice(0, MAX_OUTPUT_SIZE) + '\\n[Output truncated]' : stderr,\n exitCode: code,\n truncated,\n outputFile,\n });\n });\n\n child.on('error', (error) => {\n clearTimeout(timeoutId);\n resolve({\n success: false,\n stdout: '',\n stderr: `Failed to start process: ${error.message}`,\n exitCode: null,\n truncated: false,\n });\n });\n });\n }\n\n /**\n * Get file extension for language\n */\n private getFileExtension(language: string): string {\n switch (language.toLowerCase()) {\n case 'python':\n return 'py';\n case 'javascript':\n return 'js';\n case 'typescript':\n return 'ts';\n default:\n return 'txt';\n }\n }\n\n /**\n * Get command for language\n */\n private getCommand(language: string): string {\n switch (language.toLowerCase()) {\n case 'python':\n return 'python3';\n case 'javascript':\n return 'node';\n case 'typescript':\n return 'npx';\n default:\n return 'echo';\n }\n }\n\n /**\n * Get arguments for language\n */\n private getArgs(language: string, filePath: string): string[] {\n switch (language.toLowerCase()) {\n case 'python':\n return [filePath];\n case 'javascript':\n return [filePath];\n case 'typescript':\n return ['tsx', filePath];\n default:\n return ['Unsupported language'];\n }\n }\n\n /**\n * Validate code for dangerous patterns\n */\n validateCode(code: string): { safe: boolean; warnings: string[] } {\n const warnings: string[] = [];\n const dangerousPatterns = [\n { pattern: /import\\s+os/i, message: 'Importing os module detected' },\n { pattern: /import\\s+subprocess/i, message: 'Subprocess module detected' },\n { pattern: /exec\\s*\\(/i, message: 'exec() function detected' },\n { pattern: /eval\\s*\\(/i, message: 'eval() function detected' },\n { pattern: /__import__/i, message: '__import__ detected' },\n { pattern: /open\\s*\\([^)]*['\"]\\//i, message: 'Absolute path file access detected' },\n { pattern: /require\\s*\\([^)]*child_process/i, message: 'child_process module detected' },\n { pattern: /require\\s*\\([^)]*fs/i, message: 'fs module access detected' },\n ];\n\n for (const { pattern, message } of dangerousPatterns) {\n if (pattern.test(code)) {\n warnings.push(message);\n }\n }\n\n return {\n safe: warnings.length === 0,\n warnings,\n };\n }\n\n /**\n * Get sandbox status\n */\n async getSandboxStatus(): Promise<{\n sandboxDir: string;\n tempFiles: number;\n totalSize: number;\n }> {\n try {\n const files = await fs.readdir(this.sandboxDir);\n let totalSize = 0;\n\n for (const file of files) {\n const stat = await fs.stat(join(this.sandboxDir, file));\n totalSize += stat.size;\n }\n\n return {\n sandboxDir: this.sandboxDir,\n tempFiles: files.length,\n totalSize,\n };\n } catch {\n return {\n sandboxDir: this.sandboxDir,\n tempFiles: 0,\n totalSize: 0,\n };\n }\n }\n\n /**\n * Clean sandbox directory\n */\n async cleanSandbox(): Promise<void> {\n try {\n const files = await fs.readdir(this.sandboxDir);\n for (const file of files) {\n await fs.unlink(join(this.sandboxDir, file)).catch(() => {});\n }\n } catch (error) {\n console.error('Failed to clean sandbox:', error);\n }\n }\n}\n\n// Export MCP tool handlers\nexport const codeExecutionHandlers = {\n 'code.execute': async (params: any) => {\n const handler = new CodeExecutionHandler();\n \n // Validate code before execution\n const validation = handler.validateCode(params.code);\n if (!validation.safe && !params.force) {\n return {\n error: 'Code validation failed',\n warnings: validation.warnings,\n hint: 'Add force: true to execute anyway',\n };\n }\n\n return await handler.executeCode(params);\n },\n\n 'code.validate': async (params: any) => {\n const handler = new CodeExecutionHandler();\n return handler.validateCode(params.code);\n },\n\n 'code.sandbox_status': async () => {\n const handler = new CodeExecutionHandler();\n return await handler.getSandboxStatus();\n },\n\n 'code.clean_sandbox': async () => {\n const handler = new CodeExecutionHandler();\n await handler.cleanSandbox();\n return { success: true, message: 'Sandbox cleaned' };\n },\n};"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { logger } from "../../../core/monitoring/logger.js";
2
6
  class ContextHandlers {
3
7
  constructor(deps) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/context-handlers.ts"],
4
4
  "sourcesContent": ["/**\n * Context-related MCP tool handlers\n * Handles frame management and context retrieval\n */\n\nimport { FrameManager, FrameType } from '../../../core/context/frame-manager.js';\nimport { LLMContextRetrieval } from '../../../core/retrieval/index.js';\nimport { logger } from '../../../core/monitoring/logger.js';\n\nexport interface ContextHandlerDependencies {\n frameManager: FrameManager;\n contextRetrieval: LLMContextRetrieval;\n}\n\nexport class ContextHandlers {\n constructor(private deps: ContextHandlerDependencies) {}\n\n /**\n * Get current project context\n */\n async handleGetContext(args: any): Promise<any> {\n try {\n const query = args.query || '';\n const limit = args.limit || 5;\n\n logger.info('Getting context', { query, limit });\n\n // Get hot stack context\n const hotStack = this.deps.frameManager.getHotStackContext(20);\n\n if (hotStack.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: 'No active context frames found. Use start_frame to begin working on a task.',\n },\n ],\n };\n }\n\n // Use LLM context retrieval if available\n if (this.deps.contextRetrieval && query) {\n try {\n // TODO: Implement getRelevantContext method\n const llmContext = { summary: 'Context retrieval not yet implemented', frameIds: [] };\n return {\n content: [\n {\n type: 'text',\n text: llmContext.summary || 'No specific context found.',\n },\n ],\n metadata: {\n relevantFrames: llmContext.frameIds,\n query,\n },\n };\n } catch (error: unknown) {\n logger.warn('LLM context retrieval failed, falling back to hot stack', error instanceof Error ? error : new Error(String(error)));\n }\n }\n\n // Format hot stack context\n const contextText = hotStack\n .map((frame, i) => {\n const depth = ' '.repeat(i);\n const constraints = frame.header.constraints?.length\n ? `\\n${depth} Constraints: ${frame.header.constraints.join(', ')}`\n : '';\n const events = frame.recentEvents.length\n ? `\\n${depth} Recent: ${frame.recentEvents.length} events`\n : '';\n\n return `${depth}Frame ${i + 1}: ${frame.header.goal}${constraints}${events}`;\n })\n .join('\\n');\n\n return {\n content: [\n {\n type: 'text',\n text: `Current Context Stack:\\n${contextText}`,\n },\n ],\n };\n } catch (error: unknown) {\n logger.error('Error getting context', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Record a decision or important information\n */\n async handleAddDecision(args: any): Promise<any> {\n try {\n const { content, type } = args;\n \n if (!content) {\n throw new Error('Content is required');\n }\n\n const currentFrame = this.deps.frameManager.getCurrentFrameId();\n if (!currentFrame) {\n throw new Error('No active frame. Use start_frame first.');\n }\n\n // Add as anchor\n this.deps.frameManager.addAnchor(\n type === 'constraint' ? 'CONSTRAINT' : 'DECISION',\n content,\n type === 'constraint' ? 9 : 7\n );\n\n // Also add as event\n this.deps.frameManager.addEvent('decision', {\n type,\n content,\n timestamp: Date.now(),\n });\n\n logger.info('Added decision/constraint', { type, content });\n\n return {\n content: [\n {\n type: 'text',\n text: `Recorded ${type}: ${content}`,\n },\n ],\n };\n } catch (error: unknown) {\n logger.error('Error adding decision', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Start a new frame (task/subtask) on the call stack\n */\n async handleStartFrame(args: any): Promise<any> {\n try {\n const { name, type = 'task', constraints = [], definitions = {} } = args;\n \n if (!name) {\n throw new Error('Frame name is required');\n }\n\n const frameId = this.deps.frameManager.createFrame({\n type: type as FrameType,\n name,\n inputs: { constraints, definitions }\n });\n\n logger.info('Started frame', { frameId, name, type });\n\n return {\n content: [\n {\n type: 'text',\n text: `Started frame: ${name} (${frameId})`,\n },\n ],\n metadata: {\n frameId,\n type,\n name,\n },\n };\n } catch (error: unknown) {\n logger.error('Error starting frame', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Close current frame with summary\n */\n async handleCloseFrame(args: any): Promise<any> {\n try {\n const { summary, frameId } = args;\n const targetFrameId = frameId || this.deps.frameManager.getCurrentFrameId();\n\n if (!targetFrameId) {\n throw new Error('No active frame to close');\n }\n\n const frame = this.deps.frameManager.getFrame(targetFrameId);\n if (!frame) {\n throw new Error(`Frame not found: ${targetFrameId}`);\n }\n\n // Add summary if provided\n if (summary) {\n this.deps.frameManager.addEvent('observation', {\n type: 'completion_summary',\n content: summary,\n timestamp: Date.now(),\n });\n }\n\n this.deps.frameManager.closeFrame(targetFrameId, summary ? { summary } : {});\n\n logger.info('Closed frame', { frameId: targetFrameId, frameName: frame.name });\n\n return {\n content: [\n {\n type: 'text',\n text: `Closed frame: ${frame.name}${summary ? ` with summary: ${summary}` : ''}`,\n },\n ],\n };\n } catch (error: unknown) {\n logger.error('Error closing frame', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Add an anchor (important fact) to current frame\n */\n async handleAddAnchor(args: any): Promise<any> {\n try {\n const { type, text, priority = 5 } = args;\n \n if (!text) {\n throw new Error('Anchor text is required');\n }\n\n const currentFrame = this.deps.frameManager.getCurrentFrameId();\n if (!currentFrame) {\n throw new Error('No active frame. Use start_frame first.');\n }\n\n const validTypes = ['FACT', 'DECISION', 'CONSTRAINT', 'INTERFACE_CONTRACT', 'TODO', 'RISK'];\n if (!validTypes.includes(type)) {\n throw new Error(`Invalid anchor type. Must be one of: ${validTypes.join(', ')}`);\n }\n\n this.deps.frameManager.addAnchor(type, text, priority);\n\n logger.info('Added anchor', { type, text, priority });\n\n return {\n content: [\n {\n type: 'text',\n text: `Added ${type.toLowerCase()}: ${text}`,\n },\n ],\n };\n } catch (error: unknown) {\n logger.error('Error adding anchor', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Get current hot stack context\n */\n async handleGetHotStack(args: any): Promise<any> {\n try {\n const maxEvents = args.max_events || 10;\n const hotStack = this.deps.frameManager.getHotStackContext(maxEvents);\n\n if (hotStack.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: 'No active frames on the stack.',\n },\n ],\n };\n }\n\n const stackSummary = hotStack.map((frame, index) => ({\n depth: index,\n frameId: frame.frameId,\n goal: frame.header.goal,\n constraints: frame.header.constraints || [],\n anchors: frame.anchors.length,\n recentEvents: frame.recentEvents.length,\n artifacts: frame.activeArtifacts.length,\n }));\n\n return {\n content: [\n {\n type: 'text',\n text: `Hot Stack (${hotStack.length} frames):\\n` +\n stackSummary.map((f: any) => \n ` ${f.depth}: ${f.goal} (${f.anchors} anchors, ${f.recentEvents} events)`\n ).join('\\n'),\n },\n ],\n metadata: {\n stack: stackSummary,\n },\n };\n } catch (error: unknown) {\n logger.error('Error getting hot stack', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n}"],
5
- "mappings": "AAOA,SAAS,cAAc;AAOhB,MAAM,gBAAgB;AAAA,EAC3B,YAAoB,MAAkC;AAAlC;AAAA,EAAmC;AAAA;AAAA;AAAA;AAAA,EAKvD,MAAM,iBAAiB,MAAyB;AAC9C,QAAI;AACF,YAAM,QAAQ,KAAK,SAAS;AAC5B,YAAM,QAAQ,KAAK,SAAS;AAE5B,aAAO,KAAK,mBAAmB,EAAE,OAAO,MAAM,CAAC;AAG/C,YAAM,WAAW,KAAK,KAAK,aAAa,mBAAmB,EAAE;AAE7D,UAAI,SAAS,WAAW,GAAG;AACzB,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAGA,UAAI,KAAK,KAAK,oBAAoB,OAAO;AACvC,YAAI;AAEF,gBAAM,aAAa,EAAE,SAAS,yCAAyC,UAAU,CAAC,EAAE;AACpF,iBAAO;AAAA,YACL,SAAS;AAAA,cACP;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM,WAAW,WAAW;AAAA,cAC9B;AAAA,YACF;AAAA,YACA,UAAU;AAAA,cACR,gBAAgB,WAAW;AAAA,cAC3B;AAAA,YACF;AAAA,UACF;AAAA,QACF,SAAS,OAAgB;AACvB,iBAAO,KAAK,2DAA2D,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAAA,QAClI;AAAA,MACF;AAGA,YAAM,cAAc,SACjB,IAAI,CAAC,OAAO,MAAM;AACjB,cAAM,QAAQ,KAAK,OAAO,CAAC;AAC3B,cAAM,cAAc,MAAM,OAAO,aAAa,SAC1C;AAAA,EAAK,KAAK,kBAAkB,MAAM,OAAO,YAAY,KAAK,IAAI,CAAC,KAC/D;AACJ,cAAM,SAAS,MAAM,aAAa,SAC9B;AAAA,EAAK,KAAK,aAAa,MAAM,aAAa,MAAM,YAChD;AAEJ,eAAO,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM,OAAO,IAAI,GAAG,WAAW,GAAG,MAAM;AAAA,MAC5E,CAAC,EACA,KAAK,IAAI;AAEZ,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,EAA2B,WAAW;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,yBAAyB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC/F,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,MAAyB;AAC/C,QAAI;AACF,YAAM,EAAE,SAAS,KAAK,IAAI;AAE1B,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,qBAAqB;AAAA,MACvC;AAEA,YAAM,eAAe,KAAK,KAAK,aAAa,kBAAkB;AAC9D,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AAGA,WAAK,KAAK,aAAa;AAAA,QACrB,SAAS,eAAe,eAAe;AAAA,QACvC;AAAA,QACA,SAAS,eAAe,IAAI;AAAA,MAC9B;AAGA,WAAK,KAAK,aAAa,SAAS,YAAY;AAAA,QAC1C;AAAA,QACA;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAED,aAAO,KAAK,6BAA6B,EAAE,MAAM,QAAQ,CAAC;AAE1D,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,YAAY,IAAI,KAAK,OAAO;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,yBAAyB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC/F,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,MAAyB;AAC9C,QAAI;AACF,YAAM,EAAE,MAAM,OAAO,QAAQ,cAAc,CAAC,GAAG,cAAc,CAAC,EAAE,IAAI;AAEpE,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAEA,YAAM,UAAU,KAAK,KAAK,aAAa,YAAY;AAAA,QACjD;AAAA,QACA;AAAA,QACA,QAAQ,EAAE,aAAa,YAAY;AAAA,MACrC,CAAC;AAED,aAAO,KAAK,iBAAiB,EAAE,SAAS,MAAM,KAAK,CAAC;AAEpD,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,kBAAkB,IAAI,KAAK,OAAO;AAAA,UAC1C;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,wBAAwB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC9F,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,MAAyB;AAC9C,QAAI;AACF,YAAM,EAAE,SAAS,QAAQ,IAAI;AAC7B,YAAM,gBAAgB,WAAW,KAAK,KAAK,aAAa,kBAAkB;AAE1E,UAAI,CAAC,eAAe;AAClB,cAAM,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AAEA,YAAM,QAAQ,KAAK,KAAK,aAAa,SAAS,aAAa;AAC3D,UAAI,CAAC,OAAO;AACV,cAAM,IAAI,MAAM,oBAAoB,aAAa,EAAE;AAAA,MACrD;AAGA,UAAI,SAAS;AACX,aAAK,KAAK,aAAa,SAAS,eAAe;AAAA,UAC7C,MAAM;AAAA,UACN,SAAS;AAAA,UACT,WAAW,KAAK,IAAI;AAAA,QACtB,CAAC;AAAA,MACH;AAEA,WAAK,KAAK,aAAa,WAAW,eAAe,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC;AAE3E,aAAO,KAAK,gBAAgB,EAAE,SAAS,eAAe,WAAW,MAAM,KAAK,CAAC;AAE7E,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,iBAAiB,MAAM,IAAI,GAAG,UAAU,kBAAkB,OAAO,KAAK,EAAE;AAAA,UAChF;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,uBAAuB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC7F,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB,MAAyB;AAC7C,QAAI;AACF,YAAM,EAAE,MAAM,MAAM,WAAW,EAAE,IAAI;AAErC,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AAEA,YAAM,eAAe,KAAK,KAAK,aAAa,kBAAkB;AAC9D,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AAEA,YAAM,aAAa,CAAC,QAAQ,YAAY,cAAc,sBAAsB,QAAQ,MAAM;AAC1F,UAAI,CAAC,WAAW,SAAS,IAAI,GAAG;AAC9B,cAAM,IAAI,MAAM,wCAAwC,WAAW,KAAK,IAAI,CAAC,EAAE;AAAA,MACjF;AAEA,WAAK,KAAK,aAAa,UAAU,MAAM,MAAM,QAAQ;AAErD,aAAO,KAAK,gBAAgB,EAAE,MAAM,MAAM,SAAS,CAAC;AAEpD,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,SAAS,KAAK,YAAY,CAAC,KAAK,IAAI;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,uBAAuB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC7F,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,MAAyB;AAC/C,QAAI;AACF,YAAM,YAAY,KAAK,cAAc;AACrC,YAAM,WAAW,KAAK,KAAK,aAAa,mBAAmB,SAAS;AAEpE,UAAI,SAAS,WAAW,GAAG;AACzB,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,YAAM,eAAe,SAAS,IAAI,CAAC,OAAO,WAAW;AAAA,QACnD,OAAO;AAAA,QACP,SAAS,MAAM;AAAA,QACf,MAAM,MAAM,OAAO;AAAA,QACnB,aAAa,MAAM,OAAO,eAAe,CAAC;AAAA,QAC1C,SAAS,MAAM,QAAQ;AAAA,QACvB,cAAc,MAAM,aAAa;AAAA,QACjC,WAAW,MAAM,gBAAgB;AAAA,MACnC,EAAE;AAEF,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,cAAc,SAAS,MAAM;AAAA,IAC7B,aAAa;AAAA,cAAI,CAAC,MAChB,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,KAAK,EAAE,OAAO,aAAa,EAAE,YAAY;AAAA,YAClE,EAAE,KAAK,IAAI;AAAA,UACnB;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,2BAA2B,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AACjG,YAAM;AAAA,IACR;AAAA,EACF;AACF;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { ContextHandlers } from "./context-handlers.js";
2
6
  import { TaskHandlers } from "./task-handlers.js";
3
7
  import { LinearHandlers } from "./linear-handlers.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/index.ts"],
4
4
  "sourcesContent": ["/**\n * MCP Handler Modules\n * Centralized exports for all MCP tool handlers\n */\n\nexport { ContextHandlers, type ContextHandlerDependencies } from './context-handlers.js';\nexport { TaskHandlers, type TaskHandlerDependencies } from './task-handlers.js';\nexport { LinearHandlers, type LinearHandlerDependencies } from './linear-handlers.js';\nexport { TraceHandlers, type TraceHandlerDependencies } from './trace-handlers.js';\n\nimport { ContextHandlers, ContextHandlerDependencies } from './context-handlers.js';\nimport { TaskHandlers, TaskHandlerDependencies } from './task-handlers.js';\nimport { LinearHandlers, LinearHandlerDependencies } from './linear-handlers.js';\nimport { TraceHandlers, TraceHandlerDependencies } from './trace-handlers.js';\n\n// Combined dependencies interface\nexport interface MCPHandlerDependencies extends \n ContextHandlerDependencies,\n TaskHandlerDependencies,\n LinearHandlerDependencies,\n TraceHandlerDependencies {\n}\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(this.contextHandlers);\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(this.contextHandlers);\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(this.taskHandlers);\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(this.linearHandlers);\n case 'linear_get_tasks':\n return this.linearHandlers.handleLinearGetTasks.bind(this.linearHandlers);\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(this.traceHandlers);\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(this.traceHandlers);\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}"],
5
- "mappings": "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",
5
+ "mappings": ";;;;AAKA,SAAS,uBAAwD;AACjE,SAAS,oBAAkD;AAC3D,SAAS,sBAAsD;AAC/D,SAAS,qBAAoD;AAE7D,SAAS,mBAAAA,wBAAmD;AAC5D,SAAS,gBAAAC,qBAA6C;AACtD,SAAS,kBAAAC,uBAAiD;AAC1D,SAAS,iBAAAC,sBAA+C;AAajD,MAAM,kBAAkB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,MAA8B;AACxC,SAAK,kBAAkB,IAAIH,iBAAgB;AAAA,MACzC,cAAc,KAAK;AAAA,MACnB,kBAAkB,KAAK;AAAA,IACzB,CAAC;AAED,SAAK,eAAe,IAAIC,cAAa;AAAA,MACnC,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,IAClB,CAAC;AAED,SAAK,iBAAiB,IAAIC,gBAAe;AAAA,MACvC,mBAAmB,KAAK;AAAA,MACxB,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,IAClB,CAAC;AAED,SAAK,gBAAgB,IAAIC,eAAc;AAAA,MACrC,eAAe,KAAK;AAAA,MACpB,YAAY,KAAK;AAAA,IACnB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,UAA+C;AACxD,YAAQ,UAAU;AAAA;AAAA,MAEhB,KAAK;AACH,eAAO,KAAK,gBAAgB,iBAAiB,KAAK,KAAK,eAAe;AAAA,MACxE,KAAK;AACH,eAAO,KAAK,gBAAgB,kBAAkB,KAAK,KAAK,eAAe;AAAA,MACzE,KAAK;AACH,eAAO,KAAK,gBAAgB,iBAAiB,KAAK,KAAK,eAAe;AAAA,MACxE,KAAK;AACH,eAAO,KAAK,gBAAgB,iBAAiB,KAAK,KAAK,eAAe;AAAA,MACxE,KAAK;AACH,eAAO,KAAK,gBAAgB,gBAAgB,KAAK,KAAK,eAAe;AAAA,MACvE,KAAK;AACH,eAAO,KAAK,gBAAgB,kBAAkB,KAAK,KAAK,eAAe;AAAA;AAAA,MAGzE,KAAK;AACH,eAAO,KAAK,aAAa,iBAAiB,KAAK,KAAK,YAAY;AAAA,MAClE,KAAK;AACH,eAAO,KAAK,aAAa,uBAAuB,KAAK,KAAK,YAAY;AAAA,MACxE,KAAK;AACH,eAAO,KAAK,aAAa,qBAAqB,KAAK,KAAK,YAAY;AAAA,MACtE,KAAK;AACH,eAAO,KAAK,aAAa,qBAAqB,KAAK,KAAK,YAAY;AAAA,MACtE,KAAK;AACH,eAAO,KAAK,aAAa,wBAAwB,KAAK,KAAK,YAAY;AAAA;AAAA,MAGzE,KAAK;AACH,eAAO,KAAK,eAAe,iBAAiB,KAAK,KAAK,cAAc;AAAA,MACtE,KAAK;AACH,eAAO,KAAK,eAAe,uBAAuB,KAAK,KAAK,cAAc;AAAA,MAC5E,KAAK;AACH,eAAO,KAAK,eAAe,qBAAqB,KAAK,KAAK,cAAc;AAAA,MAC1E,KAAK;AACH,eAAO,KAAK,eAAe,mBAAmB,KAAK,KAAK,cAAc;AAAA;AAAA,MAGxE,KAAK;AACH,eAAO,KAAK,cAAc,gBAAgB,KAAK,KAAK,aAAa;AAAA,MACnE,KAAK;AACH,eAAO,KAAK,cAAc,oBAAoB,KAAK,KAAK,aAAa;AAAA,MACvE,KAAK;AACH,eAAO,KAAK,cAAc,wBAAwB,KAAK,KAAK,aAAa;AAAA,MAC3E,KAAK;AACH,eAAO,KAAK,cAAc,qBAAqB,KAAK,KAAK,aAAa;AAAA,MACxE,KAAK;AACH,eAAO,KAAK,cAAc,oBAAoB,KAAK,KAAK,aAAa;AAAA,MACvE,KAAK;AACH,eAAO,KAAK,cAAc,uBAAuB,KAAK,KAAK,aAAa;AAAA,MAE1E;AACE,cAAM,IAAI,MAAM,iBAAiB,QAAQ,EAAE;AAAA,IAC/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,oBAA8B;AAC5B,WAAO;AAAA;AAAA,MAEL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,UAA2B;AACpC,WAAO,KAAK,kBAAkB,EAAE,SAAS,QAAQ;AAAA,EACnD;AACF;",
6
6
  "names": ["ContextHandlers", "TaskHandlers", "LinearHandlers", "TraceHandlers"]
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { logger } from "../../../core/monitoring/logger.js";
2
6
  class LinearHandlers {
3
7
  constructor(deps) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/linear-handlers.ts"],
4
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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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { logger } from "../../../core/monitoring/logger.js";
2
6
  function getEnv(key, defaultValue) {
3
7
  const value = process.env[key];
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/skill-handlers.ts"],
4
4
  "sourcesContent": ["/**\n * MCP Skill Handlers\n * Handlers for persistent agent learning and skill operations\n */\n\nimport { logger } from '../../../core/monitoring/logger.js';\n\n// Type-safe environment variable access\nfunction getEnv(key: string, defaultValue?: string): string {\n const value = process.env[key];\n if (value === undefined) {\n if (defaultValue !== undefined) return defaultValue;\n throw new Error(`Environment variable ${key} is required`);\n }\n return value;\n}\n\nfunction getOptionalEnv(key: string): string | undefined {\n return process.env[key];\n}\n\nimport {\n SkillStorageService,\n getSkillStorage,\n getDefaultUserId,\n Skill,\n SkillCategory,\n SkillPriority,\n JournalEntryType,\n SkillQuery,\n} from '../../../core/skills/index.js';\n\nexport interface SkillHandlerContext {\n sessionId?: string;\n projectId?: string;\n userId?: string;\n}\n\nexport class SkillHandlers {\n private skillStorage: SkillStorageService | null = null;\n private userId: string;\n\n constructor(\n private redisUrl?: string,\n userId?: string\n ) {\n this.userId = userId || getDefaultUserId();\n }\n\n /**\n * Lazy initialization of skill storage\n */\n private getStorage(): SkillStorageService {\n if (!this.skillStorage) {\n const url = this.redisUrl || process.env['REDIS_URL'];\n if (!url) {\n throw new Error('REDIS_URL not configured for skill storage');\n }\n this.skillStorage = getSkillStorage({\n redisUrl: url,\n userId: this.userId,\n });\n }\n return this.skillStorage;\n }\n\n /**\n * Get current user ID\n */\n getUserId(): string {\n return this.userId;\n }\n\n /**\n * Check if skill storage is available\n */\n isAvailable(): boolean {\n return !!(this.redisUrl || process.env['REDIS_URL']);\n }\n\n // ============================================================\n // SKILL OPERATIONS\n // ============================================================\n\n /**\n * Record a new skill/learning\n */\n async recordSkill(\n args: {\n content: string;\n category: string;\n priority?: string;\n tool?: string;\n tags?: string[];\n source?: string;\n },\n context: SkillHandlerContext\n ): Promise<{ success: boolean; skill?: Skill; error?: string }> {\n try {\n const storage = this.getStorage();\n\n const skill = await storage.createSkill({\n content: args.content,\n category: args.category as SkillCategory,\n priority: (args.priority || 'medium') as SkillPriority,\n tool: args.tool,\n tags: args.tags || [],\n source: (args.source || 'observation') as Skill['source'],\n sessionId: context.sessionId,\n });\n\n logger.info('Recorded skill via MCP', {\n skillId: skill.id,\n category: skill.category,\n });\n\n return { success: true, skill };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to record skill', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Get relevant skills for current context\n */\n async getRelevantSkills(args: {\n tool?: string;\n language?: string;\n framework?: string;\n tags?: string[];\n limit?: number;\n }): Promise<{ success: boolean; skills?: Skill[]; error?: string }> {\n try {\n const storage = this.getStorage();\n\n const skills = await storage.getRelevantSkills({\n tool: args.tool,\n language: args.language,\n framework: args.framework,\n tags: args.tags,\n });\n\n const limited = args.limit ? skills.slice(0, args.limit) : skills;\n\n return { success: true, skills: limited };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to get relevant skills', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Query skills with filters\n */\n async querySkills(args: {\n categories?: string[];\n priorities?: string[];\n tool?: string;\n tags?: string[];\n minValidatedCount?: number;\n limit?: number;\n sortBy?: string;\n }): Promise<{\n success: boolean;\n skills?: Skill[];\n total?: number;\n error?: string;\n }> {\n try {\n const storage = this.getStorage();\n\n const query: SkillQuery = {\n categories: args.categories as SkillCategory[],\n priorities: args.priorities as SkillPriority[],\n tool: args.tool,\n tags: args.tags,\n minValidatedCount: args.minValidatedCount,\n limit: args.limit || 50,\n offset: 0,\n sortBy: (args.sortBy || 'priority') as SkillQuery['sortBy'],\n sortOrder: 'desc',\n };\n\n const skills = await storage.querySkills(query);\n\n return { success: true, skills, total: skills.length };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to query skills', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Validate/reinforce a skill\n */\n async validateSkill(args: {\n skill_id: string;\n }): Promise<{ success: boolean; skill?: Skill; error?: string }> {\n try {\n const storage = this.getStorage();\n\n const skill = await storage.validateSkill(args.skill_id);\n if (!skill) {\n return { success: false, error: 'Skill not found' };\n }\n\n return { success: true, skill };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to validate skill', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Update a skill\n */\n async updateSkill(args: {\n skill_id: string;\n content?: string;\n priority?: string;\n tags?: string[];\n }): Promise<{ success: boolean; skill?: Skill; error?: string }> {\n try {\n const storage = this.getStorage();\n\n const skill = await storage.updateSkill({\n id: args.skill_id,\n content: args.content,\n priority: args.priority as SkillPriority,\n tags: args.tags,\n });\n\n if (!skill) {\n return { success: false, error: 'Skill not found' };\n }\n\n return { success: true, skill };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to update skill', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Delete a skill\n */\n async deleteSkill(args: {\n skill_id: string;\n }): Promise<{ success: boolean; error?: string }> {\n try {\n const storage = this.getStorage();\n\n const deleted = await storage.deleteSkill(args.skill_id);\n if (!deleted) {\n return { success: false, error: 'Skill not found' };\n }\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to delete skill', { error: message });\n return { success: false, error: message };\n }\n }\n\n // ============================================================\n // SESSION JOURNAL OPERATIONS\n // ============================================================\n\n /**\n * Record a journal entry\n */\n async recordJournalEntry(\n args: {\n type: string;\n title: string;\n content: string;\n tool?: string;\n file?: string;\n },\n context: SkillHandlerContext\n ): Promise<{ success: boolean; entryId?: string; error?: string }> {\n try {\n const storage = this.getStorage();\n const sessionId = context.sessionId || 'default';\n\n const entry = await storage.createJournalEntry(\n sessionId,\n args.type as JournalEntryType,\n args.title,\n args.content,\n { tool: args.tool, file: args.file }\n );\n\n return { success: true, entryId: entry.id };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to record journal entry', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Get session journal\n */\n async getSessionJournal(\n args: {\n session_id?: string;\n },\n context: SkillHandlerContext\n ): Promise<{ success: boolean; entries?: any[]; error?: string }> {\n try {\n const storage = this.getStorage();\n const sessionId = args.session_id || context.sessionId || 'default';\n\n const entries = await storage.getSessionJournal(sessionId);\n\n return { success: true, entries };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to get session journal', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Promote a journal entry to a skill\n */\n async promoteToSkill(args: {\n entry_id: string;\n category: string;\n priority?: string;\n }): Promise<{ success: boolean; skill?: Skill; error?: string }> {\n try {\n const storage = this.getStorage();\n\n const skill = await storage.promoteToSkill(\n args.entry_id,\n args.category as SkillCategory,\n (args.priority || 'medium') as SkillPriority\n );\n\n if (!skill) {\n return { success: false, error: 'Journal entry not found' };\n }\n\n return { success: true, skill };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to promote journal entry', { error: message });\n return { success: false, error: message };\n }\n }\n\n // ============================================================\n // SESSION MANAGEMENT\n // ============================================================\n\n /**\n * Start session tracking\n */\n async startSession(args: {\n session_id: string;\n }): Promise<{ success: boolean; error?: string }> {\n try {\n const storage = this.getStorage();\n await storage.startSession(args.session_id);\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to start session', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * End session and get summary\n */\n async endSession(args: {\n session_id: string;\n }): Promise<{ success: boolean; summary?: any; error?: string }> {\n try {\n const storage = this.getStorage();\n const summary = await storage.endSession(args.session_id);\n\n if (!summary) {\n return { success: false, error: 'Session not found' };\n }\n\n return { success: true, summary };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to end session', { error: message });\n return { success: false, error: message };\n }\n }\n\n // ============================================================\n // KNOWLEDGE MANAGEMENT\n // ============================================================\n\n /**\n * Get promotion candidates\n */\n async getPromotionCandidates(): Promise<{\n success: boolean;\n skills?: Skill[];\n error?: string;\n }> {\n try {\n const storage = this.getStorage();\n const skills = await storage.getPromotionCandidates();\n return { success: true, skills };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to get promotion candidates', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Promote skill priority\n */\n async promoteSkillPriority(args: {\n skill_id: string;\n }): Promise<{ success: boolean; skill?: Skill; error?: string }> {\n try {\n const storage = this.getStorage();\n const skill = await storage.promoteSkill(args.skill_id);\n\n if (!skill) {\n return { success: false, error: 'Skill not found' };\n }\n\n return { success: true, skill };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to promote skill priority', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Archive stale skills\n */\n async archiveStaleSkills(args: {\n days_threshold?: number;\n }): Promise<{ success: boolean; archivedCount?: number; error?: string }> {\n try {\n const storage = this.getStorage();\n const count = await storage.archiveStaleSkills(args.days_threshold || 90);\n return { success: true, archivedCount: count };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to archive stale skills', { error: message });\n return { success: false, error: message };\n }\n }\n\n /**\n * Get skill storage metrics\n */\n async getSkillMetrics(): Promise<{\n success: boolean;\n metrics?: any;\n error?: string;\n }> {\n try {\n const storage = this.getStorage();\n const metrics = await storage.getMetrics();\n return { success: true, metrics };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logger.error('Failed to get skill metrics', { error: message });\n return { success: false, error: message };\n }\n }\n}\n\n// ============================================================\n// TOOL DEFINITIONS FOR SKILLS\n// ============================================================\n\nexport const SKILL_TOOL_DEFINITIONS = [\n {\n name: 'record_skill',\n description:\n 'Record a new learning, pattern, or skill to remember across sessions',\n inputSchema: {\n type: 'object' as const,\n properties: {\n content: {\n type: 'string',\n description: 'The skill/learning content to remember',\n },\n category: {\n type: 'string',\n enum: [\n 'tool',\n 'workflow',\n 'correction',\n 'pattern',\n 'preference',\n 'pitfall',\n 'optimization',\n ],\n description: 'Category of the skill',\n },\n priority: {\n type: 'string',\n enum: ['critical', 'high', 'medium', 'low'],\n default: 'medium',\n description: 'How important this skill is',\n },\n tool: {\n type: 'string',\n description: 'Related tool name (if applicable)',\n },\n tags: {\n type: 'array',\n items: { type: 'string' },\n description: 'Tags for categorization',\n },\n },\n required: ['content', 'category'],\n },\n },\n {\n name: 'get_relevant_skills',\n description:\n 'Get skills relevant to current context (tool, language, etc.)',\n inputSchema: {\n type: 'object' as const,\n properties: {\n tool: {\n type: 'string',\n description: 'Filter by tool name',\n },\n language: {\n type: 'string',\n description: 'Filter by programming language',\n },\n framework: {\n type: 'string',\n description: 'Filter by framework',\n },\n limit: {\n type: 'number',\n default: 20,\n description: 'Maximum skills to return',\n },\n },\n },\n },\n {\n name: 'validate_skill',\n description:\n 'Mark a skill as validated/reinforced (increases its importance)',\n inputSchema: {\n type: 'object' as const,\n properties: {\n skill_id: {\n type: 'string',\n description: 'ID of the skill to validate',\n },\n },\n required: ['skill_id'],\n },\n },\n {\n name: 'record_correction',\n description:\n 'Record a user correction to remember and apply in future sessions',\n inputSchema: {\n type: 'object' as const,\n properties: {\n title: {\n type: 'string',\n description: 'Brief title of the correction',\n },\n content: {\n type: 'string',\n description: 'What was corrected and how to do it correctly',\n },\n tool: {\n type: 'string',\n description: 'Related tool (if applicable)',\n },\n },\n required: ['title', 'content'],\n },\n },\n {\n name: 'record_decision',\n description: 'Record an important decision made during this session',\n inputSchema: {\n type: 'object' as const,\n properties: {\n title: {\n type: 'string',\n description: 'Brief title of the decision',\n },\n content: {\n type: 'string',\n description: 'The decision and its reasoning',\n },\n file: {\n type: 'string',\n description: 'Related file path (if applicable)',\n },\n },\n required: ['title', 'content'],\n },\n },\n {\n name: 'get_session_learnings',\n description:\n 'Get all learnings and corrections from current or specified session',\n inputSchema: {\n type: 'object' as const,\n properties: {\n session_id: {\n type: 'string',\n description: 'Session ID (defaults to current)',\n },\n },\n },\n },\n {\n name: 'promote_learning',\n description: 'Promote a session learning to a permanent skill',\n inputSchema: {\n type: 'object' as const,\n properties: {\n entry_id: {\n type: 'string',\n description: 'Journal entry ID to promote',\n },\n category: {\n type: 'string',\n enum: [\n 'tool',\n 'workflow',\n 'correction',\n 'pattern',\n 'preference',\n 'pitfall',\n 'optimization',\n ],\n description: 'Skill category',\n },\n priority: {\n type: 'string',\n enum: ['critical', 'high', 'medium', 'low'],\n default: 'medium',\n description: 'Skill priority',\n },\n },\n required: ['entry_id', 'category'],\n },\n },\n {\n name: 'get_skill_metrics',\n description: 'Get metrics about stored skills and learnings',\n inputSchema: {\n type: 'object' as const,\n properties: {},\n },\n },\n];\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { logger } from "../../../core/monitoring/logger.js";
2
6
  class TaskHandlers {
3
7
  constructor(deps) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/task-handlers.ts"],
4
4
  "sourcesContent": ["/**\n * Task-related MCP tool handlers\n * Handles task creation, updates, and queries\n */\n\nimport { LinearTaskManager, TaskPriority, TaskStatus } from '../../../features/tasks/linear-task-manager.js';\nimport { logger } from '../../../core/monitoring/logger.js';\n\nexport interface TaskHandlerDependencies {\n taskStore: LinearTaskManager;\n projectId: string;\n}\n\nexport class TaskHandlers {\n constructor(private deps: TaskHandlerDependencies) {}\n\n /**\n * Create a new task\n */\n async handleCreateTask(args: any): Promise<any> {\n try {\n const { title, description, priority = 'medium', tags = [], parent_id } = args;\n \n if (!title) {\n throw new Error('Task title is required');\n }\n\n const taskPriority = this.validatePriority(priority);\n const taskId = await this.deps.taskStore.createTask({\n title,\n description: description || '',\n priority: taskPriority,\n tags: Array.isArray(tags) ? tags : [tags].filter(Boolean),\n parentId: parent_id,\n frameId: 'default-frame',\n });\n\n logger.info('Created task', { taskId, title, priority });\n\n return {\n content: [\n {\n type: 'text',\n text: `Created task: ${title} (${taskId})`,\n },\n ],\n metadata: {\n taskId,\n title,\n priority: taskPriority,\n },\n };\n } catch (error: unknown) {\n logger.error('Error creating task', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Update task status\n */\n async handleUpdateTaskStatus(args: any): Promise<any> {\n try {\n const { task_id, status, progress } = args;\n \n if (!task_id) {\n throw new Error('Task ID is required');\n }\n\n if (!status) {\n throw new Error('Status is required');\n }\n\n const validStatus = this.validateStatus(status);\n \n await this.deps.taskStore.updateTaskStatus(task_id, validStatus, progress);\n const task = await this.deps.taskStore.getTask(task_id);\n\n if (!task) {\n throw new Error(`Task not found: ${task_id}`);\n }\n\n logger.info('Updated task status', { taskId: task_id, status: validStatus, progress });\n\n return {\n content: [\n {\n type: 'text',\n text: `Updated task ${task.title} to ${validStatus}${progress ? ` (${progress}% complete)` : ''}`,\n },\n ],\n metadata: {\n taskId: task_id,\n status: validStatus,\n progress,\n },\n };\n } catch (error: unknown) {\n logger.error('Error updating task status', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Get active tasks with filtering\n */\n async handleGetActiveTasks(args: any): Promise<any> {\n try {\n const { \n status, \n priority, \n limit = 20, \n include_completed = false,\n tags = [],\n search \n } = args;\n\n const filters: any = {};\n \n if (status) {\n filters.status = this.validateStatus(status);\n }\n \n if (priority) {\n filters.priority = this.validatePriority(priority);\n }\n \n if (!include_completed) {\n filters.excludeCompleted = true;\n }\n\n if (Array.isArray(tags) && tags.length > 0) {\n filters.tags = tags;\n }\n\n if (search) {\n filters.search = search;\n }\n\n const tasks = await this.deps.taskStore.getActiveTasks();\n\n const taskSummary = tasks.map((task: any) => ({\n id: task.id,\n title: task.title,\n status: task.status,\n priority: task.priority,\n tags: task.tags || [],\n created: new Date(task.created_at * 1000).toLocaleDateString(),\n progress: 0,\n }));\n\n const summaryText = taskSummary.length > 0\n ? taskSummary.map((t: any) => \n `${t.id}: ${t.title} [${t.status}] (${t.priority})`\n ).join('\\n')\n : 'No tasks found matching criteria';\n\n return {\n content: [\n {\n type: 'text',\n text: `Active Tasks (${tasks.length}):\\n${summaryText}`,\n },\n ],\n metadata: {\n tasks: taskSummary,\n totalCount: tasks.length,\n filters,\n },\n };\n } catch (error: unknown) {\n logger.error('Error getting active tasks', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Get task metrics and analytics\n */\n async handleGetTaskMetrics(args: any): Promise<any> {\n try {\n const metrics = await this.deps.taskStore.getMetrics();\n\n const metricsText = `\nTask Metrics:\n- Total: ${metrics.total_tasks}\n- Blocked: ${metrics.blocked_tasks} \n- Overdue: ${metrics.overdue_tasks}\n- Completion Rate: ${(metrics.completion_rate * 100).toFixed(1)}%\n- Effort Accuracy: ${(metrics.avg_effort_accuracy * 100).toFixed(1)}%\n\nBy Priority:\n${Object.entries(metrics.by_priority || {})\n .map(([priority, count]) => `- ${priority}: ${count}`)\n .join('\\n')}\n\nBy Status:\n${Object.entries(metrics.by_status || {})\n .map(([status, count]) => `- ${status}: ${count}`)\n .join('\\n')}\n `.trim();\n\n return {\n content: [\n {\n type: 'text',\n text: metricsText,\n },\n ],\n metadata: metrics,\n };\n } catch (error: unknown) {\n logger.error('Error getting task metrics', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Add task dependency\n */\n async handleAddTaskDependency(args: any): Promise<any> {\n try {\n const { task_id, depends_on, dependency_type = 'blocks' } = args;\n \n if (!task_id || !depends_on) {\n throw new Error('Both task_id and depends_on are required');\n }\n\n await this.deps.taskStore.addDependency(task_id, depends_on);\n\n const task = await this.deps.taskStore.getTask(task_id);\n const dependencyTask = await this.deps.taskStore.getTask(depends_on);\n\n if (!task || !dependencyTask) {\n throw new Error('One or both tasks not found');\n }\n\n logger.info('Added task dependency', { taskId: task_id, dependsOn: depends_on, type: dependency_type });\n\n return {\n content: [\n {\n type: 'text',\n text: `Added dependency: ${task.title} depends on ${dependencyTask.title} (${dependency_type})`,\n },\n ],\n metadata: {\n taskId: task_id,\n dependsOn: depends_on,\n dependencyType: dependency_type,\n },\n };\n } catch (error: unknown) {\n logger.error('Error adding task dependency', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Validate task priority\n */\n private validatePriority(priority: string): TaskPriority {\n const validPriorities: TaskPriority[] = ['low', 'medium', 'high', 'urgent'];\n const normalizedPriority = priority.toLowerCase() as TaskPriority;\n \n if (!validPriorities.includes(normalizedPriority)) {\n throw new Error(`Invalid priority: ${priority}. Must be one of: ${validPriorities.join(', ')}`);\n }\n \n return normalizedPriority;\n }\n\n /**\n * Validate task status\n */\n private validateStatus(status: string): TaskStatus {\n const validStatuses: TaskStatus[] = ['pending', 'in_progress', 'blocked', 'completed', 'cancelled'];\n const normalizedStatus = status.toLowerCase().replace('_', '-') as TaskStatus;\n \n if (!validStatuses.includes(normalizedStatus)) {\n throw new Error(`Invalid status: ${status}. Must be one of: ${validStatuses.join(', ')}`);\n }\n \n return normalizedStatus;\n }\n}"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { logger } from "../../../core/monitoring/logger.js";
2
6
  class TraceHandlers {
3
7
  constructor(deps) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/handlers/trace-handlers.ts"],
4
4
  "sourcesContent": ["/**\n * Trace and debugging MCP tool handlers\n * Handles trace detection, analysis, and debugging tools\n */\n\nimport { TraceDetector } from '../../../core/trace/trace-detector.js';\nimport { ToolCall } from '../../../core/trace/types.js';\nimport { BrowserMCPIntegration } from '../../../features/browser/browser-mcp.js';\nimport { logger } from '../../../core/monitoring/logger.js';\n\nexport interface TraceHandlerDependencies {\n traceDetector: TraceDetector;\n browserMCP: BrowserMCPIntegration;\n}\n\nexport class TraceHandlers {\n constructor(private deps: TraceHandlerDependencies) {}\n\n /**\n * Get traces with optional filtering\n */\n async handleGetTraces(args: any): Promise<any> {\n try {\n const { \n limit = 20, \n pattern, \n start_time,\n end_time,\n include_context = false \n } = args;\n\n const filters: any = { limit };\n \n if (pattern) {\n filters.pattern = pattern;\n }\n \n if (start_time) {\n filters.startTime = new Date(start_time);\n }\n \n if (end_time) {\n filters.endTime = new Date(end_time);\n }\n\n const traces = await this.deps.traceDetector.getTraces();\n\n if (traces.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: 'No traces found matching criteria',\n },\n ],\n };\n }\n\n const tracesSummary = traces.map((trace: any) => {\n const duration = trace.metadata.endTime && trace.metadata.startTime ? trace.metadata.endTime - trace.metadata.startTime : 'ongoing';\n return {\n id: trace.id,\n pattern: trace.compressed?.pattern || 'Unknown',\n toolCount: trace.tools.length,\n duration: typeof duration === 'number' ? `${duration}ms` : duration,\n status: 'completed',\n startTime: new Date(trace.metadata.startTime).toISOString(),\n };\n });\n\n const summaryText = tracesSummary.map((t: any) => \n `${t.id}: ${t.pattern} (${t.toolCount} tools, ${t.duration}) [${t.status}]`\n ).join('\\n');\n\n const result: any = {\n content: [\n {\n type: 'text',\n text: `Traces (${traces.length}):\\n${summaryText}`,\n },\n ],\n metadata: {\n traces: tracesSummary,\n totalCount: traces.length,\n filters,\n },\n };\n\n // Include full context if requested\n if (include_context) {\n result.metadata.fullTraces = traces;\n }\n\n return result;\n } catch (error: unknown) {\n logger.error('Error getting traces', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Analyze trace patterns\n */\n async handleAnalyzeTraces(args: any): Promise<any> {\n try {\n const { \n trace_id, \n analysis_type = 'performance',\n include_recommendations = true \n } = args;\n\n let analysis;\n\n if (trace_id) {\n // Analyze specific trace\n const traces = this.deps.traceDetector.getTraces();\n const trace = traces.find((t: any) => t.id === trace_id);\n if (!trace) {\n throw new Error(`Trace not found: ${trace_id}`);\n }\n // Basic trace analysis based on type\n analysis = this.analyzeTrace(trace, analysis_type);\n } else {\n // Analyze all recent traces\n // Analyze recent traces\n const traces = this.deps.traceDetector.getTraces();\n analysis = this.analyzeRecentTraces(traces, analysis_type);\n }\n\n let analysisText = `Trace Analysis (${analysis_type}):\\n\\n`;\n\n switch (analysis_type) {\n case 'performance':\n analysisText += `Performance Metrics:\n- Avg duration: ${analysis.avgDuration}ms\n- Slowest operation: ${analysis.slowestOperation?.name} (${analysis.slowestOperation?.duration}ms)\n- Tool usage: ${analysis.toolUsageStats}\n- Bottlenecks: ${analysis.bottlenecks?.join(', ') || 'None detected'}`;\n break;\n\n case 'patterns':\n analysisText += `Pattern Analysis:\n- Common sequences: ${analysis.commonSequences?.join(', ') || 'None'}\n- Repetitive operations: ${analysis.repetitiveOps?.join(', ') || 'None'}\n- Success rate: ${analysis.successRate}%\n- Failure patterns: ${analysis.failurePatterns?.join(', ') || 'None'}`;\n break;\n\n case 'errors':\n analysisText += `Error Analysis:\n- Error rate: ${analysis.errorRate}%\n- Common errors: ${analysis.commonErrors?.join(', ') || 'None'}\n- Error sources: ${analysis.errorSources?.join(', ') || 'None'}\n- Recovery patterns: ${analysis.recoveryPatterns?.join(', ') || 'None'}`;\n break;\n\n default:\n analysisText += JSON.stringify(analysis, null, 2);\n }\n\n if (include_recommendations && analysis.recommendations) {\n analysisText += '\\n\\nRecommendations:\\n';\n analysisText += analysis.recommendations.map((rec: string, i: number) => \n `${i + 1}. ${rec}`\n ).join('\\n');\n }\n\n return {\n content: [\n {\n type: 'text',\n text: analysisText,\n },\n ],\n metadata: {\n analysis,\n analysisType: analysis_type,\n traceId: trace_id,\n },\n };\n } catch (error: unknown) {\n logger.error('Error analyzing traces', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Start browser debugging session\n */\n async handleStartBrowserDebug(args: any): Promise<any> {\n try {\n const { \n url, \n headless = false,\n width = 1280,\n height = 720,\n capture_screenshots = true \n } = args;\n\n if (!url) {\n throw new Error('URL is required for browser debugging');\n }\n\n // Mock browser session start since startSession method doesn't exist\n const sessionId = `session_${Date.now()}`;\n\n // Mock navigate since method is private\n logger.info(`Would navigate session ${sessionId} to ${url}`);\n\n logger.info('Started browser debug session', { sessionId, url });\n\n return {\n content: [\n {\n type: 'text',\n text: `Started browser debug session: ${sessionId}\\nNavigated to: ${url}`,\n },\n ],\n metadata: {\n sessionId,\n url,\n options: { headless, width, height, capture_screenshots },\n },\n };\n } catch (error: unknown) {\n logger.error('Error starting browser debug session', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Take screenshot for debugging\n */\n async handleTakeScreenshot(args: any): Promise<any> {\n try {\n const { session_id, selector, full_page = false } = args;\n\n if (!session_id) {\n throw new Error('Session ID is required');\n }\n\n // Mock screenshot since method is private \n const screenshot = { data: 'mock-screenshot-data', format: 'png' };\n\n return {\n content: [\n {\n type: 'text',\n text: 'Screenshot captured successfully',\n },\n {\n type: 'image',\n data: screenshot.data,\n mimeType: 'image/png',\n },\n ],\n metadata: {\n sessionId: session_id,\n selector,\n fullPage: full_page,\n timestamp: Date.now(),\n },\n };\n } catch (error: unknown) {\n logger.error('Error taking screenshot', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Execute JavaScript in browser for debugging\n */\n async handleExecuteScript(args: any): Promise<any> {\n try {\n const { session_id, script, args: scriptArgs = [] } = args;\n\n if (!session_id) {\n throw new Error('Session ID is required');\n }\n\n if (!script) {\n throw new Error('Script is required');\n }\n\n // Mock script execution since executeScript doesn't exist\n const result = { output: 'Mock script execution result' };\n\n return {\n content: [\n {\n type: 'text',\n text: `Script executed successfully:\\nResult: ${JSON.stringify(result, null, 2)}`,\n },\n ],\n metadata: {\n sessionId: session_id,\n script,\n result,\n timestamp: Date.now(),\n },\n };\n } catch (error: unknown) {\n logger.error('Error executing script', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n /**\n * Stop browser debugging session\n */\n async handleStopBrowserDebug(args: any): Promise<any> {\n try {\n const { session_id } = args;\n\n if (!session_id) {\n throw new Error('Session ID is required');\n }\n\n // Mock session close since method is private\n logger.info(`Would close session ${session_id}`);\n\n logger.info('Stopped browser debug session', { sessionId: session_id });\n\n return {\n content: [\n {\n type: 'text',\n text: `Stopped browser debug session: ${session_id}`,\n },\n ],\n metadata: {\n sessionId: session_id,\n timestamp: Date.now(),\n },\n };\n } catch (error: unknown) {\n logger.error('Error stopping browser debug session', error instanceof Error ? error : new Error(String(error)));\n throw error;\n }\n }\n\n private analyzeTrace(trace: any, analysisType: string): any {\n return {\n type: analysisType,\n summary: `Analysis of trace ${trace.id}`,\n toolCount: trace.tools.length,\n score: trace.score,\n patterns: trace.compressed?.pattern || 'Unknown'\n };\n }\n\n private analyzeRecentTraces(traces: any[], analysisType: string): any {\n return {\n type: analysisType,\n summary: `Analysis of ${traces.length} recent traces`,\n totalTraces: traces.length,\n avgScore: traces.length > 0 ? traces.reduce((sum, t) => sum + t.score, 0) / traces.length : 0,\n commonPatterns: traces.map((t: any) => t.compressed?.pattern).filter(Boolean)\n };\n }\n}"],
5
- "mappings": "AAQA,SAAS,cAAc;AAOhB,MAAM,cAAc;AAAA,EACzB,YAAoB,MAAgC;AAAhC;AAAA,EAAiC;AAAA;AAAA;AAAA;AAAA,EAKrD,MAAM,gBAAgB,MAAyB;AAC7C,QAAI;AACF,YAAM;AAAA,QACJ,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,MACpB,IAAI;AAEJ,YAAM,UAAe,EAAE,MAAM;AAE7B,UAAI,SAAS;AACX,gBAAQ,UAAU;AAAA,MACpB;AAEA,UAAI,YAAY;AACd,gBAAQ,YAAY,IAAI,KAAK,UAAU;AAAA,MACzC;AAEA,UAAI,UAAU;AACZ,gBAAQ,UAAU,IAAI,KAAK,QAAQ;AAAA,MACrC;AAEA,YAAM,SAAS,MAAM,KAAK,KAAK,cAAc,UAAU;AAEvD,UAAI,OAAO,WAAW,GAAG;AACvB,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,YAAM,gBAAgB,OAAO,IAAI,CAAC,UAAe;AAC/C,cAAM,WAAW,MAAM,SAAS,WAAW,MAAM,SAAS,YAAY,MAAM,SAAS,UAAU,MAAM,SAAS,YAAY;AAC1H,eAAO;AAAA,UACL,IAAI,MAAM;AAAA,UACV,SAAS,MAAM,YAAY,WAAW;AAAA,UACtC,WAAW,MAAM,MAAM;AAAA,UACvB,UAAU,OAAO,aAAa,WAAW,GAAG,QAAQ,OAAO;AAAA,UAC3D,QAAQ;AAAA,UACR,WAAW,IAAI,KAAK,MAAM,SAAS,SAAS,EAAE,YAAY;AAAA,QAC5D;AAAA,MACF,CAAC;AAED,YAAM,cAAc,cAAc;AAAA,QAAI,CAAC,MACrC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,KAAK,EAAE,SAAS,WAAW,EAAE,QAAQ,MAAM,EAAE,MAAM;AAAA,MAC1E,EAAE,KAAK,IAAI;AAEX,YAAM,SAAc;AAAA,QAClB,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,WAAW,OAAO,MAAM;AAAA,EAAO,WAAW;AAAA,UAClD;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,QAAQ;AAAA,UACR,YAAY,OAAO;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAGA,UAAI,iBAAiB;AACnB,eAAO,SAAS,aAAa;AAAA,MAC/B;AAEA,aAAO;AAAA,IACT,SAAS,OAAgB;AACvB,aAAO,MAAM,wBAAwB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC9F,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAoB,MAAyB;AACjD,QAAI;AACF,YAAM;AAAA,QACJ;AAAA,QACA,gBAAgB;AAAA,QAChB,0BAA0B;AAAA,MAC5B,IAAI;AAEJ,UAAI;AAEJ,UAAI,UAAU;AAEZ,cAAM,SAAS,KAAK,KAAK,cAAc,UAAU;AACjD,cAAM,QAAQ,OAAO,KAAK,CAAC,MAAW,EAAE,OAAO,QAAQ;AACvD,YAAI,CAAC,OAAO;AACV,gBAAM,IAAI,MAAM,oBAAoB,QAAQ,EAAE;AAAA,QAChD;AAEA,mBAAW,KAAK,aAAa,OAAO,aAAa;AAAA,MACnD,OAAO;AAGL,cAAM,SAAS,KAAK,KAAK,cAAc,UAAU;AACjD,mBAAW,KAAK,oBAAoB,QAAQ,aAAa;AAAA,MAC3D;AAEA,UAAI,eAAe,mBAAmB,aAAa;AAAA;AAAA;AAEnD,cAAQ,eAAe;AAAA,QACrB,KAAK;AACH,0BAAgB;AAAA,kBACR,SAAS,WAAW;AAAA,uBACf,SAAS,kBAAkB,IAAI,KAAK,SAAS,kBAAkB,QAAQ;AAAA,gBAC9E,SAAS,cAAc;AAAA,iBACtB,SAAS,aAAa,KAAK,IAAI,KAAK,eAAe;AAC1D;AAAA,QAEF,KAAK;AACH,0BAAgB;AAAA,sBACJ,SAAS,iBAAiB,KAAK,IAAI,KAAK,MAAM;AAAA,2BACzC,SAAS,eAAe,KAAK,IAAI,KAAK,MAAM;AAAA,kBACrD,SAAS,WAAW;AAAA,sBAChB,SAAS,iBAAiB,KAAK,IAAI,KAAK,MAAM;AAC1D;AAAA,QAEF,KAAK;AACH,0BAAgB;AAAA,gBACV,SAAS,SAAS;AAAA,mBACf,SAAS,cAAc,KAAK,IAAI,KAAK,MAAM;AAAA,mBAC3C,SAAS,cAAc,KAAK,IAAI,KAAK,MAAM;AAAA,uBACvC,SAAS,kBAAkB,KAAK,IAAI,KAAK,MAAM;AAC5D;AAAA,QAEF;AACE,0BAAgB,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA,MACpD;AAEA,UAAI,2BAA2B,SAAS,iBAAiB;AACvD,wBAAgB;AAChB,wBAAgB,SAAS,gBAAgB;AAAA,UAAI,CAAC,KAAa,MACzD,GAAG,IAAI,CAAC,KAAK,GAAG;AAAA,QAClB,EAAE,KAAK,IAAI;AAAA,MACb;AAEA,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UACd,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,0BAA0B,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAChG,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,wBAAwB,MAAyB;AACrD,QAAI;AACF,YAAM;AAAA,QACJ;AAAA,QACA,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,sBAAsB;AAAA,MACxB,IAAI;AAEJ,UAAI,CAAC,KAAK;AACR,cAAM,IAAI,MAAM,uCAAuC;AAAA,MACzD;AAGA,YAAM,YAAY,WAAW,KAAK,IAAI,CAAC;AAGvC,aAAO,KAAK,0BAA0B,SAAS,OAAO,GAAG,EAAE;AAE3D,aAAO,KAAK,iCAAiC,EAAE,WAAW,IAAI,CAAC;AAE/D,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,kCAAkC,SAAS;AAAA,gBAAmB,GAAG;AAAA,UACzE;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA,SAAS,EAAE,UAAU,OAAO,QAAQ,oBAAoB;AAAA,QAC1D;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,wCAAwC,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC9G,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,qBAAqB,MAAyB;AAClD,QAAI;AACF,YAAM,EAAE,YAAY,UAAU,YAAY,MAAM,IAAI;AAEpD,UAAI,CAAC,YAAY;AACf,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAGA,YAAM,aAAa,EAAE,MAAM,wBAAwB,QAAQ,MAAM;AAEjE,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM,WAAW;AAAA,YACjB,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,WAAW;AAAA,UACX;AAAA,UACA,UAAU;AAAA,UACV,WAAW,KAAK,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,2BAA2B,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AACjG,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAoB,MAAyB;AACjD,QAAI;AACF,YAAM,EAAE,YAAY,QAAQ,MAAM,aAAa,CAAC,EAAE,IAAI;AAEtD,UAAI,CAAC,YAAY;AACf,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAEA,UAAI,CAAC,QAAQ;AACX,cAAM,IAAI,MAAM,oBAAoB;AAAA,MACtC;AAGA,YAAM,SAAS,EAAE,QAAQ,+BAA+B;AAExD,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,UAA0C,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,UACjF;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,WAAW;AAAA,UACX;AAAA,UACA;AAAA,UACA,WAAW,KAAK,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,0BAA0B,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAChG,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,uBAAuB,MAAyB;AACpD,QAAI;AACF,YAAM,EAAE,WAAW,IAAI;AAEvB,UAAI,CAAC,YAAY;AACf,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAGA,aAAO,KAAK,uBAAuB,UAAU,EAAE;AAE/C,aAAO,KAAK,iCAAiC,EAAE,WAAW,WAAW,CAAC;AAEtE,aAAO;AAAA,QACL,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,MAAM,kCAAkC,UAAU;AAAA,UACpD;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR,WAAW;AAAA,UACX,WAAW,KAAK,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,IACF,SAAS,OAAgB;AACvB,aAAO,MAAM,wCAAwC,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC9G,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEQ,aAAa,OAAY,cAA2B;AAC1D,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,qBAAqB,MAAM,EAAE;AAAA,MACtC,WAAW,MAAM,MAAM;AAAA,MACvB,OAAO,MAAM;AAAA,MACb,UAAU,MAAM,YAAY,WAAW;AAAA,IACzC;AAAA,EACF;AAAA,EAEQ,oBAAoB,QAAe,cAA2B;AACpE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,eAAe,OAAO,MAAM;AAAA,MACrC,aAAa,OAAO;AAAA,MACpB,UAAU,OAAO,SAAS,IAAI,OAAO,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,SAAS;AAAA,MAC5F,gBAAgB,OAAO,IAAI,CAAC,MAAW,EAAE,YAAY,OAAO,EAAE,OAAO,OAAO;AAAA,IAC9E;AAAA,EACF;AACF;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { RefactoredStackMemoryMCP } from "./refactored-server.js";
2
6
  import { MCPHandlerFactory } from "./handlers/index.js";
3
7
  import { ContextHandlers } from "./handlers/context-handlers.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/integrations/mcp/index.ts"],
4
4
  "sourcesContent": ["/**\n * MCP Integration Exports\n * Provides access to both original and refactored MCP server implementations\n */\n\n// Export refactored server as primary\nexport { RefactoredStackMemoryMCP as StackMemoryMCP } from './refactored-server.js';\n\n// Export handler modules for direct access\nexport { MCPHandlerFactory } from './handlers/index.js';\nexport { ContextHandlers } from './handlers/context-handlers.js';\nexport { TaskHandlers } from './handlers/task-handlers.js';\nexport { LinearHandlers } from './handlers/linear-handlers.js';\nexport { TraceHandlers } from './handlers/trace-handlers.js';\n\n// Export tool definitions\nexport { MCPToolDefinitions } from './tool-definitions.js';\n\n// Re-export original server for backwards compatibility\nexport { default as LegacyStackMemoryMCP } from './server.js';"],
5
- "mappings": "AAMA,SAAqC,gCAAsB;AAG3D,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAG9B,SAAS,0BAA0B;AAGnC,SAAoB,WAAXA,gBAAuC;",
5
+ "mappings": ";;;;AAMA,SAAqC,gCAAsB;AAG3D,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAG9B,SAAS,0BAA0B;AAGnC,SAAoB,WAAXA,gBAAuC;",
6
6
  "names": ["default"]
7
7
  }
@@ -1,3 +1,7 @@
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);
1
5
  import { ConfigManager } from "../../../core/config/config-manager.js";
2
6
  import { TraceDetector } from "../../../core/trace/trace-detector.js";
3
7
  import { logger } from "../../../core/monitoring/logger.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/integrations/mcp/middleware/tool-scoring.ts"],
4
4
  "sourcesContent": ["/**\n * Tool Scoring Middleware for MCP\n * Integrates ConfigManager weight profiles with tool execution\n */\n\nimport { ConfigManager } from '../../../core/config/config-manager.js';\nimport { TraceDetector } from '../../../core/trace/trace-detector.js';\nimport { ToolCall } from '../../../core/trace/types.js';\nimport { logger } from '../../../core/monitoring/logger.js';\nimport { v4 as uuidv4 } from 'uuid';\nimport Database from 'better-sqlite3';\n\nexport interface ToolScoringMetrics {\n profileName: string;\n toolName: string;\n score: number;\n factors: {\n filesAffected: number;\n isPermanent: boolean;\n referenceCount: number;\n };\n timestamp: number;\n}\n\nexport interface ProfileUsageStats {\n profileName: string;\n usageCount: number;\n totalScore: number;\n avgScore: number;\n highScoreTools: string[];\n lastUsed: number;\n}\n\n/**\n * Middleware for scoring tool calls and tracking profile effectiveness\n */\nexport class ToolScoringMiddleware {\n private configManager: ConfigManager;\n private traceDetector: TraceDetector;\n private metrics: ToolScoringMetrics[] = [];\n private profileStats: Map<string, ProfileUsageStats> = new Map();\n private db?: Database.Database;\n \n constructor(\n configManager?: ConfigManager,\n traceDetector?: TraceDetector,\n db?: Database.Database\n ) {\n this.configManager = configManager || new ConfigManager();\n this.traceDetector = traceDetector || new TraceDetector();\n this.db = db;\n \n this.initializeDatabase();\n this.loadMetrics();\n }\n \n /**\n * Initialize database tables for metrics\n */\n private initializeDatabase(): void {\n if (!this.db) return;\n \n // Create metrics table\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS tool_scoring_metrics (\n id TEXT PRIMARY KEY,\n profile_name TEXT NOT NULL,\n tool_name TEXT NOT NULL,\n score REAL NOT NULL,\n files_affected INTEGER DEFAULT 0,\n is_permanent BOOLEAN DEFAULT FALSE,\n reference_count INTEGER DEFAULT 0,\n timestamp INTEGER NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n )\n `);\n \n // Create profile stats table\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS profile_usage_stats (\n profile_name TEXT PRIMARY KEY,\n usage_count INTEGER DEFAULT 0,\n total_score REAL DEFAULT 0,\n avg_score REAL DEFAULT 0,\n high_score_tools TEXT,\n last_used INTEGER,\n updated_at DATETIME DEFAULT CURRENT_TIMESTAMP\n )\n `);\n \n // Create indexes\n this.db.exec(`\n CREATE INDEX IF NOT EXISTS idx_metrics_profile ON tool_scoring_metrics(profile_name);\n CREATE INDEX IF NOT EXISTS idx_metrics_tool ON tool_scoring_metrics(tool_name);\n CREATE INDEX IF NOT EXISTS idx_metrics_timestamp ON tool_scoring_metrics(timestamp);\n `);\n }\n \n /**\n * Load existing metrics from database\n */\n private loadMetrics(): void {\n if (!this.db) return;\n \n try {\n // Load recent metrics (last 7 days)\n const cutoff = Date.now() - 7 * 24 * 60 * 60 * 1000;\n const stmt = this.db.prepare(`\n SELECT * FROM tool_scoring_metrics \n WHERE timestamp > ? \n ORDER BY timestamp DESC\n `);\n \n const rows = stmt.all(cutoff) as any[];\n this.metrics = rows.map((row: any) => ({\n profileName: row.profile_name,\n toolName: row.tool_name,\n score: row.score,\n factors: {\n filesAffected: row.files_affected,\n isPermanent: row.is_permanent === 1,\n referenceCount: row.reference_count,\n },\n timestamp: row.timestamp,\n }));\n \n // Load profile stats\n const statsStmt = this.db.prepare(`\n SELECT * FROM profile_usage_stats\n `);\n \n const statsRows = statsStmt.all() as any[];\n statsRows.forEach(row => {\n this.profileStats.set(row.profile_name, {\n profileName: row.profile_name,\n usageCount: row.usage_count,\n totalScore: row.total_score,\n avgScore: row.avg_score,\n highScoreTools: row.high_score_tools ? JSON.parse(row.high_score_tools) : [],\n lastUsed: row.last_used,\n });\n });\n \n logger.info('Loaded tool scoring metrics', {\n metricsCount: this.metrics.length,\n profilesCount: this.profileStats.size,\n });\n } catch (error: unknown) {\n logger.error('Failed to load metrics', error);\n }\n }\n \n /**\n * Score a tool call and track it\n */\n async scoreToolCall(\n toolName: string,\n args: any,\n result?: any,\n error?: string\n ): Promise<number> {\n // Extract factors from arguments and result\n const factors = this.extractScoringFactors(toolName, args, result);\n \n // Calculate score using current profile\n const score = this.configManager.calculateScore(toolName, factors);\n \n // Get current profile name\n const config = this.configManager.getConfig();\n const profileName = config.profile || 'default';\n \n // Track the metric\n const metric: ToolScoringMetrics = {\n profileName,\n toolName,\n score,\n factors,\n timestamp: Date.now(),\n };\n \n this.metrics.push(metric);\n this.updateProfileStats(profileName, toolName, score);\n \n // Save to database\n this.saveMetric(metric);\n \n // Add to trace detector if significant\n if (score > 0.3) {\n const toolCall: ToolCall = {\n id: uuidv4(),\n tool: toolName,\n arguments: args,\n timestamp: Date.now(),\n result,\n error,\n filesAffected: factors.filesAffected > 0 ? this.getFilesFromArgs(args) : undefined,\n };\n \n this.traceDetector.addToolCall(toolCall);\n }\n \n // Log high-importance operations\n if (score > 0.8) {\n logger.warn('High-importance tool call', {\n tool: toolName,\n score,\n profile: profileName,\n factors,\n });\n }\n \n return score;\n }\n \n /**\n * Extract scoring factors from tool arguments and results\n */\n private extractScoringFactors(\n toolName: string,\n args: any,\n result?: any\n ): { filesAffected: number; isPermanent: boolean; referenceCount: number } {\n let filesAffected = 0;\n let isPermanent = false;\n let referenceCount = 0;\n \n // Check for file-related arguments\n if (args.file || args.files || args.path || args.paths) {\n filesAffected = 1;\n if (args.files || args.paths) {\n filesAffected = Array.isArray(args.files || args.paths) \n ? (args.files || args.paths).length \n : 1;\n }\n }\n \n // Check if tool makes permanent changes\n const permanentTools = [\n 'write', 'edit', 'create', 'delete', 'update',\n 'add_decision', 'create_task', 'linear_update_task'\n ];\n \n if (permanentTools.some(t => toolName.includes(t))) {\n isPermanent = true;\n }\n \n // Extract reference count from result if available\n if (result?.referenceCount !== undefined) {\n referenceCount = result.referenceCount;\n } else if (result?.references?.length) {\n referenceCount = result.references.length;\n }\n \n return { filesAffected, isPermanent, referenceCount };\n }\n \n /**\n * Get file paths from arguments\n */\n private getFilesFromArgs(args: any): string[] {\n const files: string[] = [];\n \n if (args.file) files.push(args.file);\n if (args.path) files.push(args.path);\n if (args.files && Array.isArray(args.files)) files.push(...args.files);\n if (args.paths && Array.isArray(args.paths)) files.push(...args.paths);\n \n return files;\n }\n \n /**\n * Update profile usage statistics\n */\n private updateProfileStats(profileName: string, toolName: string, score: number): void {\n let stats = this.profileStats.get(profileName);\n \n if (!stats) {\n stats = {\n profileName,\n usageCount: 0,\n totalScore: 0,\n avgScore: 0,\n highScoreTools: [],\n lastUsed: Date.now(),\n };\n this.profileStats.set(profileName, stats);\n }\n \n stats.usageCount++;\n stats.totalScore += score;\n stats.avgScore = stats.totalScore / stats.usageCount;\n stats.lastUsed = Date.now();\n \n // Track high-score tools\n if (score > 0.7 && !stats.highScoreTools.includes(toolName)) {\n stats.highScoreTools.push(toolName);\n if (stats.highScoreTools.length > 10) {\n stats.highScoreTools.shift(); // Keep only last 10\n }\n }\n \n this.saveProfileStats(stats);\n }\n \n /**\n * Save metric to database\n */\n private saveMetric(metric: ToolScoringMetrics): void {\n if (!this.db) return;\n \n try {\n const stmt = this.db.prepare(`\n INSERT INTO tool_scoring_metrics (\n id, profile_name, tool_name, score,\n files_affected, is_permanent, reference_count,\n timestamp\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n `);\n \n stmt.run(\n uuidv4(),\n metric.profileName,\n metric.toolName,\n metric.score,\n metric.factors.filesAffected,\n metric.factors.isPermanent ? 1 : 0,\n metric.factors.referenceCount,\n metric.timestamp\n );\n } catch (error: unknown) {\n logger.error('Failed to save metric', error);\n }\n }\n \n /**\n * Save profile stats to database\n */\n private saveProfileStats(stats: ProfileUsageStats): void {\n if (!this.db) return;\n \n try {\n const stmt = this.db.prepare(`\n INSERT OR REPLACE INTO profile_usage_stats (\n profile_name, usage_count, total_score, avg_score,\n high_score_tools, last_used\n ) VALUES (?, ?, ?, ?, ?, ?)\n `);\n \n stmt.run(\n stats.profileName,\n stats.usageCount,\n stats.totalScore,\n stats.avgScore,\n JSON.stringify(stats.highScoreTools),\n stats.lastUsed\n );\n } catch (error: unknown) {\n logger.error('Failed to save profile stats', error);\n }\n }\n \n /**\n * Get profile effectiveness report\n */\n getProfileReport(profileName?: string): any {\n if (profileName) {\n const stats = this.profileStats.get(profileName);\n if (!stats) {\n return { error: `Profile '${profileName}' not found or not used yet` };\n }\n \n return {\n profile: profileName,\n usage: stats.usageCount,\n avgScore: stats.avgScore.toFixed(3),\n highScoreTools: stats.highScoreTools,\n lastUsed: new Date(stats.lastUsed).toISOString(),\n };\n }\n \n // Return report for all profiles\n const profiles = Array.from(this.profileStats.values())\n .sort((a, b) => b.avgScore - a.avgScore);\n \n return {\n profileCount: profiles.length,\n mostEffective: profiles[0]?.profileName || 'none',\n profiles: profiles.map((p: any) => ({\n name: p.profileName,\n usage: p.usageCount,\n avgScore: p.avgScore.toFixed(3),\n })),\n };\n }\n \n /**\n * Get tool scoring trends\n */\n getToolTrends(toolName: string, hours: number = 24): any {\n const cutoff = Date.now() - hours * 60 * 60 * 1000;\n const relevantMetrics = this.metrics.filter((m: any) => m.toolName === toolName && m.timestamp > cutoff\n );\n \n if (relevantMetrics.length === 0) {\n return { tool: toolName, message: 'No recent data' };\n }\n \n const scores = relevantMetrics.map((m: any) => m.score);\n const avgScore = scores.reduce((a, b) => a + b, 0) / scores.length;\n const maxScore = Math.max(...scores);\n const minScore = Math.min(...scores);\n \n return {\n tool: toolName,\n period: `${hours}h`,\n count: relevantMetrics.length,\n avgScore: avgScore.toFixed(3),\n maxScore: maxScore.toFixed(3),\n minScore: minScore.toFixed(3),\n trend: this.calculateTrend(relevantMetrics),\n };\n }\n \n /**\n * Calculate score trend\n */\n private calculateTrend(metrics: ToolScoringMetrics[]): string {\n if (metrics.length < 2) return 'stable';\n \n const firstHalf = metrics.slice(0, Math.floor(metrics.length / 2));\n const secondHalf = metrics.slice(Math.floor(metrics.length / 2));\n \n const firstAvg = firstHalf.reduce((a, m) => a + m.score, 0) / firstHalf.length;\n const secondAvg = secondHalf.reduce((a, m) => a + m.score, 0) / secondHalf.length;\n \n const diff = secondAvg - firstAvg;\n \n if (diff > 0.1) return 'increasing';\n if (diff < -0.1) return 'decreasing';\n return 'stable';\n }\n \n /**\n * Clean old metrics\n */\n cleanOldMetrics(daysToKeep: number = 30): number {\n const cutoff = Date.now() - daysToKeep * 24 * 60 * 60 * 1000;\n const oldCount = this.metrics.length;\n \n this.metrics = this.metrics.filter((m: any) => m.timestamp > cutoff);\n \n if (this.db) {\n try {\n const stmt = this.db.prepare(`\n DELETE FROM tool_scoring_metrics WHERE timestamp < ?\n `);\n stmt.run(cutoff);\n } catch (error: unknown) {\n logger.error('Failed to clean old metrics', error);\n }\n }\n \n return oldCount - this.metrics.length;\n }\n}"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env node
2
+ import { fileURLToPath as __fileURLToPath } from 'url';
3
+ import { dirname as __pathDirname } from 'path';
4
+ const __filename = __fileURLToPath(import.meta.url);
5
+ const __dirname = __pathDirname(__filename);
2
6
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
7
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
8
  import { z } from "zod";