{
  "name": "openhuman-app",
  "version": "0.52.16",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "dev:web": "vite",
    "dev:app": "yarn core:stage && source ../scripts/load-dotenv.sh && tauri dev",
    "core:stage": "node ../scripts/stage-core-sidecar.mjs",
    "build": "tsc && vite build",
    "build:app": "tsc && vite build",
    "compile": "tsc --noEmit",
    "preview": "vite preview",
    "tauri": "tauri",
    "tauri:build:ui": "tauri build -- --bin OpenHuman",
    "macos:build:intel": "source ../scripts/load-dotenv.sh && tauri build --bundles app dmg --target x86_64-apple-darwin -- --bin OpenHuman",
    "macos:build:intel:debug": "yarn macos:build:intel --debug",
    "macos:build:debug": "yarn macos:build:release --debug",
    "macos:build:release": "source ../scripts/load-dotenv.sh && tauri build --bundles app dmg -- --bin OpenHuman",
    "macos:build:release:signed": "source ../scripts/load-env.sh && tauri build --bundles app dmg -- --bin OpenHuman",
    "macos:build:sign:release": "yarn macos:build:release:signed",
    "macos:run": "open '../target/debug/bundle/macos/OpenHuman.app'",
    "macos:dev": "yarn 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: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:skill-execution": "bash ./scripts/e2e-run-spec.sh test/e2e/specs/skill-execution-flow.spec.ts skill-execution",
    "test:e2e": "yarn test:e2e:build && yarn test:e2e:login && yarn test:e2e:auth",
    "test:e2e:all:flows": "bash ./scripts/e2e-run-all-flows.sh",
    "test:e2e:all": "yarn test:e2e:build && yarn test:e2e:all:flows",
    "test:all": "yarn test:coverage && yarn test:rust && yarn 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 . && yarn rust:format",
    "format:check": "prettier --check . && yarn rust:format:check",
    "lint": "eslint . --ext .ts,.tsx",
    "lint:fix": "eslint . --ext .ts,.tsx --fix",
    "knip": "knip --config knip.json",
    "knip:production": "knip --config knip.json --production"
  },
  "dependencies": {
    "@noble/hashes": "^2.0.1",
    "@noble/secp256k1": "^3.0.0",
    "@reduxjs/toolkit": "^2.11.2",
    "@scure/bip32": "^2.0.1",
    "@scure/bip39": "^2.0.1",
    "@sentry/react": "^10.38.0",
    "@tauri-apps/api": "^2.10.0",
    "@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",
    "debug": "^4.4.3",
    "lottie-react": "^2.4.1",
    "os-browserify": "^0.3.0",
    "process": "^0.11.10",
    "react": "^19.1.0",
    "react-dom": "^19.1.0",
    "react-icons": "^5.6.0",
    "react-markdown": "^10.1.0",
    "react-redux": "^9.2.0",
    "react-router-dom": "^7.13.0",
    "redux-logger": "^3.0.6",
    "redux-persist": "^6.0.0",
    "socket.io-client": "^4.8.3",
    "three": "^0.183.2",
    "util": "^0.12.5"
  },
  "devDependencies": {
    "@eslint/js": "^9.39.2",
    "@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",
    "@trivago/prettier-plugin-sort-imports": "^6.0.2",
    "@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": "^4.6.0",
    "@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",
    "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",
    "tailwindcss": "^3.4.19",
    "typescript": "~5.8.3",
    "vite": "^7.0.4",
    "vite-plugin-node-polyfills": "^0.25.0",
    "vitest": "^4.0.18"
  }
}
