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,959 +0,0 @@
1
- import { Ionicons } from '@expo/vector-icons';
2
- import { memo, useMemo, useState, type ReactElement } from 'react';
3
- import {
4
- Image,
5
- Pressable,
6
- type ImageSourcePropType,
7
- Linking,
8
- Platform,
9
- StyleSheet,
10
- Text,
11
- type TextProps,
12
- View,
13
- } from 'react-native';
14
- import Markdown, { type RenderRules } from 'react-native-markdown-display';
15
-
16
- import type { ChatMessage as ApiChatMessage } from '../api/types';
17
- import { colors, radius, spacing, typography } from '../theme';
18
- import { toMarkdownImageSource } from './chatImageSource';
19
-
20
- interface ChatMessageProps {
21
- message: ApiChatMessage;
22
- bridgeUrl?: string | null;
23
- bridgeToken?: string | null;
24
- }
25
-
26
- interface TimelineEntry {
27
- title: string;
28
- details: string[];
29
- }
30
-
31
- type UserMessageBlock =
32
- | { kind: 'text'; value: string }
33
- | { kind: 'file'; value: string }
34
- | { kind: 'image'; source: ImageSourcePropType; accessibilityLabel?: string };
35
-
36
- function ChatMessageComponent({ message, bridgeUrl = null, bridgeToken = null }: ChatMessageProps) {
37
- const isUser = message.role === 'user';
38
- const markdownRules = useMemo(
39
- () => createMarkdownRules(bridgeUrl, bridgeToken),
40
- [bridgeToken, bridgeUrl]
41
- );
42
- const [expandedTimelineEntries, setExpandedTimelineEntries] = useState<
43
- Record<string, boolean>
44
- >({});
45
- const userBlocks = useMemo(
46
- () =>
47
- isUser ? parseUserMessageBlocks(message.content, bridgeUrl, bridgeToken) : [],
48
- [bridgeToken, bridgeUrl, isUser, message.content]
49
- );
50
-
51
- const renderedMessage = isUser ? (
52
- <View style={[styles.messageWrapper, styles.messageWrapperUser]}>
53
- <View style={[styles.userBubble, userBlocks.length > 1 && styles.userBubbleWithAttachments]}>
54
- <View style={styles.userBubbleContent}>
55
- {userBlocks.map((block, index) => {
56
- if (block.kind === 'image') {
57
- return (
58
- <MarkdownImage
59
- key={`${message.id}-image-${String(index)}`}
60
- source={block.source}
61
- accessibilityLabel={block.accessibilityLabel}
62
- />
63
- );
64
- }
65
-
66
- if (block.kind === 'file') {
67
- return (
68
- <View key={`${message.id}-file-${String(index)}`} style={styles.userFileChip}>
69
- <Ionicons name="document-text-outline" size={12} color={colors.textMuted} />
70
- <Text style={styles.userFileChipText} numberOfLines={1}>
71
- {block.value}
72
- </Text>
73
- </View>
74
- );
75
- }
76
-
77
- return (
78
- <SelectableMessageText
79
- key={`${message.id}-text-${String(index)}`}
80
- style={styles.userMessageText}
81
- >
82
- {block.value}
83
- </SelectableMessageText>
84
- );
85
- })}
86
- </View>
87
- </View>
88
- </View>
89
- ) : null;
90
-
91
- if (renderedMessage) {
92
- return renderedMessage;
93
- }
94
-
95
- const timelineEntries =
96
- message.role === 'system' ? parseTimelineEntries(message.content) : null;
97
- if (message.role === 'system' && message.systemKind === 'subAgent') {
98
- const subAgentEntries =
99
- timelineEntries && timelineEntries.length > 0
100
- ? timelineEntries
101
- : [{ title: message.content, details: [] }];
102
-
103
- return (
104
- <View style={[styles.messageWrapper, styles.messageWrapperAssistant]}>
105
- <View style={styles.subAgentCardStack}>
106
- {subAgentEntries.map((entry, index) => {
107
- const visual = toSubAgentVisual(entry.title);
108
- return (
109
- <View
110
- key={`${message.id}-subagent-${String(index)}`}
111
- style={[
112
- styles.subAgentCard,
113
- visual.isError && styles.subAgentCardError,
114
- ]}
115
- >
116
- <View style={styles.subAgentHeader}>
117
- <Ionicons
118
- name={visual.icon}
119
- size={14}
120
- color={visual.isError ? colors.statusError : '#F5A524'}
121
- />
122
- <Text style={styles.subAgentTitle}>{entry.title}</Text>
123
- </View>
124
- {entry.details.length > 0 ? (
125
- <View style={styles.subAgentDetailWrap}>
126
- {entry.details.map((line, lineIndex) => (
127
- <SelectableMessageText
128
- key={`${message.id}-subagent-${String(index)}-line-${String(lineIndex)}`}
129
- style={styles.subAgentDetailLine}
130
- >
131
- {line}
132
- </SelectableMessageText>
133
- ))}
134
- </View>
135
- ) : null}
136
- </View>
137
- );
138
- })}
139
- </View>
140
- </View>
141
- );
142
- }
143
- if (timelineEntries && timelineEntries.length > 0) {
144
- return (
145
- <View style={[styles.messageWrapper, styles.messageWrapperAssistant]}>
146
- <View style={styles.timelineCardStack}>
147
- {timelineEntries.map((entry, index) => {
148
- const visual = toTimelineVisual(entry.title);
149
- const timelineKey = `${message.id}-timeline-${String(index)}`;
150
- const hasDetails = entry.details.length > 0;
151
- const expanded = expandedTimelineEntries[timelineKey] === true;
152
- const toggleLabel = expanded
153
- ? 'Tap to hide output'
154
- : entry.details.length <= 1
155
- ? 'Tap to show output'
156
- : `Tap to show ${String(entry.details.length)} lines`;
157
- return (
158
- <Pressable
159
- key={`${message.id}-timeline-${String(index)}`}
160
- disabled={!hasDetails}
161
- onPress={() => {
162
- if (!hasDetails) {
163
- return;
164
- }
165
- setExpandedTimelineEntries((previous) => ({
166
- ...previous,
167
- [timelineKey]: !previous[timelineKey],
168
- }));
169
- }}
170
- style={({ pressed }) => [
171
- styles.timelineCard,
172
- visual.isError && styles.timelineCardError,
173
- hasDetails && styles.timelineCardInteractive,
174
- pressed && hasDetails && styles.timelineCardPressed,
175
- ]}
176
- >
177
- <View style={styles.timelineHeader}>
178
- <Ionicons
179
- name={visual.icon}
180
- size={14}
181
- color={visual.isError ? colors.statusError : colors.statusRunning}
182
- />
183
- <Text
184
- style={[
185
- styles.timelineTitle,
186
- visual.useMonospaceTitle && styles.timelineTitleMono,
187
- ]}
188
- numberOfLines={expanded ? 3 : 1}
189
- >
190
- {entry.title}
191
- </Text>
192
- {hasDetails ? (
193
- <Ionicons
194
- name={expanded ? 'chevron-up' : 'chevron-down'}
195
- size={14}
196
- color={colors.textMuted}
197
- />
198
- ) : null}
199
- </View>
200
- {hasDetails ? (
201
- <Text style={styles.timelineToggleText}>{toggleLabel}</Text>
202
- ) : null}
203
- {expanded && entry.details.length > 0 ? (
204
- <View style={styles.timelineDetailWrap}>
205
- {entry.details.map((line, lineIndex) => (
206
- <SelectableMessageText
207
- key={`${message.id}-timeline-${String(index)}-line-${String(lineIndex)}`}
208
- style={styles.timelineDetailLine}
209
- >
210
- {line}
211
- </SelectableMessageText>
212
- ))}
213
- </View>
214
- ) : null}
215
- </Pressable>
216
- );
217
- })}
218
- </View>
219
- </View>
220
- );
221
- }
222
-
223
- return (
224
- <View style={[styles.messageWrapper, styles.messageWrapperAssistant]}>
225
- <Markdown style={markdownStyles} rules={markdownRules}>
226
- {message.content || '\u258D'}
227
- </Markdown>
228
- </View>
229
- );
230
- }
231
-
232
- function areChatMessagePropsEqual(
233
- prevProps: ChatMessageProps,
234
- nextProps: ChatMessageProps
235
- ): boolean {
236
- const previous = prevProps.message;
237
- const next = nextProps.message;
238
-
239
- if (previous === next) {
240
- return true;
241
- }
242
-
243
- return (
244
- previous.id === next.id &&
245
- previous.role === next.role &&
246
- previous.content === next.content &&
247
- previous.createdAt === next.createdAt &&
248
- previous.systemKind === next.systemKind &&
249
- prevProps.bridgeUrl === nextProps.bridgeUrl &&
250
- prevProps.bridgeToken === nextProps.bridgeToken
251
- );
252
- }
253
-
254
- export const ChatMessage = memo(ChatMessageComponent, areChatMessagePropsEqual);
255
- ChatMessage.displayName = 'ChatMessage';
256
-
257
- const monoFont = Platform.select({ ios: 'Menlo', default: 'monospace' });
258
-
259
- const markdownStyles = StyleSheet.create({
260
- body: {
261
- ...typography.body,
262
- color: colors.textPrimary,
263
- },
264
- code_inline: {
265
- fontFamily: monoFont,
266
- fontSize: 12,
267
- backgroundColor: colors.inlineCodeBg,
268
- color: colors.inlineCodeText,
269
- borderWidth: StyleSheet.hairlineWidth,
270
- borderColor: colors.inlineCodeBorder,
271
- borderRadius: 4,
272
- paddingHorizontal: 5,
273
- paddingVertical: 2,
274
- },
275
- code_block: {
276
- fontFamily: monoFont,
277
- fontSize: 12,
278
- backgroundColor: colors.bgInput,
279
- color: colors.textPrimary,
280
- borderWidth: StyleSheet.hairlineWidth,
281
- borderColor: colors.borderHighlight,
282
- borderRadius: radius.sm,
283
- padding: spacing.md,
284
- marginVertical: spacing.sm,
285
- },
286
- fence: {
287
- fontFamily: monoFont,
288
- fontSize: 12,
289
- backgroundColor: colors.bgInput,
290
- color: colors.textPrimary,
291
- borderWidth: StyleSheet.hairlineWidth,
292
- borderColor: colors.borderHighlight,
293
- borderRadius: radius.sm,
294
- padding: spacing.md,
295
- marginVertical: spacing.sm,
296
- },
297
- link: {
298
- color: colors.accent,
299
- textDecorationLine: 'underline',
300
- },
301
- paragraph: {
302
- marginTop: spacing.xs,
303
- marginBottom: spacing.xs,
304
- },
305
- bullet_list: {
306
- marginVertical: spacing.xs,
307
- },
308
- ordered_list: {
309
- marginVertical: spacing.xs,
310
- },
311
- list_item: {
312
- marginVertical: 2,
313
- },
314
- strong: {
315
- fontWeight: '700',
316
- color: colors.textPrimary,
317
- },
318
- em: {
319
- fontStyle: 'italic',
320
- },
321
- });
322
-
323
- function createMarkdownRules(
324
- bridgeUrl: string | null,
325
- bridgeToken: string | null
326
- ): RenderRules {
327
- return {
328
- text: (node, _children, _parent, styles, inheritedStyles = {}) => (
329
- <SelectableMessageText key={node.key} style={[inheritedStyles, styles.text]}>
330
- {node.content}
331
- </SelectableMessageText>
332
- ),
333
- textgroup: (node, children, _parent, styles) => (
334
- <SelectableMessageText key={node.key} style={styles.textgroup}>
335
- {children}
336
- </SelectableMessageText>
337
- ),
338
- strong: (node, children, _parent, styles) => (
339
- <SelectableMessageText key={node.key} style={styles.strong}>
340
- {children}
341
- </SelectableMessageText>
342
- ),
343
- em: (node, children, _parent, styles) => (
344
- <SelectableMessageText key={node.key} style={styles.em}>
345
- {children}
346
- </SelectableMessageText>
347
- ),
348
- s: (node, children, _parent, styles) => (
349
- <SelectableMessageText key={node.key} style={styles.s}>
350
- {children}
351
- </SelectableMessageText>
352
- ),
353
- code_inline: (node, _children, _parent, styles, inheritedStyles = {}) => (
354
- <SelectableMessageText key={node.key} style={[inheritedStyles, styles.code_inline]}>
355
- {node.content}
356
- </SelectableMessageText>
357
- ),
358
- code_block: (node, _children, _parent, styles, inheritedStyles = {}) => {
359
- const content =
360
- typeof node.content === 'string' && node.content.charAt(node.content.length - 1) === '\n'
361
- ? node.content.substring(0, node.content.length - 1)
362
- : node.content;
363
- return (
364
- <SelectableMessageText key={node.key} style={[inheritedStyles, styles.code_block]}>
365
- {content}
366
- </SelectableMessageText>
367
- );
368
- },
369
- fence: (node, _children, _parent, styles, inheritedStyles = {}) => {
370
- const content =
371
- typeof node.content === 'string' && node.content.charAt(node.content.length - 1) === '\n'
372
- ? node.content.substring(0, node.content.length - 1)
373
- : node.content;
374
- return (
375
- <SelectableMessageText key={node.key} style={[inheritedStyles, styles.fence]}>
376
- {content}
377
- </SelectableMessageText>
378
- );
379
- },
380
- hardbreak: (node, _children, _parent, styles) => (
381
- <SelectableMessageText key={node.key} style={styles.hardbreak}>
382
- {'\n'}
383
- </SelectableMessageText>
384
- ),
385
- softbreak: (node, _children, _parent, styles) => (
386
- <SelectableMessageText key={node.key} style={styles.softbreak}>
387
- {'\n'}
388
- </SelectableMessageText>
389
- ),
390
- inline: (node, children, _parent, styles) => (
391
- <SelectableMessageText key={node.key} style={styles.inline}>
392
- {children}
393
- </SelectableMessageText>
394
- ),
395
- span: (node, children, _parent, styles) => (
396
- <SelectableMessageText key={node.key} style={styles.span}>
397
- {children}
398
- </SelectableMessageText>
399
- ),
400
- link: (node, children, _parent, styles, onLinkPress) => {
401
- const href = readMarkdownAttr(node.attributes.href);
402
- if (!href) {
403
- return (
404
- <SelectableMessageText key={node.key} style={styles.link}>
405
- {children}
406
- </SelectableMessageText>
407
- );
408
- }
409
-
410
- const localFileReference = toLocalFileReferenceLabel(href);
411
- if (localFileReference) {
412
- return (
413
- <SelectableMessageText key={node.key} style={styles.code_inline}>
414
- {localFileReference}
415
- </SelectableMessageText>
416
- );
417
- }
418
-
419
- return (
420
- <SelectableMessageText
421
- key={node.key}
422
- style={styles.link}
423
- onPress={() => openMarkdownLink(href, onLinkPress)}
424
- >
425
- {children}
426
- </SelectableMessageText>
427
- );
428
- },
429
- image: (node) => {
430
- const src = readMarkdownAttr(node.attributes.src);
431
- if (!src) {
432
- return null;
433
- }
434
- const source = toMarkdownImageSource(src, bridgeUrl, bridgeToken);
435
- if (!source) {
436
- return null;
437
- }
438
- const alt = readMarkdownAttr(node.attributes.alt);
439
-
440
- return (
441
- <MarkdownImage
442
- key={node.key}
443
- source={source}
444
- accessibilityLabel={alt ?? undefined}
445
- />
446
- );
447
- },
448
- };
449
- }
450
-
451
- const styles = StyleSheet.create({
452
- messageWrapper: {
453
- maxWidth: '92%',
454
- },
455
- messageWrapperUser: {
456
- alignSelf: 'flex-end',
457
- },
458
- messageWrapperAssistant: {
459
- alignSelf: 'flex-start',
460
- width: '100%',
461
- },
462
- userBubble: {
463
- backgroundColor: colors.userBubble,
464
- borderWidth: StyleSheet.hairlineWidth,
465
- borderColor: colors.userBubbleBorder,
466
- borderRadius: radius.lg,
467
- paddingHorizontal: spacing.lg,
468
- paddingVertical: spacing.md,
469
- },
470
- userBubbleWithAttachments: {
471
- minWidth: 196,
472
- },
473
- userBubbleContent: {
474
- gap: spacing.sm,
475
- },
476
- userMessageText: {
477
- fontFamily: monoFont,
478
- fontSize: 14,
479
- color: colors.textPrimary,
480
- lineHeight: 20,
481
- },
482
- userFileChip: {
483
- flexDirection: 'row',
484
- alignItems: 'center',
485
- alignSelf: 'flex-start',
486
- gap: spacing.xs,
487
- borderRadius: radius.sm,
488
- borderWidth: StyleSheet.hairlineWidth,
489
- borderColor: colors.userBubbleBorder,
490
- backgroundColor: colors.bgMain,
491
- paddingHorizontal: spacing.sm,
492
- paddingVertical: spacing.xs,
493
- maxWidth: '100%',
494
- },
495
- userFileChipText: {
496
- fontFamily: monoFont,
497
- fontSize: 12,
498
- lineHeight: 16,
499
- color: colors.textMuted,
500
- flexShrink: 1,
501
- },
502
- markdownImage: {
503
- width: '100%',
504
- borderRadius: radius.sm,
505
- marginVertical: spacing.sm,
506
- backgroundColor: colors.bgInput,
507
- },
508
- markdownImageFallback: {
509
- minHeight: 120,
510
- maxHeight: 260,
511
- },
512
- timelineCardStack: {
513
- gap: spacing.sm,
514
- },
515
- subAgentCardStack: {
516
- gap: spacing.xs + 2,
517
- },
518
- subAgentCard: {
519
- borderRadius: radius.md,
520
- borderWidth: StyleSheet.hairlineWidth,
521
- borderColor: 'rgba(245, 165, 36, 0.35)',
522
- backgroundColor: 'rgba(245, 165, 36, 0.08)',
523
- paddingHorizontal: spacing.md,
524
- paddingVertical: spacing.sm + 1,
525
- },
526
- subAgentCardError: {
527
- borderColor: colors.statusError,
528
- backgroundColor: colors.errorBg,
529
- },
530
- subAgentHeader: {
531
- flexDirection: 'row',
532
- alignItems: 'center',
533
- gap: spacing.sm,
534
- },
535
- subAgentTitle: {
536
- ...typography.body,
537
- color: colors.textPrimary,
538
- flex: 1,
539
- fontSize: 13,
540
- lineHeight: 18,
541
- },
542
- subAgentDetailWrap: {
543
- marginTop: spacing.xs,
544
- paddingLeft: spacing.lg + 2,
545
- gap: 2,
546
- },
547
- subAgentDetailLine: {
548
- ...typography.caption,
549
- color: colors.textMuted,
550
- lineHeight: 16,
551
- },
552
- timelineCard: {
553
- borderRadius: radius.md,
554
- borderWidth: StyleSheet.hairlineWidth,
555
- borderColor: colors.borderLight,
556
- backgroundColor: colors.bgItem,
557
- paddingHorizontal: spacing.md,
558
- paddingVertical: spacing.sm + 2,
559
- },
560
- timelineCardError: {
561
- borderColor: colors.statusError,
562
- backgroundColor: colors.errorBg,
563
- },
564
- timelineCardInteractive: {
565
- overflow: 'hidden',
566
- },
567
- timelineCardPressed: {
568
- opacity: 0.82,
569
- },
570
- timelineHeader: {
571
- flexDirection: 'row',
572
- alignItems: 'center',
573
- gap: spacing.sm,
574
- },
575
- timelineTitle: {
576
- ...typography.body,
577
- color: colors.textPrimary,
578
- flex: 1,
579
- fontSize: 13,
580
- lineHeight: 18,
581
- },
582
- timelineTitleMono: {
583
- fontFamily: monoFont,
584
- fontSize: 12,
585
- lineHeight: 18,
586
- },
587
- timelineDetailWrap: {
588
- marginTop: spacing.xs,
589
- borderTopWidth: StyleSheet.hairlineWidth,
590
- borderTopColor: colors.borderLight,
591
- paddingTop: spacing.xs,
592
- gap: 2,
593
- },
594
- timelineToggleText: {
595
- ...typography.caption,
596
- color: colors.textMuted,
597
- marginTop: spacing.xs,
598
- },
599
- timelineDetailLine: {
600
- fontFamily: monoFont,
601
- fontSize: 11,
602
- lineHeight: 16,
603
- color: colors.textSecondary,
604
- },
605
- });
606
-
607
- function readMarkdownAttr(value: unknown): string | null {
608
- return typeof value === 'string' && value.trim().length > 0 ? value : null;
609
- }
610
-
611
- function SelectableMessageText({ children, ...props }: TextProps): ReactElement {
612
- return (
613
- <Text selectable={props.selectable ?? !props.onPress} {...props}>
614
- {children}
615
- </Text>
616
- );
617
- }
618
-
619
- function MarkdownImage({
620
- source,
621
- accessibilityLabel,
622
- }: {
623
- source: ImageSourcePropType;
624
- accessibilityLabel?: string;
625
- }): ReactElement {
626
- const [aspectRatio, setAspectRatio] = useState<number | null>(null);
627
-
628
- return (
629
- <Image
630
- source={source}
631
- style={[
632
- styles.markdownImage,
633
- aspectRatio ? { aspectRatio } : styles.markdownImageFallback,
634
- ]}
635
- resizeMode="contain"
636
- accessible={Boolean(accessibilityLabel)}
637
- accessibilityLabel={accessibilityLabel}
638
- onLoad={(event) => {
639
- const width = event.nativeEvent.source?.width;
640
- const height = event.nativeEvent.source?.height;
641
- if (
642
- typeof width !== 'number' ||
643
- typeof height !== 'number' ||
644
- !Number.isFinite(width) ||
645
- !Number.isFinite(height) ||
646
- width <= 0 ||
647
- height <= 0
648
- ) {
649
- return;
650
- }
651
-
652
- const nextAspectRatio = width / height;
653
- setAspectRatio((previousAspectRatio) =>
654
- previousAspectRatio === nextAspectRatio ? previousAspectRatio : nextAspectRatio
655
- );
656
- }}
657
- />
658
- );
659
- }
660
-
661
- function parseUserMessageBlocks(
662
- content: string,
663
- bridgeUrl: string | null,
664
- bridgeToken: string | null
665
- ): UserMessageBlock[] {
666
- const blocks: UserMessageBlock[] = [];
667
- const pendingTextLines: string[] = [];
668
-
669
- const flushTextBlock = () => {
670
- if (pendingTextLines.length === 0) {
671
- return;
672
- }
673
-
674
- const value = pendingTextLines.join('\n');
675
- pendingTextLines.length = 0;
676
- if (!value.trim()) {
677
- return;
678
- }
679
-
680
- blocks.push({
681
- kind: 'text',
682
- value,
683
- });
684
- };
685
-
686
- for (const line of content.split('\n')) {
687
- const localImageMatch = line.match(/^\[local image:\s*(.+?)\]$/i);
688
- if (localImageMatch) {
689
- const source = toMarkdownImageSource(localImageMatch[1], bridgeUrl, bridgeToken);
690
- if (source) {
691
- flushTextBlock();
692
- blocks.push({
693
- kind: 'image',
694
- source,
695
- accessibilityLabel: toPathBasename(localImageMatch[1]),
696
- });
697
- continue;
698
- }
699
- }
700
-
701
- const remoteImageMatch = line.match(/^\[image:\s*(.+?)\]$/i);
702
- if (remoteImageMatch) {
703
- const source = toMarkdownImageSource(remoteImageMatch[1], bridgeUrl, bridgeToken);
704
- if (source) {
705
- flushTextBlock();
706
- blocks.push({
707
- kind: 'image',
708
- source,
709
- accessibilityLabel: toPathBasename(remoteImageMatch[1]),
710
- });
711
- continue;
712
- }
713
- }
714
-
715
- const fileMatch = line.match(/^\[file:\s*(.+?)\]$/i);
716
- if (fileMatch) {
717
- flushTextBlock();
718
- blocks.push({
719
- kind: 'file',
720
- value: toLocalFileReferenceLabel(fileMatch[1]) ?? toPathBasename(fileMatch[1]),
721
- });
722
- continue;
723
- }
724
-
725
- pendingTextLines.push(line);
726
- }
727
-
728
- flushTextBlock();
729
-
730
- if (blocks.length === 0) {
731
- return [
732
- {
733
- kind: 'text',
734
- value: content,
735
- },
736
- ];
737
- }
738
-
739
- return blocks;
740
- }
741
-
742
- function toPathBasename(path: string): string {
743
- const normalizedPath = path.trim().replace(/\\/g, '/');
744
- if (!normalizedPath) {
745
- return 'image';
746
- }
747
-
748
- const basename = normalizedPath.split('/').filter(Boolean).pop();
749
- return basename && basename.length > 0 ? basename : normalizedPath;
750
- }
751
-
752
- function openMarkdownLink(
753
- href: string,
754
- onLinkPress?: (url: string) => boolean
755
- ): void {
756
- const shouldOpen = onLinkPress ? onLinkPress(href) !== false : true;
757
- if (!shouldOpen) {
758
- return;
759
- }
760
- void Linking.openURL(href).catch(() => {});
761
- }
762
-
763
- function toLocalFileReferenceLabel(href: string): string | null {
764
- let normalizedHref = href.trim();
765
- if (!normalizedHref) {
766
- return null;
767
- }
768
-
769
- try {
770
- normalizedHref = decodeURIComponent(normalizedHref);
771
- } catch {
772
- // Keep original href when decode fails.
773
- }
774
-
775
- if (normalizedHref.startsWith('file://')) {
776
- normalizedHref = normalizedHref.replace(/^file:\/\//, '');
777
- }
778
-
779
- const isPosixPath = normalizedHref.startsWith('/');
780
- const isWindowsPath = /^[A-Za-z]:[\\/]/.test(normalizedHref);
781
- if (!isPosixPath && !isWindowsPath) {
782
- return null;
783
- }
784
-
785
- const anchorLineMatch = normalizedHref.match(/#L(\d+)(?:C\d+)?$/i);
786
- const suffixLineMatch = normalizedHref.match(/:(\d+)(?::\d+)?$/);
787
-
788
- const line = anchorLineMatch?.[1] ?? suffixLineMatch?.[1] ?? null;
789
- let pathOnly = normalizedHref;
790
- if (anchorLineMatch) {
791
- pathOnly = normalizedHref.slice(0, normalizedHref.length - anchorLineMatch[0].length);
792
- } else if (suffixLineMatch) {
793
- pathOnly = normalizedHref.slice(0, normalizedHref.length - suffixLineMatch[0].length);
794
- }
795
-
796
- const basename = pathOnly.split(/[\\/]/).filter(Boolean).pop();
797
- if (!basename) {
798
- return line ? `line ${line}` : null;
799
- }
800
-
801
- return line ? `${basename}:${line}` : basename;
802
- }
803
-
804
- function parseTimelineEntries(content: string): TimelineEntry[] | null {
805
- if (!content.includes('•')) {
806
- return null;
807
- }
808
-
809
- const lines = content.split('\n');
810
- const entries: TimelineEntry[] = [];
811
- let current: TimelineEntry | null = null;
812
-
813
- const commitCurrent = () => {
814
- if (!current || !current.title) {
815
- current = null;
816
- return;
817
- }
818
- entries.push(current);
819
- current = null;
820
- };
821
-
822
- for (const line of lines) {
823
- const headingMatch = line.match(/^\s*•\s+(.+)$/);
824
- if (headingMatch) {
825
- commitCurrent();
826
- current = {
827
- title: headingMatch[1].trim(),
828
- details: [],
829
- };
830
- continue;
831
- }
832
-
833
- if (!current) {
834
- if (line.trim().length > 0) {
835
- return null;
836
- }
837
- continue;
838
- }
839
-
840
- const detail = normalizeTimelineDetail(line);
841
- if (detail) {
842
- current.details.push(detail);
843
- }
844
- }
845
-
846
- commitCurrent();
847
- return entries.length > 0 ? entries : null;
848
- }
849
-
850
- function normalizeTimelineDetail(line: string): string | null {
851
- if (line.trim().length === 0) {
852
- return null;
853
- }
854
-
855
- const withoutMarker = line.replace(/^\s*[└├│]\s*/, '').trimEnd();
856
- if (withoutMarker.trim().length === 0) {
857
- return null;
858
- }
859
-
860
- return withoutMarker;
861
- }
862
-
863
- function toTimelineVisual(title: string): {
864
- icon: keyof typeof Ionicons.glyphMap;
865
- useMonospaceTitle: boolean;
866
- isError: boolean;
867
- } {
868
- const normalized = title.toLowerCase();
869
- const isError =
870
- normalized.includes('failed') || normalized.includes('error') || normalized.includes('aborted');
871
-
872
- if (isError) {
873
- return {
874
- icon: 'alert-circle-outline',
875
- useMonospaceTitle: false,
876
- isError: true,
877
- };
878
- }
879
-
880
- if (normalized.startsWith('ran ')) {
881
- return {
882
- icon: 'play-outline',
883
- useMonospaceTitle: true,
884
- isError: false,
885
- };
886
- }
887
-
888
- if (normalized.startsWith('explored')) {
889
- return {
890
- icon: 'search',
891
- useMonospaceTitle: false,
892
- isError: false,
893
- };
894
- }
895
-
896
- if (normalized.startsWith('called tool')) {
897
- return {
898
- icon: 'construct-outline',
899
- useMonospaceTitle: false,
900
- isError: false,
901
- };
902
- }
903
-
904
- if (normalized.startsWith('searched web')) {
905
- return {
906
- icon: 'globe-outline',
907
- useMonospaceTitle: false,
908
- isError: false,
909
- };
910
- }
911
-
912
- return {
913
- icon: 'document-text-outline',
914
- useMonospaceTitle: false,
915
- isError: false,
916
- };
917
- }
918
-
919
- function toSubAgentVisual(title: string): {
920
- icon: keyof typeof Ionicons.glyphMap;
921
- isError: boolean;
922
- } {
923
- const normalized = title.toLowerCase();
924
- const isError =
925
- normalized.includes('failed') || normalized.includes('error') || normalized.includes('aborted');
926
-
927
- if (isError) {
928
- return {
929
- icon: 'alert-circle-outline',
930
- isError: true,
931
- };
932
- }
933
-
934
- if (normalized.includes('waiting')) {
935
- return {
936
- icon: 'pause-circle-outline',
937
- isError: false,
938
- };
939
- }
940
-
941
- if (normalized.includes('closed')) {
942
- return {
943
- icon: 'checkmark-circle-outline',
944
- isError: false,
945
- };
946
- }
947
-
948
- if (normalized.includes('spawn')) {
949
- return {
950
- icon: 'sparkles-outline',
951
- isError: false,
952
- };
953
- }
954
-
955
- return {
956
- icon: 'git-branch-outline',
957
- isError: false,
958
- };
959
- }