@stackmemoryai/stackmemory 0.3.1 → 0.3.3

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