@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,125 +0,0 @@
1
- /**
2
- * Linear Bi-directional Sync Engine
3
- * Handles syncing tasks between StackMemory and Linear
4
- */
5
- import { PebblesTaskStore } from '../../features/tasks/pebbles-task-store.js';
6
- import { LinearAuthManager } from './auth.js';
7
- export interface SyncConfig {
8
- enabled: boolean;
9
- direction: 'bidirectional' | 'to_linear' | 'from_linear';
10
- defaultTeamId?: string;
11
- autoSync: boolean;
12
- conflictResolution: 'linear_wins' | 'stackmemory_wins' | 'manual' | 'newest_wins';
13
- syncInterval?: number;
14
- maxBatchSize?: number;
15
- rateLimitDelay?: number;
16
- }
17
- export interface SyncResult {
18
- success: boolean;
19
- synced: {
20
- toLinear: number;
21
- fromLinear: number;
22
- updated: number;
23
- };
24
- conflicts: Array<{
25
- taskId: string;
26
- linearId: string;
27
- reason: string;
28
- }>;
29
- errors: string[];
30
- }
31
- export interface TaskMapping {
32
- stackmemoryId: string;
33
- linearId: string;
34
- linearIdentifier: string;
35
- lastSyncTimestamp: number;
36
- lastLinearUpdate: string;
37
- lastStackMemoryUpdate: number;
38
- }
39
- export declare class LinearSyncEngine {
40
- private taskStore;
41
- private linearClient;
42
- private authManager;
43
- private config;
44
- private mappings;
45
- private projectRoot;
46
- private mappingsPath;
47
- constructor(taskStore: PebblesTaskStore, authManager: LinearAuthManager, config: SyncConfig, projectRoot?: string);
48
- /**
49
- * Update sync configuration
50
- */
51
- updateConfig(newConfig: Partial<SyncConfig>): void;
52
- /**
53
- * Perform bi-directional sync
54
- */
55
- sync(): Promise<SyncResult>;
56
- /**
57
- * Delay helper for rate limiting
58
- */
59
- private delay;
60
- /**
61
- * Sync tasks from StackMemory to Linear
62
- */
63
- private syncToLinear;
64
- /**
65
- * Sync tasks from Linear to StackMemory
66
- */
67
- private syncFromLinear;
68
- /**
69
- * Create Linear issue from StackMemory task
70
- */
71
- private createLinearIssueFromTask;
72
- /**
73
- * Update Linear issue from StackMemory task
74
- */
75
- private updateLinearIssueFromTask;
76
- /**
77
- * Update StackMemory task from Linear issue
78
- */
79
- private updateTaskFromLinearIssue;
80
- /**
81
- * Check if task should be updated from Linear based on conflict resolution strategy
82
- */
83
- private shouldUpdateFromLinear;
84
- /**
85
- * Get tasks that haven't been synced to Linear yet
86
- */
87
- private getUnsyncedTasks;
88
- /**
89
- * Get tasks that have been modified since last sync
90
- */
91
- private getModifiedTasks;
92
- /**
93
- * Update task with Linear reference
94
- */
95
- private updateTaskWithLinearRef;
96
- private formatDescriptionForLinear;
97
- private mapPriorityToLinear;
98
- private mapTagsToLinear;
99
- private mapLinearStateToStatus;
100
- private mapStatusToLinearState;
101
- private getLinearStateTypeFromStatus;
102
- private loadMappings;
103
- private saveMappings;
104
- /**
105
- * Import all issues from Linear to local task store
106
- */
107
- importFromLinear(): Promise<{
108
- imported: number;
109
- skipped: number;
110
- errors: string[];
111
- }>;
112
- /**
113
- * Create a local task from a Linear issue
114
- */
115
- private createTaskFromLinearIssue;
116
- /**
117
- * Map Linear priority (0-4) to local TaskPriority
118
- */
119
- private mapLinearPriorityToLocal;
120
- }
121
- /**
122
- * Default sync configuration
123
- */
124
- export declare const DEFAULT_SYNC_CONFIG: SyncConfig;
125
- //# sourceMappingURL=sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/integrations/linear/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAEL,gBAAgB,EAGjB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EACd,aAAa,GACb,kBAAkB,GAClB,QAAQ,GACR,aAAa,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;gBAG3B,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,UAAU,EAClB,WAAW,CAAC,EAAE,MAAM;IAqCtB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAIlD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAgEjC;;OAEG;YACW,KAAK;IAInB;;OAEG;YACW,YAAY;IA+F1B;;OAEG;YACW,cAAc;IA+F5B;;OAEG;YACW,yBAAyB;IAiBvC;;OAEG;YACW,yBAAyB;IAiBvC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAmBjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,sBAAsB;YAgBhB,sBAAsB;IAyBpC,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAmEF;;OAEG;YACW,yBAAyB;IA+CvC;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAcjC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAQjC,CAAC"}
@@ -1,563 +0,0 @@
1
- /**
2
- * Linear Bi-directional Sync Engine
3
- * Handles syncing tasks between StackMemory and Linear
4
- */
5
- import { readFileSync, writeFileSync, existsSync } from 'fs';
6
- import { join } from 'path';
7
- import { logger } from '../../core/monitoring/logger.js';
8
- import { LinearClient } from './client.js';
9
- export class LinearSyncEngine {
10
- taskStore;
11
- linearClient;
12
- authManager;
13
- config;
14
- mappings = new Map();
15
- projectRoot;
16
- mappingsPath;
17
- constructor(taskStore, authManager, config, projectRoot) {
18
- this.taskStore = taskStore;
19
- this.authManager = authManager;
20
- this.config = config;
21
- this.projectRoot = projectRoot || process.cwd();
22
- this.mappingsPath = join(this.projectRoot, '.stackmemory', 'linear-mappings.json');
23
- // Check for API key from environment variable first
24
- const apiKey = process.env.LINEAR_API_KEY;
25
- if (apiKey) {
26
- // Use API key from environment
27
- this.linearClient = new LinearClient({
28
- apiKey: apiKey,
29
- });
30
- }
31
- else {
32
- // Fall back to OAuth tokens
33
- const tokens = this.authManager.loadTokens();
34
- if (!tokens) {
35
- throw new Error('Linear API key or authentication tokens not found. Set LINEAR_API_KEY environment variable or run "stackmemory linear setup" first.');
36
- }
37
- this.linearClient = new LinearClient({
38
- apiKey: tokens.accessToken,
39
- });
40
- }
41
- this.loadMappings();
42
- }
43
- /**
44
- * Update sync configuration
45
- */
46
- updateConfig(newConfig) {
47
- this.config = { ...this.config, ...newConfig };
48
- }
49
- /**
50
- * Perform bi-directional sync
51
- */
52
- async sync() {
53
- if (!this.config.enabled) {
54
- return {
55
- success: false,
56
- synced: { toLinear: 0, fromLinear: 0, updated: 0 },
57
- conflicts: [],
58
- errors: ['Sync is disabled'],
59
- };
60
- }
61
- const result = {
62
- success: true,
63
- synced: { toLinear: 0, fromLinear: 0, updated: 0 },
64
- conflicts: [],
65
- errors: [],
66
- };
67
- try {
68
- // Update client with valid token if not using environment API key
69
- const apiKey = process.env.LINEAR_API_KEY;
70
- if (!apiKey) {
71
- const token = await this.authManager.getValidToken();
72
- this.linearClient = new LinearClient({ apiKey: token });
73
- }
74
- // Get team info if not configured
75
- if (!this.config.defaultTeamId) {
76
- const team = await this.linearClient.getTeam();
77
- this.config.defaultTeamId = team.id;
78
- logger.info(`Using Linear team: ${team.name} (${team.key})`);
79
- }
80
- // Sync in both directions based on configuration
81
- if (this.config.direction === 'bidirectional' ||
82
- this.config.direction === 'to_linear') {
83
- const toLinearResult = await this.syncToLinear();
84
- result.synced.toLinear = toLinearResult.created;
85
- result.synced.updated += toLinearResult.updated;
86
- result.errors.push(...toLinearResult.errors);
87
- }
88
- if (this.config.direction === 'bidirectional' ||
89
- this.config.direction === 'from_linear') {
90
- const fromLinearResult = await this.syncFromLinear();
91
- result.synced.fromLinear = fromLinearResult.created;
92
- result.synced.updated += fromLinearResult.updated;
93
- result.conflicts.push(...fromLinearResult.conflicts);
94
- result.errors.push(...fromLinearResult.errors);
95
- }
96
- this.saveMappings();
97
- }
98
- catch (error) {
99
- result.success = false;
100
- result.errors.push(`Sync failed: ${String(error)}`);
101
- logger.error('Linear sync failed:', error);
102
- }
103
- return result;
104
- }
105
- /**
106
- * Delay helper for rate limiting
107
- */
108
- async delay(ms) {
109
- return new Promise((resolve) => setTimeout(resolve, ms));
110
- }
111
- /**
112
- * Sync tasks from StackMemory to Linear
113
- */
114
- async syncToLinear() {
115
- const result = { created: 0, updated: 0, errors: [] };
116
- const maxBatchSize = this.config.maxBatchSize || 10;
117
- const rateLimitDelay = this.config.rateLimitDelay || 500;
118
- // Get unsynced tasks from StackMemory
119
- const unsyncedTasks = this.getUnsyncedTasks();
120
- // Limit batch size to avoid rate limits
121
- const tasksToSync = unsyncedTasks.slice(0, maxBatchSize);
122
- if (unsyncedTasks.length > maxBatchSize) {
123
- logger.info(`Syncing ${tasksToSync.length} of ${unsyncedTasks.length} unsynced tasks (batch limit)`);
124
- }
125
- for (const task of tasksToSync) {
126
- try {
127
- const linearIssue = await this.createLinearIssueFromTask(task);
128
- // Create mapping
129
- const mapping = {
130
- stackmemoryId: task.id,
131
- linearId: linearIssue.id,
132
- linearIdentifier: linearIssue.identifier,
133
- lastSyncTimestamp: Date.now(),
134
- lastLinearUpdate: linearIssue.updatedAt,
135
- lastStackMemoryUpdate: task.timestamp * 1000,
136
- };
137
- this.mappings.set(task.id, mapping);
138
- // Update task with Linear reference
139
- this.updateTaskWithLinearRef(task.id, linearIssue);
140
- result.created++;
141
- logger.info(`Synced task to Linear: ${task.title} → ${linearIssue.identifier}`);
142
- // Rate limit delay between creates
143
- await this.delay(rateLimitDelay);
144
- }
145
- catch (error) {
146
- const errorMsg = String(error);
147
- // Stop syncing on rate limit errors
148
- if (errorMsg.includes('rate limit') ||
149
- errorMsg.includes('usage limit')) {
150
- logger.warn('Rate limit hit, stopping sync batch');
151
- result.errors.push('Rate limit reached - sync paused');
152
- break;
153
- }
154
- result.errors.push(`Failed to sync task ${task.id}: ${errorMsg}`);
155
- logger.error(`Failed to sync task ${task.id} to Linear:`, error);
156
- }
157
- }
158
- // Update existing Linear issues for modified StackMemory tasks
159
- const modifiedTasks = this.getModifiedTasks();
160
- for (const task of modifiedTasks) {
161
- try {
162
- const mapping = this.mappings.get(task.id);
163
- if (!mapping)
164
- continue;
165
- await this.updateLinearIssueFromTask(task, mapping);
166
- mapping.lastSyncTimestamp = Date.now();
167
- mapping.lastStackMemoryUpdate = task.timestamp * 1000;
168
- result.updated++;
169
- logger.info(`Updated Linear issue: ${mapping.linearIdentifier}`);
170
- }
171
- catch (error) {
172
- result.errors.push(`Failed to update Linear issue for task ${task.id}: ${String(error)}`);
173
- logger.error(`Failed to update Linear issue for task ${task.id}:`, error);
174
- }
175
- }
176
- return result;
177
- }
178
- /**
179
- * Sync tasks from Linear to StackMemory
180
- */
181
- async syncFromLinear() {
182
- const result = {
183
- created: 0,
184
- updated: 0,
185
- conflicts: [],
186
- errors: [],
187
- };
188
- // First, import any new issues from Linear that aren't mapped yet
189
- const importResult = await this.importFromLinear();
190
- result.created = importResult.imported;
191
- result.errors.push(...importResult.errors);
192
- // Then update existing mapped tasks
193
- for (const [taskId, mapping] of this.mappings) {
194
- try {
195
- const linearIssue = await this.linearClient.getIssue(mapping.linearId);
196
- if (!linearIssue) {
197
- result.errors.push(`Linear issue ${mapping.linearId} not found`);
198
- continue;
199
- }
200
- // Check if Linear issue was updated since last sync
201
- const linearUpdateTime = new Date(linearIssue.updatedAt).getTime();
202
- if (linearUpdateTime <= mapping.lastSyncTimestamp) {
203
- continue; // No changes in Linear
204
- }
205
- // Check for conflicts
206
- const task = this.taskStore.getTask(taskId);
207
- if (!task) {
208
- result.errors.push(`StackMemory task ${taskId} not found`);
209
- continue;
210
- }
211
- const stackMemoryUpdateTime = task.timestamp * 1000;
212
- if (stackMemoryUpdateTime > mapping.lastSyncTimestamp &&
213
- linearUpdateTime > mapping.lastSyncTimestamp) {
214
- // Conflict: both sides updated since last sync
215
- result.conflicts.push({
216
- taskId,
217
- linearId: mapping.linearId,
218
- reason: 'Both StackMemory and Linear were updated since last sync',
219
- });
220
- if (this.config.conflictResolution === 'manual') {
221
- continue; // Skip, let user resolve manually
222
- }
223
- }
224
- // Apply conflict resolution
225
- const shouldUpdateFromLinear = this.shouldUpdateFromLinear(task, linearIssue, mapping, stackMemoryUpdateTime, linearUpdateTime);
226
- if (shouldUpdateFromLinear) {
227
- this.updateTaskFromLinearIssue(task, linearIssue);
228
- mapping.lastSyncTimestamp = Date.now();
229
- mapping.lastLinearUpdate = linearIssue.updatedAt;
230
- result.updated++;
231
- logger.info(`Updated StackMemory task from Linear: ${task.title}`);
232
- }
233
- }
234
- catch (error) {
235
- result.errors.push(`Failed to sync from Linear for task ${taskId}: ${String(error)}`);
236
- logger.error(`Failed to sync from Linear for task ${taskId}:`, error);
237
- }
238
- }
239
- return result;
240
- }
241
- /**
242
- * Create Linear issue from StackMemory task
243
- */
244
- async createLinearIssueFromTask(task) {
245
- const input = {
246
- title: task.title,
247
- description: this.formatDescriptionForLinear(task),
248
- teamId: this.config.defaultTeamId,
249
- priority: this.mapPriorityToLinear(task.priority),
250
- estimate: task.estimated_effort
251
- ? Math.ceil(task.estimated_effort / 60)
252
- : undefined, // Convert minutes to hours
253
- labelIds: this.mapTagsToLinear(task.tags),
254
- };
255
- return await this.linearClient.createIssue(input);
256
- }
257
- /**
258
- * Update Linear issue from StackMemory task
259
- */
260
- async updateLinearIssueFromTask(task, mapping) {
261
- const updates = {
262
- title: task.title,
263
- description: this.formatDescriptionForLinear(task),
264
- priority: this.mapPriorityToLinear(task.priority),
265
- estimate: task.estimated_effort
266
- ? Math.ceil(task.estimated_effort / 60)
267
- : undefined,
268
- stateId: await this.mapStatusToLinearState(task.status),
269
- };
270
- await this.linearClient.updateIssue(mapping.linearId, updates);
271
- }
272
- /**
273
- * Update StackMemory task from Linear issue
274
- */
275
- updateTaskFromLinearIssue(task, linearIssue) {
276
- // Map Linear state to StackMemory status
277
- const newStatus = this.mapLinearStateToStatus(linearIssue.state.type);
278
- if (newStatus !== task.status) {
279
- this.taskStore.updateTaskStatus(task.id, newStatus, 'Updated from Linear');
280
- }
281
- // Note: Other fields like title, description could be updated here
282
- // but require careful consideration of conflict resolution
283
- }
284
- /**
285
- * Check if task should be updated from Linear based on conflict resolution strategy
286
- */
287
- shouldUpdateFromLinear(task, linearIssue, mapping, stackMemoryUpdateTime, linearUpdateTime) {
288
- switch (this.config.conflictResolution) {
289
- case 'linear_wins':
290
- return true;
291
- case 'stackmemory_wins':
292
- return false;
293
- case 'newest_wins':
294
- return linearUpdateTime > stackMemoryUpdateTime;
295
- case 'manual':
296
- return false;
297
- default:
298
- return false;
299
- }
300
- }
301
- /**
302
- * Get tasks that haven't been synced to Linear yet
303
- */
304
- getUnsyncedTasks() {
305
- const activeTasks = this.taskStore.getActiveTasks();
306
- return activeTasks.filter((task) => !this.mappings.has(task.id) && !task.external_refs?.linear);
307
- }
308
- /**
309
- * Get tasks that have been modified since last sync
310
- */
311
- getModifiedTasks() {
312
- const tasks = [];
313
- for (const [taskId, mapping] of this.mappings) {
314
- const task = this.taskStore.getTask(taskId);
315
- if (task && task.timestamp * 1000 > mapping.lastSyncTimestamp) {
316
- tasks.push(task);
317
- }
318
- }
319
- return tasks;
320
- }
321
- /**
322
- * Update task with Linear reference
323
- */
324
- updateTaskWithLinearRef(taskId, linearIssue) {
325
- const task = this.taskStore.getTask(taskId);
326
- if (!task)
327
- return;
328
- // This would need a method in PebblesTaskStore to update external_refs
329
- // For now, we'll track this in our mappings
330
- logger.info(`Task ${taskId} mapped to Linear ${linearIssue.identifier}`);
331
- }
332
- // Mapping utilities
333
- formatDescriptionForLinear(task) {
334
- let description = task.description || '';
335
- description += `\n\n---\n**StackMemory Context:**\n`;
336
- description += `- Task ID: ${task.id}\n`;
337
- description += `- Frame: ${task.frame_id}\n`;
338
- description += `- Created: ${new Date(task.created_at * 1000).toISOString()}\n`;
339
- if (task.tags.length > 0) {
340
- description += `- Tags: ${task.tags.join(', ')}\n`;
341
- }
342
- if (task.depends_on.length > 0) {
343
- description += `- Dependencies: ${task.depends_on.join(', ')}\n`;
344
- }
345
- return description;
346
- }
347
- mapPriorityToLinear(priority) {
348
- const map = {
349
- low: 1, // Low priority in Linear
350
- medium: 2, // Medium priority in Linear
351
- high: 3, // High priority in Linear
352
- urgent: 4, // Urgent priority in Linear
353
- };
354
- return map[priority] || 2;
355
- }
356
- mapTagsToLinear(_tags) {
357
- // In a full implementation, this would map StackMemory tags to Linear label IDs
358
- // For now, return undefined to skip label assignment
359
- return undefined;
360
- }
361
- mapLinearStateToStatus(linearStateType) {
362
- switch (linearStateType) {
363
- case 'backlog':
364
- case 'unstarted':
365
- return 'pending';
366
- case 'started':
367
- return 'in_progress';
368
- case 'completed':
369
- return 'completed';
370
- case 'cancelled':
371
- return 'cancelled';
372
- default:
373
- return 'pending';
374
- }
375
- }
376
- async mapStatusToLinearState(status) {
377
- // Get available states for the team
378
- try {
379
- const team = await this.linearClient.getTeam();
380
- const states = await this.linearClient.getWorkflowStates(team.id);
381
- // Map StackMemory status to Linear state types
382
- const targetStateType = this.getLinearStateTypeFromStatus(status);
383
- // Find the first state that matches the target type
384
- const matchingState = states.find((state) => state.type === targetStateType);
385
- return matchingState?.id;
386
- }
387
- catch (error) {
388
- logger.warn('Failed to map status to Linear state:', error instanceof Error ? { error } : undefined);
389
- return undefined;
390
- }
391
- }
392
- getLinearStateTypeFromStatus(status) {
393
- switch (status) {
394
- case 'pending':
395
- return 'unstarted';
396
- case 'in_progress':
397
- return 'started';
398
- case 'completed':
399
- return 'completed';
400
- case 'cancelled':
401
- return 'cancelled';
402
- case 'blocked':
403
- return 'unstarted'; // Map blocked to unstarted in Linear
404
- default:
405
- return 'unstarted';
406
- }
407
- }
408
- // Persistence for mappings
409
- loadMappings() {
410
- this.mappings.clear();
411
- if (existsSync(this.mappingsPath)) {
412
- try {
413
- const data = readFileSync(this.mappingsPath, 'utf8');
414
- const mappingsArray = JSON.parse(data);
415
- for (const mapping of mappingsArray) {
416
- this.mappings.set(mapping.stackmemoryId, mapping);
417
- }
418
- logger.info(`Loaded ${this.mappings.size} task mappings from disk`);
419
- }
420
- catch (error) {
421
- logger.warn('Failed to load mappings, starting fresh');
422
- }
423
- }
424
- }
425
- saveMappings() {
426
- try {
427
- const mappingsArray = Array.from(this.mappings.values());
428
- writeFileSync(this.mappingsPath, JSON.stringify(mappingsArray, null, 2));
429
- logger.info(`Saved ${this.mappings.size} task mappings to disk`);
430
- }
431
- catch (error) {
432
- logger.error('Failed to save mappings:', error);
433
- }
434
- }
435
- /**
436
- * Import all issues from Linear to local task store
437
- */
438
- async importFromLinear() {
439
- const result = { imported: 0, skipped: 0, errors: [] };
440
- try {
441
- // Get team info
442
- if (!this.config.defaultTeamId) {
443
- const team = await this.linearClient.getTeam();
444
- this.config.defaultTeamId = team.id;
445
- logger.info(`Using Linear team: ${team.name} (${team.key})`);
446
- }
447
- // Fetch all issues from Linear (excluding completed/cancelled)
448
- const issues = await this.linearClient.getIssues({
449
- teamId: this.config.defaultTeamId,
450
- limit: 100,
451
- });
452
- logger.info(`Found ${issues.length} issues in Linear`);
453
- // Build reverse mapping (linearId -> stackmemoryId)
454
- const linearIdToTaskId = new Map();
455
- for (const [taskId, mapping] of this.mappings) {
456
- linearIdToTaskId.set(mapping.linearId, taskId);
457
- }
458
- for (const issue of issues) {
459
- try {
460
- // Skip if already mapped
461
- if (linearIdToTaskId.has(issue.id)) {
462
- result.skipped++;
463
- continue;
464
- }
465
- // Create local task from Linear issue
466
- const taskId = await this.createTaskFromLinearIssue(issue);
467
- if (taskId) {
468
- // Create mapping
469
- const mapping = {
470
- stackmemoryId: taskId,
471
- linearId: issue.id,
472
- linearIdentifier: issue.identifier,
473
- lastSyncTimestamp: Date.now(),
474
- lastLinearUpdate: issue.updatedAt,
475
- lastStackMemoryUpdate: Date.now(),
476
- };
477
- this.mappings.set(taskId, mapping);
478
- result.imported++;
479
- logger.info(`Imported ${issue.identifier}: ${issue.title}`);
480
- }
481
- }
482
- catch (error) {
483
- result.errors.push(`Failed to import ${issue.identifier}: ${String(error)}`);
484
- logger.error(`Failed to import ${issue.identifier}:`, error);
485
- }
486
- }
487
- this.saveMappings();
488
- }
489
- catch (error) {
490
- result.errors.push(`Import failed: ${String(error)}`);
491
- logger.error('Linear import failed:', error);
492
- }
493
- return result;
494
- }
495
- /**
496
- * Create a local task from a Linear issue
497
- */
498
- async createTaskFromLinearIssue(issue) {
499
- try {
500
- const priority = this.mapLinearPriorityToLocal(issue.priority);
501
- // Build description with Linear context
502
- let description = issue.description || '';
503
- description += `\n\n---\n**Linear:** ${issue.identifier} | ${issue.url}`;
504
- // Extract labels (handle both array and {nodes: [...]} formats)
505
- const labels = Array.isArray(issue.labels)
506
- ? issue.labels
507
- : issue.labels
508
- ?.nodes || [];
509
- const tags = labels.map((l) => l.name);
510
- if (tags.length === 0)
511
- tags.push('linear');
512
- // Create the task via the task store
513
- const taskId = this.taskStore.createTask({
514
- title: `[${issue.identifier}] ${issue.title}`,
515
- description,
516
- priority,
517
- frameId: 'linear-import',
518
- tags,
519
- estimatedEffort: issue.estimate ? issue.estimate * 60 : undefined,
520
- });
521
- // Update status if not pending
522
- const status = this.mapLinearStateToStatus(issue.state.type);
523
- if (status !== 'pending') {
524
- this.taskStore.updateTaskStatus(taskId, status, `Imported from Linear as ${status}`);
525
- }
526
- return taskId;
527
- }
528
- catch (error) {
529
- logger.error(`Failed to create task from Linear issue ${issue.identifier}: ${String(error)}`);
530
- return null;
531
- }
532
- }
533
- /**
534
- * Map Linear priority (0-4) to local TaskPriority
535
- */
536
- mapLinearPriorityToLocal(priority) {
537
- switch (priority) {
538
- case 1:
539
- return 'urgent';
540
- case 2:
541
- return 'high';
542
- case 3:
543
- return 'medium';
544
- case 4:
545
- return 'low';
546
- default:
547
- return 'medium';
548
- }
549
- }
550
- }
551
- /**
552
- * Default sync configuration
553
- */
554
- export const DEFAULT_SYNC_CONFIG = {
555
- enabled: false,
556
- direction: 'bidirectional',
557
- autoSync: true,
558
- conflictResolution: 'newest_wins',
559
- syncInterval: 15, // minutes
560
- maxBatchSize: 10, // max tasks per sync batch
561
- rateLimitDelay: 500, // 500ms between API calls
562
- };
563
- //# sourceMappingURL=sync.js.map