@stackmemoryai/stackmemory 0.2.8 → 0.3.0

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 (608) hide show
  1. package/dist/agents/core/agent-task-manager.js +512 -0
  2. package/dist/agents/core/agent-task-manager.js.map +7 -0
  3. package/dist/agents/verifiers/base-verifier.js +129 -0
  4. package/dist/agents/verifiers/base-verifier.js.map +7 -0
  5. package/dist/agents/verifiers/formatter-verifier.js +126 -0
  6. package/dist/agents/verifiers/formatter-verifier.js.map +7 -0
  7. package/dist/agents/verifiers/llm-judge.js +248 -0
  8. package/dist/agents/verifiers/llm-judge.js.map +7 -0
  9. package/dist/cli/__tests__/index.test.js +290 -0
  10. package/dist/cli/__tests__/index.test.js.map +7 -0
  11. package/dist/cli/auto-detect.js +317 -0
  12. package/dist/cli/auto-detect.js.map +7 -0
  13. package/dist/cli/browser-test.js +29 -0
  14. package/dist/cli/browser-test.js.map +7 -0
  15. package/dist/cli/claude-sm.js +369 -0
  16. package/dist/cli/claude-sm.js.map +7 -0
  17. package/dist/cli/codex-sm.js +283 -0
  18. package/dist/cli/codex-sm.js.map +7 -0
  19. package/dist/cli/commands/agent.js +286 -0
  20. package/dist/cli/commands/agent.js.map +7 -0
  21. package/dist/cli/commands/config.js +199 -0
  22. package/dist/cli/commands/config.js.map +7 -0
  23. package/dist/cli/commands/context.js +327 -0
  24. package/dist/cli/commands/context.js.map +7 -0
  25. package/dist/cli/commands/handoff.js +191 -0
  26. package/dist/cli/commands/handoff.js.map +7 -0
  27. package/dist/cli/commands/linear-test.js +115 -0
  28. package/dist/cli/commands/linear-test.js.map +7 -0
  29. package/dist/cli/commands/linear.js +378 -0
  30. package/dist/cli/commands/linear.js.map +7 -0
  31. package/dist/cli/commands/log.js +165 -0
  32. package/dist/cli/commands/log.js.map +7 -0
  33. package/dist/cli/commands/onboard.js +349 -0
  34. package/dist/cli/commands/onboard.js.map +7 -0
  35. package/dist/cli/commands/projects.js +195 -0
  36. package/dist/cli/commands/projects.js.map +7 -0
  37. package/dist/cli/commands/search.js +152 -0
  38. package/dist/cli/commands/search.js.map +7 -0
  39. package/dist/cli/commands/session.js +179 -0
  40. package/dist/cli/commands/session.js.map +7 -0
  41. package/dist/cli/commands/tasks.js +205 -0
  42. package/dist/cli/commands/tasks.js.map +7 -0
  43. package/dist/cli/commands/webhook.js +131 -0
  44. package/dist/cli/commands/webhook.js.map +7 -0
  45. package/dist/cli/commands/worktree.js +276 -0
  46. package/dist/cli/commands/worktree.js.map +7 -0
  47. package/dist/cli/index.js +953 -0
  48. package/dist/cli/index.js.map +7 -0
  49. package/dist/cli/utils/viewer.js +92 -0
  50. package/dist/cli/utils/viewer.js.map +7 -0
  51. package/dist/core/config/__tests__/config-manager.test.js +248 -0
  52. package/dist/core/config/__tests__/config-manager.test.js.map +7 -0
  53. package/dist/core/config/config-manager.js +368 -0
  54. package/dist/core/config/config-manager.js.map +7 -0
  55. package/dist/core/config/types.js +140 -0
  56. package/dist/core/config/types.js.map +7 -0
  57. package/dist/core/context/__tests__/frame-manager.test.js +879 -0
  58. package/dist/core/context/__tests__/frame-manager.test.js.map +7 -0
  59. package/dist/core/context/auto-context.js +72 -0
  60. package/dist/core/context/auto-context.js.map +7 -0
  61. package/dist/core/context/compaction-handler.js +326 -0
  62. package/dist/core/context/compaction-handler.js.map +7 -0
  63. package/dist/core/context/frame-database.js +376 -0
  64. package/dist/core/context/frame-database.js.map +7 -0
  65. package/dist/core/context/frame-digest.js +239 -0
  66. package/dist/core/context/frame-digest.js.map +7 -0
  67. package/dist/core/context/frame-manager.js +682 -0
  68. package/dist/core/context/frame-manager.js.map +7 -0
  69. package/dist/core/context/frame-stack.js +270 -0
  70. package/dist/core/context/frame-stack.js.map +7 -0
  71. package/dist/core/context/frame-types.js +1 -0
  72. package/dist/core/context/frame-types.js.map +7 -0
  73. package/dist/core/context/index.js +33 -0
  74. package/dist/core/context/index.js.map +7 -0
  75. package/dist/core/context/model-aware-compaction.js +619 -0
  76. package/dist/core/context/model-aware-compaction.js.map +7 -0
  77. package/dist/core/context/refactored-frame-manager.js +393 -0
  78. package/dist/core/context/refactored-frame-manager.js.map +7 -0
  79. package/dist/core/database/batch-operations.js +329 -0
  80. package/dist/core/database/batch-operations.js.map +7 -0
  81. package/dist/core/database/connection-pool.js +224 -0
  82. package/dist/core/database/connection-pool.js.map +7 -0
  83. package/dist/core/database/query-cache.js +284 -0
  84. package/dist/core/database/query-cache.js.map +7 -0
  85. package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js +379 -0
  86. package/dist/core/digest/__tests__/enhanced-hybrid-digest.test.js.map +7 -0
  87. package/dist/core/digest/__tests__/frame-digest-integration.test.js +230 -0
  88. package/dist/core/digest/__tests__/frame-digest-integration.test.js.map +7 -0
  89. package/dist/core/digest/enhanced-hybrid-digest.js +267 -0
  90. package/dist/core/digest/enhanced-hybrid-digest.js.map +7 -0
  91. package/dist/core/digest/frame-digest-integration.js +172 -0
  92. package/dist/core/digest/frame-digest-integration.js.map +7 -0
  93. package/dist/core/digest/hybrid-digest-generator.js +549 -0
  94. package/dist/core/digest/hybrid-digest-generator.js.map +7 -0
  95. package/dist/core/digest/index.js +5 -0
  96. package/dist/core/digest/index.js.map +7 -0
  97. package/dist/core/digest/types.js +21 -0
  98. package/dist/core/digest/types.js.map +7 -0
  99. package/dist/core/errors/__tests__/error-handling.test.js +270 -0
  100. package/dist/core/errors/__tests__/error-handling.test.js.map +7 -0
  101. package/dist/core/errors/index.js +239 -0
  102. package/dist/core/errors/index.js.map +7 -0
  103. package/dist/core/errors/recovery.js +258 -0
  104. package/dist/core/errors/recovery.js.map +7 -0
  105. package/dist/core/merge/__tests__/conflict-scenarios.test.js +414 -0
  106. package/dist/core/merge/__tests__/conflict-scenarios.test.js.map +7 -0
  107. package/dist/core/merge/conflict-detector.js +424 -0
  108. package/dist/core/merge/conflict-detector.js.map +7 -0
  109. package/dist/core/merge/index.js +5 -0
  110. package/dist/core/merge/index.js.map +7 -0
  111. package/dist/core/merge/resolution-engine.js +565 -0
  112. package/dist/core/merge/resolution-engine.js.map +7 -0
  113. package/dist/core/merge/stack-diff.js +528 -0
  114. package/dist/core/merge/stack-diff.js.map +7 -0
  115. package/dist/core/merge/types.js +1 -0
  116. package/dist/core/merge/types.js.map +7 -0
  117. package/dist/core/monitoring/error-handler.js +278 -0
  118. package/dist/core/monitoring/error-handler.js.map +7 -0
  119. package/dist/core/monitoring/logger.js +115 -0
  120. package/dist/core/monitoring/logger.js.map +7 -0
  121. package/dist/core/monitoring/metrics.js +157 -0
  122. package/dist/core/monitoring/metrics.js.map +7 -0
  123. package/dist/core/monitoring/progress-tracker.js +174 -0
  124. package/dist/core/monitoring/progress-tracker.js.map +7 -0
  125. package/dist/core/performance/context-cache.js +269 -0
  126. package/dist/core/performance/context-cache.js.map +7 -0
  127. package/dist/core/performance/index.js +7 -0
  128. package/dist/core/performance/index.js.map +7 -0
  129. package/dist/core/performance/lazy-context-loader.js +319 -0
  130. package/dist/core/performance/lazy-context-loader.js.map +7 -0
  131. package/dist/core/performance/monitor.js +217 -0
  132. package/dist/core/performance/monitor.js.map +7 -0
  133. package/dist/core/performance/optimized-frame-context.js +326 -0
  134. package/dist/core/performance/optimized-frame-context.js.map +7 -0
  135. package/dist/core/performance/performance-benchmark.js +269 -0
  136. package/dist/core/performance/performance-benchmark.js.map +7 -0
  137. package/dist/core/performance/performance-profiler.js +318 -0
  138. package/dist/core/performance/performance-profiler.js.map +7 -0
  139. package/dist/core/performance/streaming-jsonl-parser.js +187 -0
  140. package/dist/core/performance/streaming-jsonl-parser.js.map +7 -0
  141. package/dist/core/persistence/postgres-adapter.js +345 -0
  142. package/dist/core/persistence/postgres-adapter.js.map +7 -0
  143. package/dist/core/projects/project-manager.js +699 -0
  144. package/dist/core/projects/project-manager.js.map +7 -0
  145. package/dist/core/query/__tests__/query-parser.test.js +301 -0
  146. package/dist/core/query/__tests__/query-parser.test.js.map +7 -0
  147. package/dist/core/query/__tests__/query-templates.test.js +210 -0
  148. package/dist/core/query/__tests__/query-templates.test.js.map +7 -0
  149. package/dist/core/query/query-parser.js +366 -0
  150. package/dist/core/query/query-parser.js.map +7 -0
  151. package/dist/core/query/query-templates.js +317 -0
  152. package/dist/core/query/query-templates.js.map +7 -0
  153. package/dist/core/retrieval/index.js +4 -0
  154. package/dist/core/retrieval/index.js.map +7 -0
  155. package/dist/core/retrieval/llm-context-retrieval.js +577 -0
  156. package/dist/core/retrieval/llm-context-retrieval.js.map +7 -0
  157. package/dist/core/retrieval/summary-generator.js +585 -0
  158. package/dist/core/retrieval/summary-generator.js.map +7 -0
  159. package/dist/core/retrieval/types.js +17 -0
  160. package/dist/core/retrieval/types.js.map +7 -0
  161. package/dist/core/session/index.js +11 -0
  162. package/dist/core/session/index.js.map +7 -0
  163. package/dist/core/session/session-manager.js +297 -0
  164. package/dist/core/session/session-manager.js.map +7 -0
  165. package/dist/core/trace/cli-trace-wrapper.js +110 -0
  166. package/dist/core/trace/cli-trace-wrapper.js.map +7 -0
  167. package/dist/core/trace/db-trace-wrapper.js +215 -0
  168. package/dist/core/trace/db-trace-wrapper.js.map +7 -0
  169. package/dist/core/trace/debug-trace.js +385 -0
  170. package/dist/core/trace/debug-trace.js.map +7 -0
  171. package/dist/core/trace/index.js +158 -0
  172. package/dist/core/trace/index.js.map +7 -0
  173. package/dist/core/trace/linear-api-wrapper.js +169 -0
  174. package/dist/core/trace/linear-api-wrapper.js.map +7 -0
  175. package/dist/core/trace/trace-demo.js +135 -0
  176. package/dist/core/trace/trace-demo.js.map +7 -0
  177. package/dist/core/trace/trace-detector.demo.js +138 -0
  178. package/dist/core/trace/trace-detector.demo.js.map +7 -0
  179. package/dist/core/trace/trace-detector.js +386 -0
  180. package/dist/core/trace/trace-detector.js.map +7 -0
  181. package/dist/core/trace/trace-detector.test.js +401 -0
  182. package/dist/core/trace/trace-detector.test.js.map +7 -0
  183. package/dist/core/trace/trace-store.js +341 -0
  184. package/dist/core/trace/trace-store.js.map +7 -0
  185. package/dist/core/trace/types.js +73 -0
  186. package/dist/core/trace/types.js.map +7 -0
  187. package/dist/core/types.js +1 -0
  188. package/dist/core/types.js.map +7 -0
  189. package/dist/core/utils/update-checker.js +214 -0
  190. package/dist/core/utils/update-checker.js.map +7 -0
  191. package/dist/core/worktree/worktree-manager.js +450 -0
  192. package/dist/core/worktree/worktree-manager.js.map +7 -0
  193. package/dist/features/analytics/api/analytics-api.js +283 -0
  194. package/dist/features/analytics/api/analytics-api.js.map +7 -0
  195. package/dist/features/analytics/core/analytics-service.js +267 -0
  196. package/dist/features/analytics/core/analytics-service.js.map +7 -0
  197. package/dist/features/analytics/index.js +14 -0
  198. package/dist/features/analytics/index.js.map +7 -0
  199. package/dist/features/analytics/queries/metrics-queries.js +273 -0
  200. package/dist/features/analytics/queries/metrics-queries.js.map +7 -0
  201. package/dist/features/analytics/types/metrics.js +1 -0
  202. package/dist/features/analytics/types/metrics.js.map +7 -0
  203. package/dist/features/browser/browser-mcp.js +488 -0
  204. package/dist/features/browser/browser-mcp.js.map +7 -0
  205. package/dist/features/tasks/__tests__/pebbles-task-store.test.js +747 -0
  206. package/dist/features/tasks/__tests__/pebbles-task-store.test.js.map +7 -0
  207. package/dist/features/tasks/pebbles-task-store.js +647 -0
  208. package/dist/features/tasks/pebbles-task-store.js.map +7 -0
  209. package/dist/features/tasks/task-aware-context.js +406 -0
  210. package/dist/features/tasks/task-aware-context.js.map +7 -0
  211. package/dist/index.js +21 -0
  212. package/dist/index.js.map +7 -0
  213. package/dist/integrations/linear/__tests__/auth.test.js +558 -0
  214. package/dist/integrations/linear/__tests__/auth.test.js.map +7 -0
  215. package/dist/integrations/linear/__tests__/sync-service.test.js +760 -0
  216. package/dist/integrations/linear/__tests__/sync-service.test.js.map +7 -0
  217. package/dist/integrations/linear/auth.js +308 -0
  218. package/dist/integrations/linear/auth.js.map +7 -0
  219. package/dist/integrations/linear/auto-sync.js +244 -0
  220. package/dist/integrations/linear/auto-sync.js.map +7 -0
  221. package/dist/integrations/linear/client.js +448 -0
  222. package/dist/integrations/linear/client.js.map +7 -0
  223. package/dist/integrations/linear/config.js +115 -0
  224. package/dist/integrations/linear/config.js.map +7 -0
  225. package/dist/integrations/linear/sync-manager.js +233 -0
  226. package/dist/integrations/linear/sync-manager.js.map +7 -0
  227. package/dist/integrations/linear/sync-service.js +214 -0
  228. package/dist/integrations/linear/sync-service.js.map +7 -0
  229. package/dist/integrations/linear/sync.js +565 -0
  230. package/dist/integrations/linear/sync.js.map +7 -0
  231. package/dist/integrations/linear/types.js +1 -0
  232. package/dist/integrations/linear/types.js.map +7 -0
  233. package/dist/integrations/linear/webhook-server.js +204 -0
  234. package/dist/integrations/linear/webhook-server.js.map +7 -0
  235. package/dist/integrations/linear/webhook.js +269 -0
  236. package/dist/integrations/linear/webhook.js.map +7 -0
  237. package/dist/integrations/mcp/__tests__/server.test.js +798 -0
  238. package/dist/integrations/mcp/__tests__/server.test.js.map +7 -0
  239. package/dist/integrations/mcp/handlers/context-handlers.js +253 -0
  240. package/dist/integrations/mcp/handlers/context-handlers.js.map +7 -0
  241. package/dist/integrations/mcp/handlers/index.js +134 -0
  242. package/dist/integrations/mcp/handlers/index.js.map +7 -0
  243. package/dist/integrations/mcp/handlers/linear-handlers.js +243 -0
  244. package/dist/integrations/mcp/handlers/linear-handlers.js.map +7 -0
  245. package/dist/integrations/mcp/handlers/task-handlers.js +235 -0
  246. package/dist/integrations/mcp/handlers/task-handlers.js.map +7 -0
  247. package/dist/integrations/mcp/handlers/trace-handlers.js +304 -0
  248. package/dist/integrations/mcp/handlers/trace-handlers.js.map +7 -0
  249. package/dist/integrations/mcp/index.js +19 -0
  250. package/dist/integrations/mcp/index.js.map +7 -0
  251. package/dist/integrations/mcp/refactored-server.js +331 -0
  252. package/dist/integrations/mcp/refactored-server.js.map +7 -0
  253. package/dist/integrations/mcp/server.js +1621 -0
  254. package/dist/integrations/mcp/server.js.map +7 -0
  255. package/dist/integrations/mcp/tool-definitions.js +562 -0
  256. package/dist/integrations/mcp/tool-definitions.js.map +7 -0
  257. package/dist/integrations/mcp/trace-test.js +44 -0
  258. package/dist/integrations/mcp/trace-test.js.map +7 -0
  259. package/dist/integrations/pg-aiguide/embedding-provider.js +174 -0
  260. package/dist/integrations/pg-aiguide/embedding-provider.js.map +7 -0
  261. package/dist/integrations/pg-aiguide/semantic-search.js +183 -0
  262. package/dist/integrations/pg-aiguide/semantic-search.js.map +7 -0
  263. package/dist/integrations/pg-aiguide/timescale-analytics.js +220 -0
  264. package/dist/integrations/pg-aiguide/timescale-analytics.js.map +7 -0
  265. package/dist/mcp/stackmemory-mcp-server.js +550 -0
  266. package/dist/mcp/stackmemory-mcp-server.js.map +7 -0
  267. package/dist/middleware/exponential-rate-limiter.js +285 -0
  268. package/dist/middleware/exponential-rate-limiter.js.map +7 -0
  269. package/dist/models/user.model.js +351 -0
  270. package/dist/models/user.model.js.map +7 -0
  271. package/dist/scripts/benchmark-performance.d.ts +7 -0
  272. package/dist/scripts/benchmark-performance.d.ts.map +1 -0
  273. package/dist/scripts/benchmark-performance.js +44 -0
  274. package/dist/scripts/benchmark-performance.js.map +1 -0
  275. package/dist/scripts/cleanup-duplicate-tasks.d.ts +12 -0
  276. package/dist/scripts/cleanup-duplicate-tasks.d.ts.map +1 -0
  277. package/dist/scripts/cleanup-duplicate-tasks.js +215 -0
  278. package/dist/scripts/cleanup-duplicate-tasks.js.map +1 -0
  279. package/dist/servers/production/auth-middleware.js +513 -0
  280. package/dist/servers/production/auth-middleware.js.map +7 -0
  281. package/dist/servers/railway/index.js +390 -0
  282. package/dist/servers/railway/index.js.map +7 -0
  283. package/dist/services/config-service.js +62 -0
  284. package/dist/services/config-service.js.map +7 -0
  285. package/dist/services/context-service.js +191 -0
  286. package/dist/services/context-service.js.map +7 -0
  287. package/dist/src/agents/core/agent-task-manager.d.ts +154 -0
  288. package/dist/src/agents/core/agent-task-manager.d.ts.map +1 -0
  289. package/dist/src/agents/core/agent-task-manager.js +504 -0
  290. package/dist/src/agents/core/agent-task-manager.js.map +1 -0
  291. package/dist/src/agents/verifiers/base-verifier.d.ts +112 -0
  292. package/dist/src/agents/verifiers/base-verifier.d.ts.map +1 -0
  293. package/dist/src/agents/verifiers/base-verifier.js +130 -0
  294. package/dist/src/agents/verifiers/base-verifier.js.map +1 -0
  295. package/dist/src/agents/verifiers/formatter-verifier.d.ts +14 -0
  296. package/dist/src/agents/verifiers/formatter-verifier.d.ts.map +1 -0
  297. package/dist/src/agents/verifiers/formatter-verifier.js +107 -0
  298. package/dist/src/agents/verifiers/formatter-verifier.js.map +1 -0
  299. package/dist/src/agents/verifiers/llm-judge.d.ts +46 -0
  300. package/dist/src/agents/verifiers/llm-judge.d.ts.map +1 -0
  301. package/dist/src/agents/verifiers/llm-judge.js +248 -0
  302. package/dist/src/agents/verifiers/llm-judge.js.map +1 -0
  303. package/dist/src/cli/claude-sm.js +55 -0
  304. package/dist/src/cli/claude-sm.js.map +1 -1
  305. package/dist/src/cli/commands/agent.d.ts +9 -0
  306. package/dist/src/cli/commands/agent.d.ts.map +1 -0
  307. package/dist/src/cli/commands/agent.js +303 -0
  308. package/dist/src/cli/commands/agent.js.map +1 -0
  309. package/dist/src/cli/commands/handoff.d.ts +6 -0
  310. package/dist/src/cli/commands/handoff.d.ts.map +1 -0
  311. package/dist/src/cli/commands/handoff.js +212 -0
  312. package/dist/src/cli/commands/handoff.js.map +1 -0
  313. package/dist/src/cli/index.d.ts.map +1 -1
  314. package/dist/src/cli/index.js +4 -0
  315. package/dist/src/cli/index.js.map +1 -1
  316. package/dist/src/core/context/compaction-handler.d.ts.map +1 -1
  317. package/dist/src/core/context/compaction-handler.js +1 -1
  318. package/dist/src/core/context/compaction-handler.js.map +1 -1
  319. package/dist/src/core/context/frame-database.d.ts +59 -0
  320. package/dist/src/core/context/frame-database.d.ts.map +1 -0
  321. package/dist/src/core/context/frame-database.js +333 -0
  322. package/dist/src/core/context/frame-database.js.map +1 -0
  323. package/dist/src/core/context/frame-digest.d.ts +59 -0
  324. package/dist/src/core/context/frame-digest.d.ts.map +1 -0
  325. package/dist/src/core/context/frame-digest.js +264 -0
  326. package/dist/src/core/context/frame-digest.js.map +1 -0
  327. package/dist/src/core/context/frame-manager.d.ts +2 -0
  328. package/dist/src/core/context/frame-manager.d.ts.map +1 -1
  329. package/dist/src/core/context/frame-manager.js +7 -0
  330. package/dist/src/core/context/frame-manager.js.map +1 -1
  331. package/dist/src/core/context/frame-stack.d.ts +85 -0
  332. package/dist/src/core/context/frame-stack.d.ts.map +1 -0
  333. package/dist/src/core/context/frame-stack.js +287 -0
  334. package/dist/src/core/context/frame-stack.js.map +1 -0
  335. package/dist/src/core/context/frame-types.d.ts +67 -0
  336. package/dist/src/core/context/frame-types.d.ts.map +1 -0
  337. package/dist/src/core/context/frame-types.js +6 -0
  338. package/dist/src/core/context/frame-types.js.map +1 -0
  339. package/dist/src/core/context/index.d.ts +11 -0
  340. package/dist/src/core/context/index.d.ts.map +1 -0
  341. package/dist/src/core/context/index.js +14 -0
  342. package/dist/src/core/context/index.js.map +1 -0
  343. package/dist/src/core/context/refactored-frame-manager.d.ts +99 -0
  344. package/dist/src/core/context/refactored-frame-manager.d.ts.map +1 -0
  345. package/dist/src/core/context/refactored-frame-manager.js +340 -0
  346. package/dist/src/core/context/refactored-frame-manager.js.map +1 -0
  347. package/dist/src/core/database/batch-operations.d.ts +118 -0
  348. package/dist/src/core/database/batch-operations.d.ts.map +1 -0
  349. package/dist/src/core/database/batch-operations.js +339 -0
  350. package/dist/src/core/database/batch-operations.js.map +1 -0
  351. package/dist/src/core/database/connection-pool.d.ts +79 -0
  352. package/dist/src/core/database/connection-pool.d.ts.map +1 -0
  353. package/dist/src/core/database/connection-pool.js +236 -0
  354. package/dist/src/core/database/connection-pool.js.map +1 -0
  355. package/dist/src/core/database/query-cache.d.ts +135 -0
  356. package/dist/src/core/database/query-cache.d.ts.map +1 -0
  357. package/dist/src/core/database/query-cache.js +294 -0
  358. package/dist/src/core/database/query-cache.js.map +1 -0
  359. package/dist/src/core/digest/enhanced-hybrid-digest.d.ts +125 -0
  360. package/dist/src/core/digest/enhanced-hybrid-digest.d.ts.map +1 -0
  361. package/dist/src/core/digest/enhanced-hybrid-digest.js +282 -0
  362. package/dist/src/core/digest/enhanced-hybrid-digest.js.map +1 -0
  363. package/dist/src/core/digest/frame-digest-integration.d.ts +67 -0
  364. package/dist/src/core/digest/frame-digest-integration.d.ts.map +1 -0
  365. package/dist/src/core/digest/frame-digest-integration.js +198 -0
  366. package/dist/src/core/digest/frame-digest-integration.js.map +1 -0
  367. package/dist/src/core/digest/hybrid-digest-generator.d.ts +76 -0
  368. package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +1 -0
  369. package/dist/src/core/digest/hybrid-digest-generator.js +629 -0
  370. package/dist/src/core/digest/hybrid-digest-generator.js.map +1 -0
  371. package/dist/src/core/digest/index.d.ts +9 -0
  372. package/dist/src/core/digest/index.d.ts.map +1 -0
  373. package/dist/src/core/digest/index.js +9 -0
  374. package/dist/src/core/digest/index.js.map +1 -0
  375. package/dist/src/core/digest/types.d.ts +154 -0
  376. package/dist/src/core/digest/types.d.ts.map +1 -0
  377. package/dist/src/core/digest/types.js +18 -0
  378. package/dist/src/core/digest/types.js.map +1 -0
  379. package/dist/src/core/errors/index.d.ts +13 -5
  380. package/dist/src/core/errors/index.d.ts.map +1 -1
  381. package/dist/src/core/errors/index.js +13 -5
  382. package/dist/src/core/errors/index.js.map +1 -1
  383. package/dist/src/core/merge/conflict-detector.d.ts +122 -0
  384. package/dist/src/core/merge/conflict-detector.d.ts.map +1 -0
  385. package/dist/src/core/merge/conflict-detector.js +468 -0
  386. package/dist/src/core/merge/conflict-detector.js.map +1 -0
  387. package/dist/src/core/merge/index.d.ts +9 -0
  388. package/dist/src/core/merge/index.d.ts.map +1 -0
  389. package/dist/src/core/merge/index.js +9 -0
  390. package/dist/src/core/merge/index.js.map +1 -0
  391. package/dist/src/core/merge/resolution-engine.d.ts +120 -0
  392. package/dist/src/core/merge/resolution-engine.d.ts.map +1 -0
  393. package/dist/src/core/merge/resolution-engine.js +573 -0
  394. package/dist/src/core/merge/resolution-engine.js.map +1 -0
  395. package/dist/src/core/merge/stack-diff.d.ts +97 -0
  396. package/dist/src/core/merge/stack-diff.d.ts.map +1 -0
  397. package/dist/src/core/merge/stack-diff.js +516 -0
  398. package/dist/src/core/merge/stack-diff.js.map +1 -0
  399. package/dist/src/core/merge/types.d.ts +110 -0
  400. package/dist/src/core/merge/types.d.ts.map +1 -0
  401. package/dist/src/core/merge/types.js +6 -0
  402. package/dist/src/core/merge/types.js.map +1 -0
  403. package/dist/src/core/monitoring/logger.d.ts +2 -2
  404. package/dist/src/core/monitoring/logger.d.ts.map +1 -1
  405. package/dist/src/core/monitoring/logger.js +10 -5
  406. package/dist/src/core/monitoring/logger.js.map +1 -1
  407. package/dist/src/core/monitoring/metrics.d.ts +3 -0
  408. package/dist/src/core/monitoring/metrics.d.ts.map +1 -1
  409. package/dist/src/core/monitoring/metrics.js +142 -3
  410. package/dist/src/core/monitoring/metrics.js.map +1 -1
  411. package/dist/src/core/performance/context-cache.d.ts +109 -0
  412. package/dist/src/core/performance/context-cache.d.ts.map +1 -0
  413. package/dist/src/core/performance/context-cache.js +280 -0
  414. package/dist/src/core/performance/context-cache.js.map +1 -0
  415. package/dist/src/core/performance/index.d.ts +3 -0
  416. package/dist/src/core/performance/index.d.ts.map +1 -0
  417. package/dist/src/core/performance/index.js +3 -0
  418. package/dist/src/core/performance/index.js.map +1 -0
  419. package/dist/src/core/performance/lazy-context-loader.d.ts +93 -0
  420. package/dist/src/core/performance/lazy-context-loader.d.ts.map +1 -0
  421. package/dist/src/core/performance/lazy-context-loader.js +332 -0
  422. package/dist/src/core/performance/lazy-context-loader.js.map +1 -0
  423. package/dist/src/core/performance/monitor.d.ts +48 -0
  424. package/dist/src/core/performance/monitor.d.ts.map +1 -0
  425. package/dist/src/core/performance/monitor.js +226 -0
  426. package/dist/src/core/performance/monitor.js.map +1 -0
  427. package/dist/src/core/performance/optimized-frame-context.d.ts +74 -0
  428. package/dist/src/core/performance/optimized-frame-context.d.ts.map +1 -0
  429. package/dist/src/core/performance/optimized-frame-context.js +330 -0
  430. package/dist/src/core/performance/optimized-frame-context.js.map +1 -0
  431. package/dist/src/core/performance/performance-benchmark.d.ts +50 -0
  432. package/dist/src/core/performance/performance-benchmark.d.ts.map +1 -0
  433. package/dist/src/core/performance/performance-benchmark.js +290 -0
  434. package/dist/src/core/performance/performance-benchmark.js.map +1 -0
  435. package/dist/src/core/performance/performance-profiler.d.ts +151 -0
  436. package/dist/src/core/performance/performance-profiler.d.ts.map +1 -0
  437. package/dist/src/core/performance/performance-profiler.js +346 -0
  438. package/dist/src/core/performance/performance-profiler.js.map +1 -0
  439. package/dist/src/core/performance/streaming-jsonl-parser.d.ts +41 -0
  440. package/dist/src/core/performance/streaming-jsonl-parser.d.ts.map +1 -0
  441. package/dist/src/core/performance/streaming-jsonl-parser.js +193 -0
  442. package/dist/src/core/performance/streaming-jsonl-parser.js.map +1 -0
  443. package/dist/src/core/persistence/postgres-adapter.d.ts +31 -0
  444. package/dist/src/core/persistence/postgres-adapter.d.ts.map +1 -0
  445. package/dist/src/core/persistence/postgres-adapter.js +330 -0
  446. package/dist/src/core/persistence/postgres-adapter.js.map +1 -0
  447. package/dist/src/core/query/query-parser.d.ts +5 -0
  448. package/dist/src/core/query/query-parser.d.ts.map +1 -1
  449. package/dist/src/core/query/query-parser.js +86 -18
  450. package/dist/src/core/query/query-parser.js.map +1 -1
  451. package/dist/src/core/query/query-templates.d.ts +44 -0
  452. package/dist/src/core/query/query-templates.d.ts.map +1 -0
  453. package/dist/src/core/query/query-templates.js +326 -0
  454. package/dist/src/core/query/query-templates.js.map +1 -0
  455. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +5 -3
  456. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -1
  457. package/dist/src/core/retrieval/llm-context-retrieval.js +73 -21
  458. package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -1
  459. package/dist/src/core/trace/cli-trace-wrapper.d.ts +23 -0
  460. package/dist/src/core/trace/cli-trace-wrapper.d.ts.map +1 -0
  461. package/dist/src/core/trace/cli-trace-wrapper.js +141 -0
  462. package/dist/src/core/trace/cli-trace-wrapper.js.map +1 -0
  463. package/dist/src/core/trace/db-trace-wrapper.d.ts +36 -0
  464. package/dist/src/core/trace/db-trace-wrapper.d.ts.map +1 -0
  465. package/dist/src/core/trace/db-trace-wrapper.js +252 -0
  466. package/dist/src/core/trace/db-trace-wrapper.js.map +1 -0
  467. package/dist/src/core/trace/debug-trace.d.ts +84 -0
  468. package/dist/src/core/trace/debug-trace.d.ts.map +1 -0
  469. package/dist/src/core/trace/debug-trace.js +402 -0
  470. package/dist/src/core/trace/debug-trace.js.map +1 -0
  471. package/dist/src/core/trace/error-test.d.ts +6 -0
  472. package/dist/src/core/trace/error-test.d.ts.map +1 -0
  473. package/dist/src/core/trace/error-test.js +128 -0
  474. package/dist/src/core/trace/error-test.js.map +1 -0
  475. package/dist/src/core/trace/index.d.ts +25 -0
  476. package/dist/src/core/trace/index.d.ts.map +1 -0
  477. package/dist/src/core/trace/index.js +121 -0
  478. package/dist/src/core/trace/index.js.map +1 -0
  479. package/dist/src/core/trace/linear-api-wrapper.d.ts +17 -0
  480. package/dist/src/core/trace/linear-api-wrapper.d.ts.map +1 -0
  481. package/dist/src/core/trace/linear-api-wrapper.js +205 -0
  482. package/dist/src/core/trace/linear-api-wrapper.js.map +1 -0
  483. package/dist/src/core/trace/performance-test.d.ts +6 -0
  484. package/dist/src/core/trace/performance-test.d.ts.map +1 -0
  485. package/dist/src/core/trace/performance-test.js +111 -0
  486. package/dist/src/core/trace/performance-test.js.map +1 -0
  487. package/dist/src/core/trace/trace-demo.d.ts +8 -0
  488. package/dist/src/core/trace/trace-demo.d.ts.map +1 -0
  489. package/dist/src/core/trace/trace-demo.js +154 -0
  490. package/dist/src/core/trace/trace-demo.js.map +1 -0
  491. package/dist/src/core/trace/trace-detector.d.ts +2 -2
  492. package/dist/src/core/trace/trace-detector.d.ts.map +1 -1
  493. package/dist/src/core/trace/trace-detector.demo.js +6 -6
  494. package/dist/src/core/trace/trace-detector.demo.js.map +1 -1
  495. package/dist/src/core/trace/trace-detector.js +3 -3
  496. package/dist/src/core/trace/trace-detector.js.map +1 -1
  497. package/dist/src/core/types.d.ts +35 -0
  498. package/dist/src/core/types.d.ts.map +1 -0
  499. package/dist/src/core/types.js +2 -0
  500. package/dist/src/core/types.js.map +1 -0
  501. package/dist/src/features/tasks/pebbles-task-store.d.ts +9 -2
  502. package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -1
  503. package/dist/src/features/tasks/pebbles-task-store.js +97 -18
  504. package/dist/src/features/tasks/pebbles-task-store.js.map +1 -1
  505. package/dist/src/integrations/linear/auth.d.ts.map +1 -1
  506. package/dist/src/integrations/linear/auth.js.map +1 -1
  507. package/dist/src/integrations/linear/client.d.ts +15 -1
  508. package/dist/src/integrations/linear/client.d.ts.map +1 -1
  509. package/dist/src/integrations/linear/client.js +85 -3
  510. package/dist/src/integrations/linear/client.js.map +1 -1
  511. package/dist/src/integrations/linear/sync-manager.d.ts +2 -0
  512. package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -1
  513. package/dist/src/integrations/linear/sync-manager.js +16 -4
  514. package/dist/src/integrations/linear/sync-manager.js.map +1 -1
  515. package/dist/src/integrations/linear/sync-service.d.ts +23 -2
  516. package/dist/src/integrations/linear/sync-service.d.ts.map +1 -1
  517. package/dist/src/integrations/linear/sync-service.js +44 -25
  518. package/dist/src/integrations/linear/sync-service.js.map +1 -1
  519. package/dist/src/integrations/linear/sync.d.ts +6 -0
  520. package/dist/src/integrations/linear/sync.d.ts.map +1 -1
  521. package/dist/src/integrations/linear/sync.js +27 -2
  522. package/dist/src/integrations/linear/sync.js.map +1 -1
  523. package/dist/src/integrations/linear/types.d.ts +16 -1
  524. package/dist/src/integrations/linear/types.d.ts.map +1 -1
  525. package/dist/src/integrations/linear/webhook-server.d.ts.map +1 -1
  526. package/dist/src/integrations/linear/webhook-server.js +10 -8
  527. package/dist/src/integrations/linear/webhook-server.js.map +1 -1
  528. package/dist/src/integrations/linear/webhook.d.ts +13 -0
  529. package/dist/src/integrations/linear/webhook.d.ts.map +1 -1
  530. package/dist/src/integrations/linear/webhook.js +101 -14
  531. package/dist/src/integrations/linear/webhook.js.map +1 -1
  532. package/dist/src/integrations/mcp/handlers/context-handlers.d.ts +39 -0
  533. package/dist/src/integrations/mcp/handlers/context-handlers.d.ts.map +1 -0
  534. package/dist/src/integrations/mcp/handlers/context-handlers.js +266 -0
  535. package/dist/src/integrations/mcp/handlers/context-handlers.js.map +1 -0
  536. package/dist/src/integrations/mcp/handlers/index.d.ts +37 -0
  537. package/dist/src/integrations/mcp/handlers/index.d.ts.map +1 -0
  538. package/dist/src/integrations/mcp/handlers/index.js +134 -0
  539. package/dist/src/integrations/mcp/handlers/index.js.map +1 -0
  540. package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts +33 -0
  541. package/dist/src/integrations/mcp/handlers/linear-handlers.d.ts.map +1 -0
  542. package/dist/src/integrations/mcp/handlers/linear-handlers.js +251 -0
  543. package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +1 -0
  544. package/dist/src/integrations/mcp/handlers/task-handlers.d.ts +42 -0
  545. package/dist/src/integrations/mcp/handlers/task-handlers.d.ts.map +1 -0
  546. package/dist/src/integrations/mcp/handlers/task-handlers.js +238 -0
  547. package/dist/src/integrations/mcp/handlers/task-handlers.js.map +1 -0
  548. package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts +41 -0
  549. package/dist/src/integrations/mcp/handlers/trace-handlers.d.ts.map +1 -0
  550. package/dist/src/integrations/mcp/handlers/trace-handlers.js +298 -0
  551. package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +1 -0
  552. package/dist/src/integrations/mcp/index.d.ts +13 -0
  553. package/dist/src/integrations/mcp/index.d.ts.map +1 -0
  554. package/dist/src/integrations/mcp/index.js +17 -0
  555. package/dist/src/integrations/mcp/index.js.map +1 -0
  556. package/dist/src/integrations/mcp/refactored-server.d.ts +76 -0
  557. package/dist/src/integrations/mcp/refactored-server.d.ts.map +1 -0
  558. package/dist/src/integrations/mcp/refactored-server.js +351 -0
  559. package/dist/src/integrations/mcp/refactored-server.js.map +1 -0
  560. package/dist/src/integrations/mcp/server.js +2 -2
  561. package/dist/src/integrations/mcp/server.js.map +1 -1
  562. package/dist/src/integrations/mcp/tool-definitions.d.ts +44 -0
  563. package/dist/src/integrations/mcp/tool-definitions.d.ts.map +1 -0
  564. package/dist/src/integrations/mcp/tool-definitions.js +563 -0
  565. package/dist/src/integrations/mcp/tool-definitions.js.map +1 -0
  566. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts +48 -0
  567. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +1 -0
  568. package/dist/src/integrations/pg-aiguide/embedding-provider.js +190 -0
  569. package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +1 -0
  570. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +34 -0
  571. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +1 -0
  572. package/dist/src/integrations/pg-aiguide/semantic-search.js +176 -0
  573. package/dist/src/integrations/pg-aiguide/semantic-search.js.map +1 -0
  574. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +44 -0
  575. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +1 -0
  576. package/dist/src/integrations/pg-aiguide/timescale-analytics.js +215 -0
  577. package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +1 -0
  578. package/dist/src/mcp/stackmemory-mcp-server.d.ts +9 -0
  579. package/dist/src/mcp/stackmemory-mcp-server.d.ts.map +1 -0
  580. package/dist/src/mcp/stackmemory-mcp-server.js +519 -0
  581. package/dist/src/mcp/stackmemory-mcp-server.js.map +1 -0
  582. package/dist/src/middleware/exponential-rate-limiter.d.ts +78 -0
  583. package/dist/src/middleware/exponential-rate-limiter.d.ts.map +1 -0
  584. package/dist/src/middleware/exponential-rate-limiter.js +293 -0
  585. package/dist/src/middleware/exponential-rate-limiter.js.map +1 -0
  586. package/dist/src/models/user.model.d.ts +62 -0
  587. package/dist/src/models/user.model.d.ts.map +1 -0
  588. package/dist/src/models/user.model.js +311 -0
  589. package/dist/src/models/user.model.js.map +1 -0
  590. package/dist/src/servers/production/auth-middleware.d.ts +12 -2
  591. package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
  592. package/dist/src/servers/production/auth-middleware.js +240 -28
  593. package/dist/src/servers/production/auth-middleware.js.map +1 -1
  594. package/dist/src/servers/railway/index.js.map +1 -1
  595. package/dist/src/services/context-service.d.ts.map +1 -1
  596. package/dist/src/services/context-service.js +86 -1
  597. package/dist/src/services/context-service.js.map +1 -1
  598. package/dist/src/validation/schemas.d.ts +633 -0
  599. package/dist/src/validation/schemas.d.ts.map +1 -0
  600. package/dist/src/validation/schemas.js +347 -0
  601. package/dist/src/validation/schemas.js.map +1 -0
  602. package/dist/types/task.js +1 -0
  603. package/dist/types/task.js.map +7 -0
  604. package/dist/utils/logger.js +52 -0
  605. package/dist/utils/logger.js.map +7 -0
  606. package/dist/validation/schemas.js +218 -0
  607. package/dist/validation/schemas.js.map +7 -0
  608. package/package.json +12 -3
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Enhanced Hybrid Digest Generator for STA-96
3
+ * Implements 60/40 split: deterministic extraction + AI-generated insights
4
+ */
5
+ import { HybridDigestGenerator } from './hybrid-digest-generator.js';
6
+ import { logger } from '../monitoring/logger.js';
7
+ const DEFAULT_IDLE_CONFIG = {
8
+ noToolCallThreshold: 30000, // 30 seconds
9
+ noInputThreshold: 60000, // 60 seconds
10
+ processOnFrameClose: true,
11
+ checkInterval: 10000, // Check every 10 seconds
12
+ };
13
+ /**
14
+ * Enhanced Hybrid Digest Generator
15
+ * Implements 60% deterministic + 40% AI insights
16
+ */
17
+ export class EnhancedHybridDigestGenerator extends HybridDigestGenerator {
18
+ idleConfig;
19
+ lastToolCallTime = Date.now();
20
+ lastInputTime = Date.now();
21
+ idleCheckInterval;
22
+ activeFrames = new Set();
23
+ constructor(db, config = {}, llmProvider, idleConfig = {}) {
24
+ // Update config to reflect 60/40 split
25
+ const enhancedConfig = {
26
+ ...config,
27
+ maxTokens: config.maxTokens || 200, // Keep under 200 tokens as per requirement
28
+ enableAIGeneration: config.enableAIGeneration ?? true,
29
+ };
30
+ super(db, enhancedConfig, llmProvider);
31
+ this.idleConfig = { ...DEFAULT_IDLE_CONFIG, ...idleConfig };
32
+ this.startIdleDetection();
33
+ }
34
+ /**
35
+ * Start idle detection monitoring
36
+ */
37
+ startIdleDetection() {
38
+ this.idleCheckInterval = setInterval(() => {
39
+ this.checkIdleState();
40
+ }, this.idleConfig.checkInterval);
41
+ }
42
+ /**
43
+ * Check if system is idle and trigger processing
44
+ */
45
+ checkIdleState() {
46
+ const now = Date.now();
47
+ // Check for idle based on tool calls
48
+ const toolCallIdle = now - this.lastToolCallTime > this.idleConfig.noToolCallThreshold;
49
+ // Check for idle based on user input
50
+ const inputIdle = now - this.lastInputTime > this.idleConfig.noInputThreshold;
51
+ if (toolCallIdle || inputIdle) {
52
+ logger.debug('Idle state detected, triggering digest processing', {
53
+ toolCallIdle,
54
+ inputIdle,
55
+ timeSinceLastToolCall: now - this.lastToolCallTime,
56
+ timeSinceLastInput: now - this.lastInputTime,
57
+ });
58
+ this.processQueue().catch((error) => {
59
+ logger.error('Error processing digest queue during idle', error instanceof Error ? error : new Error(String(error)));
60
+ });
61
+ }
62
+ }
63
+ /**
64
+ * Record tool call activity
65
+ */
66
+ recordToolCall() {
67
+ this.lastToolCallTime = Date.now();
68
+ }
69
+ /**
70
+ * Record user input activity
71
+ */
72
+ recordUserInput() {
73
+ this.lastInputTime = Date.now();
74
+ }
75
+ /**
76
+ * Handle frame closure - immediately trigger digest if configured
77
+ */
78
+ onFrameClosed(frameId) {
79
+ this.activeFrames.delete(frameId);
80
+ if (this.idleConfig.processOnFrameClose) {
81
+ logger.info('Frame closed, triggering immediate digest processing', {
82
+ frameId,
83
+ });
84
+ // Process this specific frame with high priority
85
+ this.prioritizeFrame(frameId);
86
+ this.processQueue().catch((error) => {
87
+ logger.error('Error processing digest on frame close', error instanceof Error ? error : new Error(String(error)));
88
+ });
89
+ }
90
+ }
91
+ /**
92
+ * Handle frame opened
93
+ */
94
+ onFrameOpened(frameId) {
95
+ this.activeFrames.add(frameId);
96
+ }
97
+ /**
98
+ * Prioritize a specific frame for processing
99
+ */
100
+ prioritizeFrame(frameId) {
101
+ try {
102
+ this.db
103
+ .prepare(`
104
+ UPDATE digest_queue
105
+ SET priority = 'high', updated_at = unixepoch()
106
+ WHERE frame_id = ? AND status = 'pending'
107
+ `)
108
+ .run(frameId);
109
+ }
110
+ catch (error) {
111
+ logger.error('Failed to prioritize frame', error);
112
+ }
113
+ }
114
+ /**
115
+ * Enhanced AI generation with 40% content
116
+ */
117
+ async generateEnhancedAI(input, deterministic) {
118
+ if (!this.llmProvider) {
119
+ throw new Error('No LLM provider configured');
120
+ }
121
+ // Build enhanced prompt for 40% AI content
122
+ const prompt = this.buildEnhancedPrompt(input, deterministic);
123
+ // Generate with LLM
124
+ const response = await this.llmProvider.generateSummary(input, deterministic, this.config.maxTokens);
125
+ // Parse and structure the enhanced response
126
+ const enhanced = {
127
+ ...response,
128
+ keyDecisions: this.extractKeyDecisions(response),
129
+ insights: this.extractInsights(response),
130
+ nextSteps: this.extractNextSteps(response),
131
+ patterns: this.detectPatterns(input, deterministic),
132
+ technicalDebt: this.identifyTechnicalDebt(input, deterministic),
133
+ };
134
+ return enhanced;
135
+ }
136
+ /**
137
+ * Build enhanced prompt for AI generation
138
+ */
139
+ buildEnhancedPrompt(input, deterministic) {
140
+ const parts = [
141
+ `Analyze this development frame and provide insights (max ${this.config.maxTokens} tokens):`,
142
+ '',
143
+ `Frame: ${input.frame.name} (${input.frame.type})`,
144
+ `Duration: ${deterministic.durationSeconds}s`,
145
+ `Files Modified: ${deterministic.filesModified.length}`,
146
+ `Tool Calls: ${deterministic.toolCallCount}`,
147
+ `Errors: ${deterministic.errorsEncountered.length}`,
148
+ '',
149
+ 'Provide:',
150
+ '1. Key decisions made and why (2-3 items)',
151
+ '2. Important insights or learnings (1-2 items)',
152
+ '3. Suggested next steps (2-3 items)',
153
+ '4. Any patterns or anti-patterns observed',
154
+ '5. Technical debt or improvements needed',
155
+ '',
156
+ 'Be concise and actionable. Focus on value, not description.',
157
+ ];
158
+ return parts.join('\n');
159
+ }
160
+ /**
161
+ * Extract key decisions from AI response
162
+ */
163
+ extractKeyDecisions(response) {
164
+ // This would parse the AI response for decision patterns
165
+ // For now, return placeholder
166
+ return [];
167
+ }
168
+ /**
169
+ * Extract insights from AI response
170
+ */
171
+ extractInsights(response) {
172
+ const insights = [];
173
+ if (response.insight) {
174
+ insights.push(response.insight);
175
+ }
176
+ return insights;
177
+ }
178
+ /**
179
+ * Extract next steps from AI response
180
+ */
181
+ extractNextSteps(response) {
182
+ // Parse AI response for next steps
183
+ return [];
184
+ }
185
+ /**
186
+ * Detect patterns in the frame activity
187
+ */
188
+ detectPatterns(input, deterministic) {
189
+ const patterns = [];
190
+ // Detect retry patterns
191
+ if (deterministic.errorsEncountered.some((e) => e.count > 2)) {
192
+ patterns.push('Multiple retry attempts detected');
193
+ }
194
+ // Detect test-driven development
195
+ const hasTests = deterministic.testsRun.length > 0;
196
+ const hasCodeChanges = deterministic.filesModified.some((f) => f.operation === 'modify' && !f.path.includes('test'));
197
+ if (hasTests && hasCodeChanges) {
198
+ patterns.push('Test-driven development pattern observed');
199
+ }
200
+ // Detect refactoring patterns
201
+ const manyFileChanges = deterministic.filesModified.length > 5;
202
+ const noNewFiles = !deterministic.filesModified.some((f) => f.operation === 'create');
203
+ if (manyFileChanges && noNewFiles) {
204
+ patterns.push('Refactoring pattern detected');
205
+ }
206
+ return patterns;
207
+ }
208
+ /**
209
+ * Identify technical debt
210
+ */
211
+ identifyTechnicalDebt(input, deterministic) {
212
+ const debt = [];
213
+ // Check for missing tests
214
+ if (deterministic.filesModified.length > 3 &&
215
+ deterministic.testsRun.length === 0) {
216
+ debt.push('Code changes without corresponding tests');
217
+ }
218
+ // Check for unresolved errors
219
+ const unresolvedErrors = deterministic.errorsEncountered.filter((e) => !e.resolved);
220
+ if (unresolvedErrors.length > 0) {
221
+ debt.push(`${unresolvedErrors.length} unresolved errors remain`);
222
+ }
223
+ // Check for TODOs in decisions
224
+ if (deterministic.decisions.some((d) => d.toLowerCase().includes('todo'))) {
225
+ debt.push('TODOs added to codebase');
226
+ }
227
+ return debt;
228
+ }
229
+ /**
230
+ * Generate digest with 60/40 split
231
+ */
232
+ generateDigest(input) {
233
+ // Record activity
234
+ this.recordToolCall();
235
+ // Generate base digest (60% deterministic)
236
+ const digest = super.generateDigest(input);
237
+ // Ensure AI generation is queued for 40% content
238
+ if (this.config.enableAIGeneration && this.llmProvider) {
239
+ digest.status = 'ai_pending';
240
+ }
241
+ return digest;
242
+ }
243
+ /**
244
+ * Handle interruption gracefully
245
+ */
246
+ handleInterruption() {
247
+ logger.info('User activity detected, pausing digest processing');
248
+ // Update timestamps
249
+ this.recordUserInput();
250
+ this.recordToolCall();
251
+ // Don't stop processing entirely, just deprioritize
252
+ this.db
253
+ .prepare(`
254
+ UPDATE digest_queue
255
+ SET priority = 'low'
256
+ WHERE status = 'processing'
257
+ `)
258
+ .run();
259
+ }
260
+ /**
261
+ * Get idle status
262
+ */
263
+ getIdleStatus() {
264
+ const now = Date.now();
265
+ return {
266
+ isIdle: now - this.lastToolCallTime > this.idleConfig.noToolCallThreshold ||
267
+ now - this.lastInputTime > this.idleConfig.noInputThreshold,
268
+ timeSinceLastToolCall: now - this.lastToolCallTime,
269
+ timeSinceLastInput: now - this.lastInputTime,
270
+ activeFrames: this.activeFrames.size,
271
+ };
272
+ }
273
+ /**
274
+ * Cleanup on shutdown
275
+ */
276
+ shutdown() {
277
+ if (this.idleCheckInterval) {
278
+ clearInterval(this.idleCheckInterval);
279
+ }
280
+ }
281
+ }
282
+ //# sourceMappingURL=enhanced-hybrid-digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-hybrid-digest.js","sourceRoot":"","sources":["../../../../src/core/digest/enhanced-hybrid-digest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAgCjD,MAAM,mBAAmB,GAAwB;IAC/C,mBAAmB,EAAE,KAAK,EAAE,aAAa;IACzC,gBAAgB,EAAE,KAAK,EAAE,aAAa;IACtC,mBAAmB,EAAE,IAAI;IACzB,aAAa,EAAE,KAAK,EAAE,yBAAyB;CAChD,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,6BAA8B,SAAQ,qBAAqB;IAC9D,UAAU,CAAsB;IAChC,gBAAgB,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,aAAa,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,iBAAiB,CAAkB;IACnC,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,YACE,EAAqB,EACrB,SAAgC,EAAE,EAClC,WAA+B,EAC/B,aAA2C,EAAE;QAE7C,uCAAuC;QACvC,MAAM,cAAc,GAAG;YACrB,GAAG,MAAM;YACT,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,2CAA2C;YAC/E,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;SACtD,CAAC;QAEF,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,qCAAqC;QACrC,MAAM,YAAY,GAChB,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAEpE,qCAAqC;QACrC,MAAM,SAAS,GACb,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAE9D,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE;gBAChE,YAAY;gBACZ,SAAS;gBACT,qBAAqB,EAAE,GAAG,GAAG,IAAI,CAAC,gBAAgB;gBAClD,kBAAkB,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa;aAC7C,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,OAAe;QAClC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;gBAClE,OAAO;aACR,CAAC,CAAC;YAEH,iDAAiD;YACjD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,OAAe;QAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAe;QACrC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;OAIH,CACE;iBACA,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAc,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB,CAChC,KAAkB,EAClB,aAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAE9D,oBAAoB;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CACrD,KAAK,EACL,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,QAAQ,GAAqB;YACjC,GAAG,QAAQ;YACX,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAChD,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC1C,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC;YACnD,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,aAAa,CAAC;SAChE,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,KAAkB,EAClB,aAAkC;QAElC,MAAM,KAAK,GAAa;YACtB,4DAA4D,IAAI,CAAC,MAAM,CAAC,SAAS,WAAW;YAC5F,EAAE;YACF,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG;YAClD,aAAa,aAAa,CAAC,eAAe,GAAG;YAC7C,mBAAmB,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE;YACvD,eAAe,aAAa,CAAC,aAAa,EAAE;YAC5C,WAAW,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACnD,EAAE;YACF,UAAU;YACV,2CAA2C;YAC3C,gDAAgD;YAChD,qCAAqC;YACrC,2CAA2C;YAC3C,0CAA0C;YAC1C,EAAE;YACF,6DAA6D;SAC9D,CAAC;QAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,QAA2B;QACrD,yDAAyD;QACzD,8BAA8B;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAA2B;QACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAA2B;QAClD,mCAAmC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,KAAkB,EAClB,aAAkC;QAElC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,wBAAwB;QACxB,IAAI,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5D,CAAC;QACF,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC5D,CAAC;QAED,8BAA8B;QAC9B,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAChC,CAAC;QACF,IAAI,eAAe,IAAI,UAAU,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,KAAkB,EAClB,aAAkC;QAElC,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,0BAA0B;QAC1B,IACE,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACtC,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,CAAC;QAED,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CACnB,CAAC;QACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,2BAA2B,CAAC,CAAC;QACnE,CAAC;QAED,+BAA+B;QAC/B,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,KAAkB;QACtC,kBAAkB;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,2CAA2C;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3C,iDAAiD;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,kBAAkB;QACvB,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAEjE,oBAAoB;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,oDAAoD;QACpD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;KAIH,CACE;aACA,GAAG,EAAE,CAAC;IACX,CAAC;IAED;;OAEG;IACI,aAAa;QAMlB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EACJ,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB;gBACjE,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB;YAC7D,qBAAqB,EAAE,GAAG,GAAG,IAAI,CAAC,gBAAgB;YAClD,kBAAkB,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;SACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Integration module for Enhanced Hybrid Digest with Frame Manager
3
+ * Connects the 60/40 digest generator with frame lifecycle events
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ import { FrameManager } from '../context/frame-manager.js';
7
+ import { EnhancedHybridDigestGenerator } from './enhanced-hybrid-digest.js';
8
+ import { DigestLLMProvider } from './types.js';
9
+ /**
10
+ * Frame Digest Integration
11
+ * Enhances FrameManager with hybrid digest capabilities
12
+ */
13
+ export declare class FrameDigestIntegration {
14
+ private frameManager;
15
+ private digestGenerator;
16
+ private frameActivityMap;
17
+ constructor(frameManager: FrameManager, db: Database.Database, llmProvider?: DigestLLMProvider);
18
+ /**
19
+ * Setup frame lifecycle hooks
20
+ */
21
+ private setupHooks;
22
+ /**
23
+ * Generate enhanced digest for a frame
24
+ */
25
+ private generateEnhancedDigest;
26
+ /**
27
+ * Convert FrameManager frame to DigestInput frame
28
+ */
29
+ private convertFrame;
30
+ /**
31
+ * Convert FrameManager event to DigestInput event
32
+ */
33
+ private convertEvent;
34
+ /**
35
+ * Convert FrameManager anchor to DigestInput anchor
36
+ */
37
+ private convertAnchor;
38
+ /**
39
+ * Calculate importance score based on frame characteristics
40
+ */
41
+ private calculateImportanceScore;
42
+ /**
43
+ * Get frame anchors (wrapper for proper typing)
44
+ */
45
+ private getFrameAnchors;
46
+ /**
47
+ * Handle user interruption
48
+ */
49
+ handleUserInterruption(): void;
50
+ /**
51
+ * Get idle status
52
+ */
53
+ getIdleStatus(): ReturnType<EnhancedHybridDigestGenerator['getIdleStatus']>;
54
+ /**
55
+ * Force process digest queue
56
+ */
57
+ forceProcessQueue(): Promise<void>;
58
+ /**
59
+ * Cleanup
60
+ */
61
+ shutdown(): void;
62
+ }
63
+ /**
64
+ * Factory function to enhance existing FrameManager
65
+ */
66
+ export declare function enhanceFrameManagerWithDigest(frameManager: FrameManager, db: Database.Database, llmProvider?: DigestLLMProvider): FrameDigestIntegration;
67
+ //# sourceMappingURL=frame-digest-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-digest-integration.d.ts","sourceRoot":"","sources":["../../../../src/core/digest/frame-digest-integration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,YAAY,EAIb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAe,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG5D;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,gBAAgB,CAA6B;gBAGnD,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,CAAC,EAAE,iBAAiB;IAejC;;OAEG;IACH,OAAO,CAAC,UAAU;IAyElB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqC9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4BhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACI,sBAAsB,IAAI,IAAI;IAIrC;;OAEG;IACI,aAAa,IAAI,UAAU,CAChC,6BAA6B,CAAC,eAAe,CAAC,CAC/C;IAID;;OAEG;IACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACI,QAAQ,IAAI,IAAI;CAGxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,sBAAsB,CAExB"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Integration module for Enhanced Hybrid Digest with Frame Manager
3
+ * Connects the 60/40 digest generator with frame lifecycle events
4
+ */
5
+ import { EnhancedHybridDigestGenerator } from './enhanced-hybrid-digest.js';
6
+ import { logger } from '../monitoring/logger.js';
7
+ /**
8
+ * Frame Digest Integration
9
+ * Enhances FrameManager with hybrid digest capabilities
10
+ */
11
+ export class FrameDigestIntegration {
12
+ frameManager;
13
+ digestGenerator;
14
+ frameActivityMap = new Map();
15
+ constructor(frameManager, db, llmProvider) {
16
+ this.frameManager = frameManager;
17
+ this.digestGenerator = new EnhancedHybridDigestGenerator(db, {
18
+ enableAIGeneration: true,
19
+ maxTokens: 200,
20
+ }, llmProvider);
21
+ this.setupHooks();
22
+ }
23
+ /**
24
+ * Setup frame lifecycle hooks
25
+ */
26
+ setupHooks() {
27
+ // Track frame activity
28
+ const originalAddEvent = this.frameManager.addEvent.bind(this.frameManager);
29
+ this.frameManager.addEvent = (eventType, payload, frameId) => {
30
+ const result = originalAddEvent(eventType, payload, frameId);
31
+ // Track tool calls for idle detection
32
+ if (eventType === 'tool_call') {
33
+ this.digestGenerator.recordToolCall();
34
+ }
35
+ // Track user messages
36
+ if (eventType === 'user_message') {
37
+ this.digestGenerator.recordUserInput();
38
+ }
39
+ // Track frame activity
40
+ const targetFrameId = frameId || this.frameManager.getCurrentFrameId();
41
+ if (targetFrameId) {
42
+ this.frameActivityMap.set(targetFrameId, Date.now());
43
+ }
44
+ return result;
45
+ };
46
+ // Hook into frame creation
47
+ const originalCreateFrame = this.frameManager.createFrame.bind(this.frameManager);
48
+ this.frameManager.createFrame = (options) => {
49
+ const frameId = originalCreateFrame(options);
50
+ this.digestGenerator.onFrameOpened(frameId);
51
+ this.frameActivityMap.set(frameId, Date.now());
52
+ return frameId;
53
+ };
54
+ // Hook into frame closure
55
+ const originalCloseFrame = this.frameManager.closeFrame.bind(this.frameManager);
56
+ this.frameManager.closeFrame = (frameId, outputs) => {
57
+ const targetFrameId = frameId || this.frameManager.getCurrentFrameId();
58
+ if (targetFrameId) {
59
+ // Generate enhanced digest
60
+ const digest = this.generateEnhancedDigest(targetFrameId);
61
+ // Merge digest outputs with provided outputs
62
+ const enhancedOutputs = {
63
+ ...outputs,
64
+ digest: digest.json,
65
+ digestText: digest.text,
66
+ };
67
+ // Notify digest generator of frame closure
68
+ this.digestGenerator.onFrameClosed(targetFrameId);
69
+ this.frameActivityMap.delete(targetFrameId);
70
+ // Call original with enhanced outputs
71
+ originalCloseFrame(frameId, enhancedOutputs);
72
+ }
73
+ else {
74
+ originalCloseFrame(frameId, outputs);
75
+ }
76
+ };
77
+ }
78
+ /**
79
+ * Generate enhanced digest for a frame
80
+ */
81
+ generateEnhancedDigest(frameId) {
82
+ // Get frame data
83
+ const frame = this.frameManager.getFrame(frameId);
84
+ if (!frame) {
85
+ logger.warn('Frame not found for digest generation', { frameId });
86
+ return { text: '', json: {} };
87
+ }
88
+ // Get events and anchors
89
+ const events = this.frameManager.getFrameEvents(frameId);
90
+ const anchors = this.getFrameAnchors(frameId);
91
+ // Convert to digest input format
92
+ const digestInput = {
93
+ frame: this.convertFrame(frame),
94
+ events: events.map(this.convertEvent),
95
+ anchors: anchors.map(this.convertAnchor),
96
+ };
97
+ // Generate hybrid digest
98
+ const hybridDigest = this.digestGenerator.generateDigest(digestInput);
99
+ // Format for frame manager
100
+ return {
101
+ text: hybridDigest.text,
102
+ json: {
103
+ deterministic: hybridDigest.deterministic,
104
+ aiGenerated: hybridDigest.aiGenerated,
105
+ status: hybridDigest.status,
106
+ generatedAt: Date.now(),
107
+ },
108
+ };
109
+ }
110
+ /**
111
+ * Convert FrameManager frame to DigestInput frame
112
+ */
113
+ convertFrame(frame) {
114
+ // Frame types are the same - just pass through with type assertion
115
+ return frame;
116
+ }
117
+ /**
118
+ * Convert FrameManager event to DigestInput event
119
+ */
120
+ convertEvent(event) {
121
+ // Events are the same type - just pass through
122
+ return event;
123
+ }
124
+ /**
125
+ * Convert FrameManager anchor to DigestInput anchor
126
+ */
127
+ convertAnchor(anchor) {
128
+ // Anchors are the same type - just pass through
129
+ return anchor;
130
+ }
131
+ /**
132
+ * Calculate importance score based on frame characteristics
133
+ */
134
+ calculateImportanceScore(frame) {
135
+ let score = 0.5; // Base score
136
+ // Adjust based on frame type
137
+ const typeScores = {
138
+ task: 0.6,
139
+ debug: 0.8,
140
+ review: 0.7,
141
+ write: 0.5,
142
+ tool_scope: 0.3,
143
+ subtask: 0.4,
144
+ };
145
+ score = typeScores[frame.type] || score;
146
+ // Adjust based on depth (deeper frames are usually less important)
147
+ score -= frame.depth * 0.05;
148
+ // Adjust based on duration (longer frames might be more important)
149
+ if (frame.closed_at) {
150
+ const durationMinutes = (frame.closed_at - frame.created_at) / 60;
151
+ if (durationMinutes > 10)
152
+ score += 0.1;
153
+ if (durationMinutes > 30)
154
+ score += 0.1;
155
+ }
156
+ // Clamp between 0 and 1
157
+ return Math.max(0, Math.min(1, score));
158
+ }
159
+ /**
160
+ * Get frame anchors (wrapper for proper typing)
161
+ */
162
+ getFrameAnchors(frameId) {
163
+ // This would typically use frameManager's method, but it's private
164
+ // For now, return empty array - in production would need to expose this
165
+ return [];
166
+ }
167
+ /**
168
+ * Handle user interruption
169
+ */
170
+ handleUserInterruption() {
171
+ this.digestGenerator.handleInterruption();
172
+ }
173
+ /**
174
+ * Get idle status
175
+ */
176
+ getIdleStatus() {
177
+ return this.digestGenerator.getIdleStatus();
178
+ }
179
+ /**
180
+ * Force process digest queue
181
+ */
182
+ async forceProcessQueue() {
183
+ await this.digestGenerator.forceProcessQueue();
184
+ }
185
+ /**
186
+ * Cleanup
187
+ */
188
+ shutdown() {
189
+ this.digestGenerator.shutdown();
190
+ }
191
+ }
192
+ /**
193
+ * Factory function to enhance existing FrameManager
194
+ */
195
+ export function enhanceFrameManagerWithDigest(frameManager, db, llmProvider) {
196
+ return new FrameDigestIntegration(frameManager, db, llmProvider);
197
+ }
198
+ //# sourceMappingURL=frame-digest-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-digest-integration.js","sourceRoot":"","sources":["../../../../src/core/digest/frame-digest-integration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IACzB,YAAY,CAAe;IAC3B,eAAe,CAAgC;IAC/C,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD,YACE,YAA0B,EAC1B,EAAqB,EACrB,WAA+B;QAE/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,6BAA6B,CACtD,EAAE,EACF;YACE,kBAAkB,EAAE,IAAI;YACxB,SAAS,EAAE,GAAG;SACf,EACD,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,uBAAuB;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,CAC3B,SAA8B,EAC9B,OAA4B,EAC5B,OAAgB,EACR,EAAE;YACV,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE7D,sCAAsC;YACtC,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YACxC,CAAC;YAED,sBAAsB;YACtB,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;YACzC,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;YACvE,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,2BAA2B;QAC3B,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAC5D,IAAI,CAAC,YAAY,CAClB,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,OAAY,EAAU,EAAE;YACvD,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAC1D,IAAI,CAAC,YAAY,CAClB,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAC7B,OAAgB,EAChB,OAA6B,EACvB,EAAE;YACR,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAEvE,IAAI,aAAa,EAAE,CAAC;gBAClB,2BAA2B;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;gBAE1D,6CAA6C;gBAC7C,MAAM,eAAe,GAAG;oBACtB,GAAG,OAAO;oBACV,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;iBACxB,CAAC;gBAEF,2CAA2C;gBAC3C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAClD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAE5C,sCAAsC;gBACtC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,OAAe;QAI5C,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAChC,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE9C,iCAAiC;QACjC,MAAM,WAAW,GAAgB;YAC/B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC/B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;SACzC,CAAC;QAEF,yBAAyB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEtE,2BAA2B;QAC3B,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE;gBACJ,aAAa,EAAE,YAAY,CAAC,aAAa;gBACzC,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAY;QAC/B,mEAAmE;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAY;QAC/B,+CAA+C;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAc;QAClC,gDAAgD;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,KAAY;QAC3C,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,aAAa;QAE9B,6BAA6B;QAC7B,MAAM,UAAU,GAA2B;YACzC,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,GAAG;SACb,CAAC;QACF,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;QAExC,mEAAmE;QACnE,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QAE5B,mEAAmE;QACnE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YAClE,IAAI,eAAe,GAAG,EAAE;gBAAE,KAAK,IAAI,GAAG,CAAC;YACvC,IAAI,eAAe,GAAG,EAAE;gBAAE,KAAK,IAAI,GAAG,CAAC;QACzC,CAAC;QAED,wBAAwB;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAe;QACrC,mEAAmE;QACnE,wEAAwE;QACxE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACI,sBAAsB;QAC3B,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,aAAa;QAGlB,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,YAA0B,EAC1B,EAAqB,EACrB,WAA+B;IAE/B,OAAO,IAAI,sBAAsB,CAAC,YAAY,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Hybrid Digest Generator
3
+ * Implements 80/20 split: deterministic extraction + AI review/insights
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ import { HybridDigest, DigestConfig, DigestInput, DigestQueueStats, DigestLLMProvider } from './types.js';
7
+ /**
8
+ * Hybrid Digest Generator
9
+ * Generates 80% deterministic + 20% AI review for frames
10
+ */
11
+ export declare class HybridDigestGenerator {
12
+ protected db: Database.Database;
13
+ protected config: DigestConfig;
14
+ protected llmProvider?: DigestLLMProvider;
15
+ private queue;
16
+ private processing;
17
+ private idleTimer?;
18
+ private stats;
19
+ constructor(db: Database.Database, config?: Partial<DigestConfig>, llmProvider?: DigestLLMProvider);
20
+ private initializeSchema;
21
+ /**
22
+ * Generate digest for a frame (immediate deterministic, queued AI)
23
+ */
24
+ generateDigest(input: DigestInput): HybridDigest;
25
+ /**
26
+ * Extract deterministic fields from frame data (60%)
27
+ */
28
+ private extractDeterministicFields;
29
+ private extractFilesModified;
30
+ private operationPriority;
31
+ private extractTestResults;
32
+ private extractErrors;
33
+ private determineExitStatus;
34
+ /**
35
+ * Generate text summary from deterministic data
36
+ */
37
+ private generateDeterministicText;
38
+ /**
39
+ * Queue frame for AI generation
40
+ */
41
+ private queueForAIGeneration;
42
+ /**
43
+ * Determine priority based on frame characteristics
44
+ */
45
+ private determinePriority;
46
+ /**
47
+ * Schedule idle-time processing
48
+ */
49
+ private scheduleIdleProcessing;
50
+ /**
51
+ * Process queued AI generation requests
52
+ */
53
+ processQueue(): Promise<void>;
54
+ private processQueueItem;
55
+ /**
56
+ * Generate enhanced text with AI review (20%)
57
+ */
58
+ private generateEnhancedText;
59
+ /**
60
+ * Get queue statistics
61
+ */
62
+ getStats(): DigestQueueStats;
63
+ /**
64
+ * Set LLM provider
65
+ */
66
+ setLLMProvider(provider: DigestLLMProvider): void;
67
+ /**
68
+ * Force process queue (for testing or manual trigger)
69
+ */
70
+ forceProcessQueue(): Promise<void>;
71
+ /**
72
+ * Get digest for a frame
73
+ */
74
+ getDigest(frameId: string): HybridDigest | null;
75
+ }
76
+ //# sourceMappingURL=hybrid-digest-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-digest-generator.d.ts","sourceRoot":"","sources":["../../../../src/core/digest/hybrid-digest-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,YAAY,EAGZ,YAAY,EACZ,WAAW,EAEX,gBAAgB,EAChB,iBAAiB,EAMlB,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAC/B,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,KAAK,CAMX;gBAGA,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,WAAW,CAAC,EAAE,iBAAiB;IAQjC,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY;IA6CvD;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0DlC,OAAO,CAAC,oBAAoB;IAgE5B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,kBAAkB;IA8C1B,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyEjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAgC5B,gBAAgB;IAyJ9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACI,QAAQ,IAAI,gBAAgB;IAInC;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIxD;;OAEG;IACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;CAoEvD"}