diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 41ee18db2..754b2f58c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,7 +28,7 @@ This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDU - [Node.js](https://nodejs.org/) (LTS) and [Yarn](https://yarnpkg.com/) - [Rust](https://rustup.rs/) (for Tauri and the Rust backend) -- Platform-specific tools for the targets you care about (e.g., Xcode for macOS/iOS, Android SDK for Android) +- Platform-specific tools for the desktop targets you care about ### Clone and Install @@ -44,8 +44,6 @@ Use your own fork in place of `YOUR_USERNAME` when cloning. - **Web only**: `yarn dev` (Vite dev server, typically port 1420) - **Desktop (Tauri)**: `yarn tauri dev` or `yarn dev:app` for enhanced debugging -- **Android**: `yarn tauri android dev` -- **iOS**: `yarn tauri ios dev` See the main [README](README.md) and project docs for more commands (e.g., `yarn skills:build`, `yarn skills:watch`). diff --git a/SECURITY.md b/SECURITY.md index 7fd4482a5..b087af4d2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -36,7 +36,7 @@ We are especially interested in: - Data exfiltration or exposure (credentials, messages, user data) - Remote code execution (frontend, Tauri/Rust backend, or skills runtime) - Issues in dependency chain (npm, Cargo) that affect our build or runtime -- Platform-specific issues (macOS, Windows, Linux, Android, iOS) that compromise user data or device security +- Platform-specific issues (macOS, Windows, Linux) that compromise user data or device security Out-of-scope for this process: general bugs, feature requests, and issues in third-party services we integrate with (e.g., Telegram, Notion) unless they are specific to how OpenHuman uses them. diff --git a/rust-core/ai/AGENTS.md b/rust-core/ai/AGENTS.md index 0d8aa0a88..651e025a2 100644 --- a/rust-core/ai/AGENTS.md +++ b/rust-core/ai/AGENTS.md @@ -79,3 +79,10 @@ Activated for workflow creation, scheduled tasks, and skill management. ## PR Authoring Rule When an agent prepares or suggests pull request content, it must follow `.github/pull_request_template.md` and keep all sections/checklists intact. + +## Engineering Ownership Rules + +- Prefer writing core business logic in `rust-core/`. +- Keep user interaction logic in the UI layer (`src/`), and validate user flows with UI E2E tests. +- Keep functionality validation in Rust tests for `rust-core`. +- Keep `src-tauri/` focused on command registration and bridge code only, so frontend and `rust-core` communicate reliably. diff --git a/rust-core/ai/MEMORY.md b/rust-core/ai/MEMORY.md index ff0e034ff..a3d55b9c4 100644 --- a/rust-core/ai/MEMORY.md +++ b/rust-core/ai/MEMORY.md @@ -2,7 +2,7 @@ ## Platform Capabilities -OpenHuman is a cross-platform crypto community platform built with Tauri (React + Rust). It runs on Windows, macOS, Android, and iOS. +OpenHuman is a desktop crypto community platform built with Tauri (React + Rust). It runs on Windows, macOS, and Linux. **Core features:** diff --git a/rust-core/src/openhuman/integrations/registry.rs b/rust-core/src/openhuman/integrations/registry.rs index e0912ea76..9f0045ac2 100644 --- a/rust-core/src/openhuman/integrations/registry.rs +++ b/rust-core/src/openhuman/integrations/registry.rs @@ -499,7 +499,7 @@ pub fn all_integrations() -> Vec { }, IntegrationEntry { name: "Apple Notes", - description: "Native macOS/iOS notes", + description: "Native macOS notes", category: IntegrationCategory::Productivity, status_fn: |_| IntegrationStatus::ComingSoon, }, @@ -707,18 +707,6 @@ pub fn all_integrations() -> Vec { category: IntegrationCategory::Platform, status_fn: |_| IntegrationStatus::Available, }, - IntegrationEntry { - name: "iOS", - description: "Chat via Telegram/Discord", - category: IntegrationCategory::Platform, - status_fn: |_| IntegrationStatus::Available, - }, - IntegrationEntry { - name: "Android", - description: "Chat via Telegram/Discord", - category: IntegrationCategory::Platform, - status_fn: |_| IntegrationStatus::Available, - }, ] } diff --git a/rust-core/src/runtime/bridge/tauri_bridge.rs b/rust-core/src/runtime/bridge/tauri_bridge.rs index 6e4f5163f..2ecdf9935 100644 --- a/rust-core/src/runtime/bridge/tauri_bridge.rs +++ b/rust-core/src/runtime/bridge/tauri_bridge.rs @@ -8,8 +8,6 @@ pub fn get_platform() -> &'static str { "macos" => "macos", "windows" => "windows", "linux" => "linux", - "android" => "android", - "ios" => "ios", _ => "unknown", } } @@ -20,9 +18,6 @@ pub fn send_notification( title: &str, body: &str, ) -> Result<(), String> { - if matches!(get_platform(), "android" | "ios") { - return Err("Notifications not available on this platform".to_string()); - } log::info!("[runtime] notification requested: {title} - {body}"); Ok(()) } diff --git a/rust-core/src/runtime/manifest.rs b/rust-core/src/runtime/manifest.rs index 01f11e6fa..3ff3c7c7a 100644 --- a/rust-core/src/runtime/manifest.rs +++ b/rust-core/src/runtime/manifest.rs @@ -46,7 +46,7 @@ pub struct SkillManifest { #[serde(default)] pub setup: Option, /// Platform filter. When present, only these platforms will load the skill. - /// Valid values: "windows", "macos", "linux", "android", "ios". + /// Valid values: "windows", "macos", "linux". /// When absent or empty, the skill is available on all platforms. #[serde(default)] pub platforms: Option>, @@ -75,8 +75,6 @@ fn current_platform() -> &'static str { "windows" => "windows", "macos" => "macos", "linux" => "linux", - "android" => "android", - "ios" => "ios", _ => "unknown", } } diff --git a/rust-core/src/runtime/quickjs_libs/qjs_ops/ops_core.rs b/rust-core/src/runtime/quickjs_libs/qjs_ops/ops_core.rs index f99e54807..995c86daf 100644 --- a/rust-core/src/runtime/quickjs_libs/qjs_ops/ops_core.rs +++ b/rust-core/src/runtime/quickjs_libs/qjs_ops/ops_core.rs @@ -96,8 +96,6 @@ pub fn register<'js>( "windows" => "windows", "macos" => "macos", "linux" => "linux", - "android" => "android", - "ios" => "ios", _ => "unknown", } }), diff --git a/rust-core/src/runtime/socket_manager.rs b/rust-core/src/runtime/socket_manager.rs index d411aee7f..d39863ad5 100644 --- a/rust-core/src/runtime/socket_manager.rs +++ b/rust-core/src/runtime/socket_manager.rs @@ -10,7 +10,7 @@ //! - Connection state emitted to the frontend via Tauri events //! - Automatic reconnection with exponential backoff //! -//! Note: On Android, this is a stub. The frontend handles its own Socket.io connection. +//! Desktop runtime Socket.IO manager. use std::sync::Arc; @@ -20,7 +20,7 @@ use tauri::{AppHandle, Emitter}; use crate::models::socket::{ConnectionStatus, SocketState}; -// WebSocket-based Socket.IO client (desktop + iOS) +// WebSocket-based Socket.IO client (desktop) use { futures_util::{SinkExt, StreamExt}, tokio::sync::{mpsc, watch}, @@ -53,13 +53,13 @@ struct SharedState { } // --------------------------------------------------------------------------- -// WebSocket stream type alias (desktop + iOS) +// WebSocket stream type alias (desktop) // --------------------------------------------------------------------------- type WsStream = tokio_tungstenite::WebSocketStream>; // --------------------------------------------------------------------------- -// Connection outcome (desktop + iOS) +// Connection outcome (desktop) // --------------------------------------------------------------------------- enum ConnectionOutcome { /// Clean shutdown requested. @@ -122,7 +122,7 @@ impl SocketManager { } // ----------------------------------------------------------------------- - // Connection lifecycle (desktop + iOS) + // Connection lifecycle (desktop) // ----------------------------------------------------------------------- pub async fn connect(&self, url: &str, token: &str) -> Result<(), String> { self.disconnect().await?; @@ -220,7 +220,7 @@ impl Default for SocketManager { } // =========================================================================== -// WebSocket Engine.IO/Socket.IO implementation (desktop + iOS) +// WebSocket Engine.IO/Socket.IO implementation (desktop) // =========================================================================== async fn ws_loop( url: String, diff --git a/skills b/skills index e856b8e75..ba952da16 160000 --- a/skills +++ b/skills @@ -1 +1 @@ -Subproject commit e856b8e756ad7ea86f36dbd1697542e76a8d3571 +Subproject commit ba952da1664ab1775025b28cb5a57bf26a296828 diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 679bf48d7..383bff8f5 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -37,14 +37,14 @@ tauri-plugin-os = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" -# HTTP client: rustls for cross-platform TLS (Android), native-tls for desktop skill HTTP +# HTTP client: rustls + native-tls for desktop skill HTTP compatibility # (some APIs/CDNs use TLS configs that rustls can't negotiate — native-tls uses OS TLS stack) reqwest = { version = "0.12", default-features = false, features = ["json", "blocking", "rustls-tls", "native-tls", "stream", "http2", "multipart", "socks"] } # Async runtime tokio = { version = "1", features = ["full", "sync"] } -# keyring moved to desktop-only target section (not supported on Android/iOS) +# Keyring is used for desktop credential storage. # Concurrency utilities once_cell = "1.19" @@ -72,7 +72,7 @@ hex = "0.4" tokio-util = { version = "0.7", features = ["rt"] } landlock = { version = "0.4", optional = true } -# V8 JavaScript runtime moved to desktop-only (not available on Android/iOS) +# V8 JavaScript runtime is desktop-only in this host. tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] } @@ -91,7 +91,7 @@ cron = "0.12" # Stream/Sink utilities for WebSocket and HTTP streaming futures-util = "0.3" -# Android uses a simpler approach - no persistent Socket.io (use web socket from frontend) +# Socket manager is persistent in the desktop host. # OpenHuman config + observability directories = "6" diff --git a/src-tauri/gen/apple/.gitignore b/src-tauri/gen/apple/.gitignore deleted file mode 100644 index 6726e2f89..000000000 --- a/src-tauri/gen/apple/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -xcuserdata/ -build/ -Externals/ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png deleted file mode 100644 index 5b72a5c99..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png deleted file mode 100644 index 20e903bb4..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png deleted file mode 100644 index 20e903bb4..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png deleted file mode 100644 index cfaa2cf3c..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png deleted file mode 100644 index 1974e7676..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png deleted file mode 100644 index 5e1a0f068..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png deleted file mode 100644 index 5e1a0f068..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png deleted file mode 100644 index 615b2945e..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png deleted file mode 100644 index 20e903bb4..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png deleted file mode 100644 index a40582c69..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png deleted file mode 100644 index a40582c69..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png deleted file mode 100644 index c1b94deac..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png deleted file mode 100644 index 66d714cb2..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png deleted file mode 100644 index c1b94deac..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png deleted file mode 100644 index 876a1e09b..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png deleted file mode 100644 index 91b752805..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png deleted file mode 100644 index fa9cf4136..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png deleted file mode 100644 index 8a7e95fdb..000000000 Binary files a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png and /dev/null differ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/Contents.json b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 90eea7ec7..000000000 --- a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "AppIcon-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "AppIcon-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "AppIcon-29x29@2x-1.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "AppIcon-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "AppIcon-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "AppIcon-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "AppIcon-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "AppIcon-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "AppIcon-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "AppIcon-20x20@2x-1.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "AppIcon-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "AppIcon-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "AppIcon-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "AppIcon-40x40@2x-1.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "AppIcon-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "AppIcon-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "AppIcon-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "AppIcon-512@2x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/src-tauri/gen/apple/Assets.xcassets/Contents.json b/src-tauri/gen/apple/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c9..000000000 --- a/src-tauri/gen/apple/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/src-tauri/gen/apple/ExportOptions.plist b/src-tauri/gen/apple/ExportOptions.plist deleted file mode 100644 index 0428a171b..000000000 --- a/src-tauri/gen/apple/ExportOptions.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - method - debugging - - diff --git a/src-tauri/gen/apple/LaunchScreen.storyboard b/src-tauri/gen/apple/LaunchScreen.storyboard deleted file mode 100644 index 81b5f90e2..000000000 --- a/src-tauri/gen/apple/LaunchScreen.storyboard +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src-tauri/gen/apple/Podfile b/src-tauri/gen/apple/Podfile deleted file mode 100644 index 606fa5b31..000000000 --- a/src-tauri/gen/apple/Podfile +++ /dev/null @@ -1,21 +0,0 @@ -# Uncomment the next line to define a global platform for your project - -target 'tauri-app_iOS' do -platform :ios, '14.0' - # Pods for tauri-app_iOS -end - -target 'tauri-app_macOS' do -platform :osx, '11.0' - # Pods for tauri-app_macOS -end - -# Delete the deployment target for iOS and macOS, causing it to be inherited from the Podfile -post_install do |installer| - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' - config.build_settings.delete 'MACOSX_DEPLOYMENT_TARGET' - end - end -end diff --git a/src-tauri/gen/apple/Sources/tauri-app/bindings/bindings.h b/src-tauri/gen/apple/Sources/tauri-app/bindings/bindings.h deleted file mode 100644 index 51522007b..000000000 --- a/src-tauri/gen/apple/Sources/tauri-app/bindings/bindings.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -namespace ffi { - extern "C" { - void start_app(); - } -} - diff --git a/src-tauri/gen/apple/Sources/tauri-app/main.mm b/src-tauri/gen/apple/Sources/tauri-app/main.mm deleted file mode 100644 index 7793a9d5c..000000000 --- a/src-tauri/gen/apple/Sources/tauri-app/main.mm +++ /dev/null @@ -1,6 +0,0 @@ -#include "bindings/bindings.h" - -int main(int argc, char * argv[]) { - ffi::start_app(); - return 0; -} diff --git a/src-tauri/gen/apple/project.yml b/src-tauri/gen/apple/project.yml deleted file mode 100644 index aaa846c99..000000000 --- a/src-tauri/gen/apple/project.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: tauri-app -options: - bundleIdPrefix: com.openhuman.app - deploymentTarget: - iOS: 14.0 -fileGroups: [../../src] -configs: - debug: debug - release: release -settingGroups: - app: - base: - PRODUCT_NAME: tauri-app - PRODUCT_BUNDLE_IDENTIFIER: com.openhuman.app -targetTemplates: - app: - type: application - sources: - - path: Sources - scheme: - environmentVariables: - RUST_BACKTRACE: full - RUST_LOG: info - settings: - groups: [app] -targets: - tauri-app_iOS: - type: application - platform: iOS - sources: - - path: Sources - - path: Assets.xcassets - - path: Externals - - path: tauri-app_iOS - - path: assets - buildPhase: resources - type: folder - - path: LaunchScreen.storyboard - info: - path: tauri-app_iOS/Info.plist - properties: - LSRequiresIPhoneOS: true - UILaunchStoryboardName: LaunchScreen - UIRequiredDeviceCapabilities: [arm64, metal] - UISupportedInterfaceOrientations: - - UIInterfaceOrientationPortrait - - UIInterfaceOrientationLandscapeLeft - - UIInterfaceOrientationLandscapeRight - UISupportedInterfaceOrientations~ipad: - - UIInterfaceOrientationPortrait - - UIInterfaceOrientationPortraitUpsideDown - - UIInterfaceOrientationLandscapeLeft - - UIInterfaceOrientationLandscapeRight - CFBundleShortVersionString: 0.1.0 - CFBundleVersion: "0.1.0" - entitlements: - path: tauri-app_iOS/tauri-app_iOS.entitlements - scheme: - environmentVariables: - RUST_BACKTRACE: full - RUST_LOG: info - settings: - base: - ENABLE_BITCODE: false - ARCHS: [arm64] - VALID_ARCHS: arm64 - LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) - LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true - EXCLUDED_ARCHS[sdk=iphoneos*]: x86_64 - groups: [app] - dependencies: - - framework: libapp.a - embed: false - - sdk: CoreGraphics.framework - - sdk: Metal.framework - - sdk: MetalKit.framework - - sdk: QuartzCore.framework - - sdk: Security.framework - - sdk: UIKit.framework - - sdk: WebKit.framework - preBuildScripts: - - script: npm run -- tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" --header-search-paths "${HEADER_SEARCH_PATHS:?}" --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?} - name: Build Rust Code - basedOnDependencyAnalysis: false - outputFiles: - - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a - - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a diff --git a/src-tauri/gen/apple/tauri-app.xcodeproj/project.pbxproj b/src-tauri/gen/apple/tauri-app.xcodeproj/project.pbxproj deleted file mode 100644 index 846171127..000000000 --- a/src-tauri/gen/apple/tauri-app.xcodeproj/project.pbxproj +++ /dev/null @@ -1,458 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 094A1ECD90ECD007825D95B3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E625C1ABDB2D39CB77BF29 /* Security.framework */; }; - 1524BBF419A24C289873FCE0 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA1A066F7EDD869BC014BB9C /* Metal.framework */; }; - 5DCFDCE0989E0655641185BE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BA38F7BF7C28E04DBA849965 /* LaunchScreen.storyboard */; }; - 5DDC8F8949AE56AB4B683F62 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5384EE0C649F19A31B462538 /* QuartzCore.framework */; }; - 6495EEEF2DFC12CB82351B2B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C42C09CE350D0304EDF85C59 /* UIKit.framework */; }; - 7425A66C523CC66EFF87A16E /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 46600E42EDBD4E2F9CFFB94E /* libapp.a */; }; - 74C25A7912AFE30DBE96B590 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 234C7D371C7B526F7E893B15 /* assets */; }; - 7A50F9841502955D69915755 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8DBF813DB5FCB214283D94D /* MetalKit.framework */; }; - 7E5D9DF6134425B5314935DE /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 75C0A66A4769E0B428DFFE16 /* main.mm */; }; - 824033B5A7F94F13A4C63E6E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF0F15D9837DA9743995496A /* WebKit.framework */; }; - 8A272DD02B0D36ACBCE73E26 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CFDCAF660F4CA93110C8FB02 /* Assets.xcassets */; }; - CA00951E60FA3594F396EEEC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC56A11F310BBFF30CCFEB63 /* CoreGraphics.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 234C7D371C7B526F7E893B15 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; - 415CE9B61EE711FB11882F1B /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = ""; }; - 46600E42EDBD4E2F9CFFB94E /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = ""; }; - 5384EE0C649F19A31B462538 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 6B62CCFCDED0CBE851A51E4F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 75C0A66A4769E0B428DFFE16 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; - 7A62F8DA3ACF6DA66CB9785D /* tauri-app_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "tauri-app_iOS.entitlements"; sourceTree = ""; }; - 84E625C1ABDB2D39CB77BF29 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - 9B11C2C873FB5A7B97B0605A /* tauri-app_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "tauri-app_iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - AC56A11F310BBFF30CCFEB63 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - B8DBF813DB5FCB214283D94D /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; - BA38F7BF7C28E04DBA849965 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; - C42C09CE350D0304EDF85C59 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - CA1A066F7EDD869BC014BB9C /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; - CF0F15D9837DA9743995496A /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - CFDCAF660F4CA93110C8FB02 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - D96C5A0C6EF1CFC067A1C008 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = ""; }; - E486419C84C58B66E0FC1383 /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 6EEA0490763EB982F7701E3D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7425A66C523CC66EFF87A16E /* libapp.a in Frameworks */, - CA00951E60FA3594F396EEEC /* CoreGraphics.framework in Frameworks */, - 1524BBF419A24C289873FCE0 /* Metal.framework in Frameworks */, - 7A50F9841502955D69915755 /* MetalKit.framework in Frameworks */, - 5DDC8F8949AE56AB4B683F62 /* QuartzCore.framework in Frameworks */, - 094A1ECD90ECD007825D95B3 /* Security.framework in Frameworks */, - 6495EEEF2DFC12CB82351B2B /* UIKit.framework in Frameworks */, - 824033B5A7F94F13A4C63E6E /* WebKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 2ECFA35AFF2D5945783C3B8D /* Externals */ = { - isa = PBXGroup; - children = ( - ); - path = Externals; - sourceTree = ""; - }; - 4261FD71066ABB203F1B3741 /* Products */ = { - isa = PBXGroup; - children = ( - 9B11C2C873FB5A7B97B0605A /* tauri-app_iOS.app */, - ); - name = Products; - sourceTree = ""; - }; - 48DF3F622809E7EBA4ED342A /* src */ = { - isa = PBXGroup; - children = ( - E486419C84C58B66E0FC1383 /* lib.rs */, - D96C5A0C6EF1CFC067A1C008 /* main.rs */, - ); - name = src; - path = ../../src; - sourceTree = ""; - }; - 5FCA5E244F4BE4C93672F978 /* bindings */ = { - isa = PBXGroup; - children = ( - 415CE9B61EE711FB11882F1B /* bindings.h */, - ); - path = bindings; - sourceTree = ""; - }; - 86E4D2974D6FC803E43026BD /* Frameworks */ = { - isa = PBXGroup; - children = ( - AC56A11F310BBFF30CCFEB63 /* CoreGraphics.framework */, - 46600E42EDBD4E2F9CFFB94E /* libapp.a */, - CA1A066F7EDD869BC014BB9C /* Metal.framework */, - B8DBF813DB5FCB214283D94D /* MetalKit.framework */, - 5384EE0C649F19A31B462538 /* QuartzCore.framework */, - 84E625C1ABDB2D39CB77BF29 /* Security.framework */, - C42C09CE350D0304EDF85C59 /* UIKit.framework */, - CF0F15D9837DA9743995496A /* WebKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 90B7B06659AD5A7A7EE39662 /* Sources */ = { - isa = PBXGroup; - children = ( - 9A6A58EE8A3E239B0E7BDD81 /* tauri-app */, - ); - path = Sources; - sourceTree = ""; - }; - 9A6A58EE8A3E239B0E7BDD81 /* tauri-app */ = { - isa = PBXGroup; - children = ( - 75C0A66A4769E0B428DFFE16 /* main.mm */, - 5FCA5E244F4BE4C93672F978 /* bindings */, - ); - path = "tauri-app"; - sourceTree = ""; - }; - A17B869C1C261C5F8DF765C9 /* tauri-app_iOS */ = { - isa = PBXGroup; - children = ( - 6B62CCFCDED0CBE851A51E4F /* Info.plist */, - 7A62F8DA3ACF6DA66CB9785D /* tauri-app_iOS.entitlements */, - ); - path = "tauri-app_iOS"; - sourceTree = ""; - }; - E8C7C60131D2B902F3255A8F = { - isa = PBXGroup; - children = ( - 234C7D371C7B526F7E893B15 /* assets */, - CFDCAF660F4CA93110C8FB02 /* Assets.xcassets */, - BA38F7BF7C28E04DBA849965 /* LaunchScreen.storyboard */, - 2ECFA35AFF2D5945783C3B8D /* Externals */, - 90B7B06659AD5A7A7EE39662 /* Sources */, - 48DF3F622809E7EBA4ED342A /* src */, - A17B869C1C261C5F8DF765C9 /* tauri-app_iOS */, - 86E4D2974D6FC803E43026BD /* Frameworks */, - 4261FD71066ABB203F1B3741 /* Products */, - ); - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 067C19C8047A2326EE93616E /* tauri-app_iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 492FB4942D220065AF299C12 /* Build configuration list for PBXNativeTarget "tauri-app_iOS" */; - buildPhases = ( - 4CFF21EFA1FFE4D2AB9D6998 /* Build Rust Code */, - D8D571D7BDCA1ABF2E0CB9D6 /* Sources */, - A4D85C1726744E26D8F01FD3 /* Resources */, - 6EEA0490763EB982F7701E3D /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "tauri-app_iOS"; - packageProductDependencies = ( - ); - productName = "tauri-app_iOS"; - productReference = 9B11C2C873FB5A7B97B0605A /* tauri-app_iOS.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 90D4CFD39CFBBAA5E9883AD5 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - }; - buildConfigurationList = 15AD1887792B155C6905ADD6 /* Build configuration list for PBXProject "tauri-app" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = E8C7C60131D2B902F3255A8F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 067C19C8047A2326EE93616E /* tauri-app_iOS */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - A4D85C1726744E26D8F01FD3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8A272DD02B0D36ACBCE73E26 /* Assets.xcassets in Resources */, - 5DCFDCE0989E0655641185BE /* LaunchScreen.storyboard in Resources */, - 74C25A7912AFE30DBE96B590 /* assets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 4CFF21EFA1FFE4D2AB9D6998 /* Build Rust Code */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Build Rust Code"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a", - "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "npm run -- tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D8D571D7BDCA1ABF2E0CB9D6 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7E5D9DF6134425B5314935DE /* main.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 421E0640619ED5B0C0B13B4E /* debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ARCHS = ( - arm64, - ); - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = "tauri-app_iOS/tauri-app_iOS.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_BITCODE = NO; - "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\".\"", - ); - INFOPLIST_FILE = "tauri-app_iOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - PRODUCT_BUNDLE_IDENTIFIER = "com.openhuman.app"; - PRODUCT_NAME = "tauri-app"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = arm64; - }; - name = debug; - }; - 62330632B84ED41E941EFCF6 /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = release; - }; - 62D98D8CE88586901FBBF6C0 /* debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = debug; - }; - D2A4FF1B078298AC78D0EBD3 /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ARCHS = ( - arm64, - ); - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = "tauri-app_iOS/tauri-app_iOS.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_BITCODE = NO; - "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\".\"", - ); - INFOPLIST_FILE = "tauri-app_iOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"; - PRODUCT_BUNDLE_IDENTIFIER = "com.openhuman.app"; - PRODUCT_NAME = "tauri-app"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = arm64; - }; - name = release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 15AD1887792B155C6905ADD6 /* Build configuration list for PBXProject "tauri-app" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 62D98D8CE88586901FBBF6C0 /* debug */, - 62330632B84ED41E941EFCF6 /* release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = debug; - }; - 492FB4942D220065AF299C12 /* Build configuration list for PBXNativeTarget "tauri-app_iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 421E0640619ED5B0C0B13B4E /* debug */, - D2A4FF1B078298AC78D0EBD3 /* release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 90D4CFD39CFBBAA5E9883AD5 /* Project object */; -} diff --git a/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index ac90d5ac7..000000000 --- a/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - BuildSystemType - Original - DisableBuildSystemDeprecationDiagnostic - - - diff --git a/src-tauri/gen/apple/tauri-app.xcodeproj/xcshareddata/xcschemes/tauri-app_iOS.xcscheme b/src-tauri/gen/apple/tauri-app.xcodeproj/xcshareddata/xcschemes/tauri-app_iOS.xcscheme deleted file mode 100644 index 17e7a2d9d..000000000 --- a/src-tauri/gen/apple/tauri-app.xcodeproj/xcshareddata/xcschemes/tauri-app_iOS.xcscheme +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src-tauri/gen/apple/tauri-app_iOS/Info.plist b/src-tauri/gen/apple/tauri-app_iOS/Info.plist deleted file mode 100644 index ff3fbd7f2..000000000 --- a/src-tauri/gen/apple/tauri-app_iOS/Info.plist +++ /dev/null @@ -1,44 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 0.1.0 - CFBundleVersion - 0.1.0 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - arm64 - metal - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/src-tauri/gen/apple/tauri-app_iOS/tauri-app_iOS.entitlements b/src-tauri/gen/apple/tauri-app_iOS/tauri-app_iOS.entitlements deleted file mode 100644 index 0c67376eb..000000000 --- a/src-tauri/gen/apple/tauri-app_iOS/tauri-app_iOS.entitlements +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src-tauri/src/commands/runtime.rs b/src-tauri/src/commands/runtime.rs index 0fc3c7b58..58ebe667b 100644 --- a/src-tauri/src/commands/runtime.rs +++ b/src-tauri/src/commands/runtime.rs @@ -17,25 +17,25 @@ use crate::runtime::qjs_engine::RuntimeEngine; use crate::runtime::types::{SkillSnapshot, ToolResult}; // ============================================================================= -// ZeroClaw Format Compatibility Types +// OpenClaw Format Compatibility Types // ============================================================================= #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct ZeroClawToolSchema { +pub struct OpenClawToolSchema { #[serde(rename = "type")] pub type_field: String, - pub function: ZeroClawFunction, + pub function: OpenClawFunction, } #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct ZeroClawFunction { +pub struct OpenClawFunction { pub name: String, pub description: String, pub parameters: serde_json::Value, } #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct ZeroClawToolResult { +pub struct OpenClawToolResult { pub success: bool, pub output: String, pub error: Option, @@ -260,16 +260,16 @@ mod desktop { } // ============================================================================= - // ZeroClaw Format Compatibility Commands + // OpenClaw Format Compatibility Commands // ============================================================================= - /// Generate ZeroClaw-compatible tool schemas from all available QuickJS tools. + /// Generate OpenClaw-compatible tool schemas from all available QuickJS tools. /// This bridges the gap between QuickJS runtime and OpenAI function calling format. #[tauri::command] pub async fn runtime_get_tool_schemas( engine: State<'_, Arc>, - ) -> Result, String> { - log::info!("🔧 [RUNTIME] Generating ZeroClaw-compatible tool schemas"); + ) -> Result, String> { + log::info!("🔧 [RUNTIME] Generating OpenClaw-compatible tool schemas"); let tools = engine.all_tools(); log::info!("🔧 [RUNTIME] Found {} tools from engine", tools.len()); @@ -290,9 +290,9 @@ mod desktop { // Convert input schema to OpenAI-compatible format let openai_parameters = convert_to_openai_schema(tool.input_schema)?; - let schema = ZeroClawToolSchema { + let schema = OpenClawToolSchema { type_field: "function".to_string(), - function: ZeroClawFunction { + function: OpenClawFunction { name: tool_name, description, parameters: openai_parameters, @@ -303,7 +303,7 @@ mod desktop { } log::info!( - "🔧 [RUNTIME] Generated {} ZeroClaw tool schemas", + "🔧 [RUNTIME] Generated {} OpenClaw tool schemas", schemas.len() ); @@ -324,17 +324,17 @@ mod desktop { } /// Execute a specific tool based on agent decision with enhanced validation. - /// This wraps the existing runtime_call_tool with ZeroClaw format compatibility. + /// This wraps the existing runtime_call_tool with OpenClaw format compatibility. #[tauri::command] pub async fn runtime_execute_tool( engine: State<'_, Arc>, tool_id: String, args: serde_json::Value, - ) -> Result { + ) -> Result { let start_time = std::time::Instant::now(); log::info!( - "🔧 [RUNTIME] Executing ZeroClaw tool: {} with args: {}", + "🔧 [RUNTIME] Executing OpenClaw tool: {} with args: {}", tool_id, args ); @@ -352,7 +352,7 @@ mod desktop { Err(e) => { log::error!("🔧 [RUNTIME] Failed to parse tool_id '{}': {}", tool_id, e); let execution_time = start_time.elapsed().as_millis() as u64; - return Ok(ZeroClawToolResult { + return Ok(OpenClawToolResult { success: false, output: String::new(), error: Some(format!("Invalid tool ID format: {}", e)), @@ -421,7 +421,7 @@ mod desktop { error_message ); - Ok(ZeroClawToolResult { + Ok(OpenClawToolResult { success: false, output: String::new(), error: Some(error_message), @@ -441,9 +441,9 @@ mod desktop { .collect::>() .join("\n"); - log::info!("ZeroClaw tool execution completed in {}ms", execution_time); + log::info!("OpenClaw tool execution completed in {}ms", execution_time); - Ok(ZeroClawToolResult { + Ok(OpenClawToolResult { success: true, output, error: None, @@ -455,7 +455,7 @@ mod desktop { let execution_time = start_time.elapsed().as_millis() as u64; log::error!("🔧 [RUNTIME] Engine call_tool failed: {}", e); - Ok(ZeroClawToolResult { + Ok(OpenClawToolResult { success: false, output: String::new(), error: Some(e), @@ -571,9 +571,9 @@ mod tests { // In a real test environment, you would mock the engine or use a test instance // For now, we'll test the struct format and serialization - let schema = ZeroClawToolSchema { + let schema = OpenClawToolSchema { type_field: "function".to_string(), - function: ZeroClawFunction { + function: OpenClawFunction { name: "test_tool".to_string(), description: "A test tool".to_string(), parameters: serde_json::json!({ @@ -596,15 +596,15 @@ mod tests { assert!(json.contains("A test tool")); // Test deserialization - let deserialized: ZeroClawToolSchema = + let deserialized: OpenClawToolSchema = serde_json::from_str(&json).expect("Should deserialize from JSON"); assert_eq!(deserialized.type_field, "function"); assert_eq!(deserialized.function.name, "test_tool"); } #[tokio::test] - async fn test_zeroclaw_tool_result_format() { - let result = ZeroClawToolResult { + async fn test_openclaw_tool_result_format() { + let result = OpenClawToolResult { success: true, output: "Test output".to_string(), error: None, @@ -618,7 +618,7 @@ mod tests { assert!(json.contains("1500")); // Test error case - let error_result = ZeroClawToolResult { + let error_result = OpenClawToolResult { success: false, output: String::new(), error: Some("Tool not found".to_string()), @@ -702,11 +702,11 @@ mod tests { } #[test] - fn test_zeroclaw_format_compliance() { - // Test that our ZeroClaw format matches expected OpenAI structure - let schema = ZeroClawToolSchema { + fn test_openclaw_format_compliance() { + // Test that our OpenClaw format matches expected OpenAI structure + let schema = OpenClawToolSchema { type_field: "function".to_string(), - function: ZeroClawFunction { + function: OpenClawFunction { name: "github_list_issues".to_string(), description: "List GitHub issues for a repository".to_string(), parameters: serde_json::json!({ @@ -740,9 +740,9 @@ mod tests { } #[test] - fn test_zeroclaw_struct_defaults() { - // Test that ZeroClaw structs can be created with serde_json - let tool_schema: ZeroClawToolSchema = serde_json::from_value(serde_json::json!({ + fn test_openclaw_struct_defaults() { + // Test that OpenClaw structs can be created with serde_json + let tool_schema: OpenClawToolSchema = serde_json::from_value(serde_json::json!({ "type": "function", "function": { "name": "test", @@ -756,7 +756,7 @@ mod tests { assert_eq!(tool_schema.function.name, "test"); // Test tool result - let tool_result: ZeroClawToolResult = serde_json::from_value(serde_json::json!({ + let tool_result: OpenClawToolResult = serde_json::from_value(serde_json::json!({ "success": true, "output": "result", "error": null, @@ -772,7 +772,7 @@ mod tests { #[test] fn test_error_handling_structures() { // Test that error scenarios can be properly serialized - let error_result = ZeroClawToolResult { + let error_result = OpenClawToolResult { success: false, output: String::new(), error: Some("Connection timeout".to_string()), @@ -785,7 +785,7 @@ mod tests { assert!(json.contains("30000")); // Test deserialization back - let parsed: ZeroClawToolResult = + let parsed: OpenClawToolResult = serde_json::from_str(&json).expect("Should parse error result"); assert!(!parsed.success); assert_eq!(parsed.error, Some("Connection timeout".to_string())); diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index a098a70d3..812c2f7e0 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -8,8 +8,8 @@ //! - Secure session storage //! - Native notifications -#[cfg(any(target_os = "android", target_os = "ios"))] -compile_error!("src-tauri host is desktop-only. Android/iOS support has been removed."); +#[cfg(not(any(target_os = "windows", target_os = "macos", target_os = "linux")))] +compile_error!("src-tauri host is desktop-only. Non-desktop targets are not supported."); mod commands; mod core_process; diff --git a/src/components/SkillsGrid.tsx b/src/components/SkillsGrid.tsx index f14728540..3bc3aadde 100644 --- a/src/components/SkillsGrid.tsx +++ b/src/components/SkillsGrid.tsx @@ -1,5 +1,4 @@ import { invoke } from '@tauri-apps/api/core'; -import { platform } from '@tauri-apps/plugin-os'; import { useEffect, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -111,7 +110,6 @@ export default function SkillsGrid() { const navigate = useNavigate(); const [skillsList, setSkillsList] = useState([]); const [loading, setLoading] = useState(true); - const [isMobile, setIsMobile] = useState(false); const [generating, setGenerating] = useState(false); const [selfEvolveOpen, setSelfEvolveOpen] = useState(false); const [setupModalOpen, setSetupModalOpen] = useState(false); @@ -181,17 +179,6 @@ export default function SkillsGrid() { }; useEffect(() => { - // Detect mobile platform - const detectMobile = async () => { - try { - const currentPlatform = await platform(); - setIsMobile(currentPlatform === 'android' || currentPlatform === 'ios'); - } catch { - // If we can't detect platform, assume desktop - setIsMobile(false); - } - }; - detectMobile(); refreshSkills(); }, []); @@ -219,38 +206,6 @@ export default function SkillsGrid() { }) .filter(s => IS_DEV || !s.ignoreInProduction); }, [skillsList, skillsState, skillStates]); - - // Show mobile-only message on mobile platforms - if (!loading && isMobile) { - return ( -
-

- Skills -

-
-
- - - -

Skills are available on desktop only

-

- Use the desktop app to configure and run skills -

-
-
-
- ); - } - // If loading or no skills on desktop, don't render if (loading || skillsList.length === 0) { return null; diff --git a/src/lib/skills/types.ts b/src/lib/skills/types.ts index edc44f915..08a28b8df 100644 --- a/src/lib/skills/types.ts +++ b/src/lib/skills/types.ts @@ -7,7 +7,7 @@ // Skill Manifest (from manifest.json) // --------------------------------------------------------------------------- -export type SkillPlatform = "windows" | "macos" | "linux" | "android" | "ios"; +export type SkillPlatform = "windows" | "macos" | "linux"; /** Unified registry skill type discriminant. */ export type SkillType = 'openhuman' | 'openclaw'; diff --git a/src/pages/Skills.tsx b/src/pages/Skills.tsx index f6f14f9df..25c4c65c2 100644 --- a/src/pages/Skills.tsx +++ b/src/pages/Skills.tsx @@ -1,5 +1,4 @@ import { invoke } from '@tauri-apps/api/core'; -import { platform } from '@tauri-apps/plugin-os'; import { useEffect, useMemo, useState } from 'react'; import { @@ -203,17 +202,6 @@ export default function Skills() { useEffect(() => { const loadSkills = async () => { try { - // Check if mobile - try { - const p = await platform(); - if (p === 'android' || p === 'ios') { - setSkillsLoading(false); - return; - } - } catch { - // not Tauri env - } - const manifests = await invoke>>('runtime_discover_skills'); const ALLOWED_SKILLS = new Set(['gmail', 'notion']); const validManifests = manifests.filter(m => { diff --git a/src/services/__tests__/agentToolRegistry.test.ts b/src/services/__tests__/agentToolRegistry.test.ts index bc9ab1c0f..0a5f2dc00 100644 --- a/src/services/__tests__/agentToolRegistry.test.ts +++ b/src/services/__tests__/agentToolRegistry.test.ts @@ -17,7 +17,7 @@ describe('AgentToolRegistry', () => { }); describe('loadToolSchemas', () => { - test('should load tool schemas from Tauri using ZeroClaw format', async () => { + test('should load tool schemas from Tauri using OpenClaw format', async () => { const mockSchemas = [ { type: 'function', @@ -128,7 +128,7 @@ describe('AgentToolRegistry', () => { }); describe('executeTool', () => { - test('should execute tool using ZeroClaw format with success', async () => { + test('should execute tool using OpenClaw format with success', async () => { const mockResult = { success: true, output: '{"issues": [{"title": "Bug fix", "number": 1}]}', diff --git a/src/services/agentToolRegistry.ts b/src/services/agentToolRegistry.ts index e183fa1e8..4febb2e47 100644 --- a/src/services/agentToolRegistry.ts +++ b/src/services/agentToolRegistry.ts @@ -10,13 +10,13 @@ import { invoke } from '@tauri-apps/api/core'; import type { AgentToolExecution, AgentToolSchema, IAgentToolRegistry } from '../types/agent'; -// ZeroClaw format types from Rust -interface ZeroClawToolSchema { +// OpenClaw format types from Rust +interface OpenClawToolSchema { type: string; function: { name: string; description: string; parameters: Record }; } -interface ZeroClawToolResult { +interface OpenClawToolResult { success: boolean; output: string; error?: string; @@ -58,7 +58,7 @@ export class AgentToolRegistry implements IAgentToolRegistry { // 2. Load other tools from skill system (fallback for non-Telegram) try { console.log('🔧 Loading non-Telegram tools from skill system...'); - const skillTools = await invoke('runtime_get_tool_schemas'); + const skillTools = await invoke('runtime_get_tool_schemas'); // Filter out telegram tools to avoid duplicates const nonTelegramTools = skillTools.filter( @@ -141,7 +141,7 @@ export class AgentToolRegistry implements IAgentToolRegistry { toolName.includes('tg') || this.extractCategoryFromSkillId(skillId).includes('Telegram'); - let result: ZeroClawToolResult; + let result: OpenClawToolResult; if (isTelegramTool) { // Telegram tools no longer available @@ -159,7 +159,7 @@ export class AgentToolRegistry implements IAgentToolRegistry { console.log(` args: ${toolArguments}`); console.log(` args type: ${typeof toolArguments}`); - result = await invoke('runtime_execute_tool', { + result = await invoke('runtime_execute_tool', { toolId, args: toolArguments, }); diff --git a/src/store/index.ts b/src/store/index.ts index e4ac17f75..d4a549476 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -126,7 +126,7 @@ export const store = configureStore({ setStoreForApiClient(() => store.getState().auth.token); export const persistor = persistStore(store, null, () => { - // Dev-only: auto-inject JWT token for testing (e.g. Android without login flow) + // Dev-only: auto-inject JWT token for local testing without login flow. const devToken = import.meta.env.VITE_DEV_JWT_TOKEN; if (devToken && !store.getState().auth.token) { store.dispatch(setToken(devToken)); diff --git a/src/types/agent.ts b/src/types/agent.ts index cef16622a..673500dec 100644 --- a/src/types/agent.ts +++ b/src/types/agent.ts @@ -2,7 +2,7 @@ * Agent Tool Registry Types * * Minimal type definitions for agent tool registry functionality. - * Based on ZeroClaw compatibility requirements. + * Based on OpenClaw compatibility requirements. */ /**