{ "name": "openhuman-app", "version": "0.57.52", "type": "module", "engines": { "node": ">=24.0.0" }, "scripts": { "dev": "vite", "dev:web": "vite", "dev:app": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && bash ../scripts/setup-chromium-safe-storage.sh && source ../scripts/load-dotenv.sh && APPLE_SIGNING_IDENTITY='OpenHuman Dev Signer' cargo tauri dev --config '{\"build\":{\"devUrl\":\"http://localhost:'\"${OPENHUMAN_DEV_PORT:-1420}\"'\"}}' ", "dev:app:win": "\"C:/Program Files/Git/bin/bash.exe\" ../scripts/run-dev-win.sh", "dev:cef": "pnpm dev:app", "dev:wry": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && source ../scripts/load-dotenv.sh && cargo tauri dev --no-default-features --features wry", "core:stage": "echo '[core:stage] no-op — core is linked in-process; sidecar removed (PR #1061)'", "tauri:ensure": "bash ../scripts/ensure-tauri-cli.sh", "tauri:ios:init": "bash ../scripts/ios-init.sh", "tauri:ios:dev": "cd src-tauri-mobile && IPHONEOS_DEPLOYMENT_TARGET=${IPHONEOS_DEPLOYMENT_TARGET:-16.0} npx --package=@tauri-apps/cli@^2 tauri ios dev", "tauri:ios:build": "cd src-tauri-mobile && IPHONEOS_DEPLOYMENT_TARGET=${IPHONEOS_DEPLOYMENT_TARGET:-16.0} npx --package=@tauri-apps/cli@^2 tauri ios build", "tauri:android:init": "bash ../scripts/android-init.sh", "tauri:android:dev": "cd src-tauri-mobile && ../node_modules/.bin/tauri android dev", "tauri:android:build": "cd src-tauri-mobile && ../node_modules/.bin/tauri android build", "release:android:play": "bash ../scripts/release/upload-android-to-play.sh", "build": "tsc && vite build", "build:app": "tsc && vite build", "build:app:e2e": "tsc && vite build --mode development", "build:web:e2e": "bash ./scripts/e2e-web-build.sh", "build:web": "cross-env VITE_OPENHUMAN_TARGET=web tsc && cross-env VITE_OPENHUMAN_TARGET=web vite build", "compile": "tsc --noEmit", "preview": "vite preview", "tauri": "tauri", "tauri:build:ui": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && cargo tauri build -- --bin OpenHuman", "macos:build:intel": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && source ../scripts/load-dotenv.sh && cargo tauri build --bundles app dmg --target x86_64-apple-darwin -- --bin OpenHuman", "macos:build:intel:debug": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && source ../scripts/load-dotenv.sh && cargo tauri build --debug --bundles app dmg --target x86_64-apple-darwin -- --bin OpenHuman", "macos:build:debug": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && source ../scripts/load-dotenv.sh && cargo tauri build --debug --bundles app dmg -- --bin OpenHuman", "macos:build:release": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && source ../scripts/load-dotenv.sh && cargo tauri build --bundles app dmg -- --bin OpenHuman", "macos:build:release:signed": "pnpm tauri:ensure && export CEF_PATH=\"$HOME/Library/Caches/tauri-cef\" && source ../scripts/load-env.sh && cargo tauri build --bundles app dmg -- --bin OpenHuman", "macos:build:sign:release": "pnpm macos:build:release:signed", "macos:run": "open '../target/debug/bundle/macos/OpenHuman.app'", "macos:dev": "pnpm macos:build:debug && open '../target/debug/bundle/macos/OpenHuman.app'", "test": "vitest run --config test/vitest.config.ts", "test:unit": "vitest run --config test/vitest.config.ts", "test:unit:watch": "vitest --config test/vitest.config.ts", "test:watch": "vitest --config test/vitest.config.ts", "test:coverage": "vitest run --config test/vitest.config.ts --coverage", "test:rust": "bash ../scripts/test-rust-with-mock.sh", "test:e2e:build": "bash ./scripts/e2e-build.sh", "test:e2e:web:build": "bash ./scripts/e2e-web-build.sh", "test:e2e:web": "pnpm test:e2e:web:build && bash ./scripts/e2e-web-session.sh", "test:e2e:mega": "pnpm test:e2e:build && bash ./scripts/e2e-run-spec.sh test/e2e/specs/mega-flow.spec.ts mega-flow", "test:e2e:login": "bash ./scripts/e2e-login.sh", "test:e2e:auth": "bash ./scripts/e2e-auth.sh", "test:e2e:service-connectivity": "OPENHUMAN_SERVICE_MOCK=1 bash ./scripts/e2e-run-spec.sh test/e2e/specs/service-connectivity-flow.spec.ts service-connectivity", "test:e2e:skills-registry": "bash ./scripts/e2e-run-spec.sh test/e2e/specs/skills-registry.spec.ts skills-registry", "test:e2e:cron-jobs": "bash ./scripts/e2e-run-spec.sh test/e2e/specs/cron-jobs-flow.spec.ts cron-jobs", "test:e2e": "pnpm test:e2e:web && pnpm test:e2e:mega", "test:e2e:all:flows": "bash ./scripts/e2e-run-all-flows.sh", "test:e2e:all": "pnpm test:e2e:web && pnpm test:e2e:all:flows", "test:e2e:session": "bash ./scripts/e2e-run-session.sh", "test:e2e:session:full": "pnpm test:e2e:build && pnpm test:e2e:session", "test:all": "pnpm test:coverage && pnpm test:rust && pnpm test:e2e", "rust:check": "cargo check --manifest-path src-tauri/Cargo.toml", "rust:format": "cargo fmt --manifest-path ../Cargo.toml --all && cargo fmt --manifest-path src-tauri/Cargo.toml --all", "rust:format:check": "cargo fmt --manifest-path ../Cargo.toml --all --check && cargo fmt --manifest-path src-tauri/Cargo.toml --all --check", "rust:clippy": "cargo clippy -p openhuman -- -D warnings", "format": "prettier --write . && pnpm rust:format", "format:check": "prettier --check . && pnpm rust:format:check", "lint": "eslint . --ext .ts,.tsx --cache", "lint:fix": "eslint . --ext .ts,.tsx --fix --cache", "lint:commands-tokens": "bash -c 'command -v rg >/dev/null 2>&1 || { echo \"lint:commands-tokens requires ripgrep. Install: brew install ripgrep (macOS) / apt install ripgrep (Debian/Ubuntu) / see https://github.com/BurntSushi/ripgrep#installation\" >&2; exit 1; }; ! rg -nU \"(bg|text|border|ring|shadow)-(neutral|primary|sage|amber|canvas|stone|slate)\" src/components/commands/'", "knip": "knip --config knip.json", "knip:production": "knip --config knip.json --production" }, "dependencies": { "@noble/ciphers": "^1.2.1", "@noble/curves": "^2.2.0", "@noble/hashes": "^2.0.1", "@noble/secp256k1": "^3.0.0", "@radix-ui/react-dialog": "^1.1.15", "@reduxjs/toolkit": "^2.11.2", "@remotion/player": "4.0.454", "@remotion/zod-types": "4.0.454", "@rive-app/react-webgl2": "^4.28.6", "@scure/base": "^2.2.0", "@scure/bip32": "^2.0.1", "@scure/bip39": "^2.0.1", "@sentry/react": "^10.38.0", "@tauri-apps/api": "^2.10.0", "@tauri-apps/plugin-barcode-scanner": "^2.4.4", "@tauri-apps/plugin-deep-link": "^2", "@tauri-apps/plugin-opener": "^2", "@tauri-apps/plugin-os": "^2.3.2", "@types/three": "^0.183.1", "buffer": "^6.0.3", "cmdk": "^1.1.1", "d3-force": "^3.0.0", "debug": "^4.4.3", "katex": "^0.16.47", "lottie-react": "^2.4.1", "os-browserify": "^0.3.0", "pixi.js": "^8.18.1", "process": "^0.11.10", "qrcode.react": "^4.2.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-ga4": "^3.0.1", "react-icons": "^5.6.0", "react-joyride": "^3.1.0", "react-markdown": "^10.1.0", "react-redux": "^9.2.0", "react-router-dom": "^7.13.0", "recharts": "^2.15.0", "redux-persist": "^6.0.0", "rehype-katex": "^7.0.1", "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", "remotion": "4.0.454", "socket.io-client": "^4.8.3", "tauri-plugin-ptt-api": "workspace:*", "three": "^0.183.2", "util": "^0.12.5", "zod": "4.3.6" }, "devDependencies": { "@eslint/js": "^9.39.2", "@playwright/test": "^1.56.1", "@sentry/vite-plugin": "^2.22.6", "@tailwindcss/forms": "^0.5.11", "@tailwindcss/typography": "^0.5.19", "@tauri-apps/cli": "2.10.0", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", "@trivago/prettier-plugin-sort-imports": "^6.0.2", "@types/d3-force": "^3.0.10", "@types/debug": "^4.1.12", "@types/node": "^25.0.10", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@types/redux-logger": "^3.0.13", "@typescript-eslint/eslint-plugin": "^8.54.0", "@typescript-eslint/parser": "^8.54.0", "@vitejs/plugin-react": "^6.0.1", "@vitest/coverage-v8": "^4.0.18", "@wdio/appium-service": "^9.24.0", "@wdio/cli": "^9.24.0", "@wdio/local-runner": "^9.24.0", "@wdio/mocha-framework": "^9.24.0", "@wdio/spec-reporter": "^9.24.0", "autoprefixer": "^10.4.23", "cross-env": "^10.1.0", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "husky": "^9.1.7", "jsdom": "^28.0.0", "knip": "^6.3.1", "postcss": "^8.5.6", "prettier": "^3.8.1", "redux-logger": "^3.0.6", "tailwindcss": "^3.4.19", "typescript": "~5.8.3", "vite": "^8.0.0", "vite-plugin-node-polyfills": "^0.26.0", "vitest": "^4.0.18" } }