@superblocksteam/vite-plugin-file-sync 2.0.167-next.0 → 2.0.169-next.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 (255) hide show
  1. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  2. package/dist/ai-service/agent/middleware.js +23 -0
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +4 -4
  5. package/dist/ai-service/agent/tool-message-utils.d.ts +1 -1
  6. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  7. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  8. package/dist/ai-service/agent/tool-permission-delivery.d.ts +5 -4
  9. package/dist/ai-service/agent/tool-permission-delivery.d.ts.map +1 -1
  10. package/dist/ai-service/agent/tool-permission-delivery.js +22 -28
  11. package/dist/ai-service/agent/tool-permission-delivery.js.map +1 -1
  12. package/dist/ai-service/agent/tool-permission-outcome-metrics.d.ts +9 -0
  13. package/dist/ai-service/agent/tool-permission-outcome-metrics.d.ts.map +1 -0
  14. package/dist/ai-service/agent/tool-permission-outcome-metrics.js +23 -0
  15. package/dist/ai-service/agent/tool-permission-outcome-metrics.js.map +1 -0
  16. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +44 -0
  17. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools/build-capture-screenshot.js +198 -18
  19. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  20. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +2 -0
  21. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  22. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  23. package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/build-reload-file.js +32 -19
  25. package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
  26. package/dist/ai-service/agent/tools/get-security-findings.d.ts +45 -0
  27. package/dist/ai-service/agent/tools/get-security-findings.d.ts.map +1 -0
  28. package/dist/ai-service/agent/tools/get-security-findings.js +74 -0
  29. package/dist/ai-service/agent/tools/get-security-findings.js.map +1 -0
  30. package/dist/ai-service/agent/tools/integrations/integration-setup.d.ts +2 -2
  31. package/dist/ai-service/agent/tools/integrations/integration-setup.d.ts.map +1 -1
  32. package/dist/ai-service/agent/tools/integrations/integration-setup.js +24 -2
  33. package/dist/ai-service/agent/tools/integrations/integration-setup.js.map +1 -1
  34. package/dist/ai-service/agent/tools/report-security-findings.d.ts +20 -20
  35. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  36. package/dist/ai-service/agent/tools.js +13 -2
  37. package/dist/ai-service/agent/tools.js.map +1 -1
  38. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  39. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +14 -0
  40. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  41. package/dist/ai-service/agent/tools2/tools/git.d.ts +2 -1
  42. package/dist/ai-service/agent/tools2/tools/git.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools2/tools/git.js +1 -1
  44. package/dist/ai-service/agent/tools2/tools/git.js.map +1 -1
  45. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  46. package/dist/ai-service/agent/utils.js +5 -0
  47. package/dist/ai-service/agent/utils.js.map +1 -1
  48. package/dist/ai-service/app-interface/app-package-manager.d.ts +43 -0
  49. package/dist/ai-service/app-interface/app-package-manager.d.ts.map +1 -0
  50. package/dist/ai-service/app-interface/app-package-manager.js +82 -0
  51. package/dist/ai-service/app-interface/app-package-manager.js.map +1 -0
  52. package/dist/ai-service/app-interface/constants.d.ts +2 -2
  53. package/dist/ai-service/app-interface/constants.d.ts.map +1 -1
  54. package/dist/ai-service/app-interface/constants.js +5 -0
  55. package/dist/ai-service/app-interface/constants.js.map +1 -1
  56. package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
  57. package/dist/ai-service/app-interface/file-system-interface.js +0 -3
  58. package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
  59. package/dist/ai-service/app-interface/npm-error-parser.d.ts +1 -1
  60. package/dist/ai-service/app-interface/npm-error-parser.d.ts.map +1 -1
  61. package/dist/ai-service/app-interface/npm-error-parser.js +42 -8
  62. package/dist/ai-service/app-interface/npm-error-parser.js.map +1 -1
  63. package/dist/ai-service/app-interface/npm-registry.d.ts +30 -0
  64. package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -1
  65. package/dist/ai-service/app-interface/npm-registry.js +108 -1
  66. package/dist/ai-service/app-interface/npm-registry.js.map +1 -1
  67. package/dist/ai-service/app-interface/pnpm-lockfile.d.ts +28 -0
  68. package/dist/ai-service/app-interface/pnpm-lockfile.d.ts.map +1 -0
  69. package/dist/ai-service/app-interface/pnpm-lockfile.js +89 -0
  70. package/dist/ai-service/app-interface/pnpm-lockfile.js.map +1 -0
  71. package/dist/ai-service/app-interface/shell.d.ts +43 -7
  72. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  73. package/dist/ai-service/app-interface/shell.js +252 -119
  74. package/dist/ai-service/app-interface/shell.js.map +1 -1
  75. package/dist/ai-service/app-interface/vulnerability-gate.d.ts +5 -0
  76. package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -1
  77. package/dist/ai-service/app-interface/vulnerability-gate.js +3 -0
  78. package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -1
  79. package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
  80. package/dist/ai-service/app-skills/helpers.js +9 -9
  81. package/dist/ai-service/app-skills/helpers.js.map +1 -1
  82. package/dist/ai-service/chat/chat-session-store.d.ts +4 -1
  83. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  84. package/dist/ai-service/chat/chat-session-store.js +4 -0
  85. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  86. package/dist/ai-service/checklist/persisted-checklist-store.d.ts +66 -1
  87. package/dist/ai-service/checklist/persisted-checklist-store.d.ts.map +1 -1
  88. package/dist/ai-service/checklist/persisted-checklist-store.js +274 -4
  89. package/dist/ai-service/checklist/persisted-checklist-store.js.map +1 -1
  90. package/dist/ai-service/checklist/policy-remediation.d.ts +8 -0
  91. package/dist/ai-service/checklist/policy-remediation.d.ts.map +1 -0
  92. package/dist/ai-service/checklist/policy-remediation.js +46 -0
  93. package/dist/ai-service/checklist/policy-remediation.js.map +1 -0
  94. package/dist/ai-service/checklist/remediation-findings-client.d.ts +31 -0
  95. package/dist/ai-service/checklist/remediation-findings-client.d.ts.map +1 -0
  96. package/dist/ai-service/checklist/remediation-findings-client.js +117 -0
  97. package/dist/ai-service/checklist/remediation-findings-client.js.map +1 -0
  98. package/dist/ai-service/context-download.d.ts.map +1 -1
  99. package/dist/ai-service/context-download.js +76 -37
  100. package/dist/ai-service/context-download.js.map +1 -1
  101. package/dist/ai-service/dev-database-file-sync.d.ts +2 -1
  102. package/dist/ai-service/dev-database-file-sync.d.ts.map +1 -1
  103. package/dist/ai-service/dev-database-file-sync.js.map +1 -1
  104. package/dist/ai-service/index.d.ts +59 -9
  105. package/dist/ai-service/index.d.ts.map +1 -1
  106. package/dist/ai-service/index.js +1191 -479
  107. package/dist/ai-service/index.js.map +1 -1
  108. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  109. package/dist/ai-service/integrations/store.js +11 -2
  110. package/dist/ai-service/integrations/store.js.map +1 -1
  111. package/dist/ai-service/llm/context-v2/adapter.d.ts +3 -0
  112. package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
  113. package/dist/ai-service/llm/context-v2/adapter.js +6 -0
  114. package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
  115. package/dist/ai-service/llm/context-v2/context.d.ts +22 -1
  116. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  117. package/dist/ai-service/llm/context-v2/context.js +185 -30
  118. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  119. package/dist/ai-service/llm/context-v2/conversation-context.d.ts +7 -0
  120. package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
  121. package/dist/ai-service/llm/context-v2/manager.d.ts +11 -10
  122. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  123. package/dist/ai-service/llm/context-v2/manager.js +128 -85
  124. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  125. package/dist/ai-service/llm/context-v2/storage/event-store.d.ts +73 -1
  126. package/dist/ai-service/llm/context-v2/storage/event-store.d.ts.map +1 -1
  127. package/dist/ai-service/llm/context-v2/storage/event-types.d.ts +152 -24
  128. package/dist/ai-service/llm/context-v2/storage/event-types.d.ts.map +1 -1
  129. package/dist/ai-service/llm/context-v2/storage/event-types.js +141 -0
  130. package/dist/ai-service/llm/context-v2/storage/event-types.js.map +1 -1
  131. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.d.ts +20 -2
  132. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.d.ts.map +1 -1
  133. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.js +111 -49
  134. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.js.map +1 -1
  135. package/dist/ai-service/llm/context-v2/storage/migration.d.ts.map +1 -1
  136. package/dist/ai-service/llm/context-v2/storage/migration.js +31 -4
  137. package/dist/ai-service/llm/context-v2/storage/migration.js.map +1 -1
  138. package/dist/ai-service/llm/context-v2/token-tracker.d.ts +34 -0
  139. package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
  140. package/dist/ai-service/llm/context-v2/token-tracker.js +164 -0
  141. package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
  142. package/dist/ai-service/llm/context-v2/types.d.ts +5 -2
  143. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  144. package/dist/ai-service/llm/context-v2/types.js +1 -1
  145. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  146. package/dist/ai-service/llm/stream/config.d.ts +7 -0
  147. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  148. package/dist/ai-service/llm/stream/config.js +20 -2
  149. package/dist/ai-service/llm/stream/config.js.map +1 -1
  150. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  151. package/dist/ai-service/llm/stream/orchestrator.js +30 -14
  152. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  153. package/dist/ai-service/llm/stream/session.d.ts +1 -1
  154. package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
  155. package/dist/ai-service/llm/stream/session.js +1 -1
  156. package/dist/ai-service/llm/stream/session.js.map +1 -1
  157. package/dist/ai-service/migration-llm-config.d.ts.map +1 -1
  158. package/dist/ai-service/migration-llm-config.js +13 -71
  159. package/dist/ai-service/migration-llm-config.js.map +1 -1
  160. package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
  161. package/dist/ai-service/security/secret-scanner-service.js +12 -2
  162. package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
  163. package/dist/ai-service/security/secret-scanner.d.ts +1 -1
  164. package/dist/ai-service/security/secret-scanner.d.ts.map +1 -1
  165. package/dist/ai-service/security/secret-scanner.js +4 -1
  166. package/dist/ai-service/security/secret-scanner.js.map +1 -1
  167. package/dist/ai-service/security/vulnerability-triage.d.ts +2 -2
  168. package/dist/ai-service/state-machine/clark-fsm.d.ts +17 -1
  169. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  170. package/dist/ai-service/state-machine/clark-fsm.js +85 -8
  171. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  172. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  173. package/dist/ai-service/state-machine/handlers/agent-planning.js +97 -47
  174. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  175. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  176. package/dist/ai-service/state-machine/handlers/awaiting-user.js +68 -50
  177. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  178. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  179. package/dist/ai-service/state-machine/handlers/llm-generating.js +91 -73
  180. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  181. package/dist/ai-service/state-machine/helpers/prompt-failure.d.ts +1 -1
  182. package/dist/ai-service/state-machine/helpers/prompt-failure.d.ts.map +1 -1
  183. package/dist/ai-service/state-machine/helpers/prompt-failure.js +1 -0
  184. package/dist/ai-service/state-machine/helpers/prompt-failure.js.map +1 -1
  185. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +2 -1
  186. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
  187. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +1 -0
  188. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
  189. package/dist/ai-service/state-machine/helpers/user-response-message.d.ts +4 -0
  190. package/dist/ai-service/state-machine/helpers/user-response-message.d.ts.map +1 -0
  191. package/dist/ai-service/state-machine/helpers/user-response-message.js +37 -0
  192. package/dist/ai-service/state-machine/helpers/user-response-message.js.map +1 -0
  193. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  194. package/dist/ai-service/template-renderer.js +22 -9
  195. package/dist/ai-service/template-renderer.js.map +1 -1
  196. package/dist/ai-service/types.d.ts +2 -1
  197. package/dist/ai-service/types.d.ts.map +1 -1
  198. package/dist/ai-service/types.js.map +1 -1
  199. package/dist/components-manager.d.ts +9 -2
  200. package/dist/components-manager.d.ts.map +1 -1
  201. package/dist/components-manager.js +0 -4
  202. package/dist/components-manager.js.map +1 -1
  203. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  204. package/dist/file-sync-vite-plugin.js +4 -8
  205. package/dist/file-sync-vite-plugin.js.map +1 -1
  206. package/dist/file-system-helpers.d.ts +14 -0
  207. package/dist/file-system-helpers.d.ts.map +1 -1
  208. package/dist/file-system-helpers.js +22 -1
  209. package/dist/file-system-helpers.js.map +1 -1
  210. package/dist/file-system-manager.d.ts +12 -1
  211. package/dist/file-system-manager.d.ts.map +1 -1
  212. package/dist/file-system-manager.js +42 -22
  213. package/dist/file-system-manager.js.map +1 -1
  214. package/dist/index.d.ts +7 -0
  215. package/dist/index.d.ts.map +1 -1
  216. package/dist/index.js +7 -0
  217. package/dist/index.js.map +1 -1
  218. package/dist/lock-service/index.d.ts +20 -0
  219. package/dist/lock-service/index.d.ts.map +1 -1
  220. package/dist/lock-service/index.js +53 -5
  221. package/dist/lock-service/index.js.map +1 -1
  222. package/dist/migration/get-fullstack-template-dir.js +2 -2
  223. package/dist/migration/get-fullstack-template-dir.js.map +1 -1
  224. package/dist/migration/migration-routes.d.ts.map +1 -1
  225. package/dist/migration/migration-routes.js +8 -2
  226. package/dist/migration/migration-routes.js.map +1 -1
  227. package/dist/plugin-options.d.ts +1 -0
  228. package/dist/plugin-options.d.ts.map +1 -1
  229. package/dist/plugin-options.js.map +1 -1
  230. package/dist/router-parser.d.ts.map +1 -1
  231. package/dist/router-parser.js +336 -65
  232. package/dist/router-parser.js.map +1 -1
  233. package/dist/socket-manager.d.ts +25 -2
  234. package/dist/socket-manager.d.ts.map +1 -1
  235. package/dist/socket-manager.js +270 -55
  236. package/dist/socket-manager.js.map +1 -1
  237. package/dist/split-edit-after-clark.d.ts +14 -0
  238. package/dist/split-edit-after-clark.d.ts.map +1 -0
  239. package/dist/split-edit-after-clark.js +40 -0
  240. package/dist/split-edit-after-clark.js.map +1 -0
  241. package/dist/sync-service/index.d.ts +2 -1
  242. package/dist/sync-service/index.d.ts.map +1 -1
  243. package/dist/sync-service/index.js +5 -0
  244. package/dist/sync-service/index.js.map +1 -1
  245. package/dist/sync-service/list-dir.d.ts.map +1 -1
  246. package/dist/sync-service/list-dir.js +9 -4
  247. package/dist/sync-service/list-dir.js.map +1 -1
  248. package/dist/util/log-sanitizer.d.ts.map +1 -1
  249. package/dist/util/log-sanitizer.js +4 -0
  250. package/dist/util/log-sanitizer.js.map +1 -1
  251. package/dist/vite-module-reload.d.ts +34 -0
  252. package/dist/vite-module-reload.d.ts.map +1 -0
  253. package/dist/vite-module-reload.js +121 -0
  254. package/dist/vite-module-reload.js.map +1 -0
  255. package/package.json +10 -9
@@ -61,6 +61,8 @@ export declare class ContextManagerV2 {
61
61
  private readonly onContextPersisted?;
62
62
  private readonly adoptLegacyContexts?;
63
63
  private legacyAdoptionRun?;
64
+ private clearAllRun?;
65
+ private readonly inFlightLoads;
64
66
  constructor(options: ContextManagerV2Options);
65
67
  private getContextKey;
66
68
  /**
@@ -80,6 +82,7 @@ export declare class ContextManagerV2 {
80
82
  */
81
83
  private ensureLegacyAdoption;
82
84
  getOrCreateContext(id: ContextId | undefined, config?: Partial<ContextOptionsV2>, tracer?: LLMObsTracer, contextManagement?: ContextManagementOptions, metricIdentity?: ContextMetricIdentity): Promise<ContextV2>;
85
+ private loadOrCreateContext;
83
86
  /**
84
87
  * Load the persisted record inside a `context.load` LLMObs span and record
85
88
  * the load-duration metric (APPS-4708). The cold-pod context load was the
@@ -144,11 +147,13 @@ export declare class ContextManagerV2 {
144
147
  latestEventTimestamp?: number;
145
148
  }>;
146
149
  /**
147
- * Whether the on-disk legacy snapshot would out-vote `truncatedMessages` on
148
- * load — i.e. it carries a summary newer than the truncated log's, which
149
- * `reconcileEventAndLegacyRecord` would prefer and re-append. Used only on the
150
- * double-fault path (snapshot rewrite and delete both failed) to decide
151
- * whether local state is still consistent.
150
+ * Whether the on-disk legacy snapshot would out-vote the truncated event log
151
+ * on load. The log is authoritative whenever it has replayable messages or a
152
+ * clean state-only marker (see `loadRecord`), so the snapshot only wins when
153
+ * the truncated log is neither — e.g. every event was dropped, or only
154
+ * corrupt lines remain — and the snapshot still carries messages. Used only
155
+ * on the double-fault path (snapshot rewrite and delete both failed) to
156
+ * decide whether local state is still consistent.
152
157
  */
153
158
  private snapshotWouldResurrect;
154
159
  /**
@@ -158,13 +163,9 @@ export declare class ContextManagerV2 {
158
163
  * conversation from whichever one was missed.
159
164
  */
160
165
  clearAllContexts(): Promise<void>;
166
+ private runClearAllContexts;
161
167
  private buildCompactionStrategy;
162
- private reconcileEventAndLegacyRecord;
163
168
  private seedEventLogFromRecord;
164
- private hasNewerSummary;
165
- private messagesFromSummaryAnchor;
166
- private findLastSummaryTimestamp;
167
- private findLastSummaryIndex;
168
169
  /**
169
170
  * Persists an empty context record to storage for the given id.
170
171
  * Used by handleNewChat() to overwrite the local (and later remote)
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/manager.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,13 @@ export class ContextManagerV2 {
31
31
  onContextPersisted;
32
32
  adoptLegacyContexts;
33
33
  legacyAdoptionRun;
34
+ // Set while `clearAllContexts` runs; new loads wait on it so they cannot
35
+ // read (and re-cache or re-seed) the conversation being cleared.
36
+ clearAllRun;
37
+ // Loads currently past the clear gate. `clearAllContexts` waits for them
38
+ // before deleting, since a load can write (migration / remote-restore
39
+ // seeding) and cache pre-clear state.
40
+ inFlightLoads = new Set();
34
41
  constructor(options) {
35
42
  this.storage = options.storage;
36
43
  this.rootDir = options.rootDir;
@@ -75,6 +82,21 @@ export class ContextManagerV2 {
75
82
  return this.legacyAdoptionRun;
76
83
  }
77
84
  async getOrCreateContext(id, config, tracer, contextManagement, metricIdentity) {
85
+ // Wait out an in-progress New Chat: loading now would read the
86
+ // conversation it is about to delete and cache it again.
87
+ while (this.clearAllRun) {
88
+ await this.clearAllRun.catch(() => { });
89
+ }
90
+ const load = this.loadOrCreateContext(id, config, tracer, contextManagement, metricIdentity);
91
+ this.inFlightLoads.add(load);
92
+ try {
93
+ return await load;
94
+ }
95
+ finally {
96
+ this.inFlightLoads.delete(load);
97
+ }
98
+ }
99
+ async loadOrCreateContext(id, config, tracer, contextManagement, metricIdentity) {
78
100
  await this.ensureLegacyAdoption();
79
101
  const key = id ? this.getContextKey(id) : undefined;
80
102
  const resolvedMetricIdentity = this.resolveMetricIdentity(id, metricIdentity);
@@ -233,13 +255,28 @@ export class ContextManagerV2 {
233
255
  // Load from event log first, fall back to legacy storage
234
256
  if (this.eventStore && !migrationFailed) {
235
257
  try {
236
- const messages = await this.eventStore.loadMessages(id);
237
- if (messages.length > 0) {
238
- const legacyRecord = await this.loadContext(id);
239
- const record = await this.reconcileEventAndLegacyRecord(id, messages, legacyRecord);
258
+ const snapshot = await this.eventStore.loadSnapshot(id);
259
+ // The event log is authoritative when it has replayable messages, or a
260
+ // clean state-only marker (empty conversation that was persisted — this
261
+ // blocks a stale main.json from resurrecting cleared history). A
262
+ // state-only snapshot carrying corruption is NOT trusted: a garbage log
263
+ // that a runtime persist stamped with a state entry would otherwise
264
+ // mask a healthy legacy main.json.
265
+ const eventLogAuthoritative = snapshot.messages.length > 0 ||
266
+ (snapshot.hasAttachmentState && snapshot.corruptedCount === 0);
267
+ if (eventLogAuthoritative) {
268
+ const record = {
269
+ version: 2,
270
+ messages: snapshot.messages,
271
+ attachments: snapshot.attachments,
272
+ lastContextUsage: snapshot.lastContextUsage,
273
+ };
240
274
  logger.info(`Loaded ${record.messages.length} messages from event log for '${id.name}'`);
241
275
  return { record, source: "event_log", migrationRan, migrationFailed };
242
276
  }
277
+ if (snapshot.corruptedCount > 0) {
278
+ logger.warn(`Ignoring corrupt event log for '${id.name}' (${snapshot.corruptedCount} unparseable line(s)) in favor of legacy storage`);
279
+ }
243
280
  }
244
281
  catch (err) {
245
282
  logger.error(`Failed to load from event log for '${id.name}': ${err}`);
@@ -261,7 +298,10 @@ export class ContextManagerV2 {
261
298
  if (remoteRecord) {
262
299
  logger.info(`Restored context '${id.name}' from remote fallback`);
263
300
  await this.saveContext(id, remoteRecord);
264
- await this.seedEventLogFromRecord(id, remoteRecord);
301
+ if (!this.eventStore ||
302
+ (await this.eventStore.loadSnapshot(id)).messages.length === 0) {
303
+ await this.seedEventLogFromRecord(id, remoteRecord);
304
+ }
265
305
  return {
266
306
  record: remoteRecord,
267
307
  source: "remote",
@@ -368,6 +408,20 @@ export class ContextManagerV2 {
368
408
  catch {
369
409
  // Unreadable snapshot: healing below rewrites or deletes it anyway.
370
410
  }
411
+ // Drop the cached context and DRAIN any in-flight persist BEFORE touching
412
+ // either store, so the truncate and the heal below are the only writers
413
+ // (and the next load rebuilds from the truncated log). `dispose()` stops
414
+ // NEW persists and aborts an in-flight persist's event-log writes
415
+ // (attachment-state appends, a log repair's atomic replace), but a persist
416
+ // that already passed its final dispose check is committed to writing the
417
+ // pre-rollback snapshot. Were those writes still in flight during the
418
+ // truncate, a repair could replace the just-truncated log with pre-rollback
419
+ // history, and a late snapshot write after the heal would clobber the
420
+ // rollback (and re-emit contextPersisted, flushing poisoned state
421
+ // remotely). Dropping the cache is harmless if the truncate then fails.
422
+ const cached = this.getLoadedContext(id);
423
+ this.clearContext(id);
424
+ await cached?.drainPersists();
371
425
  // Truncate the event log FIRST, while the legacy snapshot is still intact as
372
426
  // a backup. The truncate is atomic (temp file + rename), so an interrupted
373
427
  // write cannot lose history — and because the snapshot is not touched until
@@ -386,25 +440,16 @@ export class ContextManagerV2 {
386
440
  `(appId=${id.appId}); nothing was mutated, restore aborted`, getErrorMeta(truncErr));
387
441
  return { hadEvents: true, dropped: 0, healed: false };
388
442
  }
389
- // Drop the cached context (so the next load rebuilds from the truncated
390
- // log) and DRAIN any in-flight persist before healing below. `dispose()`
391
- // stops NEW persists, but a persist that already passed the dispose guard
392
- // is committed to writing the pre-rollback snapshot; if that write lands
393
- // after the heal it clobbers the rollback (and re-emits contextPersisted,
394
- // flushing poisoned state remotely). Draining forces the heal to be the
395
- // last writer.
396
- const cached = this.getLoadedContext(id);
397
- this.clearContext(id);
398
- await cached?.drainPersists();
399
443
  const messages = await this.eventStore.loadMessages(id);
400
444
  const latestEventTimestamp = messages.reduce((max, m) => Math.max(max, m._superblocks?.timestamp ?? 0), 0);
401
445
  // Make the snapshot consistent with the (truncated) log so it cannot
402
- // override the rollback on load (reconcileEventAndLegacyRecord prefers a
403
- // snapshot carrying a newer summary). This runs even when `dropped === 0`:
404
- // "nothing new after the checkpoint" does NOT imply the snapshot already
405
- // matches — a prior interrupted restore can leave the log rolled back but a
406
- // stale newer-summary snapshot in place, and skipping the heal there would
407
- // let that snapshot resurrect the reverted turns. Rewrite the snapshot to
446
+ // override the rollback on load (a truncated log that is no longer
447
+ // authoritative — e.g. emptied — falls back to the snapshot, and the
448
+ // snapshot is also what Bucketeer republishes). This runs even when
449
+ // `dropped === 0`: "nothing new after the checkpoint" does NOT imply the
450
+ // snapshot already matches — a prior interrupted restore can leave the log
451
+ // rolled back but a stale snapshot in place, and skipping the heal there
452
+ // would let that snapshot resurrect the reverted turns. Rewrite the snapshot to
408
453
  // match; if that fails, delete it so the truncated log is the sole
409
454
  // authority (and the republished archive is rebuilt from the truncated log —
410
455
  // see uploadContextToBucketeer's events-only path).
@@ -426,12 +471,13 @@ export class ContextManagerV2 {
426
471
  }
427
472
  catch (deleteErr) {
428
473
  // Both rewrite and delete failed (severe disk fault). The snapshot only
429
- // overrides the truncated log if it carries a newer summary; check the
430
- // same signal reconciliation uses, so `healed` is precise rather than
431
- // pessimistic — the common no-summary case still ends consistent.
432
- // snapshotWouldResurrect is pessimistic on a read error (returns true),
433
- // so a genuine read fault ends `healed: false` (preserve chat).
434
- healed = !(await this.snapshotWouldResurrect(id, messages));
474
+ // overrides the truncated log when that log is not authoritative on
475
+ // load; check the same signal `loadRecord` uses, so `healed` is precise
476
+ // rather than pessimistic — the common case of a non-empty truncated
477
+ // log still ends consistent. snapshotWouldResurrect is pessimistic on
478
+ // a read error (returns true), so a genuine read fault ends
479
+ // `healed: false` (preserve chat).
480
+ healed = !(await this.snapshotWouldResurrect(id, this.eventStore));
435
481
  logger.error(`Failed to delete the stale snapshot for context '${id.name}' ` +
436
482
  `(appId=${id.appId}); consistent=${healed} (a post-checkpoint summary would otherwise resurrect rolled-back turns)`, getErrorMeta(deleteErr));
437
483
  }
@@ -439,20 +485,32 @@ export class ContextManagerV2 {
439
485
  return { hadEvents: true, dropped, healed, latestEventTimestamp };
440
486
  }
441
487
  /**
442
- * Whether the on-disk legacy snapshot would out-vote `truncatedMessages` on
443
- * load — i.e. it carries a summary newer than the truncated log's, which
444
- * `reconcileEventAndLegacyRecord` would prefer and re-append. Used only on the
445
- * double-fault path (snapshot rewrite and delete both failed) to decide
446
- * whether local state is still consistent.
488
+ * Whether the on-disk legacy snapshot would out-vote the truncated event log
489
+ * on load. The log is authoritative whenever it has replayable messages or a
490
+ * clean state-only marker (see `loadRecord`), so the snapshot only wins when
491
+ * the truncated log is neither — e.g. every event was dropped, or only
492
+ * corrupt lines remain — and the snapshot still carries messages. Used only
493
+ * on the double-fault path (snapshot rewrite and delete both failed) to
494
+ * decide whether local state is still consistent.
447
495
  */
448
- async snapshotWouldResurrect(id, truncatedMessages) {
496
+ async snapshotWouldResurrect(id, eventStore) {
497
+ // Pessimistic on any read error: we cannot rule out that the snapshot
498
+ // would win, so assume it WOULD resurrect the rolled-back turns (the
499
+ // caller then keeps `healed: false` and preserves the chat) rather than
500
+ // optimistically claiming consistency.
501
+ try {
502
+ const snapshot = await eventStore.loadSnapshot(id);
503
+ if (snapshot.messages.length > 0 ||
504
+ (snapshot.hasAttachmentState && snapshot.corruptedCount === 0)) {
505
+ return false;
506
+ }
507
+ }
508
+ catch {
509
+ return true;
510
+ }
449
511
  // Read the raw snapshot directly rather than via `loadContext`, which
450
- // swallows non-ENOENT read errors to `null`. On the double-fault path a
451
- // present-but-unreadable snapshot must be treated pessimistically: we
452
- // cannot rule out a newer summary that reconciliation would prefer, so
453
- // assume it WOULD resurrect the rolled-back turns (the caller then keeps
454
- // `healed: false` and preserves the chat) rather than optimistically
455
- // claiming consistency.
512
+ // swallows non-ENOENT read errors to `null`: a present-but-unreadable
513
+ // snapshot must be treated pessimistically.
456
514
  let rawRecord;
457
515
  try {
458
516
  rawRecord = await this.storage.loadContext(id);
@@ -464,9 +522,7 @@ export class ContextManagerV2 {
464
522
  return false;
465
523
  }
466
524
  const migrated = migrateContext(rawRecord, 2);
467
- return migrated.success
468
- ? this.hasNewerSummary(migrated.record.messages, truncatedMessages)
469
- : false;
525
+ return migrated.success ? migrated.record.messages.length > 0 : false;
470
526
  }
471
527
  /**
472
528
  * Clears all contexts from cache, legacy storage, and the event
@@ -475,6 +531,22 @@ export class ContextManagerV2 {
475
531
  * conversation from whichever one was missed.
476
532
  */
477
533
  async clearAllContexts() {
534
+ const previous = this.clearAllRun;
535
+ const run = (async () => {
536
+ await previous?.catch(() => { });
537
+ await this.runClearAllContexts();
538
+ })();
539
+ this.clearAllRun = run;
540
+ try {
541
+ await run;
542
+ }
543
+ finally {
544
+ if (this.clearAllRun === run) {
545
+ this.clearAllRun = undefined;
546
+ }
547
+ }
548
+ }
549
+ async runClearAllContexts() {
478
550
  // An adoption pass may be moving legacy files into the shared dirs;
479
551
  // wait for it so the clear below cannot race a mid-flight rename and
480
552
  // leave an adopted file that would resurrect the cleared conversation.
@@ -491,10 +563,23 @@ export class ContextManagerV2 {
491
563
  }
492
564
  }
493
565
  this.legacyAdoptionRun = Promise.resolve();
494
- for (const context of this.contexts.values()) {
566
+ // New loads are gated on `clearAllRun`; wait for any that were already
567
+ // running so their writes and cache entries land before the dispose and
568
+ // deletes below.
569
+ await Promise.allSettled([...this.inFlightLoads]);
570
+ const disposed = [...this.contexts.values()];
571
+ for (const context of disposed) {
495
572
  context.dispose();
496
573
  }
497
574
  this.contexts.clear();
575
+ // Drain in-flight persists before deleting. `dispose()` stops new
576
+ // persists and aborts pending event-log writes, but a persist already
577
+ // past its last dispose check is committed to its snapshot write and any
578
+ // event-log replace whose rename was already issued. Since the event log
579
+ // is authoritative, one of those landing after the deletes below would
580
+ // resurrect the cleared conversation; draining makes the deletes the
581
+ // last writers (mirrors truncateContextAfterTimestamp).
582
+ await Promise.all(disposed.map((context) => context.drainPersists()));
498
583
  await this.storage.deleteAllContexts();
499
584
  if (this.eventStore) {
500
585
  try {
@@ -520,24 +605,6 @@ export class ContextManagerV2 {
520
605
  tracer,
521
606
  });
522
607
  }
523
- async reconcileEventAndLegacyRecord(id, eventMessages, legacyRecord) {
524
- if (legacyRecord &&
525
- this.hasNewerSummary(legacyRecord.messages, eventMessages)) {
526
- await this.migrator?.appendRecordWindow(id, legacyRecord);
527
- const messages = this.messagesFromSummaryAnchor(legacyRecord.messages);
528
- logger.info(`Reconciled context '${id.name}' from newer legacy summary into event log`);
529
- return {
530
- version: 2,
531
- messages,
532
- attachments: legacyRecord.attachments,
533
- };
534
- }
535
- return {
536
- version: 2,
537
- messages: eventMessages,
538
- attachments: legacyRecord?.attachments,
539
- };
540
- }
541
608
  async seedEventLogFromRecord(id, record) {
542
609
  if (!this.migrator)
543
610
  return;
@@ -548,30 +615,6 @@ export class ContextManagerV2 {
548
615
  logger.error(`Failed to seed event log after remote restore for '${id.name}': ${err}`);
549
616
  }
550
617
  }
551
- hasNewerSummary(candidate, current) {
552
- const candidateTimestamp = this.findLastSummaryTimestamp(candidate);
553
- if (candidateTimestamp === undefined) {
554
- return false;
555
- }
556
- const currentTimestamp = this.findLastSummaryTimestamp(current);
557
- return (currentTimestamp === undefined || candidateTimestamp > currentTimestamp);
558
- }
559
- messagesFromSummaryAnchor(messages) {
560
- const anchorIndex = this.findLastSummaryIndex(messages);
561
- return anchorIndex >= 0 ? messages.slice(anchorIndex) : messages;
562
- }
563
- findLastSummaryTimestamp(messages) {
564
- const index = this.findLastSummaryIndex(messages);
565
- return index >= 0 ? messages[index]?._superblocks?.timestamp : undefined;
566
- }
567
- findLastSummaryIndex(messages) {
568
- for (let i = messages.length - 1; i >= 0; i--) {
569
- if (messages[i]?._superblocks?.isSummary === true) {
570
- return i;
571
- }
572
- }
573
- return -1;
574
- }
575
618
  /**
576
619
  * Persists an empty context record to storage for the given id.
577
620
  * Used by handleNewChat() to overwrite the local (and later remote)
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/manager.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,42 @@
6
6
  * primary implementation is `JsonlEventStore`, which stores events
7
7
  * as newline-delimited JSON in per-context `.jsonl` files.
8
8
  */
9
- import type { ContextId, StoredMessage } from "../types.js";
9
+ import type { ContextUsageSnapshot } from "@superblocksteam/library-shared/types";
10
+ import type { AttachmentsRecord, ContextId, StoredMessage } from "../types.js";
10
11
  import type { EventLogEntry } from "./event-types.js";
12
+ export interface EventLogSnapshot {
13
+ /**
14
+ * Whether the backing JSONL file contains non-whitespace content. This can
15
+ * be true when every entry is invalid; inspect `corruptedCount` before
16
+ * treating the log as authoritative.
17
+ */
18
+ hasEvents: boolean;
19
+ /** Message events replayed from the latest compaction anchor onward. */
20
+ messages: StoredMessage[];
21
+ /**
22
+ * Whether a valid event records an attachment snapshot, including an
23
+ * explicit snapshot with no attachments.
24
+ */
25
+ hasAttachmentState: boolean;
26
+ /**
27
+ * The latest persisted attachment catalog. `undefined` means either no
28
+ * snapshot exists or the latest snapshot explicitly cleared attachments;
29
+ * `hasAttachmentState` distinguishes those cases.
30
+ */
31
+ attachments: AttachmentsRecord | undefined;
32
+ /**
33
+ * Occupancy snapshot from the newest state entry, for the chat ring on
34
+ * reopen. Absent on logs written before it was recorded.
35
+ */
36
+ lastContextUsage?: ContextUsageSnapshot;
37
+ /**
38
+ * Number of JSONL lines that failed to parse on this load. A snapshot with
39
+ * `hasEvents` but zero parsed messages and `corruptedCount > 0` is a corrupt
40
+ * log: callers must treat it as absent rather than authoritative, or a
41
+ * garbage file would mask a healthy legacy `main.json`.
42
+ */
43
+ corruptedCount: number;
44
+ }
11
45
  /**
12
46
  * Append-only event log store for conversation history.
13
47
  *
@@ -38,6 +72,16 @@ export interface EventStore {
38
72
  appendEvent(id: ContextId, event: EventLogEntry, opts?: {
39
73
  shouldAbort?: () => boolean;
40
74
  }): Promise<void>;
75
+ /**
76
+ * Append the latest non-message context state to the log.
77
+ *
78
+ * This keeps fields such as uploaded attachments and the last occupancy
79
+ * snapshot in the event log so legacy `main.json` is only needed to seed
80
+ * older logs that are missing state.
81
+ */
82
+ appendAttachmentState(id: ContextId, attachments: AttachmentsRecord | undefined, opts?: {
83
+ shouldAbort?: () => boolean;
84
+ }, lastContextUsage?: ContextUsageSnapshot): Promise<void>;
41
85
  /**
42
86
  * Load conversation messages by scanning backward for the last
43
87
  * compaction event, then reading forward from that point.
@@ -48,10 +92,26 @@ export interface EventStore {
48
92
  * does not exist or is empty, returns an empty array.
49
93
  */
50
94
  loadMessages(id: ContextId): Promise<StoredMessage[]>;
95
+ /**
96
+ * Load all event-derived context state with one backing read.
97
+ */
98
+ loadSnapshot(id: ContextId): Promise<EventLogSnapshot>;
99
+ /**
100
+ * Load the latest attachment state from the event log.
101
+ *
102
+ * Returns undefined when the newest state explicitly has no attachments or
103
+ * when no state event exists; use `hasAttachmentState` to distinguish those
104
+ * cases during migration.
105
+ */
106
+ loadAttachmentState(id: ContextId): Promise<AttachmentsRecord | undefined>;
51
107
  /**
52
108
  * Check whether any events exist for the given context.
53
109
  */
54
110
  hasEvents(id: ContextId): Promise<boolean>;
111
+ /**
112
+ * Check whether the event log contains any attachment-state event.
113
+ */
114
+ hasAttachmentState(id: ContextId): Promise<boolean>;
55
115
  /**
56
116
  * Drop every event whose `timestamp` is strictly greater than
57
117
  * `sinceTimestamp`, keeping the prefix of the append-only log that
@@ -68,6 +128,18 @@ export interface EventStore {
68
128
  * leave the file untouched.
69
129
  */
70
130
  truncateAfterTimestamp(id: ContextId, sinceTimestamp: number): Promise<number>;
131
+ /**
132
+ * Atomically replace the whole event log with `events`: the new contents
133
+ * are written in full to a sibling temp file, then renamed over the log, so
134
+ * a crash or error mid-write leaves either the old log or the complete new
135
+ * one — never a partial log.
136
+ *
137
+ * `opts.shouldAbort` is checked after the temp file is written and before
138
+ * the rename; an aborted replace leaves the existing log untouched.
139
+ */
140
+ replaceEvents(id: ContextId, events: EventLogEntry[], opts?: {
141
+ shouldAbort?: () => boolean;
142
+ }): Promise<void>;
71
143
  /**
72
144
  * Remove the event log for a single context. Idempotent: returns
73
145
  * normally when no log exists.
@@ -1 +1 @@
1
- {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/event-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,aAAa,EACpB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;KAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAEtD;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C;;;;;;;;;;;;;;OAcG;IACH,sBAAsB,CACpB,EAAE,EAAE,SAAS,EACb,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/event-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,WAAW,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,aAAa,EACpB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;KAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,qBAAqB,CACnB,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;KAAE,EACtC,gBAAgB,CAAC,EAAE,oBAAoB,GACtC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAEtD;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEvD;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAE3E;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD;;;;;;;;;;;;;;OAcG;IACH,sBAAsB,CACpB,EAAE,EAAE,SAAS,EACb,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;OAQG;IACH,aAAa,CACX,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,aAAa,EAAE,EACvB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;KAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC"}