@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
@@ -0,0 +1,386 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ import * as fs from "fs/promises";
3
+ import * as path from "path";
4
+ import { sessionManager } from "../session/session-manager.js";
5
+ class SharedContextLayer {
6
+ static instance;
7
+ contextDir;
8
+ cache = /* @__PURE__ */ new Map();
9
+ MAX_CACHE_SIZE = 100;
10
+ CACHE_TTL = 5 * 60 * 1e3;
11
+ // 5 minutes
12
+ lastCacheClean = Date.now();
13
+ constructor() {
14
+ const homeDir = process.env.HOME || process.env.USERPROFILE || "";
15
+ this.contextDir = path.join(homeDir, ".stackmemory", "shared-context");
16
+ }
17
+ static getInstance() {
18
+ if (!SharedContextLayer.instance) {
19
+ SharedContextLayer.instance = new SharedContextLayer();
20
+ }
21
+ return SharedContextLayer.instance;
22
+ }
23
+ async initialize() {
24
+ await fs.mkdir(this.contextDir, { recursive: true });
25
+ await fs.mkdir(path.join(this.contextDir, "projects"), { recursive: true });
26
+ await fs.mkdir(path.join(this.contextDir, "patterns"), { recursive: true });
27
+ await fs.mkdir(path.join(this.contextDir, "decisions"), {
28
+ recursive: true
29
+ });
30
+ }
31
+ /**
32
+ * Get or create shared context for current project/branch
33
+ */
34
+ async getSharedContext(options) {
35
+ const session = sessionManager.getCurrentSession();
36
+ const projectId = options?.projectId || session?.projectId || "global";
37
+ const branch = options?.branch || session?.branch;
38
+ const cacheKey = `${projectId}:${branch || "main"}`;
39
+ if (this.cache.has(cacheKey)) {
40
+ const cached = this.cache.get(cacheKey);
41
+ if (Date.now() - cached.lastUpdated < this.CACHE_TTL) {
42
+ return cached;
43
+ }
44
+ }
45
+ const context = await this.loadProjectContext(projectId, branch);
46
+ if (options?.includeOtherBranches) {
47
+ const otherBranches = await this.loadOtherBranchContexts(
48
+ projectId,
49
+ branch
50
+ );
51
+ context.sessions.push(...otherBranches);
52
+ }
53
+ this.cache.set(cacheKey, context);
54
+ this.cleanCache();
55
+ return context;
56
+ }
57
+ /**
58
+ * Add current session's important frames to shared context
59
+ */
60
+ async addToSharedContext(frames, options) {
61
+ const session = sessionManager.getCurrentSession();
62
+ if (!session) return;
63
+ const context = await this.getSharedContext();
64
+ const minScore = options?.minScore || 0.7;
65
+ const importantFrames = frames.filter((f) => {
66
+ const score = this.calculateFrameScore(f);
67
+ return score >= minScore;
68
+ });
69
+ const sessionContext = {
70
+ sessionId: session.sessionId,
71
+ runId: session.runId,
72
+ summary: this.generateSessionSummary(importantFrames),
73
+ keyFrames: importantFrames.map((f) => this.summarizeFrame(f)),
74
+ createdAt: session.startedAt,
75
+ lastActiveAt: Date.now(),
76
+ metadata: session.metadata
77
+ };
78
+ const existingIndex = context.sessions.findIndex(
79
+ (s) => s.sessionId === session.sessionId
80
+ );
81
+ if (existingIndex >= 0) {
82
+ context.sessions[existingIndex] = sessionContext;
83
+ } else {
84
+ context.sessions.push(sessionContext);
85
+ }
86
+ this.updatePatterns(context, importantFrames);
87
+ this.updateReferenceIndex(context, importantFrames);
88
+ await this.saveProjectContext(context);
89
+ }
90
+ /**
91
+ * Query shared context for relevant frames
92
+ */
93
+ async querySharedContext(query) {
94
+ const context = await this.getSharedContext({ includeOtherBranches: true });
95
+ let results = [];
96
+ for (const session of context.sessions) {
97
+ if (query.sessionId && session.sessionId !== query.sessionId) continue;
98
+ if (!session.keyFrames || !Array.isArray(session.keyFrames)) continue;
99
+ const filtered = session.keyFrames.filter((f) => {
100
+ if (query.tags && !query.tags.some((tag) => f.tags.includes(tag)))
101
+ return false;
102
+ if (query.type && f.type !== query.type) return false;
103
+ if (query.minScore && f.score < query.minScore) return false;
104
+ return true;
105
+ });
106
+ results.push(...filtered);
107
+ }
108
+ results.sort((a, b) => {
109
+ const scoreWeight = 0.7;
110
+ const recencyWeight = 0.3;
111
+ const aScore = a.score * scoreWeight + (1 - (Date.now() - a.createdAt) / (30 * 24 * 60 * 60 * 1e3)) * recencyWeight;
112
+ const bScore = b.score * scoreWeight + (1 - (Date.now() - b.createdAt) / (30 * 24 * 60 * 60 * 1e3)) * recencyWeight;
113
+ return bScore - aScore;
114
+ });
115
+ if (query.limit) {
116
+ results = results.slice(0, query.limit);
117
+ }
118
+ const index = context.referenceIndex;
119
+ if (!index.recentlyAccessed) {
120
+ index.recentlyAccessed = [];
121
+ }
122
+ if (results.length > 0) {
123
+ const frameIds = results.map((r) => r.frameId);
124
+ index.recentlyAccessed = [
125
+ ...frameIds,
126
+ ...index.recentlyAccessed.filter((id) => !frameIds.includes(id))
127
+ ].slice(0, 100);
128
+ await this.saveProjectContext(context);
129
+ }
130
+ return results;
131
+ }
132
+ /**
133
+ * Get relevant patterns from shared context
134
+ */
135
+ async getPatterns(type) {
136
+ const context = await this.getSharedContext();
137
+ if (type) {
138
+ return context.globalPatterns.filter((p) => p.type === type);
139
+ }
140
+ return context.globalPatterns;
141
+ }
142
+ /**
143
+ * Add a decision to the shared context
144
+ */
145
+ async addDecision(decision) {
146
+ const session = sessionManager.getCurrentSession();
147
+ if (!session) return;
148
+ const context = await this.getSharedContext();
149
+ const newDecision = {
150
+ id: uuidv4(),
151
+ timestamp: Date.now(),
152
+ sessionId: session.sessionId,
153
+ outcome: "pending",
154
+ ...decision
155
+ };
156
+ context.decisionLog.push(newDecision);
157
+ if (context.decisionLog.length > 100) {
158
+ context.decisionLog = context.decisionLog.slice(-100);
159
+ }
160
+ await this.saveProjectContext(context);
161
+ }
162
+ /**
163
+ * Get recent decisions from shared context
164
+ */
165
+ async getDecisions(limit = 10) {
166
+ const context = await this.getSharedContext();
167
+ return context.decisionLog.slice(-limit);
168
+ }
169
+ /**
170
+ * Automatic context discovery on CLI startup
171
+ */
172
+ async autoDiscoverContext() {
173
+ const context = await this.getSharedContext({
174
+ includeOtherBranches: false
175
+ });
176
+ const recentPatterns = context.globalPatterns.filter((p) => Date.now() - p.lastSeen < 7 * 24 * 60 * 60 * 1e3).sort((a, b) => b.frequency - a.frequency).slice(0, 5);
177
+ const lastDecisions = context.decisionLog.slice(-5);
178
+ const suggestedFrames = await this.querySharedContext({
179
+ minScore: 0.8,
180
+ limit: 5
181
+ });
182
+ return {
183
+ hasSharedContext: context.sessions.length > 0,
184
+ sessionCount: context.sessions.length,
185
+ recentPatterns,
186
+ lastDecisions,
187
+ suggestedFrames
188
+ };
189
+ }
190
+ async loadProjectContext(projectId, branch) {
191
+ const contextFile = path.join(
192
+ this.contextDir,
193
+ "projects",
194
+ `${projectId}_${branch || "main"}.json`
195
+ );
196
+ try {
197
+ const data = await fs.readFile(contextFile, "utf-8");
198
+ const context = JSON.parse(data);
199
+ context.referenceIndex.byTag = new Map(
200
+ Object.entries(context.referenceIndex.byTag || {})
201
+ );
202
+ context.referenceIndex.byType = new Map(
203
+ Object.entries(context.referenceIndex.byType || {})
204
+ );
205
+ return context;
206
+ } catch {
207
+ return {
208
+ projectId,
209
+ branch,
210
+ lastUpdated: Date.now(),
211
+ sessions: [],
212
+ globalPatterns: [],
213
+ decisionLog: [],
214
+ referenceIndex: {
215
+ byTag: /* @__PURE__ */ new Map(),
216
+ byType: /* @__PURE__ */ new Map(),
217
+ byScore: [],
218
+ recentlyAccessed: []
219
+ }
220
+ };
221
+ }
222
+ }
223
+ async saveProjectContext(context) {
224
+ const contextFile = path.join(
225
+ this.contextDir,
226
+ "projects",
227
+ `${context.projectId}_${context.branch || "main"}.json`
228
+ );
229
+ const serializable = {
230
+ ...context,
231
+ lastUpdated: Date.now(),
232
+ referenceIndex: {
233
+ ...context.referenceIndex,
234
+ byTag: Object.fromEntries(context.referenceIndex.byTag),
235
+ byType: Object.fromEntries(context.referenceIndex.byType)
236
+ }
237
+ };
238
+ await fs.writeFile(contextFile, JSON.stringify(serializable, null, 2));
239
+ }
240
+ async loadOtherBranchContexts(projectId, currentBranch) {
241
+ const projectsDir = path.join(this.contextDir, "projects");
242
+ const files = await fs.readdir(projectsDir);
243
+ const sessions = [];
244
+ for (const file of files) {
245
+ if (file.startsWith(`${projectId}_`) && !file.includes(currentBranch || "main")) {
246
+ try {
247
+ const data = await fs.readFile(path.join(projectsDir, file), "utf-8");
248
+ const context = JSON.parse(data);
249
+ sessions.push(...context.sessions);
250
+ } catch {
251
+ }
252
+ }
253
+ }
254
+ return sessions;
255
+ }
256
+ calculateFrameScore(frame) {
257
+ let score = 0.5;
258
+ if (frame.type === "task" || frame.type === "review") score += 0.2;
259
+ if (frame.type === "debug" || frame.type === "write") score += 0.15;
260
+ if (frame.type === "error") score += 0.15;
261
+ const frameWithData = frame;
262
+ if (frameWithData.data) score += 0.2;
263
+ if (frame.outputs && Object.keys(frame.outputs).length > 0) score += 0.2;
264
+ if (frame.digest_text || frame.digest_json && Object.keys(frame.digest_json).length > 0) score += 0.1;
265
+ if (frame.created_at) {
266
+ const age = Date.now() - frame.created_at;
267
+ const daysSinceCreation = age / (24 * 60 * 60 * 1e3);
268
+ score *= Math.max(0.3, 1 - daysSinceCreation / 30);
269
+ }
270
+ return Math.min(1, score);
271
+ }
272
+ summarizeFrame(frame) {
273
+ return {
274
+ frameId: frame.frame_id,
275
+ title: frame.name,
276
+ type: frame.type,
277
+ score: this.calculateFrameScore(frame),
278
+ tags: [],
279
+ summary: this.generateFrameSummary(frame),
280
+ createdAt: frame.created_at
281
+ };
282
+ }
283
+ generateFrameSummary(frame) {
284
+ const parts = [];
285
+ const frameWithData = frame;
286
+ if (frame.type) parts.push(`[${frame.type}]`);
287
+ if (frame.name) parts.push(frame.name);
288
+ if (frameWithData.title) parts.push(frameWithData.title);
289
+ if (frameWithData.data?.error) parts.push(`Error: ${frameWithData.data.error}`);
290
+ if (frameWithData.data?.resolution)
291
+ parts.push(`Resolution: ${frameWithData.data.resolution}`);
292
+ return parts.join(" - ").slice(0, 200);
293
+ }
294
+ generateSessionSummary(frames) {
295
+ const types = [...new Set(frames.map((f) => f.type))];
296
+ return `Session with ${frames.length} key frames: ${types.join(", ")}`;
297
+ }
298
+ updatePatterns(context, frames) {
299
+ for (const frame of frames) {
300
+ const frameWithData = frame;
301
+ if (frameWithData.data?.error) {
302
+ this.addPattern(
303
+ context,
304
+ frameWithData.data.error,
305
+ "error",
306
+ frameWithData.data?.resolution
307
+ );
308
+ } else if (frame.type === "error" && frame.name) {
309
+ const errorText = frame.outputs?.error || frame.name;
310
+ const resolution = frame.outputs?.resolution;
311
+ if (errorText) {
312
+ this.addPattern(context, errorText, "error", resolution);
313
+ }
314
+ }
315
+ if (frame.type === "decision" && frameWithData.data?.decision) {
316
+ this.addPattern(context, frameWithData.data.decision, "decision");
317
+ } else if (frame.digest_json?.decision) {
318
+ this.addPattern(context, frame.digest_json.decision, "decision");
319
+ }
320
+ }
321
+ }
322
+ addPattern(context, pattern, type, resolution) {
323
+ const existing = context.globalPatterns.find(
324
+ (p) => p.pattern === pattern && p.type === type
325
+ );
326
+ if (existing) {
327
+ existing.frequency++;
328
+ existing.lastSeen = Date.now();
329
+ if (resolution) existing.resolution = resolution;
330
+ } else {
331
+ context.globalPatterns.push({
332
+ pattern,
333
+ type,
334
+ frequency: 1,
335
+ lastSeen: Date.now(),
336
+ resolution
337
+ });
338
+ }
339
+ if (context.globalPatterns.length > 100) {
340
+ context.globalPatterns.sort((a, b) => b.frequency - a.frequency);
341
+ context.globalPatterns = context.globalPatterns.slice(0, 100);
342
+ }
343
+ }
344
+ updateReferenceIndex(context, frames) {
345
+ for (const frame of frames) {
346
+ const summary = this.summarizeFrame(frame);
347
+ for (const tag of summary.tags) {
348
+ if (!context.referenceIndex.byTag.has(tag)) {
349
+ context.referenceIndex.byTag.set(tag, []);
350
+ }
351
+ context.referenceIndex.byTag.get(tag).push(frame.frameId);
352
+ }
353
+ if (!context.referenceIndex.byType.has(frame.type)) {
354
+ context.referenceIndex.byType.set(frame.type, []);
355
+ }
356
+ context.referenceIndex.byType.get(frame.type).push(frame.frameId);
357
+ const scoreIndex = context.referenceIndex.byScore;
358
+ const insertIndex = scoreIndex.findIndex((id) => {
359
+ const otherFrame = context.sessions.flatMap((s) => s.keyFrames).find((f) => f.frameId === id);
360
+ return otherFrame && otherFrame.score < summary.score;
361
+ });
362
+ if (insertIndex >= 0) {
363
+ scoreIndex.splice(insertIndex, 0, frame.frameId);
364
+ } else {
365
+ scoreIndex.push(frame.frameId);
366
+ }
367
+ context.referenceIndex.byScore = scoreIndex.slice(0, 1e3);
368
+ }
369
+ }
370
+ cleanCache() {
371
+ if (Date.now() - this.lastCacheClean < 6e4) return;
372
+ if (this.cache.size > this.MAX_CACHE_SIZE) {
373
+ const entries = Array.from(this.cache.entries()).sort(
374
+ (a, b) => b[1].lastUpdated - a[1].lastUpdated
375
+ );
376
+ this.cache = new Map(entries.slice(0, this.MAX_CACHE_SIZE / 2));
377
+ }
378
+ this.lastCacheClean = Date.now();
379
+ }
380
+ }
381
+ const sharedContextLayer = SharedContextLayer.getInstance();
382
+ export {
383
+ SharedContextLayer,
384
+ sharedContextLayer
385
+ };
386
+ //# sourceMappingURL=shared-context-layer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/core/context/shared-context-layer.ts"],
4
+ "sourcesContent": ["/**\n * Shared Context Layer for Cross-Session Reference\n *\n * This layer maintains a lightweight shared context across sessions while\n * preserving run_id isolation for write operations. It enables:\n * - Read access to frames from other sessions\n * - Automatic context inheritance\n * - Efficient caching and indexing\n * - Safe concurrent access\n */\n\nimport { v4 as uuidv4 } from 'uuid';\nimport * as fs from 'fs/promises';\nimport * as path from 'path';\nimport { logger } from '../monitoring/logger.js';\nimport { sessionManager } from '../session/session-manager.js';\nimport type { Frame } from '../frame-manager/frame-manager.js';\n\nexport interface SharedContext {\n projectId: string;\n branch?: string;\n lastUpdated: number;\n sessions: SharedSessionContext[];\n globalPatterns: ContextPattern[];\n decisionLog: Decision[];\n referenceIndex: ReferenceIndex;\n}\n\nexport interface SharedSessionContext {\n sessionId: string;\n runId: string;\n summary: string;\n keyFrames: FrameSummary[];\n createdAt: number;\n lastActiveAt: number;\n metadata: Record<string, any>;\n}\n\nexport interface FrameSummary {\n frameId: string;\n title: string;\n type: string;\n score: number;\n tags: string[];\n summary?: string;\n createdAt: number;\n}\n\nexport interface ContextPattern {\n pattern: string;\n type: 'error' | 'success' | 'decision' | 'learning';\n frequency: number;\n lastSeen: number;\n resolution?: string;\n}\n\nexport interface Decision {\n id: string;\n decision: string;\n reasoning: string;\n timestamp: number;\n sessionId: string;\n outcome?: 'success' | 'failure' | 'pending';\n}\n\nexport interface ReferenceIndex {\n byTag: Map<string, string[]>;\n byType: Map<string, string[]>;\n byScore: string[];\n recentlyAccessed: string[];\n}\n\nexport class SharedContextLayer {\n private static instance: SharedContextLayer;\n private contextDir: string;\n private cache: Map<string, SharedContext> = new Map();\n private readonly MAX_CACHE_SIZE = 100;\n private readonly CACHE_TTL = 5 * 60 * 1000; // 5 minutes\n private lastCacheClean = Date.now();\n\n private constructor() {\n const homeDir = process.env.HOME || process.env.USERPROFILE || '';\n this.contextDir = path.join(homeDir, '.stackmemory', 'shared-context');\n }\n\n static getInstance(): SharedContextLayer {\n if (!SharedContextLayer.instance) {\n SharedContextLayer.instance = new SharedContextLayer();\n }\n return SharedContextLayer.instance;\n }\n\n async initialize(): Promise<void> {\n await fs.mkdir(this.contextDir, { recursive: true });\n await fs.mkdir(path.join(this.contextDir, 'projects'), { recursive: true });\n await fs.mkdir(path.join(this.contextDir, 'patterns'), { recursive: true });\n await fs.mkdir(path.join(this.contextDir, 'decisions'), {\n recursive: true,\n });\n }\n\n /**\n * Get or create shared context for current project/branch\n */\n async getSharedContext(options?: {\n projectId?: string;\n branch?: string;\n includeOtherBranches?: boolean;\n }): Promise<SharedContext> {\n const session = sessionManager.getCurrentSession();\n const projectId = options?.projectId || session?.projectId || 'global';\n const branch = options?.branch || session?.branch;\n\n const cacheKey = `${projectId}:${branch || 'main'}`;\n\n // Check cache first\n if (this.cache.has(cacheKey)) {\n const cached = this.cache.get(cacheKey)!;\n if (Date.now() - cached.lastUpdated < this.CACHE_TTL) {\n return cached;\n }\n }\n\n // Load from disk\n const context = await this.loadProjectContext(projectId, branch);\n\n // Include other branches if requested\n if (options?.includeOtherBranches) {\n const otherBranches = await this.loadOtherBranchContexts(\n projectId,\n branch\n );\n context.sessions.push(...otherBranches);\n }\n\n // Update cache\n this.cache.set(cacheKey, context);\n this.cleanCache();\n\n return context;\n }\n\n /**\n * Add current session's important frames to shared context\n */\n async addToSharedContext(\n frames: Frame[],\n options?: {\n minScore?: number;\n tags?: string[];\n }\n ): Promise<void> {\n const session = sessionManager.getCurrentSession();\n if (!session) return;\n\n const context = await this.getSharedContext();\n const minScore = options?.minScore || 0.7;\n\n // Filter important frames\n const importantFrames = frames.filter((f) => {\n const score = this.calculateFrameScore(f);\n return score >= minScore;\n });\n\n // Create session context\n const sessionContext: SharedSessionContext = {\n sessionId: session.sessionId,\n runId: session.runId,\n summary: this.generateSessionSummary(importantFrames),\n keyFrames: importantFrames.map((f) => this.summarizeFrame(f)),\n createdAt: session.startedAt,\n lastActiveAt: Date.now(),\n metadata: session.metadata,\n };\n\n // Update or add session context\n const existingIndex = context.sessions.findIndex(\n (s) => s.sessionId === session.sessionId\n );\n if (existingIndex >= 0) {\n context.sessions[existingIndex] = sessionContext;\n } else {\n context.sessions.push(sessionContext);\n }\n\n // Update patterns\n this.updatePatterns(context, importantFrames);\n\n // Update reference index\n this.updateReferenceIndex(context, importantFrames);\n\n // Save context\n await this.saveProjectContext(context);\n }\n\n /**\n * Query shared context for relevant frames\n */\n async querySharedContext(query: {\n tags?: string[];\n type?: string;\n minScore?: number;\n sessionId?: string;\n limit?: number;\n }): Promise<FrameSummary[]> {\n const context = await this.getSharedContext({ includeOtherBranches: true });\n let results: FrameSummary[] = [];\n\n // Collect all frames from all sessions\n for (const session of context.sessions) {\n if (query.sessionId && session.sessionId !== query.sessionId) continue;\n \n // Skip sessions without keyFrames\n if (!session.keyFrames || !Array.isArray(session.keyFrames)) continue;\n\n const filtered = session.keyFrames.filter((f) => {\n if (query.tags && !query.tags.some((tag) => f.tags.includes(tag)))\n return false;\n if (query.type && f.type !== query.type) return false;\n if (query.minScore && f.score < query.minScore) return false;\n return true;\n });\n\n results.push(...filtered);\n }\n\n // Sort by score and recency\n results.sort((a, b) => {\n const scoreWeight = 0.7;\n const recencyWeight = 0.3;\n\n const aScore =\n a.score * scoreWeight +\n (1 - (Date.now() - a.createdAt) / (30 * 24 * 60 * 60 * 1000)) *\n recencyWeight;\n const bScore =\n b.score * scoreWeight +\n (1 - (Date.now() - b.createdAt) / (30 * 24 * 60 * 60 * 1000)) *\n recencyWeight;\n\n return bScore - aScore;\n });\n\n // Apply limit\n if (query.limit) {\n results = results.slice(0, query.limit);\n }\n\n // Update recently accessed\n const index = context.referenceIndex;\n if (!index.recentlyAccessed) {\n index.recentlyAccessed = [];\n }\n \n // Add frameIds to recently accessed, removing duplicates\n if (results.length > 0) {\n const frameIds = results.map((r) => r.frameId);\n index.recentlyAccessed = [\n ...frameIds,\n ...index.recentlyAccessed.filter(id => !frameIds.includes(id))\n ].slice(0, 100);\n \n // Save the updated context with recently accessed frames\n await this.saveProjectContext(context);\n }\n\n return results;\n }\n\n /**\n * Get relevant patterns from shared context\n */\n async getPatterns(type?: ContextPattern['type']): Promise<ContextPattern[]> {\n const context = await this.getSharedContext();\n\n if (type) {\n return context.globalPatterns.filter((p) => p.type === type);\n }\n\n return context.globalPatterns;\n }\n\n /**\n * Add a decision to the shared context\n */\n async addDecision(\n decision: Omit<Decision, 'id' | 'timestamp' | 'sessionId'>\n ): Promise<void> {\n const session = sessionManager.getCurrentSession();\n if (!session) return;\n\n const context = await this.getSharedContext();\n\n const newDecision: Decision = {\n id: uuidv4(),\n timestamp: Date.now(),\n sessionId: session.sessionId,\n outcome: 'pending',\n ...decision,\n };\n\n context.decisionLog.push(newDecision);\n\n // Keep only last 100 decisions\n if (context.decisionLog.length > 100) {\n context.decisionLog = context.decisionLog.slice(-100);\n }\n\n await this.saveProjectContext(context);\n }\n\n /**\n * Get recent decisions from shared context\n */\n async getDecisions(limit: number = 10): Promise<Decision[]> {\n const context = await this.getSharedContext();\n return context.decisionLog.slice(-limit);\n }\n\n /**\n * Automatic context discovery on CLI startup\n */\n async autoDiscoverContext(): Promise<{\n hasSharedContext: boolean;\n sessionCount: number;\n recentPatterns: ContextPattern[];\n lastDecisions: Decision[];\n suggestedFrames: FrameSummary[];\n }> {\n const context = await this.getSharedContext({\n includeOtherBranches: false,\n });\n\n // Get recent patterns (last 7 days)\n const recentPatterns = context.globalPatterns\n .filter((p) => Date.now() - p.lastSeen < 7 * 24 * 60 * 60 * 1000)\n .sort((a, b) => b.frequency - a.frequency)\n .slice(0, 5);\n\n // Get last 5 decisions\n const lastDecisions = context.decisionLog.slice(-5);\n\n // Get suggested frames based on recent access and score\n const suggestedFrames = await this.querySharedContext({\n minScore: 0.8,\n limit: 5,\n });\n\n return {\n hasSharedContext: context.sessions.length > 0,\n sessionCount: context.sessions.length,\n recentPatterns,\n lastDecisions,\n suggestedFrames,\n };\n }\n\n private async loadProjectContext(\n projectId: string,\n branch?: string\n ): Promise<SharedContext> {\n const contextFile = path.join(\n this.contextDir,\n 'projects',\n `${projectId}_${branch || 'main'}.json`\n );\n\n try {\n const data = await fs.readFile(contextFile, 'utf-8');\n const context = JSON.parse(data);\n\n // Reconstruct Maps\n context.referenceIndex.byTag = new Map(\n Object.entries(context.referenceIndex.byTag || {})\n );\n context.referenceIndex.byType = new Map(\n Object.entries(context.referenceIndex.byType || {})\n );\n\n return context;\n } catch {\n // Return empty context if file doesn't exist\n return {\n projectId,\n branch,\n lastUpdated: Date.now(),\n sessions: [],\n globalPatterns: [],\n decisionLog: [],\n referenceIndex: {\n byTag: new Map(),\n byType: new Map(),\n byScore: [],\n recentlyAccessed: [],\n },\n };\n }\n }\n\n private async saveProjectContext(context: SharedContext): Promise<void> {\n const contextFile = path.join(\n this.contextDir,\n 'projects',\n `${context.projectId}_${context.branch || 'main'}.json`\n );\n\n // Convert Maps to objects for JSON serialization\n const serializable = {\n ...context,\n lastUpdated: Date.now(),\n referenceIndex: {\n ...context.referenceIndex,\n byTag: Object.fromEntries(context.referenceIndex.byTag),\n byType: Object.fromEntries(context.referenceIndex.byType),\n },\n };\n\n await fs.writeFile(contextFile, JSON.stringify(serializable, null, 2));\n }\n\n private async loadOtherBranchContexts(\n projectId: string,\n currentBranch?: string\n ): Promise<SharedSessionContext[]> {\n const projectsDir = path.join(this.contextDir, 'projects');\n const files = await fs.readdir(projectsDir);\n const sessions: SharedSessionContext[] = [];\n\n for (const file of files) {\n if (\n file.startsWith(`${projectId}_`) &&\n !file.includes(currentBranch || 'main')\n ) {\n try {\n const data = await fs.readFile(path.join(projectsDir, file), 'utf-8');\n const context = JSON.parse(data);\n sessions.push(...context.sessions);\n } catch {\n // Skip invalid files\n }\n }\n }\n\n return sessions;\n }\n\n private calculateFrameScore(frame: Frame): number {\n // Simple scoring algorithm\n let score = 0.5;\n\n // Boost for certain types\n if (frame.type === 'task' || frame.type === 'review') score += 0.2;\n if (frame.type === 'debug' || frame.type === 'write') score += 0.15;\n if (frame.type === 'error') score += 0.15; // Error frames are important for pattern extraction\n \n // Check for data property (used in tests)\n const frameWithData = frame as any;\n if (frameWithData.data) score += 0.2;\n\n // Boost for having outputs (indicates completion/results)\n if (frame.outputs && Object.keys(frame.outputs).length > 0) score += 0.2;\n if (frame.digest_text || (frame.digest_json && Object.keys(frame.digest_json).length > 0)) score += 0.1;\n\n // Time decay (reduce score for older frames) - but handle missing created_at\n if (frame.created_at) {\n const age = Date.now() - frame.created_at;\n const daysSinceCreation = age / (24 * 60 * 60 * 1000);\n score *= Math.max(0.3, 1 - daysSinceCreation / 30);\n }\n\n return Math.min(1, score);\n }\n\n private summarizeFrame(frame: Frame): FrameSummary {\n return {\n frameId: frame.frame_id,\n title: frame.name,\n type: frame.type,\n score: this.calculateFrameScore(frame),\n tags: [],\n summary: this.generateFrameSummary(frame),\n createdAt: frame.created_at,\n };\n }\n\n private generateFrameSummary(frame: Frame): string {\n // Generate a brief summary of the frame\n const parts = [];\n const frameWithData = frame as any;\n\n if (frame.type) parts.push(`[${frame.type}]`);\n if (frame.name) parts.push(frame.name);\n if (frameWithData.title) parts.push(frameWithData.title);\n if (frameWithData.data?.error) parts.push(`Error: ${frameWithData.data.error}`);\n if (frameWithData.data?.resolution)\n parts.push(`Resolution: ${frameWithData.data.resolution}`);\n\n return parts.join(' - ').slice(0, 200);\n }\n\n private generateSessionSummary(frames: Frame[]): string {\n const types = [...new Set(frames.map((f) => f.type))];\n return `Session with ${frames.length} key frames: ${types.join(', ')}`;\n }\n\n private updatePatterns(context: SharedContext, frames: Frame[]): void {\n for (const frame of frames) {\n // Extract patterns from frame data\n // Handle frames with a data property (used in tests)\n const frameWithData = frame as any;\n if (frameWithData.data?.error) {\n this.addPattern(\n context,\n frameWithData.data.error,\n 'error',\n frameWithData.data?.resolution\n );\n } else if (frame.type === 'error' && frame.name) {\n // Only extract from name/outputs if no data.error property\n const errorText = frame.outputs?.error || frame.name;\n const resolution = frame.outputs?.resolution;\n if (errorText) {\n this.addPattern(context, errorText, 'error', resolution);\n }\n }\n\n if (frame.type === 'decision' && frameWithData.data?.decision) {\n this.addPattern(context, frameWithData.data.decision, 'decision');\n } else if (frame.digest_json?.decision) {\n // Only extract from digest_json if no data.decision\n this.addPattern(context, frame.digest_json.decision, 'decision');\n }\n }\n }\n\n private addPattern(\n context: SharedContext,\n pattern: string,\n type: ContextPattern['type'],\n resolution?: string\n ): void {\n const existing = context.globalPatterns.find(\n (p) => p.pattern === pattern && p.type === type\n );\n\n if (existing) {\n existing.frequency++;\n existing.lastSeen = Date.now();\n if (resolution) existing.resolution = resolution;\n } else {\n context.globalPatterns.push({\n pattern,\n type,\n frequency: 1,\n lastSeen: Date.now(),\n resolution,\n });\n }\n\n // Keep only top 100 patterns\n if (context.globalPatterns.length > 100) {\n context.globalPatterns.sort((a, b) => b.frequency - a.frequency);\n context.globalPatterns = context.globalPatterns.slice(0, 100);\n }\n }\n\n private updateReferenceIndex(context: SharedContext, frames: Frame[]): void {\n for (const frame of frames) {\n const summary = this.summarizeFrame(frame);\n\n // Index by tags\n for (const tag of summary.tags) {\n if (!context.referenceIndex.byTag.has(tag)) {\n context.referenceIndex.byTag.set(tag, []);\n }\n context.referenceIndex.byTag.get(tag)!.push(frame.frameId);\n }\n\n // Index by type\n if (!context.referenceIndex.byType.has(frame.type)) {\n context.referenceIndex.byType.set(frame.type, []);\n }\n context.referenceIndex.byType.get(frame.type)!.push(frame.frameId);\n\n // Update score index\n const scoreIndex = context.referenceIndex.byScore;\n const insertIndex = scoreIndex.findIndex((id) => {\n const otherFrame = context.sessions\n .flatMap((s) => s.keyFrames)\n .find((f) => f.frameId === id);\n return otherFrame && otherFrame.score < summary.score;\n });\n\n if (insertIndex >= 0) {\n scoreIndex.splice(insertIndex, 0, frame.frameId);\n } else {\n scoreIndex.push(frame.frameId);\n }\n\n // Keep only top 1000 by score\n context.referenceIndex.byScore = scoreIndex.slice(0, 1000);\n }\n }\n\n private cleanCache(): void {\n if (Date.now() - this.lastCacheClean < 60000) return; // Clean every minute\n\n if (this.cache.size > this.MAX_CACHE_SIZE) {\n const entries = Array.from(this.cache.entries()).sort(\n (a, b) => b[1].lastUpdated - a[1].lastUpdated\n );\n\n this.cache = new Map(entries.slice(0, this.MAX_CACHE_SIZE / 2));\n }\n\n this.lastCacheClean = Date.now();\n }\n}\n\nexport const sharedContextLayer = SharedContextLayer.getInstance();\n\n// Export for testing\nexport {\n SharedContext,\n SharedSessionContext,\n FrameSummary,\n ContextPattern,\n Decision,\n ReferenceIndex,\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }