clawdex-mobile 5.0.1 → 5.0.2

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 (576) hide show
  1. package/README.md +4 -0
  2. package/docs/setup-and-operations.md +3 -1
  3. package/docs/troubleshooting.md +1 -0
  4. package/package.json +18 -8
  5. package/scripts/setup-secure-dev.sh +26 -17
  6. package/services/rust-bridge/Cargo.lock +1 -1
  7. package/services/rust-bridge/Cargo.toml +1 -1
  8. package/vendor/bridge-binaries/darwin-arm64/codex-rust-bridge +0 -0
  9. package/vendor/bridge-binaries/darwin-x64/codex-rust-bridge +0 -0
  10. package/vendor/bridge-binaries/linux-x64/codex-rust-bridge +0 -0
  11. package/vendor/bridge-binaries/win32-x64/codex-rust-bridge.exe +0 -0
  12. package/.artifacts/bridge-binaries/bridge-binaries-darwin-arm64/codex-rust-bridge +0 -0
  13. package/.artifacts/bridge-binaries/bridge-binaries-darwin-x64/codex-rust-bridge +0 -0
  14. package/.artifacts/bridge-binaries/bridge-binaries-linux-x64/codex-rust-bridge +0 -0
  15. package/.artifacts/bridge-binaries/bridge-binaries-win32-x64/codex-rust-bridge.exe +0 -0
  16. package/.github/workflows/ci.yml +0 -80
  17. package/.github/workflows/npm-release.yml +0 -208
  18. package/.github/workflows/pages.yml +0 -41
  19. package/AGENTS.md +0 -273
  20. package/STATUS.md +0 -115
  21. package/apps/mobile/.env.example +0 -6
  22. package/apps/mobile/App.tsx +0 -943
  23. package/apps/mobile/app.json +0 -77
  24. package/apps/mobile/assets/brand/adaptive-icon.png +0 -0
  25. package/apps/mobile/assets/brand/app-icon.png +0 -0
  26. package/apps/mobile/assets/brand/favicon.png +0 -0
  27. package/apps/mobile/assets/brand/mark.png +0 -0
  28. package/apps/mobile/assets/brand/splash-icon-white.png +0 -0
  29. package/apps/mobile/assets/brand/splash-icon.png +0 -0
  30. package/apps/mobile/babel.config.js +0 -7
  31. package/apps/mobile/eas.json +0 -40
  32. package/apps/mobile/eslint.config.cjs +0 -28
  33. package/apps/mobile/index.js +0 -5
  34. package/apps/mobile/package.json +0 -57
  35. package/apps/mobile/plugins/withAndroidCleartextTraffic.js +0 -14
  36. package/apps/mobile/src/api/__tests__/chatMapping.test.ts +0 -351
  37. package/apps/mobile/src/api/__tests__/client.test.ts +0 -1494
  38. package/apps/mobile/src/api/__tests__/ws.test.ts +0 -640
  39. package/apps/mobile/src/api/account.ts +0 -47
  40. package/apps/mobile/src/api/chatMapping.ts +0 -1048
  41. package/apps/mobile/src/api/client.ts +0 -1430
  42. package/apps/mobile/src/api/rateLimits.ts +0 -143
  43. package/apps/mobile/src/api/types.ts +0 -435
  44. package/apps/mobile/src/api/ws.ts +0 -852
  45. package/apps/mobile/src/bridgeUrl.ts +0 -105
  46. package/apps/mobile/src/components/ActivityBar.tsx +0 -95
  47. package/apps/mobile/src/components/ApprovalBanner.tsx +0 -207
  48. package/apps/mobile/src/components/BrandMark.tsx +0 -43
  49. package/apps/mobile/src/components/ChatHeader.tsx +0 -107
  50. package/apps/mobile/src/components/ChatInput.tsx +0 -457
  51. package/apps/mobile/src/components/ChatMessage.tsx +0 -959
  52. package/apps/mobile/src/components/ComposerUsageLimits.tsx +0 -167
  53. package/apps/mobile/src/components/SelectionSheet.tsx +0 -466
  54. package/apps/mobile/src/components/StatusLine.tsx +0 -52
  55. package/apps/mobile/src/components/ToolBlock.tsx +0 -67
  56. package/apps/mobile/src/components/TypingIndicator.tsx +0 -64
  57. package/apps/mobile/src/components/VoiceRecordingWaveform.tsx +0 -181
  58. package/apps/mobile/src/components/WorkspacePickerModal.tsx +0 -812
  59. package/apps/mobile/src/components/__tests__/chat-input-layout.test.ts +0 -35
  60. package/apps/mobile/src/components/__tests__/chatImageSource.test.ts +0 -44
  61. package/apps/mobile/src/components/__tests__/composerUsageLimits.test.ts +0 -138
  62. package/apps/mobile/src/components/__tests__/voiceWaveform.test.ts +0 -31
  63. package/apps/mobile/src/components/chat-input-layout.ts +0 -59
  64. package/apps/mobile/src/components/chatImageSource.ts +0 -86
  65. package/apps/mobile/src/components/usageLimitBadges.ts +0 -109
  66. package/apps/mobile/src/components/voiceWaveform.ts +0 -46
  67. package/apps/mobile/src/config.ts +0 -64
  68. package/apps/mobile/src/hooks/useVoiceRecorder.ts +0 -271
  69. package/apps/mobile/src/navigation/DrawerContent.tsx +0 -1129
  70. package/apps/mobile/src/navigation/__tests__/chatThreadTree.test.ts +0 -89
  71. package/apps/mobile/src/navigation/__tests__/drawerChats.test.ts +0 -65
  72. package/apps/mobile/src/navigation/chatThreadTree.ts +0 -191
  73. package/apps/mobile/src/navigation/drawerChats.ts +0 -9
  74. package/apps/mobile/src/screens/GitScreen.tsx +0 -1489
  75. package/apps/mobile/src/screens/MainScreen.tsx +0 -10511
  76. package/apps/mobile/src/screens/OnboardingScreen.tsx +0 -1746
  77. package/apps/mobile/src/screens/PrivacyScreen.tsx +0 -196
  78. package/apps/mobile/src/screens/SettingsScreen.tsx +0 -870
  79. package/apps/mobile/src/screens/TerminalScreen.tsx +0 -248
  80. package/apps/mobile/src/screens/TermsScreen.tsx +0 -192
  81. package/apps/mobile/src/screens/__tests__/agentThreadDisplay.test.ts +0 -80
  82. package/apps/mobile/src/screens/__tests__/agentThreads.test.ts +0 -170
  83. package/apps/mobile/src/screens/__tests__/gitDiff.test.ts +0 -131
  84. package/apps/mobile/src/screens/__tests__/planCardState.test.ts +0 -88
  85. package/apps/mobile/src/screens/__tests__/subAgentTranscript.test.ts +0 -102
  86. package/apps/mobile/src/screens/__tests__/transcriptMessages.test.ts +0 -97
  87. package/apps/mobile/src/screens/agentThreadDisplay.ts +0 -261
  88. package/apps/mobile/src/screens/agentThreads.ts +0 -167
  89. package/apps/mobile/src/screens/gitDiff.ts +0 -380
  90. package/apps/mobile/src/screens/planCardState.ts +0 -40
  91. package/apps/mobile/src/screens/subAgentTranscript.ts +0 -149
  92. package/apps/mobile/src/screens/transcriptMessages.ts +0 -102
  93. package/apps/mobile/src/theme.ts +0 -106
  94. package/apps/mobile/src/types/assets.d.ts +0 -4
  95. package/apps/mobile/tsconfig.json +0 -33
  96. package/docs/app-review-notes.md +0 -116
  97. package/docs/codex-app-server-cli-gap-tracker.md +0 -90
  98. package/docs/eas-builds.md +0 -91
  99. package/docs/open-source-license-requirements.md +0 -32
  100. package/docs/plans/2026-02-20-codex-desktop-style-redesign.md +0 -190
  101. package/docs/plans/2026-02-20-codex-mobile-implementation.md +0 -1630
  102. package/docs/plans/2026-02-21-codex-ui-redesign-design.md +0 -101
  103. package/docs/plans/2026-02-21-codex-ui-redesign.md +0 -1229
  104. package/docs/privacy-policy.md +0 -54
  105. package/docs/realtime-streaming-limitations.md +0 -161
  106. package/docs/terms-of-service.md +0 -33
  107. package/docs/voice-transcription.md +0 -87
  108. package/scripts/codex-live-demo.sh +0 -69
  109. package/scripts/start-bridge-secure.sh +0 -5
  110. package/scripts/start-expo.sh +0 -176
  111. package/scripts/sync-versions.js +0 -63
  112. package/scripts/teardown.sh +0 -136
  113. package/services/mac-bridge/.env.example +0 -10
  114. package/services/mac-bridge/codex-types/AbsolutePathBuf.ts +0 -14
  115. package/services/mac-bridge/codex-types/AddConversationListenerParams.ts +0 -6
  116. package/services/mac-bridge/codex-types/AddConversationSubscriptionResponse.ts +0 -5
  117. package/services/mac-bridge/codex-types/AgentMessageContent.ts +0 -5
  118. package/services/mac-bridge/codex-types/AgentMessageContentDeltaEvent.ts +0 -5
  119. package/services/mac-bridge/codex-types/AgentMessageDeltaEvent.ts +0 -5
  120. package/services/mac-bridge/codex-types/AgentMessageEvent.ts +0 -5
  121. package/services/mac-bridge/codex-types/AgentMessageItem.ts +0 -21
  122. package/services/mac-bridge/codex-types/AgentReasoningDeltaEvent.ts +0 -5
  123. package/services/mac-bridge/codex-types/AgentReasoningEvent.ts +0 -5
  124. package/services/mac-bridge/codex-types/AgentReasoningRawContentDeltaEvent.ts +0 -5
  125. package/services/mac-bridge/codex-types/AgentReasoningRawContentEvent.ts +0 -5
  126. package/services/mac-bridge/codex-types/AgentReasoningSectionBreakEvent.ts +0 -5
  127. package/services/mac-bridge/codex-types/AgentStatus.ts +0 -8
  128. package/services/mac-bridge/codex-types/ApplyPatchApprovalParams.ts +0 -21
  129. package/services/mac-bridge/codex-types/ApplyPatchApprovalRequestEvent.ts +0 -23
  130. package/services/mac-bridge/codex-types/ApplyPatchApprovalResponse.ts +0 -6
  131. package/services/mac-bridge/codex-types/ArchiveConversationParams.ts +0 -6
  132. package/services/mac-bridge/codex-types/ArchiveConversationResponse.ts +0 -5
  133. package/services/mac-bridge/codex-types/AskForApproval.ts +0 -9
  134. package/services/mac-bridge/codex-types/AuthMode.ts +0 -8
  135. package/services/mac-bridge/codex-types/AuthStatusChangeNotification.ts +0 -9
  136. package/services/mac-bridge/codex-types/BackgroundEventEvent.ts +0 -5
  137. package/services/mac-bridge/codex-types/ByteRange.ts +0 -13
  138. package/services/mac-bridge/codex-types/CallToolResult.ts +0 -9
  139. package/services/mac-bridge/codex-types/CancelLoginChatGptParams.ts +0 -5
  140. package/services/mac-bridge/codex-types/CancelLoginChatGptResponse.ts +0 -5
  141. package/services/mac-bridge/codex-types/ClientInfo.ts +0 -5
  142. package/services/mac-bridge/codex-types/ClientNotification.ts +0 -5
  143. package/services/mac-bridge/codex-types/ClientRequest.ts +0 -60
  144. package/services/mac-bridge/codex-types/CodexErrorInfo.ts +0 -8
  145. package/services/mac-bridge/codex-types/CollabAgentInteractionBeginEvent.ts +0 -23
  146. package/services/mac-bridge/codex-types/CollabAgentInteractionEndEvent.ts +0 -28
  147. package/services/mac-bridge/codex-types/CollabAgentSpawnBeginEvent.ts +0 -19
  148. package/services/mac-bridge/codex-types/CollabAgentSpawnEndEvent.ts +0 -28
  149. package/services/mac-bridge/codex-types/CollabCloseBeginEvent.ts +0 -18
  150. package/services/mac-bridge/codex-types/CollabCloseEndEvent.ts +0 -24
  151. package/services/mac-bridge/codex-types/CollabResumeBeginEvent.ts +0 -18
  152. package/services/mac-bridge/codex-types/CollabResumeEndEvent.ts +0 -24
  153. package/services/mac-bridge/codex-types/CollabWaitingBeginEvent.ts +0 -18
  154. package/services/mac-bridge/codex-types/CollabWaitingEndEvent.ts +0 -19
  155. package/services/mac-bridge/codex-types/CollaborationMode.ts +0 -10
  156. package/services/mac-bridge/codex-types/CollaborationModeMask.ts +0 -11
  157. package/services/mac-bridge/codex-types/ContentItem.ts +0 -5
  158. package/services/mac-bridge/codex-types/ContextCompactedEvent.ts +0 -5
  159. package/services/mac-bridge/codex-types/ContextCompactionItem.ts +0 -5
  160. package/services/mac-bridge/codex-types/ConversationGitInfo.ts +0 -5
  161. package/services/mac-bridge/codex-types/ConversationSummary.ts +0 -8
  162. package/services/mac-bridge/codex-types/CreditsSnapshot.ts +0 -5
  163. package/services/mac-bridge/codex-types/CustomPrompt.ts +0 -5
  164. package/services/mac-bridge/codex-types/DeprecationNoticeEvent.ts +0 -13
  165. package/services/mac-bridge/codex-types/DynamicToolCallRequest.ts +0 -6
  166. package/services/mac-bridge/codex-types/ElicitationRequestEvent.ts +0 -5
  167. package/services/mac-bridge/codex-types/ErrorEvent.ts +0 -6
  168. package/services/mac-bridge/codex-types/EventMsg.ts +0 -78
  169. package/services/mac-bridge/codex-types/ExecApprovalRequestEvent.ts +0 -44
  170. package/services/mac-bridge/codex-types/ExecCommandApprovalParams.ts +0 -16
  171. package/services/mac-bridge/codex-types/ExecCommandApprovalResponse.ts +0 -6
  172. package/services/mac-bridge/codex-types/ExecCommandBeginEvent.ts +0 -35
  173. package/services/mac-bridge/codex-types/ExecCommandEndEvent.ts +0 -64
  174. package/services/mac-bridge/codex-types/ExecCommandOutputDeltaEvent.ts +0 -18
  175. package/services/mac-bridge/codex-types/ExecCommandSource.ts +0 -5
  176. package/services/mac-bridge/codex-types/ExecCommandStatus.ts +0 -5
  177. package/services/mac-bridge/codex-types/ExecOneOffCommandParams.ts +0 -6
  178. package/services/mac-bridge/codex-types/ExecOneOffCommandResponse.ts +0 -5
  179. package/services/mac-bridge/codex-types/ExecOutputStream.ts +0 -5
  180. package/services/mac-bridge/codex-types/ExecPolicyAmendment.ts +0 -12
  181. package/services/mac-bridge/codex-types/ExitedReviewModeEvent.ts +0 -6
  182. package/services/mac-bridge/codex-types/FileChange.ts +0 -5
  183. package/services/mac-bridge/codex-types/ForcedLoginMethod.ts +0 -5
  184. package/services/mac-bridge/codex-types/ForkConversationParams.ts +0 -7
  185. package/services/mac-bridge/codex-types/ForkConversationResponse.ts +0 -7
  186. package/services/mac-bridge/codex-types/FunctionCallOutputBody.ts +0 -6
  187. package/services/mac-bridge/codex-types/FunctionCallOutputContentItem.ts +0 -9
  188. package/services/mac-bridge/codex-types/FunctionCallOutputPayload.ts +0 -12
  189. package/services/mac-bridge/codex-types/FuzzyFileSearchParams.ts +0 -5
  190. package/services/mac-bridge/codex-types/FuzzyFileSearchResponse.ts +0 -6
  191. package/services/mac-bridge/codex-types/FuzzyFileSearchResult.ts +0 -8
  192. package/services/mac-bridge/codex-types/FuzzyFileSearchSessionCompletedNotification.ts +0 -5
  193. package/services/mac-bridge/codex-types/FuzzyFileSearchSessionUpdatedNotification.ts +0 -6
  194. package/services/mac-bridge/codex-types/GetAuthStatusParams.ts +0 -5
  195. package/services/mac-bridge/codex-types/GetAuthStatusResponse.ts +0 -6
  196. package/services/mac-bridge/codex-types/GetConversationSummaryParams.ts +0 -6
  197. package/services/mac-bridge/codex-types/GetConversationSummaryResponse.ts +0 -6
  198. package/services/mac-bridge/codex-types/GetHistoryEntryResponseEvent.ts +0 -10
  199. package/services/mac-bridge/codex-types/GetUserAgentResponse.ts +0 -5
  200. package/services/mac-bridge/codex-types/GetUserSavedConfigResponse.ts +0 -6
  201. package/services/mac-bridge/codex-types/GhostCommit.ts +0 -8
  202. package/services/mac-bridge/codex-types/GitDiffToRemoteParams.ts +0 -5
  203. package/services/mac-bridge/codex-types/GitDiffToRemoteResponse.ts +0 -6
  204. package/services/mac-bridge/codex-types/GitSha.ts +0 -5
  205. package/services/mac-bridge/codex-types/HistoryEntry.ts +0 -5
  206. package/services/mac-bridge/codex-types/InitializeCapabilities.ts +0 -17
  207. package/services/mac-bridge/codex-types/InitializeParams.ts +0 -7
  208. package/services/mac-bridge/codex-types/InitializeResponse.ts +0 -5
  209. package/services/mac-bridge/codex-types/InputItem.ts +0 -10
  210. package/services/mac-bridge/codex-types/InputModality.ts +0 -8
  211. package/services/mac-bridge/codex-types/InterruptConversationParams.ts +0 -6
  212. package/services/mac-bridge/codex-types/InterruptConversationResponse.ts +0 -6
  213. package/services/mac-bridge/codex-types/ItemCompletedEvent.ts +0 -7
  214. package/services/mac-bridge/codex-types/ItemStartedEvent.ts +0 -7
  215. package/services/mac-bridge/codex-types/ListConversationsParams.ts +0 -5
  216. package/services/mac-bridge/codex-types/ListConversationsResponse.ts +0 -6
  217. package/services/mac-bridge/codex-types/ListCustomPromptsResponseEvent.ts +0 -9
  218. package/services/mac-bridge/codex-types/ListRemoteSkillsResponseEvent.ts +0 -9
  219. package/services/mac-bridge/codex-types/ListSkillsResponseEvent.ts +0 -9
  220. package/services/mac-bridge/codex-types/LocalShellAction.ts +0 -6
  221. package/services/mac-bridge/codex-types/LocalShellExecAction.ts +0 -5
  222. package/services/mac-bridge/codex-types/LocalShellStatus.ts +0 -5
  223. package/services/mac-bridge/codex-types/LoginApiKeyParams.ts +0 -5
  224. package/services/mac-bridge/codex-types/LoginApiKeyResponse.ts +0 -5
  225. package/services/mac-bridge/codex-types/LoginChatGptCompleteNotification.ts +0 -8
  226. package/services/mac-bridge/codex-types/LoginChatGptResponse.ts +0 -5
  227. package/services/mac-bridge/codex-types/LogoutChatGptResponse.ts +0 -5
  228. package/services/mac-bridge/codex-types/McpAuthStatus.ts +0 -5
  229. package/services/mac-bridge/codex-types/McpInvocation.ts +0 -18
  230. package/services/mac-bridge/codex-types/McpListToolsResponseEvent.ts +0 -25
  231. package/services/mac-bridge/codex-types/McpStartupCompleteEvent.ts +0 -6
  232. package/services/mac-bridge/codex-types/McpStartupFailure.ts +0 -5
  233. package/services/mac-bridge/codex-types/McpStartupStatus.ts +0 -5
  234. package/services/mac-bridge/codex-types/McpStartupUpdateEvent.ts +0 -14
  235. package/services/mac-bridge/codex-types/McpToolCallBeginEvent.ts +0 -10
  236. package/services/mac-bridge/codex-types/McpToolCallEndEvent.ts +0 -15
  237. package/services/mac-bridge/codex-types/MessagePhase.ts +0 -11
  238. package/services/mac-bridge/codex-types/ModeKind.ts +0 -8
  239. package/services/mac-bridge/codex-types/ModelRerouteEvent.ts +0 -6
  240. package/services/mac-bridge/codex-types/ModelRerouteReason.ts +0 -5
  241. package/services/mac-bridge/codex-types/NetworkAccess.ts +0 -8
  242. package/services/mac-bridge/codex-types/NetworkApprovalContext.ts +0 -6
  243. package/services/mac-bridge/codex-types/NetworkApprovalProtocol.ts +0 -5
  244. package/services/mac-bridge/codex-types/NewConversationParams.ts +0 -8
  245. package/services/mac-bridge/codex-types/NewConversationResponse.ts +0 -7
  246. package/services/mac-bridge/codex-types/ParsedCommand.ts +0 -12
  247. package/services/mac-bridge/codex-types/PatchApplyBeginEvent.ts +0 -23
  248. package/services/mac-bridge/codex-types/PatchApplyEndEvent.ts +0 -36
  249. package/services/mac-bridge/codex-types/PatchApplyStatus.ts +0 -5
  250. package/services/mac-bridge/codex-types/Personality.ts +0 -5
  251. package/services/mac-bridge/codex-types/PlanDeltaEvent.ts +0 -5
  252. package/services/mac-bridge/codex-types/PlanItem.ts +0 -5
  253. package/services/mac-bridge/codex-types/PlanItemArg.ts +0 -6
  254. package/services/mac-bridge/codex-types/PlanType.ts +0 -5
  255. package/services/mac-bridge/codex-types/Profile.ts +0 -9
  256. package/services/mac-bridge/codex-types/RateLimitSnapshot.ts +0 -8
  257. package/services/mac-bridge/codex-types/RateLimitWindow.ts +0 -17
  258. package/services/mac-bridge/codex-types/RawResponseItemEvent.ts +0 -6
  259. package/services/mac-bridge/codex-types/ReadOnlyAccess.ts +0 -19
  260. package/services/mac-bridge/codex-types/ReasoningContentDeltaEvent.ts +0 -5
  261. package/services/mac-bridge/codex-types/ReasoningEffort.ts +0 -8
  262. package/services/mac-bridge/codex-types/ReasoningItem.ts +0 -5
  263. package/services/mac-bridge/codex-types/ReasoningItemContent.ts +0 -5
  264. package/services/mac-bridge/codex-types/ReasoningItemReasoningSummary.ts +0 -5
  265. package/services/mac-bridge/codex-types/ReasoningRawContentDeltaEvent.ts +0 -5
  266. package/services/mac-bridge/codex-types/ReasoningSummary.ts +0 -10
  267. package/services/mac-bridge/codex-types/RemoteSkillDownloadedEvent.ts +0 -8
  268. package/services/mac-bridge/codex-types/RemoteSkillSummary.ts +0 -5
  269. package/services/mac-bridge/codex-types/RemoveConversationListenerParams.ts +0 -5
  270. package/services/mac-bridge/codex-types/RemoveConversationSubscriptionResponse.ts +0 -5
  271. package/services/mac-bridge/codex-types/RequestId.ts +0 -5
  272. package/services/mac-bridge/codex-types/RequestUserInputEvent.ts +0 -15
  273. package/services/mac-bridge/codex-types/RequestUserInputQuestion.ts +0 -6
  274. package/services/mac-bridge/codex-types/RequestUserInputQuestionOption.ts +0 -5
  275. package/services/mac-bridge/codex-types/Resource.ts +0 -9
  276. package/services/mac-bridge/codex-types/ResourceTemplate.ts +0 -9
  277. package/services/mac-bridge/codex-types/ResponseItem.ts +0 -18
  278. package/services/mac-bridge/codex-types/ResumeConversationParams.ts +0 -8
  279. package/services/mac-bridge/codex-types/ResumeConversationResponse.ts +0 -7
  280. package/services/mac-bridge/codex-types/ReviewCodeLocation.ts +0 -9
  281. package/services/mac-bridge/codex-types/ReviewDecision.ts +0 -9
  282. package/services/mac-bridge/codex-types/ReviewFinding.ts +0 -9
  283. package/services/mac-bridge/codex-types/ReviewLineRange.ts +0 -8
  284. package/services/mac-bridge/codex-types/ReviewOutputEvent.ts +0 -9
  285. package/services/mac-bridge/codex-types/ReviewRequest.ts +0 -9
  286. package/services/mac-bridge/codex-types/ReviewTarget.ts +0 -9
  287. package/services/mac-bridge/codex-types/SandboxMode.ts +0 -5
  288. package/services/mac-bridge/codex-types/SandboxPolicy.ts +0 -44
  289. package/services/mac-bridge/codex-types/SandboxSettings.ts +0 -6
  290. package/services/mac-bridge/codex-types/SendUserMessageParams.ts +0 -7
  291. package/services/mac-bridge/codex-types/SendUserMessageResponse.ts +0 -5
  292. package/services/mac-bridge/codex-types/SendUserTurnParams.ts +0 -16
  293. package/services/mac-bridge/codex-types/SendUserTurnResponse.ts +0 -5
  294. package/services/mac-bridge/codex-types/ServerNotification.ts +0 -45
  295. package/services/mac-bridge/codex-types/ServerRequest.ts +0 -16
  296. package/services/mac-bridge/codex-types/SessionConfiguredEvent.ts +0 -57
  297. package/services/mac-bridge/codex-types/SessionConfiguredNotification.ts +0 -8
  298. package/services/mac-bridge/codex-types/SessionNetworkProxyRuntime.ts +0 -5
  299. package/services/mac-bridge/codex-types/SessionSource.ts +0 -6
  300. package/services/mac-bridge/codex-types/SetDefaultModelParams.ts +0 -6
  301. package/services/mac-bridge/codex-types/SetDefaultModelResponse.ts +0 -5
  302. package/services/mac-bridge/codex-types/Settings.ts +0 -9
  303. package/services/mac-bridge/codex-types/SkillDependencies.ts +0 -6
  304. package/services/mac-bridge/codex-types/SkillErrorInfo.ts +0 -5
  305. package/services/mac-bridge/codex-types/SkillInterface.ts +0 -5
  306. package/services/mac-bridge/codex-types/SkillMetadata.ts +0 -12
  307. package/services/mac-bridge/codex-types/SkillScope.ts +0 -5
  308. package/services/mac-bridge/codex-types/SkillToolDependency.ts +0 -5
  309. package/services/mac-bridge/codex-types/SkillsListEntry.ts +0 -7
  310. package/services/mac-bridge/codex-types/StepStatus.ts +0 -5
  311. package/services/mac-bridge/codex-types/StreamErrorEvent.ts +0 -12
  312. package/services/mac-bridge/codex-types/SubAgentSource.ts +0 -6
  313. package/services/mac-bridge/codex-types/TerminalInteractionEvent.ts +0 -17
  314. package/services/mac-bridge/codex-types/TextElement.ts +0 -14
  315. package/services/mac-bridge/codex-types/ThreadId.ts +0 -5
  316. package/services/mac-bridge/codex-types/ThreadNameUpdatedEvent.ts +0 -6
  317. package/services/mac-bridge/codex-types/ThreadRolledBackEvent.ts +0 -9
  318. package/services/mac-bridge/codex-types/TokenCountEvent.ts +0 -7
  319. package/services/mac-bridge/codex-types/TokenUsage.ts +0 -5
  320. package/services/mac-bridge/codex-types/TokenUsageInfo.ts +0 -6
  321. package/services/mac-bridge/codex-types/Tool.ts +0 -9
  322. package/services/mac-bridge/codex-types/Tools.ts +0 -5
  323. package/services/mac-bridge/codex-types/TurnAbortReason.ts +0 -5
  324. package/services/mac-bridge/codex-types/TurnAbortedEvent.ts +0 -6
  325. package/services/mac-bridge/codex-types/TurnCompleteEvent.ts +0 -5
  326. package/services/mac-bridge/codex-types/TurnDiffEvent.ts +0 -5
  327. package/services/mac-bridge/codex-types/TurnItem.ts +0 -11
  328. package/services/mac-bridge/codex-types/TurnStartedEvent.ts +0 -6
  329. package/services/mac-bridge/codex-types/UndoCompletedEvent.ts +0 -5
  330. package/services/mac-bridge/codex-types/UndoStartedEvent.ts +0 -5
  331. package/services/mac-bridge/codex-types/UpdatePlanArgs.ts +0 -10
  332. package/services/mac-bridge/codex-types/UserInfoResponse.ts +0 -5
  333. package/services/mac-bridge/codex-types/UserInput.ts +0 -16
  334. package/services/mac-bridge/codex-types/UserMessageEvent.ts +0 -22
  335. package/services/mac-bridge/codex-types/UserMessageItem.ts +0 -6
  336. package/services/mac-bridge/codex-types/UserSavedConfig.ts +0 -14
  337. package/services/mac-bridge/codex-types/Verbosity.ts +0 -9
  338. package/services/mac-bridge/codex-types/ViewImageToolCallEvent.ts +0 -13
  339. package/services/mac-bridge/codex-types/WarningEvent.ts +0 -5
  340. package/services/mac-bridge/codex-types/WebSearchAction.ts +0 -5
  341. package/services/mac-bridge/codex-types/WebSearchBeginEvent.ts +0 -5
  342. package/services/mac-bridge/codex-types/WebSearchEndEvent.ts +0 -6
  343. package/services/mac-bridge/codex-types/WebSearchItem.ts +0 -6
  344. package/services/mac-bridge/codex-types/WebSearchMode.ts +0 -5
  345. package/services/mac-bridge/codex-types/index.ts +0 -234
  346. package/services/mac-bridge/codex-types/serde_json/JsonValue.ts +0 -5
  347. package/services/mac-bridge/codex-types/v2/Account.ts +0 -6
  348. package/services/mac-bridge/codex-types/v2/AccountLoginCompletedNotification.ts +0 -5
  349. package/services/mac-bridge/codex-types/v2/AccountRateLimitsUpdatedNotification.ts +0 -6
  350. package/services/mac-bridge/codex-types/v2/AccountUpdatedNotification.ts +0 -6
  351. package/services/mac-bridge/codex-types/v2/AgentMessageDeltaNotification.ts +0 -5
  352. package/services/mac-bridge/codex-types/v2/AnalyticsConfig.ts +0 -6
  353. package/services/mac-bridge/codex-types/v2/AppBranding.ts +0 -8
  354. package/services/mac-bridge/codex-types/v2/AppDisabledReason.ts +0 -5
  355. package/services/mac-bridge/codex-types/v2/AppInfo.ts +0 -19
  356. package/services/mac-bridge/codex-types/v2/AppListUpdatedNotification.ts +0 -9
  357. package/services/mac-bridge/codex-types/v2/AppMetadata.ts +0 -7
  358. package/services/mac-bridge/codex-types/v2/AppReview.ts +0 -5
  359. package/services/mac-bridge/codex-types/v2/AppScreenshot.ts +0 -5
  360. package/services/mac-bridge/codex-types/v2/AppsConfig.ts +0 -6
  361. package/services/mac-bridge/codex-types/v2/AppsListParams.ts +0 -24
  362. package/services/mac-bridge/codex-types/v2/AppsListResponse.ts +0 -14
  363. package/services/mac-bridge/codex-types/v2/AskForApproval.ts +0 -5
  364. package/services/mac-bridge/codex-types/v2/ByteRange.ts +0 -5
  365. package/services/mac-bridge/codex-types/v2/CancelLoginAccountParams.ts +0 -5
  366. package/services/mac-bridge/codex-types/v2/CancelLoginAccountResponse.ts +0 -6
  367. package/services/mac-bridge/codex-types/v2/CancelLoginAccountStatus.ts +0 -5
  368. package/services/mac-bridge/codex-types/v2/ChatgptAuthTokensRefreshParams.ts +0 -16
  369. package/services/mac-bridge/codex-types/v2/ChatgptAuthTokensRefreshReason.ts +0 -5
  370. package/services/mac-bridge/codex-types/v2/ChatgptAuthTokensRefreshResponse.ts +0 -5
  371. package/services/mac-bridge/codex-types/v2/CodexErrorInfo.ts +0 -11
  372. package/services/mac-bridge/codex-types/v2/CollabAgentState.ts +0 -6
  373. package/services/mac-bridge/codex-types/v2/CollabAgentStatus.ts +0 -5
  374. package/services/mac-bridge/codex-types/v2/CollabAgentTool.ts +0 -5
  375. package/services/mac-bridge/codex-types/v2/CollabAgentToolCallStatus.ts +0 -5
  376. package/services/mac-bridge/codex-types/v2/CommandAction.ts +0 -5
  377. package/services/mac-bridge/codex-types/v2/CommandExecParams.ts +0 -6
  378. package/services/mac-bridge/codex-types/v2/CommandExecResponse.ts +0 -5
  379. package/services/mac-bridge/codex-types/v2/CommandExecutionApprovalDecision.ts +0 -6
  380. package/services/mac-bridge/codex-types/v2/CommandExecutionOutputDeltaNotification.ts +0 -5
  381. package/services/mac-bridge/codex-types/v2/CommandExecutionRequestApprovalParams.ts +0 -37
  382. package/services/mac-bridge/codex-types/v2/CommandExecutionRequestApprovalResponse.ts +0 -6
  383. package/services/mac-bridge/codex-types/v2/CommandExecutionStatus.ts +0 -5
  384. package/services/mac-bridge/codex-types/v2/Config.ts +0 -17
  385. package/services/mac-bridge/codex-types/v2/ConfigBatchWriteParams.ts +0 -10
  386. package/services/mac-bridge/codex-types/v2/ConfigEdit.ts +0 -7
  387. package/services/mac-bridge/codex-types/v2/ConfigLayer.ts +0 -7
  388. package/services/mac-bridge/codex-types/v2/ConfigLayerMetadata.ts +0 -6
  389. package/services/mac-bridge/codex-types/v2/ConfigLayerSource.ts +0 -16
  390. package/services/mac-bridge/codex-types/v2/ConfigReadParams.ts +0 -11
  391. package/services/mac-bridge/codex-types/v2/ConfigReadResponse.ts +0 -8
  392. package/services/mac-bridge/codex-types/v2/ConfigRequirements.ts +0 -9
  393. package/services/mac-bridge/codex-types/v2/ConfigRequirementsReadResponse.ts +0 -10
  394. package/services/mac-bridge/codex-types/v2/ConfigValueWriteParams.ts +0 -11
  395. package/services/mac-bridge/codex-types/v2/ConfigWarningNotification.ts +0 -22
  396. package/services/mac-bridge/codex-types/v2/ConfigWriteResponse.ts +0 -12
  397. package/services/mac-bridge/codex-types/v2/ContextCompactedNotification.ts +0 -8
  398. package/services/mac-bridge/codex-types/v2/CreditsSnapshot.ts +0 -5
  399. package/services/mac-bridge/codex-types/v2/DeprecationNoticeNotification.ts +0 -13
  400. package/services/mac-bridge/codex-types/v2/DynamicToolCallOutputContentItem.ts +0 -5
  401. package/services/mac-bridge/codex-types/v2/DynamicToolCallParams.ts +0 -6
  402. package/services/mac-bridge/codex-types/v2/DynamicToolCallResponse.ts +0 -6
  403. package/services/mac-bridge/codex-types/v2/DynamicToolSpec.ts +0 -6
  404. package/services/mac-bridge/codex-types/v2/ErrorNotification.ts +0 -6
  405. package/services/mac-bridge/codex-types/v2/ExecPolicyAmendment.ts +0 -5
  406. package/services/mac-bridge/codex-types/v2/ExperimentalFeature.ts +0 -37
  407. package/services/mac-bridge/codex-types/v2/ExperimentalFeatureListParams.ts +0 -13
  408. package/services/mac-bridge/codex-types/v2/ExperimentalFeatureListResponse.ts +0 -11
  409. package/services/mac-bridge/codex-types/v2/ExperimentalFeatureStage.ts +0 -5
  410. package/services/mac-bridge/codex-types/v2/FeedbackUploadParams.ts +0 -5
  411. package/services/mac-bridge/codex-types/v2/FeedbackUploadResponse.ts +0 -5
  412. package/services/mac-bridge/codex-types/v2/FileChangeApprovalDecision.ts +0 -5
  413. package/services/mac-bridge/codex-types/v2/FileChangeOutputDeltaNotification.ts +0 -5
  414. package/services/mac-bridge/codex-types/v2/FileChangeRequestApprovalParams.ts +0 -14
  415. package/services/mac-bridge/codex-types/v2/FileChangeRequestApprovalResponse.ts +0 -6
  416. package/services/mac-bridge/codex-types/v2/FileUpdateChange.ts +0 -6
  417. package/services/mac-bridge/codex-types/v2/GetAccountParams.ts +0 -13
  418. package/services/mac-bridge/codex-types/v2/GetAccountRateLimitsResponse.ts +0 -14
  419. package/services/mac-bridge/codex-types/v2/GetAccountResponse.ts +0 -6
  420. package/services/mac-bridge/codex-types/v2/GitInfo.ts +0 -5
  421. package/services/mac-bridge/codex-types/v2/HazelnutScope.ts +0 -5
  422. package/services/mac-bridge/codex-types/v2/ItemCompletedNotification.ts +0 -6
  423. package/services/mac-bridge/codex-types/v2/ItemStartedNotification.ts +0 -6
  424. package/services/mac-bridge/codex-types/v2/ListMcpServerStatusParams.ts +0 -13
  425. package/services/mac-bridge/codex-types/v2/ListMcpServerStatusResponse.ts +0 -11
  426. package/services/mac-bridge/codex-types/v2/LoginAccountParams.ts +0 -21
  427. package/services/mac-bridge/codex-types/v2/LoginAccountResponse.ts +0 -9
  428. package/services/mac-bridge/codex-types/v2/LogoutAccountResponse.ts +0 -5
  429. package/services/mac-bridge/codex-types/v2/McpAuthStatus.ts +0 -5
  430. package/services/mac-bridge/codex-types/v2/McpServerOauthLoginCompletedNotification.ts +0 -5
  431. package/services/mac-bridge/codex-types/v2/McpServerOauthLoginParams.ts +0 -5
  432. package/services/mac-bridge/codex-types/v2/McpServerOauthLoginResponse.ts +0 -5
  433. package/services/mac-bridge/codex-types/v2/McpServerRefreshResponse.ts +0 -5
  434. package/services/mac-bridge/codex-types/v2/McpServerStatus.ts +0 -9
  435. package/services/mac-bridge/codex-types/v2/McpToolCallError.ts +0 -5
  436. package/services/mac-bridge/codex-types/v2/McpToolCallProgressNotification.ts +0 -5
  437. package/services/mac-bridge/codex-types/v2/McpToolCallResult.ts +0 -6
  438. package/services/mac-bridge/codex-types/v2/McpToolCallStatus.ts +0 -5
  439. package/services/mac-bridge/codex-types/v2/MergeStrategy.ts +0 -5
  440. package/services/mac-bridge/codex-types/v2/Model.ts +0 -8
  441. package/services/mac-bridge/codex-types/v2/ModelListParams.ts +0 -17
  442. package/services/mac-bridge/codex-types/v2/ModelListResponse.ts +0 -11
  443. package/services/mac-bridge/codex-types/v2/ModelRerouteReason.ts +0 -5
  444. package/services/mac-bridge/codex-types/v2/ModelReroutedNotification.ts +0 -6
  445. package/services/mac-bridge/codex-types/v2/NetworkAccess.ts +0 -5
  446. package/services/mac-bridge/codex-types/v2/NetworkRequirements.ts +0 -5
  447. package/services/mac-bridge/codex-types/v2/OverriddenMetadata.ts +0 -7
  448. package/services/mac-bridge/codex-types/v2/PatchApplyStatus.ts +0 -5
  449. package/services/mac-bridge/codex-types/v2/PatchChangeKind.ts +0 -5
  450. package/services/mac-bridge/codex-types/v2/PlanDeltaNotification.ts +0 -9
  451. package/services/mac-bridge/codex-types/v2/ProductSurface.ts +0 -5
  452. package/services/mac-bridge/codex-types/v2/ProfileV2.ts +0 -11
  453. package/services/mac-bridge/codex-types/v2/RateLimitSnapshot.ts +0 -8
  454. package/services/mac-bridge/codex-types/v2/RateLimitWindow.ts +0 -5
  455. package/services/mac-bridge/codex-types/v2/RawResponseItemCompletedNotification.ts +0 -6
  456. package/services/mac-bridge/codex-types/v2/ReadOnlyAccess.ts +0 -6
  457. package/services/mac-bridge/codex-types/v2/ReasoningEffortOption.ts +0 -6
  458. package/services/mac-bridge/codex-types/v2/ReasoningSummaryPartAddedNotification.ts +0 -5
  459. package/services/mac-bridge/codex-types/v2/ReasoningSummaryTextDeltaNotification.ts +0 -5
  460. package/services/mac-bridge/codex-types/v2/ReasoningTextDeltaNotification.ts +0 -5
  461. package/services/mac-bridge/codex-types/v2/RemoteSkillSummary.ts +0 -5
  462. package/services/mac-bridge/codex-types/v2/ResidencyRequirement.ts +0 -5
  463. package/services/mac-bridge/codex-types/v2/ReviewDelivery.ts +0 -5
  464. package/services/mac-bridge/codex-types/v2/ReviewStartParams.ts +0 -12
  465. package/services/mac-bridge/codex-types/v2/ReviewStartResponse.ts +0 -13
  466. package/services/mac-bridge/codex-types/v2/ReviewTarget.ts +0 -9
  467. package/services/mac-bridge/codex-types/v2/SandboxMode.ts +0 -5
  468. package/services/mac-bridge/codex-types/v2/SandboxPolicy.ts +0 -8
  469. package/services/mac-bridge/codex-types/v2/SandboxWorkspaceWrite.ts +0 -5
  470. package/services/mac-bridge/codex-types/v2/SessionSource.ts +0 -6
  471. package/services/mac-bridge/codex-types/v2/SkillDependencies.ts +0 -6
  472. package/services/mac-bridge/codex-types/v2/SkillErrorInfo.ts +0 -5
  473. package/services/mac-bridge/codex-types/v2/SkillInterface.ts +0 -5
  474. package/services/mac-bridge/codex-types/v2/SkillMetadata.ts +0 -12
  475. package/services/mac-bridge/codex-types/v2/SkillScope.ts +0 -5
  476. package/services/mac-bridge/codex-types/v2/SkillToolDependency.ts +0 -5
  477. package/services/mac-bridge/codex-types/v2/SkillsConfigWriteParams.ts +0 -5
  478. package/services/mac-bridge/codex-types/v2/SkillsConfigWriteResponse.ts +0 -5
  479. package/services/mac-bridge/codex-types/v2/SkillsListEntry.ts +0 -7
  480. package/services/mac-bridge/codex-types/v2/SkillsListExtraRootsForCwd.ts +0 -5
  481. package/services/mac-bridge/codex-types/v2/SkillsListParams.ts +0 -18
  482. package/services/mac-bridge/codex-types/v2/SkillsListResponse.ts +0 -6
  483. package/services/mac-bridge/codex-types/v2/SkillsRemoteReadParams.ts +0 -7
  484. package/services/mac-bridge/codex-types/v2/SkillsRemoteReadResponse.ts +0 -6
  485. package/services/mac-bridge/codex-types/v2/SkillsRemoteWriteParams.ts +0 -5
  486. package/services/mac-bridge/codex-types/v2/SkillsRemoteWriteResponse.ts +0 -5
  487. package/services/mac-bridge/codex-types/v2/TerminalInteractionNotification.ts +0 -5
  488. package/services/mac-bridge/codex-types/v2/TextElement.ts +0 -14
  489. package/services/mac-bridge/codex-types/v2/TextPosition.ts +0 -13
  490. package/services/mac-bridge/codex-types/v2/TextRange.ts +0 -6
  491. package/services/mac-bridge/codex-types/v2/Thread.ts +0 -51
  492. package/services/mac-bridge/codex-types/v2/ThreadArchiveParams.ts +0 -5
  493. package/services/mac-bridge/codex-types/v2/ThreadArchiveResponse.ts +0 -5
  494. package/services/mac-bridge/codex-types/v2/ThreadArchivedNotification.ts +0 -5
  495. package/services/mac-bridge/codex-types/v2/ThreadCompactStartParams.ts +0 -5
  496. package/services/mac-bridge/codex-types/v2/ThreadCompactStartResponse.ts +0 -5
  497. package/services/mac-bridge/codex-types/v2/ThreadForkParams.ts +0 -28
  498. package/services/mac-bridge/codex-types/v2/ThreadForkResponse.ts +0 -9
  499. package/services/mac-bridge/codex-types/v2/ThreadItem.ts +0 -81
  500. package/services/mac-bridge/codex-types/v2/ThreadListParams.ts +0 -39
  501. package/services/mac-bridge/codex-types/v2/ThreadListResponse.ts +0 -11
  502. package/services/mac-bridge/codex-types/v2/ThreadLoadedListParams.ts +0 -13
  503. package/services/mac-bridge/codex-types/v2/ThreadLoadedListResponse.ts +0 -14
  504. package/services/mac-bridge/codex-types/v2/ThreadNameUpdatedNotification.ts +0 -5
  505. package/services/mac-bridge/codex-types/v2/ThreadReadParams.ts +0 -9
  506. package/services/mac-bridge/codex-types/v2/ThreadReadResponse.ts +0 -6
  507. package/services/mac-bridge/codex-types/v2/ThreadResumeParams.ts +0 -37
  508. package/services/mac-bridge/codex-types/v2/ThreadResumeResponse.ts +0 -9
  509. package/services/mac-bridge/codex-types/v2/ThreadRollbackParams.ts +0 -12
  510. package/services/mac-bridge/codex-types/v2/ThreadRollbackResponse.ts +0 -14
  511. package/services/mac-bridge/codex-types/v2/ThreadSetNameParams.ts +0 -5
  512. package/services/mac-bridge/codex-types/v2/ThreadSetNameResponse.ts +0 -5
  513. package/services/mac-bridge/codex-types/v2/ThreadSortKey.ts +0 -5
  514. package/services/mac-bridge/codex-types/v2/ThreadSourceKind.ts +0 -5
  515. package/services/mac-bridge/codex-types/v2/ThreadStartParams.ts +0 -17
  516. package/services/mac-bridge/codex-types/v2/ThreadStartResponse.ts +0 -9
  517. package/services/mac-bridge/codex-types/v2/ThreadStartedNotification.ts +0 -6
  518. package/services/mac-bridge/codex-types/v2/ThreadTokenUsage.ts +0 -6
  519. package/services/mac-bridge/codex-types/v2/ThreadTokenUsageUpdatedNotification.ts +0 -6
  520. package/services/mac-bridge/codex-types/v2/ThreadUnarchiveParams.ts +0 -5
  521. package/services/mac-bridge/codex-types/v2/ThreadUnarchiveResponse.ts +0 -6
  522. package/services/mac-bridge/codex-types/v2/ThreadUnarchivedNotification.ts +0 -5
  523. package/services/mac-bridge/codex-types/v2/TokenUsageBreakdown.ts +0 -5
  524. package/services/mac-bridge/codex-types/v2/ToolRequestUserInputAnswer.ts +0 -8
  525. package/services/mac-bridge/codex-types/v2/ToolRequestUserInputOption.ts +0 -8
  526. package/services/mac-bridge/codex-types/v2/ToolRequestUserInputParams.ts +0 -9
  527. package/services/mac-bridge/codex-types/v2/ToolRequestUserInputQuestion.ts +0 -9
  528. package/services/mac-bridge/codex-types/v2/ToolRequestUserInputResponse.ts +0 -9
  529. package/services/mac-bridge/codex-types/v2/ToolsV2.ts +0 -5
  530. package/services/mac-bridge/codex-types/v2/Turn.ts +0 -18
  531. package/services/mac-bridge/codex-types/v2/TurnCompletedNotification.ts +0 -6
  532. package/services/mac-bridge/codex-types/v2/TurnDiffUpdatedNotification.ts +0 -9
  533. package/services/mac-bridge/codex-types/v2/TurnError.ts +0 -6
  534. package/services/mac-bridge/codex-types/v2/TurnInterruptParams.ts +0 -5
  535. package/services/mac-bridge/codex-types/v2/TurnInterruptResponse.ts +0 -5
  536. package/services/mac-bridge/codex-types/v2/TurnPlanStep.ts +0 -6
  537. package/services/mac-bridge/codex-types/v2/TurnPlanStepStatus.ts +0 -5
  538. package/services/mac-bridge/codex-types/v2/TurnPlanUpdatedNotification.ts +0 -6
  539. package/services/mac-bridge/codex-types/v2/TurnStartParams.ts +0 -44
  540. package/services/mac-bridge/codex-types/v2/TurnStartResponse.ts +0 -6
  541. package/services/mac-bridge/codex-types/v2/TurnStartedNotification.ts +0 -6
  542. package/services/mac-bridge/codex-types/v2/TurnStatus.ts +0 -5
  543. package/services/mac-bridge/codex-types/v2/TurnSteerParams.ts +0 -11
  544. package/services/mac-bridge/codex-types/v2/TurnSteerResponse.ts +0 -5
  545. package/services/mac-bridge/codex-types/v2/UserInput.ts +0 -10
  546. package/services/mac-bridge/codex-types/v2/WebSearchAction.ts +0 -5
  547. package/services/mac-bridge/codex-types/v2/WindowsWorldWritableWarningNotification.ts +0 -5
  548. package/services/mac-bridge/codex-types/v2/WriteStatus.ts +0 -5
  549. package/services/mac-bridge/codex-types/v2/index.ts +0 -204
  550. package/services/mac-bridge/eslint.config.cjs +0 -22
  551. package/services/mac-bridge/package.json +0 -30
  552. package/services/mac-bridge/schema.ts +0 -0
  553. package/services/mac-bridge/src/index.ts +0 -18
  554. package/services/mac-bridge/src/server.ts +0 -426
  555. package/services/mac-bridge/src/services/__tests__/gitService.test.ts +0 -157
  556. package/services/mac-bridge/src/services/__tests__/realtimeHub.test.ts +0 -116
  557. package/services/mac-bridge/src/services/__tests__/terminalService.test.ts +0 -51
  558. package/services/mac-bridge/src/services/codexAppServerClient.ts +0 -507
  559. package/services/mac-bridge/src/services/codexCliAdapter.ts +0 -622
  560. package/services/mac-bridge/src/services/gitService.ts +0 -61
  561. package/services/mac-bridge/src/services/realtimeHub.ts +0 -25
  562. package/services/mac-bridge/src/services/terminalService.ts +0 -226
  563. package/services/mac-bridge/src/types.ts +0 -151
  564. package/services/mac-bridge/src/utils/__tests__/threadMapping.test.ts +0 -397
  565. package/services/mac-bridge/src/utils/threadMapping.ts +0 -176
  566. package/services/mac-bridge/tsconfig.json +0 -16
  567. package/services/mac-bridge/vitest.config.ts +0 -9
  568. package/services/rust-bridge/.env.example +0 -14
  569. package/services/rust-bridge/package.json +0 -13
  570. package/services/rust-bridge/security_best_practices_report.md +0 -24
  571. package/site/index.html +0 -54
  572. package/site/privacy/index.html +0 -80
  573. package/site/styles.css +0 -135
  574. package/site/support/index.html +0 -51
  575. package/site/terms/index.html +0 -68
  576. package/tsconfig.json +0 -4
@@ -1,852 +0,0 @@
1
- import { Platform } from 'react-native';
2
-
3
- import type { RpcNotification } from './types';
4
-
5
- type EventListener = (event: RpcNotification) => void;
6
- type StatusListener = (connected: boolean) => void;
7
-
8
- interface HostBridgeWsClientOptions {
9
- authToken?: string | null;
10
- allowQueryTokenAuth?: boolean;
11
- requestTimeoutMs?: number;
12
- }
13
-
14
- interface ReactNativeWebSocketConstructor {
15
- new (
16
- url: string,
17
- protocols?: string | string[],
18
- options?: {
19
- headers?: Record<string, string>;
20
- }
21
- ): WebSocket;
22
- }
23
-
24
- interface PendingRequest {
25
- resolve: (value: unknown) => void;
26
- reject: (reason?: unknown) => void;
27
- timeout: ReturnType<typeof setTimeout>;
28
- }
29
-
30
- interface TurnCompletionSnapshot {
31
- threadId: string;
32
- turnId: string | null;
33
- status: string | null;
34
- errorMessage: string | null;
35
- completedAt: number;
36
- }
37
-
38
- interface RpcError {
39
- code: number;
40
- message: string;
41
- data?: unknown;
42
- }
43
-
44
- interface ReplayEventsResponse {
45
- events?: unknown[];
46
- hasMore?: boolean;
47
- earliestEventId?: number;
48
- latestEventId?: number;
49
- }
50
-
51
- export class HostBridgeWsClient {
52
- private static readonly TURN_COMPLETION_TTL_MS = 5 * 60 * 1000;
53
- private static readonly RECENT_EVENT_ID_CACHE_SIZE = 4096;
54
- private socket: WebSocket | null = null;
55
- private connected = false;
56
- private shouldReconnect = false;
57
- private reconnectAttempts = 0;
58
- private connectPromise: Promise<void> | null = null;
59
-
60
- private readonly eventListeners = new Set<EventListener>();
61
- private readonly statusListeners = new Set<StatusListener>();
62
- private readonly pendingRequests = new Map<string | number, PendingRequest>();
63
- private readonly recentTurnCompletions = new Map<string, TurnCompletionSnapshot>();
64
- private readonly recentEventIds = new Set<number>();
65
- private readonly recentEventIdQueue: number[] = [];
66
- private readonly pendingTurnWaits = new Set<string>();
67
- private readonly authToken: string | null;
68
- private readonly allowQueryTokenAuth: boolean;
69
- private readonly baseUrl: string;
70
- private readonly requestTimeoutMs: number;
71
- private lastSeenEventId = 0;
72
- private replaySupported = true;
73
- private replayInFlight: Promise<void> | null = null;
74
- private requestCounter = 0;
75
-
76
- constructor(baseUrl: string, options: HostBridgeWsClientOptions = {}) {
77
- this.baseUrl = baseUrl.replace(/\/$/, '');
78
- this.authToken = options.authToken?.trim() || null;
79
- this.allowQueryTokenAuth = options.allowQueryTokenAuth ?? false;
80
- this.requestTimeoutMs = options.requestTimeoutMs ?? 180_000;
81
- }
82
-
83
- public get isConnected(): boolean {
84
- return this.connected;
85
- }
86
-
87
- connect(): void {
88
- this.shouldReconnect = true;
89
- if (this.socket || this.connectPromise) {
90
- return;
91
- }
92
-
93
- const promise = this.openSocket();
94
- this.connectPromise = promise;
95
- void promise.catch(() => {
96
- // Connection errors are surfaced through status listeners and retries.
97
- });
98
- }
99
-
100
- disconnect(): void {
101
- this.shouldReconnect = false;
102
-
103
- if (!this.socket) {
104
- this.emitStatus(false);
105
- return;
106
- }
107
-
108
- this.socket.close();
109
- this.socket = null;
110
- this.emitStatus(false);
111
- this.rejectAllPending(new Error('Bridge websocket disconnected'));
112
- }
113
-
114
- async request<T>(method: string, params?: unknown): Promise<T> {
115
- await this.ensureConnected();
116
-
117
- const id = `${Date.now()}-${++this.requestCounter}`;
118
- const payload: Record<string, unknown> = {
119
- id,
120
- method,
121
- };
122
-
123
- if (params !== undefined) {
124
- payload.params = params;
125
- }
126
-
127
- const socket = this.socket;
128
- if (!socket || socket.readyState !== 1) {
129
- throw new Error('Bridge websocket is not connected');
130
- }
131
-
132
- return await new Promise<T>((resolve, reject) => {
133
- const timeout = setTimeout(() => {
134
- this.pendingRequests.delete(id);
135
- reject(new Error(`RPC timeout for method: ${method}`));
136
- }, this.requestTimeoutMs);
137
-
138
- this.pendingRequests.set(id, {
139
- resolve: (value) => resolve(value as T),
140
- reject,
141
- timeout,
142
- });
143
-
144
- try {
145
- socket.send(JSON.stringify(payload));
146
- } catch (error) {
147
- clearTimeout(timeout);
148
- this.pendingRequests.delete(id);
149
- reject(error);
150
- }
151
- });
152
- }
153
-
154
- async waitForTurnCompletion(
155
- threadId: string,
156
- turnId: string,
157
- timeoutMs = this.requestTimeoutMs
158
- ): Promise<void> {
159
- const cachedCompletion = this.getTurnCompletion(threadId, turnId);
160
- if (cachedCompletion) {
161
- this.assertTurnSucceeded(cachedCompletion);
162
- return;
163
- }
164
-
165
- const waitKey = turnCompletionKey(threadId, turnId);
166
- this.pendingTurnWaits.add(waitKey);
167
- try {
168
- await new Promise<void>((resolve, reject) => {
169
- const finish = (result: { ok: true } | { ok: false; error: Error }) => {
170
- clearTimeout(timeout);
171
- unsubscribe();
172
- if (result.ok) {
173
- resolve();
174
- return;
175
- }
176
- reject(result.error);
177
- };
178
-
179
- const timeout = setTimeout(() => {
180
- finish({ ok: false, error: new Error(`turn timed out after ${String(timeoutMs)}ms`) });
181
- }, timeoutMs);
182
-
183
- const unsubscribe = this.onEvent((event) => {
184
- const canUseUnscopedEvent = this.canUseUnscopedTurnEvent(waitKey);
185
-
186
- if (event.method.startsWith('codex/event/')) {
187
- const codexEvent = toCodexEventSnapshot(event.method, event.params);
188
- if (!codexEvent) {
189
- return;
190
- }
191
-
192
- const isMatchingThread = codexEvent.threadId === threadId;
193
- const isUnscopedMatch = codexEvent.threadId === null && canUseUnscopedEvent;
194
- if (!isMatchingThread && !isUnscopedMatch) {
195
- return;
196
- }
197
-
198
- if (CODEX_TURN_ABORT_EVENT_TYPES.has(codexEvent.type)) {
199
- finish({ ok: false, error: new Error('turn aborted') });
200
- return;
201
- }
202
-
203
- if (CODEX_TURN_FAILURE_EVENT_TYPES.has(codexEvent.type)) {
204
- finish({ ok: false, error: new Error(`turn failed (${codexEvent.type})`) });
205
- return;
206
- }
207
-
208
- if (CODEX_TURN_COMPLETE_EVENT_TYPES.has(codexEvent.type)) {
209
- finish({ ok: true });
210
- return;
211
- }
212
- }
213
-
214
- if (event.method !== 'turn/completed') {
215
- return;
216
- }
217
-
218
- let normalizedCompletion: TurnCompletionSnapshot | null = null;
219
- const completion = toTurnCompletionSnapshot(event.params);
220
- if (completion) {
221
- if (completion.threadId !== threadId) {
222
- return;
223
- }
224
-
225
- if (completion.turnId && completion.turnId !== turnId) {
226
- return;
227
- }
228
-
229
- normalizedCompletion = completion.turnId
230
- ? completion
231
- : {
232
- ...completion,
233
- turnId,
234
- };
235
- } else if (canUseUnscopedEvent) {
236
- const unscopedCompletion = toUnscopedTurnCompletionSnapshot(event.params);
237
- if (!unscopedCompletion) {
238
- return;
239
- }
240
-
241
- if (unscopedCompletion.turnId && unscopedCompletion.turnId !== turnId) {
242
- return;
243
- }
244
-
245
- normalizedCompletion = {
246
- threadId,
247
- turnId: unscopedCompletion.turnId ?? turnId,
248
- status: unscopedCompletion.status,
249
- errorMessage: unscopedCompletion.errorMessage,
250
- completedAt: unscopedCompletion.completedAt,
251
- };
252
- }
253
-
254
- if (!normalizedCompletion) {
255
- return;
256
- }
257
-
258
- this.rememberTurnCompletion(normalizedCompletion);
259
- if (isFailedTurnStatus(normalizedCompletion.status)) {
260
- finish({
261
- ok: false,
262
- error: new Error(
263
- normalizedCompletion.errorMessage ??
264
- `turn ${normalizedCompletion.status ?? 'failed'}`
265
- ),
266
- });
267
- return;
268
- }
269
-
270
- finish({ ok: true });
271
- });
272
- });
273
- } finally {
274
- this.pendingTurnWaits.delete(waitKey);
275
- }
276
- }
277
-
278
- onEvent(listener: EventListener): () => void {
279
- this.eventListeners.add(listener);
280
-
281
- return () => {
282
- this.eventListeners.delete(listener);
283
- };
284
- }
285
-
286
- onStatus(listener: StatusListener): () => void {
287
- this.statusListeners.add(listener);
288
-
289
- return () => {
290
- this.statusListeners.delete(listener);
291
- };
292
- }
293
-
294
- private async ensureConnected(): Promise<void> {
295
- if (this.connected && this.socket?.readyState === 1) {
296
- return;
297
- }
298
-
299
- this.connect();
300
- if (this.connectPromise) {
301
- await this.connectPromise;
302
- }
303
-
304
- if (!this.connected || this.socket?.readyState !== 1) {
305
- throw new Error('Unable to connect to bridge websocket');
306
- }
307
- }
308
-
309
- private async openSocket(): Promise<void> {
310
- try {
311
- await new Promise<void>((resolve, reject) => {
312
- const WebSocketCtor = globalThis.WebSocket as unknown as ReactNativeWebSocketConstructor;
313
- const socketUrl = this.socketUrl();
314
- const shouldUseHeaderAuth =
315
- Boolean(this.authToken) &&
316
- Platform.OS !== 'web' &&
317
- !(Platform.OS === 'android' && this.allowQueryTokenAuth);
318
- const socket =
319
- shouldUseHeaderAuth
320
- ? new WebSocketCtor(socketUrl, undefined, {
321
- headers: {
322
- Authorization: `Bearer ${this.authToken}`,
323
- },
324
- })
325
- : new WebSocketCtor(socketUrl);
326
-
327
- let settled = false;
328
-
329
- socket.onopen = () => {
330
- settled = true;
331
- this.socket = socket;
332
- this.reconnectAttempts = 0;
333
- this.emitStatus(true);
334
- if (this.lastSeenEventId > 0) {
335
- this.scheduleReplay();
336
- }
337
- resolve();
338
- };
339
-
340
- socket.onclose = () => {
341
- this.socket = null;
342
- this.emitStatus(false);
343
- this.rejectAllPending(new Error('Bridge websocket closed'));
344
-
345
- if (this.shouldReconnect) {
346
- this.scheduleReconnect();
347
- }
348
-
349
- if (!settled) {
350
- settled = true;
351
- reject(new Error('Bridge websocket closed before open'));
352
- }
353
- };
354
-
355
- socket.onerror = () => {
356
- if (!settled) {
357
- settled = true;
358
- reject(new Error('Bridge websocket error'));
359
- }
360
- };
361
-
362
- socket.onmessage = (message) => {
363
- this.handleIncoming(String(message.data));
364
- };
365
- });
366
- } finally {
367
- this.connectPromise = null;
368
- }
369
- }
370
-
371
- private scheduleReconnect(): void {
372
- if (!this.shouldReconnect || this.socket || this.connectPromise) {
373
- return;
374
- }
375
-
376
- const attempt = this.reconnectAttempts;
377
- this.reconnectAttempts += 1;
378
-
379
- const jitter = Math.floor(Math.random() * 250);
380
- const delay = Math.min(5000, 500 * 2 ** attempt) + jitter;
381
-
382
- setTimeout(() => {
383
- if (!this.shouldReconnect || this.socket || this.connectPromise) {
384
- return;
385
- }
386
- const promise = this.openSocket();
387
- this.connectPromise = promise;
388
- void promise.catch(() => {
389
- // Retried connect failures are handled by subsequent retries.
390
- });
391
- }, delay);
392
- }
393
-
394
- private handleIncoming(raw: string): void {
395
- let parsed: unknown;
396
- try {
397
- parsed = JSON.parse(raw);
398
- } catch {
399
- return;
400
- }
401
-
402
- const record = toRecord(parsed);
403
- if (!record) {
404
- return;
405
- }
406
-
407
- const hasMethod = typeof record.method === 'string';
408
- const hasId = typeof record.id === 'string' || typeof record.id === 'number';
409
-
410
- if (hasId) {
411
- const pending = this.pendingRequests.get(record.id as string | number);
412
- if (!pending) {
413
- return;
414
- }
415
-
416
- clearTimeout(pending.timeout);
417
- this.pendingRequests.delete(record.id as string | number);
418
-
419
- const error = toRecord(record.error) as RpcError | null;
420
- if (error && typeof error.message === 'string') {
421
- pending.reject(new Error(`RPC ${String(error.code)}: ${error.message}`));
422
- return;
423
- }
424
-
425
- pending.resolve(record.result ?? null);
426
- return;
427
- }
428
-
429
- if (hasMethod) {
430
- this.handleNotificationRecord(record);
431
- }
432
- }
433
-
434
- private handleNotificationRecord(
435
- record: Record<string, unknown>,
436
- options?: {
437
- replayFloorEventId?: number;
438
- }
439
- ): void {
440
- const method = readString(record.method);
441
- if (!method) {
442
- return;
443
- }
444
-
445
- const params = toRecord(record.params);
446
- const eventId = readEventId(record);
447
- if (eventId !== null) {
448
- // Bridge restarts reset event IDs; treat that as a new stream.
449
- if (eventId === 1 && this.lastSeenEventId > 1) {
450
- this.lastSeenEventId = 0;
451
- this.clearRecentEventIdCache();
452
- }
453
-
454
- const replayFloorEventId = options?.replayFloorEventId ?? null;
455
- if (replayFloorEventId !== null) {
456
- if (eventId <= replayFloorEventId) {
457
- return;
458
- }
459
- } else if (eventId <= this.lastSeenEventId) {
460
- return;
461
- }
462
-
463
- if (this.recentEventIds.has(eventId)) {
464
- return;
465
- }
466
- this.markEventIdSeen(eventId);
467
-
468
- if (eventId > this.lastSeenEventId) {
469
- this.lastSeenEventId = eventId;
470
- }
471
- }
472
-
473
- if (method === 'turn/completed') {
474
- const completion = toTurnCompletionSnapshot(params);
475
- if (completion?.turnId) {
476
- this.rememberTurnCompletion(completion);
477
- }
478
- }
479
-
480
- const event: RpcNotification = {
481
- method,
482
- params,
483
- };
484
- if (eventId !== null) {
485
- event.eventId = eventId;
486
- }
487
- this.emitEvent(event);
488
- }
489
-
490
- private scheduleReplay(): void {
491
- if (!this.replaySupported) {
492
- return;
493
- }
494
- if (this.replayInFlight) {
495
- return;
496
- }
497
- if (!this.connected || !this.socket || this.socket.readyState !== 1) {
498
- return;
499
- }
500
-
501
- this.replayInFlight = this.replayMissedEvents()
502
- .catch(() => {
503
- // Replay is best-effort; live WS stream continues regardless.
504
- })
505
- .finally(() => {
506
- this.replayInFlight = null;
507
- });
508
- }
509
-
510
- private async replayMissedEvents(): Promise<void> {
511
- if (!this.replaySupported || this.lastSeenEventId <= 0) {
512
- return;
513
- }
514
-
515
- let cursor = this.lastSeenEventId;
516
- const maxPages = 10;
517
- for (let page = 0; page < maxPages; page += 1) {
518
- let response: ReplayEventsResponse;
519
- try {
520
- response = await this.request<ReplayEventsResponse>('bridge/events/replay', {
521
- afterEventId: cursor,
522
- limit: 200,
523
- });
524
- } catch (error) {
525
- const message = String((error as Error).message ?? error).toLowerCase();
526
- if (
527
- message.includes('rpc -32601') ||
528
- message.includes('unknown bridge method: bridge/events/replay')
529
- ) {
530
- this.replaySupported = false;
531
- return;
532
- }
533
- throw error;
534
- }
535
-
536
- const latestEventId = readNumber(response.latestEventId);
537
- if (latestEventId !== null && latestEventId < cursor) {
538
- this.lastSeenEventId = 0;
539
- this.clearRecentEventIdCache();
540
- return;
541
- }
542
-
543
- const events = Array.isArray(response.events) ? response.events : [];
544
- for (const entry of events) {
545
- const record = toRecord(entry);
546
- if (!record) {
547
- continue;
548
- }
549
- this.handleNotificationRecord(record, {
550
- replayFloorEventId: cursor,
551
- });
552
- }
553
-
554
- const hasMore = response.hasMore === true;
555
- if (!hasMore) {
556
- return;
557
- }
558
-
559
- if (this.lastSeenEventId <= cursor) {
560
- return;
561
- }
562
- cursor = this.lastSeenEventId;
563
- }
564
- }
565
-
566
- private markEventIdSeen(eventId: number): void {
567
- this.recentEventIds.add(eventId);
568
- this.recentEventIdQueue.push(eventId);
569
- while (
570
- this.recentEventIdQueue.length > HostBridgeWsClient.RECENT_EVENT_ID_CACHE_SIZE
571
- ) {
572
- const removed = this.recentEventIdQueue.shift();
573
- if (typeof removed === 'number') {
574
- this.recentEventIds.delete(removed);
575
- }
576
- }
577
- }
578
-
579
- private clearRecentEventIdCache(): void {
580
- this.recentEventIds.clear();
581
- this.recentEventIdQueue.length = 0;
582
- }
583
-
584
- private rejectAllPending(error: Error): void {
585
- for (const [id, pending] of this.pendingRequests.entries()) {
586
- clearTimeout(pending.timeout);
587
- pending.reject(error);
588
- this.pendingRequests.delete(id);
589
- }
590
- }
591
-
592
- private getTurnCompletion(threadId: string, turnId: string): TurnCompletionSnapshot | null {
593
- this.pruneTurnCompletions();
594
- return this.recentTurnCompletions.get(turnCompletionKey(threadId, turnId)) ?? null;
595
- }
596
-
597
- private rememberTurnCompletion(snapshot: TurnCompletionSnapshot): void {
598
- if (!snapshot.turnId) {
599
- return;
600
- }
601
-
602
- this.pruneTurnCompletions();
603
- this.recentTurnCompletions.set(
604
- turnCompletionKey(snapshot.threadId, snapshot.turnId),
605
- snapshot
606
- );
607
- }
608
-
609
- private pruneTurnCompletions(): void {
610
- const now = Date.now();
611
- for (const [key, snapshot] of this.recentTurnCompletions.entries()) {
612
- if (now - snapshot.completedAt > HostBridgeWsClient.TURN_COMPLETION_TTL_MS) {
613
- this.recentTurnCompletions.delete(key);
614
- }
615
- }
616
- }
617
-
618
- private assertTurnSucceeded(snapshot: TurnCompletionSnapshot): void {
619
- if (isFailedTurnStatus(snapshot.status)) {
620
- throw new Error(snapshot.errorMessage ?? `turn ${snapshot.status ?? 'failed'}`);
621
- }
622
- }
623
-
624
- private canUseUnscopedTurnEvent(waitKey: string): boolean {
625
- return this.pendingTurnWaits.size === 1 && this.pendingTurnWaits.has(waitKey);
626
- }
627
-
628
- private emitEvent(event: RpcNotification): void {
629
- for (const listener of this.eventListeners) {
630
- listener(event);
631
- }
632
- }
633
-
634
- private emitStatus(connected: boolean): void {
635
- this.connected = connected;
636
- for (const listener of this.statusListeners) {
637
- listener(connected);
638
- }
639
- }
640
-
641
- private socketUrl(): string {
642
- const wsBase = this.baseUrl.startsWith('https://')
643
- ? this.baseUrl.replace('https://', 'wss://')
644
- : this.baseUrl.replace('http://', 'ws://');
645
- const base = `${wsBase}/rpc`;
646
-
647
- if (!this.authToken || !this.allowQueryTokenAuth) {
648
- return base;
649
- }
650
-
651
- const separator = base.includes('?') ? '&' : '?';
652
- return `${base}${separator}token=${encodeURIComponent(this.authToken)}`;
653
- }
654
- }
655
-
656
- function toRecord(value: unknown): Record<string, unknown> | null {
657
- return typeof value === 'object' && value !== null
658
- ? (value as Record<string, unknown>)
659
- : null;
660
- }
661
-
662
- function readString(value: unknown): string | null {
663
- return typeof value === 'string' ? value : null;
664
- }
665
-
666
- function readNumber(value: unknown): number | null {
667
- if (typeof value === 'number' && Number.isFinite(value)) {
668
- return Math.trunc(value);
669
- }
670
- if (typeof value === 'string' && value.trim()) {
671
- const parsed = Number(value);
672
- if (Number.isFinite(parsed)) {
673
- return Math.trunc(parsed);
674
- }
675
- }
676
- return null;
677
- }
678
-
679
- function readEventId(record: Record<string, unknown>): number | null {
680
- const eventId = readNumber(record.eventId) ?? readNumber(record.event_id);
681
- if (eventId === null || eventId < 1) {
682
- return null;
683
- }
684
- return eventId;
685
- }
686
-
687
- function turnCompletionKey(threadId: string, turnId: string): string {
688
- return `${threadId}::${turnId}`;
689
- }
690
-
691
- function toTurnCompletionSnapshot(value: unknown): TurnCompletionSnapshot | null {
692
- const params = toRecord(value);
693
- if (!params) {
694
- return null;
695
- }
696
-
697
- const turn = toRecord(params.turn);
698
- const threadId = extractNotificationThreadId(params, turn);
699
- const turnId =
700
- readString(turn?.id) ?? readString(params.turnId) ?? readString(params.turn_id);
701
- if (!threadId) {
702
- return null;
703
- }
704
-
705
- const turnError = toRecord(turn?.error) ?? toRecord(params.error);
706
-
707
- return {
708
- threadId,
709
- turnId,
710
- status: readString(turn?.status) ?? readString(params.status),
711
- errorMessage: readString(turnError?.message),
712
- completedAt: Date.now(),
713
- };
714
- }
715
-
716
- function toUnscopedTurnCompletionSnapshot(
717
- value: unknown
718
- ): Omit<TurnCompletionSnapshot, 'threadId'> | null {
719
- const params = toRecord(value);
720
- if (!params) {
721
- return null;
722
- }
723
-
724
- const turn = toRecord(params.turn);
725
- const turnId =
726
- readString(turn?.id) ?? readString(params.turnId) ?? readString(params.turn_id);
727
- const status = readString(turn?.status) ?? readString(params.status);
728
- const turnError = toRecord(turn?.error) ?? toRecord(params.error);
729
- const errorMessage = readString(turnError?.message);
730
-
731
- if (!turnId && !status && !errorMessage) {
732
- return null;
733
- }
734
-
735
- return {
736
- turnId: turnId ?? null,
737
- status: status ?? null,
738
- errorMessage: errorMessage ?? null,
739
- completedAt: Date.now(),
740
- };
741
- }
742
-
743
- function toCodexEventSnapshot(
744
- method: string,
745
- value: unknown
746
- ): { type: string; threadId: string | null } | null {
747
- if (!method.startsWith('codex/event/')) {
748
- return null;
749
- }
750
-
751
- const params = toRecord(value);
752
- const msg = toRecord(params?.msg);
753
- const rawType = readString(msg?.type) ?? method.replace('codex/event/', '');
754
- const type = normalizeCodexEventType(rawType);
755
- if (!type) {
756
- return null;
757
- }
758
-
759
- const threadId = extractNotificationThreadId(params, msg);
760
-
761
- return {
762
- type,
763
- threadId,
764
- };
765
- }
766
-
767
- function extractNotificationThreadId(
768
- params: Record<string, unknown> | null,
769
- msgArg?: Record<string, unknown> | null
770
- ): string | null {
771
- if (!params && !msgArg) {
772
- return null;
773
- }
774
-
775
- const msg = msgArg ?? toRecord(params?.msg);
776
- const threadRecord =
777
- toRecord(params?.thread) ??
778
- toRecord(params?.threadState) ??
779
- toRecord(params?.thread_state) ??
780
- toRecord(msg?.thread);
781
- const threadSourceRecord = toRecord(threadRecord?.source);
782
- const sourceRecord = toRecord(params?.source) ?? toRecord(msg?.source);
783
- const subagentThreadSpawnRecord = toRecord(
784
- toRecord(sourceRecord?.subagent ?? sourceRecord?.subAgent)?.thread_spawn
785
- );
786
- const threadSubagentThreadSpawnRecord = toRecord(
787
- toRecord(threadSourceRecord?.subagent ?? threadSourceRecord?.subAgent)?.thread_spawn
788
- );
789
-
790
- return (
791
- readString(msg?.thread_id) ??
792
- readString(msg?.threadId) ??
793
- readString(msg?.conversation_id) ??
794
- readString(msg?.conversationId) ??
795
- readString(params?.thread_id) ??
796
- readString(params?.threadId) ??
797
- readString(params?.conversation_id) ??
798
- readString(params?.conversationId) ??
799
- readString(threadRecord?.id) ??
800
- readString(threadRecord?.thread_id) ??
801
- readString(threadRecord?.threadId) ??
802
- readString(threadRecord?.conversation_id) ??
803
- readString(threadRecord?.conversationId) ??
804
- readString(sourceRecord?.thread_id) ??
805
- readString(sourceRecord?.threadId) ??
806
- readString(sourceRecord?.conversation_id) ??
807
- readString(sourceRecord?.conversationId) ??
808
- readString(sourceRecord?.parent_thread_id) ??
809
- readString(sourceRecord?.parentThreadId) ??
810
- readString(subagentThreadSpawnRecord?.parent_thread_id) ??
811
- readString(subagentThreadSpawnRecord?.parentThreadId) ??
812
- readString(threadSourceRecord?.parent_thread_id) ??
813
- readString(threadSourceRecord?.parentThreadId) ??
814
- readString(threadSubagentThreadSpawnRecord?.parent_thread_id) ??
815
- readString(threadSubagentThreadSpawnRecord?.parentThreadId) ??
816
- null
817
- );
818
- }
819
-
820
- function normalizeCodexEventType(value: string | null): string | null {
821
- if (!value) {
822
- return null;
823
- }
824
-
825
- const trimmed = value.trim().toLowerCase();
826
- return trimmed.length > 0 ? trimmed : null;
827
- }
828
-
829
- const CODEX_TURN_COMPLETE_EVENT_TYPES = new Set(['task_complete', 'taskcomplete']);
830
- const CODEX_TURN_ABORT_EVENT_TYPES = new Set([
831
- 'turn_aborted',
832
- 'turnaborted',
833
- 'task_interrupted',
834
- 'taskinterrupted',
835
- ]);
836
- const CODEX_TURN_FAILURE_EVENT_TYPES = new Set([
837
- 'task_failed',
838
- 'taskfailed',
839
- 'turn_failed',
840
- 'turnfailed',
841
- ]);
842
-
843
- function isFailedTurnStatus(status: string | null): boolean {
844
- return (
845
- status === 'failed' ||
846
- status === 'interrupted' ||
847
- status === 'error' ||
848
- status === 'aborted' ||
849
- status === 'cancelled' ||
850
- status === 'canceled'
851
- );
852
- }