@gkorepanov/ccodex 0.4.9 → 0.4.10

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 (211) hide show
  1. package/README.md +1 -1
  2. package/config/compatibility.json +3 -3
  3. package/dist/claude/goalTools.js +1 -1
  4. package/dist/claude/goalTools.js.map +1 -1
  5. package/dist/claude/hookMapper.d.ts +1 -0
  6. package/dist/claude/hookMapper.js +1 -0
  7. package/dist/claude/hookMapper.js.map +1 -1
  8. package/dist/claude/inputMapper.js +4 -1
  9. package/dist/claude/inputMapper.js.map +1 -1
  10. package/dist/claude/rateLimits.d.ts +1 -0
  11. package/dist/claude/rateLimits.js +2 -1
  12. package/dist/claude/rateLimits.js.map +1 -1
  13. package/dist/claude/service.d.ts +13 -1
  14. package/dist/claude/service.js +152 -19
  15. package/dist/claude/service.js.map +1 -1
  16. package/dist/claude/session/commands.d.ts +3 -0
  17. package/dist/claude/session/goalState.js +9 -0
  18. package/dist/claude/session/goalState.js.map +1 -1
  19. package/dist/claude/session/repository.d.ts +1 -1
  20. package/dist/claude/session/repository.js +2 -2
  21. package/dist/claude/session/repository.js.map +1 -1
  22. package/dist/claude/session/scopeState.js +3 -1
  23. package/dist/claude/session/scopeState.js.map +1 -1
  24. package/dist/claude/session/session.js +13 -2
  25. package/dist/claude/session/session.js.map +1 -1
  26. package/dist/claude/session/usage.js +1 -0
  27. package/dist/claude/session/usage.js.map +1 -1
  28. package/dist/claude/toolMapper.js +2 -2
  29. package/dist/claude/toolMapper.js.map +1 -1
  30. package/dist/codex/generated/ClientRequest.d.ts +20 -0
  31. package/dist/codex/generated/CodexResponseHandoffMode.d.ts +1 -0
  32. package/dist/codex/generated/CodexResponseHandoffMode.js +3 -0
  33. package/dist/codex/generated/CodexResponseHandoffMode.js.map +1 -0
  34. package/dist/codex/generated/ContentItem.d.ts +3 -0
  35. package/dist/codex/generated/FunctionCallOutputContentItem.d.ts +3 -0
  36. package/dist/codex/generated/InputModality.d.ts +1 -1
  37. package/dist/codex/generated/LegacyAppPathString.d.ts +7 -6
  38. package/dist/codex/generated/RealtimeConversationVersion.d.ts +1 -1
  39. package/dist/codex/generated/ResponseItem.d.ts +15 -14
  40. package/dist/codex/generated/ResponseItemId.d.ts +5 -0
  41. package/dist/codex/generated/ResponseItemId.js +3 -0
  42. package/dist/codex/generated/ResponseItemId.js.map +1 -0
  43. package/dist/codex/generated/ResponseItemRuntimeSchema.js +2 -2
  44. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -1
  45. package/dist/codex/generated/ReviewDecision.d.ts +5 -1
  46. package/dist/codex/generated/ServerNotification.d.ts +11 -0
  47. package/dist/codex/generated/ServerNotificationEnvelope.d.ts +302 -0
  48. package/dist/codex/generated/ServerNotificationEnvelope.js +3 -0
  49. package/dist/codex/generated/ServerNotificationEnvelope.js.map +1 -0
  50. package/dist/codex/generated/SleepItem.d.ts +7 -0
  51. package/dist/codex/generated/SleepItem.js +3 -0
  52. package/dist/codex/generated/SleepItem.js.map +1 -0
  53. package/dist/codex/generated/WebSearchItem.d.ts +8 -0
  54. package/dist/codex/generated/index.d.ts +4 -1
  55. package/dist/codex/generated/index.js.map +1 -1
  56. package/dist/codex/generated/v2/Account.d.ts +1 -2
  57. package/dist/codex/generated/v2/AppToolSummary.d.ts +8 -0
  58. package/dist/codex/generated/v2/AppToolSummary.js +3 -0
  59. package/dist/codex/generated/v2/AppToolSummary.js.map +1 -0
  60. package/dist/codex/generated/v2/AppsInstalledParams.d.ts +14 -0
  61. package/dist/codex/generated/v2/AppsInstalledParams.js +3 -0
  62. package/dist/codex/generated/v2/AppsInstalledParams.js.map +1 -0
  63. package/dist/codex/generated/v2/AppsInstalledResponse.d.ts +7 -0
  64. package/dist/codex/generated/v2/AppsInstalledResponse.js +3 -0
  65. package/dist/codex/generated/v2/AppsInstalledResponse.js.map +1 -0
  66. package/dist/codex/generated/v2/AppsReadParams.d.ts +14 -0
  67. package/dist/codex/generated/v2/AppsReadParams.js +3 -0
  68. package/dist/codex/generated/v2/AppsReadParams.js.map +1 -0
  69. package/dist/codex/generated/v2/AppsReadResponse.d.ts +8 -0
  70. package/dist/codex/generated/v2/AppsReadResponse.js +3 -0
  71. package/dist/codex/generated/v2/AppsReadResponse.js.map +1 -0
  72. package/dist/codex/generated/v2/ConfiguredHookHandler.d.ts +7 -0
  73. package/dist/codex/generated/v2/ConnectorMetadata.d.ts +15 -0
  74. package/dist/codex/generated/v2/ConnectorMetadata.js +3 -0
  75. package/dist/codex/generated/v2/ConnectorMetadata.js.map +1 -0
  76. package/dist/codex/generated/v2/DynamicToolCallOutputContentItem.d.ts +3 -0
  77. package/dist/codex/generated/v2/EnvironmentConnectionNotification.d.ts +4 -0
  78. package/dist/codex/generated/v2/EnvironmentConnectionNotification.js +3 -0
  79. package/dist/codex/generated/v2/EnvironmentConnectionNotification.js.map +1 -0
  80. package/dist/codex/generated/v2/EnvironmentStatusKind.d.ts +7 -0
  81. package/dist/codex/generated/v2/EnvironmentStatusKind.js +3 -0
  82. package/dist/codex/generated/v2/EnvironmentStatusKind.js.map +1 -0
  83. package/dist/codex/generated/v2/EnvironmentStatusParams.d.ts +9 -0
  84. package/dist/codex/generated/v2/EnvironmentStatusParams.js +3 -0
  85. package/dist/codex/generated/v2/EnvironmentStatusParams.js.map +1 -0
  86. package/dist/codex/generated/v2/EnvironmentStatusResponse.d.ts +14 -0
  87. package/dist/codex/generated/v2/EnvironmentStatusResponse.js +3 -0
  88. package/dist/codex/generated/v2/EnvironmentStatusResponse.js.map +1 -0
  89. package/dist/codex/generated/v2/ExternalAgentConfigDetectParams.d.ts +9 -0
  90. package/dist/codex/generated/v2/ExternalAgentConfigImportHistoriesReadResponse.d.ts +2 -0
  91. package/dist/codex/generated/v2/ExternalAgentConfigImportItemTypeFailure.d.ts +1 -0
  92. package/dist/codex/generated/v2/ExternalAgentConfigImportParams.d.ts +6 -1
  93. package/dist/codex/generated/v2/ExternalAgentConfigMigrationItemType.d.ts +1 -1
  94. package/dist/codex/generated/v2/ExternalAgentImportedConnectorCandidate.d.ts +6 -0
  95. package/dist/codex/generated/v2/ExternalAgentImportedConnectorCandidate.js +3 -0
  96. package/dist/codex/generated/v2/ExternalAgentImportedConnectorCandidate.js.map +1 -0
  97. package/dist/codex/generated/v2/ExternalAgentImportedConnectorSource.d.ts +1 -0
  98. package/dist/codex/generated/v2/ExternalAgentImportedConnectorSource.js +3 -0
  99. package/dist/codex/generated/v2/ExternalAgentImportedConnectorSource.js.map +1 -0
  100. package/dist/codex/generated/v2/FileSystemSpecialPath.d.ts +3 -2
  101. package/dist/codex/generated/v2/HookEventName.d.ts +1 -1
  102. package/dist/codex/generated/v2/HookMetadata.d.ts +5 -0
  103. package/dist/codex/generated/v2/InstalledApp.d.ts +21 -0
  104. package/dist/codex/generated/v2/InstalledApp.js +3 -0
  105. package/dist/codex/generated/v2/InstalledApp.js.map +1 -0
  106. package/dist/codex/generated/v2/LoginAccountParams.d.ts +4 -0
  107. package/dist/codex/generated/v2/LoginAccountResponse.d.ts +2 -0
  108. package/dist/codex/generated/v2/ManagedHooksRequirements.d.ts +1 -0
  109. package/dist/codex/generated/v2/McpToolCallAppContext.d.ts +0 -1
  110. package/dist/codex/generated/v2/MigrationDetails.d.ts +1 -0
  111. package/dist/codex/generated/v2/PluginDetail.d.ts +2 -0
  112. package/dist/codex/generated/v2/PluginShareUpdateDiscoverability.d.ts +1 -1
  113. package/dist/codex/generated/v2/PluginSummary.d.ts +1 -0
  114. package/dist/codex/generated/v2/RateLimitSnapshot.d.ts +4 -0
  115. package/dist/codex/generated/v2/RawResponseCompletedNotification.d.ts +11 -0
  116. package/dist/codex/generated/v2/RawResponseCompletedNotification.js +3 -0
  117. package/dist/codex/generated/v2/RawResponseCompletedNotification.js.map +1 -0
  118. package/dist/codex/generated/v2/ScheduledTaskSchedule.d.ts +16 -0
  119. package/dist/codex/generated/v2/ScheduledTaskSchedule.js +3 -0
  120. package/dist/codex/generated/v2/ScheduledTaskSchedule.js.map +1 -0
  121. package/dist/codex/generated/v2/ScheduledTaskSummary.d.ts +7 -0
  122. package/dist/codex/generated/v2/ScheduledTaskSummary.js +3 -0
  123. package/dist/codex/generated/v2/ScheduledTaskSummary.js.map +1 -0
  124. package/dist/codex/generated/v2/ScheduledTaskWeekday.d.ts +1 -0
  125. package/dist/codex/generated/v2/ScheduledTaskWeekday.js +3 -0
  126. package/dist/codex/generated/v2/ScheduledTaskWeekday.js.map +1 -0
  127. package/dist/codex/generated/v2/Thread.d.ts +5 -0
  128. package/dist/codex/generated/v2/ThreadForkParams.d.ts +11 -0
  129. package/dist/codex/generated/v2/ThreadItem.d.ts +2 -3
  130. package/dist/codex/generated/v2/ThreadItemEntry.d.ts +8 -0
  131. package/dist/codex/generated/v2/ThreadItemEntry.js +3 -0
  132. package/dist/codex/generated/v2/ThreadItemEntry.js.map +1 -0
  133. package/dist/codex/generated/v2/ThreadItemsListResponse.d.ts +2 -2
  134. package/dist/codex/generated/v2/ThreadRealtimeInitialItem.d.ts +8 -0
  135. package/dist/codex/generated/v2/ThreadRealtimeInitialItem.js +3 -0
  136. package/dist/codex/generated/v2/ThreadRealtimeInitialItem.js.map +1 -0
  137. package/dist/codex/generated/v2/ThreadRealtimeStartParams.d.ts +11 -4
  138. package/dist/codex/generated/v2/ThreadResumeResponse.d.ts +14 -0
  139. package/dist/codex/generated/v2/ThreadSearchOccurrence.d.ts +17 -0
  140. package/dist/codex/generated/v2/ThreadSearchOccurrence.js +3 -0
  141. package/dist/codex/generated/v2/ThreadSearchOccurrence.js.map +1 -0
  142. package/dist/codex/generated/v2/ThreadSearchOccurrencesParams.d.ts +19 -0
  143. package/dist/codex/generated/v2/ThreadSearchOccurrencesParams.js +3 -0
  144. package/dist/codex/generated/v2/ThreadSearchOccurrencesParams.js.map +1 -0
  145. package/dist/codex/generated/v2/ThreadSearchOccurrencesResponse.d.ts +11 -0
  146. package/dist/codex/generated/v2/ThreadSearchOccurrencesResponse.js +3 -0
  147. package/dist/codex/generated/v2/ThreadSearchOccurrencesResponse.js.map +1 -0
  148. package/dist/codex/generated/v2/ThreadSearchTextRange.d.ts +13 -0
  149. package/dist/codex/generated/v2/ThreadSearchTextRange.js +3 -0
  150. package/dist/codex/generated/v2/ThreadSearchTextRange.js.map +1 -0
  151. package/dist/codex/generated/v2/TokenUsageBreakdown.d.ts +1 -0
  152. package/dist/codex/generated/v2/TurnEnvironmentParams.d.ts +4 -0
  153. package/dist/codex/generated/v2/UserInput.d.ts +6 -0
  154. package/dist/codex/generated/v2/index.d.ts +23 -0
  155. package/dist/daemon/daemon.js +5 -20
  156. package/dist/daemon/daemon.js.map +1 -1
  157. package/dist/daemon/probe.js +1 -1
  158. package/dist/daemon/settings.d.ts +6 -0
  159. package/dist/daemon/settings.js +23 -0
  160. package/dist/daemon/settings.js.map +1 -0
  161. package/dist/gateway/clientConnection.d.ts +3 -2
  162. package/dist/gateway/clientConnection.js +41 -44
  163. package/dist/gateway/clientConnection.js.map +1 -1
  164. package/dist/gateway/logicalThreadProjection.d.ts +5 -0
  165. package/dist/gateway/logicalThreadProjection.js +58 -1
  166. package/dist/gateway/logicalThreadProjection.js.map +1 -1
  167. package/dist/gateway/remoteControlController.d.ts +29 -0
  168. package/dist/gateway/remoteControlController.js +78 -0
  169. package/dist/gateway/remoteControlController.js.map +1 -0
  170. package/dist/gateway/remoteControlHub.js +2 -1
  171. package/dist/gateway/remoteControlHub.js.map +1 -1
  172. package/dist/gateway/remoteControlMode.js +2 -12
  173. package/dist/gateway/remoteControlMode.js.map +1 -1
  174. package/dist/gateway/server.js +42 -15
  175. package/dist/gateway/server.js.map +1 -1
  176. package/dist/gateway/subscriptions.d.ts +9 -2
  177. package/dist/gateway/subscriptions.js +40 -9
  178. package/dist/gateway/subscriptions.js.map +1 -1
  179. package/dist/gateway/threadList.d.ts +25 -0
  180. package/dist/gateway/threadList.js +112 -26
  181. package/dist/gateway/threadList.js.map +1 -1
  182. package/dist/handoff/lineageStore.d.ts +101 -0
  183. package/dist/handoff/lineageStore.js +502 -0
  184. package/dist/handoff/lineageStore.js.map +1 -0
  185. package/dist/handoff/providerEpochs.d.ts +19 -5
  186. package/dist/handoff/providerEpochs.js +119 -41
  187. package/dist/handoff/providerEpochs.js.map +1 -1
  188. package/dist/handoff/service.d.ts +16 -2
  189. package/dist/handoff/service.js +500 -139
  190. package/dist/handoff/service.js.map +1 -1
  191. package/dist/handoff/startupMigration.d.ts +22 -0
  192. package/dist/handoff/startupMigration.js +52 -0
  193. package/dist/handoff/startupMigration.js.map +1 -0
  194. package/dist/handoff/store.d.ts +10 -0
  195. package/dist/handoff/store.js +141 -28
  196. package/dist/handoff/store.js.map +1 -1
  197. package/dist/runtime/dependencies.js +1 -1
  198. package/dist/store/HybridStore.d.ts +3 -1
  199. package/dist/store/HybridStore.js.map +1 -1
  200. package/dist/store/memoryStore.d.ts +3 -2
  201. package/dist/store/memoryStore.js +18 -4
  202. package/dist/store/memoryStore.js.map +1 -1
  203. package/dist/store/sqliteStore.d.ts +1 -2
  204. package/dist/store/sqliteStore.js +57 -24
  205. package/dist/store/sqliteStore.js.map +1 -1
  206. package/legal/LICENSES.md +1 -1
  207. package/legal/THIRD_PARTY_NOTICES.md +136 -124
  208. package/package.json +5 -5
  209. package/dist/codex/generated/AmazonBedrockCredentialSource.d.ts +0 -1
  210. package/dist/codex/generated/AmazonBedrockCredentialSource.js +0 -3
  211. package/dist/codex/generated/AmazonBedrockCredentialSource.js.map +0 -1
@@ -14,11 +14,10 @@ import { CursorCodec } from "../protocol/cursor.js";
14
14
  import { probeHostCompatibility } from "../compatibility/probe.js";
15
15
  import { MetricsRegistry } from "../observability/metrics.js";
16
16
  import { RpcRecorder } from "../observability/rpcRecorder.js";
17
- import { RemoteControlHub } from "./remoteControlHub.js";
18
- import { startRemoteRelay } from "./remoteRelay.js";
17
+ import { RemoteControlController } from "./remoteControlController.js";
19
18
  import { remoteControlEnabled } from "./remoteControlMode.js";
20
- import { HandoffStore } from "../handoff/store.js";
21
19
  import { CrossProviderForks, HANDOFF_DAEMON_CONNECTION_ID } from "../handoff/service.js";
20
+ import { initializeHandoffPersistence, } from "../handoff/startupMigration.js";
22
21
  import { ProviderAvailabilityService, } from "../runtime/providerAvailability.js";
23
22
  import { StockStateTracker } from "../state/stockStateTracker.js";
24
23
  import { connectStock } from "../codex/stockConnection.js";
@@ -26,6 +25,7 @@ import { StockRpc } from "./stockRpc.js";
26
25
  import { isRequest, parseRpcMessage } from "../protocol/envelopes.js";
27
26
  import { StockSideThreads } from "./stockSideThreads.js";
28
27
  import { OptimisticSideThreads } from "./optimisticSideThreads.js";
28
+ import { ThreadCatalog } from "./threadList.js";
29
29
  async function startGatewayOwner(config, socketPath, stockArgs, logger) {
30
30
  await probeHostCompatibility(config, logger);
31
31
  await prepareUnixSocket(socketPath);
@@ -33,7 +33,7 @@ async function startGatewayOwner(config, socketPath, stockArgs, logger) {
33
33
  const stock = await startStockProcess(config, stockArgs.filter((arg) => arg !== "--remote-control"), logger);
34
34
  const metrics = new MetricsRegistry();
35
35
  const recorder = new RpcRecorder(config);
36
- const remoteControl = relayEnabled ? new RemoteControlHub() : undefined;
36
+ const remoteControl = new RemoteControlController(socketPath, logger, relayEnabled);
37
37
  const features = config.features ?? DEFAULT_FEATURES;
38
38
  const claudeModels = new ClaudeModelCatalog(config, logger, metrics);
39
39
  await claudeModels.list().catch((error) => {
@@ -54,19 +54,18 @@ async function startGatewayOwner(config, socketPath, stockArgs, logger) {
54
54
  }
55
55
  : undefined);
56
56
  await claude.ready();
57
- const handoffs = new CrossProviderForks(new HandoffStore(join(config.dataDir, "handoffs.sqlite")), claude, config.renamePrompt ?? null);
58
- handoffs.configureSubscriptions(subscriptions);
59
57
  const handoffStock = connectStock(stock.socketPath);
60
58
  const handoffStockRpc = new StockRpc(handoffStock);
61
59
  const stockSideThreads = new StockSideThreads(features.sideChatPromotion, handoffStockRpc, logger);
60
+ let activeHandoffs;
62
61
  handoffStock.on("message", (data, isBinary) => {
63
62
  const message = isBinary ? undefined : parseRpcMessage(data);
64
63
  if (!message || handoffStockRpc.handle(message) || !("method" in message))
65
64
  return;
66
- const internal = handoffs.captureInternalStockMessage(HANDOFF_DAEMON_CONNECTION_ID, message);
65
+ const internal = activeHandoffs?.captureInternalStockMessage(HANDOFF_DAEMON_CONNECTION_ID, message) ?? false;
67
66
  const target = !internal
68
- && handoffs.suppressStockTargetMessage(HANDOFF_DAEMON_CONNECTION_ID, message);
69
- const projected = !internal && !target && handoffs.projectStockMessage(message);
67
+ && (activeHandoffs?.suppressStockTargetMessage(HANDOFF_DAEMON_CONNECTION_ID, message) ?? false);
68
+ const projected = !internal && !target && (activeHandoffs?.projectStockMessage(message) ?? false);
70
69
  const side = !internal && !target && !projected
71
70
  && stockSideThreads.captureDaemonMessage(message, subscriptions);
72
71
  if ((internal || target || side) && !projected && isRequest(message) && handoffStock.readyState === WebSocket.OPEN) {
@@ -75,12 +74,42 @@ async function startGatewayOwner(config, socketPath, stockArgs, logger) {
75
74
  handoffStock.send(JSON.stringify({ id: message.id, result: { decision: "decline" } }));
76
75
  }
77
76
  });
78
- await handoffStockRpc.initialize();
77
+ const abortHandoffStartup = async () => {
78
+ stockSideThreads.close();
79
+ handoffStockRpc.close(new Error("Gateway startup failed."));
80
+ if (handoffStock.readyState === WebSocket.OPEN || handoffStock.readyState === WebSocket.CONNECTING) {
81
+ handoffStock.close();
82
+ }
83
+ await claude.close();
84
+ await stock.stop();
85
+ rmSync(socketPath, { force: true });
86
+ };
87
+ let persistence;
88
+ try {
89
+ persistence = await initializeHandoffPersistence(join(config.dataDir, "handoffs.sqlite"), handoffStockRpc, claude);
90
+ }
91
+ catch (error) {
92
+ await abortHandoffStartup();
93
+ throw error;
94
+ }
95
+ let handoffs;
96
+ try {
97
+ handoffs = new CrossProviderForks(persistence.operational, claude, config.renamePrompt ?? null, persistence.lineage);
98
+ }
99
+ catch (error) {
100
+ persistence.lineage.close();
101
+ persistence.operational.close();
102
+ await abortHandoffStartup();
103
+ throw error;
104
+ }
105
+ handoffs.configureSubscriptions(subscriptions);
106
+ activeHandoffs = handoffs;
79
107
  handoffs.configureDaemonStock(handoffStockRpc);
80
108
  const optimisticSideThreads = new OptimisticSideThreads();
81
109
  await stockSideThreads.recover().catch((error) => {
82
110
  logger.warn("stock.side.recovery-failed", { error: String(error) });
83
111
  });
112
+ const threadCatalog = new ThreadCatalog(handoffStockRpc, claude, cursors, handoffs, stockSideThreads);
84
113
  const webSockets = new WebSocketServer({ noServer: true, perMessageDeflate: false, maxPayload: 64 * 1024 * 1024 });
85
114
  const connectionCleanups = new Set();
86
115
  const server = createServer((request, response) => {
@@ -100,7 +129,7 @@ async function startGatewayOwner(config, socketPath, stockArgs, logger) {
100
129
  return;
101
130
  }
102
131
  webSockets.handleUpgrade(request, socket, head, (client) => {
103
- const connection = attachClientConnection(client, stock.socketPath, claudeModels, claude, handoffs, subscriptions, logger, cursors, metrics, recorder, remoteControl, features, providerAvailability, stockState, stockSideThreads, features.optimisticSideStartup ? optimisticSideThreads : undefined, claudeSkills);
132
+ const connection = attachClientConnection(client, stock.socketPath, claudeModels, claude, handoffs, subscriptions, logger, cursors, metrics, recorder, remoteControl, features, providerAvailability, stockState, stockSideThreads, features.optimisticSideStartup ? optimisticSideThreads : undefined, claudeSkills, threadCatalog);
104
133
  connectionCleanups.add(connection.closed);
105
134
  const untrack = () => connectionCleanups.delete(connection.closed);
106
135
  void connection.closed.then(untrack, (error) => {
@@ -129,10 +158,8 @@ async function startGatewayOwner(config, socketPath, stockArgs, logger) {
129
158
  clearTimeout(force);
130
159
  await Promise.allSettled(connectionCleanups);
131
160
  };
132
- let relay;
133
161
  try {
134
- if (remoteControl)
135
- relay = await startRemoteRelay(socketPath, remoteControl, logger);
162
+ await remoteControl.start();
136
163
  }
137
164
  catch (error) {
138
165
  stockSideThreads.close();
@@ -152,7 +179,7 @@ async function startGatewayOwner(config, socketPath, stockArgs, logger) {
152
179
  logger.info("gateway.started", { socketPath, stockSocket: stock.socketPath });
153
180
  return {
154
181
  async stop() {
155
- await relay?.stop();
182
+ await remoteControl.stop();
156
183
  stockSideThreads.close();
157
184
  optimisticSideThreads.close();
158
185
  await closeConnections();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  export type NotificationSink = (method: string, params: unknown) => void;
2
2
  export type ServerRequestSink = (id: string, method: string, params: unknown) => void;
3
+ export interface LifecycleBuffer {
4
+ flush(): void;
5
+ discard(): void;
6
+ }
3
7
  export declare class SubscriptionHub {
4
8
  private readonly subscriptions;
5
9
  private readonly connections;
@@ -8,6 +12,7 @@ export declare class SubscriptionHub {
8
12
  private readonly requestRecipients;
9
13
  private readonly threadAliases;
10
14
  private readonly hiddenUserMessageTurns;
15
+ private readonly lifecycleBuffers;
11
16
  private static readonly globalThreadNotifications;
12
17
  attach(connectionId: string, sink: NotificationSink, requestSink?: ServerRequestSink): void;
13
18
  emitGlobal(method: string, params: unknown): void;
@@ -17,15 +22,17 @@ export declare class SubscriptionHub {
17
22
  detach(connectionId: string): void;
18
23
  emit(threadId: string, method: string, params: unknown): void;
19
24
  emitPublic(publicThreadId: string, method: string, params: unknown): void;
25
+ bufferLifecycle(threadId: string, methods: readonly string[]): LifecycleBuffer;
20
26
  private emitVisible;
21
27
  request(threadId: string, id: string, method: string, params: unknown, connectionId?: string): boolean;
22
28
  suppress(threadId: string): void;
23
29
  unsuppress(threadId: string): void;
24
30
  isSuppressed(threadId: string): boolean;
25
- revealAs(threadId: string, publicThreadId: string): void;
31
+ revealAs(threadId: string, publicThreadId: string, itemNamespace?: string): void;
26
32
  threadDeleted(threadId: string): void;
33
+ publicThreadDeleted(threadId: string): void;
27
34
  hideUserMessages(threadId: string, turnId: string): void;
28
- aliasThread(backendThreadId: string, publicThreadId: string): void;
35
+ aliasThread(backendThreadId: string, publicThreadId: string, itemNamespace?: string): void;
29
36
  unaliasThread(backendThreadId: string): void;
30
37
  mute(threadId: string, connectionId: string): void;
31
38
  unmute(threadId: string, connectionId: string): void;
@@ -7,6 +7,7 @@ export class SubscriptionHub {
7
7
  requestRecipients = new Map();
8
8
  threadAliases = new Map();
9
9
  hiddenUserMessageTurns = new Map();
10
+ lifecycleBuffers = new Map();
10
11
  static globalThreadNotifications = new Set([
11
12
  "thread/started",
12
13
  "thread/status/changed",
@@ -57,12 +58,37 @@ export class SubscriptionHub {
57
58
  emitPublic(publicThreadId, method, params) {
58
59
  this.emitVisible(publicThreadId, method, params, true);
59
60
  }
61
+ bufferLifecycle(threadId, methods) {
62
+ if (this.lifecycleBuffers.has(threadId))
63
+ throw new Error(`Lifecycle mutation already active for '${threadId}'.`);
64
+ const buffer = { methods: new Set(methods), events: [] };
65
+ this.lifecycleBuffers.set(threadId, buffer);
66
+ const take = () => {
67
+ if (this.lifecycleBuffers.get(threadId) !== buffer)
68
+ return [];
69
+ this.lifecycleBuffers.delete(threadId);
70
+ return buffer.events;
71
+ };
72
+ return {
73
+ flush: () => {
74
+ for (const event of take())
75
+ this.emitVisible(threadId, event.method, event.params, event.alreadyPublic);
76
+ },
77
+ discard: () => { take(); },
78
+ };
79
+ }
60
80
  emitVisible(threadId, method, params, alreadyPublic) {
81
+ const buffer = this.lifecycleBuffers.get(threadId);
82
+ if (buffer?.methods.has(method)) {
83
+ buffer.events.push({ method, params, alreadyPublic });
84
+ return;
85
+ }
61
86
  const visibleParams = this.withoutHiddenUserMessage(threadId, method, params);
62
87
  if (visibleParams === undefined)
63
88
  return;
64
- const publicThreadId = alreadyPublic ? threadId : this.publicThreadId(threadId);
65
- const projectedParams = publicThreadId === threadId ? visibleParams : projectRpcToPublicThread({ params: visibleParams }, { publicThreadId, backendThreadId: threadId }).params;
89
+ const alias = alreadyPublic ? undefined : this.threadAliases.get(threadId);
90
+ const publicThreadId = alias?.publicThreadId ?? threadId;
91
+ const projectedParams = publicThreadId === threadId ? visibleParams : projectRpcToPublicThread({ params: visibleParams }, { publicThreadId, backendThreadId: threadId, ...alias }).params;
66
92
  if (method === "serverRequest/resolved") {
67
93
  const requestId = projectedParams && typeof projectedParams === "object" && "requestId" in projectedParams
68
94
  ? projectedParams.requestId
@@ -100,8 +126,9 @@ export class SubscriptionHub {
100
126
  request(threadId, id, method, params, connectionId) {
101
127
  if (this.suppressedThreads.has(threadId))
102
128
  return false;
103
- const publicThreadId = this.publicThreadId(threadId);
104
- const projectedParams = publicThreadId === threadId ? params : projectRpcToPublicThread({ params }, { publicThreadId, backendThreadId: threadId }).params;
129
+ const alias = this.threadAliases.get(threadId);
130
+ const publicThreadId = alias?.publicThreadId ?? threadId;
131
+ const projectedParams = publicThreadId === threadId ? params : projectRpcToPublicThread({ params }, { publicThreadId, backendThreadId: threadId, ...alias }).params;
105
132
  if (connectionId) {
106
133
  const target = this.subscriptions.get(publicThreadId)?.get(connectionId) ?? this.connections.get(connectionId);
107
134
  if (!target?.requestSink)
@@ -141,23 +168,27 @@ export class SubscriptionHub {
141
168
  suppress(threadId) { this.suppressedThreads.add(threadId); }
142
169
  unsuppress(threadId) { this.suppressedThreads.delete(threadId); }
143
170
  isSuppressed(threadId) { return this.suppressedThreads.has(threadId); }
144
- revealAs(threadId, publicThreadId) {
145
- this.aliasThread(threadId, publicThreadId);
171
+ revealAs(threadId, publicThreadId, itemNamespace) {
172
+ this.aliasThread(threadId, publicThreadId, itemNamespace);
146
173
  this.suppressedThreads.delete(threadId);
147
174
  }
148
175
  threadDeleted(threadId) {
149
176
  this.emit(threadId, "thread/deleted", { threadId });
150
177
  this.hiddenUserMessageTurns.delete(threadId);
151
178
  }
179
+ publicThreadDeleted(threadId) {
180
+ this.emitPublic(threadId, "thread/deleted", { threadId });
181
+ this.hiddenUserMessageTurns.delete(threadId);
182
+ }
152
183
  hideUserMessages(threadId, turnId) {
153
184
  const turns = this.hiddenUserMessageTurns.get(threadId) ?? new Set();
154
185
  turns.add(turnId);
155
186
  this.hiddenUserMessageTurns.set(threadId, turns);
156
187
  }
157
- aliasThread(backendThreadId, publicThreadId) {
188
+ aliasThread(backendThreadId, publicThreadId, itemNamespace) {
158
189
  if (backendThreadId === publicThreadId)
159
190
  return;
160
- this.threadAliases.set(backendThreadId, publicThreadId);
191
+ this.threadAliases.set(backendThreadId, { publicThreadId, ...(itemNamespace ? { itemNamespace } : {}) });
161
192
  }
162
193
  unaliasThread(backendThreadId) { this.threadAliases.delete(backendThreadId); }
163
194
  mute(threadId, connectionId) {
@@ -175,7 +206,7 @@ export class SubscriptionHub {
175
206
  return this.mutedByConnection.get(connectionId)?.has(threadId) ?? false;
176
207
  }
177
208
  publicThreadId(threadId) {
178
- return this.threadAliases.get(threadId) ?? threadId;
209
+ return this.threadAliases.get(threadId)?.publicThreadId ?? threadId;
179
210
  }
180
211
  withoutHiddenUserMessage(threadId, method, params) {
181
212
  if (!params || typeof params !== "object")
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/gateway/subscriptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/gateway/subscriptions.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,31 @@ import type { ClaudeService } from "../claude/service.js";
7
7
  import type { StockRpc } from "./stockRpc.js";
8
8
  import { CursorCodec } from "../protocol/cursor.js";
9
9
  import type { StockSideThreads } from "./stockSideThreads.js";
10
+ export interface ThreadCatalogProjection {
11
+ projectThreadCatalog(stock: Thread[], claude: Thread[], params?: ThreadListParams): Thread[];
12
+ projectLoadedThreadIds(stock: string[], claude: string[]): string[];
13
+ hiddenBackendIds?(provider?: "stock" | "claude"): Set<string>;
14
+ catalogTombstones?(): string[];
15
+ }
16
+ export interface RemoteCatalogSnapshot {
17
+ readonly active: readonly Thread[];
18
+ readonly archived: readonly Thread[];
19
+ readonly hiddenPhysicalIds: ReadonlySet<string>;
20
+ }
21
+ export type CatalogNotificationSink = (method: string, params: unknown) => void;
22
+ export declare class ThreadCatalog {
23
+ private readonly stock;
24
+ private readonly claude;
25
+ private readonly cursors;
26
+ private readonly logical?;
27
+ private readonly sideThreads?;
28
+ constructor(stock: StockRpc, claude: ClaudeService, cursors: CursorCodec, logical?: ThreadCatalogProjection | undefined, sideThreads?: Partial<Pick<StockSideThreads, "filterThreads" | "hiddenIds">> | undefined);
29
+ private projected;
30
+ list(params: ThreadListParams): Promise<ThreadListResponse>;
31
+ loaded(params: ThreadLoadedListParams): Promise<ThreadLoadedListResponse>;
32
+ remoteSnapshot(): Promise<RemoteCatalogSnapshot>;
33
+ reconcileRemote(sink: CatalogNotificationSink): Promise<void>;
34
+ }
10
35
  export declare function mergedThreadList(params: ThreadListParams, stock: StockRpc, claude: ClaudeService, cursors: CursorCodec, logical?: {
11
36
  projectThreadCatalog(stock: Thread[], claude: Thread[], params?: ThreadListParams): Thread[];
12
37
  }, sideThreads?: Pick<StockSideThreads, "filterThreads">): Promise<ThreadListResponse>;
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { queryFingerprint } from "../protocol/cursor.js";
3
3
  import { invalidParams } from "../protocol/errors.js";
4
+ import { filterSortThreads } from "../store/threadFilter.js";
4
5
  function threadKey(params) {
5
6
  return params.sortKey === "updated_at" ? "updatedAt" : params.sortKey === "recency_at" ? "recencyAt" : "createdAt";
6
7
  }
@@ -26,33 +27,118 @@ async function allStockThreads(stock, params) {
26
27
  } while (cursor);
27
28
  return threads;
28
29
  }
29
- export async function mergedThreadList(params, stock, claude, cursors, logical, sideThreads) {
30
- const [stockCatalog, claudeThreads] = await Promise.all([
31
- allStockThreads(stock, { ...params, cursor: null }),
32
- Promise.resolve(claude.listThreads({ ...params, cursor: null })),
33
- ]);
34
- const stockThreads = sideThreads?.filterThreads(stockCatalog) ?? stockCatalog;
35
- const key = threadKey(params);
36
- const direction = params.sortDirection === "asc" ? "asc" : "desc";
37
- const query = threadQuery(params);
38
- const cursor = cursors.decode("thread", params.cursor);
39
- if (cursor && (cursor.query !== query || cursor.direction !== direction || cursor.key !== key || typeof cursor.value !== "number" || typeof cursor.id !== "string")) {
40
- throw invalidParams("Thread pagination query changed; restart pagination.");
30
+ export class ThreadCatalog {
31
+ stock;
32
+ claude;
33
+ cursors;
34
+ logical;
35
+ sideThreads;
36
+ constructor(stock, claude, cursors, logical, sideThreads) {
37
+ this.stock = stock;
38
+ this.claude = claude;
39
+ this.cursors = cursors;
40
+ this.logical = logical;
41
+ this.sideThreads = sideThreads;
41
42
  }
42
- const anchor = cursor ? { [key]: cursor.value, id: cursor.id } : undefined;
43
- const catalog = (logical ? logical.projectThreadCatalog(stockThreads, claudeThreads, params) : [...stockThreads, ...claudeThreads])
44
- .sort((left, right) => compareThreads(left, right, key, direction))
45
- .filter((thread) => !anchor || compareThreads(thread, anchor, key, direction) > 0);
46
- const limit = Math.max(1, Math.min(params.limit ?? 50, 100));
47
- const data = catalog.slice(0, limit);
48
- const cursorFor = (thread, cursorDirection) => cursors.encode("thread", {
49
- query, direction: cursorDirection, key, value: thread[key] ?? 0, id: thread.id,
50
- });
51
- return {
52
- data,
53
- nextCursor: data.length < catalog.length ? cursorFor(data[data.length - 1], direction) : null,
54
- backwardsCursor: data.length > 0 ? cursorFor(data[0], direction === "asc" ? "desc" : "asc") : null,
55
- };
43
+ async projected(params) {
44
+ // Provider-side filtering may hide a physical epoch before it can be
45
+ // projected to its public task. Only the archive partition is safe to
46
+ // apply before projection; every public filter is evaluated exactly once
47
+ // on the unified catalog.
48
+ await this.claude.refreshNativeMetadata?.();
49
+ const providerParams = {
50
+ archived: params.archived ?? false,
51
+ cursor: null,
52
+ limit: 100,
53
+ };
54
+ const [stockCatalog, claudeCatalog] = await Promise.all([
55
+ allStockThreads(this.stock, providerParams),
56
+ Promise.resolve(this.claude.listThreads(providerParams)),
57
+ ]);
58
+ const stockThreads = this.sideThreads?.filterThreads?.(stockCatalog) ?? stockCatalog;
59
+ const projected = this.logical
60
+ ? this.logical.projectThreadCatalog(stockThreads, claudeCatalog, providerParams)
61
+ : [...stockThreads, ...claudeCatalog];
62
+ return filterSortThreads(projected, params);
63
+ }
64
+ async list(params) {
65
+ const key = threadKey(params);
66
+ const direction = params.sortDirection === "asc" ? "asc" : "desc";
67
+ const query = threadQuery(params);
68
+ const cursor = this.cursors.decode("thread", params.cursor);
69
+ if (cursor && (cursor.query !== query || cursor.direction !== direction || cursor.key !== key
70
+ || typeof cursor.value !== "number" || typeof cursor.id !== "string")) {
71
+ throw invalidParams("Thread pagination query changed; restart pagination.");
72
+ }
73
+ const anchor = cursor ? { [key]: cursor.value, id: cursor.id } : undefined;
74
+ const catalog = (await this.projected(params))
75
+ .filter((thread) => !anchor || compareThreads(thread, anchor, key, direction) > 0);
76
+ const limit = Math.max(1, Math.min(params.limit ?? 50, 100));
77
+ const data = catalog.slice(0, limit);
78
+ const cursorFor = (thread, cursorDirection) => this.cursors.encode("thread", {
79
+ query, direction: cursorDirection, key, value: thread[key] ?? 0, id: thread.id,
80
+ });
81
+ return {
82
+ data,
83
+ nextCursor: data.length < catalog.length ? cursorFor(data[data.length - 1], direction) : null,
84
+ backwardsCursor: data.length > 0 ? cursorFor(data[0], direction === "asc" ? "desc" : "asc") : null,
85
+ };
86
+ }
87
+ async loaded(params) {
88
+ const hidden = this.sideThreads?.hiddenIds
89
+ ? { hiddenIds: this.sideThreads.hiddenIds.bind(this.sideThreads) }
90
+ : undefined;
91
+ return mergedLoadedList(params, this.stock, this.claude, this.cursors, this.logical, hidden);
92
+ }
93
+ async remoteSnapshot() {
94
+ const [active, archived, activeStock, archivedStock, activeClaude, archivedClaude] = await Promise.all([
95
+ this.projected({ archived: false }),
96
+ this.projected({ archived: true }),
97
+ allStockThreads(this.stock, { archived: false }),
98
+ allStockThreads(this.stock, { archived: true }),
99
+ Promise.resolve(this.claude.listThreads({ archived: false })),
100
+ Promise.resolve(this.claude.listThreads({ archived: true })),
101
+ ]);
102
+ const hiddenPhysicalIds = new Set(this.logical?.hiddenBackendIds?.() ?? []);
103
+ for (const id of this.logical?.catalogTombstones?.() ?? [])
104
+ hiddenPhysicalIds.add(id);
105
+ if (this.sideThreads) {
106
+ for (const id of this.sideThreads.hiddenIds?.([...activeStock, ...archivedStock]) ?? [])
107
+ hiddenPhysicalIds.add(id);
108
+ }
109
+ const durableRoot = (thread) => !thread.ephemeral && thread.parentThreadId === null;
110
+ const publicIds = new Set([...active, ...archived].map((thread) => thread.id));
111
+ for (const thread of [...activeStock, ...archivedStock, ...activeClaude, ...archivedClaude]) {
112
+ if (!publicIds.has(thread.id))
113
+ hiddenPhysicalIds.add(thread.id);
114
+ }
115
+ return {
116
+ active: active.filter(durableRoot),
117
+ archived: archived.filter(durableRoot),
118
+ hiddenPhysicalIds,
119
+ };
120
+ }
121
+ async reconcileRemote(sink) {
122
+ const snapshot = await this.remoteSnapshot();
123
+ for (const threadId of snapshot.hiddenPhysicalIds) {
124
+ sink("thread/deleted", { threadId });
125
+ }
126
+ const publish = (thread, archived) => {
127
+ sink("thread/started", { thread: { ...thread, turns: [] } });
128
+ sink("thread/name/updated", {
129
+ threadId: thread.id,
130
+ ...(thread.name === null ? {} : { threadName: thread.name }),
131
+ });
132
+ sink(archived ? "thread/archived" : "thread/unarchived", { threadId: thread.id });
133
+ };
134
+ for (const thread of snapshot.active)
135
+ publish(thread, false);
136
+ for (const thread of snapshot.archived)
137
+ publish(thread, true);
138
+ }
139
+ }
140
+ export async function mergedThreadList(params, stock, claude, cursors, logical, sideThreads) {
141
+ return new ThreadCatalog(stock, claude, cursors, logical, sideThreads).list(params);
56
142
  }
57
143
  async function allStockLoaded(stock) {
58
144
  const ids = [];
@@ -1 +1 @@
1
- {"version":3,"file":"threadList.js","sourceRoot":"","sources":["../../src/gateway/threadList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"threadList.js","sourceRoot":"","sources":["../../src/gateway/threadList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,OAAO,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AA+B7D,SAAS,SAAS,CAAC,MAAwB;IACzC,OAAO,MAAM,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AACrH,CAAC;AAED,SAAS,WAAW,CAAC,MAAwB;IAC3C,OAAO,gBAAgB,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;QACtF,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI;QACpG,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;QACrF,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;KACjG,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,GAAwB,EAAE,SAAoC;IACjH,MAAM,IAAI,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAe,EAAE,MAAwB;IACtE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,GAAG,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAuB,CAAC;QAC3G,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IAC7B,CAAC,QAAQ,MAAM,EAAE;IACjB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,OAAO,aAAa;IAEL;IACA;IACA;IACA;IACA;IALnB,YACmB,KAAe,EACf,MAAqB,EACrB,OAAoB,EACpB,OAAiC,EACjC,WAA4E;QAJ5E,UAAK,GAAL,KAAK,CAAU;QACf,WAAM,GAAN,MAAM,CAAe;QACrB,YAAO,GAAP,OAAO,CAAa;QACpB,YAAO,GAAP,OAAO,CAA0B;QACjC,gBAAW,GAAX,WAAW,CAAiE;IAC5F,CAAC;IAEI,KAAK,CAAC,SAAS,CAAC,MAAwB;QAC9C,qEAAqE;QACrE,sEAAsE;QACtE,yEAAyE;QACzE,0BAA0B;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAqB;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;YAClC,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,GAAG;SACX,CAAC;QACF,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;YAC3C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;SACzD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC;YAChF,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;QACxC,OAAO,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAwB;QACxC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG;eACxF,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;YACxE,MAAM,aAAa,CAAC,sDAAsD,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,MAAM,GAAuB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,eAA0C,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9G,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;SAC/E,CAAC,CAAC;QACH,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9F,eAAe,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;SACpG,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,MAA8B;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS;YACxC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClE,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAChD,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;SAC7D,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE;YAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE;gBAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC;QAC5F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YAC5F,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;YACtC,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,IAA6B;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAClD,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,QAAiB,EAAE,EAAE;YACpD,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,qBAAqB,EAAE;gBAC1B,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;aAC7D,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7D,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,QAAQ;YAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAwB,EACxB,KAAe,EACf,MAAqB,EACrB,OAAoB,EACpB,OAA0G,EAC1G,WAAqD;IAErD,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAA8C,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7H,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAAe;IAC3C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,GAAG,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAA6B,CAAC;QAC7G,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IAC7B,CAAC,QAAQ,MAAM,EAAE;IACjB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA8B,EAC9B,KAAe,EACf,MAAqB,EACrB,OAAoB,EACpB,OAAiF,EACjF,WAAiD;IAEjD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjD,cAAc,CAAC,KAAK,CAAC;QACrB,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;KAC7E,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,WAAW,EAAE,SAAS,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IACzE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO;QAClB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,EAAE,SAAS,CAAC;QAC5D,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAe,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9H,MAAM,aAAa,CAAC,oDAAoD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxI,CAAC"}