@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,301 +0,0 @@
1
- import { describe, it, expect, beforeEach } from "vitest";
2
- import {
3
- QueryParser,
4
- FrameType,
5
- FrameStatus
6
- } from "../query-parser";
7
- describe("QueryParser", () => {
8
- let parser;
9
- beforeEach(() => {
10
- parser = new QueryParser();
11
- });
12
- describe("parseNaturalLanguage", () => {
13
- it("should parse time-based queries", () => {
14
- const query1 = parser.parseNaturalLanguage(
15
- "provide context from the last day"
16
- );
17
- expect(query1.time?.last).toBe("1d");
18
- const query2 = parser.parseNaturalLanguage(
19
- "show me what happened yesterday"
20
- );
21
- expect(query2.time?.last).toBe("48h");
22
- const query3 = parser.parseNaturalLanguage(
23
- "get all work from last 3 weeks"
24
- );
25
- expect(query3.time?.last).toBe("3w");
26
- const query4 = parser.parseNaturalLanguage("what happened today");
27
- expect(query4.time?.last).toBe("24h");
28
- });
29
- it("should parse topic-based queries", () => {
30
- const query1 = parser.parseNaturalLanguage(
31
- "find all authentication work"
32
- );
33
- expect(query1.content?.topic).toContain("authentication");
34
- const query2 = parser.parseNaturalLanguage(
35
- "show database migration frames"
36
- );
37
- expect(query2.content?.topic).toContain("database");
38
- expect(query2.content?.topic).toContain("migration");
39
- const query3 = parser.parseNaturalLanguage(
40
- "get frames about the login bug"
41
- );
42
- expect(query3.content?.topic).toContain("login");
43
- expect(query3.content?.topic).toContain("bug");
44
- });
45
- it("should parse people-based queries", () => {
46
- const query1 = parser.parseNaturalLanguage("show @alice's recent work");
47
- expect(query1.people?.owner).toContain("alice");
48
- const query2 = parser.parseNaturalLanguage(
49
- "what did bob's changes include"
50
- );
51
- expect(query2.people?.owner).toContain("bob");
52
- const query3 = parser.parseNaturalLanguage("get team work from today");
53
- expect(query3.people?.team).toBe("$current_team");
54
- });
55
- it("should parse combined queries", () => {
56
- const query = parser.parseNaturalLanguage(
57
- "show @alice's auth work from last week"
58
- );
59
- expect(query.time?.last).toBe("1w");
60
- expect(query.people?.owner).toContain("alice");
61
- expect(query.content?.topic).toContain("auth");
62
- });
63
- it("should parse priority shortcuts", () => {
64
- const query1 = parser.parseNaturalLanguage("get critical bugs");
65
- expect(query1.frame?.score?.min).toBe(0.8);
66
- expect(query1.content?.topic).toContain("bug");
67
- const query2 = parser.parseNaturalLanguage("show high priority features");
68
- expect(query2.frame?.score?.min).toBe(0.7);
69
- expect(query2.content?.topic).toContain("feature");
70
- const query3 = parser.parseNaturalLanguage("find low priority tasks");
71
- expect(query3.frame?.score?.max).toBe(0.3);
72
- });
73
- it("should parse status shortcuts", () => {
74
- const query1 = parser.parseNaturalLanguage("show open frames");
75
- expect(query1.frame?.status).toContain(FrameStatus.OPEN);
76
- const query2 = parser.parseNaturalLanguage("get closed bugs");
77
- expect(query2.frame?.status).toContain(FrameStatus.CLOSED);
78
- const query3 = parser.parseNaturalLanguage("find active work");
79
- expect(query3.frame?.status).toContain(FrameStatus.OPEN);
80
- });
81
- it("should set default output settings", () => {
82
- const query = parser.parseNaturalLanguage("show recent work");
83
- expect(query.output).toEqual({
84
- limit: 50,
85
- sort: "time",
86
- format: "summary"
87
- });
88
- });
89
- });
90
- describe("parseStructured", () => {
91
- it("should validate score ranges", () => {
92
- const query = parser.parseStructured({
93
- frame: {
94
- score: {
95
- min: -0.5,
96
- max: 1.5
97
- }
98
- }
99
- });
100
- expect(query.frame?.score?.min).toBe(0);
101
- expect(query.frame?.score?.max).toBe(1);
102
- });
103
- it("should apply default output settings", () => {
104
- const query = parser.parseStructured({
105
- time: { last: "1d" }
106
- });
107
- expect(query.output).toEqual({
108
- limit: 50,
109
- sort: "time",
110
- format: "full"
111
- });
112
- });
113
- it("should preserve provided settings", () => {
114
- const input = {
115
- time: { last: "2h" },
116
- content: { topic: ["auth"] },
117
- output: {
118
- limit: 100,
119
- sort: "score",
120
- format: "ids"
121
- }
122
- };
123
- const query = parser.parseStructured(input);
124
- expect(query).toEqual(input);
125
- });
126
- });
127
- describe("parseHybrid", () => {
128
- it("should merge natural language with structured modifiers", () => {
129
- const query = parser.parseHybrid("show auth work", {
130
- time: { last: "3d" },
131
- output: { limit: 20 }
132
- });
133
- expect(query.content?.topic).toContain("auth");
134
- expect(query.time?.last).toBe("3d");
135
- expect(query.output?.limit).toBe(20);
136
- expect(query.output?.format).toBe("summary");
137
- });
138
- it("should override natural language with modifiers", () => {
139
- const query = parser.parseHybrid("show work from last week", {
140
- time: { last: "1d" }
141
- });
142
- expect(query.time?.last).toBe("1d");
143
- });
144
- });
145
- describe("expandQuery", () => {
146
- it("should expand topics with synonyms", () => {
147
- const query = parser.expandQuery({
148
- content: { topic: ["auth"] }
149
- });
150
- expect(query.content?.topic).toContain("auth");
151
- expect(query.content?.topic).toContain("authentication");
152
- expect(query.content?.topic).toContain("oauth");
153
- expect(query.content?.topic).toContain("login");
154
- expect(query.content?.topic).toContain("jwt");
155
- });
156
- it("should expand multiple topics", () => {
157
- const query = parser.expandQuery({
158
- content: { topic: ["bug", "database"] }
159
- });
160
- expect(query.content?.topic).toContain("bug");
161
- expect(query.content?.topic).toContain("error");
162
- expect(query.content?.topic).toContain("issue");
163
- expect(query.content?.topic).toContain("database");
164
- expect(query.content?.topic).toContain("db");
165
- expect(query.content?.topic).toContain("sql");
166
- });
167
- it("should preserve non-expandable topics", () => {
168
- const query = parser.expandQuery({
169
- content: { topic: ["custom-topic"] }
170
- });
171
- expect(query.content?.topic).toContain("custom-topic");
172
- expect(query.content?.topic?.length).toBe(1);
173
- });
174
- });
175
- describe("parse (QueryResponse)", () => {
176
- it("should return complete QueryResponse for natural language query", () => {
177
- const response = parser.parse("find authentication bugs from last week");
178
- expect(response.original).toBe("find authentication bugs from last week");
179
- expect(response.interpreted).toBeDefined();
180
- expect(response.interpreted.time?.last).toBe("1w");
181
- expect(response.interpreted.content?.topic).toContain("authentication");
182
- expect(response.interpreted.content?.topic).toContain("bug");
183
- expect(response.expanded).toBeDefined();
184
- expect(response.expanded.content?.topic).toContain("authentication");
185
- expect(response.expanded.content?.topic).toContain("auth");
186
- expect(response.expanded.content?.topic).toContain("oauth");
187
- expect(response.expanded.content?.topic).toContain("login");
188
- expect(response.suggestions).toBeDefined();
189
- expect(response.validationErrors).toBeUndefined();
190
- });
191
- it("should return QueryResponse for structured query", () => {
192
- const structuredQuery = {
193
- time: { last: "24h" },
194
- content: { topic: ["database"] },
195
- output: { limit: 10 }
196
- };
197
- const response = parser.parse(structuredQuery);
198
- expect(response.original).toBe(JSON.stringify(structuredQuery));
199
- expect(response.interpreted).toMatchObject(structuredQuery);
200
- expect(response.expanded.content?.topic).toContain("database");
201
- expect(response.expanded.content?.topic).toContain("db");
202
- expect(response.expanded.content?.topic).toContain("sql");
203
- expect(response.suggestions).toBeDefined();
204
- expect(response.suggestions?.length).toBeGreaterThan(0);
205
- });
206
- it("should detect and return validation errors", () => {
207
- const invalidQuery = {
208
- time: {
209
- since: /* @__PURE__ */ new Date("2024-12-25"),
210
- until: /* @__PURE__ */ new Date("2024-12-20")
211
- },
212
- frame: {
213
- score: { min: 0.9, max: 0.5 }
214
- },
215
- output: { limit: 5e3 }
216
- };
217
- const response = parser.parse(invalidQuery);
218
- expect(response.validationErrors).toBeDefined();
219
- expect(response.validationErrors).toContain(
220
- 'Time filter: "since" date is after "until" date'
221
- );
222
- expect(response.validationErrors).toContain(
223
- "Frame filter: Minimum score is greater than maximum score"
224
- );
225
- expect(response.validationErrors).toContain(
226
- "Output limit must be between 1 and 1000"
227
- );
228
- expect(response.suggestions).toContain(
229
- "Please correct the validation errors before running the query"
230
- );
231
- });
232
- it("should provide helpful suggestions for broad queries", () => {
233
- const response = parser.parse("show me everything");
234
- expect(response.suggestions).toBeDefined();
235
- expect(response.suggestions).toContain(
236
- 'Try adding a time filter like "last 24h" or "today"'
237
- );
238
- expect(response.suggestions).toContain(
239
- "Consider filtering by topic, frame type, or people to narrow results"
240
- );
241
- });
242
- it("should suggest shortcuts when applicable", () => {
243
- const response1 = parser.parse({ time: { last: "24h" } });
244
- expect(response1.suggestions).toContain(
245
- 'You can use "today" as a shortcut for last 24 hours'
246
- );
247
- const response2 = parser.parse({
248
- frame: { type: [FrameType.BUG, FrameType.DEBUG] }
249
- });
250
- expect(response2.suggestions).toContain(
251
- 'You can use "bugs" as a shortcut for bug and debug frames'
252
- );
253
- });
254
- it("should handle complex natural language queries", () => {
255
- const response = parser.parse(
256
- "@alice's critical authentication work from yesterday"
257
- );
258
- expect(response.interpreted.people?.owner).toContain("alice");
259
- expect(response.interpreted.frame?.score?.min).toBe(0.8);
260
- expect(response.interpreted.content?.topic).toContain("authentication");
261
- expect(response.interpreted.time?.last).toBe("48h");
262
- expect(response.expanded.content?.topic).toContain("auth");
263
- expect(response.expanded.content?.topic).toContain("oauth");
264
- expect(response.expanded.content?.topic).toContain("login");
265
- });
266
- it("should preserve original query in response", () => {
267
- const nlQuery = "find all bugs today";
268
- const response1 = parser.parse(nlQuery);
269
- expect(response1.original).toBe(nlQuery);
270
- const structQuery = {
271
- time: { last: "1d" },
272
- frame: { type: [FrameType.BUG] }
273
- };
274
- const response2 = parser.parse(structQuery);
275
- expect(response2.original).toBe(JSON.stringify(structQuery));
276
- expect(response2.interpreted.output).toBeDefined();
277
- expect(response2.interpreted.output?.limit).toBe(50);
278
- });
279
- it("should handle queries with file patterns", () => {
280
- const response = parser.parse(
281
- "show changes to *.ts and auth.js files today"
282
- );
283
- expect(response.interpreted.content?.files).toContain("*.ts");
284
- expect(response.interpreted.content?.files).toContain("auth.js");
285
- expect(response.interpreted.time?.last).toBe("24h");
286
- });
287
- it("should suggest time filter for bug searches without time limit", () => {
288
- const response = parser.parse({ frame: { type: [FrameType.BUG] } });
289
- expect(response.suggestions).toContain(
290
- "Add a time filter to focus on recent bugs"
291
- );
292
- });
293
- it("should suggest frame type with high score threshold", () => {
294
- const response = parser.parse({ frame: { score: { min: 0.85 } } });
295
- expect(response.suggestions).toContain(
296
- "Consider adding frame type filter with high score threshold"
297
- );
298
- });
299
- });
300
- });
301
- //# sourceMappingURL=query-parser.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/core/query/__tests__/query-parser.test.ts"],
4
- "sourcesContent": ["import { describe, it, expect, beforeEach } from 'vitest';\nimport {\n QueryParser,\n FrameType,\n FrameStatus,\n QueryResponse,\n} from '../query-parser';\n\ndescribe('QueryParser', () => {\n let parser: QueryParser;\n\n beforeEach(() => {\n parser = new QueryParser();\n });\n\n describe('parseNaturalLanguage', () => {\n it('should parse time-based queries', () => {\n const query1 = parser.parseNaturalLanguage(\n 'provide context from the last day'\n );\n expect(query1.time?.last).toBe('1d');\n\n const query2 = parser.parseNaturalLanguage(\n 'show me what happened yesterday'\n );\n expect(query2.time?.last).toBe('48h');\n\n const query3 = parser.parseNaturalLanguage(\n 'get all work from last 3 weeks'\n );\n expect(query3.time?.last).toBe('3w');\n\n const query4 = parser.parseNaturalLanguage('what happened today');\n expect(query4.time?.last).toBe('24h');\n });\n\n it('should parse topic-based queries', () => {\n const query1 = parser.parseNaturalLanguage(\n 'find all authentication work'\n );\n expect(query1.content?.topic).toContain('authentication');\n\n const query2 = parser.parseNaturalLanguage(\n 'show database migration frames'\n );\n expect(query2.content?.topic).toContain('database');\n expect(query2.content?.topic).toContain('migration');\n\n const query3 = parser.parseNaturalLanguage(\n 'get frames about the login bug'\n );\n expect(query3.content?.topic).toContain('login');\n expect(query3.content?.topic).toContain('bug');\n });\n\n it('should parse people-based queries', () => {\n const query1 = parser.parseNaturalLanguage(\"show @alice's recent work\");\n expect(query1.people?.owner).toContain('alice');\n\n const query2 = parser.parseNaturalLanguage(\n \"what did bob's changes include\"\n );\n expect(query2.people?.owner).toContain('bob');\n\n const query3 = parser.parseNaturalLanguage('get team work from today');\n expect(query3.people?.team).toBe('$current_team');\n });\n\n it('should parse combined queries', () => {\n const query = parser.parseNaturalLanguage(\n \"show @alice's auth work from last week\"\n );\n expect(query.time?.last).toBe('1w');\n expect(query.people?.owner).toContain('alice');\n expect(query.content?.topic).toContain('auth');\n });\n\n it('should parse priority shortcuts', () => {\n const query1 = parser.parseNaturalLanguage('get critical bugs');\n expect(query1.frame?.score?.min).toBe(0.8);\n expect(query1.content?.topic).toContain('bug');\n\n const query2 = parser.parseNaturalLanguage('show high priority features');\n expect(query2.frame?.score?.min).toBe(0.7);\n expect(query2.content?.topic).toContain('feature');\n\n const query3 = parser.parseNaturalLanguage('find low priority tasks');\n expect(query3.frame?.score?.max).toBe(0.3);\n });\n\n it('should parse status shortcuts', () => {\n const query1 = parser.parseNaturalLanguage('show open frames');\n expect(query1.frame?.status).toContain(FrameStatus.OPEN);\n\n const query2 = parser.parseNaturalLanguage('get closed bugs');\n expect(query2.frame?.status).toContain(FrameStatus.CLOSED);\n\n const query3 = parser.parseNaturalLanguage('find active work');\n expect(query3.frame?.status).toContain(FrameStatus.OPEN);\n });\n\n it('should set default output settings', () => {\n const query = parser.parseNaturalLanguage('show recent work');\n expect(query.output).toEqual({\n limit: 50,\n sort: 'time',\n format: 'summary',\n });\n });\n });\n\n describe('parseStructured', () => {\n it('should validate score ranges', () => {\n const query = parser.parseStructured({\n frame: {\n score: {\n min: -0.5,\n max: 1.5,\n },\n },\n });\n expect(query.frame?.score?.min).toBe(0);\n expect(query.frame?.score?.max).toBe(1);\n });\n\n it('should apply default output settings', () => {\n const query = parser.parseStructured({\n time: { last: '1d' },\n });\n expect(query.output).toEqual({\n limit: 50,\n sort: 'time',\n format: 'full',\n });\n });\n\n it('should preserve provided settings', () => {\n const input = {\n time: { last: '2h' },\n content: { topic: ['auth'] },\n output: {\n limit: 100,\n sort: 'score' as const,\n format: 'ids' as const,\n },\n };\n const query = parser.parseStructured(input);\n expect(query).toEqual(input);\n });\n });\n\n describe('parseHybrid', () => {\n it('should merge natural language with structured modifiers', () => {\n const query = parser.parseHybrid('show auth work', {\n time: { last: '3d' },\n output: { limit: 20 },\n });\n\n expect(query.content?.topic).toContain('auth');\n expect(query.time?.last).toBe('3d');\n expect(query.output?.limit).toBe(20);\n expect(query.output?.format).toBe('summary');\n });\n\n it('should override natural language with modifiers', () => {\n const query = parser.parseHybrid('show work from last week', {\n time: { last: '1d' },\n });\n\n expect(query.time?.last).toBe('1d');\n });\n });\n\n describe('expandQuery', () => {\n it('should expand topics with synonyms', () => {\n const query = parser.expandQuery({\n content: { topic: ['auth'] },\n });\n\n expect(query.content?.topic).toContain('auth');\n expect(query.content?.topic).toContain('authentication');\n expect(query.content?.topic).toContain('oauth');\n expect(query.content?.topic).toContain('login');\n expect(query.content?.topic).toContain('jwt');\n });\n\n it('should expand multiple topics', () => {\n const query = parser.expandQuery({\n content: { topic: ['bug', 'database'] },\n });\n\n expect(query.content?.topic).toContain('bug');\n expect(query.content?.topic).toContain('error');\n expect(query.content?.topic).toContain('issue');\n expect(query.content?.topic).toContain('database');\n expect(query.content?.topic).toContain('db');\n expect(query.content?.topic).toContain('sql');\n });\n\n it('should preserve non-expandable topics', () => {\n const query = parser.expandQuery({\n content: { topic: ['custom-topic'] },\n });\n\n expect(query.content?.topic).toContain('custom-topic');\n expect(query.content?.topic?.length).toBe(1);\n });\n });\n\n describe('parse (QueryResponse)', () => {\n it('should return complete QueryResponse for natural language query', () => {\n const response = parser.parse('find authentication bugs from last week');\n\n expect(response.original).toBe('find authentication bugs from last week');\n expect(response.interpreted).toBeDefined();\n expect(response.interpreted.time?.last).toBe('1w');\n expect(response.interpreted.content?.topic).toContain('authentication');\n expect(response.interpreted.content?.topic).toContain('bug');\n\n expect(response.expanded).toBeDefined();\n expect(response.expanded.content?.topic).toContain('authentication');\n expect(response.expanded.content?.topic).toContain('auth');\n expect(response.expanded.content?.topic).toContain('oauth');\n expect(response.expanded.content?.topic).toContain('login');\n\n expect(response.suggestions).toBeDefined();\n expect(response.validationErrors).toBeUndefined();\n });\n\n it('should return QueryResponse for structured query', () => {\n const structuredQuery = {\n time: { last: '24h' },\n content: { topic: ['database'] },\n output: { limit: 10 },\n };\n\n const response = parser.parse(structuredQuery);\n\n expect(response.original).toBe(JSON.stringify(structuredQuery));\n expect(response.interpreted).toMatchObject(structuredQuery);\n expect(response.expanded.content?.topic).toContain('database');\n expect(response.expanded.content?.topic).toContain('db');\n expect(response.expanded.content?.topic).toContain('sql');\n\n expect(response.suggestions).toBeDefined();\n expect(response.suggestions?.length).toBeGreaterThan(0);\n });\n\n it('should detect and return validation errors', () => {\n const invalidQuery = {\n time: {\n since: new Date('2024-12-25'),\n until: new Date('2024-12-20'),\n },\n frame: {\n score: { min: 0.9, max: 0.5 },\n },\n output: { limit: 5000 },\n };\n\n const response = parser.parse(invalidQuery);\n\n expect(response.validationErrors).toBeDefined();\n expect(response.validationErrors).toContain(\n 'Time filter: \"since\" date is after \"until\" date'\n );\n expect(response.validationErrors).toContain(\n 'Frame filter: Minimum score is greater than maximum score'\n );\n expect(response.validationErrors).toContain(\n 'Output limit must be between 1 and 1000'\n );\n\n expect(response.suggestions).toContain(\n 'Please correct the validation errors before running the query'\n );\n });\n\n it('should provide helpful suggestions for broad queries', () => {\n const response = parser.parse('show me everything');\n\n expect(response.suggestions).toBeDefined();\n expect(response.suggestions).toContain(\n 'Try adding a time filter like \"last 24h\" or \"today\"'\n );\n expect(response.suggestions).toContain(\n 'Consider filtering by topic, frame type, or people to narrow results'\n );\n });\n\n it('should suggest shortcuts when applicable', () => {\n const response1 = parser.parse({ time: { last: '24h' } });\n expect(response1.suggestions).toContain(\n 'You can use \"today\" as a shortcut for last 24 hours'\n );\n\n const response2 = parser.parse({\n frame: { type: [FrameType.BUG, FrameType.DEBUG] },\n });\n expect(response2.suggestions).toContain(\n 'You can use \"bugs\" as a shortcut for bug and debug frames'\n );\n });\n\n it('should handle complex natural language queries', () => {\n const response = parser.parse(\n \"@alice's critical authentication work from yesterday\"\n );\n\n expect(response.interpreted.people?.owner).toContain('alice');\n expect(response.interpreted.frame?.score?.min).toBe(0.8);\n expect(response.interpreted.content?.topic).toContain('authentication');\n expect(response.interpreted.time?.last).toBe('48h');\n\n expect(response.expanded.content?.topic).toContain('auth');\n expect(response.expanded.content?.topic).toContain('oauth');\n expect(response.expanded.content?.topic).toContain('login');\n });\n\n it('should preserve original query in response', () => {\n const nlQuery = 'find all bugs today';\n const response1 = parser.parse(nlQuery);\n expect(response1.original).toBe(nlQuery);\n\n const structQuery = {\n time: { last: '1d' },\n frame: { type: [FrameType.BUG] },\n };\n const response2 = parser.parse(structQuery);\n // Original should be the input as provided, before any processing\n expect(response2.original).toBe(JSON.stringify(structQuery));\n // Interpreted should have defaults added\n expect(response2.interpreted.output).toBeDefined();\n expect(response2.interpreted.output?.limit).toBe(50);\n });\n\n it('should handle queries with file patterns', () => {\n const response = parser.parse(\n 'show changes to *.ts and auth.js files today'\n );\n\n expect(response.interpreted.content?.files).toContain('*.ts');\n expect(response.interpreted.content?.files).toContain('auth.js');\n expect(response.interpreted.time?.last).toBe('24h');\n });\n\n it('should suggest time filter for bug searches without time limit', () => {\n const response = parser.parse({ frame: { type: [FrameType.BUG] } });\n\n expect(response.suggestions).toContain(\n 'Add a time filter to focus on recent bugs'\n );\n });\n\n it('should suggest frame type with high score threshold', () => {\n const response = parser.parse({ frame: { score: { min: 0.85 } } });\n\n expect(response.suggestions).toContain(\n 'Consider adding frame type filter with high score threshold'\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,210 +0,0 @@
1
- import { describe, it, expect, beforeEach } from "vitest";
2
- import {
3
- QueryTemplates,
4
- InlineModifierParser
5
- } from "../query-templates";
6
- import { FrameType, FrameStatus } from "../query-parser";
7
- describe("QueryTemplates", () => {
8
- let templates;
9
- beforeEach(() => {
10
- templates = new QueryTemplates();
11
- });
12
- describe("matchTemplate", () => {
13
- it("should match daily standup template", () => {
14
- const result = templates.matchTemplate("standup for alice");
15
- expect(result).toBeDefined();
16
- expect(result?.time?.last).toBe("24h");
17
- expect(result?.people?.owner).toContain("alice");
18
- expect(result?.output?.groupBy).toBe("frame");
19
- });
20
- it("should match error investigation template", () => {
21
- const result = templates.matchTemplate(
22
- "investigate error in authentication"
23
- );
24
- expect(result).toBeDefined();
25
- expect(result?.content?.topic).toContain("error");
26
- expect(result?.content?.topic).toContain("bug");
27
- expect(result?.content?.keywords).toContain("authentication");
28
- expect(result?.frame?.type).toContain(FrameType.BUG);
29
- expect(result?.time?.last).toBe("48h");
30
- });
31
- it("should match feature progress template", () => {
32
- const result = templates.matchTemplate("progress on payment feature");
33
- expect(result).toBeDefined();
34
- expect(result?.content?.keywords).toContain("payment");
35
- expect(result?.frame?.type).toContain(FrameType.FEATURE);
36
- expect(result?.frame?.status).toContain(FrameStatus.OPEN);
37
- });
38
- it("should match code review template for files", () => {
39
- const result = templates.matchTemplate("code review for auth.js");
40
- expect(result).toBeDefined();
41
- expect(result?.content?.files).toContain("auth.js");
42
- expect(result?.time?.last).toBe("24h");
43
- expect(result?.output?.format).toBe("full");
44
- });
45
- it("should match code review template for topics", () => {
46
- const result = templates.matchTemplate("code review for authentication");
47
- expect(result).toBeDefined();
48
- expect(result?.content?.topic).toContain("authentication");
49
- expect(result?.time?.last).toBe("24h");
50
- });
51
- it("should match team retrospective template", () => {
52
- const result = templates.matchTemplate("retrospective for last sprint");
53
- expect(result).toBeDefined();
54
- expect(result?.people?.team).toBe("$current_team");
55
- expect(result?.time?.last).toBe("14d");
56
- expect(result?.output?.groupBy).toBe("owner");
57
- });
58
- it("should match performance analysis template", () => {
59
- const result = templates.matchTemplate(
60
- "performance issues for dashboard"
61
- );
62
- expect(result).toBeDefined();
63
- expect(result?.content?.topic).toContain("performance");
64
- expect(result?.content?.keywords).toContain("dashboard");
65
- expect(result?.time?.last).toBe("7d");
66
- });
67
- it("should match security audit template", () => {
68
- const result = templates.matchTemplate("security audit");
69
- expect(result).toBeDefined();
70
- expect(result?.content?.topic).toContain("security");
71
- expect(result?.frame?.score?.min).toBe(0.7);
72
- });
73
- it("should match deployment readiness template", () => {
74
- const result = templates.matchTemplate("deployment readiness for v2.0");
75
- expect(result).toBeDefined();
76
- expect(result?.content?.topic).toContain("deployment");
77
- expect(result?.content?.keywords).toContain("v2.0");
78
- expect(result?.frame?.status).toContain(FrameStatus.OPEN);
79
- });
80
- it("should return null for non-matching queries", () => {
81
- const result = templates.matchTemplate(
82
- "random query that does not match"
83
- );
84
- expect(result).toBeNull();
85
- });
86
- });
87
- describe("addTemplate", () => {
88
- it("should allow adding custom templates", () => {
89
- const customTemplate = {
90
- name: "custom-test",
91
- description: "Custom test template",
92
- pattern: /^custom test (\w+)$/i,
93
- builder: (match) => ({
94
- content: { topic: [match[1]] }
95
- })
96
- };
97
- templates.addTemplate(customTemplate);
98
- const result = templates.matchTemplate("custom test authentication");
99
- expect(result).toBeDefined();
100
- expect(result?.content?.topic).toContain("authentication");
101
- });
102
- });
103
- describe("getTemplateInfo", () => {
104
- it("should return all template information", () => {
105
- const info = templates.getTemplateInfo();
106
- expect(info).toBeDefined();
107
- expect(info.length).toBeGreaterThan(0);
108
- expect(info[0]).toHaveProperty("name");
109
- expect(info[0]).toHaveProperty("description");
110
- });
111
- });
112
- });
113
- describe("InlineModifierParser", () => {
114
- let parser;
115
- beforeEach(() => {
116
- parser = new InlineModifierParser();
117
- });
118
- describe("parse", () => {
119
- it("should parse time modifiers", () => {
120
- const { cleanQuery, modifiers } = parser.parse("auth work +last:3d");
121
- expect(cleanQuery).toBe("auth work");
122
- expect(modifiers.time?.last).toBe("3d");
123
- });
124
- it("should parse multiple time modifiers", () => {
125
- const { cleanQuery, modifiers } = parser.parse(
126
- "database work +since:2024-12-20 +until:2024-12-25"
127
- );
128
- expect(cleanQuery).toBe("database work");
129
- expect(modifiers.time?.since).toBeDefined();
130
- expect(modifiers.time?.until).toBeDefined();
131
- });
132
- it("should parse owner modifiers", () => {
133
- const { cleanQuery, modifiers } = parser.parse(
134
- "recent work +owner:alice +owner:bob"
135
- );
136
- expect(cleanQuery).toBe("recent work");
137
- expect(modifiers.people?.owner).toContain("alice");
138
- expect(modifiers.people?.owner).toContain("bob");
139
- });
140
- it("should parse team modifier", () => {
141
- const { cleanQuery, modifiers } = parser.parse(
142
- "sprint work +team:backend"
143
- );
144
- expect(cleanQuery).toBe("sprint work");
145
- expect(modifiers.people?.team).toBe("backend");
146
- });
147
- it("should parse content modifiers", () => {
148
- const { cleanQuery, modifiers } = parser.parse(
149
- "recent changes +topic:auth +file:*.js"
150
- );
151
- expect(cleanQuery).toBe("recent changes");
152
- expect(modifiers.content?.topic).toContain("auth");
153
- expect(modifiers.content?.files).toContain("*.js");
154
- });
155
- it("should parse output modifiers", () => {
156
- const { cleanQuery, modifiers } = parser.parse(
157
- "all work +sort:score +limit:100 +format:full"
158
- );
159
- expect(cleanQuery).toBe("all work");
160
- expect(modifiers.output?.sort).toBe("score");
161
- expect(modifiers.output?.limit).toBe(100);
162
- expect(modifiers.output?.format).toBe("full");
163
- });
164
- it("should parse grouping modifier", () => {
165
- const { cleanQuery, modifiers } = parser.parse("team work +group:owner");
166
- expect(cleanQuery).toBe("team work");
167
- expect(modifiers.output?.groupBy).toBe("owner");
168
- });
169
- it("should parse frame status modifiers", () => {
170
- const { cleanQuery, modifiers } = parser.parse(
171
- "current tasks +status:open +status:stalled"
172
- );
173
- expect(cleanQuery).toBe("current tasks");
174
- expect(modifiers.frame?.status).toContain(FrameStatus.OPEN);
175
- expect(modifiers.frame?.status).toContain(FrameStatus.STALLED);
176
- });
177
- it("should parse priority modifiers", () => {
178
- const { cleanQuery, modifiers } = parser.parse(
179
- "issues +priority:critical"
180
- );
181
- expect(cleanQuery).toBe("issues");
182
- expect(modifiers.frame?.score?.min).toBe(0.8);
183
- });
184
- it("should handle complex queries with multiple modifiers", () => {
185
- const { cleanQuery, modifiers } = parser.parse(
186
- "authentication bugs +last:7d +owner:alice +priority:high +sort:time +limit:20"
187
- );
188
- expect(cleanQuery).toBe("authentication bugs");
189
- expect(modifiers.time?.last).toBe("7d");
190
- expect(modifiers.people?.owner).toContain("alice");
191
- expect(modifiers.frame?.score?.min).toBe(0.7);
192
- expect(modifiers.output?.sort).toBe("time");
193
- expect(modifiers.output?.limit).toBe(20);
194
- });
195
- it("should handle queries without modifiers", () => {
196
- const { cleanQuery, modifiers } = parser.parse(
197
- "simple query without modifiers"
198
- );
199
- expect(cleanQuery).toBe("simple query without modifiers");
200
- expect(modifiers).toEqual({});
201
- });
202
- it("should clean up whitespace after removing modifiers", () => {
203
- const { cleanQuery } = parser.parse(
204
- " auth work +last:3d +owner:alice "
205
- );
206
- expect(cleanQuery).toBe("auth work");
207
- });
208
- });
209
- });
210
- //# sourceMappingURL=query-templates.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/core/query/__tests__/query-templates.test.ts"],
4
- "sourcesContent": ["import { describe, it, expect, beforeEach } from 'vitest';\nimport {\n QueryTemplates,\n InlineModifierParser,\n QueryTemplate,\n} from '../query-templates';\nimport { FrameType, FrameStatus } from '../query-parser';\n\ndescribe('QueryTemplates', () => {\n let templates: QueryTemplates;\n\n beforeEach(() => {\n templates = new QueryTemplates();\n });\n\n describe('matchTemplate', () => {\n it('should match daily standup template', () => {\n const result = templates.matchTemplate('standup for alice');\n expect(result).toBeDefined();\n expect(result?.time?.last).toBe('24h');\n expect(result?.people?.owner).toContain('alice');\n expect(result?.output?.groupBy).toBe('frame');\n });\n\n it('should match error investigation template', () => {\n const result = templates.matchTemplate(\n 'investigate error in authentication'\n );\n expect(result).toBeDefined();\n expect(result?.content?.topic).toContain('error');\n expect(result?.content?.topic).toContain('bug');\n expect(result?.content?.keywords).toContain('authentication');\n expect(result?.frame?.type).toContain(FrameType.BUG);\n expect(result?.time?.last).toBe('48h');\n });\n\n it('should match feature progress template', () => {\n const result = templates.matchTemplate('progress on payment feature');\n expect(result).toBeDefined();\n expect(result?.content?.keywords).toContain('payment');\n expect(result?.frame?.type).toContain(FrameType.FEATURE);\n expect(result?.frame?.status).toContain(FrameStatus.OPEN);\n });\n\n it('should match code review template for files', () => {\n const result = templates.matchTemplate('code review for auth.js');\n expect(result).toBeDefined();\n expect(result?.content?.files).toContain('auth.js');\n expect(result?.time?.last).toBe('24h');\n expect(result?.output?.format).toBe('full');\n });\n\n it('should match code review template for topics', () => {\n const result = templates.matchTemplate('code review for authentication');\n expect(result).toBeDefined();\n expect(result?.content?.topic).toContain('authentication');\n expect(result?.time?.last).toBe('24h');\n });\n\n it('should match team retrospective template', () => {\n const result = templates.matchTemplate('retrospective for last sprint');\n expect(result).toBeDefined();\n expect(result?.people?.team).toBe('$current_team');\n expect(result?.time?.last).toBe('14d');\n expect(result?.output?.groupBy).toBe('owner');\n });\n\n it('should match performance analysis template', () => {\n const result = templates.matchTemplate(\n 'performance issues for dashboard'\n );\n expect(result).toBeDefined();\n expect(result?.content?.topic).toContain('performance');\n expect(result?.content?.keywords).toContain('dashboard');\n expect(result?.time?.last).toBe('7d');\n });\n\n it('should match security audit template', () => {\n const result = templates.matchTemplate('security audit');\n expect(result).toBeDefined();\n expect(result?.content?.topic).toContain('security');\n expect(result?.frame?.score?.min).toBe(0.7);\n });\n\n it('should match deployment readiness template', () => {\n const result = templates.matchTemplate('deployment readiness for v2.0');\n expect(result).toBeDefined();\n expect(result?.content?.topic).toContain('deployment');\n expect(result?.content?.keywords).toContain('v2.0');\n expect(result?.frame?.status).toContain(FrameStatus.OPEN);\n });\n\n it('should return null for non-matching queries', () => {\n const result = templates.matchTemplate(\n 'random query that does not match'\n );\n expect(result).toBeNull();\n });\n });\n\n describe('addTemplate', () => {\n it('should allow adding custom templates', () => {\n const customTemplate: QueryTemplate = {\n name: 'custom-test',\n description: 'Custom test template',\n pattern: /^custom test (\\w+)$/i,\n builder: (match) => ({\n content: { topic: [match[1]] },\n }),\n };\n\n templates.addTemplate(customTemplate);\n const result = templates.matchTemplate('custom test authentication');\n expect(result).toBeDefined();\n expect(result?.content?.topic).toContain('authentication');\n });\n });\n\n describe('getTemplateInfo', () => {\n it('should return all template information', () => {\n const info = templates.getTemplateInfo();\n expect(info).toBeDefined();\n expect(info.length).toBeGreaterThan(0);\n expect(info[0]).toHaveProperty('name');\n expect(info[0]).toHaveProperty('description');\n });\n });\n});\n\ndescribe('InlineModifierParser', () => {\n let parser: InlineModifierParser;\n\n beforeEach(() => {\n parser = new InlineModifierParser();\n });\n\n describe('parse', () => {\n it('should parse time modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse('auth work +last:3d');\n expect(cleanQuery).toBe('auth work');\n expect(modifiers.time?.last).toBe('3d');\n });\n\n it('should parse multiple time modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'database work +since:2024-12-20 +until:2024-12-25'\n );\n expect(cleanQuery).toBe('database work');\n expect(modifiers.time?.since).toBeDefined();\n expect(modifiers.time?.until).toBeDefined();\n });\n\n it('should parse owner modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'recent work +owner:alice +owner:bob'\n );\n expect(cleanQuery).toBe('recent work');\n expect(modifiers.people?.owner).toContain('alice');\n expect(modifiers.people?.owner).toContain('bob');\n });\n\n it('should parse team modifier', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'sprint work +team:backend'\n );\n expect(cleanQuery).toBe('sprint work');\n expect(modifiers.people?.team).toBe('backend');\n });\n\n it('should parse content modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'recent changes +topic:auth +file:*.js'\n );\n expect(cleanQuery).toBe('recent changes');\n expect(modifiers.content?.topic).toContain('auth');\n expect(modifiers.content?.files).toContain('*.js');\n });\n\n it('should parse output modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'all work +sort:score +limit:100 +format:full'\n );\n expect(cleanQuery).toBe('all work');\n expect(modifiers.output?.sort).toBe('score');\n expect(modifiers.output?.limit).toBe(100);\n expect(modifiers.output?.format).toBe('full');\n });\n\n it('should parse grouping modifier', () => {\n const { cleanQuery, modifiers } = parser.parse('team work +group:owner');\n expect(cleanQuery).toBe('team work');\n expect(modifiers.output?.groupBy).toBe('owner');\n });\n\n it('should parse frame status modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'current tasks +status:open +status:stalled'\n );\n expect(cleanQuery).toBe('current tasks');\n expect(modifiers.frame?.status).toContain(FrameStatus.OPEN);\n expect(modifiers.frame?.status).toContain(FrameStatus.STALLED);\n });\n\n it('should parse priority modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'issues +priority:critical'\n );\n expect(cleanQuery).toBe('issues');\n expect(modifiers.frame?.score?.min).toBe(0.8);\n });\n\n it('should handle complex queries with multiple modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'authentication bugs +last:7d +owner:alice +priority:high +sort:time +limit:20'\n );\n expect(cleanQuery).toBe('authentication bugs');\n expect(modifiers.time?.last).toBe('7d');\n expect(modifiers.people?.owner).toContain('alice');\n expect(modifiers.frame?.score?.min).toBe(0.7);\n expect(modifiers.output?.sort).toBe('time');\n expect(modifiers.output?.limit).toBe(20);\n });\n\n it('should handle queries without modifiers', () => {\n const { cleanQuery, modifiers } = parser.parse(\n 'simple query without modifiers'\n );\n expect(cleanQuery).toBe('simple query without modifiers');\n expect(modifiers).toEqual({});\n });\n\n it('should clean up whitespace after removing modifiers', () => {\n const { cleanQuery } = parser.parse(\n ' auth work +last:3d +owner:alice '\n );\n expect(cleanQuery).toBe('auth work');\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": []
7
- }