@stackmemoryai/stackmemory 0.3.0 → 0.3.3

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