@stackmemoryai/stackmemory 0.3.1 → 0.3.5

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 (744) hide show
  1. package/README.md +69 -288
  2. package/dist/cli/commands/chromadb.js +267 -0
  3. package/dist/cli/commands/chromadb.js.map +7 -0
  4. package/dist/cli/commands/clear.js +191 -0
  5. package/dist/cli/commands/clear.js.map +7 -0
  6. package/dist/cli/commands/config.js +152 -1
  7. package/dist/cli/commands/config.js.map +2 -2
  8. package/dist/cli/commands/context.js +15 -5
  9. package/dist/cli/commands/context.js.map +2 -2
  10. package/dist/cli/commands/dashboard.js +178 -0
  11. package/dist/cli/commands/dashboard.js.map +7 -0
  12. package/dist/cli/commands/handoff.js +125 -8
  13. package/dist/cli/commands/handoff.js.map +2 -2
  14. package/dist/cli/commands/linear-create.js +132 -0
  15. package/dist/cli/commands/linear-create.js.map +7 -0
  16. package/dist/cli/commands/linear-list.js +69 -0
  17. package/dist/cli/commands/linear-list.js.map +7 -0
  18. package/dist/cli/commands/linear-migrate.js +40 -0
  19. package/dist/cli/commands/linear-migrate.js.map +7 -0
  20. package/dist/cli/commands/linear.js +185 -36
  21. package/dist/cli/commands/linear.js.map +2 -2
  22. package/dist/cli/commands/monitor.js +309 -0
  23. package/dist/cli/commands/monitor.js.map +7 -0
  24. package/dist/cli/commands/quality.js +414 -0
  25. package/dist/cli/commands/quality.js.map +7 -0
  26. package/dist/cli/commands/skills.js +262 -0
  27. package/dist/cli/commands/skills.js.map +7 -0
  28. package/dist/cli/commands/storage.js +275 -0
  29. package/dist/cli/commands/storage.js.map +7 -0
  30. package/dist/cli/commands/tui.js +66 -0
  31. package/dist/cli/commands/tui.js.map +7 -0
  32. package/dist/cli/commands/workflow.js +134 -0
  33. package/dist/cli/commands/workflow.js.map +7 -0
  34. package/dist/cli/index.js +109 -8
  35. package/dist/cli/index.js.map +3 -3
  36. package/dist/core/analytics/team-analytics.js +374 -0
  37. package/dist/core/analytics/team-analytics.js.map +7 -0
  38. package/dist/core/context/context-bridge.js +234 -0
  39. package/dist/core/context/context-bridge.js.map +7 -0
  40. package/dist/core/context/dual-stack-manager.js +850 -0
  41. package/dist/core/context/dual-stack-manager.js.map +7 -0
  42. package/dist/core/context/frame-handoff-manager.js +774 -0
  43. package/dist/core/context/frame-handoff-manager.js.map +7 -0
  44. package/dist/core/context/frame-manager.js +142 -13
  45. package/dist/core/context/frame-manager.js.map +2 -2
  46. package/dist/core/context/permission-manager.js +181 -0
  47. package/dist/core/context/permission-manager.js.map +7 -0
  48. package/dist/core/context/shared-context-layer.js +386 -0
  49. package/dist/core/context/shared-context-layer.js.map +7 -0
  50. package/dist/core/context/stack-merge-resolver.js +600 -0
  51. package/dist/core/context/stack-merge-resolver.js.map +7 -0
  52. package/dist/core/context/validation.js +121 -0
  53. package/dist/core/context/validation.js.map +7 -0
  54. package/dist/core/database/connection-pool.js +266 -175
  55. package/dist/core/database/connection-pool.js.map +2 -2
  56. package/dist/core/database/database-adapter.js +51 -0
  57. package/dist/core/database/database-adapter.js.map +7 -0
  58. package/dist/core/database/migration-manager.js +514 -0
  59. package/dist/core/database/migration-manager.js.map +7 -0
  60. package/dist/core/database/paradedb-adapter.js +970 -0
  61. package/dist/core/database/paradedb-adapter.js.map +7 -0
  62. package/dist/core/database/query-router.js +421 -0
  63. package/dist/core/database/query-router.js.map +7 -0
  64. package/dist/core/database/sqlite-adapter.js +547 -0
  65. package/dist/core/database/sqlite-adapter.js.map +7 -0
  66. package/dist/core/errors/index.js +21 -1
  67. package/dist/core/errors/index.js.map +2 -2
  68. package/dist/core/frame/workflow-templates-stub.js +42 -0
  69. package/dist/core/frame/workflow-templates-stub.js.map +7 -0
  70. package/dist/core/frame/workflow-templates.js +276 -0
  71. package/dist/core/frame/workflow-templates.js.map +7 -0
  72. package/dist/core/merge/conflict-detector.js +5 -2
  73. package/dist/core/merge/conflict-detector.js.map +2 -2
  74. package/dist/core/merge/resolution-engine.js +3 -14
  75. package/dist/core/merge/resolution-engine.js.map +2 -2
  76. package/dist/core/merge/stack-diff.js.map +2 -2
  77. package/dist/core/monitoring/logger.js +18 -3
  78. package/dist/core/monitoring/logger.js.map +2 -2
  79. package/dist/core/monitoring/session-monitor.js +296 -0
  80. package/dist/core/monitoring/session-monitor.js.map +7 -0
  81. package/dist/core/retrieval/context-retriever.js +475 -0
  82. package/dist/core/retrieval/context-retriever.js.map +7 -0
  83. package/dist/core/retrieval/graph-retrieval.js +658 -0
  84. package/dist/core/retrieval/graph-retrieval.js.map +7 -0
  85. package/dist/core/retrieval/hierarchical-retrieval.js +652 -0
  86. package/dist/core/retrieval/hierarchical-retrieval.js.map +7 -0
  87. package/dist/core/retrieval/retrieval-benchmarks.js +517 -0
  88. package/dist/core/retrieval/retrieval-benchmarks.js.map +7 -0
  89. package/dist/core/session/clear-survival-stub.js +49 -0
  90. package/dist/core/session/clear-survival-stub.js.map +7 -0
  91. package/dist/core/session/clear-survival.js +426 -0
  92. package/dist/core/session/clear-survival.js.map +7 -0
  93. package/dist/core/session/handoff-generator.js +339 -0
  94. package/dist/core/session/handoff-generator.js.map +7 -0
  95. package/dist/core/session/session-manager.js +61 -26
  96. package/dist/core/session/session-manager.js.map +3 -3
  97. package/dist/core/skills/index.js +3 -0
  98. package/dist/core/skills/index.js.map +7 -0
  99. package/dist/core/skills/skill-storage.js +749 -0
  100. package/dist/core/skills/skill-storage.js.map +7 -0
  101. package/dist/core/skills/types.js +189 -0
  102. package/dist/core/skills/types.js.map +7 -0
  103. package/dist/core/storage/chromadb-adapter.js +346 -0
  104. package/dist/core/storage/chromadb-adapter.js.map +7 -0
  105. package/dist/core/storage/railway-optimized-storage.js +550 -0
  106. package/dist/core/storage/railway-optimized-storage.js.map +7 -0
  107. package/dist/core/storage/remote-storage.js +456 -0
  108. package/dist/core/storage/remote-storage.js.map +7 -0
  109. package/dist/core/trace/trace-detector.js +136 -5
  110. package/dist/core/trace/trace-detector.js.map +2 -2
  111. package/dist/core/trace/trace-store.js.map +2 -2
  112. package/dist/features/tui/components/analytics-panel.js +136 -0
  113. package/dist/features/tui/components/analytics-panel.js.map +7 -0
  114. package/dist/features/tui/components/frame-visualizer.js +377 -0
  115. package/dist/features/tui/components/frame-visualizer.js.map +7 -0
  116. package/dist/features/tui/components/pr-tracker.js +123 -0
  117. package/dist/features/tui/components/pr-tracker.js.map +7 -0
  118. package/dist/features/tui/components/session-monitor.js +286 -0
  119. package/dist/features/tui/components/session-monitor.js.map +7 -0
  120. package/dist/features/tui/components/subagent-fleet.js +388 -0
  121. package/dist/features/tui/components/subagent-fleet.js.map +7 -0
  122. package/dist/features/tui/components/task-board.js +475 -0
  123. package/dist/features/tui/components/task-board.js.map +7 -0
  124. package/dist/features/tui/index.js +397 -0
  125. package/dist/features/tui/index.js.map +7 -0
  126. package/dist/features/tui/services/data-service.js +654 -0
  127. package/dist/features/tui/services/data-service.js.map +7 -0
  128. package/dist/features/tui/services/websocket-client.js +149 -0
  129. package/dist/features/tui/services/websocket-client.js.map +7 -0
  130. package/dist/features/tui/terminal-compat.js +205 -0
  131. package/dist/features/tui/terminal-compat.js.map +7 -0
  132. package/dist/features/tui/types.js +1 -0
  133. package/dist/features/tui/types.js.map +7 -0
  134. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +455 -0
  135. package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
  136. package/dist/integrations/claude-code/lifecycle-hooks.js +250 -0
  137. package/dist/integrations/claude-code/lifecycle-hooks.js.map +7 -0
  138. package/dist/integrations/claude-code/post-task-hooks.js +541 -0
  139. package/dist/integrations/claude-code/post-task-hooks.js.map +7 -0
  140. package/dist/integrations/linear/client.js +22 -4
  141. package/dist/integrations/linear/client.js.map +2 -2
  142. package/dist/integrations/linear/migration.js +299 -0
  143. package/dist/integrations/linear/migration.js.map +7 -0
  144. package/dist/integrations/linear/oauth-server.js +396 -0
  145. package/dist/integrations/linear/oauth-server.js.map +7 -0
  146. package/dist/integrations/linear/rest-client.js +199 -0
  147. package/dist/integrations/linear/rest-client.js.map +7 -0
  148. package/dist/integrations/linear/sync.js +14 -2
  149. package/dist/integrations/linear/sync.js.map +2 -2
  150. package/dist/integrations/linear/webhook-handler.js +200 -0
  151. package/dist/integrations/linear/webhook-handler.js.map +7 -0
  152. package/dist/integrations/mcp/handlers/skill-handlers.js +514 -0
  153. package/dist/integrations/mcp/handlers/skill-handlers.js.map +7 -0
  154. package/dist/integrations/mcp/middleware/tool-scoring.js +352 -0
  155. package/dist/integrations/mcp/middleware/tool-scoring.js.map +7 -0
  156. package/dist/integrations/mcp/refactored-server.js +31 -3
  157. package/dist/integrations/mcp/refactored-server.js.map +2 -2
  158. package/dist/integrations/mcp/server.js +25 -7
  159. package/dist/integrations/mcp/server.js.map +2 -2
  160. package/dist/mcp/stackmemory-mcp-server.js.map +1 -1
  161. package/dist/models/user.model.js +3 -0
  162. package/dist/models/user.model.js.map +2 -2
  163. package/dist/services/context-service.js.map +2 -2
  164. package/dist/skills/claude-skills.js +666 -0
  165. package/dist/skills/claude-skills.js.map +7 -0
  166. package/dist/utils/formatting.js +58 -0
  167. package/dist/utils/formatting.js.map +7 -0
  168. package/package.json +30 -24
  169. package/dist/cli/__tests__/index.test.js +0 -290
  170. package/dist/cli/__tests__/index.test.js.map +0 -7
  171. package/dist/core/config/__tests__/config-manager.test.js +0 -248
  172. package/dist/core/config/__tests__/config-manager.test.js.map +0 -7
  173. package/dist/core/context/__tests__/frame-manager.test.js +0 -879
  174. package/dist/core/context/__tests__/frame-manager.test.js.map +0 -7
  175. package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js +0 -379
  176. package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js.map +0 -7
  177. package/dist/core/digest/__tests__/frame-digest-integration.test.js +0 -230
  178. package/dist/core/digest/__tests__/frame-digest-integration.test.js.map +0 -7
  179. package/dist/core/errors/__tests__/error-handling.test.js +0 -270
  180. package/dist/core/errors/__tests__/error-handling.test.js.map +0 -7
  181. package/dist/core/merge/__tests__/conflict-scenarios.test.js +0 -414
  182. package/dist/core/merge/__tests__/conflict-scenarios.test.js.map +0 -7
  183. package/dist/core/query/__tests__/query-parser.test.js +0 -301
  184. package/dist/core/query/__tests__/query-parser.test.js.map +0 -7
  185. package/dist/core/query/__tests__/query-templates.test.js +0 -210
  186. package/dist/core/query/__tests__/query-templates.test.js.map +0 -7
  187. package/dist/core/trace/trace-detector.test.js +0 -401
  188. package/dist/core/trace/trace-detector.test.js.map +0 -7
  189. package/dist/features/tasks/__tests__/pebbles-task-store.test.js +0 -747
  190. package/dist/features/tasks/__tests__/pebbles-task-store.test.js.map +0 -7
  191. package/dist/integrations/linear/__tests__/auth.test.js +0 -558
  192. package/dist/integrations/linear/__tests__/auth.test.js.map +0 -7
  193. package/dist/integrations/linear/__tests__/sync-service.test.js +0 -760
  194. package/dist/integrations/linear/__tests__/sync-service.test.js.map +0 -7
  195. package/dist/integrations/mcp/__tests__/server.test.js +0 -798
  196. package/dist/integrations/mcp/__tests__/server.test.js.map +0 -7
  197. package/dist/scripts/benchmark-performance.d.ts +0 -7
  198. package/dist/scripts/benchmark-performance.d.ts.map +0 -1
  199. package/dist/scripts/benchmark-performance.js +0 -44
  200. package/dist/scripts/benchmark-performance.js.map +0 -1
  201. package/dist/scripts/cancel-duplicate-tasks.d.ts +0 -7
  202. package/dist/scripts/cancel-duplicate-tasks.d.ts.map +0 -1
  203. package/dist/scripts/cancel-duplicate-tasks.js +0 -172
  204. package/dist/scripts/cancel-duplicate-tasks.js.map +0 -1
  205. package/dist/scripts/cleanup-duplicate-tasks.d.ts +0 -12
  206. package/dist/scripts/cleanup-duplicate-tasks.d.ts.map +0 -1
  207. package/dist/scripts/cleanup-duplicate-tasks.js +0 -215
  208. package/dist/scripts/cleanup-duplicate-tasks.js.map +0 -1
  209. package/dist/scripts/initialize.d.ts +0 -6
  210. package/dist/scripts/initialize.d.ts.map +0 -1
  211. package/dist/scripts/initialize.js +0 -93
  212. package/dist/scripts/initialize.js.map +0 -1
  213. package/dist/scripts/list-linear-tasks.d.ts +0 -6
  214. package/dist/scripts/list-linear-tasks.d.ts.map +0 -1
  215. package/dist/scripts/list-linear-tasks.js +0 -121
  216. package/dist/scripts/list-linear-tasks.js.map +0 -1
  217. package/dist/scripts/merge-linear-duplicates-safe.d.ts +0 -7
  218. package/dist/scripts/merge-linear-duplicates-safe.d.ts.map +0 -1
  219. package/dist/scripts/merge-linear-duplicates-safe.js +0 -267
  220. package/dist/scripts/merge-linear-duplicates-safe.js.map +0 -1
  221. package/dist/scripts/show-linear-summary.d.ts +0 -6
  222. package/dist/scripts/show-linear-summary.d.ts.map +0 -1
  223. package/dist/scripts/show-linear-summary.js +0 -120
  224. package/dist/scripts/show-linear-summary.js.map +0 -1
  225. package/dist/scripts/status.d.ts +0 -6
  226. package/dist/scripts/status.d.ts.map +0 -1
  227. package/dist/scripts/status.js +0 -101
  228. package/dist/scripts/status.js.map +0 -1
  229. package/dist/src/agents/core/agent-task-manager.d.ts +0 -154
  230. package/dist/src/agents/core/agent-task-manager.d.ts.map +0 -1
  231. package/dist/src/agents/core/agent-task-manager.js +0 -504
  232. package/dist/src/agents/core/agent-task-manager.js.map +0 -1
  233. package/dist/src/agents/verifiers/base-verifier.d.ts +0 -112
  234. package/dist/src/agents/verifiers/base-verifier.d.ts.map +0 -1
  235. package/dist/src/agents/verifiers/base-verifier.js +0 -130
  236. package/dist/src/agents/verifiers/base-verifier.js.map +0 -1
  237. package/dist/src/agents/verifiers/formatter-verifier.d.ts +0 -14
  238. package/dist/src/agents/verifiers/formatter-verifier.d.ts.map +0 -1
  239. package/dist/src/agents/verifiers/formatter-verifier.js +0 -107
  240. package/dist/src/agents/verifiers/formatter-verifier.js.map +0 -1
  241. package/dist/src/agents/verifiers/llm-judge.d.ts +0 -46
  242. package/dist/src/agents/verifiers/llm-judge.d.ts.map +0 -1
  243. package/dist/src/agents/verifiers/llm-judge.js +0 -248
  244. package/dist/src/agents/verifiers/llm-judge.js.map +0 -1
  245. package/dist/src/cli/auto-detect.d.ts +0 -61
  246. package/dist/src/cli/auto-detect.d.ts.map +0 -1
  247. package/dist/src/cli/auto-detect.js +0 -350
  248. package/dist/src/cli/auto-detect.js.map +0 -1
  249. package/dist/src/cli/browser-test.d.ts +0 -6
  250. package/dist/src/cli/browser-test.d.ts.map +0 -1
  251. package/dist/src/cli/browser-test.js +0 -32
  252. package/dist/src/cli/browser-test.js.map +0 -1
  253. package/dist/src/cli/claude-sm.d.ts +0 -7
  254. package/dist/src/cli/claude-sm.d.ts.map +0 -1
  255. package/dist/src/cli/claude-sm.js +0 -412
  256. package/dist/src/cli/claude-sm.js.map +0 -1
  257. package/dist/src/cli/commands/agent.d.ts +0 -9
  258. package/dist/src/cli/commands/agent.d.ts.map +0 -1
  259. package/dist/src/cli/commands/agent.js +0 -303
  260. package/dist/src/cli/commands/agent.js.map +0 -1
  261. package/dist/src/cli/commands/config.d.ts +0 -6
  262. package/dist/src/cli/commands/config.d.ts.map +0 -1
  263. package/dist/src/cli/commands/config.js +0 -224
  264. package/dist/src/cli/commands/config.js.map +0 -1
  265. package/dist/src/cli/commands/context.d.ts +0 -7
  266. package/dist/src/cli/commands/context.d.ts.map +0 -1
  267. package/dist/src/cli/commands/context.js +0 -365
  268. package/dist/src/cli/commands/context.js.map +0 -1
  269. package/dist/src/cli/commands/handoff.d.ts +0 -6
  270. package/dist/src/cli/commands/handoff.d.ts.map +0 -1
  271. package/dist/src/cli/commands/handoff.js +0 -212
  272. package/dist/src/cli/commands/handoff.js.map +0 -1
  273. package/dist/src/cli/commands/linear-test.d.ts +0 -6
  274. package/dist/src/cli/commands/linear-test.d.ts.map +0 -1
  275. package/dist/src/cli/commands/linear-test.js +0 -123
  276. package/dist/src/cli/commands/linear-test.js.map +0 -1
  277. package/dist/src/cli/commands/linear.d.ts +0 -6
  278. package/dist/src/cli/commands/linear.d.ts.map +0 -1
  279. package/dist/src/cli/commands/linear.js +0 -393
  280. package/dist/src/cli/commands/linear.js.map +0 -1
  281. package/dist/src/cli/commands/log.d.ts +0 -7
  282. package/dist/src/cli/commands/log.d.ts.map +0 -1
  283. package/dist/src/cli/commands/log.js +0 -168
  284. package/dist/src/cli/commands/log.js.map +0 -1
  285. package/dist/src/cli/commands/onboard.d.ts +0 -8
  286. package/dist/src/cli/commands/onboard.d.ts.map +0 -1
  287. package/dist/src/cli/commands/onboard.js +0 -363
  288. package/dist/src/cli/commands/onboard.js.map +0 -1
  289. package/dist/src/cli/commands/projects.d.ts +0 -8
  290. package/dist/src/cli/commands/projects.d.ts.map +0 -1
  291. package/dist/src/cli/commands/projects.js +0 -220
  292. package/dist/src/cli/commands/projects.js.map +0 -1
  293. package/dist/src/cli/commands/search.d.ts +0 -7
  294. package/dist/src/cli/commands/search.d.ts.map +0 -1
  295. package/dist/src/cli/commands/search.js +0 -162
  296. package/dist/src/cli/commands/search.js.map +0 -1
  297. package/dist/src/cli/commands/session.d.ts +0 -7
  298. package/dist/src/cli/commands/session.d.ts.map +0 -1
  299. package/dist/src/cli/commands/session.js +0 -222
  300. package/dist/src/cli/commands/session.js.map +0 -1
  301. package/dist/src/cli/commands/tasks.d.ts +0 -7
  302. package/dist/src/cli/commands/tasks.d.ts.map +0 -1
  303. package/dist/src/cli/commands/tasks.js +0 -229
  304. package/dist/src/cli/commands/tasks.js.map +0 -1
  305. package/dist/src/cli/commands/webhook.d.ts +0 -3
  306. package/dist/src/cli/commands/webhook.d.ts.map +0 -1
  307. package/dist/src/cli/commands/webhook.js +0 -157
  308. package/dist/src/cli/commands/webhook.js.map +0 -1
  309. package/dist/src/cli/commands/worktree.d.ts +0 -8
  310. package/dist/src/cli/commands/worktree.d.ts.map +0 -1
  311. package/dist/src/cli/commands/worktree.js +0 -339
  312. package/dist/src/cli/commands/worktree.js.map +0 -1
  313. package/dist/src/cli/index.d.ts +0 -8
  314. package/dist/src/cli/index.d.ts.map +0 -1
  315. package/dist/src/cli/index.js +0 -995
  316. package/dist/src/cli/index.js.map +0 -1
  317. package/dist/src/cli/utils/viewer.d.ts +0 -3
  318. package/dist/src/cli/utils/viewer.d.ts.map +0 -1
  319. package/dist/src/cli/utils/viewer.js +0 -91
  320. package/dist/src/cli/utils/viewer.js.map +0 -1
  321. package/dist/src/core/config/config-manager.d.ts +0 -95
  322. package/dist/src/core/config/config-manager.d.ts.map +0 -1
  323. package/dist/src/core/config/config-manager.js +0 -359
  324. package/dist/src/core/config/config-manager.js.map +0 -1
  325. package/dist/src/core/config/types.d.ts +0 -72
  326. package/dist/src/core/config/types.d.ts.map +0 -1
  327. package/dist/src/core/config/types.js +0 -127
  328. package/dist/src/core/config/types.js.map +0 -1
  329. package/dist/src/core/context/auto-context.d.ts +0 -22
  330. package/dist/src/core/context/auto-context.d.ts.map +0 -1
  331. package/dist/src/core/context/auto-context.js +0 -77
  332. package/dist/src/core/context/auto-context.js.map +0 -1
  333. package/dist/src/core/context/compaction-handler.d.ts +0 -119
  334. package/dist/src/core/context/compaction-handler.d.ts.map +0 -1
  335. package/dist/src/core/context/compaction-handler.js +0 -306
  336. package/dist/src/core/context/compaction-handler.js.map +0 -1
  337. package/dist/src/core/context/frame-database.d.ts +0 -59
  338. package/dist/src/core/context/frame-database.d.ts.map +0 -1
  339. package/dist/src/core/context/frame-database.js +0 -333
  340. package/dist/src/core/context/frame-database.js.map +0 -1
  341. package/dist/src/core/context/frame-digest.d.ts +0 -59
  342. package/dist/src/core/context/frame-digest.d.ts.map +0 -1
  343. package/dist/src/core/context/frame-digest.js +0 -264
  344. package/dist/src/core/context/frame-digest.js.map +0 -1
  345. package/dist/src/core/context/frame-manager.d.ts +0 -112
  346. package/dist/src/core/context/frame-manager.d.ts.map +0 -1
  347. package/dist/src/core/context/frame-manager.js +0 -600
  348. package/dist/src/core/context/frame-manager.js.map +0 -1
  349. package/dist/src/core/context/frame-stack.d.ts +0 -85
  350. package/dist/src/core/context/frame-stack.d.ts.map +0 -1
  351. package/dist/src/core/context/frame-stack.js +0 -287
  352. package/dist/src/core/context/frame-stack.js.map +0 -1
  353. package/dist/src/core/context/frame-types.d.ts +0 -67
  354. package/dist/src/core/context/frame-types.d.ts.map +0 -1
  355. package/dist/src/core/context/frame-types.js +0 -6
  356. package/dist/src/core/context/frame-types.js.map +0 -1
  357. package/dist/src/core/context/index.d.ts +0 -11
  358. package/dist/src/core/context/index.d.ts.map +0 -1
  359. package/dist/src/core/context/index.js +0 -14
  360. package/dist/src/core/context/index.js.map +0 -1
  361. package/dist/src/core/context/model-aware-compaction.d.ts +0 -101
  362. package/dist/src/core/context/model-aware-compaction.d.ts.map +0 -1
  363. package/dist/src/core/context/model-aware-compaction.js +0 -616
  364. package/dist/src/core/context/model-aware-compaction.js.map +0 -1
  365. package/dist/src/core/context/refactored-frame-manager.d.ts +0 -99
  366. package/dist/src/core/context/refactored-frame-manager.d.ts.map +0 -1
  367. package/dist/src/core/context/refactored-frame-manager.js +0 -340
  368. package/dist/src/core/context/refactored-frame-manager.js.map +0 -1
  369. package/dist/src/core/database/batch-operations.d.ts +0 -118
  370. package/dist/src/core/database/batch-operations.d.ts.map +0 -1
  371. package/dist/src/core/database/batch-operations.js +0 -339
  372. package/dist/src/core/database/batch-operations.js.map +0 -1
  373. package/dist/src/core/database/connection-pool.d.ts +0 -79
  374. package/dist/src/core/database/connection-pool.d.ts.map +0 -1
  375. package/dist/src/core/database/connection-pool.js +0 -236
  376. package/dist/src/core/database/connection-pool.js.map +0 -1
  377. package/dist/src/core/database/query-cache.d.ts +0 -135
  378. package/dist/src/core/database/query-cache.d.ts.map +0 -1
  379. package/dist/src/core/database/query-cache.js +0 -294
  380. package/dist/src/core/database/query-cache.js.map +0 -1
  381. package/dist/src/core/digest/enhanced-hybrid-digest.d.ts +0 -125
  382. package/dist/src/core/digest/enhanced-hybrid-digest.d.ts.map +0 -1
  383. package/dist/src/core/digest/enhanced-hybrid-digest.js +0 -282
  384. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +0 -1
  385. package/dist/src/core/digest/frame-digest-integration.d.ts +0 -67
  386. package/dist/src/core/digest/frame-digest-integration.d.ts.map +0 -1
  387. package/dist/src/core/digest/frame-digest-integration.js +0 -198
  388. package/dist/src/core/digest/frame-digest-integration.js.map +0 -1
  389. package/dist/src/core/digest/hybrid-digest-generator.d.ts +0 -76
  390. package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +0 -1
  391. package/dist/src/core/digest/hybrid-digest-generator.js +0 -629
  392. package/dist/src/core/digest/hybrid-digest-generator.js.map +0 -1
  393. package/dist/src/core/digest/index.d.ts +0 -9
  394. package/dist/src/core/digest/index.d.ts.map +0 -1
  395. package/dist/src/core/digest/index.js +0 -9
  396. package/dist/src/core/digest/index.js.map +0 -1
  397. package/dist/src/core/digest/types.d.ts +0 -154
  398. package/dist/src/core/digest/types.d.ts.map +0 -1
  399. package/dist/src/core/digest/types.js +0 -18
  400. package/dist/src/core/digest/types.js.map +0 -1
  401. package/dist/src/core/errors/index.d.ts +0 -143
  402. package/dist/src/core/errors/index.d.ts.map +0 -1
  403. package/dist/src/core/errors/index.js +0 -282
  404. package/dist/src/core/errors/index.js.map +0 -1
  405. package/dist/src/core/errors/recovery.d.ts +0 -86
  406. package/dist/src/core/errors/recovery.d.ts.map +0 -1
  407. package/dist/src/core/errors/recovery.js +0 -274
  408. package/dist/src/core/errors/recovery.js.map +0 -1
  409. package/dist/src/core/merge/conflict-detector.d.ts +0 -122
  410. package/dist/src/core/merge/conflict-detector.d.ts.map +0 -1
  411. package/dist/src/core/merge/conflict-detector.js +0 -468
  412. package/dist/src/core/merge/conflict-detector.js.map +0 -1
  413. package/dist/src/core/merge/index.d.ts +0 -9
  414. package/dist/src/core/merge/index.d.ts.map +0 -1
  415. package/dist/src/core/merge/index.js +0 -9
  416. package/dist/src/core/merge/index.js.map +0 -1
  417. package/dist/src/core/merge/resolution-engine.d.ts +0 -120
  418. package/dist/src/core/merge/resolution-engine.d.ts.map +0 -1
  419. package/dist/src/core/merge/resolution-engine.js +0 -573
  420. package/dist/src/core/merge/resolution-engine.js.map +0 -1
  421. package/dist/src/core/merge/stack-diff.d.ts +0 -97
  422. package/dist/src/core/merge/stack-diff.d.ts.map +0 -1
  423. package/dist/src/core/merge/stack-diff.js +0 -516
  424. package/dist/src/core/merge/stack-diff.js.map +0 -1
  425. package/dist/src/core/merge/types.d.ts +0 -110
  426. package/dist/src/core/merge/types.d.ts.map +0 -1
  427. package/dist/src/core/merge/types.js +0 -6
  428. package/dist/src/core/merge/types.js.map +0 -1
  429. package/dist/src/core/monitoring/error-handler.d.ts +0 -46
  430. package/dist/src/core/monitoring/error-handler.d.ts.map +0 -1
  431. package/dist/src/core/monitoring/error-handler.js +0 -212
  432. package/dist/src/core/monitoring/error-handler.js.map +0 -1
  433. package/dist/src/core/monitoring/logger.d.ts +0 -24
  434. package/dist/src/core/monitoring/logger.d.ts.map +0 -1
  435. package/dist/src/core/monitoring/logger.js +0 -126
  436. package/dist/src/core/monitoring/logger.js.map +0 -1
  437. package/dist/src/core/monitoring/metrics.d.ts +0 -10
  438. package/dist/src/core/monitoring/metrics.d.ts.map +0 -1
  439. package/dist/src/core/monitoring/metrics.js +0 -152
  440. package/dist/src/core/monitoring/metrics.js.map +0 -1
  441. package/dist/src/core/monitoring/progress-tracker.d.ts +0 -95
  442. package/dist/src/core/monitoring/progress-tracker.d.ts.map +0 -1
  443. package/dist/src/core/monitoring/progress-tracker.js +0 -178
  444. package/dist/src/core/monitoring/progress-tracker.js.map +0 -1
  445. package/dist/src/core/performance/context-cache.d.ts +0 -109
  446. package/dist/src/core/performance/context-cache.d.ts.map +0 -1
  447. package/dist/src/core/performance/context-cache.js +0 -280
  448. package/dist/src/core/performance/context-cache.js.map +0 -1
  449. package/dist/src/core/performance/index.d.ts +0 -3
  450. package/dist/src/core/performance/index.d.ts.map +0 -1
  451. package/dist/src/core/performance/index.js +0 -3
  452. package/dist/src/core/performance/index.js.map +0 -1
  453. package/dist/src/core/performance/lazy-context-loader.d.ts +0 -93
  454. package/dist/src/core/performance/lazy-context-loader.d.ts.map +0 -1
  455. package/dist/src/core/performance/lazy-context-loader.js +0 -332
  456. package/dist/src/core/performance/lazy-context-loader.js.map +0 -1
  457. package/dist/src/core/performance/monitor.d.ts +0 -48
  458. package/dist/src/core/performance/monitor.d.ts.map +0 -1
  459. package/dist/src/core/performance/monitor.js +0 -226
  460. package/dist/src/core/performance/monitor.js.map +0 -1
  461. package/dist/src/core/performance/optimized-frame-context.d.ts +0 -74
  462. package/dist/src/core/performance/optimized-frame-context.d.ts.map +0 -1
  463. package/dist/src/core/performance/optimized-frame-context.js +0 -330
  464. package/dist/src/core/performance/optimized-frame-context.js.map +0 -1
  465. package/dist/src/core/performance/performance-benchmark.d.ts +0 -50
  466. package/dist/src/core/performance/performance-benchmark.d.ts.map +0 -1
  467. package/dist/src/core/performance/performance-benchmark.js +0 -290
  468. package/dist/src/core/performance/performance-benchmark.js.map +0 -1
  469. package/dist/src/core/performance/performance-profiler.d.ts +0 -151
  470. package/dist/src/core/performance/performance-profiler.d.ts.map +0 -1
  471. package/dist/src/core/performance/performance-profiler.js +0 -346
  472. package/dist/src/core/performance/performance-profiler.js.map +0 -1
  473. package/dist/src/core/performance/streaming-jsonl-parser.d.ts +0 -41
  474. package/dist/src/core/performance/streaming-jsonl-parser.d.ts.map +0 -1
  475. package/dist/src/core/performance/streaming-jsonl-parser.js +0 -193
  476. package/dist/src/core/performance/streaming-jsonl-parser.js.map +0 -1
  477. package/dist/src/core/persistence/postgres-adapter.d.ts +0 -31
  478. package/dist/src/core/persistence/postgres-adapter.d.ts.map +0 -1
  479. package/dist/src/core/persistence/postgres-adapter.js +0 -330
  480. package/dist/src/core/persistence/postgres-adapter.js.map +0 -1
  481. package/dist/src/core/projects/project-manager.d.ts +0 -130
  482. package/dist/src/core/projects/project-manager.d.ts.map +0 -1
  483. package/dist/src/core/projects/project-manager.js +0 -709
  484. package/dist/src/core/projects/project-manager.js.map +0 -1
  485. package/dist/src/core/query/query-parser.d.ts +0 -109
  486. package/dist/src/core/query/query-parser.d.ts.map +0 -1
  487. package/dist/src/core/query/query-parser.js +0 -415
  488. package/dist/src/core/query/query-parser.js.map +0 -1
  489. package/dist/src/core/query/query-templates.d.ts +0 -44
  490. package/dist/src/core/query/query-templates.d.ts.map +0 -1
  491. package/dist/src/core/query/query-templates.js +0 -326
  492. package/dist/src/core/query/query-templates.js.map +0 -1
  493. package/dist/src/core/retrieval/index.d.ts +0 -8
  494. package/dist/src/core/retrieval/index.d.ts.map +0 -1
  495. package/dist/src/core/retrieval/index.js +0 -8
  496. package/dist/src/core/retrieval/index.js.map +0 -1
  497. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +0 -73
  498. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +0 -1
  499. package/dist/src/core/retrieval/llm-context-retrieval.js +0 -597
  500. package/dist/src/core/retrieval/llm-context-retrieval.js.map +0 -1
  501. package/dist/src/core/retrieval/summary-generator.d.ts +0 -63
  502. package/dist/src/core/retrieval/summary-generator.d.ts.map +0 -1
  503. package/dist/src/core/retrieval/summary-generator.js +0 -622
  504. package/dist/src/core/retrieval/summary-generator.js.map +0 -1
  505. package/dist/src/core/retrieval/types.d.ts +0 -257
  506. package/dist/src/core/retrieval/types.d.ts.map +0 -1
  507. package/dist/src/core/retrieval/types.js +0 -18
  508. package/dist/src/core/retrieval/types.js.map +0 -1
  509. package/dist/src/core/session/index.d.ts +0 -2
  510. package/dist/src/core/session/index.d.ts.map +0 -1
  511. package/dist/src/core/session/index.js +0 -2
  512. package/dist/src/core/session/index.js.map +0 -1
  513. package/dist/src/core/session/session-manager.d.ts +0 -69
  514. package/dist/src/core/session/session-manager.d.ts.map +0 -1
  515. package/dist/src/core/session/session-manager.js +0 -311
  516. package/dist/src/core/session/session-manager.js.map +0 -1
  517. package/dist/src/core/trace/cli-trace-wrapper.d.ts +0 -23
  518. package/dist/src/core/trace/cli-trace-wrapper.d.ts.map +0 -1
  519. package/dist/src/core/trace/cli-trace-wrapper.js +0 -141
  520. package/dist/src/core/trace/cli-trace-wrapper.js.map +0 -1
  521. package/dist/src/core/trace/db-trace-wrapper.d.ts +0 -36
  522. package/dist/src/core/trace/db-trace-wrapper.d.ts.map +0 -1
  523. package/dist/src/core/trace/db-trace-wrapper.js +0 -252
  524. package/dist/src/core/trace/db-trace-wrapper.js.map +0 -1
  525. package/dist/src/core/trace/debug-trace.d.ts +0 -84
  526. package/dist/src/core/trace/debug-trace.d.ts.map +0 -1
  527. package/dist/src/core/trace/debug-trace.js +0 -402
  528. package/dist/src/core/trace/debug-trace.js.map +0 -1
  529. package/dist/src/core/trace/error-test.d.ts +0 -6
  530. package/dist/src/core/trace/error-test.d.ts.map +0 -1
  531. package/dist/src/core/trace/error-test.js +0 -128
  532. package/dist/src/core/trace/error-test.js.map +0 -1
  533. package/dist/src/core/trace/index.d.ts +0 -25
  534. package/dist/src/core/trace/index.d.ts.map +0 -1
  535. package/dist/src/core/trace/index.js +0 -121
  536. package/dist/src/core/trace/index.js.map +0 -1
  537. package/dist/src/core/trace/linear-api-wrapper.d.ts +0 -17
  538. package/dist/src/core/trace/linear-api-wrapper.d.ts.map +0 -1
  539. package/dist/src/core/trace/linear-api-wrapper.js +0 -205
  540. package/dist/src/core/trace/linear-api-wrapper.js.map +0 -1
  541. package/dist/src/core/trace/performance-test.d.ts +0 -6
  542. package/dist/src/core/trace/performance-test.d.ts.map +0 -1
  543. package/dist/src/core/trace/performance-test.js +0 -111
  544. package/dist/src/core/trace/performance-test.js.map +0 -1
  545. package/dist/src/core/trace/trace-demo.d.ts +0 -8
  546. package/dist/src/core/trace/trace-demo.d.ts.map +0 -1
  547. package/dist/src/core/trace/trace-demo.js +0 -154
  548. package/dist/src/core/trace/trace-demo.js.map +0 -1
  549. package/dist/src/core/trace/trace-detector.d.ts +0 -108
  550. package/dist/src/core/trace/trace-detector.d.ts.map +0 -1
  551. package/dist/src/core/trace/trace-detector.demo.d.ts +0 -5
  552. package/dist/src/core/trace/trace-detector.demo.d.ts.map +0 -1
  553. package/dist/src/core/trace/trace-detector.demo.js +0 -145
  554. package/dist/src/core/trace/trace-detector.demo.js.map +0 -1
  555. package/dist/src/core/trace/trace-detector.js +0 -425
  556. package/dist/src/core/trace/trace-detector.js.map +0 -1
  557. package/dist/src/core/trace/trace-store.d.ts +0 -60
  558. package/dist/src/core/trace/trace-store.d.ts.map +0 -1
  559. package/dist/src/core/trace/trace-store.js +0 -323
  560. package/dist/src/core/trace/trace-store.js.map +0 -1
  561. package/dist/src/core/trace/types.d.ts +0 -81
  562. package/dist/src/core/trace/types.d.ts.map +0 -1
  563. package/dist/src/core/trace/types.js +0 -70
  564. package/dist/src/core/trace/types.js.map +0 -1
  565. package/dist/src/core/types.d.ts +0 -35
  566. package/dist/src/core/types.d.ts.map +0 -1
  567. package/dist/src/core/types.js +0 -2
  568. package/dist/src/core/types.js.map +0 -1
  569. package/dist/src/core/utils/update-checker.d.ts +0 -38
  570. package/dist/src/core/utils/update-checker.d.ts.map +0 -1
  571. package/dist/src/core/utils/update-checker.js +0 -213
  572. package/dist/src/core/utils/update-checker.js.map +0 -1
  573. package/dist/src/core/worktree/worktree-manager.d.ts +0 -110
  574. package/dist/src/core/worktree/worktree-manager.d.ts.map +0 -1
  575. package/dist/src/core/worktree/worktree-manager.js +0 -456
  576. package/dist/src/core/worktree/worktree-manager.js.map +0 -1
  577. package/dist/src/features/analytics/api/analytics-api.d.ts +0 -24
  578. package/dist/src/features/analytics/api/analytics-api.d.ts.map +0 -1
  579. package/dist/src/features/analytics/api/analytics-api.js +0 -289
  580. package/dist/src/features/analytics/api/analytics-api.js.map +0 -1
  581. package/dist/src/features/analytics/core/analytics-service.d.ts +0 -29
  582. package/dist/src/features/analytics/core/analytics-service.d.ts.map +0 -1
  583. package/dist/src/features/analytics/core/analytics-service.js +0 -275
  584. package/dist/src/features/analytics/core/analytics-service.js.map +0 -1
  585. package/dist/src/features/analytics/index.d.ts +0 -12
  586. package/dist/src/features/analytics/index.d.ts.map +0 -1
  587. package/dist/src/features/analytics/index.js +0 -11
  588. package/dist/src/features/analytics/index.js.map +0 -1
  589. package/dist/src/features/analytics/queries/metrics-queries.d.ts +0 -11
  590. package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +0 -1
  591. package/dist/src/features/analytics/queries/metrics-queries.js +0 -240
  592. package/dist/src/features/analytics/queries/metrics-queries.js.map +0 -1
  593. package/dist/src/features/analytics/types/metrics.d.ts +0 -60
  594. package/dist/src/features/analytics/types/metrics.d.ts.map +0 -1
  595. package/dist/src/features/analytics/types/metrics.js +0 -2
  596. package/dist/src/features/analytics/types/metrics.js.map +0 -1
  597. package/dist/src/features/browser/browser-mcp.d.ts +0 -94
  598. package/dist/src/features/browser/browser-mcp.d.ts.map +0 -1
  599. package/dist/src/features/browser/browser-mcp.js +0 -459
  600. package/dist/src/features/browser/browser-mcp.js.map +0 -1
  601. package/dist/src/features/tasks/pebbles-task-store.d.ts +0 -128
  602. package/dist/src/features/tasks/pebbles-task-store.d.ts.map +0 -1
  603. package/dist/src/features/tasks/pebbles-task-store.js +0 -572
  604. package/dist/src/features/tasks/pebbles-task-store.js.map +0 -1
  605. package/dist/src/features/tasks/task-aware-context.d.ts +0 -103
  606. package/dist/src/features/tasks/task-aware-context.d.ts.map +0 -1
  607. package/dist/src/features/tasks/task-aware-context.js +0 -412
  608. package/dist/src/features/tasks/task-aware-context.js.map +0 -1
  609. package/dist/src/index.d.ts +0 -21
  610. package/dist/src/index.d.ts.map +0 -1
  611. package/dist/src/index.js +0 -9
  612. package/dist/src/index.js.map +0 -1
  613. package/dist/src/integrations/linear/auth.d.ts +0 -99
  614. package/dist/src/integrations/linear/auth.d.ts.map +0 -1
  615. package/dist/src/integrations/linear/auth.js +0 -319
  616. package/dist/src/integrations/linear/auth.js.map +0 -1
  617. package/dist/src/integrations/linear/auto-sync.d.ts +0 -77
  618. package/dist/src/integrations/linear/auto-sync.d.ts.map +0 -1
  619. package/dist/src/integrations/linear/auto-sync.js +0 -268
  620. package/dist/src/integrations/linear/auto-sync.js.map +0 -1
  621. package/dist/src/integrations/linear/client.d.ts +0 -127
  622. package/dist/src/integrations/linear/client.d.ts.map +0 -1
  623. package/dist/src/integrations/linear/client.js +0 -446
  624. package/dist/src/integrations/linear/client.js.map +0 -1
  625. package/dist/src/integrations/linear/config.d.ts +0 -51
  626. package/dist/src/integrations/linear/config.d.ts.map +0 -1
  627. package/dist/src/integrations/linear/config.js +0 -103
  628. package/dist/src/integrations/linear/config.js.map +0 -1
  629. package/dist/src/integrations/linear/sync-manager.d.ts +0 -78
  630. package/dist/src/integrations/linear/sync-manager.d.ts.map +0 -1
  631. package/dist/src/integrations/linear/sync-manager.js +0 -235
  632. package/dist/src/integrations/linear/sync-manager.js.map +0 -1
  633. package/dist/src/integrations/linear/sync-service.d.ts +0 -46
  634. package/dist/src/integrations/linear/sync-service.d.ts.map +0 -1
  635. package/dist/src/integrations/linear/sync-service.js +0 -217
  636. package/dist/src/integrations/linear/sync-service.js.map +0 -1
  637. package/dist/src/integrations/linear/sync.d.ts +0 -125
  638. package/dist/src/integrations/linear/sync.d.ts.map +0 -1
  639. package/dist/src/integrations/linear/sync.js +0 -563
  640. package/dist/src/integrations/linear/sync.js.map +0 -1
  641. package/dist/src/integrations/linear/types.d.ts +0 -90
  642. package/dist/src/integrations/linear/types.d.ts.map +0 -1
  643. package/dist/src/integrations/linear/types.js +0 -2
  644. package/dist/src/integrations/linear/types.js.map +0 -1
  645. package/dist/src/integrations/linear/webhook-server.d.ts +0 -32
  646. package/dist/src/integrations/linear/webhook-server.d.ts.map +0 -1
  647. package/dist/src/integrations/linear/webhook-server.js +0 -190
  648. package/dist/src/integrations/linear/webhook-server.js.map +0 -1
  649. package/dist/src/integrations/linear/webhook.d.ts +0 -108
  650. package/dist/src/integrations/linear/webhook.d.ts.map +0 -1
  651. package/dist/src/integrations/linear/webhook.js +0 -291
  652. package/dist/src/integrations/linear/webhook.js.map +0 -1
  653. package/dist/src/integrations/mcp/handlers/context-handlers.d.ts +0 -39
  654. package/dist/src/integrations/mcp/handlers/context-handlers.d.ts.map +0 -1
  655. package/dist/src/integrations/mcp/handlers/context-handlers.js +0 -266
  656. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +0 -1
  657. package/dist/src/integrations/mcp/handlers/index.d.ts +0 -37
  658. package/dist/src/integrations/mcp/handlers/index.d.ts.map +0 -1
  659. package/dist/src/integrations/mcp/handlers/index.js +0 -134
  660. package/dist/src/integrations/mcp/handlers/index.js.map +0 -1
  661. package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts +0 -33
  662. package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts.map +0 -1
  663. package/dist/src/integrations/mcp/handlers/linear-handlers.js +0 -251
  664. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +0 -1
  665. package/dist/src/integrations/mcp/handlers/task-handlers.d.ts +0 -42
  666. package/dist/src/integrations/mcp/handlers/task-handlers.d.ts.map +0 -1
  667. package/dist/src/integrations/mcp/handlers/task-handlers.js +0 -238
  668. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +0 -1
  669. package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts +0 -41
  670. package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts.map +0 -1
  671. package/dist/src/integrations/mcp/handlers/trace-handlers.js +0 -298
  672. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +0 -1
  673. package/dist/src/integrations/mcp/index.d.ts +0 -13
  674. package/dist/src/integrations/mcp/index.d.ts.map +0 -1
  675. package/dist/src/integrations/mcp/index.js +0 -17
  676. package/dist/src/integrations/mcp/index.js.map +0 -1
  677. package/dist/src/integrations/mcp/refactored-server.d.ts +0 -76
  678. package/dist/src/integrations/mcp/refactored-server.d.ts.map +0 -1
  679. package/dist/src/integrations/mcp/refactored-server.js +0 -351
  680. package/dist/src/integrations/mcp/refactored-server.js.map +0 -1
  681. package/dist/src/integrations/mcp/server.d.ts +0 -54
  682. package/dist/src/integrations/mcp/server.d.ts.map +0 -1
  683. package/dist/src/integrations/mcp/server.js +0 -1616
  684. package/dist/src/integrations/mcp/server.js.map +0 -1
  685. package/dist/src/integrations/mcp/tool-definitions.d.ts +0 -44
  686. package/dist/src/integrations/mcp/tool-definitions.d.ts.map +0 -1
  687. package/dist/src/integrations/mcp/tool-definitions.js +0 -563
  688. package/dist/src/integrations/mcp/tool-definitions.js.map +0 -1
  689. package/dist/src/integrations/mcp/trace-test.d.ts +0 -5
  690. package/dist/src/integrations/mcp/trace-test.d.ts.map +0 -1
  691. package/dist/src/integrations/mcp/trace-test.js +0 -54
  692. package/dist/src/integrations/mcp/trace-test.js.map +0 -1
  693. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts +0 -48
  694. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +0 -1
  695. package/dist/src/integrations/pg-aiguide/embedding-provider.js +0 -190
  696. package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +0 -1
  697. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +0 -34
  698. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +0 -1
  699. package/dist/src/integrations/pg-aiguide/semantic-search.js +0 -176
  700. package/dist/src/integrations/pg-aiguide/semantic-search.js.map +0 -1
  701. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +0 -44
  702. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +0 -1
  703. package/dist/src/integrations/pg-aiguide/timescale-analytics.js +0 -215
  704. package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +0 -1
  705. package/dist/src/mcp/stackmemory-mcp-server.d.ts +0 -9
  706. package/dist/src/mcp/stackmemory-mcp-server.d.ts.map +0 -1
  707. package/dist/src/mcp/stackmemory-mcp-server.js +0 -519
  708. package/dist/src/mcp/stackmemory-mcp-server.js.map +0 -1
  709. package/dist/src/middleware/exponential-rate-limiter.d.ts +0 -78
  710. package/dist/src/middleware/exponential-rate-limiter.d.ts.map +0 -1
  711. package/dist/src/middleware/exponential-rate-limiter.js +0 -293
  712. package/dist/src/middleware/exponential-rate-limiter.js.map +0 -1
  713. package/dist/src/models/user.model.d.ts +0 -62
  714. package/dist/src/models/user.model.d.ts.map +0 -1
  715. package/dist/src/models/user.model.js +0 -311
  716. package/dist/src/models/user.model.js.map +0 -1
  717. package/dist/src/servers/production/auth-middleware.d.ts +0 -76
  718. package/dist/src/servers/production/auth-middleware.d.ts.map +0 -1
  719. package/dist/src/servers/production/auth-middleware.js +0 -558
  720. package/dist/src/servers/production/auth-middleware.js.map +0 -1
  721. package/dist/src/servers/railway/index.d.ts +0 -7
  722. package/dist/src/servers/railway/index.d.ts.map +0 -1
  723. package/dist/src/servers/railway/index.js +0 -401
  724. package/dist/src/servers/railway/index.js.map +0 -1
  725. package/dist/src/services/config-service.d.ts +0 -44
  726. package/dist/src/services/config-service.d.ts.map +0 -1
  727. package/dist/src/services/config-service.js +0 -61
  728. package/dist/src/services/config-service.js.map +0 -1
  729. package/dist/src/services/context-service.d.ts +0 -17
  730. package/dist/src/services/context-service.d.ts.map +0 -1
  731. package/dist/src/services/context-service.js +0 -173
  732. package/dist/src/services/context-service.js.map +0 -1
  733. package/dist/src/types/task.d.ts +0 -27
  734. package/dist/src/types/task.d.ts.map +0 -1
  735. package/dist/src/types/task.js +0 -2
  736. package/dist/src/types/task.js.map +0 -1
  737. package/dist/src/utils/logger.d.ts +0 -13
  738. package/dist/src/utils/logger.d.ts.map +0 -1
  739. package/dist/src/utils/logger.js +0 -52
  740. package/dist/src/utils/logger.js.map +0 -1
  741. package/dist/src/validation/schemas.d.ts +0 -633
  742. package/dist/src/validation/schemas.d.ts.map +0 -1
  743. package/dist/src/validation/schemas.js +0 -347
  744. 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