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.
- package/README.md +4 -0
- package/docs/setup-and-operations.md +3 -1
- package/docs/troubleshooting.md +1 -0
- package/package.json +18 -8
- package/scripts/setup-secure-dev.sh +26 -17
- package/services/rust-bridge/Cargo.lock +1 -1
- package/services/rust-bridge/Cargo.toml +1 -1
- package/vendor/bridge-binaries/darwin-arm64/codex-rust-bridge +0 -0
- package/vendor/bridge-binaries/darwin-x64/codex-rust-bridge +0 -0
- package/vendor/bridge-binaries/linux-x64/codex-rust-bridge +0 -0
- package/vendor/bridge-binaries/win32-x64/codex-rust-bridge.exe +0 -0
- package/.artifacts/bridge-binaries/bridge-binaries-darwin-arm64/codex-rust-bridge +0 -0
- package/.artifacts/bridge-binaries/bridge-binaries-darwin-x64/codex-rust-bridge +0 -0
- package/.artifacts/bridge-binaries/bridge-binaries-linux-x64/codex-rust-bridge +0 -0
- package/.artifacts/bridge-binaries/bridge-binaries-win32-x64/codex-rust-bridge.exe +0 -0
- package/.github/workflows/ci.yml +0 -80
- package/.github/workflows/npm-release.yml +0 -208
- package/.github/workflows/pages.yml +0 -41
- package/AGENTS.md +0 -273
- package/STATUS.md +0 -115
- package/apps/mobile/.env.example +0 -6
- package/apps/mobile/App.tsx +0 -943
- package/apps/mobile/app.json +0 -77
- package/apps/mobile/assets/brand/adaptive-icon.png +0 -0
- package/apps/mobile/assets/brand/app-icon.png +0 -0
- package/apps/mobile/assets/brand/favicon.png +0 -0
- package/apps/mobile/assets/brand/mark.png +0 -0
- package/apps/mobile/assets/brand/splash-icon-white.png +0 -0
- package/apps/mobile/assets/brand/splash-icon.png +0 -0
- package/apps/mobile/babel.config.js +0 -7
- package/apps/mobile/eas.json +0 -40
- package/apps/mobile/eslint.config.cjs +0 -28
- package/apps/mobile/index.js +0 -5
- package/apps/mobile/package.json +0 -57
- package/apps/mobile/plugins/withAndroidCleartextTraffic.js +0 -14
- package/apps/mobile/src/api/__tests__/chatMapping.test.ts +0 -351
- package/apps/mobile/src/api/__tests__/client.test.ts +0 -1494
- package/apps/mobile/src/api/__tests__/ws.test.ts +0 -640
- package/apps/mobile/src/api/account.ts +0 -47
- package/apps/mobile/src/api/chatMapping.ts +0 -1048
- package/apps/mobile/src/api/client.ts +0 -1430
- package/apps/mobile/src/api/rateLimits.ts +0 -143
- package/apps/mobile/src/api/types.ts +0 -435
- package/apps/mobile/src/api/ws.ts +0 -852
- package/apps/mobile/src/bridgeUrl.ts +0 -105
- package/apps/mobile/src/components/ActivityBar.tsx +0 -95
- package/apps/mobile/src/components/ApprovalBanner.tsx +0 -207
- package/apps/mobile/src/components/BrandMark.tsx +0 -43
- package/apps/mobile/src/components/ChatHeader.tsx +0 -107
- package/apps/mobile/src/components/ChatInput.tsx +0 -457
- package/apps/mobile/src/components/ChatMessage.tsx +0 -959
- package/apps/mobile/src/components/ComposerUsageLimits.tsx +0 -167
- package/apps/mobile/src/components/SelectionSheet.tsx +0 -466
- package/apps/mobile/src/components/StatusLine.tsx +0 -52
- package/apps/mobile/src/components/ToolBlock.tsx +0 -67
- package/apps/mobile/src/components/TypingIndicator.tsx +0 -64
- package/apps/mobile/src/components/VoiceRecordingWaveform.tsx +0 -181
- package/apps/mobile/src/components/WorkspacePickerModal.tsx +0 -812
- package/apps/mobile/src/components/__tests__/chat-input-layout.test.ts +0 -35
- package/apps/mobile/src/components/__tests__/chatImageSource.test.ts +0 -44
- package/apps/mobile/src/components/__tests__/composerUsageLimits.test.ts +0 -138
- package/apps/mobile/src/components/__tests__/voiceWaveform.test.ts +0 -31
- package/apps/mobile/src/components/chat-input-layout.ts +0 -59
- package/apps/mobile/src/components/chatImageSource.ts +0 -86
- package/apps/mobile/src/components/usageLimitBadges.ts +0 -109
- package/apps/mobile/src/components/voiceWaveform.ts +0 -46
- package/apps/mobile/src/config.ts +0 -64
- package/apps/mobile/src/hooks/useVoiceRecorder.ts +0 -271
- package/apps/mobile/src/navigation/DrawerContent.tsx +0 -1129
- package/apps/mobile/src/navigation/__tests__/chatThreadTree.test.ts +0 -89
- package/apps/mobile/src/navigation/__tests__/drawerChats.test.ts +0 -65
- package/apps/mobile/src/navigation/chatThreadTree.ts +0 -191
- package/apps/mobile/src/navigation/drawerChats.ts +0 -9
- package/apps/mobile/src/screens/GitScreen.tsx +0 -1489
- package/apps/mobile/src/screens/MainScreen.tsx +0 -10511
- package/apps/mobile/src/screens/OnboardingScreen.tsx +0 -1746
- package/apps/mobile/src/screens/PrivacyScreen.tsx +0 -196
- package/apps/mobile/src/screens/SettingsScreen.tsx +0 -870
- package/apps/mobile/src/screens/TerminalScreen.tsx +0 -248
- package/apps/mobile/src/screens/TermsScreen.tsx +0 -192
- package/apps/mobile/src/screens/__tests__/agentThreadDisplay.test.ts +0 -80
- package/apps/mobile/src/screens/__tests__/agentThreads.test.ts +0 -170
- package/apps/mobile/src/screens/__tests__/gitDiff.test.ts +0 -131
- package/apps/mobile/src/screens/__tests__/planCardState.test.ts +0 -88
- package/apps/mobile/src/screens/__tests__/subAgentTranscript.test.ts +0 -102
- package/apps/mobile/src/screens/__tests__/transcriptMessages.test.ts +0 -97
- package/apps/mobile/src/screens/agentThreadDisplay.ts +0 -261
- package/apps/mobile/src/screens/agentThreads.ts +0 -167
- package/apps/mobile/src/screens/gitDiff.ts +0 -380
- package/apps/mobile/src/screens/planCardState.ts +0 -40
- package/apps/mobile/src/screens/subAgentTranscript.ts +0 -149
- package/apps/mobile/src/screens/transcriptMessages.ts +0 -102
- package/apps/mobile/src/theme.ts +0 -106
- package/apps/mobile/src/types/assets.d.ts +0 -4
- package/apps/mobile/tsconfig.json +0 -33
- package/docs/app-review-notes.md +0 -116
- package/docs/codex-app-server-cli-gap-tracker.md +0 -90
- package/docs/eas-builds.md +0 -91
- package/docs/open-source-license-requirements.md +0 -32
- package/docs/plans/2026-02-20-codex-desktop-style-redesign.md +0 -190
- package/docs/plans/2026-02-20-codex-mobile-implementation.md +0 -1630
- package/docs/plans/2026-02-21-codex-ui-redesign-design.md +0 -101
- package/docs/plans/2026-02-21-codex-ui-redesign.md +0 -1229
- package/docs/privacy-policy.md +0 -54
- package/docs/realtime-streaming-limitations.md +0 -161
- package/docs/terms-of-service.md +0 -33
- package/docs/voice-transcription.md +0 -87
- package/scripts/codex-live-demo.sh +0 -69
- package/scripts/start-bridge-secure.sh +0 -5
- package/scripts/start-expo.sh +0 -176
- package/scripts/sync-versions.js +0 -63
- package/scripts/teardown.sh +0 -136
- package/services/mac-bridge/.env.example +0 -10
- package/services/mac-bridge/codex-types/AbsolutePathBuf.ts +0 -14
- package/services/mac-bridge/codex-types/AddConversationListenerParams.ts +0 -6
- package/services/mac-bridge/codex-types/AddConversationSubscriptionResponse.ts +0 -5
- package/services/mac-bridge/codex-types/AgentMessageContent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentMessageContentDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentMessageDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentMessageEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentMessageItem.ts +0 -21
- package/services/mac-bridge/codex-types/AgentReasoningDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentReasoningEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentReasoningRawContentDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentReasoningRawContentEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentReasoningSectionBreakEvent.ts +0 -5
- package/services/mac-bridge/codex-types/AgentStatus.ts +0 -8
- package/services/mac-bridge/codex-types/ApplyPatchApprovalParams.ts +0 -21
- package/services/mac-bridge/codex-types/ApplyPatchApprovalRequestEvent.ts +0 -23
- package/services/mac-bridge/codex-types/ApplyPatchApprovalResponse.ts +0 -6
- package/services/mac-bridge/codex-types/ArchiveConversationParams.ts +0 -6
- package/services/mac-bridge/codex-types/ArchiveConversationResponse.ts +0 -5
- package/services/mac-bridge/codex-types/AskForApproval.ts +0 -9
- package/services/mac-bridge/codex-types/AuthMode.ts +0 -8
- package/services/mac-bridge/codex-types/AuthStatusChangeNotification.ts +0 -9
- package/services/mac-bridge/codex-types/BackgroundEventEvent.ts +0 -5
- package/services/mac-bridge/codex-types/ByteRange.ts +0 -13
- package/services/mac-bridge/codex-types/CallToolResult.ts +0 -9
- package/services/mac-bridge/codex-types/CancelLoginChatGptParams.ts +0 -5
- package/services/mac-bridge/codex-types/CancelLoginChatGptResponse.ts +0 -5
- package/services/mac-bridge/codex-types/ClientInfo.ts +0 -5
- package/services/mac-bridge/codex-types/ClientNotification.ts +0 -5
- package/services/mac-bridge/codex-types/ClientRequest.ts +0 -60
- package/services/mac-bridge/codex-types/CodexErrorInfo.ts +0 -8
- package/services/mac-bridge/codex-types/CollabAgentInteractionBeginEvent.ts +0 -23
- package/services/mac-bridge/codex-types/CollabAgentInteractionEndEvent.ts +0 -28
- package/services/mac-bridge/codex-types/CollabAgentSpawnBeginEvent.ts +0 -19
- package/services/mac-bridge/codex-types/CollabAgentSpawnEndEvent.ts +0 -28
- package/services/mac-bridge/codex-types/CollabCloseBeginEvent.ts +0 -18
- package/services/mac-bridge/codex-types/CollabCloseEndEvent.ts +0 -24
- package/services/mac-bridge/codex-types/CollabResumeBeginEvent.ts +0 -18
- package/services/mac-bridge/codex-types/CollabResumeEndEvent.ts +0 -24
- package/services/mac-bridge/codex-types/CollabWaitingBeginEvent.ts +0 -18
- package/services/mac-bridge/codex-types/CollabWaitingEndEvent.ts +0 -19
- package/services/mac-bridge/codex-types/CollaborationMode.ts +0 -10
- package/services/mac-bridge/codex-types/CollaborationModeMask.ts +0 -11
- package/services/mac-bridge/codex-types/ContentItem.ts +0 -5
- package/services/mac-bridge/codex-types/ContextCompactedEvent.ts +0 -5
- package/services/mac-bridge/codex-types/ContextCompactionItem.ts +0 -5
- package/services/mac-bridge/codex-types/ConversationGitInfo.ts +0 -5
- package/services/mac-bridge/codex-types/ConversationSummary.ts +0 -8
- package/services/mac-bridge/codex-types/CreditsSnapshot.ts +0 -5
- package/services/mac-bridge/codex-types/CustomPrompt.ts +0 -5
- package/services/mac-bridge/codex-types/DeprecationNoticeEvent.ts +0 -13
- package/services/mac-bridge/codex-types/DynamicToolCallRequest.ts +0 -6
- package/services/mac-bridge/codex-types/ElicitationRequestEvent.ts +0 -5
- package/services/mac-bridge/codex-types/ErrorEvent.ts +0 -6
- package/services/mac-bridge/codex-types/EventMsg.ts +0 -78
- package/services/mac-bridge/codex-types/ExecApprovalRequestEvent.ts +0 -44
- package/services/mac-bridge/codex-types/ExecCommandApprovalParams.ts +0 -16
- package/services/mac-bridge/codex-types/ExecCommandApprovalResponse.ts +0 -6
- package/services/mac-bridge/codex-types/ExecCommandBeginEvent.ts +0 -35
- package/services/mac-bridge/codex-types/ExecCommandEndEvent.ts +0 -64
- package/services/mac-bridge/codex-types/ExecCommandOutputDeltaEvent.ts +0 -18
- package/services/mac-bridge/codex-types/ExecCommandSource.ts +0 -5
- package/services/mac-bridge/codex-types/ExecCommandStatus.ts +0 -5
- package/services/mac-bridge/codex-types/ExecOneOffCommandParams.ts +0 -6
- package/services/mac-bridge/codex-types/ExecOneOffCommandResponse.ts +0 -5
- package/services/mac-bridge/codex-types/ExecOutputStream.ts +0 -5
- package/services/mac-bridge/codex-types/ExecPolicyAmendment.ts +0 -12
- package/services/mac-bridge/codex-types/ExitedReviewModeEvent.ts +0 -6
- package/services/mac-bridge/codex-types/FileChange.ts +0 -5
- package/services/mac-bridge/codex-types/ForcedLoginMethod.ts +0 -5
- package/services/mac-bridge/codex-types/ForkConversationParams.ts +0 -7
- package/services/mac-bridge/codex-types/ForkConversationResponse.ts +0 -7
- package/services/mac-bridge/codex-types/FunctionCallOutputBody.ts +0 -6
- package/services/mac-bridge/codex-types/FunctionCallOutputContentItem.ts +0 -9
- package/services/mac-bridge/codex-types/FunctionCallOutputPayload.ts +0 -12
- package/services/mac-bridge/codex-types/FuzzyFileSearchParams.ts +0 -5
- package/services/mac-bridge/codex-types/FuzzyFileSearchResponse.ts +0 -6
- package/services/mac-bridge/codex-types/FuzzyFileSearchResult.ts +0 -8
- package/services/mac-bridge/codex-types/FuzzyFileSearchSessionCompletedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/FuzzyFileSearchSessionUpdatedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/GetAuthStatusParams.ts +0 -5
- package/services/mac-bridge/codex-types/GetAuthStatusResponse.ts +0 -6
- package/services/mac-bridge/codex-types/GetConversationSummaryParams.ts +0 -6
- package/services/mac-bridge/codex-types/GetConversationSummaryResponse.ts +0 -6
- package/services/mac-bridge/codex-types/GetHistoryEntryResponseEvent.ts +0 -10
- package/services/mac-bridge/codex-types/GetUserAgentResponse.ts +0 -5
- package/services/mac-bridge/codex-types/GetUserSavedConfigResponse.ts +0 -6
- package/services/mac-bridge/codex-types/GhostCommit.ts +0 -8
- package/services/mac-bridge/codex-types/GitDiffToRemoteParams.ts +0 -5
- package/services/mac-bridge/codex-types/GitDiffToRemoteResponse.ts +0 -6
- package/services/mac-bridge/codex-types/GitSha.ts +0 -5
- package/services/mac-bridge/codex-types/HistoryEntry.ts +0 -5
- package/services/mac-bridge/codex-types/InitializeCapabilities.ts +0 -17
- package/services/mac-bridge/codex-types/InitializeParams.ts +0 -7
- package/services/mac-bridge/codex-types/InitializeResponse.ts +0 -5
- package/services/mac-bridge/codex-types/InputItem.ts +0 -10
- package/services/mac-bridge/codex-types/InputModality.ts +0 -8
- package/services/mac-bridge/codex-types/InterruptConversationParams.ts +0 -6
- package/services/mac-bridge/codex-types/InterruptConversationResponse.ts +0 -6
- package/services/mac-bridge/codex-types/ItemCompletedEvent.ts +0 -7
- package/services/mac-bridge/codex-types/ItemStartedEvent.ts +0 -7
- package/services/mac-bridge/codex-types/ListConversationsParams.ts +0 -5
- package/services/mac-bridge/codex-types/ListConversationsResponse.ts +0 -6
- package/services/mac-bridge/codex-types/ListCustomPromptsResponseEvent.ts +0 -9
- package/services/mac-bridge/codex-types/ListRemoteSkillsResponseEvent.ts +0 -9
- package/services/mac-bridge/codex-types/ListSkillsResponseEvent.ts +0 -9
- package/services/mac-bridge/codex-types/LocalShellAction.ts +0 -6
- package/services/mac-bridge/codex-types/LocalShellExecAction.ts +0 -5
- package/services/mac-bridge/codex-types/LocalShellStatus.ts +0 -5
- package/services/mac-bridge/codex-types/LoginApiKeyParams.ts +0 -5
- package/services/mac-bridge/codex-types/LoginApiKeyResponse.ts +0 -5
- package/services/mac-bridge/codex-types/LoginChatGptCompleteNotification.ts +0 -8
- package/services/mac-bridge/codex-types/LoginChatGptResponse.ts +0 -5
- package/services/mac-bridge/codex-types/LogoutChatGptResponse.ts +0 -5
- package/services/mac-bridge/codex-types/McpAuthStatus.ts +0 -5
- package/services/mac-bridge/codex-types/McpInvocation.ts +0 -18
- package/services/mac-bridge/codex-types/McpListToolsResponseEvent.ts +0 -25
- package/services/mac-bridge/codex-types/McpStartupCompleteEvent.ts +0 -6
- package/services/mac-bridge/codex-types/McpStartupFailure.ts +0 -5
- package/services/mac-bridge/codex-types/McpStartupStatus.ts +0 -5
- package/services/mac-bridge/codex-types/McpStartupUpdateEvent.ts +0 -14
- package/services/mac-bridge/codex-types/McpToolCallBeginEvent.ts +0 -10
- package/services/mac-bridge/codex-types/McpToolCallEndEvent.ts +0 -15
- package/services/mac-bridge/codex-types/MessagePhase.ts +0 -11
- package/services/mac-bridge/codex-types/ModeKind.ts +0 -8
- package/services/mac-bridge/codex-types/ModelRerouteEvent.ts +0 -6
- package/services/mac-bridge/codex-types/ModelRerouteReason.ts +0 -5
- package/services/mac-bridge/codex-types/NetworkAccess.ts +0 -8
- package/services/mac-bridge/codex-types/NetworkApprovalContext.ts +0 -6
- package/services/mac-bridge/codex-types/NetworkApprovalProtocol.ts +0 -5
- package/services/mac-bridge/codex-types/NewConversationParams.ts +0 -8
- package/services/mac-bridge/codex-types/NewConversationResponse.ts +0 -7
- package/services/mac-bridge/codex-types/ParsedCommand.ts +0 -12
- package/services/mac-bridge/codex-types/PatchApplyBeginEvent.ts +0 -23
- package/services/mac-bridge/codex-types/PatchApplyEndEvent.ts +0 -36
- package/services/mac-bridge/codex-types/PatchApplyStatus.ts +0 -5
- package/services/mac-bridge/codex-types/Personality.ts +0 -5
- package/services/mac-bridge/codex-types/PlanDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/PlanItem.ts +0 -5
- package/services/mac-bridge/codex-types/PlanItemArg.ts +0 -6
- package/services/mac-bridge/codex-types/PlanType.ts +0 -5
- package/services/mac-bridge/codex-types/Profile.ts +0 -9
- package/services/mac-bridge/codex-types/RateLimitSnapshot.ts +0 -8
- package/services/mac-bridge/codex-types/RateLimitWindow.ts +0 -17
- package/services/mac-bridge/codex-types/RawResponseItemEvent.ts +0 -6
- package/services/mac-bridge/codex-types/ReadOnlyAccess.ts +0 -19
- package/services/mac-bridge/codex-types/ReasoningContentDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/ReasoningEffort.ts +0 -8
- package/services/mac-bridge/codex-types/ReasoningItem.ts +0 -5
- package/services/mac-bridge/codex-types/ReasoningItemContent.ts +0 -5
- package/services/mac-bridge/codex-types/ReasoningItemReasoningSummary.ts +0 -5
- package/services/mac-bridge/codex-types/ReasoningRawContentDeltaEvent.ts +0 -5
- package/services/mac-bridge/codex-types/ReasoningSummary.ts +0 -10
- package/services/mac-bridge/codex-types/RemoteSkillDownloadedEvent.ts +0 -8
- package/services/mac-bridge/codex-types/RemoteSkillSummary.ts +0 -5
- package/services/mac-bridge/codex-types/RemoveConversationListenerParams.ts +0 -5
- package/services/mac-bridge/codex-types/RemoveConversationSubscriptionResponse.ts +0 -5
- package/services/mac-bridge/codex-types/RequestId.ts +0 -5
- package/services/mac-bridge/codex-types/RequestUserInputEvent.ts +0 -15
- package/services/mac-bridge/codex-types/RequestUserInputQuestion.ts +0 -6
- package/services/mac-bridge/codex-types/RequestUserInputQuestionOption.ts +0 -5
- package/services/mac-bridge/codex-types/Resource.ts +0 -9
- package/services/mac-bridge/codex-types/ResourceTemplate.ts +0 -9
- package/services/mac-bridge/codex-types/ResponseItem.ts +0 -18
- package/services/mac-bridge/codex-types/ResumeConversationParams.ts +0 -8
- package/services/mac-bridge/codex-types/ResumeConversationResponse.ts +0 -7
- package/services/mac-bridge/codex-types/ReviewCodeLocation.ts +0 -9
- package/services/mac-bridge/codex-types/ReviewDecision.ts +0 -9
- package/services/mac-bridge/codex-types/ReviewFinding.ts +0 -9
- package/services/mac-bridge/codex-types/ReviewLineRange.ts +0 -8
- package/services/mac-bridge/codex-types/ReviewOutputEvent.ts +0 -9
- package/services/mac-bridge/codex-types/ReviewRequest.ts +0 -9
- package/services/mac-bridge/codex-types/ReviewTarget.ts +0 -9
- package/services/mac-bridge/codex-types/SandboxMode.ts +0 -5
- package/services/mac-bridge/codex-types/SandboxPolicy.ts +0 -44
- package/services/mac-bridge/codex-types/SandboxSettings.ts +0 -6
- package/services/mac-bridge/codex-types/SendUserMessageParams.ts +0 -7
- package/services/mac-bridge/codex-types/SendUserMessageResponse.ts +0 -5
- package/services/mac-bridge/codex-types/SendUserTurnParams.ts +0 -16
- package/services/mac-bridge/codex-types/SendUserTurnResponse.ts +0 -5
- package/services/mac-bridge/codex-types/ServerNotification.ts +0 -45
- package/services/mac-bridge/codex-types/ServerRequest.ts +0 -16
- package/services/mac-bridge/codex-types/SessionConfiguredEvent.ts +0 -57
- package/services/mac-bridge/codex-types/SessionConfiguredNotification.ts +0 -8
- package/services/mac-bridge/codex-types/SessionNetworkProxyRuntime.ts +0 -5
- package/services/mac-bridge/codex-types/SessionSource.ts +0 -6
- package/services/mac-bridge/codex-types/SetDefaultModelParams.ts +0 -6
- package/services/mac-bridge/codex-types/SetDefaultModelResponse.ts +0 -5
- package/services/mac-bridge/codex-types/Settings.ts +0 -9
- package/services/mac-bridge/codex-types/SkillDependencies.ts +0 -6
- package/services/mac-bridge/codex-types/SkillErrorInfo.ts +0 -5
- package/services/mac-bridge/codex-types/SkillInterface.ts +0 -5
- package/services/mac-bridge/codex-types/SkillMetadata.ts +0 -12
- package/services/mac-bridge/codex-types/SkillScope.ts +0 -5
- package/services/mac-bridge/codex-types/SkillToolDependency.ts +0 -5
- package/services/mac-bridge/codex-types/SkillsListEntry.ts +0 -7
- package/services/mac-bridge/codex-types/StepStatus.ts +0 -5
- package/services/mac-bridge/codex-types/StreamErrorEvent.ts +0 -12
- package/services/mac-bridge/codex-types/SubAgentSource.ts +0 -6
- package/services/mac-bridge/codex-types/TerminalInteractionEvent.ts +0 -17
- package/services/mac-bridge/codex-types/TextElement.ts +0 -14
- package/services/mac-bridge/codex-types/ThreadId.ts +0 -5
- package/services/mac-bridge/codex-types/ThreadNameUpdatedEvent.ts +0 -6
- package/services/mac-bridge/codex-types/ThreadRolledBackEvent.ts +0 -9
- package/services/mac-bridge/codex-types/TokenCountEvent.ts +0 -7
- package/services/mac-bridge/codex-types/TokenUsage.ts +0 -5
- package/services/mac-bridge/codex-types/TokenUsageInfo.ts +0 -6
- package/services/mac-bridge/codex-types/Tool.ts +0 -9
- package/services/mac-bridge/codex-types/Tools.ts +0 -5
- package/services/mac-bridge/codex-types/TurnAbortReason.ts +0 -5
- package/services/mac-bridge/codex-types/TurnAbortedEvent.ts +0 -6
- package/services/mac-bridge/codex-types/TurnCompleteEvent.ts +0 -5
- package/services/mac-bridge/codex-types/TurnDiffEvent.ts +0 -5
- package/services/mac-bridge/codex-types/TurnItem.ts +0 -11
- package/services/mac-bridge/codex-types/TurnStartedEvent.ts +0 -6
- package/services/mac-bridge/codex-types/UndoCompletedEvent.ts +0 -5
- package/services/mac-bridge/codex-types/UndoStartedEvent.ts +0 -5
- package/services/mac-bridge/codex-types/UpdatePlanArgs.ts +0 -10
- package/services/mac-bridge/codex-types/UserInfoResponse.ts +0 -5
- package/services/mac-bridge/codex-types/UserInput.ts +0 -16
- package/services/mac-bridge/codex-types/UserMessageEvent.ts +0 -22
- package/services/mac-bridge/codex-types/UserMessageItem.ts +0 -6
- package/services/mac-bridge/codex-types/UserSavedConfig.ts +0 -14
- package/services/mac-bridge/codex-types/Verbosity.ts +0 -9
- package/services/mac-bridge/codex-types/ViewImageToolCallEvent.ts +0 -13
- package/services/mac-bridge/codex-types/WarningEvent.ts +0 -5
- package/services/mac-bridge/codex-types/WebSearchAction.ts +0 -5
- package/services/mac-bridge/codex-types/WebSearchBeginEvent.ts +0 -5
- package/services/mac-bridge/codex-types/WebSearchEndEvent.ts +0 -6
- package/services/mac-bridge/codex-types/WebSearchItem.ts +0 -6
- package/services/mac-bridge/codex-types/WebSearchMode.ts +0 -5
- package/services/mac-bridge/codex-types/index.ts +0 -234
- package/services/mac-bridge/codex-types/serde_json/JsonValue.ts +0 -5
- package/services/mac-bridge/codex-types/v2/Account.ts +0 -6
- package/services/mac-bridge/codex-types/v2/AccountLoginCompletedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/AccountRateLimitsUpdatedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/AccountUpdatedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/AgentMessageDeltaNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/AnalyticsConfig.ts +0 -6
- package/services/mac-bridge/codex-types/v2/AppBranding.ts +0 -8
- package/services/mac-bridge/codex-types/v2/AppDisabledReason.ts +0 -5
- package/services/mac-bridge/codex-types/v2/AppInfo.ts +0 -19
- package/services/mac-bridge/codex-types/v2/AppListUpdatedNotification.ts +0 -9
- package/services/mac-bridge/codex-types/v2/AppMetadata.ts +0 -7
- package/services/mac-bridge/codex-types/v2/AppReview.ts +0 -5
- package/services/mac-bridge/codex-types/v2/AppScreenshot.ts +0 -5
- package/services/mac-bridge/codex-types/v2/AppsConfig.ts +0 -6
- package/services/mac-bridge/codex-types/v2/AppsListParams.ts +0 -24
- package/services/mac-bridge/codex-types/v2/AppsListResponse.ts +0 -14
- package/services/mac-bridge/codex-types/v2/AskForApproval.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ByteRange.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CancelLoginAccountParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CancelLoginAccountResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/CancelLoginAccountStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ChatgptAuthTokensRefreshParams.ts +0 -16
- package/services/mac-bridge/codex-types/v2/ChatgptAuthTokensRefreshReason.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ChatgptAuthTokensRefreshResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CodexErrorInfo.ts +0 -11
- package/services/mac-bridge/codex-types/v2/CollabAgentState.ts +0 -6
- package/services/mac-bridge/codex-types/v2/CollabAgentStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CollabAgentTool.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CollabAgentToolCallStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CommandAction.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CommandExecParams.ts +0 -6
- package/services/mac-bridge/codex-types/v2/CommandExecResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CommandExecutionApprovalDecision.ts +0 -6
- package/services/mac-bridge/codex-types/v2/CommandExecutionOutputDeltaNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/CommandExecutionRequestApprovalParams.ts +0 -37
- package/services/mac-bridge/codex-types/v2/CommandExecutionRequestApprovalResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/CommandExecutionStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/Config.ts +0 -17
- package/services/mac-bridge/codex-types/v2/ConfigBatchWriteParams.ts +0 -10
- package/services/mac-bridge/codex-types/v2/ConfigEdit.ts +0 -7
- package/services/mac-bridge/codex-types/v2/ConfigLayer.ts +0 -7
- package/services/mac-bridge/codex-types/v2/ConfigLayerMetadata.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ConfigLayerSource.ts +0 -16
- package/services/mac-bridge/codex-types/v2/ConfigReadParams.ts +0 -11
- package/services/mac-bridge/codex-types/v2/ConfigReadResponse.ts +0 -8
- package/services/mac-bridge/codex-types/v2/ConfigRequirements.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ConfigRequirementsReadResponse.ts +0 -10
- package/services/mac-bridge/codex-types/v2/ConfigValueWriteParams.ts +0 -11
- package/services/mac-bridge/codex-types/v2/ConfigWarningNotification.ts +0 -22
- package/services/mac-bridge/codex-types/v2/ConfigWriteResponse.ts +0 -12
- package/services/mac-bridge/codex-types/v2/ContextCompactedNotification.ts +0 -8
- package/services/mac-bridge/codex-types/v2/CreditsSnapshot.ts +0 -5
- package/services/mac-bridge/codex-types/v2/DeprecationNoticeNotification.ts +0 -13
- package/services/mac-bridge/codex-types/v2/DynamicToolCallOutputContentItem.ts +0 -5
- package/services/mac-bridge/codex-types/v2/DynamicToolCallParams.ts +0 -6
- package/services/mac-bridge/codex-types/v2/DynamicToolCallResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/DynamicToolSpec.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ErrorNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ExecPolicyAmendment.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ExperimentalFeature.ts +0 -37
- package/services/mac-bridge/codex-types/v2/ExperimentalFeatureListParams.ts +0 -13
- package/services/mac-bridge/codex-types/v2/ExperimentalFeatureListResponse.ts +0 -11
- package/services/mac-bridge/codex-types/v2/ExperimentalFeatureStage.ts +0 -5
- package/services/mac-bridge/codex-types/v2/FeedbackUploadParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/FeedbackUploadResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/FileChangeApprovalDecision.ts +0 -5
- package/services/mac-bridge/codex-types/v2/FileChangeOutputDeltaNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/FileChangeRequestApprovalParams.ts +0 -14
- package/services/mac-bridge/codex-types/v2/FileChangeRequestApprovalResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/FileUpdateChange.ts +0 -6
- package/services/mac-bridge/codex-types/v2/GetAccountParams.ts +0 -13
- package/services/mac-bridge/codex-types/v2/GetAccountRateLimitsResponse.ts +0 -14
- package/services/mac-bridge/codex-types/v2/GetAccountResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/GitInfo.ts +0 -5
- package/services/mac-bridge/codex-types/v2/HazelnutScope.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ItemCompletedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ItemStartedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ListMcpServerStatusParams.ts +0 -13
- package/services/mac-bridge/codex-types/v2/ListMcpServerStatusResponse.ts +0 -11
- package/services/mac-bridge/codex-types/v2/LoginAccountParams.ts +0 -21
- package/services/mac-bridge/codex-types/v2/LoginAccountResponse.ts +0 -9
- package/services/mac-bridge/codex-types/v2/LogoutAccountResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpAuthStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpServerOauthLoginCompletedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpServerOauthLoginParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpServerOauthLoginResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpServerRefreshResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpServerStatus.ts +0 -9
- package/services/mac-bridge/codex-types/v2/McpToolCallError.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpToolCallProgressNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/McpToolCallResult.ts +0 -6
- package/services/mac-bridge/codex-types/v2/McpToolCallStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/MergeStrategy.ts +0 -5
- package/services/mac-bridge/codex-types/v2/Model.ts +0 -8
- package/services/mac-bridge/codex-types/v2/ModelListParams.ts +0 -17
- package/services/mac-bridge/codex-types/v2/ModelListResponse.ts +0 -11
- package/services/mac-bridge/codex-types/v2/ModelRerouteReason.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ModelReroutedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/NetworkAccess.ts +0 -5
- package/services/mac-bridge/codex-types/v2/NetworkRequirements.ts +0 -5
- package/services/mac-bridge/codex-types/v2/OverriddenMetadata.ts +0 -7
- package/services/mac-bridge/codex-types/v2/PatchApplyStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/PatchChangeKind.ts +0 -5
- package/services/mac-bridge/codex-types/v2/PlanDeltaNotification.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ProductSurface.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ProfileV2.ts +0 -11
- package/services/mac-bridge/codex-types/v2/RateLimitSnapshot.ts +0 -8
- package/services/mac-bridge/codex-types/v2/RateLimitWindow.ts +0 -5
- package/services/mac-bridge/codex-types/v2/RawResponseItemCompletedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ReadOnlyAccess.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ReasoningEffortOption.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ReasoningSummaryPartAddedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ReasoningSummaryTextDeltaNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ReasoningTextDeltaNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/RemoteSkillSummary.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ResidencyRequirement.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ReviewDelivery.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ReviewStartParams.ts +0 -12
- package/services/mac-bridge/codex-types/v2/ReviewStartResponse.ts +0 -13
- package/services/mac-bridge/codex-types/v2/ReviewTarget.ts +0 -9
- package/services/mac-bridge/codex-types/v2/SandboxMode.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SandboxPolicy.ts +0 -8
- package/services/mac-bridge/codex-types/v2/SandboxWorkspaceWrite.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SessionSource.ts +0 -6
- package/services/mac-bridge/codex-types/v2/SkillDependencies.ts +0 -6
- package/services/mac-bridge/codex-types/v2/SkillErrorInfo.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillInterface.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillMetadata.ts +0 -12
- package/services/mac-bridge/codex-types/v2/SkillScope.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillToolDependency.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillsConfigWriteParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillsConfigWriteResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillsListEntry.ts +0 -7
- package/services/mac-bridge/codex-types/v2/SkillsListExtraRootsForCwd.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillsListParams.ts +0 -18
- package/services/mac-bridge/codex-types/v2/SkillsListResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/SkillsRemoteReadParams.ts +0 -7
- package/services/mac-bridge/codex-types/v2/SkillsRemoteReadResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/SkillsRemoteWriteParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/SkillsRemoteWriteResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TerminalInteractionNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TextElement.ts +0 -14
- package/services/mac-bridge/codex-types/v2/TextPosition.ts +0 -13
- package/services/mac-bridge/codex-types/v2/TextRange.ts +0 -6
- package/services/mac-bridge/codex-types/v2/Thread.ts +0 -51
- package/services/mac-bridge/codex-types/v2/ThreadArchiveParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadArchiveResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadArchivedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadCompactStartParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadCompactStartResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadForkParams.ts +0 -28
- package/services/mac-bridge/codex-types/v2/ThreadForkResponse.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ThreadItem.ts +0 -81
- package/services/mac-bridge/codex-types/v2/ThreadListParams.ts +0 -39
- package/services/mac-bridge/codex-types/v2/ThreadListResponse.ts +0 -11
- package/services/mac-bridge/codex-types/v2/ThreadLoadedListParams.ts +0 -13
- package/services/mac-bridge/codex-types/v2/ThreadLoadedListResponse.ts +0 -14
- package/services/mac-bridge/codex-types/v2/ThreadNameUpdatedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadReadParams.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ThreadReadResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ThreadResumeParams.ts +0 -37
- package/services/mac-bridge/codex-types/v2/ThreadResumeResponse.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ThreadRollbackParams.ts +0 -12
- package/services/mac-bridge/codex-types/v2/ThreadRollbackResponse.ts +0 -14
- package/services/mac-bridge/codex-types/v2/ThreadSetNameParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadSetNameResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadSortKey.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadSourceKind.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadStartParams.ts +0 -17
- package/services/mac-bridge/codex-types/v2/ThreadStartResponse.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ThreadStartedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ThreadTokenUsage.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ThreadTokenUsageUpdatedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ThreadUnarchiveParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ThreadUnarchiveResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/ThreadUnarchivedNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TokenUsageBreakdown.ts +0 -5
- package/services/mac-bridge/codex-types/v2/ToolRequestUserInputAnswer.ts +0 -8
- package/services/mac-bridge/codex-types/v2/ToolRequestUserInputOption.ts +0 -8
- package/services/mac-bridge/codex-types/v2/ToolRequestUserInputParams.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ToolRequestUserInputQuestion.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ToolRequestUserInputResponse.ts +0 -9
- package/services/mac-bridge/codex-types/v2/ToolsV2.ts +0 -5
- package/services/mac-bridge/codex-types/v2/Turn.ts +0 -18
- package/services/mac-bridge/codex-types/v2/TurnCompletedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/TurnDiffUpdatedNotification.ts +0 -9
- package/services/mac-bridge/codex-types/v2/TurnError.ts +0 -6
- package/services/mac-bridge/codex-types/v2/TurnInterruptParams.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TurnInterruptResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TurnPlanStep.ts +0 -6
- package/services/mac-bridge/codex-types/v2/TurnPlanStepStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TurnPlanUpdatedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/TurnStartParams.ts +0 -44
- package/services/mac-bridge/codex-types/v2/TurnStartResponse.ts +0 -6
- package/services/mac-bridge/codex-types/v2/TurnStartedNotification.ts +0 -6
- package/services/mac-bridge/codex-types/v2/TurnStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/TurnSteerParams.ts +0 -11
- package/services/mac-bridge/codex-types/v2/TurnSteerResponse.ts +0 -5
- package/services/mac-bridge/codex-types/v2/UserInput.ts +0 -10
- package/services/mac-bridge/codex-types/v2/WebSearchAction.ts +0 -5
- package/services/mac-bridge/codex-types/v2/WindowsWorldWritableWarningNotification.ts +0 -5
- package/services/mac-bridge/codex-types/v2/WriteStatus.ts +0 -5
- package/services/mac-bridge/codex-types/v2/index.ts +0 -204
- package/services/mac-bridge/eslint.config.cjs +0 -22
- package/services/mac-bridge/package.json +0 -30
- package/services/mac-bridge/schema.ts +0 -0
- package/services/mac-bridge/src/index.ts +0 -18
- package/services/mac-bridge/src/server.ts +0 -426
- package/services/mac-bridge/src/services/__tests__/gitService.test.ts +0 -157
- package/services/mac-bridge/src/services/__tests__/realtimeHub.test.ts +0 -116
- package/services/mac-bridge/src/services/__tests__/terminalService.test.ts +0 -51
- package/services/mac-bridge/src/services/codexAppServerClient.ts +0 -507
- package/services/mac-bridge/src/services/codexCliAdapter.ts +0 -622
- package/services/mac-bridge/src/services/gitService.ts +0 -61
- package/services/mac-bridge/src/services/realtimeHub.ts +0 -25
- package/services/mac-bridge/src/services/terminalService.ts +0 -226
- package/services/mac-bridge/src/types.ts +0 -151
- package/services/mac-bridge/src/utils/__tests__/threadMapping.test.ts +0 -397
- package/services/mac-bridge/src/utils/threadMapping.ts +0 -176
- package/services/mac-bridge/tsconfig.json +0 -16
- package/services/mac-bridge/vitest.config.ts +0 -9
- package/services/rust-bridge/.env.example +0 -14
- package/services/rust-bridge/package.json +0 -13
- package/services/rust-bridge/security_best_practices_report.md +0 -24
- package/site/index.html +0 -54
- package/site/privacy/index.html +0 -80
- package/site/styles.css +0 -135
- package/site/support/index.html +0 -51
- package/site/terms/index.html +0 -68
- package/tsconfig.json +0 -4
package/docs/privacy-policy.md
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Privacy Policy
|
|
2
|
-
|
|
3
|
-
Last updated: March 6, 2026
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Clawdex Mobile is a companion app for connecting to a bridge service that you run on your own machine. The app is designed for trusted private networking, such as LAN, VPN, or Tailscale. It is not a public multi-tenant shell service.
|
|
8
|
-
|
|
9
|
-
## Information Processed
|
|
10
|
-
|
|
11
|
-
Clawdex Mobile can process:
|
|
12
|
-
|
|
13
|
-
- Chat prompts and assistant responses
|
|
14
|
-
- Bridge connection details you enter in the app
|
|
15
|
-
- Terminal command text and command output returned by your bridge
|
|
16
|
-
- Git repository status, diffs, commit messages, and related metadata
|
|
17
|
-
- File or image attachments you choose to send
|
|
18
|
-
- Voice input audio used for speech-to-text features
|
|
19
|
-
|
|
20
|
-
## How Information Is Used
|
|
21
|
-
|
|
22
|
-
The app uses this information to:
|
|
23
|
-
|
|
24
|
-
- connect your phone to your self-hosted bridge
|
|
25
|
-
- display and continue assistant threads
|
|
26
|
-
- execute approved terminal and Git workflows on infrastructure you control
|
|
27
|
-
- upload user-selected files and images to your own workflow
|
|
28
|
-
- support optional voice-to-text input
|
|
29
|
-
|
|
30
|
-
## Storage and Retention
|
|
31
|
-
|
|
32
|
-
Clawdex Mobile does not define a separate cloud retention layer for your project data. Data is generally stored by services and infrastructure you control, including your local bridge, repository, logs, caches, and any model providers or integrations that you configure.
|
|
33
|
-
|
|
34
|
-
## Sharing
|
|
35
|
-
|
|
36
|
-
Clawdex Mobile does not include advertising SDKs. Data may be transmitted to third-party model or infrastructure providers only when you configure and use those services as part of your own setup.
|
|
37
|
-
|
|
38
|
-
## Security
|
|
39
|
-
|
|
40
|
-
Security depends on how you configure your bridge and network. The app is intended for trusted-network use. You are responsible for protecting bridge tokens, provider credentials, repository access, and device access.
|
|
41
|
-
|
|
42
|
-
## Your Responsibility
|
|
43
|
-
|
|
44
|
-
You are responsible for:
|
|
45
|
-
|
|
46
|
-
- operating the bridge only on systems you own or are authorized to control
|
|
47
|
-
- securing your network path and credentials
|
|
48
|
-
- reviewing commands, approvals, and repository actions before execution
|
|
49
|
-
|
|
50
|
-
## Contact
|
|
51
|
-
|
|
52
|
-
For support, use the project support channel:
|
|
53
|
-
|
|
54
|
-
https://github.com/Mohit-Patil/clawdex-mobile/issues
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
# Realtime Streaming Limitations And Mitigations
|
|
2
|
-
|
|
3
|
-
Date: February 22, 2026
|
|
4
|
-
|
|
5
|
-
## Context
|
|
6
|
-
|
|
7
|
-
This project has three relevant runtime paths:
|
|
8
|
-
|
|
9
|
-
1. Mobile app connects to bridge WebSocket (`/rpc`).
|
|
10
|
-
2. Rust bridge spawns `codex app-server --listen stdio://` as a child process.
|
|
11
|
-
3. Codex CLI interactive (`codex` TUI) can run independently from the bridge path.
|
|
12
|
-
|
|
13
|
-
Because of this, shared history and shared live stream are not the same thing.
|
|
14
|
-
|
|
15
|
-
## Current Architecture Facts
|
|
16
|
-
|
|
17
|
-
1. Bridge -> app-server transport is `stdio://` (process pipes), not network WebSocket.
|
|
18
|
-
2. Mobile receives events that the bridge app-server instance emits.
|
|
19
|
-
3. CLI interactive runs can happen in a separate process/session pipeline.
|
|
20
|
-
4. Persisted thread data is written under the same `CODEX_HOME` (default `~/.codex` when unset).
|
|
21
|
-
|
|
22
|
-
## Why Main Messages Appear But Some Live Details Do Not
|
|
23
|
-
|
|
24
|
-
When a turn is started outside the bridge pipeline (for example from standalone Codex CLI), mobile can still show the final/main message because it periodically reads persisted thread history:
|
|
25
|
-
|
|
26
|
-
1. Mobile calls `thread/read` (with `includeTurns`) through API client.
|
|
27
|
-
2. Persisted `agentMessage` / `userMessage` items are mapped into chat messages.
|
|
28
|
-
3. So the main output appears after persistence.
|
|
29
|
-
|
|
30
|
-
However, item-level realtime notifications (reasoning deltas, tool call progress, activity transitions, approval prompts) are stream-bound and may not be available unless that turn is on the same live app-server stream the mobile bridge is subscribed to.
|
|
31
|
-
|
|
32
|
-
## Limitation (Known)
|
|
33
|
-
|
|
34
|
-
For CLI-originated turns outside the bridge-owned live stream:
|
|
35
|
-
|
|
36
|
-
1. Main conversation output is usually visible (via persisted history read).
|
|
37
|
-
2. Full realtime telemetry is not guaranteed:
|
|
38
|
-
- activity bar transitions
|
|
39
|
-
- reasoning deltas
|
|
40
|
-
- tool call begin/progress/completion events
|
|
41
|
-
- approval/user-input request timing parity
|
|
42
|
-
|
|
43
|
-
This is an architectural boundary, not just a UI rendering bug.
|
|
44
|
-
|
|
45
|
-
## How We Are Overcoming It Today
|
|
46
|
-
|
|
47
|
-
Current mitigation strategy is hybrid: live events when available + snapshot sync fallback.
|
|
48
|
-
|
|
49
|
-
1. Live forwarding
|
|
50
|
-
- Bridge forwards app-server notifications to all WebSocket clients.
|
|
51
|
-
2. Event replay
|
|
52
|
-
- Bridge stores replayable notifications with `eventId`.
|
|
53
|
-
- Mobile can request missed events (`bridge/events/replay`) after reconnect.
|
|
54
|
-
3. Running-state hints
|
|
55
|
-
- `thread/status/changed` is used as a lightweight signal for externally-observed activity.
|
|
56
|
-
4. Fast/idle polling fallback
|
|
57
|
-
- Active chat sync interval and idle sync interval keep UI consistent even when deltas are missed.
|
|
58
|
-
5. Debounced full sync on external status changes
|
|
59
|
-
- Prevents noisy expensive reload loops while still converging to latest persisted state.
|
|
60
|
-
6. Read-only open behavior for past chats
|
|
61
|
-
- Opening history uses read/snapshot flow and avoids accidentally starting/resuming old sessions.
|
|
62
|
-
|
|
63
|
-
## Practical Guidance
|
|
64
|
-
|
|
65
|
-
1. If full realtime detail is required, start turns through mobile/bridge flow.
|
|
66
|
-
2. For standalone CLI-originated turns, expect eventual consistency in mobile (main output first-class, detailed live telemetry best-effort).
|
|
67
|
-
3. Keep all clients on the same user + same `CODEX_HOME` to preserve shared persisted history continuity.
|
|
68
|
-
4. Use `bridge/events/replay` for reconnect gaps.
|
|
69
|
-
|
|
70
|
-
## Future Improvement Direction
|
|
71
|
-
|
|
72
|
-
To get strict realtime parity across CLI and mobile, move to a single live event authority:
|
|
73
|
-
|
|
74
|
-
1. Route all turn execution through one shared bridge/app-server pipeline, or
|
|
75
|
-
2. Make clients attach to the exact same running app-server stream/session boundary.
|
|
76
|
-
|
|
77
|
-
Without this architectural change, the hybrid model remains the pragmatic and low-risk approach.
|
|
78
|
-
|
|
79
|
-
## Incident Note: February 28, 2026 Live-Sync Regression
|
|
80
|
-
|
|
81
|
-
### Symptom
|
|
82
|
-
Mobile chat showed persisted messages, but did not show live activity/reasoning updates (`codex/event/*`, `thread/status/changed`) for CLI-origin turns.
|
|
83
|
-
|
|
84
|
-
### Root Cause
|
|
85
|
-
Rust bridge rollout discovery scheduler used a modulo condition that could never become true when the discovery interval was `1`.
|
|
86
|
-
|
|
87
|
-
- Previous behavior: discovery did not run for that interval value.
|
|
88
|
-
- Effect: rollout files were not tracked, so no CLI live-tail notifications were emitted.
|
|
89
|
-
|
|
90
|
-
### Fix Applied
|
|
91
|
-
Live-sync discovery scheduling was hardened so it is valid for all interval values and always runs on first tick.
|
|
92
|
-
|
|
93
|
-
Operational result:
|
|
94
|
-
|
|
95
|
-
1. Rollout files are discovered consistently.
|
|
96
|
-
2. CLI-origin event lines are tailed and converted into bridge notifications.
|
|
97
|
-
3. Mobile receives activity/reasoning status in realtime again.
|
|
98
|
-
|
|
99
|
-
## Optimization Backlog (Live-Sync Observability + Reliability)
|
|
100
|
-
|
|
101
|
-
### 1) Add `bridge/liveSync/status` RPC (recommended next)
|
|
102
|
-
|
|
103
|
-
Goal: make rollout tailing state visible from mobile/Postman without guessing.
|
|
104
|
-
|
|
105
|
-
Suggested response payload:
|
|
106
|
-
|
|
107
|
-
1. Sessions root currently in use (`CODEX_HOME` resolved path).
|
|
108
|
-
2. Discovery config (`pollIntervalMs`, `discoveryIntervalTicks`, `maxTrackedFiles`).
|
|
109
|
-
3. Tracked files list:
|
|
110
|
-
- file path
|
|
111
|
-
- thread id
|
|
112
|
-
- originator
|
|
113
|
-
- include/exclude flag
|
|
114
|
-
- include/exclude reason
|
|
115
|
-
- current offset
|
|
116
|
-
- last seen timestamp
|
|
117
|
-
4. Summary counters:
|
|
118
|
-
- files discovered
|
|
119
|
-
- files included
|
|
120
|
-
- lines parsed
|
|
121
|
-
- lines dropped (invalid JSON / filtered / duplicate)
|
|
122
|
-
- notifications emitted by method bucket
|
|
123
|
-
5. Last error (if any) in discovery/poll loop.
|
|
124
|
-
|
|
125
|
-
Why this helps:
|
|
126
|
-
|
|
127
|
-
1. Explains "why no live updates" immediately.
|
|
128
|
-
2. Reduces debugging time for CLI vs mobile parity issues.
|
|
129
|
-
3. Enables lightweight health checks and QA verification.
|
|
130
|
-
|
|
131
|
-
### 2) Add discovery/poll loop metrics
|
|
132
|
-
|
|
133
|
-
Expose counters for:
|
|
134
|
-
|
|
135
|
-
1. discovery runs
|
|
136
|
-
2. poll runs
|
|
137
|
-
3. per-file parse errors
|
|
138
|
-
4. event mapping misses
|
|
139
|
-
5. replay buffer writes/drops
|
|
140
|
-
|
|
141
|
-
These can be returned by the status RPC and optionally logged to stderr in dev mode.
|
|
142
|
-
|
|
143
|
-
### 3) Add dedup + mapping diagnostics for dropped events
|
|
144
|
-
|
|
145
|
-
Track bounded recent reasons for dropped lines:
|
|
146
|
-
|
|
147
|
-
1. duplicate hash
|
|
148
|
-
2. unsupported rollout record type
|
|
149
|
-
3. missing thread id
|
|
150
|
-
4. originator filtered
|
|
151
|
-
|
|
152
|
-
This will clarify whether events are not emitted due to filtering or malformed source lines.
|
|
153
|
-
|
|
154
|
-
### 4) Add a short runbook for operators
|
|
155
|
-
|
|
156
|
-
When live updates are missing, check in this order:
|
|
157
|
-
|
|
158
|
-
1. `bridge/events/replay` contains recent `codex/event/*` or not.
|
|
159
|
-
2. `bridge/liveSync/status` include/exclude reason for newest rollout file.
|
|
160
|
-
3. newest rollout file `session_meta.originator` and resolved thread id fields.
|
|
161
|
-
4. mobile selected thread id matches emitted thread id.
|
package/docs/terms-of-service.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Terms of Service
|
|
2
|
-
|
|
3
|
-
Last updated: March 6, 2026
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Clawdex Mobile is a companion client for interacting with a bridge service and repository environment that you control. By using the app, you agree to use it only with systems, repositories, and infrastructure that you own or are explicitly authorized to access.
|
|
8
|
-
|
|
9
|
-
## Acceptable Use
|
|
10
|
-
|
|
11
|
-
You may not use Clawdex Mobile to access, control, or modify machines, repositories, or services without authorization. You are responsible for all actions initiated through the app, including approvals, terminal commands, Git actions, and file transfers.
|
|
12
|
-
|
|
13
|
-
## Credentials and Access
|
|
14
|
-
|
|
15
|
-
You must keep bridge tokens, provider credentials, repository credentials, and device access secure. If you believe credentials have been exposed, you should rotate them immediately and stop using the affected bridge until it is secured.
|
|
16
|
-
|
|
17
|
-
## Operational Risk
|
|
18
|
-
|
|
19
|
-
Clawdex Mobile can initiate workflows that change files, repositories, and machine state on your host environment. You are responsible for reviewing and approving actions before execution and for maintaining backups or recovery procedures appropriate to your environment.
|
|
20
|
-
|
|
21
|
-
## Availability
|
|
22
|
-
|
|
23
|
-
The app depends on your bridge, network, repositories, model providers, and related services. Functionality may be unavailable if those dependencies are unavailable or misconfigured.
|
|
24
|
-
|
|
25
|
-
## No Warranty
|
|
26
|
-
|
|
27
|
-
The software is provided on an as-is basis. You assume responsibility for how it is configured and used in your environment.
|
|
28
|
-
|
|
29
|
-
## Contact
|
|
30
|
-
|
|
31
|
-
For support, use the project support channel:
|
|
32
|
-
|
|
33
|
-
https://github.com/Mohit-Patil/clawdex-mobile/issues
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# Push-to-Talk Voice Transcription
|
|
2
|
-
|
|
3
|
-
Voice-to-text input for the mobile composer. Tap the mic button to record, tap again to stop — the audio is sent to the Rust bridge which calls OpenAI's transcription API and returns the text into the composer.
|
|
4
|
-
|
|
5
|
-
## Architecture
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
Phone (expo-audio) Rust Bridge OpenAI
|
|
9
|
-
record 16kHz mono --> base64 over WebSocket --> POST /v1/audio/transcriptions
|
|
10
|
-
(iOS WAV, Android M4A)
|
|
11
|
-
insert text in composer <-- { text: "..." } <-- gpt-4o-transcribe response
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
The flow mirrors Codex CLI 0.105.0's TUI push-to-talk feature — same API, same model (`gpt-4o-transcribe`), same auth. The bridge acts as the HTTP proxy since the phone doesn't hold API keys directly.
|
|
15
|
-
|
|
16
|
-
## Auth Resolution
|
|
17
|
-
|
|
18
|
-
The bridge resolves transcription credentials in order:
|
|
19
|
-
|
|
20
|
-
1. `OPENAI_API_KEY` env var → `https://api.openai.com/v1/audio/transcriptions` (model: `gpt-4o-transcribe`)
|
|
21
|
-
2. `BRIDGE_CHATGPT_ACCESS_TOKEN` env var → `https://chatgpt.com/backend-api/transcribe` (no model param)
|
|
22
|
-
3. `~/.codex/auth.json` fallback:
|
|
23
|
-
- `OPENAI_API_KEY` field present → same as path 1
|
|
24
|
-
- `auth_mode: "chatgpt"` with `tokens.access_token` → same as path 2
|
|
25
|
-
|
|
26
|
-
## Files
|
|
27
|
-
|
|
28
|
-
### Rust Bridge
|
|
29
|
-
|
|
30
|
-
| File | What |
|
|
31
|
-
|------|------|
|
|
32
|
-
| `services/rust-bridge/Cargo.toml` | Added `reqwest` (multipart, json, rustls-tls) |
|
|
33
|
-
| `services/rust-bridge/src/main.rs` | `bridge/voice/transcribe` JSON-RPC method, `transcribe_voice()`, `resolve_transcription_auth()`, `resolve_codex_auth_json_path()` |
|
|
34
|
-
|
|
35
|
-
### Mobile
|
|
36
|
-
|
|
37
|
-
| File | What |
|
|
38
|
-
|------|------|
|
|
39
|
-
| `apps/mobile/app.json` | `NSMicrophoneUsageDescription` (iOS), `RECORD_AUDIO` permission (Android), `expo-audio` plugin |
|
|
40
|
-
| `apps/mobile/src/api/types.ts` | `VoiceTranscribeRequest`, `VoiceTranscribeResponse` |
|
|
41
|
-
| `apps/mobile/src/api/client.ts` | `transcribeVoice()` method on `HostBridgeApiClient` |
|
|
42
|
-
| `apps/mobile/src/hooks/useVoiceRecorder.ts` | Recording state machine hook using `expo-audio` |
|
|
43
|
-
| `apps/mobile/src/components/ChatInput.tsx` | Mic button UI with three visual states |
|
|
44
|
-
| `apps/mobile/src/screens/MainScreen.tsx` | Wires hook to ChatInput |
|
|
45
|
-
|
|
46
|
-
## Recording Config
|
|
47
|
-
|
|
48
|
-
- Sample rate: 16,000 Hz
|
|
49
|
-
- Channels: 1 (mono)
|
|
50
|
-
- Format:
|
|
51
|
-
- iOS: LINEARPCM 16-bit (`audio/wav`)
|
|
52
|
-
- Android: MPEG-4 AAC (`audio/mp4`, `.m4a`)
|
|
53
|
-
- Minimum duration:
|
|
54
|
-
- Mobile guard: 1 second
|
|
55
|
-
- Bridge raw payload guard: ~0.5 seconds (16KB minimum)
|
|
56
|
-
- Maximum payload size:
|
|
57
|
-
- Mobile guard: 20MB
|
|
58
|
-
- Bridge guard: 100MB by default (override with `BRIDGE_MAX_VOICE_TRANSCRIPTION_BYTES`)
|
|
59
|
-
|
|
60
|
-
## UI States
|
|
61
|
-
|
|
62
|
-
The mic button occupies the send button slot when the composer is empty and no turn is running:
|
|
63
|
-
|
|
64
|
-
| State | Icon | Style |
|
|
65
|
-
|-------|------|-------|
|
|
66
|
-
| Idle | `mic-outline` | Muted color |
|
|
67
|
-
| Recording | `mic` | Red icon, red border |
|
|
68
|
-
| Transcribing | `ActivityIndicator` | Spinner |
|
|
69
|
-
|
|
70
|
-
Interaction: tap to start recording, tap again to stop and transcribe. The transcribed text is appended to the current draft.
|
|
71
|
-
|
|
72
|
-
Voice input is enabled on iOS and Android. The mic button is hidden on web.
|
|
73
|
-
|
|
74
|
-
## Dependencies
|
|
75
|
-
|
|
76
|
-
- **`expo-audio`** — Recording via `useAudioRecorder` hook. Works in Expo Go (unlike `expo-av` which requires a dev build in SDK 55).
|
|
77
|
-
- **`reqwest`** (Rust) — HTTP client for the multipart POST to OpenAI. Uses `rustls-tls` to avoid native-tls linking issues on macOS.
|
|
78
|
-
|
|
79
|
-
## Error Handling
|
|
80
|
-
|
|
81
|
-
- Mic permission denied → error message, stays idle
|
|
82
|
-
- Recording < 1 second → "Recording too short" error, discarded
|
|
83
|
-
- Audio payload < 16KB → bridge rejects with `invalid_params`
|
|
84
|
-
- Audio payload > 20MB → mobile rejects before upload
|
|
85
|
-
- Audio payload > bridge max bytes (default 100MB) → bridge rejects with `invalid_params`
|
|
86
|
-
- No credentials found → bridge returns error code `-32002`
|
|
87
|
-
- Transcription API HTTP error → bridge returns status + body in error data
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
# Demo launcher for a patched Codex TUI build that live-syncs rollout updates.
|
|
5
|
-
# It replaces the old tmux restart workaround.
|
|
6
|
-
|
|
7
|
-
DEFAULT_CODEX_SRC="/tmp/openai-codex-latest/codex-rs"
|
|
8
|
-
CODEX_SRC="${CODEX_SRC:-$DEFAULT_CODEX_SRC}"
|
|
9
|
-
PATCHED_APP_RS="${PATCHED_APP_RS:-$CODEX_SRC/tui/src/app.rs}"
|
|
10
|
-
PATCHED_TUI_BIN="${PATCHED_TUI_BIN:-$CODEX_SRC/target/debug/codex-tui}"
|
|
11
|
-
|
|
12
|
-
usage() {
|
|
13
|
-
cat <<'EOF'
|
|
14
|
-
Usage:
|
|
15
|
-
scripts/codex-live-demo.sh [codex-tui args...]
|
|
16
|
-
|
|
17
|
-
Environment overrides:
|
|
18
|
-
CODEX_SRC (default: /tmp/openai-codex-latest/codex-rs)
|
|
19
|
-
PATCHED_APP_RS (default: $CODEX_SRC/tui/src/app.rs)
|
|
20
|
-
PATCHED_TUI_BIN (default: $CODEX_SRC/target/debug/codex-tui)
|
|
21
|
-
|
|
22
|
-
Notes:
|
|
23
|
-
- This starts the patched TUI binary directly.
|
|
24
|
-
- Bridge/app-server can continue using stock codex:
|
|
25
|
-
CODEX_CLI_BIN=/opt/homebrew/bin/codex
|
|
26
|
-
- If PATCHED_TUI_BIN is missing, the script will build it via:
|
|
27
|
-
cargo test -p codex-tui
|
|
28
|
-
EOF
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if [[ "${1:-}" == "--help" || "${1:-}" == "-h" ]]; then
|
|
32
|
-
usage
|
|
33
|
-
exit 0
|
|
34
|
-
fi
|
|
35
|
-
|
|
36
|
-
if ! command -v cargo >/dev/null 2>&1; then
|
|
37
|
-
echo "cargo is required" >&2
|
|
38
|
-
exit 1
|
|
39
|
-
fi
|
|
40
|
-
|
|
41
|
-
if [[ ! -f "$PATCHED_APP_RS" ]]; then
|
|
42
|
-
echo "patched source file not found: $PATCHED_APP_RS" >&2
|
|
43
|
-
echo "set CODEX_SRC or PATCHED_APP_RS to your patched codex-rs checkout" >&2
|
|
44
|
-
exit 1
|
|
45
|
-
fi
|
|
46
|
-
|
|
47
|
-
if ! command -v rg >/dev/null 2>&1 || ! rg -q 'ROLLOUT_LIVE_SYNC_INTERVAL' "$PATCHED_APP_RS"; then
|
|
48
|
-
echo "warning: patch marker not found in $PATCHED_APP_RS" >&2
|
|
49
|
-
echo "continuing anyway; verify your checkout includes rollout live sync changes" >&2
|
|
50
|
-
fi
|
|
51
|
-
|
|
52
|
-
if [[ ! -x "$PATCHED_TUI_BIN" ]]; then
|
|
53
|
-
echo "building patched codex-tui at: $CODEX_SRC"
|
|
54
|
-
(cd "$CODEX_SRC" && cargo test -p codex-tui >/dev/null)
|
|
55
|
-
fi
|
|
56
|
-
|
|
57
|
-
if [[ ! -x "$PATCHED_TUI_BIN" ]]; then
|
|
58
|
-
echo "patched codex-tui binary not found after build: $PATCHED_TUI_BIN" >&2
|
|
59
|
-
exit 1
|
|
60
|
-
fi
|
|
61
|
-
|
|
62
|
-
echo "launching patched Codex TUI:"
|
|
63
|
-
echo " $PATCHED_TUI_BIN $*"
|
|
64
|
-
echo
|
|
65
|
-
echo "for bridge/app-server, keep stock codex binary configured:"
|
|
66
|
-
echo " CODEX_CLI_BIN=/opt/homebrew/bin/codex"
|
|
67
|
-
echo
|
|
68
|
-
|
|
69
|
-
exec "$PATCHED_TUI_BIN" "$@"
|
package/scripts/start-expo.sh
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -L)"
|
|
5
|
-
ROOT_DIR="${INIT_CWD:-$(cd "$SCRIPT_DIR/.." && pwd -L)}"
|
|
6
|
-
if [[ ! -f "$ROOT_DIR/package.json" ]]; then
|
|
7
|
-
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd -L)"
|
|
8
|
-
fi
|
|
9
|
-
|
|
10
|
-
MODE="${1:-mobile}"
|
|
11
|
-
SECURE_ENV_FILE="$ROOT_DIR/.env.secure"
|
|
12
|
-
MOBILE_WORKSPACE="apps/mobile"
|
|
13
|
-
AUTO_REPAIR="${EXPO_AUTO_REPAIR:-true}"
|
|
14
|
-
CLEAR_CACHE="${EXPO_CLEAR_CACHE:-false}"
|
|
15
|
-
RUNTIME_REPAIRED="false"
|
|
16
|
-
EXPO_SETUP_VERBOSE="${CLAWDEX_SETUP_VERBOSE:-false}"
|
|
17
|
-
|
|
18
|
-
info() { echo "info: $*"; }
|
|
19
|
-
warn() { echo "warn: $*" >&2; }
|
|
20
|
-
fail() { echo "error: $*" >&2; }
|
|
21
|
-
|
|
22
|
-
run_quiet_command() {
|
|
23
|
-
local label="$1"
|
|
24
|
-
shift
|
|
25
|
-
local log_file=""
|
|
26
|
-
|
|
27
|
-
if [[ "$EXPO_SETUP_VERBOSE" == "true" ]]; then
|
|
28
|
-
"$@"
|
|
29
|
-
return $?
|
|
30
|
-
fi
|
|
31
|
-
|
|
32
|
-
log_file="$(mktemp "${TMPDIR:-/tmp}/clawdex-expo-setup.XXXXXX.log")"
|
|
33
|
-
if "$@" >"$log_file" 2>&1; then
|
|
34
|
-
rm -f "$log_file"
|
|
35
|
-
return 0
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
fail "$label failed."
|
|
39
|
-
warn "Last 40 lines from installer output:"
|
|
40
|
-
tail -n 40 "$log_file" >&2 || true
|
|
41
|
-
warn "Full installer log: $log_file"
|
|
42
|
-
return 1
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
extract_env_value() {
|
|
46
|
-
local file="$1"
|
|
47
|
-
local key="$2"
|
|
48
|
-
|
|
49
|
-
if [[ ! -f "$file" ]]; then
|
|
50
|
-
return 0
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
awk -F= -v key="$key" '$1 == key { print substr($0, index($0, "=")+1); exit }' "$file"
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
resolve_expo_host() {
|
|
57
|
-
local host=""
|
|
58
|
-
|
|
59
|
-
if [[ -f "$SECURE_ENV_FILE" ]]; then
|
|
60
|
-
host="$(extract_env_value "$SECURE_ENV_FILE" "BRIDGE_HOST" | tr -d '[:space:]')"
|
|
61
|
-
if [[ -n "$host" ]]; then
|
|
62
|
-
printf '%s' "$host"
|
|
63
|
-
return 0
|
|
64
|
-
fi
|
|
65
|
-
fi
|
|
66
|
-
|
|
67
|
-
if command -v tailscale >/dev/null 2>&1; then
|
|
68
|
-
host="$(tailscale ip -4 2>/dev/null | head -n1 | tr -d '[:space:]' || true)"
|
|
69
|
-
if [[ -n "$host" ]]; then
|
|
70
|
-
printf '%s' "$host"
|
|
71
|
-
return 0
|
|
72
|
-
fi
|
|
73
|
-
fi
|
|
74
|
-
|
|
75
|
-
echo "error: cannot resolve Expo host IP for QR." >&2
|
|
76
|
-
echo "Run: npm run setup:wizard (or npm run secure:setup) first." >&2
|
|
77
|
-
return 1
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
has_expo_dependency() {
|
|
81
|
-
[[ -d "$ROOT_DIR/node_modules/expo" ]] || [[ -d "$ROOT_DIR/$MOBILE_WORKSPACE/node_modules/expo" ]]
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
has_typescript_dependency() {
|
|
85
|
-
node -e "require.resolve('typescript/package.json', { paths: ['$ROOT_DIR/$MOBILE_WORKSPACE', '$ROOT_DIR'] })" >/dev/null 2>&1
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
has_mobile_react_native_runtime() {
|
|
89
|
-
local root_touchable="$ROOT_DIR/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js"
|
|
90
|
-
local workspace_touchable="$ROOT_DIR/$MOBILE_WORKSPACE/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js"
|
|
91
|
-
local root_devtools="$ROOT_DIR/node_modules/react-native/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js"
|
|
92
|
-
local workspace_devtools="$ROOT_DIR/$MOBILE_WORKSPACE/node_modules/react-native/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js"
|
|
93
|
-
|
|
94
|
-
local touchable_ok="false"
|
|
95
|
-
local devtools_ok="false"
|
|
96
|
-
|
|
97
|
-
if [[ -f "$root_touchable" ]] || [[ -f "$workspace_touchable" ]]; then
|
|
98
|
-
touchable_ok="true"
|
|
99
|
-
fi
|
|
100
|
-
|
|
101
|
-
if [[ -f "$root_devtools" ]] || [[ -f "$workspace_devtools" ]]; then
|
|
102
|
-
devtools_ok="true"
|
|
103
|
-
fi
|
|
104
|
-
|
|
105
|
-
[[ "$touchable_ok" == "true" ]] && [[ "$devtools_ok" == "true" ]]
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
install_mobile_dependencies() {
|
|
109
|
-
info "Installing project dependencies (one-time setup for Expo runtime)..."
|
|
110
|
-
run_quiet_command "Project dependency install" bash -lc "cd \"$ROOT_DIR\" && npm install --include=dev && npm dedupe"
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
repair_mobile_runtime_dependencies() {
|
|
114
|
-
warn "Detected incomplete React Native runtime. Running dependency repair..."
|
|
115
|
-
run_quiet_command "React Native dependency repair" bash -lc "cd \"$ROOT_DIR\" && npm install --include=dev --force && npm install --include=dev --force -w \"$MOBILE_WORKSPACE\" && npm dedupe"
|
|
116
|
-
RUNTIME_REPAIRED="true"
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
ensure_mobile_runtime() {
|
|
120
|
-
if has_expo_dependency && has_typescript_dependency && has_mobile_react_native_runtime; then
|
|
121
|
-
return 0
|
|
122
|
-
fi
|
|
123
|
-
|
|
124
|
-
install_mobile_dependencies
|
|
125
|
-
|
|
126
|
-
if has_expo_dependency && has_typescript_dependency && has_mobile_react_native_runtime; then
|
|
127
|
-
return 0
|
|
128
|
-
fi
|
|
129
|
-
|
|
130
|
-
if [[ "$AUTO_REPAIR" != "true" ]]; then
|
|
131
|
-
fail "mobile runtime is incomplete. Re-run with EXPO_AUTO_REPAIR=true or run npm install --include=dev --force"
|
|
132
|
-
return 1
|
|
133
|
-
fi
|
|
134
|
-
|
|
135
|
-
repair_mobile_runtime_dependencies
|
|
136
|
-
|
|
137
|
-
if ! has_expo_dependency || ! has_typescript_dependency || ! has_mobile_react_native_runtime; then
|
|
138
|
-
fail "mobile runtime is still incomplete after repair."
|
|
139
|
-
fail "Try: npm install --include=dev --force && npm install --include=dev --force -w $MOBILE_WORKSPACE"
|
|
140
|
-
return 1
|
|
141
|
-
fi
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
run_expo() {
|
|
145
|
-
local -a cmd
|
|
146
|
-
local -a extra_args=(--host lan)
|
|
147
|
-
|
|
148
|
-
if [[ "$CLEAR_CACHE" == "true" ]] || [[ "$RUNTIME_REPAIRED" == "true" ]]; then
|
|
149
|
-
extra_args+=(--clear)
|
|
150
|
-
fi
|
|
151
|
-
|
|
152
|
-
case "$MODE" in
|
|
153
|
-
mobile)
|
|
154
|
-
cmd=(npm run -w "$MOBILE_WORKSPACE" start -- "${extra_args[@]}")
|
|
155
|
-
;;
|
|
156
|
-
ios)
|
|
157
|
-
cmd=(npm run -w "$MOBILE_WORKSPACE" ios -- "${extra_args[@]}")
|
|
158
|
-
;;
|
|
159
|
-
android)
|
|
160
|
-
cmd=(npm run -w "$MOBILE_WORKSPACE" android -- "${extra_args[@]}")
|
|
161
|
-
;;
|
|
162
|
-
*)
|
|
163
|
-
echo "error: unknown mode '$MODE' (expected: mobile|ios|android)" >&2
|
|
164
|
-
exit 1
|
|
165
|
-
;;
|
|
166
|
-
esac
|
|
167
|
-
|
|
168
|
-
"${cmd[@]}"
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
cd "$ROOT_DIR"
|
|
172
|
-
ensure_mobile_runtime
|
|
173
|
-
EXPO_HOST="$(resolve_expo_host)"
|
|
174
|
-
export REACT_NATIVE_PACKAGER_HOSTNAME="$EXPO_HOST"
|
|
175
|
-
echo "Starting Expo with host: $EXPO_HOST (QR will use this IP)"
|
|
176
|
-
run_expo
|
package/scripts/sync-versions.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const fs = require('fs');
|
|
4
|
-
const path = require('path');
|
|
5
|
-
|
|
6
|
-
const rootDir = path.resolve(__dirname, '..');
|
|
7
|
-
|
|
8
|
-
function readJson(relativePath) {
|
|
9
|
-
const fullPath = path.join(rootDir, relativePath);
|
|
10
|
-
return JSON.parse(fs.readFileSync(fullPath, 'utf8'));
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function writeJson(relativePath, value) {
|
|
14
|
-
const fullPath = path.join(rootDir, relativePath);
|
|
15
|
-
fs.writeFileSync(fullPath, `${JSON.stringify(value, null, 2)}\n`);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function updateCargoTomlVersion(relativePath, version) {
|
|
19
|
-
const fullPath = path.join(rootDir, relativePath);
|
|
20
|
-
const current = fs.readFileSync(fullPath, 'utf8');
|
|
21
|
-
const next = current.replace(/^version\s*=\s*".*"$/m, `version = "${version}"`);
|
|
22
|
-
if (next === current) {
|
|
23
|
-
throw new Error(`Could not find Cargo.toml version field in ${relativePath}`);
|
|
24
|
-
}
|
|
25
|
-
fs.writeFileSync(fullPath, next);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function syncVersions() {
|
|
29
|
-
const rootPkg = readJson('package.json');
|
|
30
|
-
const version = rootPkg.version;
|
|
31
|
-
if (typeof version !== 'string' || version.trim().length === 0) {
|
|
32
|
-
throw new Error('Root package.json version is empty.');
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const mobilePkgPath = 'apps/mobile/package.json';
|
|
36
|
-
const mobilePkg = readJson(mobilePkgPath);
|
|
37
|
-
mobilePkg.version = version;
|
|
38
|
-
writeJson(mobilePkgPath, mobilePkg);
|
|
39
|
-
|
|
40
|
-
const bridgePkgPath = 'services/rust-bridge/package.json';
|
|
41
|
-
const bridgePkg = readJson(bridgePkgPath);
|
|
42
|
-
bridgePkg.version = version;
|
|
43
|
-
writeJson(bridgePkgPath, bridgePkg);
|
|
44
|
-
|
|
45
|
-
updateCargoTomlVersion('services/rust-bridge/Cargo.toml', version);
|
|
46
|
-
|
|
47
|
-
const appJsonPath = 'apps/mobile/app.json';
|
|
48
|
-
const appConfig = readJson(appJsonPath);
|
|
49
|
-
if (!appConfig.expo || typeof appConfig.expo !== 'object') {
|
|
50
|
-
throw new Error('apps/mobile/app.json is missing expo config.');
|
|
51
|
-
}
|
|
52
|
-
appConfig.expo.version = version;
|
|
53
|
-
writeJson(appJsonPath, appConfig);
|
|
54
|
-
|
|
55
|
-
console.log(`Synchronized app and bridge versions to ${version}`);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
syncVersions();
|
|
60
|
-
} catch (error) {
|
|
61
|
-
console.error(String(error instanceof Error ? error.message : error));
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|