@stackmemoryai/stackmemory 0.3.1 → 0.3.3

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 (734) hide show
  1. package/README.md +52 -272
  2. package/dist/cli/commands/clear.js +191 -0
  3. package/dist/cli/commands/clear.js.map +7 -0
  4. package/dist/cli/commands/config.js +152 -1
  5. package/dist/cli/commands/config.js.map +2 -2
  6. package/dist/cli/commands/dashboard.js +178 -0
  7. package/dist/cli/commands/dashboard.js.map +7 -0
  8. package/dist/cli/commands/handoff.js +125 -8
  9. package/dist/cli/commands/handoff.js.map +2 -2
  10. package/dist/cli/commands/linear-create.js +132 -0
  11. package/dist/cli/commands/linear-create.js.map +7 -0
  12. package/dist/cli/commands/linear-list.js +69 -0
  13. package/dist/cli/commands/linear-list.js.map +7 -0
  14. package/dist/cli/commands/linear-migrate.js +40 -0
  15. package/dist/cli/commands/linear-migrate.js.map +7 -0
  16. package/dist/cli/commands/linear.js +185 -36
  17. package/dist/cli/commands/linear.js.map +2 -2
  18. package/dist/cli/commands/monitor.js +309 -0
  19. package/dist/cli/commands/monitor.js.map +7 -0
  20. package/dist/cli/commands/quality.js +414 -0
  21. package/dist/cli/commands/quality.js.map +7 -0
  22. package/dist/cli/commands/storage.js +275 -0
  23. package/dist/cli/commands/storage.js.map +7 -0
  24. package/dist/cli/commands/tui.js +66 -0
  25. package/dist/cli/commands/tui.js.map +7 -0
  26. package/dist/cli/commands/workflow.js +134 -0
  27. package/dist/cli/commands/workflow.js.map +7 -0
  28. package/dist/cli/index.js +104 -8
  29. package/dist/cli/index.js.map +3 -3
  30. package/dist/core/analytics/team-analytics.js +374 -0
  31. package/dist/core/analytics/team-analytics.js.map +7 -0
  32. package/dist/core/context/context-bridge.js +234 -0
  33. package/dist/core/context/context-bridge.js.map +7 -0
  34. package/dist/core/context/dual-stack-manager.js +850 -0
  35. package/dist/core/context/dual-stack-manager.js.map +7 -0
  36. package/dist/core/context/frame-handoff-manager.js +384 -0
  37. package/dist/core/context/frame-handoff-manager.js.map +7 -0
  38. package/dist/core/context/frame-manager.js +132 -12
  39. package/dist/core/context/frame-manager.js.map +2 -2
  40. package/dist/core/context/permission-manager.js +181 -0
  41. package/dist/core/context/permission-manager.js.map +7 -0
  42. package/dist/core/context/shared-context-layer.js +386 -0
  43. package/dist/core/context/shared-context-layer.js.map +7 -0
  44. package/dist/core/context/stack-merge-resolver.js +600 -0
  45. package/dist/core/context/stack-merge-resolver.js.map +7 -0
  46. package/dist/core/context/validation.js +121 -0
  47. package/dist/core/context/validation.js.map +7 -0
  48. package/dist/core/database/connection-pool.js +266 -175
  49. package/dist/core/database/connection-pool.js.map +2 -2
  50. package/dist/core/database/database-adapter.js +51 -0
  51. package/dist/core/database/database-adapter.js.map +7 -0
  52. package/dist/core/database/migration-manager.js +514 -0
  53. package/dist/core/database/migration-manager.js.map +7 -0
  54. package/dist/core/database/paradedb-adapter.js +970 -0
  55. package/dist/core/database/paradedb-adapter.js.map +7 -0
  56. package/dist/core/database/query-router.js +421 -0
  57. package/dist/core/database/query-router.js.map +7 -0
  58. package/dist/core/database/sqlite-adapter.js +547 -0
  59. package/dist/core/database/sqlite-adapter.js.map +7 -0
  60. package/dist/core/errors/index.js +21 -1
  61. package/dist/core/errors/index.js.map +2 -2
  62. package/dist/core/frame/workflow-templates-stub.js +42 -0
  63. package/dist/core/frame/workflow-templates-stub.js.map +7 -0
  64. package/dist/core/frame/workflow-templates.js +276 -0
  65. package/dist/core/frame/workflow-templates.js.map +7 -0
  66. package/dist/core/merge/conflict-detector.js +5 -2
  67. package/dist/core/merge/conflict-detector.js.map +2 -2
  68. package/dist/core/merge/resolution-engine.js +3 -14
  69. package/dist/core/merge/resolution-engine.js.map +2 -2
  70. package/dist/core/merge/stack-diff.js.map +2 -2
  71. package/dist/core/monitoring/logger.js +18 -3
  72. package/dist/core/monitoring/logger.js.map +2 -2
  73. package/dist/core/monitoring/session-monitor.js +296 -0
  74. package/dist/core/monitoring/session-monitor.js.map +7 -0
  75. package/dist/core/retrieval/context-retriever.js +475 -0
  76. package/dist/core/retrieval/context-retriever.js.map +7 -0
  77. package/dist/core/retrieval/graph-retrieval.js +658 -0
  78. package/dist/core/retrieval/graph-retrieval.js.map +7 -0
  79. package/dist/core/retrieval/hierarchical-retrieval.js +652 -0
  80. package/dist/core/retrieval/hierarchical-retrieval.js.map +7 -0
  81. package/dist/core/retrieval/retrieval-benchmarks.js +517 -0
  82. package/dist/core/retrieval/retrieval-benchmarks.js.map +7 -0
  83. package/dist/core/session/clear-survival-stub.js +49 -0
  84. package/dist/core/session/clear-survival-stub.js.map +7 -0
  85. package/dist/core/session/clear-survival.js +426 -0
  86. package/dist/core/session/clear-survival.js.map +7 -0
  87. package/dist/core/session/handoff-generator.js +339 -0
  88. package/dist/core/session/handoff-generator.js.map +7 -0
  89. package/dist/core/session/session-manager.js +61 -26
  90. package/dist/core/session/session-manager.js.map +3 -3
  91. package/dist/core/skills/index.js +3 -0
  92. package/dist/core/skills/index.js.map +7 -0
  93. package/dist/core/skills/skill-storage.js +749 -0
  94. package/dist/core/skills/skill-storage.js.map +7 -0
  95. package/dist/core/skills/types.js +189 -0
  96. package/dist/core/skills/types.js.map +7 -0
  97. package/dist/core/storage/railway-optimized-storage.js +550 -0
  98. package/dist/core/storage/railway-optimized-storage.js.map +7 -0
  99. package/dist/core/storage/remote-storage.js +456 -0
  100. package/dist/core/storage/remote-storage.js.map +7 -0
  101. package/dist/core/trace/trace-detector.js +136 -5
  102. package/dist/core/trace/trace-detector.js.map +2 -2
  103. package/dist/core/trace/trace-store.js.map +2 -2
  104. package/dist/features/tui/components/analytics-panel.js +136 -0
  105. package/dist/features/tui/components/analytics-panel.js.map +7 -0
  106. package/dist/features/tui/components/frame-visualizer.js +377 -0
  107. package/dist/features/tui/components/frame-visualizer.js.map +7 -0
  108. package/dist/features/tui/components/pr-tracker.js +123 -0
  109. package/dist/features/tui/components/pr-tracker.js.map +7 -0
  110. package/dist/features/tui/components/session-monitor.js +286 -0
  111. package/dist/features/tui/components/session-monitor.js.map +7 -0
  112. package/dist/features/tui/components/subagent-fleet.js +388 -0
  113. package/dist/features/tui/components/subagent-fleet.js.map +7 -0
  114. package/dist/features/tui/components/task-board.js +475 -0
  115. package/dist/features/tui/components/task-board.js.map +7 -0
  116. package/dist/features/tui/index.js +397 -0
  117. package/dist/features/tui/index.js.map +7 -0
  118. package/dist/features/tui/services/data-service.js +654 -0
  119. package/dist/features/tui/services/data-service.js.map +7 -0
  120. package/dist/features/tui/services/websocket-client.js +149 -0
  121. package/dist/features/tui/services/websocket-client.js.map +7 -0
  122. package/dist/features/tui/terminal-compat.js +205 -0
  123. package/dist/features/tui/terminal-compat.js.map +7 -0
  124. package/dist/features/tui/types.js +1 -0
  125. package/dist/features/tui/types.js.map +7 -0
  126. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +455 -0
  127. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
  128. package/dist/integrations/claude-code/lifecycle-hooks.js +250 -0
  129. package/dist/integrations/claude-code/lifecycle-hooks.js.map +7 -0
  130. package/dist/integrations/claude-code/post-task-hooks.js +541 -0
  131. package/dist/integrations/claude-code/post-task-hooks.js.map +7 -0
  132. package/dist/integrations/linear/client.js +22 -4
  133. package/dist/integrations/linear/client.js.map +2 -2
  134. package/dist/integrations/linear/migration.js +299 -0
  135. package/dist/integrations/linear/migration.js.map +7 -0
  136. package/dist/integrations/linear/oauth-server.js +396 -0
  137. package/dist/integrations/linear/oauth-server.js.map +7 -0
  138. package/dist/integrations/linear/rest-client.js +199 -0
  139. package/dist/integrations/linear/rest-client.js.map +7 -0
  140. package/dist/integrations/linear/sync.js +14 -2
  141. package/dist/integrations/linear/sync.js.map +2 -2
  142. package/dist/integrations/linear/webhook-handler.js +200 -0
  143. package/dist/integrations/linear/webhook-handler.js.map +7 -0
  144. package/dist/integrations/mcp/handlers/skill-handlers.js +514 -0
  145. package/dist/integrations/mcp/handlers/skill-handlers.js.map +7 -0
  146. package/dist/integrations/mcp/middleware/tool-scoring.js +352 -0
  147. package/dist/integrations/mcp/middleware/tool-scoring.js.map +7 -0
  148. package/dist/integrations/mcp/refactored-server.js +31 -3
  149. package/dist/integrations/mcp/refactored-server.js.map +2 -2
  150. package/dist/integrations/mcp/server.js +25 -7
  151. package/dist/integrations/mcp/server.js.map +2 -2
  152. package/dist/mcp/stackmemory-mcp-server.js.map +1 -1
  153. package/dist/models/user.model.js +3 -0
  154. package/dist/models/user.model.js.map +2 -2
  155. package/dist/services/context-service.js.map +2 -2
  156. package/dist/utils/formatting.js +58 -0
  157. package/dist/utils/formatting.js.map +7 -0
  158. package/package.json +21 -5
  159. package/dist/cli/__tests__/index.test.js +0 -290
  160. package/dist/cli/__tests__/index.test.js.map +0 -7
  161. package/dist/core/config/__tests__/config-manager.test.js +0 -248
  162. package/dist/core/config/__tests__/config-manager.test.js.map +0 -7
  163. package/dist/core/context/__tests__/frame-manager.test.js +0 -879
  164. package/dist/core/context/__tests__/frame-manager.test.js.map +0 -7
  165. package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js +0 -379
  166. package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js.map +0 -7
  167. package/dist/core/digest/__tests__/frame-digest-integration.test.js +0 -230
  168. package/dist/core/digest/__tests__/frame-digest-integration.test.js.map +0 -7
  169. package/dist/core/errors/__tests__/error-handling.test.js +0 -270
  170. package/dist/core/errors/__tests__/error-handling.test.js.map +0 -7
  171. package/dist/core/merge/__tests__/conflict-scenarios.test.js +0 -414
  172. package/dist/core/merge/__tests__/conflict-scenarios.test.js.map +0 -7
  173. package/dist/core/query/__tests__/query-parser.test.js +0 -301
  174. package/dist/core/query/__tests__/query-parser.test.js.map +0 -7
  175. package/dist/core/query/__tests__/query-templates.test.js +0 -210
  176. package/dist/core/query/__tests__/query-templates.test.js.map +0 -7
  177. package/dist/core/trace/trace-detector.test.js +0 -401
  178. package/dist/core/trace/trace-detector.test.js.map +0 -7
  179. package/dist/features/tasks/__tests__/pebbles-task-store.test.js +0 -747
  180. package/dist/features/tasks/__tests__/pebbles-task-store.test.js.map +0 -7
  181. package/dist/integrations/linear/__tests__/auth.test.js +0 -558
  182. package/dist/integrations/linear/__tests__/auth.test.js.map +0 -7
  183. package/dist/integrations/linear/__tests__/sync-service.test.js +0 -760
  184. package/dist/integrations/linear/__tests__/sync-service.test.js.map +0 -7
  185. package/dist/integrations/mcp/__tests__/server.test.js +0 -798
  186. package/dist/integrations/mcp/__tests__/server.test.js.map +0 -7
  187. package/dist/scripts/benchmark-performance.d.ts +0 -7
  188. package/dist/scripts/benchmark-performance.d.ts.map +0 -1
  189. package/dist/scripts/benchmark-performance.js +0 -44
  190. package/dist/scripts/benchmark-performance.js.map +0 -1
  191. package/dist/scripts/cancel-duplicate-tasks.d.ts +0 -7
  192. package/dist/scripts/cancel-duplicate-tasks.d.ts.map +0 -1
  193. package/dist/scripts/cancel-duplicate-tasks.js +0 -172
  194. package/dist/scripts/cancel-duplicate-tasks.js.map +0 -1
  195. package/dist/scripts/cleanup-duplicate-tasks.d.ts +0 -12
  196. package/dist/scripts/cleanup-duplicate-tasks.d.ts.map +0 -1
  197. package/dist/scripts/cleanup-duplicate-tasks.js +0 -215
  198. package/dist/scripts/cleanup-duplicate-tasks.js.map +0 -1
  199. package/dist/scripts/initialize.d.ts +0 -6
  200. package/dist/scripts/initialize.d.ts.map +0 -1
  201. package/dist/scripts/initialize.js +0 -93
  202. package/dist/scripts/initialize.js.map +0 -1
  203. package/dist/scripts/list-linear-tasks.d.ts +0 -6
  204. package/dist/scripts/list-linear-tasks.d.ts.map +0 -1
  205. package/dist/scripts/list-linear-tasks.js +0 -121
  206. package/dist/scripts/list-linear-tasks.js.map +0 -1
  207. package/dist/scripts/merge-linear-duplicates-safe.d.ts +0 -7
  208. package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +0 -1
  209. package/dist/scripts/merge-linear-duplicates-safe.js +0 -267
  210. package/dist/scripts/merge-linear-duplicates-safe.js.map +0 -1
  211. package/dist/scripts/show-linear-summary.d.ts +0 -6
  212. package/dist/scripts/show-linear-summary.d.ts.map +0 -1
  213. package/dist/scripts/show-linear-summary.js +0 -120
  214. package/dist/scripts/show-linear-summary.js.map +0 -1
  215. package/dist/scripts/status.d.ts +0 -6
  216. package/dist/scripts/status.d.ts.map +0 -1
  217. package/dist/scripts/status.js +0 -101
  218. package/dist/scripts/status.js.map +0 -1
  219. package/dist/src/agents/core/agent-task-manager.d.ts +0 -154
  220. package/dist/src/agents/core/agent-task-manager.d.ts.map +0 -1
  221. package/dist/src/agents/core/agent-task-manager.js +0 -504
  222. package/dist/src/agents/core/agent-task-manager.js.map +0 -1
  223. package/dist/src/agents/verifiers/base-verifier.d.ts +0 -112
  224. package/dist/src/agents/verifiers/base-verifier.d.ts.map +0 -1
  225. package/dist/src/agents/verifiers/base-verifier.js +0 -130
  226. package/dist/src/agents/verifiers/base-verifier.js.map +0 -1
  227. package/dist/src/agents/verifiers/formatter-verifier.d.ts +0 -14
  228. package/dist/src/agents/verifiers/formatter-verifier.d.ts.map +0 -1
  229. package/dist/src/agents/verifiers/formatter-verifier.js +0 -107
  230. package/dist/src/agents/verifiers/formatter-verifier.js.map +0 -1
  231. package/dist/src/agents/verifiers/llm-judge.d.ts +0 -46
  232. package/dist/src/agents/verifiers/llm-judge.d.ts.map +0 -1
  233. package/dist/src/agents/verifiers/llm-judge.js +0 -248
  234. package/dist/src/agents/verifiers/llm-judge.js.map +0 -1
  235. package/dist/src/cli/auto-detect.d.ts +0 -61
  236. package/dist/src/cli/auto-detect.d.ts.map +0 -1
  237. package/dist/src/cli/auto-detect.js +0 -350
  238. package/dist/src/cli/auto-detect.js.map +0 -1
  239. package/dist/src/cli/browser-test.d.ts +0 -6
  240. package/dist/src/cli/browser-test.d.ts.map +0 -1
  241. package/dist/src/cli/browser-test.js +0 -32
  242. package/dist/src/cli/browser-test.js.map +0 -1
  243. package/dist/src/cli/claude-sm.d.ts +0 -7
  244. package/dist/src/cli/claude-sm.d.ts.map +0 -1
  245. package/dist/src/cli/claude-sm.js +0 -412
  246. package/dist/src/cli/claude-sm.js.map +0 -1
  247. package/dist/src/cli/commands/agent.d.ts +0 -9
  248. package/dist/src/cli/commands/agent.d.ts.map +0 -1
  249. package/dist/src/cli/commands/agent.js +0 -303
  250. package/dist/src/cli/commands/agent.js.map +0 -1
  251. package/dist/src/cli/commands/config.d.ts +0 -6
  252. package/dist/src/cli/commands/config.d.ts.map +0 -1
  253. package/dist/src/cli/commands/config.js +0 -224
  254. package/dist/src/cli/commands/config.js.map +0 -1
  255. package/dist/src/cli/commands/context.d.ts +0 -7
  256. package/dist/src/cli/commands/context.d.ts.map +0 -1
  257. package/dist/src/cli/commands/context.js +0 -365
  258. package/dist/src/cli/commands/context.js.map +0 -1
  259. package/dist/src/cli/commands/handoff.d.ts +0 -6
  260. package/dist/src/cli/commands/handoff.d.ts.map +0 -1
  261. package/dist/src/cli/commands/handoff.js +0 -212
  262. package/dist/src/cli/commands/handoff.js.map +0 -1
  263. package/dist/src/cli/commands/linear-test.d.ts +0 -6
  264. package/dist/src/cli/commands/linear-test.d.ts.map +0 -1
  265. package/dist/src/cli/commands/linear-test.js +0 -123
  266. package/dist/src/cli/commands/linear-test.js.map +0 -1
  267. package/dist/src/cli/commands/linear.d.ts +0 -6
  268. package/dist/src/cli/commands/linear.d.ts.map +0 -1
  269. package/dist/src/cli/commands/linear.js +0 -393
  270. package/dist/src/cli/commands/linear.js.map +0 -1
  271. package/dist/src/cli/commands/log.d.ts +0 -7
  272. package/dist/src/cli/commands/log.d.ts.map +0 -1
  273. package/dist/src/cli/commands/log.js +0 -168
  274. package/dist/src/cli/commands/log.js.map +0 -1
  275. package/dist/src/cli/commands/onboard.d.ts +0 -8
  276. package/dist/src/cli/commands/onboard.d.ts.map +0 -1
  277. package/dist/src/cli/commands/onboard.js +0 -363
  278. package/dist/src/cli/commands/onboard.js.map +0 -1
  279. package/dist/src/cli/commands/projects.d.ts +0 -8
  280. package/dist/src/cli/commands/projects.d.ts.map +0 -1
  281. package/dist/src/cli/commands/projects.js +0 -220
  282. package/dist/src/cli/commands/projects.js.map +0 -1
  283. package/dist/src/cli/commands/search.d.ts +0 -7
  284. package/dist/src/cli/commands/search.d.ts.map +0 -1
  285. package/dist/src/cli/commands/search.js +0 -162
  286. package/dist/src/cli/commands/search.js.map +0 -1
  287. package/dist/src/cli/commands/session.d.ts +0 -7
  288. package/dist/src/cli/commands/session.d.ts.map +0 -1
  289. package/dist/src/cli/commands/session.js +0 -222
  290. package/dist/src/cli/commands/session.js.map +0 -1
  291. package/dist/src/cli/commands/tasks.d.ts +0 -7
  292. package/dist/src/cli/commands/tasks.d.ts.map +0 -1
  293. package/dist/src/cli/commands/tasks.js +0 -229
  294. package/dist/src/cli/commands/tasks.js.map +0 -1
  295. package/dist/src/cli/commands/webhook.d.ts +0 -3
  296. package/dist/src/cli/commands/webhook.d.ts.map +0 -1
  297. package/dist/src/cli/commands/webhook.js +0 -157
  298. package/dist/src/cli/commands/webhook.js.map +0 -1
  299. package/dist/src/cli/commands/worktree.d.ts +0 -8
  300. package/dist/src/cli/commands/worktree.d.ts.map +0 -1
  301. package/dist/src/cli/commands/worktree.js +0 -339
  302. package/dist/src/cli/commands/worktree.js.map +0 -1
  303. package/dist/src/cli/index.d.ts +0 -8
  304. package/dist/src/cli/index.d.ts.map +0 -1
  305. package/dist/src/cli/index.js +0 -995
  306. package/dist/src/cli/index.js.map +0 -1
  307. package/dist/src/cli/utils/viewer.d.ts +0 -3
  308. package/dist/src/cli/utils/viewer.d.ts.map +0 -1
  309. package/dist/src/cli/utils/viewer.js +0 -91
  310. package/dist/src/cli/utils/viewer.js.map +0 -1
  311. package/dist/src/core/config/config-manager.d.ts +0 -95
  312. package/dist/src/core/config/config-manager.d.ts.map +0 -1
  313. package/dist/src/core/config/config-manager.js +0 -359
  314. package/dist/src/core/config/config-manager.js.map +0 -1
  315. package/dist/src/core/config/types.d.ts +0 -72
  316. package/dist/src/core/config/types.d.ts.map +0 -1
  317. package/dist/src/core/config/types.js +0 -127
  318. package/dist/src/core/config/types.js.map +0 -1
  319. package/dist/src/core/context/auto-context.d.ts +0 -22
  320. package/dist/src/core/context/auto-context.d.ts.map +0 -1
  321. package/dist/src/core/context/auto-context.js +0 -77
  322. package/dist/src/core/context/auto-context.js.map +0 -1
  323. package/dist/src/core/context/compaction-handler.d.ts +0 -119
  324. package/dist/src/core/context/compaction-handler.d.ts.map +0 -1
  325. package/dist/src/core/context/compaction-handler.js +0 -306
  326. package/dist/src/core/context/compaction-handler.js.map +0 -1
  327. package/dist/src/core/context/frame-database.d.ts +0 -59
  328. package/dist/src/core/context/frame-database.d.ts.map +0 -1
  329. package/dist/src/core/context/frame-database.js +0 -333
  330. package/dist/src/core/context/frame-database.js.map +0 -1
  331. package/dist/src/core/context/frame-digest.d.ts +0 -59
  332. package/dist/src/core/context/frame-digest.d.ts.map +0 -1
  333. package/dist/src/core/context/frame-digest.js +0 -264
  334. package/dist/src/core/context/frame-digest.js.map +0 -1
  335. package/dist/src/core/context/frame-manager.d.ts +0 -112
  336. package/dist/src/core/context/frame-manager.d.ts.map +0 -1
  337. package/dist/src/core/context/frame-manager.js +0 -600
  338. package/dist/src/core/context/frame-manager.js.map +0 -1
  339. package/dist/src/core/context/frame-stack.d.ts +0 -85
  340. package/dist/src/core/context/frame-stack.d.ts.map +0 -1
  341. package/dist/src/core/context/frame-stack.js +0 -287
  342. package/dist/src/core/context/frame-stack.js.map +0 -1
  343. package/dist/src/core/context/frame-types.d.ts +0 -67
  344. package/dist/src/core/context/frame-types.d.ts.map +0 -1
  345. package/dist/src/core/context/frame-types.js +0 -6
  346. package/dist/src/core/context/frame-types.js.map +0 -1
  347. package/dist/src/core/context/index.d.ts +0 -11
  348. package/dist/src/core/context/index.d.ts.map +0 -1
  349. package/dist/src/core/context/index.js +0 -14
  350. package/dist/src/core/context/index.js.map +0 -1
  351. package/dist/src/core/context/model-aware-compaction.d.ts +0 -101
  352. package/dist/src/core/context/model-aware-compaction.d.ts.map +0 -1
  353. package/dist/src/core/context/model-aware-compaction.js +0 -616
  354. package/dist/src/core/context/model-aware-compaction.js.map +0 -1
  355. package/dist/src/core/context/refactored-frame-manager.d.ts +0 -99
  356. package/dist/src/core/context/refactored-frame-manager.d.ts.map +0 -1
  357. package/dist/src/core/context/refactored-frame-manager.js +0 -340
  358. package/dist/src/core/context/refactored-frame-manager.js.map +0 -1
  359. package/dist/src/core/database/batch-operations.d.ts +0 -118
  360. package/dist/src/core/database/batch-operations.d.ts.map +0 -1
  361. package/dist/src/core/database/batch-operations.js +0 -339
  362. package/dist/src/core/database/batch-operations.js.map +0 -1
  363. package/dist/src/core/database/connection-pool.d.ts +0 -79
  364. package/dist/src/core/database/connection-pool.d.ts.map +0 -1
  365. package/dist/src/core/database/connection-pool.js +0 -236
  366. package/dist/src/core/database/connection-pool.js.map +0 -1
  367. package/dist/src/core/database/query-cache.d.ts +0 -135
  368. package/dist/src/core/database/query-cache.d.ts.map +0 -1
  369. package/dist/src/core/database/query-cache.js +0 -294
  370. package/dist/src/core/database/query-cache.js.map +0 -1
  371. package/dist/src/core/digest/enhanced-hybrid-digest.d.ts +0 -125
  372. package/dist/src/core/digest/enhanced-hybrid-digest.d.ts.map +0 -1
  373. package/dist/src/core/digest/enhanced-hybrid-digest.js +0 -282
  374. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +0 -1
  375. package/dist/src/core/digest/frame-digest-integration.d.ts +0 -67
  376. package/dist/src/core/digest/frame-digest-integration.d.ts.map +0 -1
  377. package/dist/src/core/digest/frame-digest-integration.js +0 -198
  378. package/dist/src/core/digest/frame-digest-integration.js.map +0 -1
  379. package/dist/src/core/digest/hybrid-digest-generator.d.ts +0 -76
  380. package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +0 -1
  381. package/dist/src/core/digest/hybrid-digest-generator.js +0 -629
  382. package/dist/src/core/digest/hybrid-digest-generator.js.map +0 -1
  383. package/dist/src/core/digest/index.d.ts +0 -9
  384. package/dist/src/core/digest/index.d.ts.map +0 -1
  385. package/dist/src/core/digest/index.js +0 -9
  386. package/dist/src/core/digest/index.js.map +0 -1
  387. package/dist/src/core/digest/types.d.ts +0 -154
  388. package/dist/src/core/digest/types.d.ts.map +0 -1
  389. package/dist/src/core/digest/types.js +0 -18
  390. package/dist/src/core/digest/types.js.map +0 -1
  391. package/dist/src/core/errors/index.d.ts +0 -143
  392. package/dist/src/core/errors/index.d.ts.map +0 -1
  393. package/dist/src/core/errors/index.js +0 -282
  394. package/dist/src/core/errors/index.js.map +0 -1
  395. package/dist/src/core/errors/recovery.d.ts +0 -86
  396. package/dist/src/core/errors/recovery.d.ts.map +0 -1
  397. package/dist/src/core/errors/recovery.js +0 -274
  398. package/dist/src/core/errors/recovery.js.map +0 -1
  399. package/dist/src/core/merge/conflict-detector.d.ts +0 -122
  400. package/dist/src/core/merge/conflict-detector.d.ts.map +0 -1
  401. package/dist/src/core/merge/conflict-detector.js +0 -468
  402. package/dist/src/core/merge/conflict-detector.js.map +0 -1
  403. package/dist/src/core/merge/index.d.ts +0 -9
  404. package/dist/src/core/merge/index.d.ts.map +0 -1
  405. package/dist/src/core/merge/index.js +0 -9
  406. package/dist/src/core/merge/index.js.map +0 -1
  407. package/dist/src/core/merge/resolution-engine.d.ts +0 -120
  408. package/dist/src/core/merge/resolution-engine.d.ts.map +0 -1
  409. package/dist/src/core/merge/resolution-engine.js +0 -573
  410. package/dist/src/core/merge/resolution-engine.js.map +0 -1
  411. package/dist/src/core/merge/stack-diff.d.ts +0 -97
  412. package/dist/src/core/merge/stack-diff.d.ts.map +0 -1
  413. package/dist/src/core/merge/stack-diff.js +0 -516
  414. package/dist/src/core/merge/stack-diff.js.map +0 -1
  415. package/dist/src/core/merge/types.d.ts +0 -110
  416. package/dist/src/core/merge/types.d.ts.map +0 -1
  417. package/dist/src/core/merge/types.js +0 -6
  418. package/dist/src/core/merge/types.js.map +0 -1
  419. package/dist/src/core/monitoring/error-handler.d.ts +0 -46
  420. package/dist/src/core/monitoring/error-handler.d.ts.map +0 -1
  421. package/dist/src/core/monitoring/error-handler.js +0 -212
  422. package/dist/src/core/monitoring/error-handler.js.map +0 -1
  423. package/dist/src/core/monitoring/logger.d.ts +0 -24
  424. package/dist/src/core/monitoring/logger.d.ts.map +0 -1
  425. package/dist/src/core/monitoring/logger.js +0 -126
  426. package/dist/src/core/monitoring/logger.js.map +0 -1
  427. package/dist/src/core/monitoring/metrics.d.ts +0 -10
  428. package/dist/src/core/monitoring/metrics.d.ts.map +0 -1
  429. package/dist/src/core/monitoring/metrics.js +0 -152
  430. package/dist/src/core/monitoring/metrics.js.map +0 -1
  431. package/dist/src/core/monitoring/progress-tracker.d.ts +0 -95
  432. package/dist/src/core/monitoring/progress-tracker.d.ts.map +0 -1
  433. package/dist/src/core/monitoring/progress-tracker.js +0 -178
  434. package/dist/src/core/monitoring/progress-tracker.js.map +0 -1
  435. package/dist/src/core/performance/context-cache.d.ts +0 -109
  436. package/dist/src/core/performance/context-cache.d.ts.map +0 -1
  437. package/dist/src/core/performance/context-cache.js +0 -280
  438. package/dist/src/core/performance/context-cache.js.map +0 -1
  439. package/dist/src/core/performance/index.d.ts +0 -3
  440. package/dist/src/core/performance/index.d.ts.map +0 -1
  441. package/dist/src/core/performance/index.js +0 -3
  442. package/dist/src/core/performance/index.js.map +0 -1
  443. package/dist/src/core/performance/lazy-context-loader.d.ts +0 -93
  444. package/dist/src/core/performance/lazy-context-loader.d.ts.map +0 -1
  445. package/dist/src/core/performance/lazy-context-loader.js +0 -332
  446. package/dist/src/core/performance/lazy-context-loader.js.map +0 -1
  447. package/dist/src/core/performance/monitor.d.ts +0 -48
  448. package/dist/src/core/performance/monitor.d.ts.map +0 -1
  449. package/dist/src/core/performance/monitor.js +0 -226
  450. package/dist/src/core/performance/monitor.js.map +0 -1
  451. package/dist/src/core/performance/optimized-frame-context.d.ts +0 -74
  452. package/dist/src/core/performance/optimized-frame-context.d.ts.map +0 -1
  453. package/dist/src/core/performance/optimized-frame-context.js +0 -330
  454. package/dist/src/core/performance/optimized-frame-context.js.map +0 -1
  455. package/dist/src/core/performance/performance-benchmark.d.ts +0 -50
  456. package/dist/src/core/performance/performance-benchmark.d.ts.map +0 -1
  457. package/dist/src/core/performance/performance-benchmark.js +0 -290
  458. package/dist/src/core/performance/performance-benchmark.js.map +0 -1
  459. package/dist/src/core/performance/performance-profiler.d.ts +0 -151
  460. package/dist/src/core/performance/performance-profiler.d.ts.map +0 -1
  461. package/dist/src/core/performance/performance-profiler.js +0 -346
  462. package/dist/src/core/performance/performance-profiler.js.map +0 -1
  463. package/dist/src/core/performance/streaming-jsonl-parser.d.ts +0 -41
  464. package/dist/src/core/performance/streaming-jsonl-parser.d.ts.map +0 -1
  465. package/dist/src/core/performance/streaming-jsonl-parser.js +0 -193
  466. package/dist/src/core/performance/streaming-jsonl-parser.js.map +0 -1
  467. package/dist/src/core/persistence/postgres-adapter.d.ts +0 -31
  468. package/dist/src/core/persistence/postgres-adapter.d.ts.map +0 -1
  469. package/dist/src/core/persistence/postgres-adapter.js +0 -330
  470. package/dist/src/core/persistence/postgres-adapter.js.map +0 -1
  471. package/dist/src/core/projects/project-manager.d.ts +0 -130
  472. package/dist/src/core/projects/project-manager.d.ts.map +0 -1
  473. package/dist/src/core/projects/project-manager.js +0 -709
  474. package/dist/src/core/projects/project-manager.js.map +0 -1
  475. package/dist/src/core/query/query-parser.d.ts +0 -109
  476. package/dist/src/core/query/query-parser.d.ts.map +0 -1
  477. package/dist/src/core/query/query-parser.js +0 -415
  478. package/dist/src/core/query/query-parser.js.map +0 -1
  479. package/dist/src/core/query/query-templates.d.ts +0 -44
  480. package/dist/src/core/query/query-templates.d.ts.map +0 -1
  481. package/dist/src/core/query/query-templates.js +0 -326
  482. package/dist/src/core/query/query-templates.js.map +0 -1
  483. package/dist/src/core/retrieval/index.d.ts +0 -8
  484. package/dist/src/core/retrieval/index.d.ts.map +0 -1
  485. package/dist/src/core/retrieval/index.js +0 -8
  486. package/dist/src/core/retrieval/index.js.map +0 -1
  487. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +0 -73
  488. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +0 -1
  489. package/dist/src/core/retrieval/llm-context-retrieval.js +0 -597
  490. package/dist/src/core/retrieval/llm-context-retrieval.js.map +0 -1
  491. package/dist/src/core/retrieval/summary-generator.d.ts +0 -63
  492. package/dist/src/core/retrieval/summary-generator.d.ts.map +0 -1
  493. package/dist/src/core/retrieval/summary-generator.js +0 -622
  494. package/dist/src/core/retrieval/summary-generator.js.map +0 -1
  495. package/dist/src/core/retrieval/types.d.ts +0 -257
  496. package/dist/src/core/retrieval/types.d.ts.map +0 -1
  497. package/dist/src/core/retrieval/types.js +0 -18
  498. package/dist/src/core/retrieval/types.js.map +0 -1
  499. package/dist/src/core/session/index.d.ts +0 -2
  500. package/dist/src/core/session/index.d.ts.map +0 -1
  501. package/dist/src/core/session/index.js +0 -2
  502. package/dist/src/core/session/index.js.map +0 -1
  503. package/dist/src/core/session/session-manager.d.ts +0 -69
  504. package/dist/src/core/session/session-manager.d.ts.map +0 -1
  505. package/dist/src/core/session/session-manager.js +0 -311
  506. package/dist/src/core/session/session-manager.js.map +0 -1
  507. package/dist/src/core/trace/cli-trace-wrapper.d.ts +0 -23
  508. package/dist/src/core/trace/cli-trace-wrapper.d.ts.map +0 -1
  509. package/dist/src/core/trace/cli-trace-wrapper.js +0 -141
  510. package/dist/src/core/trace/cli-trace-wrapper.js.map +0 -1
  511. package/dist/src/core/trace/db-trace-wrapper.d.ts +0 -36
  512. package/dist/src/core/trace/db-trace-wrapper.d.ts.map +0 -1
  513. package/dist/src/core/trace/db-trace-wrapper.js +0 -252
  514. package/dist/src/core/trace/db-trace-wrapper.js.map +0 -1
  515. package/dist/src/core/trace/debug-trace.d.ts +0 -84
  516. package/dist/src/core/trace/debug-trace.d.ts.map +0 -1
  517. package/dist/src/core/trace/debug-trace.js +0 -402
  518. package/dist/src/core/trace/debug-trace.js.map +0 -1
  519. package/dist/src/core/trace/error-test.d.ts +0 -6
  520. package/dist/src/core/trace/error-test.d.ts.map +0 -1
  521. package/dist/src/core/trace/error-test.js +0 -128
  522. package/dist/src/core/trace/error-test.js.map +0 -1
  523. package/dist/src/core/trace/index.d.ts +0 -25
  524. package/dist/src/core/trace/index.d.ts.map +0 -1
  525. package/dist/src/core/trace/index.js +0 -121
  526. package/dist/src/core/trace/index.js.map +0 -1
  527. package/dist/src/core/trace/linear-api-wrapper.d.ts +0 -17
  528. package/dist/src/core/trace/linear-api-wrapper.d.ts.map +0 -1
  529. package/dist/src/core/trace/linear-api-wrapper.js +0 -205
  530. package/dist/src/core/trace/linear-api-wrapper.js.map +0 -1
  531. package/dist/src/core/trace/performance-test.d.ts +0 -6
  532. package/dist/src/core/trace/performance-test.d.ts.map +0 -1
  533. package/dist/src/core/trace/performance-test.js +0 -111
  534. package/dist/src/core/trace/performance-test.js.map +0 -1
  535. package/dist/src/core/trace/trace-demo.d.ts +0 -8
  536. package/dist/src/core/trace/trace-demo.d.ts.map +0 -1
  537. package/dist/src/core/trace/trace-demo.js +0 -154
  538. package/dist/src/core/trace/trace-demo.js.map +0 -1
  539. package/dist/src/core/trace/trace-detector.d.ts +0 -108
  540. package/dist/src/core/trace/trace-detector.d.ts.map +0 -1
  541. package/dist/src/core/trace/trace-detector.demo.d.ts +0 -5
  542. package/dist/src/core/trace/trace-detector.demo.d.ts.map +0 -1
  543. package/dist/src/core/trace/trace-detector.demo.js +0 -145
  544. package/dist/src/core/trace/trace-detector.demo.js.map +0 -1
  545. package/dist/src/core/trace/trace-detector.js +0 -425
  546. package/dist/src/core/trace/trace-detector.js.map +0 -1
  547. package/dist/src/core/trace/trace-store.d.ts +0 -60
  548. package/dist/src/core/trace/trace-store.d.ts.map +0 -1
  549. package/dist/src/core/trace/trace-store.js +0 -323
  550. package/dist/src/core/trace/trace-store.js.map +0 -1
  551. package/dist/src/core/trace/types.d.ts +0 -81
  552. package/dist/src/core/trace/types.d.ts.map +0 -1
  553. package/dist/src/core/trace/types.js +0 -70
  554. package/dist/src/core/trace/types.js.map +0 -1
  555. package/dist/src/core/types.d.ts +0 -35
  556. package/dist/src/core/types.d.ts.map +0 -1
  557. package/dist/src/core/types.js +0 -2
  558. package/dist/src/core/types.js.map +0 -1
  559. package/dist/src/core/utils/update-checker.d.ts +0 -38
  560. package/dist/src/core/utils/update-checker.d.ts.map +0 -1
  561. package/dist/src/core/utils/update-checker.js +0 -213
  562. package/dist/src/core/utils/update-checker.js.map +0 -1
  563. package/dist/src/core/worktree/worktree-manager.d.ts +0 -110
  564. package/dist/src/core/worktree/worktree-manager.d.ts.map +0 -1
  565. package/dist/src/core/worktree/worktree-manager.js +0 -456
  566. package/dist/src/core/worktree/worktree-manager.js.map +0 -1
  567. package/dist/src/features/analytics/api/analytics-api.d.ts +0 -24
  568. package/dist/src/features/analytics/api/analytics-api.d.ts.map +0 -1
  569. package/dist/src/features/analytics/api/analytics-api.js +0 -289
  570. package/dist/src/features/analytics/api/analytics-api.js.map +0 -1
  571. package/dist/src/features/analytics/core/analytics-service.d.ts +0 -29
  572. package/dist/src/features/analytics/core/analytics-service.d.ts.map +0 -1
  573. package/dist/src/features/analytics/core/analytics-service.js +0 -275
  574. package/dist/src/features/analytics/core/analytics-service.js.map +0 -1
  575. package/dist/src/features/analytics/index.d.ts +0 -12
  576. package/dist/src/features/analytics/index.d.ts.map +0 -1
  577. package/dist/src/features/analytics/index.js +0 -11
  578. package/dist/src/features/analytics/index.js.map +0 -1
  579. package/dist/src/features/analytics/queries/metrics-queries.d.ts +0 -11
  580. package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +0 -1
  581. package/dist/src/features/analytics/queries/metrics-queries.js +0 -240
  582. package/dist/src/features/analytics/queries/metrics-queries.js.map +0 -1
  583. package/dist/src/features/analytics/types/metrics.d.ts +0 -60
  584. package/dist/src/features/analytics/types/metrics.d.ts.map +0 -1
  585. package/dist/src/features/analytics/types/metrics.js +0 -2
  586. package/dist/src/features/analytics/types/metrics.js.map +0 -1
  587. package/dist/src/features/browser/browser-mcp.d.ts +0 -94
  588. package/dist/src/features/browser/browser-mcp.d.ts.map +0 -1
  589. package/dist/src/features/browser/browser-mcp.js +0 -459
  590. package/dist/src/features/browser/browser-mcp.js.map +0 -1
  591. package/dist/src/features/tasks/pebbles-task-store.d.ts +0 -128
  592. package/dist/src/features/tasks/pebbles-task-store.d.ts.map +0 -1
  593. package/dist/src/features/tasks/pebbles-task-store.js +0 -572
  594. package/dist/src/features/tasks/pebbles-task-store.js.map +0 -1
  595. package/dist/src/features/tasks/task-aware-context.d.ts +0 -103
  596. package/dist/src/features/tasks/task-aware-context.d.ts.map +0 -1
  597. package/dist/src/features/tasks/task-aware-context.js +0 -412
  598. package/dist/src/features/tasks/task-aware-context.js.map +0 -1
  599. package/dist/src/index.d.ts +0 -21
  600. package/dist/src/index.d.ts.map +0 -1
  601. package/dist/src/index.js +0 -9
  602. package/dist/src/index.js.map +0 -1
  603. package/dist/src/integrations/linear/auth.d.ts +0 -99
  604. package/dist/src/integrations/linear/auth.d.ts.map +0 -1
  605. package/dist/src/integrations/linear/auth.js +0 -319
  606. package/dist/src/integrations/linear/auth.js.map +0 -1
  607. package/dist/src/integrations/linear/auto-sync.d.ts +0 -77
  608. package/dist/src/integrations/linear/auto-sync.d.ts.map +0 -1
  609. package/dist/src/integrations/linear/auto-sync.js +0 -268
  610. package/dist/src/integrations/linear/auto-sync.js.map +0 -1
  611. package/dist/src/integrations/linear/client.d.ts +0 -127
  612. package/dist/src/integrations/linear/client.d.ts.map +0 -1
  613. package/dist/src/integrations/linear/client.js +0 -446
  614. package/dist/src/integrations/linear/client.js.map +0 -1
  615. package/dist/src/integrations/linear/config.d.ts +0 -51
  616. package/dist/src/integrations/linear/config.d.ts.map +0 -1
  617. package/dist/src/integrations/linear/config.js +0 -103
  618. package/dist/src/integrations/linear/config.js.map +0 -1
  619. package/dist/src/integrations/linear/sync-manager.d.ts +0 -78
  620. package/dist/src/integrations/linear/sync-manager.d.ts.map +0 -1
  621. package/dist/src/integrations/linear/sync-manager.js +0 -235
  622. package/dist/src/integrations/linear/sync-manager.js.map +0 -1
  623. package/dist/src/integrations/linear/sync-service.d.ts +0 -46
  624. package/dist/src/integrations/linear/sync-service.d.ts.map +0 -1
  625. package/dist/src/integrations/linear/sync-service.js +0 -217
  626. package/dist/src/integrations/linear/sync-service.js.map +0 -1
  627. package/dist/src/integrations/linear/sync.d.ts +0 -125
  628. package/dist/src/integrations/linear/sync.d.ts.map +0 -1
  629. package/dist/src/integrations/linear/sync.js +0 -563
  630. package/dist/src/integrations/linear/sync.js.map +0 -1
  631. package/dist/src/integrations/linear/types.d.ts +0 -90
  632. package/dist/src/integrations/linear/types.d.ts.map +0 -1
  633. package/dist/src/integrations/linear/types.js +0 -2
  634. package/dist/src/integrations/linear/types.js.map +0 -1
  635. package/dist/src/integrations/linear/webhook-server.d.ts +0 -32
  636. package/dist/src/integrations/linear/webhook-server.d.ts.map +0 -1
  637. package/dist/src/integrations/linear/webhook-server.js +0 -190
  638. package/dist/src/integrations/linear/webhook-server.js.map +0 -1
  639. package/dist/src/integrations/linear/webhook.d.ts +0 -108
  640. package/dist/src/integrations/linear/webhook.d.ts.map +0 -1
  641. package/dist/src/integrations/linear/webhook.js +0 -291
  642. package/dist/src/integrations/linear/webhook.js.map +0 -1
  643. package/dist/src/integrations/mcp/handlers/context-handlers.d.ts +0 -39
  644. package/dist/src/integrations/mcp/handlers/context-handlers.d.ts.map +0 -1
  645. package/dist/src/integrations/mcp/handlers/context-handlers.js +0 -266
  646. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +0 -1
  647. package/dist/src/integrations/mcp/handlers/index.d.ts +0 -37
  648. package/dist/src/integrations/mcp/handlers/index.d.ts.map +0 -1
  649. package/dist/src/integrations/mcp/handlers/index.js +0 -134
  650. package/dist/src/integrations/mcp/handlers/index.js.map +0 -1
  651. package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts +0 -33
  652. package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts.map +0 -1
  653. package/dist/src/integrations/mcp/handlers/linear-handlers.js +0 -251
  654. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +0 -1
  655. package/dist/src/integrations/mcp/handlers/task-handlers.d.ts +0 -42
  656. package/dist/src/integrations/mcp/handlers/task-handlers.d.ts.map +0 -1
  657. package/dist/src/integrations/mcp/handlers/task-handlers.js +0 -238
  658. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +0 -1
  659. package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts +0 -41
  660. package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts.map +0 -1
  661. package/dist/src/integrations/mcp/handlers/trace-handlers.js +0 -298
  662. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +0 -1
  663. package/dist/src/integrations/mcp/index.d.ts +0 -13
  664. package/dist/src/integrations/mcp/index.d.ts.map +0 -1
  665. package/dist/src/integrations/mcp/index.js +0 -17
  666. package/dist/src/integrations/mcp/index.js.map +0 -1
  667. package/dist/src/integrations/mcp/refactored-server.d.ts +0 -76
  668. package/dist/src/integrations/mcp/refactored-server.d.ts.map +0 -1
  669. package/dist/src/integrations/mcp/refactored-server.js +0 -351
  670. package/dist/src/integrations/mcp/refactored-server.js.map +0 -1
  671. package/dist/src/integrations/mcp/server.d.ts +0 -54
  672. package/dist/src/integrations/mcp/server.d.ts.map +0 -1
  673. package/dist/src/integrations/mcp/server.js +0 -1616
  674. package/dist/src/integrations/mcp/server.js.map +0 -1
  675. package/dist/src/integrations/mcp/tool-definitions.d.ts +0 -44
  676. package/dist/src/integrations/mcp/tool-definitions.d.ts.map +0 -1
  677. package/dist/src/integrations/mcp/tool-definitions.js +0 -563
  678. package/dist/src/integrations/mcp/tool-definitions.js.map +0 -1
  679. package/dist/src/integrations/mcp/trace-test.d.ts +0 -5
  680. package/dist/src/integrations/mcp/trace-test.d.ts.map +0 -1
  681. package/dist/src/integrations/mcp/trace-test.js +0 -54
  682. package/dist/src/integrations/mcp/trace-test.js.map +0 -1
  683. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts +0 -48
  684. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +0 -1
  685. package/dist/src/integrations/pg-aiguide/embedding-provider.js +0 -190
  686. package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +0 -1
  687. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +0 -34
  688. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +0 -1
  689. package/dist/src/integrations/pg-aiguide/semantic-search.js +0 -176
  690. package/dist/src/integrations/pg-aiguide/semantic-search.js.map +0 -1
  691. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +0 -44
  692. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +0 -1
  693. package/dist/src/integrations/pg-aiguide/timescale-analytics.js +0 -215
  694. package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +0 -1
  695. package/dist/src/mcp/stackmemory-mcp-server.d.ts +0 -9
  696. package/dist/src/mcp/stackmemory-mcp-server.d.ts.map +0 -1
  697. package/dist/src/mcp/stackmemory-mcp-server.js +0 -519
  698. package/dist/src/mcp/stackmemory-mcp-server.js.map +0 -1
  699. package/dist/src/middleware/exponential-rate-limiter.d.ts +0 -78
  700. package/dist/src/middleware/exponential-rate-limiter.d.ts.map +0 -1
  701. package/dist/src/middleware/exponential-rate-limiter.js +0 -293
  702. package/dist/src/middleware/exponential-rate-limiter.js.map +0 -1
  703. package/dist/src/models/user.model.d.ts +0 -62
  704. package/dist/src/models/user.model.d.ts.map +0 -1
  705. package/dist/src/models/user.model.js +0 -311
  706. package/dist/src/models/user.model.js.map +0 -1
  707. package/dist/src/servers/production/auth-middleware.d.ts +0 -76
  708. package/dist/src/servers/production/auth-middleware.d.ts.map +0 -1
  709. package/dist/src/servers/production/auth-middleware.js +0 -558
  710. package/dist/src/servers/production/auth-middleware.js.map +0 -1
  711. package/dist/src/servers/railway/index.d.ts +0 -7
  712. package/dist/src/servers/railway/index.d.ts.map +0 -1
  713. package/dist/src/servers/railway/index.js +0 -401
  714. package/dist/src/servers/railway/index.js.map +0 -1
  715. package/dist/src/services/config-service.d.ts +0 -44
  716. package/dist/src/services/config-service.d.ts.map +0 -1
  717. package/dist/src/services/config-service.js +0 -61
  718. package/dist/src/services/config-service.js.map +0 -1
  719. package/dist/src/services/context-service.d.ts +0 -17
  720. package/dist/src/services/context-service.d.ts.map +0 -1
  721. package/dist/src/services/context-service.js +0 -173
  722. package/dist/src/services/context-service.js.map +0 -1
  723. package/dist/src/types/task.d.ts +0 -27
  724. package/dist/src/types/task.d.ts.map +0 -1
  725. package/dist/src/types/task.js +0 -2
  726. package/dist/src/types/task.js.map +0 -1
  727. package/dist/src/utils/logger.d.ts +0 -13
  728. package/dist/src/utils/logger.d.ts.map +0 -1
  729. package/dist/src/utils/logger.js +0 -52
  730. package/dist/src/utils/logger.js.map +0 -1
  731. package/dist/src/validation/schemas.d.ts +0 -633
  732. package/dist/src/validation/schemas.d.ts.map +0 -1
  733. package/dist/src/validation/schemas.js +0 -347
  734. package/dist/src/validation/schemas.js.map +0 -1
@@ -1,798 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
- import Database from "better-sqlite3";
4
- import LocalStackMemoryMCP from "../server.js";
5
- import { join } from "path";
6
- import { mkdtempSync, rmSync, writeFileSync, existsSync, mkdirSync } from "fs";
7
- import { tmpdir } from "os";
8
- let mockServerInstance = null;
9
- vi.mock("@modelcontextprotocol/sdk/server/index.js", () => {
10
- const MockServer = vi.fn().mockImplementation(function() {
11
- if (mockServerInstance) {
12
- Object.assign(this, mockServerInstance);
13
- } else {
14
- this.setRequestHandler = vi.fn();
15
- this.connect = vi.fn();
16
- }
17
- return this;
18
- });
19
- return { Server: MockServer };
20
- });
21
- vi.mock("@modelcontextprotocol/sdk/server/stdio.js", () => ({
22
- StdioServerTransport: vi.fn()
23
- }));
24
- vi.mock("child_process", () => ({
25
- execSync: vi.fn(() => Buffer.from("mocked git output"))
26
- }));
27
- vi.mock("../../features/browser/browser-mcp.js", () => ({
28
- BrowserMCPIntegration: vi.fn().mockImplementation(() => ({
29
- initialize: vi.fn().mockResolvedValue(void 0)
30
- }))
31
- }));
32
- vi.mock("../../integrations/linear/auth.js", async () => {
33
- const actual = await vi.importActual("../../integrations/linear/auth.js");
34
- return {
35
- ...actual,
36
- LinearAuthManager: vi.fn().mockImplementation(() => ({
37
- loadTokens: vi.fn(),
38
- isConfigured: vi.fn(() => false)
39
- }))
40
- };
41
- });
42
- vi.mock("../../integrations/linear/client.js", async () => {
43
- const actual = await vi.importActual("../../integrations/linear/client.js");
44
- return {
45
- ...actual,
46
- LinearClient: vi.fn().mockImplementation(() => ({
47
- getIssue: vi.fn(),
48
- findIssueByIdentifier: vi.fn(),
49
- updateIssue: vi.fn(),
50
- getTeam: vi.fn(),
51
- getWorkflowStates: vi.fn(),
52
- getViewer: vi.fn(),
53
- getIssues: vi.fn()
54
- }))
55
- };
56
- });
57
- vi.mock("../../integrations/linear/sync.js", async () => {
58
- const actual = await vi.importActual("../../integrations/linear/sync.js");
59
- return {
60
- ...actual,
61
- LinearSyncEngine: vi.fn().mockImplementation(() => ({
62
- sync: vi.fn()
63
- })),
64
- DEFAULT_SYNC_CONFIG: {
65
- enabled: true,
66
- direction: "bidirectional",
67
- conflictResolution: "newest_wins"
68
- }
69
- };
70
- });
71
- describe("LocalStackMemoryMCP", () => {
72
- let tempDir;
73
- let mcpServer;
74
- let mockServer;
75
- let originalCwd;
76
- let originalArgv;
77
- beforeEach(() => {
78
- tempDir = mkdtempSync(join(tmpdir(), "stackmemory-mcp-test-"));
79
- originalCwd = process.cwd();
80
- originalArgv = [...process.argv];
81
- const gitDir = join(tempDir, ".git");
82
- mkdirSync(gitDir, { recursive: true });
83
- writeFileSync(
84
- join(gitDir, "config"),
85
- "[core]\n repositoryformatversion = 0"
86
- );
87
- writeFileSync(
88
- join(tempDir, "package.json"),
89
- JSON.stringify({
90
- name: "test-project",
91
- version: "1.0.0"
92
- })
93
- );
94
- vi.spyOn(process, "cwd").mockReturnValue(tempDir);
95
- mockServer = {
96
- setRequestHandler: vi.fn(),
97
- connect: vi.fn()
98
- };
99
- mockServerInstance = mockServer;
100
- });
101
- afterEach(() => {
102
- if (mcpServer) {
103
- }
104
- vi.spyOn(process, "cwd").mockRestore();
105
- process.argv = originalArgv;
106
- if (tempDir) {
107
- rmSync(tempDir, { recursive: true, force: true });
108
- }
109
- vi.clearAllMocks();
110
- });
111
- describe("Initialization", () => {
112
- it("should initialize server with correct project detection", () => {
113
- mcpServer = new LocalStackMemoryMCP();
114
- expect(Server).toHaveBeenCalledWith(
115
- {
116
- name: "stackmemory-local",
117
- version: "0.1.0"
118
- },
119
- {
120
- capabilities: {
121
- tools: {}
122
- }
123
- }
124
- );
125
- });
126
- it("should create .stackmemory directory if it does not exist", () => {
127
- mcpServer = new LocalStackMemoryMCP();
128
- const stackmemoryDir = join(tempDir, ".stackmemory");
129
- expect(existsSync(stackmemoryDir)).toBe(true);
130
- });
131
- it("should initialize database and frame manager", () => {
132
- mcpServer = new LocalStackMemoryMCP();
133
- const dbPath = join(tempDir, ".stackmemory", "context.db");
134
- expect(existsSync(dbPath)).toBe(true);
135
- });
136
- it("should handle missing .git directory gracefully", () => {
137
- rmSync(join(tempDir, ".git"), { recursive: true });
138
- expect(() => {
139
- mcpServer = new LocalStackMemoryMCP();
140
- }).not.toThrow();
141
- });
142
- it("should setup tool handlers correctly", () => {
143
- mockServer.setRequestHandler.mockClear();
144
- mcpServer = new LocalStackMemoryMCP();
145
- expect(
146
- mockServer.setRequestHandler.mock.calls.length
147
- ).toBeGreaterThanOrEqual(2);
148
- const toolsListCall = mockServer.setRequestHandler.mock.calls.find(
149
- (call) => {
150
- try {
151
- return call[0].parse({ method: "tools/list" }).method === "tools/list";
152
- } catch {
153
- return false;
154
- }
155
- }
156
- );
157
- expect(toolsListCall).toBeDefined();
158
- const toolsCallCall = mockServer.setRequestHandler.mock.calls.find(
159
- (call) => {
160
- try {
161
- return call[0].parse({
162
- method: "tools/call",
163
- params: { name: "test", arguments: {} }
164
- }).method === "tools/call";
165
- } catch {
166
- return false;
167
- }
168
- }
169
- );
170
- expect(toolsCallCall).toBeDefined();
171
- });
172
- });
173
- describe("Tool Listing", () => {
174
- beforeEach(() => {
175
- mcpServer = new LocalStackMemoryMCP();
176
- });
177
- it("should list all available tools", async () => {
178
- const toolsListHandler = mockServer.setRequestHandler.mock.calls[0][1];
179
- const result = await toolsListHandler({ method: "tools/list" });
180
- expect(result.tools).toBeDefined();
181
- expect(Array.isArray(result.tools)).toBe(true);
182
- expect(result.tools.length).toBeGreaterThan(0);
183
- const toolNames = result.tools.map((tool) => tool.name);
184
- expect(toolNames).toContain("get_context");
185
- expect(toolNames).toContain("add_decision");
186
- expect(toolNames).toContain("start_frame");
187
- expect(toolNames).toContain("close_frame");
188
- expect(toolNames).toContain("add_anchor");
189
- expect(toolNames).toContain("get_hot_stack");
190
- expect(toolNames).toContain("create_task");
191
- expect(toolNames).toContain("update_task_status");
192
- expect(toolNames).toContain("get_active_tasks");
193
- });
194
- it("should include Linear integration tools", async () => {
195
- const toolsListHandler = mockServer.setRequestHandler.mock.calls[0][1];
196
- const result = await toolsListHandler({ method: "tools/list" });
197
- const toolNames = result.tools.map((tool) => tool.name);
198
- expect(toolNames).toContain("linear_sync");
199
- expect(toolNames).toContain("linear_update_task");
200
- expect(toolNames).toContain("linear_get_tasks");
201
- expect(toolNames).toContain("linear_status");
202
- });
203
- it("should include proper tool schemas", async () => {
204
- const toolsListHandler = mockServer.setRequestHandler.mock.calls[0][1];
205
- const result = await toolsListHandler({ method: "tools/list" });
206
- const getContextTool = result.tools.find(
207
- (tool) => tool.name === "get_context"
208
- );
209
- expect(getContextTool).toBeDefined();
210
- expect(getContextTool.description).toBeDefined();
211
- expect(getContextTool.inputSchema).toBeDefined();
212
- expect(getContextTool.inputSchema.type).toBe("object");
213
- expect(getContextTool.inputSchema.properties).toBeDefined();
214
- const startFrameTool = result.tools.find(
215
- (tool) => tool.name === "start_frame"
216
- );
217
- expect(startFrameTool.inputSchema.required).toContain("name");
218
- expect(startFrameTool.inputSchema.required).toContain("type");
219
- });
220
- });
221
- describe("Tool Execution - Context Management", () => {
222
- let toolsCallHandler;
223
- beforeEach(() => {
224
- mockServer.setRequestHandler.mockClear();
225
- mcpServer = new LocalStackMemoryMCP();
226
- toolsCallHandler = mockServer.setRequestHandler.mock.calls[1][1];
227
- });
228
- it("should handle get_context tool", async () => {
229
- const result = await toolsCallHandler({
230
- method: "tools/call",
231
- params: {
232
- name: "get_context",
233
- arguments: { query: "test", limit: 5 }
234
- }
235
- });
236
- expect(result.content).toBeDefined();
237
- expect(Array.isArray(result.content)).toBe(true);
238
- expect(result.content[0].type).toBe("text");
239
- });
240
- it("should handle add_decision tool", async () => {
241
- const result = await toolsCallHandler({
242
- method: "tools/call",
243
- params: {
244
- name: "add_decision",
245
- arguments: { content: "Test decision", type: "decision" }
246
- }
247
- });
248
- expect(result.content).toBeDefined();
249
- expect(result.content[0].text).toContain("Added decision");
250
- expect(result.content[0].text).toContain("Test decision");
251
- });
252
- it("should handle start_frame tool", async () => {
253
- const result = await toolsCallHandler({
254
- method: "tools/call",
255
- params: {
256
- name: "start_frame",
257
- arguments: {
258
- name: "Test Frame",
259
- type: "task",
260
- constraints: ["constraint1", "constraint2"]
261
- }
262
- }
263
- });
264
- expect(result.content).toBeDefined();
265
- expect(result.content[0].text).toContain("Started task");
266
- expect(result.content[0].text).toContain("Test Frame");
267
- expect(result.content[0].text).toContain("Frame ID:");
268
- expect(result.content[0].text).toContain("Stack depth:");
269
- });
270
- it("should handle close_frame tool", async () => {
271
- await toolsCallHandler({
272
- method: "tools/call",
273
- params: {
274
- name: "start_frame",
275
- arguments: { name: "Test Frame", type: "task" }
276
- }
277
- });
278
- const result = await toolsCallHandler({
279
- method: "tools/call",
280
- params: {
281
- name: "close_frame",
282
- arguments: {
283
- result: "Completed successfully",
284
- outputs: { key: "value" }
285
- }
286
- }
287
- });
288
- expect(result.content).toBeDefined();
289
- expect(result.content[0].text).toContain("Closed frame");
290
- expect(result.content[0].text).toContain("Completed successfully");
291
- });
292
- it("should handle close_frame with no active frame", async () => {
293
- const result = await toolsCallHandler({
294
- method: "tools/call",
295
- params: {
296
- name: "close_frame",
297
- arguments: { result: "Test" }
298
- }
299
- });
300
- expect(result.content[0].text).toContain("No active frame to close");
301
- });
302
- it("should handle add_anchor tool", async () => {
303
- await toolsCallHandler({
304
- method: "tools/call",
305
- params: {
306
- name: "start_frame",
307
- arguments: { name: "Test Frame", type: "task" }
308
- }
309
- });
310
- const result = await toolsCallHandler({
311
- method: "tools/call",
312
- params: {
313
- name: "add_anchor",
314
- arguments: {
315
- type: "FACT",
316
- text: "Important fact",
317
- priority: 9
318
- }
319
- }
320
- });
321
- expect(result.content[0].text).toContain("Added FACT");
322
- expect(result.content[0].text).toContain("Important fact");
323
- expect(result.content[0].text).toContain("Anchor ID:");
324
- });
325
- it("should handle get_hot_stack tool", async () => {
326
- await toolsCallHandler({
327
- method: "tools/call",
328
- params: {
329
- name: "start_frame",
330
- arguments: { name: "Root Frame", type: "task" }
331
- }
332
- });
333
- await toolsCallHandler({
334
- method: "tools/call",
335
- params: {
336
- name: "start_frame",
337
- arguments: { name: "Child Frame", type: "subtask" }
338
- }
339
- });
340
- const result = await toolsCallHandler({
341
- method: "tools/call",
342
- params: {
343
- name: "get_hot_stack",
344
- arguments: { maxEvents: 10 }
345
- }
346
- });
347
- expect(result.content[0].text).toContain("Active Call Stack");
348
- expect(result.content[0].text).toContain("Root Frame");
349
- expect(result.content[0].text).toContain("Child Frame");
350
- expect(result.content[0].text).toContain("Total stack depth");
351
- });
352
- it("should handle get_hot_stack with no active frames", async () => {
353
- const result = await toolsCallHandler({
354
- method: "tools/call",
355
- params: {
356
- name: "get_hot_stack",
357
- arguments: {}
358
- }
359
- });
360
- expect(result.content[0].text).toContain("No active frames");
361
- });
362
- });
363
- describe("Tool Execution - Task Management", () => {
364
- let toolsCallHandler;
365
- beforeEach(async () => {
366
- mockServer.setRequestHandler.mockClear();
367
- mcpServer = new LocalStackMemoryMCP();
368
- toolsCallHandler = mockServer.setRequestHandler.mock.calls[1][1];
369
- await toolsCallHandler({
370
- method: "tools/call",
371
- params: {
372
- name: "start_frame",
373
- arguments: { name: "Task Frame", type: "task" }
374
- }
375
- });
376
- });
377
- it("should handle create_task tool", async () => {
378
- const result = await toolsCallHandler({
379
- method: "tools/call",
380
- params: {
381
- name: "create_task",
382
- arguments: {
383
- title: "Test Task",
384
- description: "A test task",
385
- priority: "high",
386
- estimatedEffort: 120,
387
- tags: ["test", "urgent"]
388
- }
389
- }
390
- });
391
- expect(result.content[0].text).toContain("Created task");
392
- expect(result.content[0].text).toContain("Test Task");
393
- expect(result.content[0].text).toContain("ID:");
394
- expect(result.content[0].text).toContain("tasks.jsonl");
395
- });
396
- it("should handle create_task without active frame", async () => {
397
- await new Promise((resolve) => setTimeout(resolve, 10));
398
- try {
399
- await toolsCallHandler({
400
- method: "tools/call",
401
- params: {
402
- name: "close_frame",
403
- arguments: { result: "closed" }
404
- }
405
- });
406
- } catch {
407
- }
408
- mockServer.setRequestHandler.mockClear();
409
- mcpServer = new LocalStackMemoryMCP();
410
- const freshToolsHandler = mockServer.setRequestHandler.mock.calls[1][1];
411
- const result = await freshToolsHandler({
412
- method: "tools/call",
413
- params: {
414
- name: "create_task",
415
- arguments: { title: "No Frame Task" }
416
- }
417
- });
418
- expect(result.content[0].text).toContain("No active frame");
419
- });
420
- it("should handle update_task_status tool", async () => {
421
- const createResult = await toolsCallHandler({
422
- method: "tools/call",
423
- params: {
424
- name: "create_task",
425
- arguments: { title: "Update Test Task" }
426
- }
427
- });
428
- const taskIdMatch = createResult.content[0].text.match(
429
- /ID: (tsk-[a-f0-9]{8})/
430
- );
431
- expect(taskIdMatch).toBeTruthy();
432
- const taskId = taskIdMatch[1];
433
- const result = await toolsCallHandler({
434
- method: "tools/call",
435
- params: {
436
- name: "update_task_status",
437
- arguments: {
438
- taskId,
439
- status: "in_progress",
440
- reason: "Starting work"
441
- }
442
- }
443
- });
444
- expect(result.content[0].text).toContain("Updated task");
445
- expect(result.content[0].text).toContain("in_progress");
446
- expect(result.content[0].text).toContain("Starting work");
447
- });
448
- it("should handle update_task_status with invalid task", async () => {
449
- const result = await toolsCallHandler({
450
- method: "tools/call",
451
- params: {
452
- name: "update_task_status",
453
- arguments: {
454
- taskId: "invalid-task-id",
455
- status: "completed"
456
- }
457
- }
458
- });
459
- expect(result.content[0].text).toContain("Failed to update task");
460
- });
461
- it("should handle get_active_tasks tool", async () => {
462
- await toolsCallHandler({
463
- method: "tools/call",
464
- params: {
465
- name: "create_task",
466
- arguments: { title: "Active Task 1", priority: "high" }
467
- }
468
- });
469
- await toolsCallHandler({
470
- method: "tools/call",
471
- params: {
472
- name: "create_task",
473
- arguments: { title: "Active Task 2", priority: "low" }
474
- }
475
- });
476
- const result = await toolsCallHandler({
477
- method: "tools/call",
478
- params: {
479
- name: "get_active_tasks",
480
- arguments: {}
481
- }
482
- });
483
- expect(result.content[0].text).toContain("Tasks");
484
- expect(result.content[0].text).toContain("Active Task 1");
485
- expect(result.content[0].text).toContain("Active Task 2");
486
- });
487
- it("should handle get_active_tasks with no tasks", async () => {
488
- const result = await toolsCallHandler({
489
- method: "tools/call",
490
- params: {
491
- name: "get_active_tasks",
492
- arguments: {}
493
- }
494
- });
495
- expect(result.content[0].text).toContain("No active tasks");
496
- });
497
- it("should handle get_task_metrics tool", async () => {
498
- const taskId1 = await toolsCallHandler({
499
- method: "tools/call",
500
- params: {
501
- name: "create_task",
502
- arguments: { title: "Metrics Task 1" }
503
- }
504
- });
505
- const result = await toolsCallHandler({
506
- method: "tools/call",
507
- params: {
508
- name: "get_task_metrics",
509
- arguments: {}
510
- }
511
- });
512
- expect(result.content[0].text).toContain("Task Metrics");
513
- expect(result.content[0].text).toContain("Total Tasks");
514
- expect(result.content[0].text).toContain("Completion Rate");
515
- expect(result.content[0].text).toContain("By Status");
516
- expect(result.content[0].text).toContain("By Priority");
517
- });
518
- it("should handle add_task_dependency tool", async () => {
519
- const task1Result = await toolsCallHandler({
520
- method: "tools/call",
521
- params: {
522
- name: "create_task",
523
- arguments: { title: "Dependency Task" }
524
- }
525
- });
526
- const task2Result = await toolsCallHandler({
527
- method: "tools/call",
528
- params: {
529
- name: "create_task",
530
- arguments: { title: "Dependent Task" }
531
- }
532
- });
533
- const task1Id = task1Result.content[0].text.match(
534
- /ID: (tsk-[a-f0-9]{8})/
535
- )[1];
536
- const task2Id = task2Result.content[0].text.match(
537
- /ID: (tsk-[a-f0-9]{8})/
538
- )[1];
539
- const result = await toolsCallHandler({
540
- method: "tools/call",
541
- params: {
542
- name: "add_task_dependency",
543
- arguments: {
544
- taskId: task2Id,
545
- dependsOnId: task1Id
546
- }
547
- }
548
- });
549
- expect(result.content[0].text).toContain("Added dependency");
550
- expect(result.content[0].text).toContain(task2Id);
551
- expect(result.content[0].text).toContain(task1Id);
552
- });
553
- });
554
- describe("Tool Execution - Linear Integration", () => {
555
- let toolsCallHandler;
556
- beforeEach(() => {
557
- mcpServer = new LocalStackMemoryMCP();
558
- toolsCallHandler = mockServer.setRequestHandler.mock.calls[1][1];
559
- });
560
- it("should handle linear_status tool when not configured", async () => {
561
- const result = await toolsCallHandler({
562
- method: "tools/call",
563
- params: {
564
- name: "linear_status",
565
- arguments: {}
566
- }
567
- });
568
- expect(result.content[0].text).toContain(
569
- "Linear integration not configured"
570
- );
571
- expect(result.content[0].text).toContain("stackmemory linear setup");
572
- });
573
- it("should handle linear_sync tool when not authenticated", async () => {
574
- const result = await toolsCallHandler({
575
- method: "tools/call",
576
- params: {
577
- name: "linear_sync",
578
- arguments: { direction: "bidirectional" }
579
- }
580
- });
581
- expect(result.content[0].text).toContain("Linear not authenticated");
582
- });
583
- it("should handle linear_update_task when not authenticated", async () => {
584
- const result = await toolsCallHandler({
585
- method: "tools/call",
586
- params: {
587
- name: "linear_update_task",
588
- arguments: { issueId: "STA-123", status: "done" }
589
- }
590
- });
591
- expect(result.content[0].text).toContain("Linear not authenticated");
592
- });
593
- it("should handle linear_get_tasks when not authenticated", async () => {
594
- const result = await toolsCallHandler({
595
- method: "tools/call",
596
- params: {
597
- name: "linear_get_tasks",
598
- arguments: { status: "todo", limit: 10 }
599
- }
600
- });
601
- expect(result.content[0].text).toContain("Linear not authenticated");
602
- });
603
- it("should handle linear integration errors gracefully", async () => {
604
- const result = await toolsCallHandler({
605
- method: "tools/call",
606
- params: {
607
- name: "linear_status",
608
- arguments: {}
609
- }
610
- });
611
- expect(result.content[0].text).toContain("Linear");
612
- });
613
- });
614
- describe("Error Handling", () => {
615
- let toolsCallHandler;
616
- beforeEach(() => {
617
- mcpServer = new LocalStackMemoryMCP();
618
- toolsCallHandler = mockServer.setRequestHandler.mock.calls[1][1];
619
- });
620
- it("should handle unknown tool calls", async () => {
621
- await expect(
622
- toolsCallHandler({
623
- method: "tools/call",
624
- params: {
625
- name: "unknown_tool",
626
- arguments: {}
627
- }
628
- })
629
- ).rejects.toThrow("Unknown tool: unknown_tool");
630
- });
631
- it("should handle malformed tool arguments gracefully", async () => {
632
- await toolsCallHandler({
633
- method: "tools/call",
634
- params: {
635
- name: "start_frame",
636
- arguments: { name: "Test Frame", type: "task" }
637
- }
638
- });
639
- const result = await toolsCallHandler({
640
- method: "tools/call",
641
- params: {
642
- name: "update_task_status",
643
- arguments: { taskId: "non-existent-task", status: "in_progress" }
644
- }
645
- });
646
- expect(result).toBeDefined();
647
- });
648
- it("should maintain error context in responses", async () => {
649
- await toolsCallHandler({
650
- method: "tools/call",
651
- params: {
652
- name: "start_frame",
653
- arguments: { name: "Test Frame", type: "task" }
654
- }
655
- });
656
- const result = await toolsCallHandler({
657
- method: "tools/call",
658
- params: {
659
- name: "add_anchor",
660
- arguments: {
661
- type: "FACT",
662
- text: "Test fact"
663
- }
664
- }
665
- });
666
- expect(result).toBeDefined();
667
- expect(result.content[0].text).toContain("Added");
668
- });
669
- });
670
- describe("Project Detection and Context Loading", () => {
671
- it("should detect git repository information", () => {
672
- mcpServer = new LocalStackMemoryMCP();
673
- expect(mcpServer).toBeDefined();
674
- });
675
- it("should handle missing git repository gracefully", () => {
676
- expect(() => {
677
- mcpServer = new LocalStackMemoryMCP();
678
- }).not.toThrow();
679
- });
680
- it("should load README.md if present", () => {
681
- const readmePath = join(tempDir, "README.md");
682
- writeFileSync(
683
- readmePath,
684
- "# Test Project\n\nThis is a test project for MCP server testing."
685
- );
686
- mcpServer = new LocalStackMemoryMCP();
687
- expect(existsSync(readmePath)).toBe(true);
688
- });
689
- it("should handle missing README.md gracefully", () => {
690
- const readmePath = join(tempDir, "README.md");
691
- if (existsSync(readmePath)) {
692
- rmSync(readmePath);
693
- }
694
- expect(() => {
695
- mcpServer = new LocalStackMemoryMCP();
696
- }).not.toThrow();
697
- });
698
- });
699
- describe("Database Schema and Persistence", () => {
700
- beforeEach(() => {
701
- mcpServer = new LocalStackMemoryMCP();
702
- });
703
- it("should create required database tables", () => {
704
- const dbPath = join(tempDir, ".stackmemory", "context.db");
705
- const db = new Database(dbPath);
706
- const tables = db.prepare(
707
- `
708
- SELECT name FROM sqlite_master
709
- WHERE type='table' AND name IN ('contexts', 'frames', 'attention_log')
710
- `
711
- ).all();
712
- expect(tables).toHaveLength(3);
713
- db.close();
714
- });
715
- it("should handle database initialization errors gracefully", () => {
716
- expect(() => {
717
- mcpServer = new LocalStackMemoryMCP();
718
- }).not.toThrow();
719
- });
720
- });
721
- describe("Server Lifecycle", () => {
722
- it("should start server successfully", async () => {
723
- mcpServer = new LocalStackMemoryMCP();
724
- const mockTransport = { connect: vi.fn() };
725
- vi.doMock("@modelcontextprotocol/sdk/server/stdio.js", () => ({
726
- StdioServerTransport: vi.fn(() => mockTransport)
727
- }));
728
- mockServer.connect.mockResolvedValue(void 0);
729
- await expect(mcpServer.start()).resolves.not.toThrow();
730
- expect(mockServer.connect).toHaveBeenCalled();
731
- });
732
- it("should handle server start errors", async () => {
733
- mcpServer = new LocalStackMemoryMCP();
734
- mockServer.connect.mockRejectedValue(new Error("Connection failed"));
735
- await expect(mcpServer.start()).rejects.toThrow("Connection failed");
736
- });
737
- });
738
- describe("Integration with Framework Components", () => {
739
- let toolsCallHandler;
740
- beforeEach(() => {
741
- mockServer.setRequestHandler.mockClear();
742
- mcpServer = new LocalStackMemoryMCP();
743
- toolsCallHandler = mockServer.setRequestHandler.mock.calls[1][1];
744
- });
745
- it("should integrate frame manager operations", async () => {
746
- const startResult = await toolsCallHandler({
747
- method: "tools/call",
748
- params: {
749
- name: "start_frame",
750
- arguments: { name: "Integration Test", type: "task" }
751
- }
752
- });
753
- expect(startResult.content[0].text).toContain("Started");
754
- const hotStackResult = await toolsCallHandler({
755
- method: "tools/call",
756
- params: {
757
- name: "get_hot_stack",
758
- arguments: {}
759
- }
760
- });
761
- expect(hotStackResult.content[0].text).toContain("Integration Test");
762
- const closeResult = await toolsCallHandler({
763
- method: "tools/call",
764
- params: {
765
- name: "close_frame",
766
- arguments: { result: "Integration complete" }
767
- }
768
- });
769
- expect(closeResult.content[0].text).toContain("Closed frame");
770
- });
771
- it("should integrate task store operations", async () => {
772
- await toolsCallHandler({
773
- method: "tools/call",
774
- params: {
775
- name: "start_frame",
776
- arguments: { name: "Task Integration", type: "task" }
777
- }
778
- });
779
- const createResult = await toolsCallHandler({
780
- method: "tools/call",
781
- params: {
782
- name: "create_task",
783
- arguments: { title: "Integration Task" }
784
- }
785
- });
786
- expect(createResult.content[0].text).toContain("Created task");
787
- const activeResult = await toolsCallHandler({
788
- method: "tools/call",
789
- params: {
790
- name: "get_active_tasks",
791
- arguments: {}
792
- }
793
- });
794
- expect(activeResult.content[0].text).toContain("Integration Task");
795
- });
796
- });
797
- });
798
- //# sourceMappingURL=server.test.js.map