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,1129 +0,0 @@
1
- import { Ionicons } from '@expo/vector-icons';
2
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import {
4
- ActivityIndicator,
5
- AppState,
6
- Pressable,
7
- RefreshControl,
8
- SectionList,
9
- StyleSheet,
10
- Text,
11
- View,
12
- } from 'react-native';
13
- import { SafeAreaView } from 'react-native-safe-area-context';
14
- import type { HostBridgeApiClient } from '../api/client';
15
- import type { ChatSummary, RpcNotification } from '../api/types';
16
- import type { HostBridgeWsClient } from '../api/ws';
17
- import { BrandMark } from '../components/BrandMark';
18
- import { filterDrawerChats } from './drawerChats';
19
- import { describeAgentThreadSource } from '../screens/agentThreads';
20
- import {
21
- buildChatWorkspaceSections,
22
- type ChatWorkspaceSection,
23
- } from './chatThreadTree';
24
- import { colors, spacing, typography } from '../theme';
25
-
26
- type Screen = 'Main' | 'Settings' | 'Privacy' | 'Terms';
27
-
28
- interface DrawerContentProps {
29
- api: HostBridgeApiClient;
30
- ws: HostBridgeWsClient;
31
- selectedChatId: string | null;
32
- onSelectChat: (id: string) => void;
33
- onNewChat: () => void;
34
- onNavigate: (screen: Screen) => void;
35
- }
36
-
37
- const RUN_HEARTBEAT_STALE_MS = 20_000;
38
- const DRAWER_REFRESH_CONNECTED_MS = 10_000;
39
- const DRAWER_REFRESH_DISCONNECTED_MS = 5_000;
40
- const RUN_HEARTBEAT_EVENT_TYPES = new Set([
41
- 'task_started',
42
- 'agent_reasoning_delta',
43
- 'reasoning_content_delta',
44
- 'reasoning_raw_content_delta',
45
- 'agent_reasoning_raw_content_delta',
46
- 'agent_reasoning_section_break',
47
- 'agent_message_delta',
48
- 'agent_message_content_delta',
49
- 'exec_command_begin',
50
- 'exec_command_end',
51
- 'mcp_startup_update',
52
- 'mcp_tool_call_begin',
53
- 'web_search_begin',
54
- 'background_event',
55
- ]);
56
-
57
- export function DrawerContent({
58
- api,
59
- ws,
60
- selectedChatId,
61
- onSelectChat,
62
- onNewChat,
63
- onNavigate,
64
- }: DrawerContentProps) {
65
- const [chats, setChats] = useState<ChatSummary[]>([]);
66
- const [loading, setLoading] = useState(true);
67
- const [refreshing, setRefreshing] = useState(false);
68
- const [collapsedWorkspaceKeys, setCollapsedWorkspaceKeys] = useState<Set<string>>(new Set());
69
- const [runHeartbeatAtByThread, setRunHeartbeatAtByThread] = useState<Record<string, number>>({});
70
- const [wsConnected, setWsConnected] = useState(ws.isConnected);
71
- const hasAppliedInitialCollapseRef = useRef(false);
72
- const chatSectionsRef = useRef<ChatWorkspaceSection[]>([]);
73
- const chatSections = useMemo(() => buildChatWorkspaceSections(chats), [chats]);
74
- const visibleChatSections = useMemo(
75
- () =>
76
- chatSections.map((section) =>
77
- collapsedWorkspaceKeys.has(section.key)
78
- ? {
79
- ...section,
80
- data: [],
81
- }
82
- : section
83
- ),
84
- [chatSections, collapsedWorkspaceKeys]
85
- );
86
- const runningChatCount = useMemo(() => {
87
- const now = Date.now();
88
- return chats.reduce((count, chat) => {
89
- const runningFromHeartbeat =
90
- (runHeartbeatAtByThread[chat.id] ?? 0) > now - RUN_HEARTBEAT_STALE_MS;
91
- return count + (chat.status === 'running' || runningFromHeartbeat ? 1 : 0);
92
- }, 0);
93
- }, [chats, runHeartbeatAtByThread]);
94
-
95
- const loadChats = useCallback(async (showRefresh = false) => {
96
- if (showRefresh) {
97
- setRefreshing(true);
98
- }
99
-
100
- try {
101
- const listedChats = await api.listChats();
102
- const listedChatIds = new Set(listedChats.map((chat) => chat.id));
103
- let loadedChats: ChatSummary[] = [];
104
-
105
- try {
106
- const loadedIds = await api.listLoadedChatIds();
107
- const missingIds = loadedIds.filter((threadId) => !listedChatIds.has(threadId));
108
- if (missingIds.length > 0) {
109
- const loadedResults = await Promise.allSettled(
110
- missingIds.map((threadId) => api.getChatSummary(threadId))
111
- );
112
- loadedChats = loadedResults.flatMap((result) =>
113
- result.status === 'fulfilled' ? [result.value] : []
114
- );
115
- }
116
- } catch {
117
- // Keep the drawer usable if loaded-thread hydration fails.
118
- }
119
-
120
- const dedupedChats = dedupeChatsById(filterDrawerChats([...listedChats, ...loadedChats]));
121
- setChats(sortChats(dedupedChats));
122
- const activeChatIds = new Set(dedupedChats.map((chat) => chat.id));
123
- setRunHeartbeatAtByThread((prev) => {
124
- const now = Date.now();
125
- const next: Record<string, number> = {};
126
- for (const [threadId, ts] of Object.entries(prev)) {
127
- if (!activeChatIds.has(threadId)) {
128
- continue;
129
- }
130
- if (now - ts >= RUN_HEARTBEAT_STALE_MS) {
131
- continue;
132
- }
133
- next[threadId] = ts;
134
- }
135
- return next;
136
- });
137
- } catch {
138
- // silently fail
139
- } finally {
140
- if (showRefresh) {
141
- setRefreshing(false);
142
- }
143
- setLoading(false);
144
- }
145
- }, [api]);
146
-
147
- useEffect(() => {
148
- void loadChats();
149
- }, [loadChats]);
150
-
151
- useEffect(() => {
152
- return ws.onEvent((event: RpcNotification) => {
153
- const threadIdFromEvent = extractThreadId(event);
154
- const markThreadRunning = (threadId: string | null) => {
155
- if (!threadId) {
156
- return;
157
- }
158
- setRunHeartbeatAtByThread((prev) => ({
159
- ...prev,
160
- [threadId]: Date.now(),
161
- }));
162
- };
163
- const clearThreadRunning = (threadId: string | null) => {
164
- if (!threadId) {
165
- return;
166
- }
167
- setRunHeartbeatAtByThread((prev) => {
168
- if (!(threadId in prev)) {
169
- return prev;
170
- }
171
- const next = { ...prev };
172
- delete next[threadId];
173
- return next;
174
- });
175
- };
176
-
177
- if (
178
- event.method === 'turn/started' ||
179
- event.method === 'item/started' ||
180
- event.method === 'item/agentMessage/delta' ||
181
- event.method === 'item/plan/delta' ||
182
- event.method === 'item/reasoning/summaryPartAdded' ||
183
- event.method === 'item/reasoning/summaryTextDelta' ||
184
- event.method === 'item/reasoning/textDelta' ||
185
- event.method === 'item/commandExecution/outputDelta' ||
186
- event.method === 'item/mcpToolCall/progress' ||
187
- event.method === 'turn/plan/updated' ||
188
- event.method === 'turn/diff/updated'
189
- ) {
190
- markThreadRunning(threadIdFromEvent);
191
- }
192
-
193
- if (event.method === 'turn/completed') {
194
- clearThreadRunning(threadIdFromEvent);
195
- }
196
-
197
- if (event.method.startsWith('codex/event/')) {
198
- const params = toRecord(event.params);
199
- const msg = toRecord(params?.msg);
200
- const codexEventType =
201
- readString(msg?.type) ?? event.method.replace('codex/event/', '');
202
- const scopedThreadId = threadIdFromEvent;
203
-
204
- if (RUN_HEARTBEAT_EVENT_TYPES.has(codexEventType)) {
205
- markThreadRunning(scopedThreadId);
206
- } else if (codexEventType === 'task_complete' || codexEventType === 'turn_aborted') {
207
- clearThreadRunning(scopedThreadId);
208
- }
209
- }
210
-
211
- if (
212
- event.method === 'thread/started' ||
213
- event.method === 'turn/started' ||
214
- event.method === 'thread/name/updated' ||
215
- event.method === 'turn/completed' ||
216
- event.method === 'thread/status/changed'
217
- ) {
218
- void loadChats();
219
- }
220
- });
221
- }, [ws, loadChats]);
222
-
223
- useEffect(() => {
224
- return ws.onStatus((connected) => {
225
- setWsConnected(connected);
226
- if (connected) {
227
- void loadChats();
228
- }
229
- });
230
- }, [ws, loadChats]);
231
-
232
- useEffect(() => {
233
- const timer = setInterval(() => {
234
- setRunHeartbeatAtByThread((prev) => {
235
- const now = Date.now();
236
- const next: Record<string, number> = {};
237
- for (const [threadId, ts] of Object.entries(prev)) {
238
- if (now - ts < RUN_HEARTBEAT_STALE_MS) {
239
- next[threadId] = ts;
240
- }
241
- }
242
- return next;
243
- });
244
- }, 5000);
245
-
246
- return () => clearInterval(timer);
247
- }, []);
248
-
249
- useEffect(() => {
250
- const timer = setInterval(() => {
251
- void loadChats();
252
- }, wsConnected ? DRAWER_REFRESH_CONNECTED_MS : DRAWER_REFRESH_DISCONNECTED_MS);
253
-
254
- return () => clearInterval(timer);
255
- }, [loadChats, wsConnected]);
256
-
257
- useEffect(() => {
258
- chatSectionsRef.current = chatSections;
259
- }, [chatSections]);
260
-
261
- useEffect(() => {
262
- if (chatSections.length === 0 || hasAppliedInitialCollapseRef.current) {
263
- return;
264
- }
265
-
266
- setCollapsedWorkspaceKeys(getDefaultCollapsedWorkspaceKeys(chatSections));
267
- hasAppliedInitialCollapseRef.current = true;
268
- }, [chatSections]);
269
-
270
- useEffect(() => {
271
- const subscription = AppState.addEventListener('change', (state) => {
272
- if (state === 'active') {
273
- setCollapsedWorkspaceKeys(getDefaultCollapsedWorkspaceKeys(chatSectionsRef.current));
274
- hasAppliedInitialCollapseRef.current = true;
275
- void loadChats();
276
- }
277
- });
278
-
279
- return () => {
280
- subscription.remove();
281
- };
282
- }, [loadChats]);
283
-
284
- const toggleWorkspaceSection = useCallback((sectionKey: string) => {
285
- setCollapsedWorkspaceKeys((prev) => {
286
- const next = new Set(prev);
287
- if (next.has(sectionKey)) {
288
- next.delete(sectionKey);
289
- } else {
290
- next.add(sectionKey);
291
- }
292
- return next;
293
- });
294
- }, []);
295
-
296
- return (
297
- <View style={styles.container}>
298
- <SafeAreaView style={styles.safeArea}>
299
- <View style={styles.mainContent}>
300
- <View style={styles.topDeck}>
301
- <View style={styles.heroCard}>
302
- <View style={styles.heroHeaderRow}>
303
- <View style={styles.brandBadge}>
304
- <BrandMark size={18} />
305
- </View>
306
- <View style={styles.heroCopy}>
307
- <Text style={styles.heroTitle}>Clawdex</Text>
308
- <Text style={styles.heroSubtitle} numberOfLines={1}>
309
- Threads, terminal, and git in a focused mobile control deck.
310
- </Text>
311
- </View>
312
- <View
313
- style={[
314
- styles.connectionBadge,
315
- wsConnected
316
- ? styles.connectionBadgeConnected
317
- : styles.connectionBadgeDisconnected,
318
- ]}
319
- >
320
- <View
321
- style={[
322
- styles.connectionDot,
323
- wsConnected
324
- ? styles.connectionDotConnected
325
- : styles.connectionDotDisconnected,
326
- ]}
327
- />
328
- <Text
329
- style={[
330
- styles.connectionText,
331
- wsConnected
332
- ? styles.connectionTextConnected
333
- : styles.connectionTextDisconnected,
334
- ]}
335
- >
336
- {wsConnected ? 'Live' : 'Offline'}
337
- </Text>
338
- </View>
339
- </View>
340
-
341
- <View style={styles.heroStatsRow}>
342
- <View style={styles.heroStat}>
343
- <Text style={styles.heroStatValue}>{formatCompactCount(chats.length)}</Text>
344
- <Text style={styles.heroStatLabel}>Chats</Text>
345
- </View>
346
- <View style={styles.heroStatsDivider} />
347
- <View style={styles.heroStat}>
348
- <Text style={styles.heroStatValue}>
349
- {formatCompactCount(runningChatCount)}
350
- </Text>
351
- <Text style={styles.heroStatLabel}>Running</Text>
352
- </View>
353
- <View style={styles.heroStatsDivider} />
354
- <View style={styles.heroStat}>
355
- <Text style={styles.heroStatValue}>
356
- {formatCompactCount(chatSections.length)}
357
- </Text>
358
- <Text style={styles.heroStatLabel}>Spaces</Text>
359
- </View>
360
- </View>
361
- </View>
362
-
363
- <View style={styles.actionRow}>
364
- <Pressable
365
- style={({ pressed }) => [
366
- styles.primaryActionButton,
367
- pressed && styles.primaryActionButtonPressed,
368
- ]}
369
- onPress={onNewChat}
370
- >
371
- <Ionicons name="add" size={18} color={colors.black} />
372
- <Text style={styles.primaryActionText}>New chat</Text>
373
- </Pressable>
374
- </View>
375
- </View>
376
-
377
- <View style={styles.sectionHeader}>
378
- <Text style={styles.sectionTitle}>Chats</Text>
379
- <View style={styles.sectionCountBadge}>
380
- <Text style={styles.sectionCountText}>
381
- {formatCompactCount(chats.length)}
382
- </Text>
383
- </View>
384
- </View>
385
-
386
- {loading ? (
387
- <View style={styles.emptyStateCard}>
388
- <ActivityIndicator color={colors.textMuted} style={styles.loader} />
389
- <Text style={styles.emptyTitle}>Loading chats</Text>
390
- <Text style={styles.emptyHint}>Syncing recent threads from your bridge.</Text>
391
- </View>
392
- ) : chatSections.length === 0 ? (
393
- <View style={styles.emptyStateCard}>
394
- <View style={styles.emptyStateIconWrap}>
395
- <Ionicons name="sparkles-outline" size={18} color={colors.textPrimary} />
396
- </View>
397
- <Text style={styles.emptyTitle}>No chats yet</Text>
398
- <Text style={styles.emptyHint}>
399
- Start a new chat and it will show up here with live activity.
400
- </Text>
401
- </View>
402
- ) : (
403
- <SectionList
404
- sections={visibleChatSections}
405
- keyExtractor={(item) => item.chat.id}
406
- style={styles.list}
407
- contentContainerStyle={styles.listContent}
408
- showsVerticalScrollIndicator={false}
409
- stickySectionHeadersEnabled={false}
410
- refreshControl={
411
- <RefreshControl
412
- refreshing={refreshing}
413
- onRefresh={() => {
414
- void loadChats(true);
415
- }}
416
- tintColor={colors.textMuted}
417
- />
418
- }
419
- renderSectionHeader={({ section }) => {
420
- const collapsed = collapsedWorkspaceKeys.has(section.key);
421
- return (
422
- <Pressable
423
- style={({ pressed }) => [
424
- styles.workspaceGroupHeader,
425
- collapsed
426
- ? styles.workspaceGroupHeaderCollapsed
427
- : styles.workspaceGroupHeaderExpanded,
428
- pressed && styles.workspaceGroupHeaderPressed,
429
- ]}
430
- onPress={() => toggleWorkspaceSection(section.key)}
431
- >
432
- <View style={styles.workspaceGroupHeaderRow}>
433
- <View style={styles.workspaceGroupTitleBlock}>
434
- <Text style={styles.workspaceGroupTitle} numberOfLines={1}>
435
- {section.title}
436
- </Text>
437
- {section.subtitle ? (
438
- <Text style={styles.workspaceGroupSubtitle} numberOfLines={1}>
439
- {section.subtitle}
440
- </Text>
441
- ) : null}
442
- </View>
443
- <View style={styles.workspaceGroupCountBadge}>
444
- <Text style={styles.workspaceGroupCountText}>
445
- {formatCompactCount(section.itemCount)}
446
- </Text>
447
- </View>
448
- <View style={styles.workspaceGroupHeaderMeta}>
449
- <Ionicons
450
- name={collapsed ? 'chevron-forward' : 'chevron-down'}
451
- size={14}
452
- color={colors.textMuted}
453
- />
454
- </View>
455
- </View>
456
- </Pressable>
457
- );
458
- }}
459
- renderItem={({ item, index, section }) => {
460
- const chat = item.chat;
461
- const isSelected = chat.id === selectedChatId;
462
- const isLast = index === section.data.length - 1;
463
- const isRunningFromHeartbeat =
464
- (runHeartbeatAtByThread[chat.id] ?? 0) > Date.now() - RUN_HEARTBEAT_STALE_MS;
465
- const isRunning = chat.status === 'running' || isRunningFromHeartbeat;
466
- const isSubAgent = item.indentLevel > 0 || Boolean(chat.parentThreadId);
467
- const previewText = isSubAgent
468
- ? `${describeAgentThreadSource(chat, item.rootThreadId)} • ${formatChatPreview(chat)}`
469
- : formatChatPreview(chat);
470
- return (
471
- <Pressable
472
- style={({ pressed }) => [
473
- styles.chatItem,
474
- isSubAgent && styles.chatItemSubAgent,
475
- isSubAgent && { marginLeft: Math.min(item.indentLevel, 4) * 18 },
476
- isSelected && styles.chatItemSelected,
477
- pressed && styles.chatItemPressed,
478
- isLast && styles.chatItemLast,
479
- ]}
480
- onPress={() => onSelectChat(chat.id)}
481
- >
482
- <View
483
- style={[
484
- styles.chatItemAccent,
485
- isSubAgent && styles.chatItemAccentSubAgent,
486
- isSelected && styles.chatItemAccentSelected,
487
- isRunning && styles.chatItemAccentRunning,
488
- chat.status === 'error' && styles.chatItemAccentError,
489
- ]}
490
- />
491
- <View style={styles.chatItemContent}>
492
- <View style={styles.chatItemTopRow}>
493
- {isSubAgent ? (
494
- <Ionicons
495
- name="git-branch-outline"
496
- size={12}
497
- color="#F5A524"
498
- style={styles.chatSubAgentIcon}
499
- />
500
- ) : null}
501
- <Text
502
- style={[
503
- styles.chatTitle,
504
- isSubAgent && styles.chatTitleSubAgent,
505
- isSelected && styles.chatTitleSelected,
506
- ]}
507
- numberOfLines={1}
508
- >
509
- {chat.title || 'Untitled'}
510
- </Text>
511
- <Text
512
- style={[styles.chatAge, isSelected && styles.chatAgeSelected]}
513
- >
514
- {relativeTime(chat.updatedAt)}
515
- </Text>
516
- </View>
517
- <View style={styles.chatItemBottomRow}>
518
- <Text
519
- style={[
520
- styles.chatPreview,
521
- isSubAgent && styles.chatPreviewSubAgent,
522
- isSelected && styles.chatPreviewSelected,
523
- ]}
524
- numberOfLines={1}
525
- >
526
- {previewText}
527
- </Text>
528
- {isRunning ? (
529
- <View style={styles.chatMeta}>
530
- <View style={[styles.statusPill, styles.statusPillRunning]}>
531
- <View
532
- style={[styles.statusPillDot, styles.statusPillDotRunning]}
533
- />
534
- <Text
535
- style={[styles.statusPillText, styles.statusPillTextRunning]}
536
- >
537
- Live
538
- </Text>
539
- </View>
540
- </View>
541
- ) : chat.status === 'error' ? (
542
- <View style={styles.chatMeta}>
543
- <View style={[styles.statusPill, styles.statusPillError]}>
544
- <Text
545
- style={[styles.statusPillText, styles.statusPillTextError]}
546
- >
547
- Error
548
- </Text>
549
- </View>
550
- </View>
551
- ) : null}
552
- </View>
553
- </View>
554
- </Pressable>
555
- );
556
- }}
557
- />
558
- )}
559
- </View>
560
-
561
- <View style={styles.footer}>
562
- <Pressable
563
- accessibilityLabel="Open settings"
564
- style={({ pressed }) => [
565
- styles.footerSettingsButton,
566
- pressed && styles.footerSettingsButtonPressed,
567
- ]}
568
- onPress={() => onNavigate('Settings')}
569
- >
570
- <Ionicons name="settings-outline" size={16} color={colors.textPrimary} />
571
- <Text style={styles.footerSettingsText}>Settings</Text>
572
- </Pressable>
573
- </View>
574
-
575
- </SafeAreaView>
576
- </View>
577
- );
578
- }
579
-
580
- function sortChats(chats: ChatSummary[]): ChatSummary[] {
581
- return [...chats].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
582
- }
583
-
584
- function dedupeChatsById(chats: ChatSummary[]): ChatSummary[] {
585
- const byId = new Map<string, ChatSummary>();
586
-
587
- for (const chat of chats) {
588
- const existing = byId.get(chat.id);
589
- if (!existing || chat.updatedAt.localeCompare(existing.updatedAt) > 0) {
590
- byId.set(chat.id, chat);
591
- }
592
- }
593
-
594
- return Array.from(byId.values());
595
- }
596
-
597
- function getDefaultCollapsedWorkspaceKeys(sections: ChatWorkspaceSection[]): Set<string> {
598
- const collapsed = new Set<string>();
599
- for (let i = 1; i < sections.length; i += 1) {
600
- collapsed.add(sections[i].key);
601
- }
602
- return collapsed;
603
- }
604
-
605
- function relativeTime(iso: string): string {
606
- const diff = Math.max(0, Date.now() - new Date(iso).getTime());
607
- const minutes = Math.floor(diff / 60000);
608
- const hours = Math.floor(diff / 3600000);
609
- const days = Math.floor(diff / 86400000);
610
- const weeks = Math.floor(days / 7);
611
-
612
- if (minutes < 1) return 'now';
613
- if (minutes < 60) return `${minutes}m`;
614
- if (hours < 24) return `${hours}h`;
615
- if (days < 7) return `${days}d`;
616
- if (weeks < 5) return `${weeks}w`;
617
- return `${Math.floor(days / 30)}mo`;
618
- }
619
-
620
- function formatCompactCount(value: number): string {
621
- if (value >= 1000) {
622
- return `${(value / 1000).toFixed(value >= 10000 ? 0 : 1).replace(/\.0$/, '')}k`;
623
- }
624
-
625
- return String(value);
626
- }
627
-
628
- function formatChatPreview(chat: ChatSummary): string {
629
- const preview = chat.lastMessagePreview.trim();
630
- if (preview.length > 0) {
631
- return preview;
632
- }
633
-
634
- const errorPreview = chat.lastError?.trim();
635
- if (errorPreview) {
636
- return errorPreview;
637
- }
638
-
639
- if (chat.status === 'running') {
640
- return 'Run in progress';
641
- }
642
-
643
- return 'No messages yet';
644
- }
645
-
646
- function toRecord(value: unknown): Record<string, unknown> | null {
647
- return typeof value === 'object' && value !== null
648
- ? (value as Record<string, unknown>)
649
- : null;
650
- }
651
-
652
- function readString(value: unknown): string | null {
653
- return typeof value === 'string' ? value : null;
654
- }
655
-
656
- function extractThreadId(event: RpcNotification): string | null {
657
- const params = toRecord(event.params);
658
- const msg = toRecord(params?.msg);
659
- return (
660
- readString(params?.threadId) ??
661
- readString(params?.thread_id) ??
662
- readString(msg?.thread_id) ??
663
- readString(msg?.threadId) ??
664
- readString(params?.conversationId) ??
665
- readString(msg?.conversation_id)
666
- );
667
- }
668
-
669
- const styles = StyleSheet.create({
670
- container: {
671
- flex: 1,
672
- backgroundColor: colors.bgMain,
673
- },
674
- safeArea: {
675
- flex: 1,
676
- },
677
- mainContent: {
678
- flex: 1,
679
- minHeight: 0,
680
- },
681
- topDeck: {
682
- paddingHorizontal: spacing.lg,
683
- paddingTop: spacing.sm,
684
- paddingBottom: spacing.md,
685
- gap: spacing.xs + 2,
686
- },
687
- heroCard: {
688
- borderRadius: 16,
689
- borderWidth: 1,
690
- borderColor: 'rgba(255, 255, 255, 0.09)',
691
- backgroundColor: '#090C10',
692
- padding: spacing.sm + 2,
693
- gap: spacing.sm,
694
- },
695
- heroHeaderRow: {
696
- flexDirection: 'row',
697
- alignItems: 'flex-start',
698
- gap: spacing.xs + 2,
699
- },
700
- brandBadge: {
701
- width: 34,
702
- height: 34,
703
- borderRadius: 12,
704
- alignItems: 'center',
705
- justifyContent: 'center',
706
- backgroundColor: '#14181D',
707
- borderWidth: 1,
708
- borderColor: 'rgba(255, 255, 255, 0.08)',
709
- },
710
- heroCopy: {
711
- flex: 1,
712
- gap: 2,
713
- },
714
- heroTitle: {
715
- ...typography.body,
716
- color: colors.textPrimary,
717
- fontSize: 16,
718
- fontWeight: '700',
719
- },
720
- heroSubtitle: {
721
- ...typography.caption,
722
- color: colors.textMuted,
723
- fontSize: 11,
724
- lineHeight: 14,
725
- },
726
- connectionBadge: {
727
- flexDirection: 'row',
728
- alignItems: 'center',
729
- gap: 5,
730
- borderRadius: 999,
731
- paddingHorizontal: spacing.sm,
732
- paddingVertical: spacing.xs,
733
- borderWidth: 1,
734
- },
735
- connectionBadgeConnected: {
736
- backgroundColor: 'rgba(52, 199, 89, 0.12)',
737
- borderColor: 'rgba(52, 199, 89, 0.32)',
738
- },
739
- connectionBadgeDisconnected: {
740
- backgroundColor: 'rgba(245, 158, 11, 0.12)',
741
- borderColor: 'rgba(245, 158, 11, 0.28)',
742
- },
743
- connectionDot: {
744
- width: 6,
745
- height: 6,
746
- borderRadius: 3,
747
- },
748
- connectionDotConnected: {
749
- backgroundColor: '#34C759',
750
- },
751
- connectionDotDisconnected: {
752
- backgroundColor: '#F59E0B',
753
- },
754
- connectionText: {
755
- ...typography.caption,
756
- fontSize: 10,
757
- lineHeight: 12,
758
- fontWeight: '700',
759
- textTransform: 'uppercase',
760
- letterSpacing: 0.5,
761
- },
762
- connectionTextConnected: {
763
- color: '#8EE6AD',
764
- },
765
- connectionTextDisconnected: {
766
- color: '#F6C875',
767
- },
768
- heroStatsRow: {
769
- flexDirection: 'row',
770
- alignItems: 'stretch',
771
- borderRadius: 14,
772
- backgroundColor: '#050608',
773
- borderWidth: 1,
774
- borderColor: 'rgba(255, 255, 255, 0.06)',
775
- overflow: 'hidden',
776
- },
777
- heroStat: {
778
- flex: 1,
779
- alignItems: 'center',
780
- gap: 2,
781
- paddingVertical: spacing.sm,
782
- },
783
- heroStatValue: {
784
- ...typography.body,
785
- color: colors.textPrimary,
786
- fontSize: 15,
787
- fontWeight: '700',
788
- fontVariant: ['tabular-nums'],
789
- },
790
- heroStatLabel: {
791
- ...typography.caption,
792
- color: colors.textMuted,
793
- fontSize: 10,
794
- lineHeight: 12,
795
- textTransform: 'uppercase',
796
- letterSpacing: 0.7,
797
- },
798
- heroStatsDivider: {
799
- width: StyleSheet.hairlineWidth,
800
- backgroundColor: 'rgba(255, 255, 255, 0.08)',
801
- },
802
- actionRow: {
803
- flexDirection: 'row',
804
- gap: spacing.xs + 2,
805
- },
806
- primaryActionButton: {
807
- flex: 1,
808
- height: 42,
809
- borderRadius: 14,
810
- backgroundColor: '#F2F4F8',
811
- flexDirection: 'row',
812
- alignItems: 'center',
813
- justifyContent: 'center',
814
- gap: spacing.xs,
815
- },
816
- primaryActionButtonPressed: {
817
- opacity: 0.9,
818
- },
819
- primaryActionText: {
820
- ...typography.body,
821
- color: colors.black,
822
- fontWeight: '700',
823
- fontSize: 14,
824
- },
825
- sectionHeader: {
826
- flexDirection: 'row',
827
- alignItems: 'center',
828
- justifyContent: 'space-between',
829
- paddingHorizontal: spacing.lg,
830
- paddingBottom: spacing.sm,
831
- },
832
- sectionTitle: {
833
- ...typography.caption,
834
- color: colors.textMuted,
835
- textTransform: 'uppercase',
836
- fontSize: 10,
837
- lineHeight: 12,
838
- letterSpacing: 0.9,
839
- fontWeight: '700',
840
- },
841
- sectionCountBadge: {
842
- minWidth: 24,
843
- borderRadius: 999,
844
- borderWidth: 1,
845
- borderColor: 'rgba(255, 255, 255, 0.08)',
846
- backgroundColor: '#101317',
847
- paddingHorizontal: spacing.sm,
848
- paddingVertical: 3,
849
- alignItems: 'center',
850
- justifyContent: 'center',
851
- },
852
- sectionCountText: {
853
- ...typography.caption,
854
- color: colors.textSecondary,
855
- fontSize: 10,
856
- lineHeight: 12,
857
- fontWeight: '700',
858
- fontVariant: ['tabular-nums'],
859
- },
860
- list: {
861
- flex: 1,
862
- },
863
- listContent: {
864
- paddingBottom: spacing.lg,
865
- },
866
- loader: {
867
- marginBottom: spacing.xs,
868
- },
869
- emptyStateCard: {
870
- marginHorizontal: spacing.lg,
871
- marginTop: spacing.sm,
872
- borderRadius: 16,
873
- borderWidth: 1,
874
- borderColor: 'rgba(255, 255, 255, 0.08)',
875
- backgroundColor: '#0B0D10',
876
- padding: spacing.md,
877
- alignItems: 'center',
878
- gap: spacing.xs + 2,
879
- },
880
- emptyStateIconWrap: {
881
- width: 34,
882
- height: 34,
883
- borderRadius: 12,
884
- alignItems: 'center',
885
- justifyContent: 'center',
886
- backgroundColor: '#11151A',
887
- },
888
- emptyTitle: {
889
- ...typography.body,
890
- color: colors.textPrimary,
891
- fontSize: 14,
892
- fontWeight: '600',
893
- },
894
- emptyHint: {
895
- ...typography.caption,
896
- color: colors.textMuted,
897
- fontSize: 11,
898
- textAlign: 'center',
899
- lineHeight: 15,
900
- },
901
- workspaceGroupHeader: {
902
- marginHorizontal: spacing.lg,
903
- paddingHorizontal: spacing.sm + 2,
904
- paddingVertical: spacing.sm,
905
- borderRadius: 16,
906
- borderWidth: 1,
907
- borderColor: 'rgba(255, 255, 255, 0.08)',
908
- backgroundColor: '#0C0F13',
909
- },
910
- workspaceGroupHeaderExpanded: {
911
- marginTop: spacing.xs,
912
- marginBottom: spacing.xs,
913
- },
914
- workspaceGroupHeaderCollapsed: {
915
- marginTop: spacing.xs,
916
- marginBottom: spacing.md,
917
- },
918
- workspaceGroupHeaderPressed: {
919
- backgroundColor: '#14181D',
920
- },
921
- workspaceGroupHeaderRow: {
922
- flexDirection: 'row',
923
- alignItems: 'center',
924
- gap: spacing.sm,
925
- },
926
- workspaceGroupTitleBlock: {
927
- flex: 1,
928
- },
929
- workspaceGroupTitle: {
930
- ...typography.body,
931
- color: colors.textPrimary,
932
- fontSize: 14,
933
- fontWeight: '600',
934
- },
935
- workspaceGroupSubtitle: {
936
- ...typography.caption,
937
- color: colors.textMuted,
938
- fontSize: 11,
939
- lineHeight: 14,
940
- marginTop: 2,
941
- },
942
- workspaceGroupCountBadge: {
943
- minWidth: 24,
944
- borderRadius: 999,
945
- backgroundColor: '#161B20',
946
- paddingHorizontal: spacing.sm,
947
- paddingVertical: 3,
948
- alignItems: 'center',
949
- justifyContent: 'center',
950
- },
951
- workspaceGroupCountText: {
952
- ...typography.caption,
953
- color: colors.textSecondary,
954
- fontSize: 10,
955
- lineHeight: 12,
956
- fontWeight: '700',
957
- fontVariant: ['tabular-nums'],
958
- },
959
- workspaceGroupHeaderMeta: {
960
- alignItems: 'center',
961
- justifyContent: 'center',
962
- flexShrink: 0,
963
- },
964
- chatItem: {
965
- marginHorizontal: spacing.lg,
966
- marginBottom: spacing.xs,
967
- borderRadius: 16,
968
- borderWidth: 1,
969
- borderColor: 'rgba(255, 255, 255, 0.06)',
970
- backgroundColor: '#080A0D',
971
- padding: spacing.sm,
972
- flexDirection: 'row',
973
- gap: spacing.xs + 2,
974
- alignItems: 'stretch',
975
- },
976
- chatItemSubAgent: {
977
- backgroundColor: 'rgba(255, 255, 255, 0.025)',
978
- },
979
- chatItemLast: {
980
- marginBottom: spacing.md,
981
- },
982
- chatItemSelected: {
983
- backgroundColor: '#11151A',
984
- borderColor: 'rgba(255, 255, 255, 0.18)',
985
- },
986
- chatItemPressed: {
987
- backgroundColor: '#0E1216',
988
- },
989
- chatItemAccent: {
990
- width: 4,
991
- borderRadius: 999,
992
- backgroundColor: 'rgba(255, 255, 255, 0.08)',
993
- },
994
- chatItemAccentSubAgent: {
995
- backgroundColor: 'rgba(245, 165, 36, 0.35)',
996
- },
997
- chatItemAccentSelected: {
998
- backgroundColor: colors.textPrimary,
999
- },
1000
- chatItemAccentRunning: {
1001
- backgroundColor: colors.statusRunning,
1002
- },
1003
- chatItemAccentError: {
1004
- backgroundColor: colors.statusError,
1005
- },
1006
- chatItemContent: {
1007
- flex: 1,
1008
- gap: 4,
1009
- },
1010
- chatItemTopRow: {
1011
- flexDirection: 'row',
1012
- alignItems: 'center',
1013
- gap: spacing.xs + 2,
1014
- },
1015
- chatSubAgentIcon: {
1016
- marginRight: -2,
1017
- },
1018
- chatTitle: {
1019
- ...typography.body,
1020
- flex: 1,
1021
- color: colors.textSecondary,
1022
- fontSize: 14,
1023
- fontWeight: '600',
1024
- },
1025
- chatTitleSubAgent: {
1026
- color: '#F5C06A',
1027
- },
1028
- chatTitleSelected: {
1029
- color: colors.textPrimary,
1030
- },
1031
- chatAge: {
1032
- ...typography.caption,
1033
- color: colors.textMuted,
1034
- fontSize: 10,
1035
- lineHeight: 12,
1036
- fontVariant: ['tabular-nums'],
1037
- flexShrink: 0,
1038
- },
1039
- chatAgeSelected: {
1040
- color: colors.textSecondary,
1041
- },
1042
- chatItemBottomRow: {
1043
- flexDirection: 'row',
1044
- alignItems: 'center',
1045
- gap: spacing.xs + 2,
1046
- },
1047
- chatPreview: {
1048
- ...typography.caption,
1049
- flex: 1,
1050
- fontSize: 11,
1051
- lineHeight: 14,
1052
- color: 'rgba(232, 236, 244, 0.56)',
1053
- },
1054
- chatPreviewSubAgent: {
1055
- color: 'rgba(245, 192, 106, 0.9)',
1056
- },
1057
- chatPreviewSelected: {
1058
- color: colors.textMuted,
1059
- },
1060
- chatMeta: {
1061
- flexDirection: 'row',
1062
- alignItems: 'center',
1063
- gap: spacing.xs,
1064
- flexShrink: 0,
1065
- },
1066
- statusPill: {
1067
- flexDirection: 'row',
1068
- alignItems: 'center',
1069
- gap: 4,
1070
- borderRadius: 999,
1071
- paddingHorizontal: spacing.xs + 6,
1072
- paddingVertical: 3,
1073
- },
1074
- statusPillRunning: {
1075
- backgroundColor: 'rgba(52, 199, 89, 0.12)',
1076
- },
1077
- statusPillError: {
1078
- backgroundColor: 'rgba(239, 68, 68, 0.14)',
1079
- },
1080
- statusPillText: {
1081
- ...typography.caption,
1082
- fontSize: 10,
1083
- lineHeight: 12,
1084
- fontWeight: '700',
1085
- },
1086
- statusPillTextRunning: {
1087
- color: '#8EE6AD',
1088
- },
1089
- statusPillTextError: {
1090
- color: '#FFB4B4',
1091
- },
1092
- statusPillDot: {
1093
- width: 6,
1094
- height: 6,
1095
- borderRadius: 3,
1096
- },
1097
- statusPillDotRunning: {
1098
- backgroundColor: '#34C759',
1099
- },
1100
- footer: {
1101
- marginTop: 'auto',
1102
- paddingHorizontal: spacing.lg,
1103
- paddingTop: spacing.xs,
1104
- paddingBottom: spacing.sm,
1105
- },
1106
- footerSettingsButton: {
1107
- height: 42,
1108
- borderRadius: 14,
1109
- borderWidth: 1,
1110
- borderColor: 'rgba(255, 255, 255, 0.12)',
1111
- backgroundColor: '#101317',
1112
- flexDirection: 'row',
1113
- alignItems: 'center',
1114
- justifyContent: 'center',
1115
- gap: spacing.xs,
1116
- },
1117
- footerSettingsButtonPressed: {
1118
- backgroundColor: '#171B20',
1119
- },
1120
- footerSettingsText: {
1121
- ...typography.caption,
1122
- color: colors.textPrimary,
1123
- fontSize: 11,
1124
- lineHeight: 13,
1125
- fontWeight: '700',
1126
- textTransform: 'uppercase',
1127
- letterSpacing: 0.4,
1128
- },
1129
- });