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