@stackmemoryai/stackmemory 0.2.7 → 0.2.9

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 (346) hide show
  1. package/README.md +25 -8
  2. package/dist/scripts/cancel-duplicate-tasks.js +2 -1
  3. package/dist/scripts/cancel-duplicate-tasks.js.map +1 -1
  4. package/dist/scripts/list-linear-tasks.js +3 -4
  5. package/dist/scripts/list-linear-tasks.js.map +1 -1
  6. package/dist/scripts/merge-linear-duplicates-safe.js +4 -2
  7. package/dist/scripts/merge-linear-duplicates-safe.js.map +1 -1
  8. package/dist/scripts/show-linear-summary.js +4 -1
  9. package/dist/scripts/show-linear-summary.js.map +1 -1
  10. package/dist/scripts/status.js +6 -2
  11. package/dist/scripts/status.js.map +1 -1
  12. package/dist/src/cli/auto-detect.js.map +1 -1
  13. package/dist/src/cli/claude-sm.js.map +1 -1
  14. package/dist/src/cli/commands/config.d.ts +6 -0
  15. package/dist/src/cli/commands/config.d.ts.map +1 -0
  16. package/dist/src/cli/commands/config.js +224 -0
  17. package/dist/src/cli/commands/config.js.map +1 -0
  18. package/dist/src/cli/commands/linear.d.ts.map +1 -1
  19. package/dist/src/cli/commands/linear.js +123 -47
  20. package/dist/src/cli/commands/linear.js.map +1 -1
  21. package/dist/src/cli/index.d.ts.map +1 -1
  22. package/dist/src/cli/index.js +48 -1
  23. package/dist/src/cli/index.js.map +1 -1
  24. package/dist/src/core/config/config-manager.d.ts +95 -0
  25. package/dist/src/core/config/config-manager.d.ts.map +1 -0
  26. package/dist/src/core/config/config-manager.js +359 -0
  27. package/dist/src/core/config/config-manager.js.map +1 -0
  28. package/dist/src/core/config/types.d.ts +72 -0
  29. package/dist/src/core/config/types.d.ts.map +1 -0
  30. package/dist/src/core/config/types.js +127 -0
  31. package/dist/src/core/config/types.js.map +1 -0
  32. package/dist/src/core/context/compaction-handler.d.ts +119 -0
  33. package/dist/src/core/context/compaction-handler.d.ts.map +1 -0
  34. package/dist/src/core/context/compaction-handler.js +306 -0
  35. package/dist/src/core/context/compaction-handler.js.map +1 -0
  36. package/dist/src/core/context/model-aware-compaction.d.ts +101 -0
  37. package/dist/src/core/context/model-aware-compaction.d.ts.map +1 -0
  38. package/dist/src/core/context/model-aware-compaction.js +616 -0
  39. package/dist/src/core/context/model-aware-compaction.js.map +1 -0
  40. package/dist/src/core/digest/hybrid-digest-generator.d.ts +76 -0
  41. package/dist/src/core/digest/hybrid-digest-generator.d.ts.map +1 -0
  42. package/dist/src/core/digest/hybrid-digest-generator.js +629 -0
  43. package/dist/src/core/digest/hybrid-digest-generator.js.map +1 -0
  44. package/dist/src/core/digest/index.d.ts +7 -0
  45. package/dist/src/core/digest/index.d.ts.map +1 -0
  46. package/dist/src/core/digest/index.js +7 -0
  47. package/dist/src/core/digest/index.js.map +1 -0
  48. package/dist/src/core/digest/types.d.ts +154 -0
  49. package/dist/src/core/digest/types.d.ts.map +1 -0
  50. package/dist/src/core/digest/types.js +18 -0
  51. package/dist/src/core/digest/types.js.map +1 -0
  52. package/dist/src/core/monitoring/logger.d.ts +2 -2
  53. package/dist/src/core/monitoring/logger.d.ts.map +1 -1
  54. package/dist/src/core/monitoring/logger.js +10 -5
  55. package/dist/src/core/monitoring/logger.js.map +1 -1
  56. package/dist/src/core/monitoring/metrics.d.ts +3 -0
  57. package/dist/src/core/monitoring/metrics.d.ts.map +1 -1
  58. package/dist/src/core/monitoring/metrics.js +142 -3
  59. package/dist/src/core/monitoring/metrics.js.map +1 -1
  60. package/dist/src/core/persistence/postgres-adapter.d.ts +31 -0
  61. package/dist/src/core/persistence/postgres-adapter.d.ts.map +1 -0
  62. package/dist/src/core/persistence/postgres-adapter.js +316 -0
  63. package/dist/src/core/persistence/postgres-adapter.js.map +1 -0
  64. package/dist/src/core/query/query-parser.d.ts +104 -0
  65. package/dist/src/core/query/query-parser.d.ts.map +1 -0
  66. package/dist/src/core/query/query-parser.js +347 -0
  67. package/dist/src/core/query/query-parser.js.map +1 -0
  68. package/dist/src/core/retrieval/index.d.ts +8 -0
  69. package/dist/src/core/retrieval/index.d.ts.map +1 -0
  70. package/dist/src/core/retrieval/index.js +8 -0
  71. package/dist/src/core/retrieval/index.js.map +1 -0
  72. package/dist/src/core/retrieval/llm-context-retrieval.d.ts +71 -0
  73. package/dist/src/core/retrieval/llm-context-retrieval.d.ts.map +1 -0
  74. package/dist/src/core/retrieval/llm-context-retrieval.js +545 -0
  75. package/dist/src/core/retrieval/llm-context-retrieval.js.map +1 -0
  76. package/dist/src/core/retrieval/summary-generator.d.ts +63 -0
  77. package/dist/src/core/retrieval/summary-generator.d.ts.map +1 -0
  78. package/dist/src/core/retrieval/summary-generator.js +622 -0
  79. package/dist/src/core/retrieval/summary-generator.js.map +1 -0
  80. package/dist/src/core/retrieval/types.d.ts +257 -0
  81. package/dist/src/core/retrieval/types.d.ts.map +1 -0
  82. package/dist/src/core/retrieval/types.js +18 -0
  83. package/dist/src/core/retrieval/types.js.map +1 -0
  84. package/dist/src/core/trace/trace-detector.d.ts +108 -0
  85. package/dist/src/core/trace/trace-detector.d.ts.map +1 -0
  86. package/dist/src/core/trace/trace-detector.demo.d.ts +5 -0
  87. package/dist/src/core/trace/trace-detector.demo.d.ts.map +1 -0
  88. package/dist/src/core/trace/trace-detector.demo.js +145 -0
  89. package/dist/src/core/trace/trace-detector.demo.js.map +1 -0
  90. package/dist/src/core/trace/trace-detector.js +425 -0
  91. package/dist/src/core/trace/trace-detector.js.map +1 -0
  92. package/dist/src/core/trace/trace-store.d.ts +60 -0
  93. package/dist/src/core/trace/trace-store.d.ts.map +1 -0
  94. package/dist/src/core/trace/trace-store.js +323 -0
  95. package/dist/src/core/trace/trace-store.js.map +1 -0
  96. package/dist/src/core/trace/types.d.ts +81 -0
  97. package/dist/src/core/trace/types.d.ts.map +1 -0
  98. package/dist/src/core/trace/types.js +70 -0
  99. package/dist/src/core/trace/types.js.map +1 -0
  100. package/dist/src/core/types.d.ts +35 -0
  101. package/dist/src/core/types.d.ts.map +1 -0
  102. package/dist/src/core/types.js +2 -0
  103. package/dist/src/core/types.js.map +1 -0
  104. package/dist/src/integrations/linear/sync-manager.d.ts +76 -0
  105. package/dist/src/integrations/linear/sync-manager.d.ts.map +1 -0
  106. package/dist/src/integrations/linear/sync-manager.js +223 -0
  107. package/dist/src/integrations/linear/sync-manager.js.map +1 -0
  108. package/dist/src/integrations/mcp/server.d.ts +8 -0
  109. package/dist/src/integrations/mcp/server.d.ts.map +1 -1
  110. package/dist/src/integrations/mcp/server.js +369 -17
  111. package/dist/src/integrations/mcp/server.js.map +1 -1
  112. package/dist/src/integrations/mcp/trace-test.d.ts +5 -0
  113. package/dist/src/integrations/mcp/trace-test.d.ts.map +1 -0
  114. package/dist/src/integrations/mcp/trace-test.js +54 -0
  115. package/dist/src/integrations/mcp/trace-test.js.map +1 -0
  116. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts +48 -0
  117. package/dist/src/integrations/pg-aiguide/embedding-provider.d.ts.map +1 -0
  118. package/dist/src/integrations/pg-aiguide/embedding-provider.js +190 -0
  119. package/dist/src/integrations/pg-aiguide/embedding-provider.js.map +1 -0
  120. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts +34 -0
  121. package/dist/src/integrations/pg-aiguide/semantic-search.d.ts.map +1 -0
  122. package/dist/src/integrations/pg-aiguide/semantic-search.js +154 -0
  123. package/dist/src/integrations/pg-aiguide/semantic-search.js.map +1 -0
  124. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts +44 -0
  125. package/dist/src/integrations/pg-aiguide/timescale-analytics.d.ts.map +1 -0
  126. package/dist/src/integrations/pg-aiguide/timescale-analytics.js +215 -0
  127. package/dist/src/integrations/pg-aiguide/timescale-analytics.js.map +1 -0
  128. package/dist/src/models/user.model.d.ts +55 -0
  129. package/dist/src/models/user.model.d.ts.map +1 -0
  130. package/dist/src/models/user.model.js +263 -0
  131. package/dist/src/models/user.model.js.map +1 -0
  132. package/dist/src/servers/production/auth-middleware.d.ts +7 -0
  133. package/dist/src/servers/production/auth-middleware.d.ts.map +1 -1
  134. package/dist/src/servers/production/auth-middleware.js +201 -26
  135. package/dist/src/servers/production/auth-middleware.js.map +1 -1
  136. package/dist/src/servers/railway/index.js.map +1 -1
  137. package/dist/src/services/config-service.d.ts +1 -1
  138. package/dist/src/services/config-service.d.ts.map +1 -1
  139. package/dist/src/services/config-service.js.map +1 -1
  140. package/dist/src/types/task.d.ts +11 -1
  141. package/dist/src/types/task.d.ts.map +1 -1
  142. package/dist/src/utils/logger.d.ts +4 -4
  143. package/dist/src/utils/logger.d.ts.map +1 -1
  144. package/dist/src/utils/logger.js.map +1 -1
  145. package/package.json +14 -8
  146. package/dist/attention-scoring/src/attention-tracker.d.ts +0 -79
  147. package/dist/attention-scoring/src/attention-tracker.d.ts.map +0 -1
  148. package/dist/attention-scoring/src/attention-tracker.js +0 -488
  149. package/dist/attention-scoring/src/attention-tracker.js.map +0 -1
  150. package/dist/attention-scoring/src/mcp-integration.d.ts +0 -56
  151. package/dist/attention-scoring/src/mcp-integration.d.ts.map +0 -1
  152. package/dist/attention-scoring/src/mcp-integration.js +0 -369
  153. package/dist/attention-scoring/src/mcp-integration.js.map +0 -1
  154. package/dist/index.js +0 -382
  155. package/dist/p2p-sync/src/p2p-sync.d.ts +0 -81
  156. package/dist/p2p-sync/src/p2p-sync.d.ts.map +0 -1
  157. package/dist/p2p-sync/src/p2p-sync.js +0 -457
  158. package/dist/p2p-sync/src/p2p-sync.js.map +0 -1
  159. package/dist/p2p-sync/src/team-context-sync.d.ts +0 -99
  160. package/dist/p2p-sync/src/team-context-sync.d.ts.map +0 -1
  161. package/dist/p2p-sync/src/team-context-sync.js +0 -491
  162. package/dist/p2p-sync/src/team-context-sync.js.map +0 -1
  163. package/dist/scripts/merge-linear-duplicates.d.ts +0 -7
  164. package/dist/scripts/merge-linear-duplicates.d.ts.map +0 -1
  165. package/dist/scripts/merge-linear-duplicates.js +0 -126
  166. package/dist/scripts/merge-linear-duplicates.js.map +0 -1
  167. package/dist/src/analytics/api/analytics-api.d.ts +0 -24
  168. package/dist/src/analytics/api/analytics-api.d.ts.map +0 -1
  169. package/dist/src/analytics/api/analytics-api.js +0 -279
  170. package/dist/src/analytics/api/analytics-api.js.map +0 -1
  171. package/dist/src/analytics/core/analytics-service.d.ts +0 -23
  172. package/dist/src/analytics/core/analytics-service.d.ts.map +0 -1
  173. package/dist/src/analytics/core/analytics-service.js +0 -160
  174. package/dist/src/analytics/core/analytics-service.js.map +0 -1
  175. package/dist/src/analytics/index.d.ts +0 -12
  176. package/dist/src/analytics/index.d.ts.map +0 -1
  177. package/dist/src/analytics/index.js +0 -11
  178. package/dist/src/analytics/index.js.map +0 -1
  179. package/dist/src/analytics/queries/metrics-queries.d.ts +0 -11
  180. package/dist/src/analytics/queries/metrics-queries.d.ts.map +0 -1
  181. package/dist/src/analytics/queries/metrics-queries.js +0 -179
  182. package/dist/src/analytics/queries/metrics-queries.js.map +0 -1
  183. package/dist/src/analytics/types/metrics.d.ts +0 -60
  184. package/dist/src/analytics/types/metrics.d.ts.map +0 -1
  185. package/dist/src/analytics/types/metrics.js +0 -2
  186. package/dist/src/analytics/types/metrics.js.map +0 -1
  187. package/dist/src/beads/beads-task-store.d.ts +0 -117
  188. package/dist/src/beads/beads-task-store.d.ts.map +0 -1
  189. package/dist/src/beads/beads-task-store.js +0 -318
  190. package/dist/src/beads/beads-task-store.js.map +0 -1
  191. package/dist/src/beads/task-aware-context.d.ts +0 -103
  192. package/dist/src/beads/task-aware-context.d.ts.map +0 -1
  193. package/dist/src/beads/task-aware-context.js +0 -395
  194. package/dist/src/beads/task-aware-context.js.map +0 -1
  195. package/dist/src/beads-task-store.d.ts +0 -117
  196. package/dist/src/beads-task-store.d.ts.map +0 -1
  197. package/dist/src/beads-task-store.js +0 -318
  198. package/dist/src/beads-task-store.js.map +0 -1
  199. package/dist/src/cli/__tests__/index.test.d.ts +0 -5
  200. package/dist/src/cli/__tests__/index.test.d.ts.map +0 -1
  201. package/dist/src/cli/__tests__/index.test.js +0 -726
  202. package/dist/src/cli/__tests__/index.test.js.map +0 -1
  203. package/dist/src/cli/analytics-viewer.d.ts +0 -3
  204. package/dist/src/cli/analytics-viewer.d.ts.map +0 -1
  205. package/dist/src/cli/analytics-viewer.js +0 -89
  206. package/dist/src/cli/analytics-viewer.js.map +0 -1
  207. package/dist/src/cli/cli.d.ts +0 -7
  208. package/dist/src/cli/cli.d.ts.map +0 -1
  209. package/dist/src/cli/cli.js +0 -704
  210. package/dist/src/cli/cli.js.map +0 -1
  211. package/dist/src/cli/project-commands.d.ts +0 -8
  212. package/dist/src/cli/project-commands.d.ts.map +0 -1
  213. package/dist/src/cli/project-commands.js +0 -212
  214. package/dist/src/cli/project-commands.js.map +0 -1
  215. package/dist/src/cli.d.ts +0 -7
  216. package/dist/src/cli.d.ts.map +0 -1
  217. package/dist/src/cli.js +0 -73
  218. package/dist/src/cli.js.map +0 -1
  219. package/dist/src/core/context/__tests__/frame-manager.test.d.ts +0 -5
  220. package/dist/src/core/context/__tests__/frame-manager.test.d.ts.map +0 -1
  221. package/dist/src/core/context/__tests__/frame-manager.test.js +0 -892
  222. package/dist/src/core/context/__tests__/frame-manager.test.js.map +0 -1
  223. package/dist/src/core/error-handler.d.ts +0 -46
  224. package/dist/src/core/error-handler.d.ts.map +0 -1
  225. package/dist/src/core/error-handler.js +0 -212
  226. package/dist/src/core/error-handler.js.map +0 -1
  227. package/dist/src/core/errors/__tests__/error-handling.test.d.ts +0 -5
  228. package/dist/src/core/errors/__tests__/error-handling.test.d.ts.map +0 -1
  229. package/dist/src/core/errors/__tests__/error-handling.test.js +0 -239
  230. package/dist/src/core/errors/__tests__/error-handling.test.js.map +0 -1
  231. package/dist/src/core/frame-manager.d.ts +0 -106
  232. package/dist/src/core/frame-manager.d.ts.map +0 -1
  233. package/dist/src/core/frame-manager.js +0 -387
  234. package/dist/src/core/frame-manager.js.map +0 -1
  235. package/dist/src/core/logger.d.ts +0 -24
  236. package/dist/src/core/logger.d.ts.map +0 -1
  237. package/dist/src/core/logger.js +0 -121
  238. package/dist/src/core/logger.js.map +0 -1
  239. package/dist/src/core/logger.test.d.ts +0 -2
  240. package/dist/src/core/logger.test.d.ts.map +0 -1
  241. package/dist/src/core/logger.test.js +0 -31
  242. package/dist/src/core/logger.test.js.map +0 -1
  243. package/dist/src/core/progress-tracker.d.ts +0 -95
  244. package/dist/src/core/progress-tracker.d.ts.map +0 -1
  245. package/dist/src/core/progress-tracker.js +0 -178
  246. package/dist/src/core/progress-tracker.js.map +0 -1
  247. package/dist/src/core/project-manager.d.ts +0 -130
  248. package/dist/src/core/project-manager.d.ts.map +0 -1
  249. package/dist/src/core/project-manager.js +0 -582
  250. package/dist/src/core/project-manager.js.map +0 -1
  251. package/dist/src/core/update-checker.d.ts +0 -38
  252. package/dist/src/core/update-checker.d.ts.map +0 -1
  253. package/dist/src/core/update-checker.js +0 -156
  254. package/dist/src/core/update-checker.js.map +0 -1
  255. package/dist/src/error-handler.d.ts +0 -42
  256. package/dist/src/error-handler.d.ts.map +0 -1
  257. package/dist/src/error-handler.js +0 -155
  258. package/dist/src/error-handler.js.map +0 -1
  259. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts +0 -5
  260. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.d.ts.map +0 -1
  261. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js +0 -712
  262. package/dist/src/features/tasks/__tests__/pebbles-task-store.test.js.map +0 -1
  263. package/dist/src/frame-manager.d.ts +0 -106
  264. package/dist/src/frame-manager.d.ts.map +0 -1
  265. package/dist/src/frame-manager.js +0 -361
  266. package/dist/src/frame-manager.js.map +0 -1
  267. package/dist/src/integrations/browser-mcp.d.ts +0 -94
  268. package/dist/src/integrations/browser-mcp.d.ts.map +0 -1
  269. package/dist/src/integrations/browser-mcp.js +0 -431
  270. package/dist/src/integrations/browser-mcp.js.map +0 -1
  271. package/dist/src/integrations/linear/__tests__/auth.test.d.ts +0 -5
  272. package/dist/src/integrations/linear/__tests__/auth.test.d.ts.map +0 -1
  273. package/dist/src/integrations/linear/__tests__/auth.test.js +0 -517
  274. package/dist/src/integrations/linear/__tests__/auth.test.js.map +0 -1
  275. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts +0 -5
  276. package/dist/src/integrations/linear/__tests__/sync-service.test.d.ts.map +0 -1
  277. package/dist/src/integrations/linear/__tests__/sync-service.test.js +0 -700
  278. package/dist/src/integrations/linear/__tests__/sync-service.test.js.map +0 -1
  279. package/dist/src/integrations/linear-auth.d.ts +0 -99
  280. package/dist/src/integrations/linear-auth.d.ts.map +0 -1
  281. package/dist/src/integrations/linear-auth.js +0 -319
  282. package/dist/src/integrations/linear-auth.js.map +0 -1
  283. package/dist/src/integrations/linear-auto-sync.d.ts +0 -77
  284. package/dist/src/integrations/linear-auto-sync.d.ts.map +0 -1
  285. package/dist/src/integrations/linear-auto-sync.js +0 -268
  286. package/dist/src/integrations/linear-auto-sync.js.map +0 -1
  287. package/dist/src/integrations/linear-client.d.ts +0 -86
  288. package/dist/src/integrations/linear-client.d.ts.map +0 -1
  289. package/dist/src/integrations/linear-client.js +0 -277
  290. package/dist/src/integrations/linear-client.js.map +0 -1
  291. package/dist/src/integrations/linear-config.d.ts +0 -51
  292. package/dist/src/integrations/linear-config.d.ts.map +0 -1
  293. package/dist/src/integrations/linear-config.js +0 -103
  294. package/dist/src/integrations/linear-config.js.map +0 -1
  295. package/dist/src/integrations/linear-sync.d.ts +0 -97
  296. package/dist/src/integrations/linear-sync.d.ts.map +0 -1
  297. package/dist/src/integrations/linear-sync.js +0 -391
  298. package/dist/src/integrations/linear-sync.js.map +0 -1
  299. package/dist/src/integrations/mcp/__tests__/server.test.d.ts +0 -5
  300. package/dist/src/integrations/mcp/__tests__/server.test.d.ts.map +0 -1
  301. package/dist/src/integrations/mcp/__tests__/server.test.js +0 -790
  302. package/dist/src/integrations/mcp/__tests__/server.test.js.map +0 -1
  303. package/dist/src/logger.d.ts +0 -24
  304. package/dist/src/logger.d.ts.map +0 -1
  305. package/dist/src/logger.js +0 -120
  306. package/dist/src/logger.js.map +0 -1
  307. package/dist/src/mcp/mcp-server.d.ts +0 -40
  308. package/dist/src/mcp/mcp-server.d.ts.map +0 -1
  309. package/dist/src/mcp/mcp-server.js +0 -828
  310. package/dist/src/mcp/mcp-server.js.map +0 -1
  311. package/dist/src/mcp-server.d.ts +0 -32
  312. package/dist/src/mcp-server.d.ts.map +0 -1
  313. package/dist/src/mcp-server.js +0 -441
  314. package/dist/src/mcp-server.js.map +0 -1
  315. package/dist/src/pebbles/pebbles-task-store.d.ts +0 -117
  316. package/dist/src/pebbles/pebbles-task-store.d.ts.map +0 -1
  317. package/dist/src/pebbles/pebbles-task-store.js +0 -335
  318. package/dist/src/pebbles/pebbles-task-store.js.map +0 -1
  319. package/dist/src/pebbles/task-aware-context.d.ts +0 -103
  320. package/dist/src/pebbles/task-aware-context.d.ts.map +0 -1
  321. package/dist/src/pebbles/task-aware-context.js +0 -412
  322. package/dist/src/pebbles/task-aware-context.js.map +0 -1
  323. package/dist/src/railway/index.d.ts +0 -7
  324. package/dist/src/railway/index.d.ts.map +0 -1
  325. package/dist/src/railway/index.js +0 -401
  326. package/dist/src/railway/index.js.map +0 -1
  327. package/dist/src/runway/auth/auth-middleware.d.ts +0 -66
  328. package/dist/src/runway/auth/auth-middleware.d.ts.map +0 -1
  329. package/dist/src/runway/auth/auth-middleware.js +0 -337
  330. package/dist/src/runway/auth/auth-middleware.js.map +0 -1
  331. package/dist/src/runway/server/runway-mcp-server.d.ts +0 -46
  332. package/dist/src/runway/server/runway-mcp-server.d.ts.map +0 -1
  333. package/dist/src/runway/server/runway-mcp-server.js +0 -601
  334. package/dist/src/runway/server/runway-mcp-server.js.map +0 -1
  335. package/dist/src/runway.bak/auth/auth-middleware.d.ts +0 -66
  336. package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +0 -1
  337. package/dist/src/runway.bak/auth/auth-middleware.js +0 -337
  338. package/dist/src/runway.bak/auth/auth-middleware.js.map +0 -1
  339. package/dist/src/runway.bak/server/runway-mcp-server.d.ts +0 -46
  340. package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +0 -1
  341. package/dist/src/runway.bak/server/runway-mcp-server.js +0 -601
  342. package/dist/src/runway.bak/server/runway-mcp-server.js.map +0 -1
  343. package/dist/src/task-aware-context.d.ts +0 -103
  344. package/dist/src/task-aware-context.d.ts.map +0 -1
  345. package/dist/src/task-aware-context.js +0 -395
  346. package/dist/src/task-aware-context.js.map +0 -1
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Compaction Handler for Claude Code Autocompaction
3
+ * Preserves critical context across token limit boundaries
4
+ */
5
+ import { FrameManager } from './frame-manager.js';
6
+ export interface CompactionMetrics {
7
+ estimatedTokens: number;
8
+ warningThreshold: number;
9
+ criticalThreshold: number;
10
+ lastCompactionAt?: number;
11
+ anchorsPreserved: number;
12
+ }
13
+ export interface ToolCallSummary {
14
+ tool: string;
15
+ timestamp: number;
16
+ key_inputs: Record<string, any>;
17
+ key_outputs: Record<string, any>;
18
+ files_affected: string[];
19
+ success: boolean;
20
+ error?: string;
21
+ }
22
+ export interface CriticalContextAnchor {
23
+ anchor_id: string;
24
+ type: 'COMPACTION_PRESERVE';
25
+ priority: 10;
26
+ content: {
27
+ tool_calls: ToolCallSummary[];
28
+ decisions: string[];
29
+ file_operations: FileOperation[];
30
+ error_resolutions: ErrorPattern[];
31
+ };
32
+ created_at: number;
33
+ token_estimate: number;
34
+ }
35
+ export interface FileOperation {
36
+ type: 'read' | 'write' | 'edit' | 'delete' | 'create';
37
+ path: string;
38
+ timestamp: number;
39
+ success: boolean;
40
+ error?: string;
41
+ }
42
+ export interface ErrorPattern {
43
+ error: string;
44
+ resolution: string;
45
+ tool_sequence: string[];
46
+ timestamp: number;
47
+ }
48
+ export declare class CompactionHandler {
49
+ private frameManager;
50
+ private metrics;
51
+ private tokenAccumulator;
52
+ private preservedAnchors;
53
+ constructor(frameManager: FrameManager);
54
+ /**
55
+ * Track token usage from a message
56
+ */
57
+ trackTokens(content: string): void;
58
+ /**
59
+ * Check if approaching compaction threshold
60
+ */
61
+ isApproachingCompaction(): boolean;
62
+ /**
63
+ * Check if past critical threshold
64
+ */
65
+ isPastCriticalThreshold(): boolean;
66
+ /**
67
+ * Detect if compaction likely occurred
68
+ */
69
+ detectCompactionEvent(content: string): boolean;
70
+ /**
71
+ * Preserve critical context before compaction
72
+ */
73
+ preserveCriticalContext(): Promise<void>;
74
+ /**
75
+ * Extract tool calls from events
76
+ */
77
+ private extractToolCalls;
78
+ /**
79
+ * Extract key inputs from tool call
80
+ */
81
+ private extractKeyInputs;
82
+ /**
83
+ * Extract key outputs from tool result
84
+ */
85
+ private extractKeyOutputs;
86
+ /**
87
+ * Extract affected files from tool events
88
+ */
89
+ private extractAffectedFiles;
90
+ /**
91
+ * Extract file operations from events
92
+ */
93
+ private extractFileOperations;
94
+ /**
95
+ * Map tool name to file operation type
96
+ */
97
+ private mapToolToOperation;
98
+ /**
99
+ * Extract decisions from events
100
+ */
101
+ private extractDecisions;
102
+ /**
103
+ * Extract error patterns and resolutions
104
+ */
105
+ private extractErrorPatterns;
106
+ /**
107
+ * Restore context after compaction detected
108
+ */
109
+ restoreContext(): Promise<void>;
110
+ /**
111
+ * Get current metrics
112
+ */
113
+ getMetrics(): CompactionMetrics;
114
+ /**
115
+ * Reset token counter (e.g., at session start)
116
+ */
117
+ resetTokenCount(): void;
118
+ }
119
+ //# sourceMappingURL=compaction-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-handler.d.ts","sourceRoot":"","sources":["../../../../src/core/context/compaction-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAC;AAGjE,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,EAAE,CAAC;IACb,OAAO,EAAE;QACP,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,eAAe,EAAE,aAAa,EAAE,CAAC;QACjC,iBAAiB,EAAE,YAAY,EAAE,CAAC;KACnC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,gBAAgB,CAAiD;gBAE7D,YAAY,EAAE,YAAY;IAUtC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAYlC;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAgB/C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkErC;;OAEG;IACH,UAAU,IAAI,iBAAiB;IAI/B;;OAEG;IACH,eAAe,IAAI,IAAI;CAKxB"}
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Compaction Handler for Claude Code Autocompaction
3
+ * Preserves critical context across token limit boundaries
4
+ */
5
+ import { logger } from '../monitoring/logger.js';
6
+ export class CompactionHandler {
7
+ frameManager;
8
+ metrics;
9
+ tokenAccumulator = 0;
10
+ preservedAnchors = new Map();
11
+ constructor(frameManager) {
12
+ this.frameManager = frameManager;
13
+ this.metrics = {
14
+ estimatedTokens: 0,
15
+ warningThreshold: 150000, // 150K tokens
16
+ criticalThreshold: 170000, // 170K tokens
17
+ anchorsPreserved: 0,
18
+ };
19
+ }
20
+ /**
21
+ * Track token usage from a message
22
+ */
23
+ trackTokens(content) {
24
+ // Rough estimation: 1 token ≈ 4 characters
25
+ const estimatedTokens = Math.ceil(content.length / 4);
26
+ this.tokenAccumulator += estimatedTokens;
27
+ this.metrics.estimatedTokens += estimatedTokens;
28
+ // Check thresholds
29
+ if (this.isApproachingCompaction()) {
30
+ this.preserveCriticalContext();
31
+ }
32
+ }
33
+ /**
34
+ * Check if approaching compaction threshold
35
+ */
36
+ isApproachingCompaction() {
37
+ return this.metrics.estimatedTokens >= this.metrics.warningThreshold;
38
+ }
39
+ /**
40
+ * Check if past critical threshold
41
+ */
42
+ isPastCriticalThreshold() {
43
+ return this.metrics.estimatedTokens >= this.metrics.criticalThreshold;
44
+ }
45
+ /**
46
+ * Detect if compaction likely occurred
47
+ */
48
+ detectCompactionEvent(content) {
49
+ const compactionIndicators = [
50
+ 'earlier in this conversation',
51
+ 'previously discussed',
52
+ 'as mentioned before',
53
+ 'summarized for brevity',
54
+ '[conversation compressed]',
55
+ '[context truncated]',
56
+ ];
57
+ const lowerContent = content.toLowerCase();
58
+ return compactionIndicators.some((indicator) => lowerContent.includes(indicator));
59
+ }
60
+ /**
61
+ * Preserve critical context before compaction
62
+ */
63
+ async preserveCriticalContext() {
64
+ try {
65
+ const currentFrameId = this.frameManager.getCurrentFrameId();
66
+ if (!currentFrameId) {
67
+ logger.warn('No active frame to preserve context from');
68
+ return;
69
+ }
70
+ // Get events from current frame
71
+ const events = this.frameManager.getFrameEvents(currentFrameId);
72
+ // Extract critical information
73
+ const toolCalls = this.extractToolCalls(events);
74
+ const fileOps = this.extractFileOperations(events);
75
+ const decisions = this.extractDecisions(events);
76
+ const errorPatterns = this.extractErrorPatterns(events);
77
+ // Create preservation anchor
78
+ const anchor = {
79
+ anchor_id: `compact_${Date.now()}`,
80
+ type: 'COMPACTION_PRESERVE',
81
+ priority: 10,
82
+ content: {
83
+ tool_calls: toolCalls,
84
+ file_operations: fileOps,
85
+ decisions: decisions,
86
+ error_resolutions: errorPatterns,
87
+ },
88
+ created_at: Date.now(),
89
+ token_estimate: this.metrics.estimatedTokens,
90
+ };
91
+ // Store in frame manager as high-priority anchor
92
+ this.frameManager.addAnchor('CONSTRAINT', // Using CONSTRAINT type for now
93
+ JSON.stringify(anchor), 10, {
94
+ compaction_preserve: true,
95
+ token_count: this.metrics.estimatedTokens,
96
+ }, currentFrameId);
97
+ // Store locally for quick access
98
+ this.preservedAnchors.set(anchor.anchor_id, anchor);
99
+ this.metrics.anchorsPreserved++;
100
+ logger.info(`Preserved critical context at ${this.metrics.estimatedTokens} tokens`);
101
+ }
102
+ catch (error) {
103
+ logger.error('Failed to preserve critical context:', error instanceof Error ? error : undefined);
104
+ }
105
+ }
106
+ /**
107
+ * Extract tool calls from events
108
+ */
109
+ extractToolCalls(events) {
110
+ const toolCalls = [];
111
+ const toolEvents = events.filter((e) => e.event_type === 'tool_call');
112
+ for (const event of toolEvents) {
113
+ const resultEvent = events.find((e) => e.event_type === 'tool_result' &&
114
+ e.seq > event.seq &&
115
+ e.payload.tool_name === event.payload.tool_name);
116
+ toolCalls.push({
117
+ tool: event.payload.tool_name || 'unknown',
118
+ timestamp: event.ts,
119
+ key_inputs: this.extractKeyInputs(event.payload),
120
+ key_outputs: resultEvent
121
+ ? this.extractKeyOutputs(resultEvent.payload)
122
+ : {},
123
+ files_affected: this.extractAffectedFiles(event.payload, resultEvent?.payload),
124
+ success: resultEvent ? !resultEvent.payload.error : false,
125
+ error: resultEvent?.payload.error,
126
+ });
127
+ }
128
+ return toolCalls;
129
+ }
130
+ /**
131
+ * Extract key inputs from tool call
132
+ */
133
+ extractKeyInputs(payload) {
134
+ const keys = [
135
+ 'file_path',
136
+ 'command',
137
+ 'query',
138
+ 'path',
139
+ 'pattern',
140
+ 'content',
141
+ ];
142
+ const result = {};
143
+ for (const key of keys) {
144
+ if (payload.arguments?.[key]) {
145
+ result[key] = payload.arguments[key];
146
+ }
147
+ }
148
+ return result;
149
+ }
150
+ /**
151
+ * Extract key outputs from tool result
152
+ */
153
+ extractKeyOutputs(payload) {
154
+ return {
155
+ success: !payload.error,
156
+ error: payload.error,
157
+ result_type: payload.result_type,
158
+ files_created: payload.files_created,
159
+ files_modified: payload.files_modified,
160
+ };
161
+ }
162
+ /**
163
+ * Extract affected files from tool events
164
+ */
165
+ extractAffectedFiles(callPayload, resultPayload) {
166
+ const files = new Set();
167
+ // From tool call
168
+ if (callPayload?.arguments?.file_path) {
169
+ files.add(callPayload.arguments.file_path);
170
+ }
171
+ if (callPayload?.arguments?.path) {
172
+ files.add(callPayload.arguments.path);
173
+ }
174
+ // From tool result
175
+ if (resultPayload?.files_created) {
176
+ resultPayload.files_created.forEach((f) => files.add(f));
177
+ }
178
+ if (resultPayload?.files_modified) {
179
+ resultPayload.files_modified.forEach((f) => files.add(f));
180
+ }
181
+ return Array.from(files);
182
+ }
183
+ /**
184
+ * Extract file operations from events
185
+ */
186
+ extractFileOperations(events) {
187
+ const fileOps = [];
188
+ const fileTools = ['Read', 'Write', 'Edit', 'MultiEdit', 'Delete'];
189
+ const toolEvents = events.filter((e) => e.event_type === 'tool_call' && fileTools.includes(e.payload.tool_name));
190
+ for (const event of toolEvents) {
191
+ const operation = this.mapToolToOperation(event.payload.tool_name);
192
+ const path = event.payload.arguments?.file_path ||
193
+ event.payload.arguments?.path ||
194
+ 'unknown';
195
+ fileOps.push({
196
+ type: operation,
197
+ path: path,
198
+ timestamp: event.ts,
199
+ success: true, // Will be updated from result
200
+ error: undefined,
201
+ });
202
+ }
203
+ return fileOps;
204
+ }
205
+ /**
206
+ * Map tool name to file operation type
207
+ */
208
+ mapToolToOperation(toolName) {
209
+ const mapping = {
210
+ Read: 'read',
211
+ Write: 'write',
212
+ Edit: 'edit',
213
+ MultiEdit: 'edit',
214
+ Delete: 'delete',
215
+ };
216
+ return mapping[toolName] || 'read';
217
+ }
218
+ /**
219
+ * Extract decisions from events
220
+ */
221
+ extractDecisions(events) {
222
+ const decisions = [];
223
+ const decisionEvents = events.filter((e) => e.event_type === 'decision');
224
+ for (const event of decisionEvents) {
225
+ if (event.payload.text) {
226
+ decisions.push(event.payload.text);
227
+ }
228
+ }
229
+ return decisions;
230
+ }
231
+ /**
232
+ * Extract error patterns and resolutions
233
+ */
234
+ extractErrorPatterns(events) {
235
+ const patterns = [];
236
+ // Find tool results with errors
237
+ const errorEvents = events.filter((e) => e.event_type === 'tool_result' && e.payload.error);
238
+ for (const errorEvent of errorEvents) {
239
+ // Look for subsequent successful tool calls that might be resolutions
240
+ const subsequentTools = events
241
+ .filter((e) => e.event_type === 'tool_call' && e.seq > errorEvent.seq)
242
+ .slice(0, 3); // Next 3 tools might be resolution attempts
243
+ if (subsequentTools.length > 0) {
244
+ patterns.push({
245
+ error: errorEvent.payload.error,
246
+ resolution: `Attempted resolution with ${subsequentTools.map((t) => t.payload.tool_name).join(', ')}`,
247
+ tool_sequence: subsequentTools.map((t) => t.payload.tool_name),
248
+ timestamp: errorEvent.ts,
249
+ });
250
+ }
251
+ }
252
+ return patterns;
253
+ }
254
+ /**
255
+ * Restore context after compaction detected
256
+ */
257
+ async restoreContext() {
258
+ if (this.preservedAnchors.size === 0) {
259
+ logger.warn('No preserved anchors to restore from');
260
+ return;
261
+ }
262
+ // Get the most recent anchor
263
+ const anchors = Array.from(this.preservedAnchors.values());
264
+ anchors.sort((a, b) => b.created_at - a.created_at);
265
+ const latestAnchor = anchors[0];
266
+ // Create restoration frame
267
+ const restorationFrame = this.frameManager.createFrame({
268
+ type: 'review',
269
+ name: 'Context Restoration After Compaction',
270
+ inputs: { reason: 'autocompaction_detected' },
271
+ });
272
+ // Add restoration anchor
273
+ this.frameManager.addAnchor('FACT', `Context restored from token position ${latestAnchor.token_estimate}`, 10, { restoration: true }, restorationFrame);
274
+ // Add tool sequence summary
275
+ const toolSequence = latestAnchor.content.tool_calls
276
+ .map((t) => t.tool)
277
+ .join(' → ');
278
+ this.frameManager.addAnchor('FACT', `Tool sequence: ${toolSequence}`, 9, {}, restorationFrame);
279
+ // Add file operations summary
280
+ const files = new Set();
281
+ latestAnchor.content.file_operations.forEach((op) => files.add(op.path));
282
+ if (files.size > 0) {
283
+ this.frameManager.addAnchor('FACT', `Files touched: ${Array.from(files).join(', ')}`, 8, {}, restorationFrame);
284
+ }
285
+ // Add decisions
286
+ for (const decision of latestAnchor.content.decisions) {
287
+ this.frameManager.addAnchor('DECISION', decision, 7, {}, restorationFrame);
288
+ }
289
+ logger.info('Context restored after compaction detection');
290
+ }
291
+ /**
292
+ * Get current metrics
293
+ */
294
+ getMetrics() {
295
+ return { ...this.metrics };
296
+ }
297
+ /**
298
+ * Reset token counter (e.g., at session start)
299
+ */
300
+ resetTokenCount() {
301
+ this.metrics.estimatedTokens = 0;
302
+ this.tokenAccumulator = 0;
303
+ this.metrics.lastCompactionAt = undefined;
304
+ }
305
+ }
306
+ //# sourceMappingURL=compaction-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-handler.js","sourceRoot":"","sources":["../../../../src/core/context/compaction-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAiDjD,MAAM,OAAO,iBAAiB;IACpB,YAAY,CAAe;IAC3B,OAAO,CAAoB;IAC3B,gBAAgB,GAAW,CAAC,CAAC;IAC7B,gBAAgB,GAAuC,IAAI,GAAG,EAAE,CAAC;IAEzE,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG;YACb,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,MAAM,EAAE,cAAc;YACxC,iBAAiB,EAAE,MAAM,EAAE,cAAc;YACzC,gBAAgB,EAAE,CAAC;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACzB,2CAA2C;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,IAAI,eAAe,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,eAAe,CAAC;QAEhD,mBAAmB;QACnB,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,OAAe;QACnC,MAAM,oBAAoB,GAAG;YAC3B,8BAA8B;YAC9B,sBAAsB;YACtB,qBAAqB;YACrB,wBAAwB;YACxB,2BAA2B;YAC3B,qBAAqB;SACtB,CAAC;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC7C,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,gCAAgC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAEhE,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAExD,6BAA6B;YAC7B,MAAM,MAAM,GAA0B;gBACpC,SAAS,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;gBAClC,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE;oBACP,UAAU,EAAE,SAAS;oBACrB,eAAe,EAAE,OAAO;oBACxB,SAAS,EAAE,SAAS;oBACpB,iBAAiB,EAAE,aAAa;iBACjC;gBACD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;aAC7C,CAAC;YAEF,iDAAiD;YACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CACzB,YAAmB,EAAE,gCAAgC;YACrD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EACtB,EAAE,EACF;gBACE,mBAAmB,EAAE,IAAI;gBACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;aAC1C,EACD,cAAc,CACf,CAAC;YAEF,iCAAiC;YACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAEhC,MAAM,CAAC,IAAI,CACT,iCAAiC,IAAI,CAAC,OAAO,CAAC,eAAe,SAAS,CACvE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,sCAAsC,EACtC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAe;QACtC,MAAM,SAAS,GAAsB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC;QAEtE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,KAAK,aAAa;gBAC9B,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;gBACjB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,CAClD,CAAC;YAEF,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS;gBAC1C,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;gBAChD,WAAW,EAAE,WAAW;oBACtB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC;oBAC7C,CAAC,CAAC,EAAE;gBACN,cAAc,EAAE,IAAI,CAAC,oBAAoB,CACvC,KAAK,CAAC,OAAO,EACb,WAAW,EAAE,OAAO,CACrB;gBACD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;gBACzD,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK;aAClC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAY;QACnC,MAAM,IAAI,GAAG;YACX,WAAW;YACX,SAAS;YACT,OAAO;YACP,MAAM;YACN,SAAS;YACT,SAAS;SACV,CAAC;QACF,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAY;QACpC,OAAO;YACL,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,WAAgB,EAAE,aAAkB;QAC/D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,iBAAiB;QACjB,IAAI,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;YACtC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,mBAAmB;QACnB,IAAI,aAAa,EAAE,aAAa,EAAE,CAAC;YACjC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,aAAa,EAAE,cAAc,EAAE,CAAC;YAClC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAe;QAC3C,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEnE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,KAAK,WAAW,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAC1E,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnE,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS;gBAClC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI;gBAC7B,SAAS,CAAC;YAEZ,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,OAAO,EAAE,IAAI,EAAE,8BAA8B;gBAC7C,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,QAAgB;QACzC,MAAM,OAAO,GAA0C;YACrD,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAe;QACtC,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QACzE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAe;QAC1C,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CACzD,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,sEAAsE;YACtE,MAAM,eAAe,GAAG,MAAM;iBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;iBACrE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;YAE5D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK;oBAC/B,UAAU,EAAE,6BAA6B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACrG,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC9D,SAAS,EAAE,UAAU,CAAC,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEhC,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACrD,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,sCAAsC;YAC5C,MAAM,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE;SAC9C,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,CAAC,YAAY,CAAC,SAAS,CACzB,MAAM,EACN,wCAAwC,YAAY,CAAC,cAAc,EAAE,EACrE,EAAE,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,EACrB,gBAAgB,CACjB,CAAC;QAEF,4BAA4B;QAC5B,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU;aACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,IAAI,CAAC,YAAY,CAAC,SAAS,CACzB,MAAM,EACN,kBAAkB,YAAY,EAAE,EAChC,CAAC,EACD,EAAE,EACF,gBAAgB,CACjB,CAAC;QAEF,8BAA8B;QAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CACzB,MAAM,EACN,kBAAkB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChD,CAAC,EACD,EAAE,EACF,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,SAAS,CACzB,UAAU,EACV,QAAQ,EACR,CAAC,EACD,EAAE,EACF,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Model-Aware Compaction Handler
3
+ * Dynamically adjusts thresholds based on detected Claude model
4
+ */
5
+ export interface ModelProfile {
6
+ name: string;
7
+ contextWindow: number;
8
+ outputLimit: number;
9
+ warningThreshold: number;
10
+ criticalThreshold: number;
11
+ compactionZone: number;
12
+ characteristics: {
13
+ supportsLongContext: boolean;
14
+ betaFeatures?: string[];
15
+ costTier: 'low' | 'medium' | 'high' | 'premium';
16
+ };
17
+ }
18
+ export interface ModelDetectionResult {
19
+ detectedModel: string;
20
+ confidence: number;
21
+ profile: ModelProfile;
22
+ source: 'header' | 'behavior' | 'default';
23
+ }
24
+ export declare class ModelAwareCompactionHandler {
25
+ private static readonly MODEL_PROFILES;
26
+ private currentModel;
27
+ private detectionHistory;
28
+ private tokenEstimate;
29
+ constructor();
30
+ /**
31
+ * Detect model from various signals
32
+ */
33
+ detectModel(signals: {
34
+ headers?: Record<string, string>;
35
+ responsePatterns?: string;
36
+ tokenCount?: number;
37
+ outputLength?: number;
38
+ }): ModelDetectionResult;
39
+ /**
40
+ * Normalize model name to match our profiles
41
+ */
42
+ private normalizeModelName;
43
+ /**
44
+ * Get adaptive thresholds based on current model
45
+ */
46
+ getAdaptiveThresholds(): {
47
+ warning: number;
48
+ critical: number;
49
+ compaction: number;
50
+ };
51
+ /**
52
+ * Calculate preservation strategy based on model
53
+ */
54
+ getPreservationStrategy(): {
55
+ aggressiveness: 'minimal' | 'balanced' | 'aggressive';
56
+ preserveRatio: number;
57
+ compressionLevel: 'light' | 'moderate' | 'heavy';
58
+ };
59
+ /**
60
+ * Estimate tokens more accurately based on model
61
+ */
62
+ estimateTokens(text: string): number;
63
+ /**
64
+ * Check if approaching any threshold
65
+ */
66
+ checkThresholds(currentTokens: number): {
67
+ status: 'safe' | 'warning' | 'critical' | 'compaction';
68
+ percentage: number;
69
+ tokensRemaining: number;
70
+ recommendation: string;
71
+ };
72
+ /**
73
+ * Get model-specific compaction hints
74
+ */
75
+ getCompactionHints(): string[];
76
+ /**
77
+ * Suggest optimal preservation points based on model
78
+ */
79
+ getSuggestedPreservationPoints(): number[];
80
+ /**
81
+ * Get current model profile
82
+ */
83
+ getCurrentModel(): ModelProfile;
84
+ /**
85
+ * Get detection history for diagnostics
86
+ */
87
+ getDetectionHistory(): ModelDetectionResult[];
88
+ /**
89
+ * Update model manually (for testing or override)
90
+ */
91
+ setModel(modelKey: string): boolean;
92
+ /**
93
+ * Export model profiles for reference
94
+ */
95
+ static getAvailableModels(): string[];
96
+ /**
97
+ * Get specific model profile
98
+ */
99
+ static getModelProfile(modelKey: string): ModelProfile | undefined;
100
+ }
101
+ //# sourceMappingURL=model-aware-compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-aware-compaction.d.ts","sourceRoot":"","sources":["../../../../src/core/context/model-aware-compaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE;QACf,mBAAmB,EAAE,OAAO,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;KACjD,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CAC3C;AAED,qBAAa,2BAA2B;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAqRpC;IAEF,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,aAAa,CAAa;;IAQlC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,oBAAoB;IA4FxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmD1B;;OAEG;IACH,qBAAqB,IAAI;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB;IAQD;;OAEG;IACH,uBAAuB,IAAI;QACzB,cAAc,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;QACtD,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;KAClD;IA4BD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAyCpC;;OAEG;IACH,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG;QACtC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;QACvD,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;KACxB;IAkCD;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAuC9B;;OAEG;IACH,8BAA8B,IAAI,MAAM,EAAE;IAwB1C;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,mBAAmB,IAAI,oBAAoB,EAAE;IAI7C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUnC;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;CAGnE"}