{
  "name": "@zhigang1992/happy-cli",
  "version": "0.13.9",
  "description": "Mobile and Web client for Claude Code and Codex",
  "author": "Kirill Dubovitskiy",
  "license": "MIT",
  "type": "module",
  "homepage": "https://github.com/slopus/happy-cli",
  "bugs": "https://github.com/slopus/happy-cli/issues",
  "repository": "slopus/happy-cli",
  "bin": {
    "happy": "./bin/happy.mjs",
    "happy-mcp": "./bin/happy-mcp.mjs"
  },
  "main": "./dist/index.cjs",
  "module": "./dist/index.mjs",
  "types": "./dist/index.d.cts",
  "exports": {
    ".": {
      "require": {
        "types": "./dist/index.d.cts",
        "default": "./dist/index.cjs"
      },
      "import": {
        "types": "./dist/index.d.mts",
        "default": "./dist/index.mjs"
      }
    },
    "./lib": {
      "require": {
        "types": "./dist/lib.d.cts",
        "default": "./dist/lib.cjs"
      },
      "import": {
        "types": "./dist/lib.d.mts",
        "default": "./dist/lib.mjs"
      }
    },
    "./codex/happyMcpStdioBridge": {
      "require": {
        "types": "./dist/codex/happyMcpStdioBridge.d.cts",
        "default": "./dist/codex/happyMcpStdioBridge.cjs"
      },
      "import": {
        "types": "./dist/codex/happyMcpStdioBridge.d.mts",
        "default": "./dist/codex/happyMcpStdioBridge.mjs"
      }
    }
  },
  "files": [
    "dist",
    "bin",
    "scripts",
    "package.json"
  ],
  "scripts": {
    "why do we need to build before running tests / dev?": "We need the binary to be built so we run daemon commands which directly run the binary - we don't want them to go out of sync or have custom spawn logic depending how we started happy",
    "typecheck": "tsc --noEmit",
    "build": "shx rm -rf dist && npx tsc --noEmit && pkgroll",
    "test": "bun run build && tsx --env-file .env.integration-test node_modules/.bin/vitest run",
    "start": "bun run build && ./bin/happy.mjs",
    "dev": "tsx src/index.ts",
    "dev:local-server": "bun run build && tsx --env-file .env.dev-local-server src/index.ts",
    "dev:integration-test-env": "bun run build && tsx --env-file .env.integration-test src/index.ts",
    "prepublishOnly": "bun run build && bun test",
    "release": "release-it"
  },
  "dependencies": {
    "@anthropic-ai/claude-code": "2.0.76",
    "@anthropic-ai/sdk": "0.71.2",
    "@elevenlabs/elevenlabs-js": "^2.25.1",
    "@iarna/toml": "^3.0.0",
    "@modelcontextprotocol/sdk": "^1.15.1",
    "@stablelib/base64": "^2.0.1",
    "@stablelib/hex": "^2.0.1",
    "@types/cross-spawn": "^6.0.6",
    "@types/http-proxy": "^1.17.16",
    "@types/ps-list": "^6.2.1",
    "@types/qrcode-terminal": "^0.12.2",
    "@types/react": "^19.1.9",
    "@types/tmp": "^0.2.6",
    "axios": "^1.10.0",
    "chalk": "^5.4.1",
    "cross-spawn": "^7.0.6",
    "expo-server-sdk": "^3.15.0",
    "fastify": "^5.5.0",
    "fastify-type-provider-zod": "4.0.2",
    "http-proxy": "^1.18.1",
    "http-proxy-middleware": "^3.0.5",
    "ink": "^6.1.0",
    "open": "^10.2.0",
    "ps-list": "^8.1.1",
    "qrcode-terminal": "^0.12.0",
    "react": "^19.1.1",
    "socket.io-client": "^4.8.1",
    "tar": "^7.4.3",
    "tmp": "^0.2.5",
    "tweetnacl": "^1.0.3",
    "zod": "^3.23.8"
  },
  "devDependencies": {
    "@eslint/compat": "^1",
    "@types/node": ">=20",
    "cross-env": "^10.0.0",
    "dotenv": "^16.6.1",
    "eslint": "^9",
    "eslint-config-prettier": "^10",
    "pkgroll": "^2.14.2",
    "release-it": "^19.0.4",
    "shx": "^0.3.3",
    "ts-node": "^10",
    "tsx": "^4.20.3",
    "typescript": "^5",
    "vitest": "^3.2.4"
  },
  "resolutions": {
    "whatwg-url": "14.2.0",
    "parse-path": "7.0.3",
    "@types/parse-path": "7.0.3"
  },
  "publishConfig": {
    "registry": "https://registry.npmjs.org"
  },
  "packageManager": "bun@1.3.3"
}
