@gkorepanov/ccodex 0.4.9 → 0.4.11

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 (220) 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 +156 -21
  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 +47 -50
  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/sideFork.d.ts +3 -0
  177. package/dist/gateway/sideFork.js +11 -0
  178. package/dist/gateway/sideFork.js.map +1 -0
  179. package/dist/gateway/stockSideThreads.js +2 -4
  180. package/dist/gateway/stockSideThreads.js.map +1 -1
  181. package/dist/gateway/subscriptions.d.ts +9 -2
  182. package/dist/gateway/subscriptions.js +40 -9
  183. package/dist/gateway/subscriptions.js.map +1 -1
  184. package/dist/gateway/threadList.d.ts +25 -0
  185. package/dist/gateway/threadList.js +112 -26
  186. package/dist/gateway/threadList.js.map +1 -1
  187. package/dist/handoff/lineageStore.d.ts +102 -0
  188. package/dist/handoff/lineageStore.js +515 -0
  189. package/dist/handoff/lineageStore.js.map +1 -0
  190. package/dist/handoff/providerEpochs.d.ts +19 -5
  191. package/dist/handoff/providerEpochs.js +119 -41
  192. package/dist/handoff/providerEpochs.js.map +1 -1
  193. package/dist/handoff/service.d.ts +16 -2
  194. package/dist/handoff/service.js +502 -140
  195. package/dist/handoff/service.js.map +1 -1
  196. package/dist/handoff/startupMigration.d.ts +22 -0
  197. package/dist/handoff/startupMigration.js +52 -0
  198. package/dist/handoff/startupMigration.js.map +1 -0
  199. package/dist/handoff/store.d.ts +10 -0
  200. package/dist/handoff/store.js +141 -28
  201. package/dist/handoff/store.js.map +1 -1
  202. package/dist/runtime/dependencies.js +1 -1
  203. package/dist/state/stockStateTracker.js +1 -0
  204. package/dist/state/stockStateTracker.js.map +1 -1
  205. package/dist/store/HybridStore.d.ts +3 -1
  206. package/dist/store/HybridStore.js.map +1 -1
  207. package/dist/store/memoryStore.d.ts +3 -2
  208. package/dist/store/memoryStore.js +18 -4
  209. package/dist/store/memoryStore.js.map +1 -1
  210. package/dist/store/sqliteStore.d.ts +2 -2
  211. package/dist/store/sqliteStore.js +84 -24
  212. package/dist/store/sqliteStore.js.map +1 -1
  213. package/dist/store/threadFilter.js +2 -0
  214. package/dist/store/threadFilter.js.map +1 -1
  215. package/legal/LICENSES.md +1 -1
  216. package/legal/THIRD_PARTY_NOTICES.md +136 -124
  217. package/package.json +5 -5
  218. package/dist/codex/generated/AmazonBedrockCredentialSource.d.ts +0 -1
  219. package/dist/codex/generated/AmazonBedrockCredentialSource.js +0 -3
  220. package/dist/codex/generated/AmazonBedrockCredentialSource.js.map +0 -1
@@ -24,12 +24,17 @@ export type { AppSummary } from "./AppSummary";
24
24
  export type { AppTemplateSummary } from "./AppTemplateSummary";
25
25
  export type { AppTemplateUnavailableReason } from "./AppTemplateUnavailableReason";
26
26
  export type { AppToolApproval } from "./AppToolApproval";
27
+ export type { AppToolSummary } from "./AppToolSummary";
27
28
  export type { AppToolsConfig } from "./AppToolsConfig";
28
29
  export type { ApprovalsReviewer } from "./ApprovalsReviewer";
29
30
  export type { AppsConfig } from "./AppsConfig";
30
31
  export type { AppsDefaultConfig } from "./AppsDefaultConfig";
32
+ export type { AppsInstalledParams } from "./AppsInstalledParams";
33
+ export type { AppsInstalledResponse } from "./AppsInstalledResponse";
31
34
  export type { AppsListParams } from "./AppsListParams";
32
35
  export type { AppsListResponse } from "./AppsListResponse";
36
+ export type { AppsReadParams } from "./AppsReadParams";
37
+ export type { AppsReadResponse } from "./AppsReadResponse";
33
38
  export type { AskForApproval } from "./AskForApproval";
34
39
  export type { AttestationGenerateParams } from "./AttestationGenerateParams";
35
40
  export type { AttestationGenerateResponse } from "./AttestationGenerateResponse";
@@ -85,6 +90,7 @@ export type { ConfigWarningNotification } from "./ConfigWarningNotification";
85
90
  export type { ConfigWriteResponse } from "./ConfigWriteResponse";
86
91
  export type { ConfiguredHookHandler } from "./ConfiguredHookHandler";
87
92
  export type { ConfiguredHookMatcherGroup } from "./ConfiguredHookMatcherGroup";
93
+ export type { ConnectorMetadata } from "./ConnectorMetadata";
88
94
  export type { ConsumeAccountRateLimitResetCreditOutcome } from "./ConsumeAccountRateLimitResetCreditOutcome";
89
95
  export type { ConsumeAccountRateLimitResetCreditParams } from "./ConsumeAccountRateLimitResetCreditParams";
90
96
  export type { ConsumeAccountRateLimitResetCreditResponse } from "./ConsumeAccountRateLimitResetCreditResponse";
@@ -103,9 +109,13 @@ export type { DynamicToolNamespaceTool } from "./DynamicToolNamespaceTool";
103
109
  export type { DynamicToolSpec } from "./DynamicToolSpec";
104
110
  export type { EnvironmentAddParams } from "./EnvironmentAddParams";
105
111
  export type { EnvironmentAddResponse } from "./EnvironmentAddResponse";
112
+ export type { EnvironmentConnectionNotification } from "./EnvironmentConnectionNotification";
106
113
  export type { EnvironmentInfoParams } from "./EnvironmentInfoParams";
107
114
  export type { EnvironmentInfoResponse } from "./EnvironmentInfoResponse";
108
115
  export type { EnvironmentShellInfo } from "./EnvironmentShellInfo";
116
+ export type { EnvironmentStatusKind } from "./EnvironmentStatusKind";
117
+ export type { EnvironmentStatusParams } from "./EnvironmentStatusParams";
118
+ export type { EnvironmentStatusResponse } from "./EnvironmentStatusResponse";
109
119
  export type { ErrorNotification } from "./ErrorNotification";
110
120
  export type { ExecPolicyAmendment } from "./ExecPolicyAmendment";
111
121
  export type { ExperimentalFeature } from "./ExperimentalFeature";
@@ -127,6 +137,8 @@ export type { ExternalAgentConfigImportResponse } from "./ExternalAgentConfigImp
127
137
  export type { ExternalAgentConfigImportTypeResult } from "./ExternalAgentConfigImportTypeResult";
128
138
  export type { ExternalAgentConfigMigrationItem } from "./ExternalAgentConfigMigrationItem";
129
139
  export type { ExternalAgentConfigMigrationItemType } from "./ExternalAgentConfigMigrationItemType";
140
+ export type { ExternalAgentImportedConnectorCandidate } from "./ExternalAgentImportedConnectorCandidate";
141
+ export type { ExternalAgentImportedConnectorSource } from "./ExternalAgentImportedConnectorSource";
130
142
  export type { FeedbackUploadParams } from "./FeedbackUploadParams";
131
143
  export type { FeedbackUploadResponse } from "./FeedbackUploadResponse";
132
144
  export type { FileChangeApprovalDecision } from "./FileChangeApprovalDecision";
@@ -193,6 +205,7 @@ export type { HookTrustStatus } from "./HookTrustStatus";
193
205
  export type { HooksListEntry } from "./HooksListEntry";
194
206
  export type { HooksListParams } from "./HooksListParams";
195
207
  export type { HooksListResponse } from "./HooksListResponse";
208
+ export type { InstalledApp } from "./InstalledApp";
196
209
  export type { ItemCompletedNotification } from "./ItemCompletedNotification";
197
210
  export type { ItemGuardianApprovalReviewCompletedNotification } from "./ItemGuardianApprovalReviewCompletedNotification";
198
211
  export type { ItemGuardianApprovalReviewStartedNotification } from "./ItemGuardianApprovalReviewStartedNotification";
@@ -361,6 +374,7 @@ export type { RateLimitResetCreditsSummary } from "./RateLimitResetCreditsSummar
361
374
  export type { RateLimitResetType } from "./RateLimitResetType";
362
375
  export type { RateLimitSnapshot } from "./RateLimitSnapshot";
363
376
  export type { RateLimitWindow } from "./RateLimitWindow";
377
+ export type { RawResponseCompletedNotification } from "./RawResponseCompletedNotification";
364
378
  export type { RawResponseItemCompletedNotification } from "./RawResponseItemCompletedNotification";
365
379
  export type { ReasoningEffortOption } from "./ReasoningEffortOption";
366
380
  export type { ReasoningSummaryPartAddedNotification } from "./ReasoningSummaryPartAddedNotification";
@@ -392,6 +406,9 @@ export type { ReviewTarget } from "./ReviewTarget";
392
406
  export type { SandboxMode } from "./SandboxMode";
393
407
  export type { SandboxPolicy } from "./SandboxPolicy";
394
408
  export type { SandboxWorkspaceWrite } from "./SandboxWorkspaceWrite";
409
+ export type { ScheduledTaskSchedule } from "./ScheduledTaskSchedule";
410
+ export type { ScheduledTaskSummary } from "./ScheduledTaskSummary";
411
+ export type { ScheduledTaskWeekday } from "./ScheduledTaskWeekday";
395
412
  export type { SelectedCapabilityRoot } from "./SelectedCapabilityRoot";
396
413
  export type { SendAddCreditsNudgeEmailParams } from "./SendAddCreditsNudgeEmailParams";
397
414
  export type { SendAddCreditsNudgeEmailResponse } from "./SendAddCreditsNudgeEmailResponse";
@@ -463,6 +480,7 @@ export type { ThreadIncrementElicitationResponse } from "./ThreadIncrementElicit
463
480
  export type { ThreadInjectItemsParams } from "./ThreadInjectItemsParams";
464
481
  export type { ThreadInjectItemsResponse } from "./ThreadInjectItemsResponse";
465
482
  export type { ThreadItem } from "./ThreadItem";
483
+ export type { ThreadItemEntry } from "./ThreadItemEntry";
466
484
  export type { ThreadItemsListParams } from "./ThreadItemsListParams";
467
485
  export type { ThreadItemsListResponse } from "./ThreadItemsListResponse";
468
486
  export type { ThreadListParams } from "./ThreadListParams";
@@ -486,6 +504,7 @@ export type { ThreadRealtimeAppendTextResponse } from "./ThreadRealtimeAppendTex
486
504
  export type { ThreadRealtimeAudioChunk } from "./ThreadRealtimeAudioChunk";
487
505
  export type { ThreadRealtimeClosedNotification } from "./ThreadRealtimeClosedNotification";
488
506
  export type { ThreadRealtimeErrorNotification } from "./ThreadRealtimeErrorNotification";
507
+ export type { ThreadRealtimeInitialItem } from "./ThreadRealtimeInitialItem";
489
508
  export type { ThreadRealtimeItemAddedNotification } from "./ThreadRealtimeItemAddedNotification";
490
509
  export type { ThreadRealtimeListVoicesParams } from "./ThreadRealtimeListVoicesParams";
491
510
  export type { ThreadRealtimeListVoicesResponse } from "./ThreadRealtimeListVoicesResponse";
@@ -504,9 +523,13 @@ export type { ThreadResumeParams } from "./ThreadResumeParams";
504
523
  export type { ThreadResumeResponse } from "./ThreadResumeResponse";
505
524
  export type { ThreadRollbackParams } from "./ThreadRollbackParams";
506
525
  export type { ThreadRollbackResponse } from "./ThreadRollbackResponse";
526
+ export type { ThreadSearchOccurrence } from "./ThreadSearchOccurrence";
527
+ export type { ThreadSearchOccurrencesParams } from "./ThreadSearchOccurrencesParams";
528
+ export type { ThreadSearchOccurrencesResponse } from "./ThreadSearchOccurrencesResponse";
507
529
  export type { ThreadSearchParams } from "./ThreadSearchParams";
508
530
  export type { ThreadSearchResponse } from "./ThreadSearchResponse";
509
531
  export type { ThreadSearchResult } from "./ThreadSearchResult";
532
+ export type { ThreadSearchTextRange } from "./ThreadSearchTextRange";
510
533
  export type { ThreadSetNameParams } from "./ThreadSetNameParams";
511
534
  export type { ThreadSetNameResponse } from "./ThreadSetNameResponse";
512
535
  export type { ThreadSettings } from "./ThreadSettings";
@@ -1,10 +1,11 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
- import { chmodSync, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, writeFileSync, } from "node:fs";
4
- import { dirname, join, resolve } from "node:path";
3
+ import { realpathSync } from "node:fs";
4
+ import { join, resolve } from "node:path";
5
5
  import { probeAppServer } from "./probe.js";
6
6
  import { daemonStateDirectory, killManagedProcess, reconcileManagedProcess, spawnDetachedGateway, stopManagedProcess, withDaemonLock, } from "./supervisor.js";
7
7
  import { identifySocketOwner, reconcileOwnedGateway, socketOwnerPids, stopSocketOwner, } from "./ownership.js";
8
+ import { loadDaemonSettings as loadSettings, saveDaemonSettings as saveSettings, } from "./settings.js";
8
9
  const execFileAsync = promisify(execFile);
9
10
  const START_TIMEOUT_MS = 10_000;
10
11
  const POLL_MS = 50;
@@ -20,22 +21,6 @@ function paths(config, wrapperPath) {
20
21
  wrapperPath: realpathSync(resolve(wrapperPath)),
21
22
  };
22
23
  }
23
- function loadSettings(path) {
24
- if (!existsSync(path))
25
- return { remoteControlEnabled: false };
26
- const value = JSON.parse(readFileSync(path, "utf8"));
27
- if (typeof value.remoteControlEnabled !== "boolean")
28
- throw new Error(`failed to parse daemon settings ${path}`);
29
- return { remoteControlEnabled: value.remoteControlEnabled };
30
- }
31
- function saveSettings(path, settings) {
32
- mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
33
- chmodSync(dirname(path), 0o700);
34
- const temporary = `${path}.${process.pid}.tmp`;
35
- writeFileSync(temporary, `${JSON.stringify(settings, null, 2)}\n`, { mode: 0o600 });
36
- renameSync(temporary, path);
37
- chmodSync(path, 0o600);
38
- }
39
24
  async function stockVersion(realCodex) {
40
25
  const { stdout } = await execFileAsync(realCodex, ["--version"], {
41
26
  env: { ...process.env, CODEX_CLI_PATH: undefined },
@@ -246,7 +231,7 @@ class HybridDaemon {
246
231
  }
247
232
  async bootstrap(remoteControlEnabled) {
248
233
  const settings = { remoteControlEnabled };
249
- saveSettings(this.paths.settingsFile, settings);
234
+ saveSettings(settings, this.paths.settingsFile);
250
235
  const { info: ready } = await this.replaceEndpoint(settings);
251
236
  const version = await this.getVersion();
252
237
  return {
@@ -273,7 +258,7 @@ class HybridDaemon {
273
258
  return this.remoteControlOutput(enabled ? "alreadyEnabled" : "alreadyDisabled", enabled, managedOwnsSocket || info ? "pid" : undefined, info?.appServerVersion);
274
259
  }
275
260
  const settings = { remoteControlEnabled: enabled };
276
- saveSettings(this.paths.settingsFile, settings);
261
+ saveSettings(settings, this.paths.settingsFile);
277
262
  let info;
278
263
  if (managed) {
279
264
  ({ info } = await this.replaceEndpoint(settings));
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export function probeAppServer(socketPath) {
30
30
  id: 1,
31
31
  method: "initialize",
32
32
  params: {
33
- clientInfo: { name: "codex_app_server_daemon", title: "Codex App Server Daemon", version: "0.144.6" },
33
+ clientInfo: { name: "codex_app_server_daemon", title: "Codex App Server Daemon", version: "0.145.0" },
34
34
  },
35
35
  }));
36
36
  });
@@ -0,0 +1,6 @@
1
+ export interface DaemonSettings {
2
+ readonly remoteControlEnabled: boolean;
3
+ }
4
+ export declare function daemonSettingsPath(): string;
5
+ export declare function loadDaemonSettings(path?: string): DaemonSettings;
6
+ export declare function saveDaemonSettings(settings: DaemonSettings, path?: string): void;
@@ -0,0 +1,23 @@
1
+ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { daemonStateDirectory } from "./supervisor.js";
4
+ export function daemonSettingsPath() {
5
+ return join(daemonStateDirectory(), "settings.json");
6
+ }
7
+ export function loadDaemonSettings(path = daemonSettingsPath()) {
8
+ if (!existsSync(path))
9
+ return { remoteControlEnabled: false };
10
+ const value = JSON.parse(readFileSync(path, "utf8"));
11
+ if (typeof value.remoteControlEnabled !== "boolean")
12
+ throw new Error(`failed to parse daemon settings ${path}`);
13
+ return { remoteControlEnabled: value.remoteControlEnabled };
14
+ }
15
+ export function saveDaemonSettings(settings, path = daemonSettingsPath()) {
16
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
17
+ chmodSync(dirname(path), 0o700);
18
+ const temporary = `${path}.${process.pid}.tmp`;
19
+ writeFileSync(temporary, `${JSON.stringify(settings, null, 2)}\n`, { mode: 0o600 });
20
+ renameSync(temporary, path);
21
+ chmodSync(path, 0o600);
22
+ }
23
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/daemon/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,GAC1E,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAMvD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,oBAAoB,EAAE,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAAG,kBAAkB,EAAE;IAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;IAChF,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;IAChH,OAAO,EAAE,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAwB,EAAE,IAAI,GAAG,kBAAkB,EAAE;IACtF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAC/C,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
@@ -5,9 +5,10 @@ import type { ClaudeService } from "../claude/service.js";
5
5
  import type { Logger } from "../observability/logger.js";
6
6
  import type { SubscriptionHub } from "./subscriptions.js";
7
7
  import type { CursorCodec } from "../protocol/cursor.js";
8
+ import { ThreadCatalog } from "./threadList.js";
8
9
  import type { MetricsRegistry } from "../observability/metrics.js";
9
10
  import type { RpcRecorder } from "../observability/rpcRecorder.js";
10
- import type { RemoteControlHub } from "./remoteControlHub.js";
11
+ import type { RemoteControlController } from "./remoteControlController.js";
11
12
  import type { CrossProviderForks } from "../handoff/service.js";
12
13
  import { type FeatureConfig } from "../config/config.js";
13
14
  import type { ProviderAvailabilityService } from "../runtime/providerAvailability.js";
@@ -17,4 +18,4 @@ import type { OptimisticSideThreads } from "./optimisticSideThreads.js";
17
18
  export interface ClientConnectionHandle {
18
19
  readonly closed: Promise<void>;
19
20
  }
20
- export declare function attachClientConnection(client: WebSocket, stockSocket: string, claudeModels: ClaudeModelCatalog, claude: ClaudeService, handoffs: CrossProviderForks, subscriptions: SubscriptionHub, logger: Logger, cursors: CursorCodec, metrics: MetricsRegistry, recorder: RpcRecorder, remoteControl?: RemoteControlHub, features?: FeatureConfig, providerAvailability?: Pick<ProviderAvailabilityService, "read" | "refresh" | "refreshAll">, sharedStockState?: StockStateTracker, stockSideThreads?: StockSideThreads, optimisticSideThreads?: OptimisticSideThreads, claudeSkills?: Pick<ClaudeSkillCatalog, "list">): ClientConnectionHandle;
21
+ export declare function attachClientConnection(client: WebSocket, stockSocket: string, claudeModels: ClaudeModelCatalog, claude: ClaudeService, handoffs: CrossProviderForks, subscriptions: SubscriptionHub, logger: Logger, cursors: CursorCodec, metrics: MetricsRegistry, recorder: RpcRecorder, remoteControl?: RemoteControlController, features?: FeatureConfig, providerAvailability?: Pick<ProviderAvailabilityService, "read" | "refresh" | "refreshAll">, sharedStockState?: StockStateTracker, stockSideThreads?: StockSideThreads, optimisticSideThreads?: OptimisticSideThreads, claudeSkills?: Pick<ClaudeSkillCatalog, "list">, threadCatalog?: ThreadCatalog): ClientConnectionHandle;
@@ -6,7 +6,7 @@ import { RpcError, rpcCodexErrorInfo, rpcError } from "../protocol/errors.js";
6
6
  import { mergedModelList } from "./modelList.js";
7
7
  import { providerSkillsList } from "./skillList.js";
8
8
  import { StockRpc } from "./stockRpc.js";
9
- import { mergedLoadedList, mergedThreadList } from "./threadList.js";
9
+ import { ThreadCatalog } from "./threadList.js";
10
10
  import { ServerRequestIds } from "./serverRequestIds.js";
11
11
  import { providerMigrationCompleted, providerMigrationFailed, providerMigrationNotice, transientCommandNotice, transientSystemNotice, transientSystemItemNotice, } from "./transientNotice.js";
12
12
  import { rateLimitNotifications, } from "../claude/rateLimits.js";
@@ -18,12 +18,10 @@ import { formatCCodexState, isCCodexStateCommand } from "../state/stateCommand.j
18
18
  import { StockStateTracker } from "../state/stockStateTracker.js";
19
19
  import { STOCK_SIDE_THREAD_SOURCE } from "./stockSideThreads.js";
20
20
  import { projectRpcToPublicThread } from "./logicalThreadProjection.js";
21
+ import { isUserSideFork, normalizeUserSideFork } from "./sideFork.js";
21
22
  function requestedFast(serviceTier) {
22
23
  return serviceTier === "fast" || serviceTier === "priority";
23
24
  }
24
- function isUserSideFork(params) {
25
- return params.ephemeral === true && params.excludeTurns === true && params.threadSource === "user";
26
- }
27
25
  function claudeModelNoticeName(model) {
28
26
  const name = model.replace(/^claude:/u, "").replace(/^claude-/u, "").split("-")[0] ?? model;
29
27
  return `${name.charAt(0).toUpperCase()}${name.slice(1)}`;
@@ -38,7 +36,7 @@ function fastTransitionNotice(before, after, requestedTier) {
38
36
  }
39
37
  return undefined;
40
38
  }
41
- export function attachClientConnection(client, stockSocket, claudeModels, claude, handoffs, subscriptions, logger, cursors, metrics, recorder, remoteControl, features = DEFAULT_FEATURES, providerAvailability, sharedStockState, stockSideThreads, optimisticSideThreads, claudeSkills) {
39
+ export function attachClientConnection(client, stockSocket, claudeModels, claude, handoffs, subscriptions, logger, cursors, metrics, recorder, remoteControl, features = DEFAULT_FEATURES, providerAvailability, sharedStockState, stockSideThreads, optimisticSideThreads, claudeSkills, threadCatalog) {
42
40
  const connectionId = uuidv7();
43
41
  let resolveClosed;
44
42
  let rejectClosed;
@@ -50,12 +48,12 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
50
48
  let connectionAlive = true;
51
49
  const stock = connectStock(stockSocket);
52
50
  const stockRpc = new StockRpc(stock);
51
+ const catalog = threadCatalog ?? new ThreadCatalog(stockRpc, claude, cursors, handoffs, stockSideThreads);
53
52
  const stockState = sharedStockState ?? new StockStateTracker();
54
53
  const queued = [];
55
54
  const requestStarted = new Map();
56
55
  const forwardedRequests = new Map();
57
56
  const recentSystemErrors = new Map();
58
- const knownLogicalNames = new Map();
59
57
  const serverRequestIds = new ServerRequestIds();
60
58
  const requestKey = (id) => `${typeof id}:${id}`;
61
59
  const completeLatency = (id, provider) => {
@@ -89,6 +87,9 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
89
87
  ? { systemEphemeral: message.params }
90
88
  : {}),
91
89
  ...(foreground ? { foreground } : {}),
90
+ ...(message.method === "initialize" && params?.clientInfo?.name === "codex-backend"
91
+ ? { remoteCatalog: true }
92
+ : {}),
92
93
  ...(["thread/delete", "thread/unsubscribe"].includes(message.method) ? { clearForeground: true } : {}),
93
94
  });
94
95
  };
@@ -102,25 +103,6 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
102
103
  recorder.frame(connectionId, "gateway_to_client", data, false);
103
104
  client.send(data);
104
105
  };
105
- const syncLogicalName = (thread) => {
106
- if (!handoffs.logical?.(thread.id))
107
- return;
108
- if (knownLogicalNames.has(thread.id) && knownLogicalNames.get(thread.id) === thread.name)
109
- return;
110
- knownLogicalNames.set(thread.id, thread.name);
111
- sendJson({
112
- method: "thread/name/updated",
113
- params: { threadId: thread.id, ...(thread.name === null ? {} : { threadName: thread.name }) },
114
- });
115
- };
116
- const syncLogicalNameFromResult = (result) => {
117
- const thread = result && typeof result === "object"
118
- ? result.thread
119
- : undefined;
120
- if (thread && typeof thread === "object" && typeof thread.id === "string") {
121
- syncLogicalName(thread);
122
- }
123
- };
124
106
  const emitNotice = (notice) => {
125
107
  for (const notification of notice.notifications)
126
108
  sendJson(notification);
@@ -302,13 +284,6 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
302
284
  activeClaudeTurns.delete(value.threadId);
303
285
  }
304
286
  }
305
- if (method === "thread/name/updated" && params && typeof params === "object") {
306
- const update = params;
307
- if (typeof update.threadId === "string"
308
- && (typeof update.threadName === "string" || update.threadName === null)) {
309
- knownLogicalNames.set(update.threadId, update.threadName);
310
- }
311
- }
312
287
  if (method === "error" && params && typeof params === "object") {
313
288
  const failure = params;
314
289
  if (typeof failure.threadId === "string" && typeof failure.error?.message === "string") {
@@ -513,6 +488,13 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
513
488
  sendResult(request.id, projectSideResult(publicThreadId, target, result));
514
489
  return;
515
490
  }
491
+ if (request.method === "thread/searchOccurrences") {
492
+ const result = target.provider === "claude"
493
+ ? claude.searchOccurrences(params)
494
+ : await optimisticStockRequest(request.method, params);
495
+ sendResult(request.id, projectSideResult(publicThreadId, target, result));
496
+ return;
497
+ }
516
498
  if (request.method === "thread/goal/get") {
517
499
  sendResult(request.id, target.provider === "claude"
518
500
  ? await claude.getGoal(target.backendThreadId)
@@ -645,6 +627,16 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
645
627
  if (message && isRequest(message)) {
646
628
  requestStarted.set(requestKey(message.id), performance.now());
647
629
  try {
630
+ if (message.method === "remoteControl/enable" && remoteControl) {
631
+ const params = message.params;
632
+ sendResult(message.id, await remoteControl.enable(params?.ephemeral === true));
633
+ return;
634
+ }
635
+ if (message.method === "remoteControl/disable" && remoteControl) {
636
+ const params = message.params;
637
+ sendResult(message.id, await remoteControl.disable(params?.ephemeral === true));
638
+ return;
639
+ }
648
640
  if (message.method === "remoteControl/status/read" && remoteControl?.current()) {
649
641
  sendResult(message.id, remoteControl.current());
650
642
  return;
@@ -687,14 +679,12 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
687
679
  if (message.method === "account/rateLimits/read" && !foreground)
688
680
  diagnoseUnknownStatus("account/rateLimits/read");
689
681
  if (message.method === "thread/list") {
690
- const result = await mergedThreadList((message.params ?? {}), stockRpc, claude, cursors, handoffs, stockSideThreads);
682
+ const result = await catalog.list((message.params ?? {}));
691
683
  sendResult(message.id, result);
692
- for (const thread of result.data)
693
- syncLogicalName(thread);
694
684
  return;
695
685
  }
696
686
  if (message.method === "thread/loaded/list") {
697
- sendResult(message.id, await mergedLoadedList((message.params ?? {}), stockRpc, claude, cursors, handoffs, stockSideThreads));
687
+ sendResult(message.id, await catalog.loaded((message.params ?? {})));
698
688
  return;
699
689
  }
700
690
  if (message.method === "thread/start") {
@@ -890,7 +880,6 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
890
880
  subscriptions.subscribe(params.threadId, connectionId, notificationSink, serverRequestSink);
891
881
  const handled = await handoffs.requestLogical(message.method, (message.params ?? {}), stockRpc);
892
882
  sendResult(message.id, handled.result);
893
- syncLogicalNameFromResult(handled.result);
894
883
  selectForeground(handled.provider === "claude" ? "claude" : "codex", params.threadId);
895
884
  await handled.after?.();
896
885
  return;
@@ -905,7 +894,7 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
905
894
  }
906
895
  }
907
896
  if (params.threadId && message.method === "thread/fork") {
908
- const forkParams = (message.params ?? {});
897
+ const forkParams = normalizeUserSideFork((message.params ?? {}));
909
898
  if (handoffs.isSystemEphemeralFork(forkParams)) {
910
899
  sendResult(message.id, await handoffs.forkSystemEphemeral(forkParams, stockRpc, connectionId));
911
900
  return;
@@ -913,7 +902,7 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
913
902
  const logicalSource = handoffs.logical?.(forkParams.threadId);
914
903
  if (logicalSource && isUserSideFork(forkParams)) {
915
904
  const targetThreadId = uuidv7();
916
- const snapshot = handoffs.sideSnapshot(forkParams, targetThreadId);
905
+ const snapshot = await handoffs.sideSnapshot(forkParams, targetThreadId);
917
906
  if (snapshot && optimisticSideThreads) {
918
907
  openOptimisticSide(message.id, snapshot, logicalSource.epoch.provider, async () => {
919
908
  if (logicalSource.epoch.provider === "claude") {
@@ -1111,13 +1100,15 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1111
1100
  sendResult(message.id, claude.listItems((message.params ?? {})));
1112
1101
  return;
1113
1102
  }
1103
+ if (message.method === "thread/searchOccurrences") {
1104
+ sendResult(message.id, claude.searchOccurrences((message.params ?? {})));
1105
+ return;
1106
+ }
1114
1107
  if (message.method === "thread/unsubscribe") {
1115
1108
  subscriptions.unsubscribe(params.threadId, connectionId);
1116
1109
  subscribedClaudeThreads.delete(params.threadId);
1117
1110
  sendResult(message.id, { status: "unsubscribed" });
1118
1111
  clearForeground(params.threadId);
1119
- if (!subscriptions.hasSubscribers(params.threadId))
1120
- await claude.releaseEphemeralThread(params.threadId);
1121
1112
  return;
1122
1113
  }
1123
1114
  if (message.method === "thread/name/set") {
@@ -1153,7 +1144,7 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1153
1144
  return;
1154
1145
  }
1155
1146
  if (message.method === "thread/fork") {
1156
- const result = await claude.forkThread((message.params ?? {}));
1147
+ const result = await claude.forkThread(normalizeUserSideFork((message.params ?? {})));
1157
1148
  sendResult(message.id, result);
1158
1149
  selectForeground("claude", result.thread.id);
1159
1150
  subscribeClaude(result.thread.id);
@@ -1309,7 +1300,9 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1309
1300
  forwarded = { ...message, params };
1310
1301
  }
1311
1302
  if (message && isRequest(message) && message.method === "thread/fork") {
1312
- const params = (message.params ?? {});
1303
+ const params = normalizeUserSideFork((message.params ?? {}));
1304
+ if (params !== message.params)
1305
+ forwarded = { ...message, params };
1313
1306
  if (params.ephemeral !== true && params.threadSource !== "system") {
1314
1307
  const completed = stockState.completeForkParams(params);
1315
1308
  if (completed !== params)
@@ -1355,6 +1348,7 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1355
1348
  message = projection.message;
1356
1349
  }
1357
1350
  let foregroundAfterForward;
1351
+ let reconcileRemoteAfterForward = false;
1358
1352
  if (message && "method" in message && !("id" in message) && message.method === "remoteControl/status/changed" && remoteControl) {
1359
1353
  remoteControl.intercept(connectionId, notificationSink, message.params);
1360
1354
  return;
@@ -1371,10 +1365,12 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1371
1365
  handoffs.registerForwardedEphemeralCandidate(connectionId, result.thread.id, forwarded.systemEphemeral);
1372
1366
  }
1373
1367
  }
1374
- if (forwarded?.threadId && isUuid(forwarded.threadId) && "error" in message) {
1368
+ if (forwarded?.threadId && isUuid(forwarded.threadId) && "error" in message
1369
+ && forwarded.method !== "thread/read") {
1375
1370
  emitSystemError(forwarded.threadId, message.error.message);
1376
1371
  }
1377
1372
  if (forwarded && "result" in message) {
1373
+ reconcileRemoteAfterForward = forwarded.remoteCatalog === true;
1378
1374
  const result = message.result && typeof message.result === "object"
1379
1375
  ? message.result
1380
1376
  : undefined;
@@ -1438,6 +1434,13 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1438
1434
  client.send(outbound, { binary: isBinary && message === incoming });
1439
1435
  }
1440
1436
  foregroundAfterForward?.();
1437
+ if (reconcileRemoteAfterForward) {
1438
+ void catalog.reconcileRemote((method, params) => sendJson({ method, params }))
1439
+ .catch((error) => logger.error("remote.catalog.reconcile-failed", {
1440
+ connectionId,
1441
+ error: error instanceof Error ? error.message : String(error),
1442
+ }));
1443
+ }
1441
1444
  }
1442
1445
  catch (error) {
1443
1446
  logger.error("connection.stock.message-failed", {
@@ -1461,14 +1464,9 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1461
1464
  connectionAlive = false;
1462
1465
  void (async () => {
1463
1466
  metrics.connectionClosed();
1464
- const releasedThreads = [...subscribedClaudeThreads];
1465
1467
  subscribedClaudeThreads.clear();
1466
1468
  subscriptions.detach(connectionId);
1467
1469
  claude.unsubscribeRateLimits(connectionId);
1468
- const releases = await Promise.allSettled(releasedThreads.map(async (threadId) => {
1469
- if (!subscriptions.hasSubscribers(threadId))
1470
- claude.scheduleEphemeralRelease(threadId);
1471
- }));
1472
1470
  remoteControl?.detach(connectionId);
1473
1471
  let detach;
1474
1472
  try {
@@ -1487,7 +1485,6 @@ export function attachClientConnection(client, stockSocket, claudeModels, claude
1487
1485
  logger.info("connection.closed", { connectionId });
1488
1486
  recorder.connection("closed", connectionId, { code, reason: reason.toString("utf8") });
1489
1487
  const errors = [
1490
- ...releases.flatMap((result) => result.status === "rejected" ? [result.reason] : []),
1491
1488
  ...(detach === undefined ? [] : [detach]),
1492
1489
  ];
1493
1490
  if (errors.length > 0)