@gkorepanov/ccodex 0.3.0 → 0.4.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 (201) hide show
  1. package/README.md +141 -63
  2. package/assets/ccodex/goals/continuation.md +1 -0
  3. package/compatibility.json +5 -6
  4. package/config.example.toml +19 -4
  5. package/dist/claude/asyncQueue.d.ts +3 -0
  6. package/dist/claude/asyncQueue.js +13 -2
  7. package/dist/claude/asyncQueue.js.map +1 -1
  8. package/dist/claude/commandActions.d.ts +6 -0
  9. package/dist/claude/commandActions.js +57 -0
  10. package/dist/claude/commandActions.js.map +1 -0
  11. package/dist/claude/compactCommand.d.ts +2 -0
  12. package/dist/claude/compactCommand.js +7 -0
  13. package/dist/claude/compactCommand.js.map +1 -0
  14. package/dist/claude/goalTools.d.ts +15 -0
  15. package/dist/claude/goalTools.js +128 -0
  16. package/dist/claude/goalTools.js.map +1 -0
  17. package/dist/claude/hookMapper.d.ts +17 -4
  18. package/dist/claude/hookMapper.js +7 -5
  19. package/dist/claude/hookMapper.js.map +1 -1
  20. package/dist/claude/inputMapper.d.ts +1 -0
  21. package/dist/claude/inputMapper.js +1 -0
  22. package/dist/claude/inputMapper.js.map +1 -1
  23. package/dist/claude/rateLimits.d.ts +72 -0
  24. package/dist/claude/rateLimits.js +330 -0
  25. package/dist/claude/rateLimits.js.map +1 -0
  26. package/dist/claude/responseItemValidation.d.ts +2 -0
  27. package/dist/claude/responseItemValidation.js +40 -0
  28. package/dist/claude/responseItemValidation.js.map +1 -0
  29. package/dist/claude/resultClassifier.d.ts +8 -2
  30. package/dist/claude/resultClassifier.js +9 -1
  31. package/dist/claude/resultClassifier.js.map +1 -1
  32. package/dist/claude/service.d.ts +116 -29
  33. package/dist/claude/service.js +1337 -680
  34. package/dist/claude/service.js.map +1 -1
  35. package/dist/claude/session/backgroundOutput.d.ts +2 -0
  36. package/dist/claude/session/backgroundOutput.js +29 -0
  37. package/dist/claude/session/backgroundOutput.js.map +1 -0
  38. package/dist/claude/session/commands.d.ts +862 -0
  39. package/dist/claude/session/commands.js +2 -0
  40. package/dist/claude/session/commands.js.map +1 -0
  41. package/dist/claude/session/goalState.d.ts +49 -0
  42. package/dist/claude/session/goalState.js +407 -0
  43. package/dist/claude/session/goalState.js.map +1 -0
  44. package/dist/claude/session/mailbox.d.ts +52 -0
  45. package/dist/claude/session/mailbox.js +190 -0
  46. package/dist/claude/session/mailbox.js.map +1 -0
  47. package/dist/claude/session/outputAdapter.d.ts +11 -0
  48. package/dist/claude/session/outputAdapter.js +31 -0
  49. package/dist/claude/session/outputAdapter.js.map +1 -0
  50. package/dist/claude/session/permissionUpdates.d.ts +4 -0
  51. package/dist/claude/session/permissionUpdates.js +17 -0
  52. package/dist/claude/session/permissionUpdates.js.map +1 -0
  53. package/dist/claude/session/providerFacts.d.ts +47 -0
  54. package/dist/claude/session/providerFacts.js +84 -0
  55. package/dist/claude/session/providerFacts.js.map +1 -0
  56. package/dist/claude/session/providerRuntime.d.ts +1 -0
  57. package/dist/claude/session/providerRuntime.js +2 -0
  58. package/dist/claude/session/providerRuntime.js.map +1 -0
  59. package/dist/claude/session/providerRuntimeFactory.d.ts +49 -0
  60. package/dist/claude/session/providerRuntimeFactory.js +122 -0
  61. package/dist/claude/session/providerRuntimeFactory.js.map +1 -0
  62. package/dist/claude/session/repository.d.ts +57 -0
  63. package/dist/claude/session/repository.js +161 -0
  64. package/dist/claude/session/repository.js.map +1 -0
  65. package/dist/claude/session/runtime.d.ts +46 -0
  66. package/dist/claude/session/runtime.js +140 -0
  67. package/dist/claude/session/runtime.js.map +1 -0
  68. package/dist/claude/session/scopeState.d.ts +61 -0
  69. package/dist/claude/session/scopeState.js +74 -0
  70. package/dist/claude/session/scopeState.js.map +1 -0
  71. package/dist/claude/session/session.d.ts +285 -0
  72. package/dist/claude/session/session.js +6778 -0
  73. package/dist/claude/session/session.js.map +1 -0
  74. package/dist/claude/session/shellRunner.d.ts +13 -0
  75. package/dist/claude/session/shellRunner.js +103 -0
  76. package/dist/claude/session/shellRunner.js.map +1 -0
  77. package/dist/claude/session/usage.d.ts +2 -0
  78. package/dist/claude/session/usage.js +10 -0
  79. package/dist/claude/session/usage.js.map +1 -0
  80. package/dist/claude/sessionRegistry.d.ts +26 -0
  81. package/dist/claude/sessionRegistry.js +118 -0
  82. package/dist/claude/sessionRegistry.js.map +1 -0
  83. package/dist/claude/shellSupervisor.d.ts +1 -0
  84. package/dist/claude/shellSupervisor.js +69 -0
  85. package/dist/claude/shellSupervisor.js.map +1 -0
  86. package/dist/claude/statusCommand.d.ts +21 -0
  87. package/dist/claude/statusCommand.js +97 -0
  88. package/dist/claude/statusCommand.js.map +1 -0
  89. package/dist/claude/toolMapper.d.ts +9 -1
  90. package/dist/claude/toolMapper.js +98 -18
  91. package/dist/claude/toolMapper.js.map +1 -1
  92. package/dist/claude/transcriptBrancher.d.ts +37 -0
  93. package/dist/claude/transcriptBrancher.js +103 -0
  94. package/dist/claude/transcriptBrancher.js.map +1 -0
  95. package/dist/cli/delegate.js +23 -1
  96. package/dist/cli/delegate.js.map +1 -1
  97. package/dist/cli/main.js +28 -12
  98. package/dist/cli/main.js.map +1 -1
  99. package/dist/codex/generated/ResponseItemRuntimeSchema.d.ts +8 -0
  100. package/dist/codex/generated/ResponseItemRuntimeSchema.js +7 -0
  101. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -0
  102. package/dist/compatibility/probe.js +11 -6
  103. package/dist/compatibility/probe.js.map +1 -1
  104. package/dist/config/config.d.ts +12 -0
  105. package/dist/config/config.js +103 -11
  106. package/dist/config/config.js.map +1 -1
  107. package/dist/daemon/daemon.js +91 -43
  108. package/dist/daemon/daemon.js.map +1 -1
  109. package/dist/daemon/ownership.d.ts +15 -0
  110. package/dist/daemon/ownership.js +185 -0
  111. package/dist/daemon/ownership.js.map +1 -0
  112. package/dist/daemon/probe.js +1 -1
  113. package/dist/daemon/supervisor.d.ts +3 -0
  114. package/dist/daemon/supervisor.js +37 -1
  115. package/dist/daemon/supervisor.js.map +1 -1
  116. package/dist/gateway/clientConnection.d.ts +7 -1
  117. package/dist/gateway/clientConnection.js +656 -60
  118. package/dist/gateway/clientConnection.js.map +1 -1
  119. package/dist/gateway/logicalThreadProjection.d.ts +8 -0
  120. package/dist/gateway/logicalThreadProjection.js +59 -0
  121. package/dist/gateway/logicalThreadProjection.js.map +1 -0
  122. package/dist/gateway/remoteRelay.js +0 -1
  123. package/dist/gateway/remoteRelay.js.map +1 -1
  124. package/dist/gateway/server.d.ts +1 -1
  125. package/dist/gateway/server.js +69 -11
  126. package/dist/gateway/server.js.map +1 -1
  127. package/dist/gateway/stockRpc.d.ts +5 -2
  128. package/dist/gateway/stockRpc.js +52 -6
  129. package/dist/gateway/stockRpc.js.map +1 -1
  130. package/dist/gateway/subscriptions.d.ts +19 -3
  131. package/dist/gateway/subscriptions.js +152 -13
  132. package/dist/gateway/subscriptions.js.map +1 -1
  133. package/dist/gateway/threadList.d.ts +7 -2
  134. package/dist/gateway/threadList.js +8 -4
  135. package/dist/gateway/threadList.js.map +1 -1
  136. package/dist/gateway/transientNotice.d.ts +15 -0
  137. package/dist/gateway/transientNotice.js +96 -1
  138. package/dist/gateway/transientNotice.js.map +1 -1
  139. package/dist/handoff/providerEpochs.d.ts +18 -0
  140. package/dist/handoff/providerEpochs.js +77 -0
  141. package/dist/handoff/providerEpochs.js.map +1 -0
  142. package/dist/handoff/service.d.ts +86 -6
  143. package/dist/handoff/service.js +1276 -168
  144. package/dist/handoff/service.js.map +1 -1
  145. package/dist/handoff/store.d.ts +189 -2
  146. package/dist/handoff/store.js +618 -7
  147. package/dist/handoff/store.js.map +1 -1
  148. package/dist/handoff/titleGeneration.d.ts +28 -0
  149. package/dist/handoff/titleGeneration.js +138 -0
  150. package/dist/handoff/titleGeneration.js.map +1 -0
  151. package/dist/management/doctor.d.ts +1 -1
  152. package/dist/management/doctor.js +32 -23
  153. package/dist/management/doctor.js.map +1 -1
  154. package/dist/management/lifecycle.js +14 -2
  155. package/dist/management/lifecycle.js.map +1 -1
  156. package/dist/management/remoteShim.d.ts +10 -0
  157. package/dist/management/remoteShim.js +65 -0
  158. package/dist/management/remoteShim.js.map +1 -0
  159. package/dist/management/setup.d.ts +5 -0
  160. package/dist/management/setup.js +120 -39
  161. package/dist/management/setup.js.map +1 -1
  162. package/dist/observability/metrics.d.ts +2 -0
  163. package/dist/observability/metrics.js +6 -0
  164. package/dist/observability/metrics.js.map +1 -1
  165. package/dist/protocol/errors.d.ts +1 -0
  166. package/dist/protocol/errors.js +4 -1
  167. package/dist/protocol/errors.js.map +1 -1
  168. package/dist/runtime/dependencies.js +3 -3
  169. package/dist/runtime/dependencies.js.map +1 -1
  170. package/dist/runtime/providerAvailability.d.ts +24 -0
  171. package/dist/runtime/providerAvailability.js +107 -0
  172. package/dist/runtime/providerAvailability.js.map +1 -0
  173. package/dist/state/stateCommand.d.ts +21 -0
  174. package/dist/state/stateCommand.js +198 -0
  175. package/dist/state/stateCommand.js.map +1 -0
  176. package/dist/state/stockStateTracker.d.ts +16 -0
  177. package/dist/state/stockStateTracker.js +137 -0
  178. package/dist/state/stockStateTracker.js.map +1 -0
  179. package/dist/store/HybridStore.d.ts +118 -2
  180. package/dist/store/HybridStore.js +23 -1
  181. package/dist/store/HybridStore.js.map +1 -1
  182. package/dist/store/memoryStore.d.ts +57 -7
  183. package/dist/store/memoryStore.js +337 -5
  184. package/dist/store/memoryStore.js.map +1 -1
  185. package/dist/store/sqliteStore.d.ts +30 -4
  186. package/dist/store/sqliteStore.js +395 -42
  187. package/dist/store/sqliteStore.js.map +1 -1
  188. package/install.sh +2 -2
  189. package/{LICENSES.md → legal/LICENSES.md} +2 -2
  190. package/{THIRD_PARTY_NOTICES.md → legal/THIRD_PARTY_NOTICES.md} +177 -148
  191. package/package.json +28 -18
  192. package/vendor/codex/continuation.md +51 -0
  193. package/BUILD_BENCHMARKS.md +0 -27
  194. package/RELEASING.md +0 -98
  195. package/SSH_VERIFY.md +0 -69
  196. package/dist/claude/interactions.d.ts +0 -23
  197. package/dist/claude/interactions.js +0 -77
  198. package/dist/claude/interactions.js.map +0 -1
  199. package/dist/claude/sessionRuntime.d.ts +0 -102
  200. package/dist/claude/sessionRuntime.js +0 -1361
  201. package/dist/claude/sessionRuntime.js.map +0 -1
@@ -2,6 +2,7 @@ import { chmodSync, copyFileSync, existsSync, mkdirSync, renameSync, unlinkSync,
2
2
  import { dirname } from "node:path";
3
3
  import { DatabaseSync } from "node:sqlite";
4
4
  import { v7 as uuidv7 } from "uuid";
5
+ import { settingsGeneration, withSettingsFrom } from "./HybridStore.js";
5
6
  import { filterSortThreads } from "./threadFilter.js";
6
7
  function json(value) {
7
8
  return JSON.stringify(value);
@@ -67,6 +68,12 @@ function parseRecord(row, turns) {
67
68
  tokenUsageTotal: runtime.tokenUsageTotal && typeof runtime.tokenUsageTotal === "object"
68
69
  ? runtime.tokenUsageTotal
69
70
  : { totalTokens: 0, inputTokens: 0, cachedInputTokens: 0, outputTokens: 0, reasoningOutputTokens: 0 },
71
+ tokenUsageLast: runtime.tokenUsageLast && typeof runtime.tokenUsageLast === "object"
72
+ ? runtime.tokenUsageLast
73
+ : null,
74
+ modelContextWindow: typeof runtime.modelContextWindow === "number" ? runtime.modelContextWindow : null,
75
+ providerCostUsdTotal: typeof runtime.providerCostUsdTotal === "number" ? runtime.providerCostUsdTotal : 0,
76
+ settingsGeneration: typeof runtime.settingsGeneration === "number" ? runtime.settingsGeneration : 0,
70
77
  };
71
78
  }
72
79
  function parsePending(row) {
@@ -83,6 +90,21 @@ function parsePending(row) {
83
90
  resolvedAt: row.resolved_at,
84
91
  };
85
92
  }
93
+ function parseProviderEvent(row) {
94
+ return {
95
+ sequence: row.sequence,
96
+ threadId: row.thread_id,
97
+ processEpoch: row.process_epoch,
98
+ providerSequence: row.provider_sequence,
99
+ providerEventType: row.provider_event_type,
100
+ providerEventId: row.provider_event_id,
101
+ payload: JSON.parse(row.payload_json),
102
+ disposition: row.disposition,
103
+ error: row.error,
104
+ createdAt: row.created_at,
105
+ projectedAt: row.projected_at,
106
+ };
107
+ }
86
108
  export class SqliteHybridStore {
87
109
  database;
88
110
  path;
@@ -113,6 +135,10 @@ export class SqliteHybridStore {
113
135
  collaborationMode: record.collaborationMode,
114
136
  outputSchema: record.outputSchema,
115
137
  tokenUsageTotal: record.tokenUsageTotal,
138
+ tokenUsageLast: record.tokenUsageLast,
139
+ modelContextWindow: record.modelContextWindow,
140
+ providerCostUsdTotal: record.providerCostUsdTotal ?? 0,
141
+ settingsGeneration: settingsGeneration(record),
116
142
  }));
117
143
  }
118
144
  hasThread(threadId) {
@@ -149,44 +175,85 @@ export class SqliteHybridStore {
149
175
  return filterSortThreads(rows.map((row) => JSON.parse(row.thread_json)), params);
150
176
  }
151
177
  updateThread(record) {
178
+ const current = this.getThreadRecord(record.thread.id, false);
179
+ const merged = current && settingsGeneration(current) > settingsGeneration(record)
180
+ ? withSettingsFrom(record, current)
181
+ : record;
152
182
  this.database.prepare(`
153
183
  UPDATE threads SET
154
184
  claude_session_id = ?, model_picker_id = ?, claude_model_value = ?,
155
- service_tier = ?, cwd = ?, archived = ?, updated_at = ?, thread_json = ?,
185
+ service_tier = ?, cwd = ?, updated_at = ?, thread_json = ?,
156
186
  approval_policy_json = ?, sandbox_policy_json = ?, base_instructions = ?,
157
187
  developer_instructions = ?, personality = ?, resolved_model = ?,
158
188
  last_claude_message_uuid = ?, last_completed_turn_id = ?, claude_code_version = ?,
159
189
  runtime_settings_json = ?
160
190
  WHERE id = ?
161
- `).run(record.claudeSessionId, record.modelPickerId, record.claudeModelValue, record.serviceTier, record.thread.cwd, record.thread.archived ? 1 : 0, record.thread.updatedAt, json({ ...record.thread, turns: [] }), json(record.approvalPolicy), json(record.sandboxPolicy), record.baseInstructions, record.developerInstructions, record.personality, record.resolvedModel, record.lastClaudeMessageUuid, record.lastCompletedTurnId, record.claudeCodeVersion, json({
162
- approvalsReviewer: record.approvalsReviewer,
163
- reasoningEffort: record.reasoningEffort,
164
- reasoningSummary: record.reasoningSummary,
165
- collaborationMode: record.collaborationMode,
166
- outputSchema: record.outputSchema,
167
- tokenUsageTotal: record.tokenUsageTotal,
168
- }), record.thread.id);
191
+ `).run(merged.claudeSessionId, merged.modelPickerId, merged.claudeModelValue, merged.serviceTier, merged.thread.cwd, merged.thread.updatedAt, json({ ...merged.thread, turns: [] }), json(merged.approvalPolicy), json(merged.sandboxPolicy), merged.baseInstructions, merged.developerInstructions, merged.personality, merged.resolvedModel, merged.lastClaudeMessageUuid, merged.lastCompletedTurnId, merged.claudeCodeVersion, json({
192
+ approvalsReviewer: merged.approvalsReviewer,
193
+ reasoningEffort: merged.reasoningEffort,
194
+ reasoningSummary: merged.reasoningSummary,
195
+ collaborationMode: merged.collaborationMode,
196
+ outputSchema: merged.outputSchema,
197
+ tokenUsageTotal: merged.tokenUsageTotal,
198
+ tokenUsageLast: merged.tokenUsageLast,
199
+ modelContextWindow: merged.modelContextWindow,
200
+ providerCostUsdTotal: merged.providerCostUsdTotal ?? 0,
201
+ settingsGeneration: settingsGeneration(merged),
202
+ }), merged.thread.id);
203
+ }
204
+ isThreadArchived(threadId) {
205
+ const row = this.database.prepare("SELECT archived FROM threads WHERE id = ?").get(threadId);
206
+ return row?.archived === 1;
169
207
  }
170
208
  setThreadArchived(threadId, archived) {
171
209
  this.database.prepare("UPDATE threads SET archived = ? WHERE id = ?").run(archived ? 1 : 0, threadId);
172
210
  }
173
- deleteThread(threadId) {
211
+ commitThreadsArchived(threadIds, archived) {
212
+ const method = archived ? "thread/archived" : "thread/unarchived";
174
213
  this.transaction(() => {
175
- this.database.prepare("DELETE FROM goals WHERE thread_id = ?").run(threadId);
176
- this.database.prepare("DELETE FROM pending_requests WHERE thread_id = ?").run(threadId);
177
- this.database.prepare("DELETE FROM events WHERE thread_id = ?").run(threadId);
178
- this.database.prepare("DELETE FROM turns WHERE thread_id = ?").run(threadId);
179
- this.database.prepare("DELETE FROM threads WHERE id = ?").run(threadId);
214
+ for (const threadId of threadIds) {
215
+ this.setThreadArchived(threadId, archived);
216
+ this.insertEvent(threadId, null, method, { threadId });
217
+ }
180
218
  });
181
219
  }
182
- createTurn(threadId, turn) {
220
+ beginThreadRemoval(removal) {
221
+ this.database.prepare(`
222
+ INSERT INTO pending_thread_removals (root_thread_id, claude_session_id, cwd, kind)
223
+ VALUES (?, ?, ?, ?)
224
+ ON CONFLICT(root_thread_id) DO UPDATE SET
225
+ claude_session_id = excluded.claude_session_id,
226
+ cwd = excluded.cwd,
227
+ kind = excluded.kind
228
+ `).run(removal.rootThreadId, removal.claudeSessionId, removal.cwd, removal.kind);
229
+ }
230
+ cancelThreadRemoval(rootThreadId) {
231
+ this.database.prepare("DELETE FROM pending_thread_removals WHERE root_thread_id = ?").run(rootThreadId);
232
+ }
233
+ listPendingThreadRemovals() {
234
+ return this.database.prepare(`
235
+ SELECT root_thread_id, claude_session_id, cwd, kind
236
+ FROM pending_thread_removals ORDER BY root_thread_id
237
+ `).all().map((row) => ({
238
+ rootThreadId: row.root_thread_id,
239
+ claudeSessionId: row.claude_session_id,
240
+ cwd: row.cwd,
241
+ kind: row.kind,
242
+ }));
243
+ }
244
+ commitThreadRemoval(rootThreadId, threadIds) {
183
245
  this.transaction(() => {
184
- const ordinalRow = this.database.prepare("SELECT COALESCE(MAX(ordinal), -1) + 1 AS ordinal FROM turns WHERE thread_id = ?").get(threadId);
185
- this.database.prepare("INSERT INTO turns (id, thread_id, ordinal, status, turn_json) VALUES (?, ?, ?, ?, ?)")
186
- .run(turn.id, threadId, ordinalRow.ordinal, turn.status, json(turn));
187
- this.syncItems(threadId, turn);
246
+ for (const threadId of [...threadIds].reverse())
247
+ this.deleteThreadRows(threadId);
248
+ this.database.prepare("DELETE FROM pending_thread_removals WHERE root_thread_id = ?").run(rootThreadId);
188
249
  });
189
250
  }
251
+ deleteThread(threadId) {
252
+ this.transaction(() => this.deleteThreadRows(threadId));
253
+ }
254
+ createTurn(threadId, turn) {
255
+ this.transaction(() => this.insertTurn(threadId, turn));
256
+ }
190
257
  updateTurn(threadId, turn) {
191
258
  this.transaction(() => this.writeTurn(threadId, turn));
192
259
  }
@@ -212,25 +279,68 @@ export class SqliteHybridStore {
212
279
  truncateTurns(threadId, keepCount) {
213
280
  this.database.prepare("DELETE FROM turns WHERE thread_id = ? AND ordinal >= ?").run(threadId, keepCount);
214
281
  }
215
- appendEvent(threadId, turnId, method, params, persistence) {
282
+ commitForkedThread(record, turns, boundaries) {
283
+ this.transaction(() => {
284
+ this.createThread(record);
285
+ for (const turn of turns)
286
+ this.insertTurn(record.thread.id, turn);
287
+ for (const boundary of boundaries) {
288
+ this.setTurnClaudeMessageUuid(record.thread.id, boundary.turnId, boundary.messageUuid);
289
+ }
290
+ });
291
+ }
292
+ commitThreadRollback(record, keepCount, boundaries, removedThreadIds = []) {
293
+ this.transaction(() => {
294
+ for (const threadId of removedThreadIds)
295
+ this.deleteThreadRows(threadId);
296
+ this.truncateTurns(record.thread.id, keepCount);
297
+ for (const boundary of boundaries) {
298
+ this.setTurnClaudeMessageUuid(record.thread.id, boundary.turnId, boundary.messageUuid);
299
+ }
300
+ this.updateThread(record);
301
+ });
302
+ }
303
+ commitThreadState(commit) {
216
304
  return this.transaction(() => {
217
- if (persistence?.dedupKey) {
218
- const found = this.database.prepare("SELECT 1 FROM events WHERE thread_id = ? AND dedup_key = ?")
219
- .get(threadId, persistence.dedupKey);
220
- if (found)
221
- return 0;
305
+ this.updateThread(commit.record);
306
+ if (commit.turn) {
307
+ if (commit.insertTurn)
308
+ this.insertTurn(commit.record.thread.id, commit.turn);
309
+ else
310
+ this.writeTurn(commit.record.thread.id, commit.turn);
222
311
  }
223
- if (persistence?.turn)
224
- this.writeTurn(threadId, persistence.turn);
225
- const result = this.database.prepare(`
226
- INSERT INTO events (
227
- event_id, thread_id, turn_id, method, params_json, provider_event_type,
228
- provider_event_id, dedup_key, created_at
229
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
230
- `).run(uuidv7(), threadId, turnId, method, json(params), persistence?.providerEventType ?? null, persistence?.providerEventId ?? null, persistence?.dedupKey ?? null, Date.now());
231
- return Number(result.lastInsertRowid);
312
+ if (commit.providerBoundary) {
313
+ const boundary = commit.providerBoundary;
314
+ this.setTurnClaudeMessageUuid(boundary.ownerThreadId, boundary.turnId, boundary.messageUuid);
315
+ this.insertProviderItems(commit.record.thread.id, boundary.messageUuid, boundary.ownerThreadId, boundary.turnId, boundary.itemIds ?? []);
316
+ }
317
+ return commit.events.map((event) => this.insertEvent(commit.record.thread.id, event.turnId, event.method, event.params, event));
232
318
  });
233
319
  }
320
+ appendEvent(threadId, turnId, method, params, persistence) {
321
+ return this.transaction(() => this.insertEvent(threadId, turnId, method, params, persistence));
322
+ }
323
+ eventHighWatermark(threadId) {
324
+ const row = this.database.prepare("SELECT COALESCE(MAX(sequence), 0) AS sequence FROM events WHERE thread_id = ?")
325
+ .get(threadId);
326
+ return row.sequence;
327
+ }
328
+ listEventsAfter(threadId, sequence) {
329
+ const rows = this.database.prepare(`
330
+ SELECT sequence, thread_id, turn_id, method, params_json, created_at
331
+ FROM events
332
+ WHERE thread_id = ? AND sequence > ? AND method NOT LIKE 'hybrid/%'
333
+ ORDER BY sequence ASC
334
+ `).all(threadId, sequence);
335
+ return rows.map((row) => ({
336
+ sequence: row.sequence,
337
+ threadId: row.thread_id,
338
+ turnId: row.turn_id,
339
+ method: row.method,
340
+ params: JSON.parse(row.params_json),
341
+ createdAt: row.created_at,
342
+ }));
343
+ }
234
344
  hasProcessedProviderEvent(threadId, providerEventId) {
235
345
  return this.database.prepare(`
236
346
  SELECT 1 FROM events
@@ -242,6 +352,111 @@ export class SqliteHybridStore {
242
352
  providerEventType, providerEventId, dedupKey: `provider:${providerEventId}`,
243
353
  });
244
354
  }
355
+ appendProviderEvent(event) {
356
+ return this.transaction(() => {
357
+ const existing = event.providerEventId === null ? undefined : this.database.prepare(`
358
+ SELECT * FROM provider_events WHERE thread_id = ? AND provider_event_id = ?
359
+ `).get(event.threadId, event.providerEventId);
360
+ if (existing)
361
+ return { record: parseProviderEvent(existing), inserted: false };
362
+ const result = this.database.prepare(`
363
+ INSERT INTO provider_events (
364
+ thread_id, process_epoch, provider_sequence, provider_event_type,
365
+ provider_event_id, payload_json, disposition, error, created_at, projected_at
366
+ ) VALUES (?, ?, ?, ?, ?, ?, 'pending', NULL, ?, NULL)
367
+ `).run(event.threadId, event.processEpoch, event.providerSequence, event.providerEventType, event.providerEventId, json(event.payload), event.createdAt);
368
+ const row = this.database.prepare("SELECT * FROM provider_events WHERE sequence = ?")
369
+ .get(Number(result.lastInsertRowid));
370
+ return { record: parseProviderEvent(row), inserted: true };
371
+ });
372
+ }
373
+ completeProviderEvent(threadId, sequence, disposition, error = null) {
374
+ this.database.prepare(`
375
+ UPDATE provider_events SET disposition = ?, error = ?, projected_at = ? WHERE thread_id = ? AND sequence = ?
376
+ `).run(disposition, error, Date.now(), threadId, sequence);
377
+ }
378
+ listProviderEvents(threadId, disposition) {
379
+ const rows = (disposition
380
+ ? this.database.prepare("SELECT * FROM provider_events WHERE thread_id = ? AND disposition = ? ORDER BY sequence")
381
+ .all(threadId, disposition)
382
+ : this.database.prepare("SELECT * FROM provider_events WHERE thread_id = ? ORDER BY sequence").all(threadId));
383
+ return rows.map(parseProviderEvent);
384
+ }
385
+ pruneProviderEvents(threadId, maxEvents, maxBytes) {
386
+ if (maxEvents < 1)
387
+ throw new Error("Provider event retention must keep at least one event.");
388
+ const result = this.database.prepare(`
389
+ DELETE FROM provider_events
390
+ WHERE thread_id = ?
391
+ AND disposition IN ('projected', 'stateOnly', 'retainedOnly', 'unsupportedVisible')
392
+ AND sequence IN (
393
+ SELECT sequence FROM (
394
+ SELECT sequence,
395
+ ROW_NUMBER() OVER (ORDER BY sequence DESC) AS ordinal,
396
+ SUM(LENGTH(CAST(payload_json AS BLOB))) OVER (ORDER BY sequence DESC) AS retained_bytes
397
+ FROM provider_events
398
+ WHERE thread_id = ?
399
+ AND disposition IN ('projected', 'stateOnly', 'retainedOnly', 'unsupportedVisible')
400
+ )
401
+ WHERE ordinal > ? OR (ordinal > 1 AND retained_bytes > ?)
402
+ )
403
+ `).run(threadId, threadId, maxEvents, maxBytes);
404
+ return Number(result.changes);
405
+ }
406
+ linkProviderItems(threadId, providerMessageId, ownerThreadId, turnId, itemIds) {
407
+ this.transaction(() => this.insertProviderItems(threadId, providerMessageId, ownerThreadId, turnId, itemIds));
408
+ }
409
+ insertProviderItems(threadId, providerMessageId, ownerThreadId, turnId, itemIds) {
410
+ const insert = this.database.prepare(`
411
+ INSERT OR IGNORE INTO provider_item_correlations (
412
+ thread_id, provider_message_id, owner_thread_id, turn_id, item_id
413
+ ) VALUES (?, ?, ?, ?, ?)
414
+ `);
415
+ for (const itemId of itemIds)
416
+ insert.run(threadId, providerMessageId, ownerThreadId, turnId, itemId);
417
+ }
418
+ listProviderItemCorrelations(threadId, providerMessageIds) {
419
+ if (providerMessageIds.length === 0)
420
+ return [];
421
+ const placeholders = providerMessageIds.map(() => "?").join(", ");
422
+ const rows = this.database.prepare(`
423
+ SELECT provider_message_id, owner_thread_id, turn_id, item_id
424
+ FROM provider_item_correlations
425
+ WHERE thread_id = ? AND provider_message_id IN (${placeholders})
426
+ `).all(threadId, ...providerMessageIds);
427
+ return rows.map((row) => ({
428
+ providerMessageId: row.provider_message_id,
429
+ ownerThreadId: row.owner_thread_id,
430
+ turnId: row.turn_id,
431
+ itemId: row.item_id,
432
+ }));
433
+ }
434
+ deleteProviderItemCorrelations(threadId, providerMessageIds) {
435
+ if (providerMessageIds.length === 0)
436
+ return;
437
+ const placeholders = providerMessageIds.map(() => "?").join(", ");
438
+ this.database.prepare(`
439
+ DELETE FROM provider_item_correlations
440
+ WHERE thread_id = ? AND provider_message_id IN (${placeholders})
441
+ `).run(threadId, ...providerMessageIds);
442
+ }
443
+ commitProviderRetraction(record, providerMessageIds, mutations, removedThreadIds = []) {
444
+ this.transaction(() => {
445
+ for (const threadId of removedThreadIds)
446
+ this.deleteThreadRows(threadId);
447
+ for (const mutation of mutations) {
448
+ this.writeTurn(mutation.ownerThreadId, mutation.turn);
449
+ if (mutation.clearBoundary) {
450
+ this.database.prepare(`
451
+ UPDATE turns SET last_claude_message_uuid = NULL
452
+ WHERE id = ? AND thread_id = ?
453
+ `).run(mutation.turn.id, mutation.ownerThreadId);
454
+ }
455
+ }
456
+ this.deleteProviderItemCorrelations(record.thread.id, providerMessageIds);
457
+ this.updateThread(record);
458
+ });
459
+ }
245
460
  createPendingRequest(request) {
246
461
  this.database.prepare(`
247
462
  INSERT INTO pending_requests (
@@ -273,17 +488,72 @@ export class SqliteHybridStore {
273
488
  }
274
489
  getGoal(threadId) {
275
490
  const row = this.database.prepare("SELECT goal_json FROM goals WHERE thread_id = ?").get(threadId);
276
- return row ? JSON.parse(row.goal_json) : undefined;
277
- }
278
- setGoal(goal) {
279
- this.database.prepare(`
280
- INSERT INTO goals (thread_id, goal_json) VALUES (?, ?)
281
- ON CONFLICT(thread_id) DO UPDATE SET goal_json = excluded.goal_json
282
- `).run(goal.threadId, json(goal));
491
+ if (!row)
492
+ return undefined;
493
+ const stored = JSON.parse(row.goal_json);
494
+ if (stored.goalId)
495
+ return stored;
496
+ const migrated = { ...stored, goalId: uuidv7() };
497
+ this.database.prepare("UPDATE goals SET goal_json = ? WHERE thread_id = ?").run(json(migrated), threadId);
498
+ return migrated;
499
+ }
500
+ setGoal(threadId, patch) {
501
+ return this.transaction(() => {
502
+ const previous = this.getGoal(threadId);
503
+ const now = patch.now ?? Math.floor(Date.now() / 1_000);
504
+ const replace = patch.replace === true || !previous;
505
+ if (replace && patch.objective === undefined)
506
+ throw new Error(`cannot create goal for thread ${threadId} without an objective`);
507
+ const goal = {
508
+ threadId,
509
+ goalId: replace ? uuidv7() : previous.goalId,
510
+ objective: patch.objective ?? previous?.objective ?? "",
511
+ status: patch.status ?? (replace ? "active" : previous.status),
512
+ tokenBudget: patch.tokenBudget === undefined ? (replace ? null : previous.tokenBudget) : patch.tokenBudget,
513
+ tokensUsed: replace ? 0 : previous.tokensUsed,
514
+ timeUsedSeconds: replace ? 0 : previous.timeUsedSeconds,
515
+ createdAt: replace ? now : previous.createdAt,
516
+ updatedAt: now,
517
+ };
518
+ if (goal.status === "active" && goal.tokenBudget !== null && goal.tokensUsed >= goal.tokenBudget)
519
+ goal.status = "budgetLimited";
520
+ this.database.prepare(`
521
+ INSERT INTO goals (thread_id, goal_json) VALUES (?, ?)
522
+ ON CONFLICT(thread_id) DO UPDATE SET goal_json = excluded.goal_json
523
+ `).run(threadId, json(goal));
524
+ return goal;
525
+ });
283
526
  }
284
527
  clearGoal(threadId) {
285
528
  return Number(this.database.prepare("DELETE FROM goals WHERE thread_id = ?").run(threadId).changes) > 0;
286
529
  }
530
+ accountGoalUsage(input) {
531
+ return this.transaction(() => {
532
+ if (input.checkpointKey) {
533
+ const inserted = this.database.prepare(`
534
+ INSERT OR IGNORE INTO goal_checkpoints (thread_id, goal_id, checkpoint_key)
535
+ VALUES (?, ?, ?)
536
+ `).run(input.threadId, input.expectedGoalId, input.checkpointKey);
537
+ if (Number(inserted.changes) === 0)
538
+ return this.getGoal(input.threadId);
539
+ }
540
+ const previous = this.getGoal(input.threadId);
541
+ if (!previous || previous.goalId !== input.expectedGoalId)
542
+ return previous;
543
+ if (previous.status !== "active" && previous.status !== "budgetLimited")
544
+ return previous;
545
+ const goal = {
546
+ ...previous,
547
+ tokensUsed: previous.tokensUsed + Math.max(0, input.tokenDelta),
548
+ timeUsedSeconds: previous.timeUsedSeconds + Math.max(0, input.timeDeltaSeconds),
549
+ updatedAt: Math.floor(Date.now() / 1_000),
550
+ };
551
+ if (goal.status === "active" && goal.tokenBudget !== null && goal.tokensUsed >= goal.tokenBudget)
552
+ goal.status = "budgetLimited";
553
+ this.database.prepare("UPDATE goals SET goal_json = ? WHERE thread_id = ?").run(json(goal), input.threadId);
554
+ return goal;
555
+ });
556
+ }
287
557
  close() {
288
558
  try {
289
559
  this.backup();
@@ -304,11 +574,43 @@ export class SqliteHybridStore {
304
574
  throw error;
305
575
  }
306
576
  }
577
+ insertEvent(threadId, turnId, method, params, persistence) {
578
+ if (persistence?.dedupKey) {
579
+ const found = this.database.prepare("SELECT 1 FROM events WHERE thread_id = ? AND dedup_key = ?")
580
+ .get(threadId, persistence.dedupKey);
581
+ if (found)
582
+ return 0;
583
+ }
584
+ if (persistence?.turn)
585
+ this.writeTurn(threadId, persistence.turn);
586
+ const result = this.database.prepare(`
587
+ INSERT INTO events (
588
+ event_id, thread_id, turn_id, method, params_json, provider_event_type,
589
+ provider_event_id, dedup_key, created_at
590
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
591
+ `).run(uuidv7(), threadId, turnId, method, json(params), persistence?.providerEventType ?? null, persistence?.providerEventId ?? null, persistence?.dedupKey ?? null, Date.now());
592
+ return Number(result.lastInsertRowid);
593
+ }
594
+ deleteThreadRows(threadId) {
595
+ this.database.prepare("DELETE FROM provider_item_correlations WHERE owner_thread_id = ?").run(threadId);
596
+ this.database.prepare("DELETE FROM goals WHERE thread_id = ?").run(threadId);
597
+ this.database.prepare("DELETE FROM pending_requests WHERE thread_id = ?").run(threadId);
598
+ this.database.prepare("DELETE FROM events WHERE thread_id = ?").run(threadId);
599
+ this.database.prepare("DELETE FROM turns WHERE thread_id = ?").run(threadId);
600
+ this.database.prepare("DELETE FROM threads WHERE id = ?").run(threadId);
601
+ }
307
602
  writeTurn(threadId, turn) {
308
603
  this.database.prepare("UPDATE turns SET status = ?, turn_json = ? WHERE id = ? AND thread_id = ?")
309
604
  .run(turn.status, json(turn), turn.id, threadId);
310
605
  this.syncItems(threadId, turn);
311
606
  }
607
+ insertTurn(threadId, turn) {
608
+ const ordinalRow = this.database.prepare("SELECT COALESCE(MAX(ordinal), -1) + 1 AS ordinal FROM turns WHERE thread_id = ?")
609
+ .get(threadId);
610
+ this.database.prepare("INSERT INTO turns (id, thread_id, ordinal, status, turn_json) VALUES (?, ?, ?, ?, ?)")
611
+ .run(turn.id, threadId, ordinalRow.ordinal, turn.status, json(turn));
612
+ this.syncItems(threadId, turn);
613
+ }
312
614
  syncItems(threadId, turn) {
313
615
  this.database.prepare("DELETE FROM items WHERE turn_id = ? AND thread_id = ?").run(turn.id, threadId);
314
616
  const insert = this.database.prepare(`
@@ -356,6 +658,7 @@ export class SqliteHybridStore {
356
658
  ,last_completed_turn_id TEXT
357
659
  ,claude_code_version TEXT
358
660
  ,runtime_settings_json TEXT
661
+ ,deletion_pending INTEGER NOT NULL DEFAULT 0
359
662
  );
360
663
  CREATE TABLE IF NOT EXISTS turns (
361
664
  id TEXT PRIMARY KEY,
@@ -409,6 +712,44 @@ export class SqliteHybridStore {
409
712
  thread_id TEXT PRIMARY KEY,
410
713
  goal_json TEXT NOT NULL
411
714
  );
715
+ CREATE TABLE IF NOT EXISTS goal_checkpoints (
716
+ thread_id TEXT NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
717
+ goal_id TEXT NOT NULL,
718
+ checkpoint_key TEXT NOT NULL,
719
+ PRIMARY KEY(thread_id, goal_id, checkpoint_key)
720
+ );
721
+ CREATE TABLE IF NOT EXISTS provider_events (
722
+ sequence INTEGER PRIMARY KEY AUTOINCREMENT,
723
+ thread_id TEXT NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
724
+ process_epoch TEXT NOT NULL,
725
+ provider_sequence INTEGER NOT NULL,
726
+ provider_event_type TEXT NOT NULL,
727
+ provider_event_id TEXT,
728
+ payload_json TEXT NOT NULL,
729
+ disposition TEXT NOT NULL,
730
+ error TEXT,
731
+ created_at INTEGER NOT NULL,
732
+ projected_at INTEGER,
733
+ UNIQUE(thread_id, process_epoch, provider_sequence)
734
+ );
735
+ CREATE UNIQUE INDEX IF NOT EXISTS provider_events_thread_event_id
736
+ ON provider_events(thread_id, provider_event_id) WHERE provider_event_id IS NOT NULL;
737
+ CREATE TABLE IF NOT EXISTS provider_item_correlations (
738
+ thread_id TEXT NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
739
+ provider_message_id TEXT NOT NULL,
740
+ owner_thread_id TEXT NOT NULL,
741
+ turn_id TEXT NOT NULL,
742
+ item_id TEXT NOT NULL,
743
+ PRIMARY KEY(thread_id, provider_message_id, item_id)
744
+ );
745
+ CREATE INDEX IF NOT EXISTS provider_item_correlations_owner
746
+ ON provider_item_correlations(owner_thread_id, turn_id);
747
+ CREATE TABLE IF NOT EXISTS pending_thread_removals (
748
+ root_thread_id TEXT PRIMARY KEY,
749
+ claude_session_id TEXT NOT NULL,
750
+ cwd TEXT NOT NULL,
751
+ kind TEXT NOT NULL
752
+ );
412
753
  INSERT OR IGNORE INTO schema_migrations(version) VALUES (1);
413
754
  `);
414
755
  this.ensureColumn("threads", "resolved_model", "TEXT");
@@ -416,6 +757,15 @@ export class SqliteHybridStore {
416
757
  this.ensureColumn("threads", "last_completed_turn_id", "TEXT");
417
758
  this.ensureColumn("threads", "claude_code_version", "TEXT");
418
759
  this.ensureColumn("threads", "runtime_settings_json", "TEXT");
760
+ this.ensureColumn("threads", "deletion_pending", "INTEGER NOT NULL DEFAULT 0");
761
+ const threadColumns = new Set(this.database.prepare("PRAGMA table_info(threads)").all()
762
+ .map((column) => column.name));
763
+ if (threadColumns.has("claude_session_id") && threadColumns.has("cwd")) {
764
+ this.database.exec(`
765
+ INSERT OR IGNORE INTO pending_thread_removals (root_thread_id, claude_session_id, cwd, kind)
766
+ SELECT id, claude_session_id, cwd, 'delete' FROM threads WHERE deletion_pending = 1
767
+ `);
768
+ }
419
769
  this.ensureColumn("turns", "last_claude_message_uuid", "TEXT");
420
770
  this.ensureColumn("events", "event_id", "TEXT");
421
771
  this.ensureColumn("events", "provider_event_type", "TEXT");
@@ -429,6 +779,9 @@ export class SqliteHybridStore {
429
779
  const threadScopedIds = this.database.prepare("SELECT 1 FROM schema_migrations WHERE version = 3").get();
430
780
  if (!threadScopedIds)
431
781
  this.migrateThreadScopedIds();
782
+ this.database.exec("INSERT OR IGNORE INTO schema_migrations(version) VALUES (4)");
783
+ this.database.exec("INSERT OR IGNORE INTO schema_migrations(version) VALUES (5)");
784
+ this.database.exec("INSERT OR IGNORE INTO schema_migrations(version) VALUES (6)");
432
785
  });
433
786
  }
434
787
  migrateThreadScopedIds() {
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteStore.js","sourceRoot":"","sources":["../../src/store/sqliteStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,GACvE,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAOpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAsCtD,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAoC,CAAC;QAC5F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjH,MAAM,MAAM,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxC,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;YAC7D,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,UAAU,CAAC,SAAS,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAc,EAAE,KAAa;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC;IACrD,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;IAClH,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE;QAC5B,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAY;QAC/D,iBAAiB,EAAG,CAAC,MAAM,EAAE,aAAa,EAAE,mBAAmB,CAAW,CAAC,QAAQ,CACjF,OAAO,CAAC,iBAAsC,CAC/C,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAsC,CAAC,CAAC,CAAC,MAAM;QAC3D,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAY;QAC7D,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,qBAAqB,EAAE,GAAG,CAAC,sBAAsB;QACjD,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,qBAAqB,EAAE,GAAG,CAAC,wBAAwB;QACnD,mBAAmB,EAAE,GAAG,CAAC,sBAAsB;QAC/C,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;QAC1C,eAAe,EAAE,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;QAC7F,gBAAgB,EAAE,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;QAChG,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;QACpD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;QAC1C,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;YACrF,CAAC,CAAC,OAAO,CAAC,eAAwD;YAClE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE;KACxG,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAsB;IAC1C,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAY;QAC9C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAY;QACtF,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IACX,QAAQ,CAAe;IACvB,IAAI,CAAS;IAE9B,YAAmB,IAAY;QAC7B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAC;QAC1H,IAAI,OAAO;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAEM,YAAY,CAAC,MAA0B;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;;;;KAQrB,CAAC,CAAC,GAAG,CACJ,MAAM,CAAC,MAAM,CAAC,EAAE,EAChB,MAAM,CAAC,MAAM,CAAC,SAAS,EACvB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EACjB,CAAC,EACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,EACvB,MAAM,CAAC,MAAM,CAAC,SAAS,EACvB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACrC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAC1B,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,iBAAiB,EACxB,IAAI,CAAC;YACH,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;IAC1G,CAAC;IAEM,eAAe,CAAC,QAAgB,EAAE,YAAY,GAAG,KAAK;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;;KAMjC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAqC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,OAAO,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAEM,gBAAgB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;;KAMlC,CAAC,CAAC,GAAG,EAA4B,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC;YACrD,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,MAAwB;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAA8C,CAAC;QACpJ,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7F,CAAC;IAEM,YAAY,CAAC,MAA0B;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;KASrB,CAAC,CAAC,GAAG,CACJ,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAChB,MAAM,CAAC,MAA0C,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,MAAM,CAAC,MAAM,CAAC,SAAS,EACvB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACrC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAC1B,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,iBAAiB,EACxB,IAAI,CAAC;YACH,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC,EACF,MAAM,CAAC,MAAM,CAAC,EAAE,CACjB,CAAC;IACJ,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,QAAiB;QAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxG,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,QAAgB,EAAE,IAAU;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iFAAiF,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAmC,CAAC;YAC5K,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,sFAAsF,CAAC;iBAC1G,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,QAAgB,EAAE,IAAU;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,OAAO,CAAC,QAAgB,EAAE,MAAc;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,4DAA4D,CAAC;aAC5F,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAmC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,sEAAsE,CAAC;aACvG,GAAG,CAAC,QAAQ,CAAyB,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAS,CAAC,CAAC;IAC9D,CAAC;IAEM,wBAAwB,CAAC,QAAgB,EAAE,MAAc,EAAE,WAAmB;QACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,8EAA8E,CAAC;aAClG,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEM,wBAAwB,CAAC,QAAgB,EAAE,MAAc;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,2EAA2E,CAAC;aAC3G,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAuE,CAAC;QAC/F,OAAO,GAAG,EAAE,wBAAwB,IAAI,SAAS,CAAC;IACpD,CAAC;IAEM,aAAa,CAAC,QAAgB,EAAE,SAAiB;QACtD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3G,CAAC;IAEM,WAAW,CAChB,QAAgB,EAChB,MAAqB,EACrB,MAAc,EACd,MAAe,EACf,WAA8B;QAE9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,IAAI,WAAW,EAAE,QAAQ,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,4DAA4D,CAAC;qBAC9F,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,KAAK;oBAAE,OAAO,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,WAAW,EAAE,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;OAKpC,CAAC,CAAC,GAAG,CACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,IAAI,IAAI,EACxF,WAAW,EAAE,eAAe,IAAI,IAAI,EAAE,WAAW,EAAE,QAAQ,IAAI,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAChF,CAAC;YACF,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,yBAAyB,CAAC,QAAgB,EAAE,eAAuB;QACxE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,SAAS,CAAC;IAClD,CAAC;IAEM,0BAA0B,CAAC,QAAgB,EAAE,iBAAyB,EAAE,eAAuB;QACpG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,EAAE,EAAE;YACvE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,eAAe,EAAE;SAC5E,CAAC,CAAC;IACL,CAAC;IAEM,oBAAoB,CAAC,OAA6B;QACvD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;KAKrB,CAAC,CAAC,GAAG,CACJ,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAC5E,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,EACpD,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CACjG,CAAC;IACJ,CAAC;IAEM,iBAAiB,CAAC,SAAiB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,SAAS,CAA6C,CAAC;QACpJ,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,CAAC;IAEM,4BAA4B,CAAC,QAAgB,EAAE,eAAuB;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;KAIjC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAA6C,CAAC;QAC9E,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,CAAC;IAEM,mBAAmB,CAAC,QAAgB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mGAAmG,CAAC;aACpI,GAAG,CAAC,QAAQ,CAAmC,CAAC;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAEM,qBAAqB,CAAC,SAAiB,EAAE,MAAgC,EAAE,QAAiB;QACjG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,wHAAwH,CAAC;aAC5I,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAEM,OAAO,CAAC,QAAgB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAiD,CAAC;QACnJ,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAEM,OAAO,CAAC,IAAgB;QAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;KAGrB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1G,CAAC;IAEM,KAAK;QACV,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,WAAW,CAAI,MAAe;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,QAAgB,EAAE,IAAU;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,2EAA2E,CAAC;aAC/F,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,SAAS,CAAC,QAAgB,EAAE,IAAU;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;;KAKpC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAC9C,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAC9C,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACxE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CACvC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM;QACZ,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC;QAClC,IAAI,UAAU,CAAC,MAAM,CAAC;YAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiFpB,CAAC,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;OAIlB,CAAC,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,EAAE,CAAC;YACzG,IAAI,CAAC,eAAe;gBAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2ClB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClG,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,IAAY;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC,GAAG,EAA6B,CAAC;QACtG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,KAAK,eAAe,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"sqliteStore.js","sourceRoot":"","sources":["../../src/store/sqliteStore.ts"],"names":[],"mappings":"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"}