{"_id":"claudeputer","_rev":"72-a5e50b1991ba742691606ad0f7b8c0b5","name":"claudeputer","dist-tags":{"latest":"1.1.77"},"versions":{"1.1.3":{"name":"claudeputer","version":"1.1.3","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.3","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"db601d95d11309a46c27e754679c901ce6cd907b","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.3.tgz","fileCount":64,"integrity":"sha512-dlCNgDNMAeKd3vGS1/+hWIdCP/dguMHbP4rN5hGniVd3YCCr0xOU6+p824mRsU8ZR1sMFFWyLBx+MLX2XvIaWw==","signatures":[{"sig":"MEUCIGqTQay6oPe26W/4L8OqttFZNMKb+YAcxRGXPSD20rhHAiEAkcDBUkGcx7vGt2SSRCH106UkQM1qysRaHrKWGxFju10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112630136},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"bbdbf7c73adbf2d6f622c70f33183715e650dad7","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.3_1783569637722_0.8190364504307479","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"claudeputer","version":"1.1.4","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.4","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"a0b4e083725fcd70047db84c3700765d81fd3b36","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.4.tgz","fileCount":65,"integrity":"sha512-YzHdogQgoqZvmaMcR/0s8+VQlorCoZZ2ggoIeCTGzXB0sK/FzYRLxxk6kBRCssOa30rfT8fgSu7pM6nOTwcUAA==","signatures":[{"sig":"MEQCIEQ/wgbAA9bhZ7XIjjnWMRAdULN4SqIFF6LTrOjaAndaAiAM6rgg0uw8C0jap4t4u9lr0kBBcXaKQOfkRyjhs06zaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112628362},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"154896e343705929341475d689ae1a11adaeba0a","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.4_1783617354247_0.8959462605448718","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"claudeputer","version":"1.1.5","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.5","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"2d2e3093a83657b231821401b053e7fbdb555e93","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.5.tgz","fileCount":65,"integrity":"sha512-YJ884rHwrT5Q1asZZmcyBiRcLIqn1YoNmz0Zq6lBwbrIwcjI6md+7SyyoxLrtUiED6KYLvr3CppIjdtW7ODLCw==","signatures":[{"sig":"MEQCIG5wgWI+D4jy3BNi8oKqEy0Fr4gKQEmdErV7XttrjpTYAiBDtCEU/w8GBNg5g2ugs5VBzyxA/KgIL2WRhSrtS118KQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112628466},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"0cdb6ccba46150dbce6c0afafa0434ecbaeba1ab","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.5_1783618369282_0.5269637949779289","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"claudeputer","version":"1.1.6","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.6","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"9a5170e998b9280d1514e7b862b584300f819601","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.6.tgz","fileCount":66,"integrity":"sha512-Vqo4prqrZE4i563vW4wCsRCgv//ycrhd6uuzCFtzm09BtQAwp8WPOPE7ws9hvOduBd6qYZyGI5lVE6qihWR/2Q==","signatures":[{"sig":"MEUCIQDXcBihVKjZUMroBmdjMIOmSV5iC31kxdj7JKni9BGVIwIgKJ0GVJg9wRZpSZ0IxP1vF2UcTDTPyDAxjsBQi90ZQEo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112716503},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"2e7f695204e7b4de4b8dc0e3b5f89013e706d5a7","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"workspace:*","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.6_1783791369266_0.5686860269001359","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"claudeputer","version":"1.1.7","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.7","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"26463f4cebbc93fa1428257077a2e2bf6c072d6d","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.7.tgz","fileCount":67,"integrity":"sha512-ndq5Eq0lcrlfkqUiAUlU8+R6At1+raZFZF/VUqhdkzJdPI/FJRyctQap1j1aodmEnoPbEH7ZXGo0B7VdivXZRg==","signatures":[{"sig":"MEUCIQC0gA3wDrKrWlZ8Irxf8Wp0GFONweTdfbzHPc2sVo8crQIgcgeNhqXuFEgn4Iln1s4yOqhhC8quXv8LPqrPo6KXTsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112822405},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"1c8d46a8b380d9c9cb8eab8e443bca0671f17f85","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.7_1784564199337_0.8874353554262315","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"claudeputer","version":"1.1.8","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.8","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"9eca59a143f6e82560b66743adf6522cc6304e7f","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.8.tgz","fileCount":67,"integrity":"sha512-PRLTQsjHxOP42SWCfRW18Au5X6zrH/+/5kSXWuazCFH2YRM0YxP7BSPsXKVNqZGfKGL4kFaPLqX0bCP69v8k1w==","signatures":[{"sig":"MEYCIQDdhN+aJA1sOG6+R822lJVHBNj7OXIIqsknKwxP4f71xwIhANmWbOFWX+MlEPu+SbM4bdkmtMRbZBkrYroyPDG27XjY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112872230},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"7f66a935f5ef1936eb28ac2d34b1233ffa9c8b87","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.8_1784665588810_0.8214617398430253","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"claudeputer","version":"1.1.9","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.9","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"8d83036e5aa0716cb850799bc08b21329e810970","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.9.tgz","fileCount":67,"integrity":"sha512-tummPIiB89tl9KJH88AdhSC4PPHYX6yJuK3yjxRqiE/M6P20s87X+04mg6gLch+hOcQTYJ2lZHKJNI+kSZ9c7Q==","signatures":[{"sig":"MEQCIF3Xd08WHO2r1Cy6N9fVZ0Ri39hOpImZWcPLg2wV/0bbAiAiYyN9iB/haAatuH0OU2xhtOBtx5OP90Q1MYxCLhDp6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112908134},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.9_1784688492204_0.3363689266499772","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"claudeputer","version":"1.1.10","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.10","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"89ee8b7d28ead7e2c2346522bb6fb318d814159b","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.10.tgz","fileCount":67,"integrity":"sha512-SrgZNiUTY6eNJq1XPPICRPN64Oevq1dTSicbu/QmpxFNm0YmyhNvgMtxCw5ZzN47pQRBNzeAFiRtiXfDoW0S3w==","signatures":[{"sig":"MEQCIEUYTlNf7jBu7eNqQk++jC/I+oJysOfhCql8VwoA6fVyAiBWKW6sZG5iUGGQohmHLiwTrv5mhKTKrH49WbloAqj/Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112937845},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"1db617f8bc52f844acec9908f958ddd0da436b31","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.10_1784915359437_0.6383785363063801","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"claudeputer","version":"1.1.11","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.11","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"6607dfb8b43d83755c3ca3ef23eaf4ff62841ad6","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.11.tgz","fileCount":67,"integrity":"sha512-hiTTJ1aL9SwhY7yD57pCNMZPklEAhsmMWKzWViFtKLRXGo/UfWA6DZiQorbVUnBZ5/RIMwK4yMiqOrjxgK/5ZA==","signatures":[{"sig":"MEYCIQDUYQ7xkBrw6D5r+6Jm5rcwCNdIIdLr77+Uc1gnLLIrWwIhAKF4Tz/4/zGgIGY/dbVPsK6ElE7sLiUgZ1pvL2Lc8ewz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112953117},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"91b64608421cf9965f89a960b068f728f41fc096","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.11_1785344666738_0.3796742630667398","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"claudeputer","version":"1.1.12","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.12","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"7cddd3f810b340f33d904355a97aa6412d1d9d13","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.12.tgz","fileCount":67,"integrity":"sha512-J7ahdYtbi3Y180M5CdacWmDI+6l+9APMJQ8WZBFNeTX9PAtc/BWLrN/dLEZ4qDKOJu2euA/RjbwJzOnDs7kmDQ==","signatures":[{"sig":"MEQCIDjdE2le5goqUM7VA17hNDN18xggbyFs68QXdTQQNrwMAiAh15MNpea4+ub6fqrI05P/JHaEBqkHfRUSUmSwdeK0Ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112997916},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"158525dfd4346c111be627fdca06df0ae129c1c1","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.12_1785385080157_0.00473401162252296","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"claudeputer","version":"1.1.13","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.13","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"cf66aead0a93fa0cb2ce023d724853fbccdc2592","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.13.tgz","fileCount":68,"integrity":"sha512-H8Thg02qqCGea4t/qOY219CyCMlRBpedOZ2Og1wyz8dLhtxCKwdvEiCuwtOMsUGTJ0AeTFZh0m9clrVu2FQi0w==","signatures":[{"sig":"MEUCICguoWymgmV8UQqY34XABthd5WgtrkrXL0/e/U79Bp5wAiEAsLxe25i3n19RVvsXoMmbDrCrm9iTuxXuxRWWdJrw9ZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113028027},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.13_1786468438257_0.35486140774526276","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"claudeputer","version":"1.1.14","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.14","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"6a482e7977bf15bba14451ed72bbd2be689352bf","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.14.tgz","fileCount":68,"integrity":"sha512-stYeD0ojnIEriubNad/wE6im6QVXWm+IOaUvx55pwDu39XVRMpumA5+fY+pHCFPL6owuU4CjZolgi/egESW8vw==","signatures":[{"sig":"MEUCIHud8JoqQfZGC9Fui4wvP+XJQ8J4uYrTQ+S8FmCi04b9AiEAmFPX49LJXFbVXFQfMibLeUONCKJodsTFqRKCGyzGtGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113035685},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.14_1786703548523_0.3124915235053318","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"claudeputer","version":"1.1.15","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.15","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"2811886a731109c57b84e8aaeb3716034a9957cf","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.15.tgz","fileCount":68,"integrity":"sha512-nEFKNNUq1ZRd6MjjRhmFyAcAI/x/RfJ6RYIxR7pTwsNEfTxqBEn6VSdN/Yg+vJyxoJYpk9CiY3upC7woBdIIEw==","signatures":[{"sig":"MEYCIQDkbB39H5m759pJ2I4bBNSBNABuObTTOh9flCaogeSvQgIhAIfDR2+PCi8lI2KeKWKRzRZIMxBppFd69o+PhtEf/CdV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113118477},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.15_1786851650355_0.7114657399701376","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"claudeputer","version":"1.1.16","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.16","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"84d97bf0832e9f4fa8e1babd1c11edc4ef274167","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.16.tgz","fileCount":68,"integrity":"sha512-IvvfuYuzz99Y55dVyNrku2KWy+XLAH8ZG1fX2dFDG0dd3hKYDbzyzJPxrTjbyF0OkqctfIgyrckmB52U32fwdA==","signatures":[{"sig":"MEYCIQD1KywsiRVL9DlCc0ky1JY2gcxDvuQXd/m1gEEXUJODNwIhAMmB/ap0JgPClJDtxMkyaQZjVTYZ1bZ4JUbB+PSxQbfC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113119487},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.16_1786852133809_0.46240371290904636","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"claudeputer","version":"1.1.17","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.17","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"3dea88f270648f7b45b06b4558b2e93585194360","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.17.tgz","fileCount":68,"integrity":"sha512-NUAm9Et0RkyjKqENdP07gerVhjrtp1yzbAJp4w1Bitth7mQIeFdUCXjo81ZZLeBysjBiVN55xju7rfKdWqwdVQ==","signatures":[{"sig":"MEQCIDCZrNzsl+JvKvPudlmplepycP0nan9IWXrD+ZI4oPJCAiABueQ27L7MtNKtJajEL4pV21JG/iRd5a08c2ogSpJkZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113119569},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.17_1786852431904_0.02583532733936278","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"claudeputer","version":"1.1.18","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.18","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"cb8df034a0749e9852c5b8a35e3cf255ce25f9ab","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.18.tgz","fileCount":68,"integrity":"sha512-/yLRJ7EYcTvHooFKkb3Qm4aJ/3JwSkiNtOjt/FRs8Ns3TbwBiTeMYGprYkLtch9ZqM+LYdbpltDagfucCaSeLQ==","signatures":[{"sig":"MEQCIAf2fWLpTy6IQjhKhKSP4wfdtgZMmnxhz+/FEPql3UAwAiAcY6L1HMHQIXtm6za2cHZehx9CPZbKcJvcghy0d0SQng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113138408},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","setup:dev":"node scripts/setup-dev.cjs","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run build && $npm_execpath test","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.18_1787023202421_0.9261029160735152","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"claudeputer","version":"1.1.19","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.19","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"a8a369624aa0af3bc95b1897c3144943724d3f06","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.19.tgz","fileCount":69,"integrity":"sha512-rFPT7WKT1qTiqTeYIwjkKf3DNNkvYUUjmo+uNL2RBkXLN5s5Vcyejohc3Kxh+tfUl8r+b3nkCFPYnMLlss5nSg==","signatures":[{"sig":"MEYCIQDZQ5hUZ6rAMnOy6aHBUtj9YbNjjZu3YkDazpeBiboeigIhAL5ek/wT4+EyxV6YooWYG+GQGbBKOUoVHtEIGO5k77ZW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113145797},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"^0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.19_1787259917873_0.16834491160207476","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"name":"claudeputer","version":"1.1.20","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.20","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"898d865950623b6e2f355b93cfcf3b4efb252fd7","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.20.tgz","fileCount":70,"integrity":"sha512-UIljh91QKeFYvGWsPRqv6hxXrLXUFTHrI7FuNlXjJQHpZPH4k617H1jVbx2wsByrRok/r4B3l6acPzg4MNcEJg==","signatures":[{"sig":"MEUCIGq0dgkpyLFfxYZY9DIXMtLiBRXpYfdeu9+k3LEan16FAiEA6R3IRKYQ9dWlju5x4FtiSr/huHwcoyRVT3LZvOymDCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113189356},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.20_1787284301775_0.8083492485470629","host":"s3://npm-registry-packages-npm-production"}},"1.1.21":{"name":"claudeputer","version":"1.1.21","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.21","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"ba9e0e2de17816f1814c7c3068c309ec7de07288","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.21.tgz","fileCount":70,"integrity":"sha512-n53JZANA1CMMnKp4vj4MbKssTFAQHydRImIpgCV/nEKCwygr7htCzeJEyOG47Ht0pwNTI+oeCP3AjFQHtMiGQQ==","signatures":[{"sig":"MEUCIQC1R7bgSQmQdwmHQbwt2bIVTzZQg+UNxcT6rVO92hKi9wIgFz3Q2xmH3X8U/jHOKYSbPOYfb3pB3v4YHgh48RV5jrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113205550},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.21_1787418267556_0.28728995345181185","host":"s3://npm-registry-packages-npm-production"}},"1.1.22":{"name":"claudeputer","version":"1.1.22","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.22","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"c9427dbcceb10f67396629b71b6b5ecf7362e1ac","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.22.tgz","fileCount":70,"integrity":"sha512-vr7p52dBYwWqK5TToMAIzb15fs1Rj6vrcKA0eZdeE8BWELca2vP8dbblsmxvBK1llBiFo8bdQ/RZZIv2RrfiVw==","signatures":[{"sig":"MEUCIQCXD0jiLOZmHqWMkz5ioFuonEl5AgRPrzSmjWb1i5m7nQIgBX6sbObs8lM2lXjyP4cqcYoqmISJx/lir4dAHfxFJ+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113208804},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.22_1787421499877_0.8495992577604226","host":"s3://npm-registry-packages-npm-production"}},"1.1.23":{"name":"claudeputer","version":"1.1.23","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.23","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"a7283b9d9b2c98312c1283bf58ea72dec8792170","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.23.tgz","fileCount":70,"integrity":"sha512-nom0lUsxDn5GuBzg4VZiSXpTvL1pkBotA9qGJZnUbIaHeG6F5DLQ7WL3NL+/im3S89ZciTHg0Hxxyia1xSsfSQ==","signatures":[{"sig":"MEQCIFUiTF0Sx5eZTQcInX1DY1g8fgjVO+By1475qB+lwaLDAiA05f0YPig/28Sy1YJUps8VZQvmEWz8h+FoSbAqTF0Rwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113218079},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.23_1787854176258_0.09492237802570469","host":"s3://npm-registry-packages-npm-production"}},"1.1.24":{"name":"claudeputer","version":"1.1.24","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.24","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"f25b884324ee0683ce7120b2f3ad7a6e301c1cab","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.24.tgz","fileCount":70,"integrity":"sha512-ZreYSOVMNblZoXKpmPBe+zXjMAMT1CPAZvZxTbAUzTzk4qqTsbvvFk+t479ReoXg4sOlAoSuDw1eCM98oqBxRA==","signatures":[{"sig":"MEYCIQDZBSk0c4FUAk7Ik5zBNQR48J3xWoTqBmA2vn/U4CbsQQIhAPrFrgGU8P+6IOY4cD5omEXTX2wO7Uqu7ulWKdzBO3IY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113226202},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"bb8100abd3000a346c095c5306ec156d95602a85","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.24_1787927188146_0.8465326543122249","host":"s3://npm-registry-packages-npm-production"}},"1.1.25":{"name":"claudeputer","version":"1.1.25","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.25","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"dc43f819a5f62f9df6a3fbade345e042a8225e1a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.25.tgz","fileCount":70,"integrity":"sha512-Z8i/8HmpYMsOlOITrHkM4QeP81z8aYwOMIBo/EXlT1AliIHY0JUq0xNIUbh8Ff0pLdCydAz3vdjIx6Zy+EYA0Q==","signatures":[{"sig":"MEYCIQDVDx31Y+JJ/DlpOk+mo7fiBOc7+3qvgQmYtJ149F+P5gIhAPqRqcOH4BhkDMw0OZlZQvGo4udw7yFxsEawCepQObSP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113231178},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.25_1787961906498_0.6308888980355172","host":"s3://npm-registry-packages-npm-production"}},"1.1.26":{"name":"claudeputer","version":"1.1.26","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.26","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"05b788c0fb9b15fa34d941f380b5553a1ca546b6","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.26.tgz","fileCount":70,"integrity":"sha512-q/5BegbFfLDNjPubbMGahoVsC9U54KY7gH93QK0xjJQPX/kZ6OU+IQr7st0PMoqwnk3ISBG0Vu7qdvpuGIDDtw==","signatures":[{"sig":"MEUCIQDR4Of27boHPhrd5u1MPKBtyo47mlC+XY+3Ea/a4Rr1ewIgVbnkbMTYTs00AxkMs/GYsDTqx7dKHrz1S9KwZTGC4+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113232042},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.26_1787967005338_0.2348783629777782","host":"s3://npm-registry-packages-npm-production"}},"1.1.27":{"name":"claudeputer","version":"1.1.27","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.27","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"d28a1ef35d305f4f10fd98a8afc29764e87a7d4c","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.27.tgz","fileCount":70,"integrity":"sha512-2aROaLU0VwcmDZ8+KIgrZB2lhp6gfWTWr738A49U5VHJgQPt8/IykHF06SN3lwdMYe6hrhupVthESQCdB64RBw==","signatures":[{"sig":"MEYCIQCWNAql7rbxi5JmPiLWZEzcN4HBc/ql+7OeKOl66+piHwIhANx4NcHP4yKFlbE2+/iIRiIeWJUKyQNNB3sxvrxLFRRg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113238136},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.27_1787999224422_0.49269959360356563","host":"s3://npm-registry-packages-npm-production"}},"1.1.28":{"name":"claudeputer","version":"1.1.28","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.28","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"627aab6a5e4e46d787cf20bdb7c8d3fdf8b8c5cf","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.28.tgz","fileCount":70,"integrity":"sha512-OBJKrHpEtsS7MHOB5gu9LRrze4NqwbAtUHGM/7Ed+XDlcXDZk25tGM+o4N474xDfDoxFngu6i/9qphxy35f1QQ==","signatures":[{"sig":"MEQCIAhfYKeOZXmikYFiWC+CPnhjUfSuEg4ujuQoYt7700iUAiBOvV4JRWMQ8X75X7Ld6Ir05lxSJvPJ6QCl/de+9XpAHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113242116},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"0a3ea492655a1ae4bb84b3d305855383cfad9622","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.28_1788015745132_0.95098909867063","host":"s3://npm-registry-packages-npm-production"}},"1.1.29":{"name":"claudeputer","version":"1.1.29","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.29","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"1b274d66d1217c5d6585ff0b5228b4e6a952ea19","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.29.tgz","fileCount":70,"integrity":"sha512-y1BU7lO+s3WR1zXRL7jKpponpVCTc1XS0jDpaxeZFAH//AgBAiJKQVqhpnxOlqIYJEMOL9I/bCvBOCuy5mCXyA==","signatures":[{"sig":"MEQCIC/T/TTzvFMC85OSYU/MYVtPcR9vvYl39ts43bvYopWGAiA7PUthmkBzSG7tFuhrvqh8OEjqVOoJUlmvIzzby6y4zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113242736},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.29_1788189092925_0.6372497195597688","host":"s3://npm-registry-packages-npm-production"}},"1.1.30":{"name":"claudeputer","version":"1.1.30","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.30","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"1ee747ac267e9acd0d183da585e6efb95424203f","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.30.tgz","fileCount":70,"integrity":"sha512-PBt2WFT5ToKjbevhKSnfNZ1yyxG/dWkwcp0PqNcSBccBq1t+lGtPOQSsOBpW8blNfZSsA5mrzX9/cA/E+bI2Jw==","signatures":[{"sig":"MEUCIQDB48QadLUJL8l3xBE5jA4ezlWPKdNz8qeG+uh+dU0/nAIgbQqNa+/r4B3xP+/ktHe8t4bfgtOV/aNADDw/6UEKEbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113248020},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.30_1788232546625_0.3185081715508786","host":"s3://npm-registry-packages-npm-production"}},"1.1.31":{"name":"claudeputer","version":"1.1.31","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.31","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"507a229a2d8af4b0e1720f8e11227fa141ff9229","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.31.tgz","fileCount":70,"integrity":"sha512-fXcFvFtDD47FUQ1cCgs/7ACP9/to5K5P6JTOxXbkCFyTwJyVa1bGjXSbCQYkZ3bJ6nIUIEPP8iW3JxcfLSoHOQ==","signatures":[{"sig":"MEQCIEJ25YwcFwaeqe1EdZEynPxTjJa1l3JfQmnK8zX+eMEXAiB+IAxYO+tDPD53nRdHbs+AbYsoYj+j8S1klKaJ0smDGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113249562},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.31_1788254623349_0.42636661471408943","host":"s3://npm-registry-packages-npm-production"}},"1.1.32":{"name":"claudeputer","version":"1.1.32","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.32","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"3a1a7715708e56dd10e0267f5648b805464918f0","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.32.tgz","fileCount":70,"integrity":"sha512-TjyycCEWNfWoEfrCt8toHsa+w7qIOEh8d+FNCrIOl/NdY/PfdydaGNtNVk6wO7OMNSeYt1buf+bf2wbtd31l3g==","signatures":[{"sig":"MEUCIQCVRFlJCKbROMg/XP2bRJypdj5uW6GWMrHc4JHa20ympAIgf8ZdiVd7wuHXMaR/hS7a9P0zUHkMlSqhUqK55qnkl6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113253436},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.32_1788259792792_0.6733259129396092","host":"s3://npm-registry-packages-npm-production"}},"1.1.33":{"name":"claudeputer","version":"1.1.33","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.33","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"14eba25b8028494456608d837575df04e3336c52","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.33.tgz","fileCount":70,"integrity":"sha512-s7d5YCZmkwNoNArci7NiGTgZpB2+rIaQno2bfF0UPDTD+L5SLiKNV+JoNQdHRrs7RKEpQjDZYo4wMcT+92wbvQ==","signatures":[{"sig":"MEYCIQCSbRdGIcw7lIaD36BnMo2R53zGBzZ+kxaPsru7j0W97gIhAKraRkTVKtkH98uXdN73b96OMa27VGJXPv+GSDKnE7Eu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113254040},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.33_1788268461093_0.6626040978295034","host":"s3://npm-registry-packages-npm-production"}},"1.1.34":{"name":"claudeputer","version":"1.1.34","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.34","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"ed32a172745761238c54aa41565b8592a1e5f581","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.34.tgz","fileCount":70,"integrity":"sha512-zdwHURIDOk6DJuqTZV2+dv7Qf82gLHKtc5o6eMGMDQZWAh0TlYQgPqrM6xgRkaagViBNFJPJnpCCAufwLy564w==","signatures":[{"sig":"MEUCIQDRKmlY9B4e/wFhDo0hyxJxiq+bFyx4GXcPiHu0W01yWwIgUr0JReqxp2uICJo0anYW7t9IbLT0KkPuFbrdQtibn3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113254694},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.34_1788305774280_0.5728917555671766","host":"s3://npm-registry-packages-npm-production"}},"1.1.35":{"name":"claudeputer","version":"1.1.35","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.35","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"3ccc29d2c328a75862048264cc664aad15c7b8a1","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.35.tgz","fileCount":70,"integrity":"sha512-RT8hFLpx8PGE4zBeNwvXgga+wPX8iVvfT/BtLQL3wfWpE6Xjl1iU4WxMeuIOkiGtNnDEAk7cyv5Fe6nUDuwalg==","signatures":[{"sig":"MEUCIDX7Jgf8Or8HEl6hm/Qg/YNzNoie0De6Pq2CclpFI40lAiEA3vO+J3W9KKrlWyL6afpnSxtjcfBIJf+lKqH5ZWwxkaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113261086},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.35_1788306833538_0.10863054080903489","host":"s3://npm-registry-packages-npm-production"}},"1.1.36":{"name":"claudeputer","version":"1.1.36","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.36","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"16620227fca576a5b04ad681a6de09da95aa96bc","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.36.tgz","fileCount":70,"integrity":"sha512-8R4+3gdQXQW0PHvQjgH5tE5gkDoPAB9CFBeBosb0p27dkYyN6QOzjXQmHklD0d12P4906vIpY2OXJosRE65S9A==","signatures":[{"sig":"MEQCIAbQZsTEtL/TNppGGklPUpsuI5j2x2x7ub9Qf427WZLRAiBe9hJ72/c0svtqeEdH0Ct+FRJWV/fTcuKGhWeu8Jq56w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113272775},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.36_1788343946910_0.6215320514663116","host":"s3://npm-registry-packages-npm-production"}},"1.1.37":{"name":"claudeputer","version":"1.1.37","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.37","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"f158af299adf2ff4fe9141c3b6b24ef543a16b4a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.37.tgz","fileCount":70,"integrity":"sha512-F6dpfeAA07a57yu9RFK/+nt6h6XAjiuKeN03hi2gQA13fuLyhYq6tZCtjFd6E9oxJ7TIBcT+PB9dPITZYAZ+gg==","signatures":[{"sig":"MEYCIQDoM6eidJqxpvrRbxKHEcqudi7HjO4zFFY0f6KRkaRw7gIhAJrrfVZdLjlHag8U8c/xmdQqJBwPGczL2JqgG4RZuO5e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113272771},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"3de1019e6952ac4fcc856240bb4d0fec4f208a8c","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.37_1788552047825_0.7224197316820715","host":"s3://npm-registry-packages-npm-production"}},"1.1.38":{"name":"claudeputer","version":"1.1.38","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.38","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"245af1e1b1410c15b2b046643191ab56829c043d","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.38.tgz","fileCount":70,"integrity":"sha512-oLCEgBqo2LrGUOe4oh2IN1rBPsu9CVciwfWFFK+S/c4C++66jJPTN+bGihpAVMxP53x1Bs892S3R0AQp+LHTmA==","signatures":[{"sig":"MEUCIQDubJTE358K3htXy5oG3+g10at/yww9w4TsHNBHTDxP0gIgc6NgJmSLr/kOh4yA55tq31x2gkRTBCcciqq4wpiLpX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113275827},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"b57eec0a442c6d59dde258384ebddd54617e91e1","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.38_1788556622406_0.8366719203428723","host":"s3://npm-registry-packages-npm-production"}},"1.1.39":{"name":"claudeputer","version":"1.1.39","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.39","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"52b149e33269c3dfa37054569627b291de4baf04","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.39.tgz","fileCount":70,"integrity":"sha512-WA2fmIxFC+mr8yQe6BG9599UB6QdXjiPPhwo5Zxx+HSkWLt1yCWU3Gnaaa0Oo3sPNa0AuNidb9LSxftlpbqTqw==","signatures":[{"sig":"MEUCIQC4Z5AIHlgNsxGwfQRAQ12t+jjMttzqcXU9HTyrt+OLaQIgKCe61GJjuXl5AZgNpN5FOcwMhlQkRyNBrg3KDAvaEIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113276705},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"fce6b32c754a70eb54e36e7714243fb3aad48d41","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.39_1788610631574_0.1737101411760109","host":"s3://npm-registry-packages-npm-production"}},"1.1.40":{"name":"claudeputer","version":"1.1.40","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.40","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"2df42806753a8adfb2bb0ff103662fd324121f79","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.40.tgz","fileCount":70,"integrity":"sha512-2EtSrTdkqf9HP/uZbDo5ayWub4Z9/lYxraShf+vbChiBNyEyJ6LwjpceqUUqe+KuNWuypiKryjQ6G0jTP6SsLg==","signatures":[{"sig":"MEUCIQCFuYe92GAl4tGaJuTof1kyOc2vIYdZmJZgLf/+OOwEAAIgKntge+US57fknmZa1TxX+0L8c0yjDCfVJJ+jt8X+kpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113277083},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"e25e070b3f02f31b737e19e7d4ad1f3a91900136","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.40_1788631456997_0.32445467518078197","host":"s3://npm-registry-packages-npm-production"}},"1.1.41":{"name":"claudeputer","version":"1.1.41","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.41","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"797813acf3ff16d14a83f332ec44b5c14ffb511a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.41.tgz","fileCount":70,"integrity":"sha512-wesEJzn9kUPQIBNdmqTYv6Z5ZejMvTs3AEuSNdvi+m76i4pQuvOS1o+bnkni3YuxEAG/Exdiwmq0DWVXpm/TAw==","signatures":[{"sig":"MEYCIQCteq0Cmg/0j6Jk7C9GB8QQj5Lxdc57EZKRqLacQfOftQIhAPTeXGr69cZmCKu1SxYH3xHeAn4UebxiOpk/odby24ht","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113276549},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"c76d8fd285c66af14b081d3287b844bd45b30358","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.41_1788699540280_0.9603402082374328","host":"s3://npm-registry-packages-npm-production"}},"1.1.42":{"name":"claudeputer","version":"1.1.42","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.42","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"714b692acf53425e710e454c3b6ec3f9468eaec8","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.42.tgz","fileCount":70,"integrity":"sha512-yjmn6kmBNpYd1WHoMjnVSkYeEg6d50Xn7XIEr+VozgiAtAMQmpr6ULrNBbrseJTmDZkGiZ0oPO/WzsgOLD0y0g==","signatures":[{"sig":"MEUCIQCMWwOP3N68gKo8RwOcor9EGIrWFaOdNZKDIqdCmaEZmAIgLYXPy2Iap0W+fMyqLNKYHGbRsE6OpB4NTMDCp6UW8Qk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113278673},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"46ce85edf9ef7ae8f2b4af5683370dada61caf50","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.42_1788893056060_0.6333639152116999","host":"s3://npm-registry-packages-npm-production"}},"1.1.43":{"name":"claudeputer","version":"1.1.43","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.43","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"acf55024a422709cce03fc35d3cb65b4e2f48563","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.43.tgz","fileCount":70,"integrity":"sha512-2BAJIte1GLPe8fK//G1pSDQNOFHqdcmEkEyFHBDThz1S61Wos9SFF08vtXfJSfsXQ71+lSFg9G9X8QApCmNdTA==","signatures":[{"sig":"MEQCIDQz1Aq7KxzFaVVShQznsE1hpPn97xepz1s1w2sQccNUAiAVZlBNc4/XxAdHvyWJ9tvddU1jNi+AhwGlr6W7XgtFxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113290716},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.43_1788973900271_0.560965248118382","host":"s3://npm-registry-packages-npm-production"}},"1.1.44":{"name":"claudeputer","version":"1.1.44","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.44","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"2cc153ba1336fe883bf374012f7d60fb2a10fefd","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.44.tgz","fileCount":70,"integrity":"sha512-pc4SlJO38jWly7ZAQuMEKRWM7/+3qWlS5j0SeKGmoaRvfSgWkLtlGk4TAwHC46BmvXmZM6ZrYhzZqxWRwze19A==","signatures":[{"sig":"MEUCIQDOHCrVn69uOkTcwgaOI7c3iEj7hJCyYETsn3Xlz4g8QwIgWwAo2nRZyTeYQb+eudeiUcdl8C0YxuZKxp5D34rPKZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113293552},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"2e52cacbee458e2c50b88553a1ffaf765ea8e825","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.44_1789041702670_0.98932356956502","host":"s3://npm-registry-packages-npm-production"}},"1.1.45":{"name":"claudeputer","version":"1.1.45","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.45","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"e3ed98e6fb582cf577c0ccf5253bb8d2b2815b0d","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.45.tgz","fileCount":74,"integrity":"sha512-DWCJEEk8ueyDXBTSUbSohcDGkKka9yQId1J8IjeLRDmTcn17OwQ/xUP5/edpsVKsz9hQdl9jQFtkJjYWLNpc4g==","signatures":[{"sig":"MEUCIAwuOGKFj25bzFvGmLMS2bITg0YwGv3xkiHIZdYYbVUPAiEAv0xG7bB9qyPvBHhSrEmIcQ3qe7/u1hJ9stC6uVEOLoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113361079},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.45_1789050441766_0.7403610439883219","host":"s3://npm-registry-packages-npm-production"}},"1.1.46":{"name":"claudeputer","version":"1.1.46","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.46","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"163da43560f4f2c982e39b8388ff2e19583c6b89","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.46.tgz","fileCount":74,"integrity":"sha512-EhMPTMfIk3Q+zBHUUmfSsVRq0uywGHyXs9BzwHZ+8RRgtqXYvkPpmIM5xR93szwKWvZdWCKwysqHIIqFqVRhAg==","signatures":[{"sig":"MEQCIA0IMsP2xSp8uH+WSwRre2pdGpIoOv2qZTVF0CzbSb1OAiAFz3EMCGRJsD9nsLvVk9qwuNskPOqaUf+rEDDkQscyqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113369405},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"9f4b4fda7513b5110fddfddb446cf62729ef4ab5","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.46_1789063916492_0.9364849427208506","host":"s3://npm-registry-packages-npm-production"}},"1.1.47":{"name":"claudeputer","version":"1.1.47","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.47","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"249ea445e3992b8397050a9294852a8142107c82","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.47.tgz","fileCount":74,"integrity":"sha512-O9IW6obLOfY0RTb/Wyi9wQAY9P7DJkC7c7xjAOjPVXgK1ZkdckP2hlhMjPIFefNw869TzGztg0BmvzcYDtLm2Q==","signatures":[{"sig":"MEUCIHurP94z8zHdIFRGon8GwosJ4x//9PTVLl6trXuOKx2oAiEAiWTVUrephxhlhXgoSJiZtxAlPdZcLxxug9brpyjnIaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113372447},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","test:package":"node scripts/package-smoke.cjs","prepublishOnly":"$npm_execpath run test:unit && $npm_execpath run test:package","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.47_1789069684544_0.7133083444905903","host":"s3://npm-registry-packages-npm-production"}},"1.1.48":{"name":"claudeputer","version":"1.1.48","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.48","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"03b1c3c669e7960e9a27e794d3af3a6a1ffe2a21","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.48.tgz","fileCount":70,"integrity":"sha512-jl33cz9cpL2d1gz5rnmXXUXon4ZKIG/WIKmFlPjETQ1MJMDxzkQBevzPFMecqZ/xQq6C2KfGp4kKV2dM7u/vxg==","signatures":[{"sig":"MEQCICxKkhG4FG2apeaXiQWGLDe9aHS3/LuiVmJZi0cOsnHWAiAJ2M6JSRHjCI9MX1tyGNfLYdzpGraKkeAHY4AQ2C3zsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113353213},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"d9189edddde9e7ca7242a6066f7761a448f0484f","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.48_1789133215706_0.8247097928439728","host":"s3://npm-registry-packages-npm-production"}},"1.1.49":{"name":"claudeputer","version":"1.1.49","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.49","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"aa89e206628c6e9947fc9404eedce05203fb44b2","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.49.tgz","fileCount":70,"integrity":"sha512-2l9IQZhI2ZOkMgGt7UFDJPprm7jRyaAto83NoHv8SlDQsCKtRsZrU1mkoeOa290rpO25Ixe1iJLvu3TmRr2rWA==","signatures":[{"sig":"MEQCIA7YZMji6GA7S9ynDdygGP7zgESMsoD8GQQCZqSbkHHeAiB3pvXcHi+FIzE3Bkm7IuhXUZ25SaDA98+mz9qDxzu/sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113359659},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"a6c418a1dacd2ac20772af9c8230e86711171069","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.49_1789138025190_0.23432918314837714","host":"s3://npm-registry-packages-npm-production"}},"1.1.50":{"name":"claudeputer","version":"1.1.50","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.50","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"4df79b0f198abcdfcfbc467c64601d598eb395bb","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.50.tgz","fileCount":70,"integrity":"sha512-/6cn3gv5FWKfP3S5+cnDqcQ5xIeS7F3TgjKmtIKZyy6oPXb55eoR1ugPg3lRxSJ1TayRmwfuGrkGdvJx81rtVw==","signatures":[{"sig":"MEYCIQCU6EZ7hzgpDbMW3Po7A/u10y7aSmzjI7uc5O621GhYPgIhAL9zGXhKIOir1f1OwYyblMU6g3CgiOTRrJoSsWW6j/oT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113360713},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"1549e2f64b7a94c8775675cdd06293e1e04580eb","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.50_1789138938632_0.6059865696527307","host":"s3://npm-registry-packages-npm-production"}},"1.1.51":{"name":"claudeputer","version":"1.1.51","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.51","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"8be43dfce56ef3e25894adfc9935c817d3e2dc93","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.51.tgz","fileCount":68,"integrity":"sha512-Y4NYO9ni1LuscL8BgoZ6gKPMMsLLV5MlNlqs++VvYK1tQ86JDK8vNj1ARx82p8RgbbQfBkMk3z2x7Zd+WrWkHQ==","signatures":[{"sig":"MEUCIQCJ0GMT5VRSuiS0OFx4fAU0Q9h2ZkN4SkTkwLcgrhYxIwIgYg6CVzK/L/l5Mn7L4a/x/UYyVDjVyQ8Ddeb22ATi/64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113382484},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.51_1789244677874_0.9962337118709883","host":"s3://npm-registry-packages-npm-production"}},"1.1.52":{"name":"claudeputer","version":"1.1.52","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.52","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"5910834c7cdd6901048b86ba7a7200bd5157fe2a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.52.tgz","fileCount":68,"integrity":"sha512-lKAgBTUUaM1HpgDvXVSXuq7IcCYtWYApbLI2z/yBH7/H2+2KjfYplhASVioOjB5j04jTh+aSq24AWMcsQUWMZw==","signatures":[{"sig":"MEQCID2/jGz3sqEmyjY+eDPVIcw2w2TH4ttEWiIrNov53OkaAiBCmrx3o+0nV42cyYQLMhlvSeS5f5XzdrChsypuugrlRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113384060},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"90d455983e7c5a1d080872e676354ef26387c4f7","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.52_1789476310608_0.8262483925473167","host":"s3://npm-registry-packages-npm-production"}},"1.1.53":{"name":"claudeputer","version":"1.1.53","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.53","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"48d6cc18f67f74ae7b140e05597a3e48925bc25b","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.53.tgz","fileCount":68,"integrity":"sha512-RmWqCiXNJ0f6AsSPANF6oAHP4aJIvLKUbKJg/Hzoza7bpJtrY9NZsmu+Nz3G8NovMLJTfTglWlbEIf2BlGBKZw==","signatures":[{"sig":"MEUCIEp/egSqCbLBSrvnhj4G285W7C5ZRiTeQfuRxJc2tx+KAiEA3bReFMOnnp8PjZHRe6dC9impWVWsHqQsDn4+4083LW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113385074},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.53_1789482528061_0.5892974172519341","host":"s3://npm-registry-packages-npm-production"}},"1.1.54":{"name":"claudeputer","version":"1.1.54","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.54","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"d30dd65fdf21a1d9fb35acdff0af089b3bf7b4d5","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.54.tgz","fileCount":68,"integrity":"sha512-TiDjpl12B/znreKBA5IBC9bw6zWyvKbpXFvJVlunHNg5ls3fdWMJMcZUZRq5EXHzXwccJ949WPG1/L+u7j3Glw==","signatures":[{"sig":"MEUCIBUMCkq3SUhPi5BwATA+cOKoEyckyvx0HMuUMp9NgSYwAiEA5cCHRVVviErNKm9EQR0gfFLbvqeP0fmyAaOJnyXpDU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113398252},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"a78229a3c49ebcd1fc9f02adf1d6a41c875e93e9","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.54_1789659904069_0.7541514139167975","host":"s3://npm-registry-packages-npm-production"}},"1.1.55":{"name":"claudeputer","version":"1.1.55","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.55","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"55d550ae999e185322f9d4539835ffb594871176","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.55.tgz","fileCount":68,"integrity":"sha512-GMrW07q+AmLydZzZK55vEk8382s9k5FbHaA+5L08GreLgGVDaqSnbou2L8HdPV0Q8vA1HQ42RvahNuhqHUvbhA==","signatures":[{"sig":"MEUCIQDfsMqxqqYLK3QZqT3QThVnpJ8/PcvNn+CcS9S9717VmQIgXJSaALtJKwEehSROHH+eGfi1vA7rJzZKviS8mJqL3EI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCsZg385xxXsDMBzCIM4pTvs7tkmMYJx/qj1mHRpnTKYwIhAIECdKNbAL9dUEDuRCh5NjGMiC9Jb3CixE00gnyymrMS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113398751},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.55_1789758150682_0.10808641184602097","host":"s3://npm-registry-packages-npm-production"}},"1.1.56":{"name":"claudeputer","version":"1.1.56","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.56","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"46ebdedd9fc8d583fb8cbf4b18cc72ee535ac356","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.56.tgz","fileCount":68,"integrity":"sha512-p7cWqw+jQOLMbGN9a+iPeL2AXcvArpBDWITOenF7VnIgN0NTvbfA0XtWGmx8JVEyfom0gyT3vbFHltlC0Pe2DQ==","signatures":[{"sig":"MEQCIE8m1gtGyoS5NcjhBaq6XGNs6F97iNwRV/LBS+zxyLEiAiAJGspkMaHcIgWe3LxMJIoQRhz3zoK4pR1Ls1l1nAtvbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDNZZbtdSoq6uA2uV2C4ZOYJWxyrFPOdOhoyd7xpm0ORwIgNpW4CySujcHr8y61JLJpBDW0HLGctp7IwAlU7sKhyus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113405578},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.56_1789814999052_0.7095162657703178","host":"s3://npm-registry-packages-npm-production"}},"1.1.57":{"name":"claudeputer","version":"1.1.57","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.57","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"8732596171705f4eb96953d324fb62edaeb24d1d","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.57.tgz","fileCount":68,"integrity":"sha512-PzhtlLVqLV8q3IN68vz69tEm4takcOZ5tOXn9jfU6U4ojwoWKlOwr1VHjuwsSFLJ4jGo8P2sdDKynqo2JJRJSA==","signatures":[{"sig":"MEUCIBLsRAINwSbNVbplpvfy0EES6QRKVwmY7LRj8Jjn+B55AiEAwMRrif5Z2h1LpLSN1uTyB+dnHDDvbtcKY5PUcVQbuXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHdwbNoFQ5bOMMvs8aOc4u3oFb/Y6nxC/p+7jerFxVojAiAH95s/Um7rZgUGGHSNjvqJI5e+gQ6o+YbMwBgBmlOp6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113408482},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.57_1789823317486_0.5522496302825484","host":"s3://npm-registry-packages-npm-production"}},"1.1.58":{"name":"claudeputer","version":"1.1.58","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.58","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"4e1cddd54b37e8fcb3ba7d5d6208b789e2742c14","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.58.tgz","fileCount":68,"integrity":"sha512-UBxoJPWRzfB1R1x78g7pEhpm6ZnKvxm69A1gC3wOuIgkvFF6PPsgVylnjbN2rkNqpjQupRg4eQ7CXia1aM6Q7Q==","signatures":[{"sig":"MEQCIE+DrBPbxKpyu4maByni/wqEnzTOcb3IRHiyWCgftS8eAiAIMufSms3z98YAgLS+cG4+y7c2n0E71lT94m7Gz5RkrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCnhuxtnC3AtEDNt/s/7ybG0+q3swXG7AaKPsU1kJmL0wIgPBX3bS8Z0tYhJhtND+duaUScyKFcdA9W+ET8h5FVuzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113434449},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"eac8c4123e7e447df7abb5ee73764c9887ccbdcf","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.58_1789845309591_0.3817693827440056","host":"s3://npm-registry-packages-npm-production"}},"1.1.59":{"name":"claudeputer","version":"1.1.59","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.59","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"03309165d763d280cebcdb6de917dba6d768ccf0","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.59.tgz","fileCount":68,"integrity":"sha512-LsxT6+NbLlhh2i+qIxXAMvW5KiVmRLKEN7Edpm2Wvhwd79wErR4CCSz6cZK9YOQm6NOKlixyPggZocupUUb5Jw==","signatures":[{"sig":"MEUCIBnFCK0ECMAXkOUo4U9Lu2NzjI7ioWlKhZBiiwLgDVb7AiEAnKB9JdvbnoMoO/enTHzqh6rij2T51EMFHGP8wh5a0uc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCxiee0fd2kf1BxGyi5+DuqP2scNBNuT9KDewBYDT3gVQIhALAe88espRsXbnUdKs75r1KKZT2U3/pPryHHqdqzVduL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113440930},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"e9e53834002eaeabb31359b19a008fe5419d3fb8","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.59_1790015011671_0.17627328753869564","host":"s3://npm-registry-packages-npm-production"}},"1.1.60":{"name":"claudeputer","version":"1.1.60","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.60","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"2063c11a440429372589c2578247563fc3526e6a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.60.tgz","fileCount":68,"integrity":"sha512-vFgfwGfXJZCZNALdruD1JIXSVvc5boJRaLCYs8KuSCH+ncW+hQ3jNYjV192sVk+3Vp8I0OZyTkzTL+GobuR8Ag==","signatures":[{"sig":"MEYCIQCyZYqLipBsQdWX5LJS+CCAk6Flnz9VbtU0bR37kllVGgIhAKCqRHGP2jCXpiQlY6QeVo+iZBCRoCKBlB54XAC+6AUX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCkhzowvOhbpKeaVtEbbjhc4XPqWem78kpOVxvMH3ve0wIhANT988j/+Sr39d8gA50lwBUHm8xlDNKEmG0DQVp4/5Uc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113445168},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"e8081550174545a49f7f4996899db348b9e07850","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.60_1790015516609_0.6210559463930538","host":"s3://npm-registry-packages-npm-production"}},"1.1.64":{"name":"claudeputer","version":"1.1.64","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.64","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"8aa0d37bf5cbef5f155751334537096f2583a92a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.64.tgz","fileCount":68,"integrity":"sha512-IU2uDfVUeaLsdsWddjBNfABIlrG+l90hBuNAjJReyWKZnSnUDvlP1sQ/dzPUO9Av+AiAKdgJPKmkg5mkrQ5kLQ==","signatures":[{"sig":"MEUCIQDAiY7A/2Ril4RP2xH10VM/Ye1xOA19vF6UDS7KSRWx8AIgFfwThs03yMMy/21mWgng8/zj6m8ox+CLgQ1Y25oyUCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDaB1QYVxRzJIGC33GOm5sxv8kSnvRA2FqmmQXWx46LsAiEA4IQAY6L9hzvV6HHggyAiUPRIxkVpElzlmIIzelTrIpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113471929},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"07e442fc1ecc4cd0e86a8d5e6b5aa0746454567d","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.64_1790111285869_0.5244682593639676","host":"s3://npm-registry-packages-npm-production"}},"1.1.65":{"name":"claudeputer","version":"1.1.65","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.65","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"01e16b762c3d4a6011fc0bed8aa9cf835ad264b2","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.65.tgz","fileCount":68,"integrity":"sha512-U/Mg0hfFArjPOfrLhrpaCFzZhD6USnbBu6OGszTTS7ByfRjqY96BS7iy9wUW2eUjQd7wrdmZs9qz9CMXtLpHsQ==","signatures":[{"sig":"MEUCIASiw+Sc1Gbp+Nil8hLZ1v5utDsGdoIusv7gB/7Pnvb0AiEA4/FszHJ38AySItatn5W7BlbuiOmwswHNDcRSbYPPbQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVlQxzVLn4jiR2NS22olMHZZZ4eGMFLQ+SMz5EnI1TtwIgMWemsj5Y0qXdHVJbtXEv3QDcCVb6jkZUVw9yRDQMUxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113473695},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.65_1790118452638_0.9425230479422835","host":"s3://npm-registry-packages-npm-production"}},"1.1.66":{"name":"claudeputer","version":"1.1.66","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.66","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"b6fdb683962c02ab77c0e02d92a4be5189bcb41a","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.66.tgz","fileCount":68,"integrity":"sha512-SNkIbldrlHRTvDEbCWHgLXvH7ybeqYkZH081iwCw9RZHQbbLebErZbtlKvSdqvPCh1KE+WTUUy2WBmU38mRQmg==","signatures":[{"sig":"MEQCIDsWfSaKota67xD6rth+uVLi/oqDG77i8CDmMz9otAPQAiAdOhU1CHqf+1mmpUdqstuM/FMwVfCPa4kkBwmFAM6gOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+lFH1i3tJjQ2lQ7eRWAgumBMxm0y6BxtJGMLZ2ty0twIhAM4Ea0poMIX2mPVKd9nMx25Q+jyzfrr6fjycdIJYT/Fa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113491647},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"f598542a423e2d291dd1df45162b40c0dad6ff5a","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.18.0","description":"Mobile and Web client for Claude Code and Codex (fork of happy)","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.66_1790129159172_0.44538744162944943","host":"s3://npm-registry-packages-npm-production"}},"1.1.67":{"name":"claudeputer","version":"1.1.67","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.67","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"da6648446329fcf653c6cef6ecf09c5b9b6ae5e2","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.67.tgz","fileCount":68,"integrity":"sha512-iiFtEHXfndUSFxl9Lh+qIIH+3advXsbTZb0WL0TDL5P2YndLHcfdwRjTXst8WpuovJqsMmNBph0P5GB96h6Qtw==","signatures":[{"sig":"MEUCIQDV9QlveLy4OOF/fLD5alFptm9nWs7YkeHQ5ShtYo/DtAIgEIP8KmomFpg+LSgUsFoMWOd2L0o0B5feehCTuU02Vio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDqvufwEvLmu3tGaki49ddAXQJ0VtNLLyEE8F1PBCLjGAIgEAYkHhSes15igihR/q1aDr3I0Fyk89Ej4aJv6OkSN4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113491071},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"7bf27093f05541ef681aea093b960cca6d70e022","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"workspace:*","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.67_1790189893547_0.2916973209372449","host":"s3://npm-registry-packages-npm-production"}},"1.1.68":{"name":"claudeputer","version":"1.1.68","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.68","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"a3c207cb9c71678e977354a90010fd9e05b6cd47","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.68.tgz","fileCount":68,"integrity":"sha512-oimucbgj6U0pTyh+QurCW2Ijyd7ybkwesbz8T/s5bNEFmfKT8kN5xQgj/gyRLvMKx4yuSradPOY7EhYnPT8OYQ==","signatures":[{"sig":"MEYCIQCos9uST6z9snxqr79+Gs/4dw8UyIGvptgqBeY7j7/6tQIhAJVN+332JyCJgpSbdhpXJ6s3tdxrRg+2Kb7JBQi8Qx2C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICaQql/Q793W1v6K8JH4UmQaL4BSLceSp0z36YbK4MT7AiEA4SVPWxmBb6JYSMG87PX8iVA/pSqwrMnDXHrCAwJJ1A4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113492986},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.68_1790427542147_0.17890713523889912","host":"s3://npm-registry-packages-npm-production"}},"1.1.69":{"name":"claudeputer","version":"1.1.69","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.69","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"8b3008b57b8d2b0cb76f056742656cc3834e95d8","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.69.tgz","fileCount":68,"integrity":"sha512-hDua+l89W0tkeE7/jybHK2oN4VIMUvC/SFRsdPWztejMpq6SuSTaqkPNe0J9u5C8vbVedOaia4LHOoeg0XSMMw==","signatures":[{"sig":"MEUCIQCoMXhCiDyyEsyo6CaNPIe+nnW7Tolz48B4TmSsoXEDqAIgT9JJFMpkXztdNZjbiDAl5cdi2E78IcuZHTsmzCrrnfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDV/6Nd9xHxk2ZPAa42FRkvEVlN17d+mkMVrO65bRWxTQIgYxThQqvIyDhvCeGT8/PNsWHA/csKomF3xNmJKh8CxFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113476993},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"f72b4623969d1d370547785e87aa1a66db1830cd","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.69_1790453795527_0.6594662388673915","host":"s3://npm-registry-packages-npm-production"}},"1.1.70":{"name":"claudeputer","version":"1.1.70","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.70","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"60d54b3d91c926b1994d63ede1aec622c07736c2","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.70.tgz","fileCount":68,"integrity":"sha512-h5508UhAPE1EQLVMOCZRJtLI8Rs7ibckhxjOLs5eROyUcdIs1g8Kdj8DX4V2tyTMzQ8SP0tpp9ByZUeQUz92rw==","signatures":[{"sig":"MEUCIDSTa5kmXOPI0bx5ZesZ+Of7rrEZ1eLVbLLhHagnzMhGAiEAmgGpGLVT0JTBQiAEMs2fL7SiJb6Vt+XTpiD9YWVC1hE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCswOd5vASy2iPg5NY0yhQrydAtIq00hRX3k96pOEFaFQIgSzBhsIddtSqyPuRPYmNPeaZJKYphno58ZOWYLD74sHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113483540},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.70_1790462653510_0.2843605683482604","host":"s3://npm-registry-packages-npm-production"}},"1.1.71":{"name":"claudeputer","version":"1.1.71","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.71","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"f898b4fee911e44419c71f74c688fc33a2fe3b63","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.71.tgz","fileCount":68,"integrity":"sha512-vPId/v6aQ112Kdi4pZ34+ChwFG8PLsTA3I6OuPjwnp8uCSsT3pZtsXqGgxrKobBuhlcklSjpoAb/4NbTgK0NvQ==","signatures":[{"sig":"MEMCIAhmog/p2eXW43egqAlmYTFaTgF6IfpBSAlWnyB1cORaAh8eXC6U0XIos0P2QoWZco1GnhEZmHsuVBOYkc9+5k4Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGoPmLS547Oo0H1xzGgF0UQtRNWRXaYGUGm+6pa/0+eyAiAOQSgXhj8qMWPZFF+1dK56wIheyH8yFGodn5TfZY2xuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113484020},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.71_1790478231909_0.41364259731022535","host":"s3://npm-registry-packages-npm-production"}},"1.1.72":{"name":"claudeputer","version":"1.1.72","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.72","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"f10aa65eac9703ac2b39a21a662c3df19c5ad9b0","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.72.tgz","fileCount":68,"integrity":"sha512-Llyh0U3ZjU73PRCUYeOwH9GOOiTGbq7n2nMRG48TNM16WnBdeQfQrJDzPbnLzVnsDxMeE29CEc9cd3852n5xRQ==","signatures":[{"sig":"MEUCIQDYnhRZ/dzNfm+vm4JRKsIvoa5PvzacKg5Su7cQqw0zQgIgXyqWbvPRZKVKS13KavbZsw6nPId3a9/fyjzdRNx8HnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEjs86sIqvFgdg0rXv6gc/drIV+8G3fXIXRSLFtCAa/8AiEAg0aRHV6Cc4nVn8UA33Dufoq5WqVpjGwsNV5ZN71tdU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113489120},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.72_1790538771711_0.756002987133866","host":"s3://npm-registry-packages-npm-production"}},"1.1.73":{"name":"claudeputer","version":"1.1.73","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.73","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"d96b15a3a5849f2c5d1c6324ad037c7d866c3b04","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.73.tgz","fileCount":68,"integrity":"sha512-zStwe9xdgnEYlz6bEUWP+622Gw6HyASFmXuuDvroa0ztLgwzv4Nir/i19eIrNz4KyuWW1GPKJ/hJ/oxnT6bZtQ==","signatures":[{"sig":"MEYCIQDJnjUE4GBN6rIJ1BOnZjgvec+QrgvjG6/hoUouVUNODgIhAKfdcFdi0ox4HEPHSCqIOAPrHL+SLMUpB1wpgprDId+D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIExcprhFBxr1ydfzsfAE3YoFypfqlFm/ocCfPjjSzsBKAiBcbfVD7GI2cLbPr0Od9xaEKlo4KfJQnvfuSF3fg8W5wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113489468},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"e97461bc83bfa6873fa95eeb1bea9029485e0109","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.73_1790621775578_0.6362975888552698","host":"s3://npm-registry-packages-npm-production"}},"1.1.74":{"name":"claudeputer","version":"1.1.74","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.74","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"7f8504bbe66ffc4db71a1ffc96f566fbec07154e","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.74.tgz","fileCount":68,"integrity":"sha512-BAyJViiIMzMB0BkfQYBIKLfKyeMSN6XddTQzRKU/nH3iW+GTZO+Nt3Uy0DO+hFdcM7H82tq0TxQhSTT3D1Wvfg==","signatures":[{"sig":"MEQCIGo5DgNFLTrs4kWAUcdN+LTKpnv6IcloQiWlIa4Gu0l5AiBsD7Yqyqv7Tkb1uP4B521TkWGLP3Zzsdecf4aG23cStQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDzPud/2TfCsmDqa/f/kvDSUjiapJxQoMs57/P/StK0tQIhAI2PEy5NMSYx1fh07au5QzSQoEI15hJjlB14knPP6oY2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113489402},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"5de1dff350022e4bad7342b439f6130fdf25712b","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.74_1790624599272_0.2583733810734883","host":"s3://npm-registry-packages-npm-production"}},"1.1.75":{"name":"claudeputer","version":"1.1.75","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.75","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"83a6b6496451af7cb58c1be46267f2b3ad3d0401","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.75.tgz","fileCount":68,"integrity":"sha512-T4OifGdJyfW5pwjxYBtbnkMyZshPCBxadOCOHYI/dPf+xiUTN9ct5aDrXVWFyT1vZvydvQVSVm1nWGEUEfuRnA==","signatures":[{"sig":"MEUCIQD/ReIdJTxLhmItAdEEmmfRwkaaRc8+EzgovqQ1uwwCKAIgPuNuyiBJD9O9UdfGvydV4m4o8RqxXpLS/JE2KN5oGKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEFFMK1CwriiiYgzT9ZbiVD7kWnRdxSvFGl97eIhiz4eAiA2XF/CKS83vTcaQZ5QSkTCqCr0AOZAfPnhcgm6fYO9pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113490776},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.75_1790717573017_0.7235583636494276","host":"s3://npm-registry-packages-npm-production"}},"1.1.76":{"name":"claudeputer","version":"1.1.76","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"claudeputer@1.1.76","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"98c13abb2b56599dc2f79ed3d75d3cc76bc81d22","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.76.tgz","fileCount":68,"integrity":"sha512-I85T/ZTcHU/BSZ8RyhwkXt9cqLnX9MNUYMO6sYNs/PYgLuICcXbxMtWDCJ1vCHXfwf3wfCZqZqMg9K63UkZavQ==","signatures":[{"sig":"MEUCIHXqosNImKnZ08+IY9kEhaoz1o8ETxcrg0PhS2JQjr0lAiEAh/IXZ67xRl5VwF3U6uVyMW06xI2iHRQqpRBjF4OvgDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCGIbIwpTdwTrYV7XHMTayhNObOz8ZnTIwzFc0vtlZAqAIhAJZTrYJ7rYiTs27MFLKThNEOC8PaG7sX6L7ZOP5JAl9u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113490726},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/claudeputer_1.1.76_1790735806301_0.9956997881701422","host":"s3://npm-registry-packages-npm-production"}},"1.1.77":{"_id":"claudeputer@1.1.77","bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs","claudeputer":"bin/happy.mjs"},"dist":{"shasum":"6cc009e2e94da13bb47b5e237ca4a8c7dcc4bc18","tarball":"https://registry.npmjs.org/claudeputer/-/claudeputer-1.1.77.tgz","fileCount":68,"integrity":"sha512-FpqSpglQwyEguxaY4mZvpf3OmcyB0r7RRWmyq3Ht21aRIfEPYEcE1oipVH/BBw0LsBnL2wRVUG1krj/7HSZgEA==","signatures":[{"sig":"MEYCIQD4wVH7xz/cGvh65c1ZVbGOmA3/BMbQ5ztl9XBQHeYs+gIhAKFffulB4p3YRHoRU4vW93QI6QaROhwf+QqE45YT77fB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDYTvdN8hsXR693vTsN/7Y/WOnoNnDD1WUfHcqaYsvVcQIgS107TsNzDv5uE0SqIbKwK4p6pE5ueMDGepW6Roz5EjE="}],"unpackedSize":113501524},"main":"./dist/index.cjs","name":"claudeputer","type":"module","types":"./dist/index.d.cts","author":{"name":"Kirill Dubovitskiy"},"module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lib":{"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"},"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"}},"./codex/happyMcpStdioBridge":{"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"},"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"}}},"gitHead":"df886248f598340f381e53ae42c23a3c1d4ea553","license":"MIT","scripts":{"cli":"tsx src/index.ts","dev":"tsx src/index.ts","test":"$npm_execpath run test:unit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","start":"$npm_execpath run build && node ./bin/happy.mjs","doctor":"node scripts/env-wrapper.cjs stable doctor","stable":"node scripts/env-wrapper.cjs stable","release":"npx --no-install release-it","dev:auth":"node scripts/env-wrapper.cjs dev auth","link:dev":"node scripts/link-dev.cjs","test:all":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run","setup:dev":"node scripts/setup-dev.cjs","test:unit":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project unit","typecheck":"tsc --noEmit","unlink:dev":"node scripts/link-dev.cjs unlink","dev:variant":"node scripts/env-wrapper.cjs dev","postinstall":"node scripts/unpack-tools.cjs","stable:auth":"node scripts/env-wrapper.cjs stable auth","prepublishOnly":"$npm_execpath run test:unit","dev:daemon:stop":"node scripts/env-wrapper.cjs dev daemon stop","dev:daemon:start":"node scripts/env-wrapper.cjs dev daemon start","dev:local-server":"$npm_execpath run build && tsx --env-file .env.dev-local-server src/index.ts","test:integration":"$npm_execpath run build && cross-env HAPPY_SKIP_TEST_BUILD=1 vitest run --project integration-empty --project integration-authenticated","dev:daemon:status":"node scripts/env-wrapper.cjs dev daemon status","// ==== Setup ====":"echo comment","stable:daemon:stop":"node scripts/env-wrapper.cjs stable daemon stop","stable:daemon:start":"node scripts/env-wrapper.cjs stable daemon start","stable:daemon:status":"node scripts/env-wrapper.cjs stable daemon status","// ==== Development Linking ====":"echo comment","// ==== Dev/Stable Variant Management ====":"echo comment","// ==== Stable Version Quick Commands ====":"echo comment","// ==== Development Version Quick Commands ====":"echo comment","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"},"version":"1.1.77","_npmUser":{"name":"joehtoo","email":"joe.htoo2@gmail.com"},"_npmVersion":"11.18.0","description":"Client for managing Claude Code and Codex sessions","directories":{},"maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","@types/ps-list":"^6.2.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","ccusage":"20.0.20","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","@slopus/happy-wire":"^0.1.0","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claudeputer_1.1.77_1790804749066_0.758315370496293"}}},"time":{"created":"2026-07-09T04:00:37.614Z","modified":"2026-09-30T21:45:50.559Z","1.1.3":"2026-07-09T04:00:39.140Z","1.1.4":"2026-07-09T17:15:55.629Z","1.1.5":"2026-07-09T17:32:50.709Z","1.1.6":"2026-07-11T17:36:11.194Z","1.1.7":"2026-07-20T16:16:40.966Z","1.1.8":"2026-07-21T20:26:30.179Z","1.1.9":"2026-07-22T02:48:13.619Z","1.1.10":"2026-07-24T17:49:21.192Z","1.1.11":"2026-07-29T17:04:28.167Z","1.1.12":"2026-07-30T04:18:01.544Z","1.1.13":"2026-08-11T17:13:59.625Z","1.1.14":"2026-08-14T10:32:29.934Z","1.1.15":"2026-08-16T03:40:52.184Z","1.1.16":"2026-08-16T03:48:55.328Z","1.1.17":"2026-08-16T03:53:53.285Z","1.1.18":"2026-08-18T03:20:03.881Z","1.1.19":"2026-08-20T21:05:19.318Z","1.1.20":"2026-08-21T03:51:43.160Z","1.1.21":"2026-08-22T17:04:29.049Z","1.1.22":"2026-08-22T17:58:21.285Z","1.1.23":"2026-08-27T18:09:37.724Z","1.1.24":"2026-08-28T14:26:29.536Z","1.1.25":"2026-08-29T00:05:08.140Z","1.1.26":"2026-08-29T01:30:06.744Z","1.1.27":"2026-08-29T10:27:05.783Z","1.1.28":"2026-08-29T15:02:26.559Z","1.1.29":"2026-08-31T15:11:34.879Z","1.1.30":"2026-09-01T03:15:48.267Z","1.1.31":"2026-09-01T09:23:44.732Z","1.1.32":"2026-09-01T10:49:54.165Z","1.1.33":"2026-09-01T13:14:22.560Z","1.1.34":"2026-09-01T23:36:15.697Z","1.1.35":"2026-09-01T23:53:54.931Z","1.1.36":"2026-09-02T10:12:28.334Z","1.1.37":"2026-09-04T20:00:49.280Z","1.1.38":"2026-09-04T21:17:03.826Z","1.1.39":"2026-09-05T12:17:12.978Z","1.1.40":"2026-09-05T18:04:18.379Z","1.1.41":"2026-09-06T12:59:01.648Z","1.1.42":"2026-09-08T18:44:17.431Z","1.1.43":"2026-09-09T17:11:41.641Z","1.1.44":"2026-09-10T12:01:44.056Z","1.1.45":"2026-09-10T14:27:23.172Z","1.1.46":"2026-09-10T18:11:57.926Z","1.1.47":"2026-09-10T19:48:05.922Z","1.1.48":"2026-09-11T13:26:57.110Z","1.1.49":"2026-09-11T14:47:06.550Z","1.1.50":"2026-09-11T15:02:20.214Z","1.1.51":"2026-09-12T20:24:39.255Z","1.1.52":"2026-09-15T12:45:11.992Z","1.1.53":"2026-09-15T14:28:49.445Z","1.1.54":"2026-09-17T15:45:05.441Z","1.1.55":"2026-09-18T19:02:32.111Z","1.1.56":"2026-09-19T10:50:00.366Z","1.1.57":"2026-09-19T13:08:38.810Z","1.1.58":"2026-09-19T19:15:10.900Z","1.1.59":"2026-09-21T18:23:33.052Z","1.1.60":"2026-09-21T18:31:57.950Z","1.1.64":"2026-09-22T21:08:07.181Z","1.1.65":"2026-09-22T23:07:33.962Z","1.1.66":"2026-09-23T02:06:00.514Z","1.1.67":"2026-09-23T18:58:14.858Z","1.1.68":"2026-09-26T12:59:03.484Z","1.1.69":"2026-09-26T20:16:36.944Z","1.1.70":"2026-09-26T22:44:14.842Z","1.1.71":"2026-09-27T03:03:53.553Z","1.1.72":"2026-09-27T19:52:53.098Z","1.1.73":"2026-09-28T18:56:17.537Z","1.1.74":"2026-09-28T19:43:20.623Z","1.1.75":"2026-09-29T21:32:54.347Z","1.1.76":"2026-09-30T02:36:47.653Z","1.1.77":"2026-09-30T21:45:50.409Z"},"author":{"name":"Kirill Dubovitskiy"},"license":"MIT","description":"Client for managing Claude Code and Codex sessions","maintainers":[{"name":"joehtoo","email":"joe.htoo2@gmail.com"}],"readme":"# Happy\n\nCode on the go — control AI coding agents from your phone, browser, or terminal.\n\nFree. Open source. Code anywhere.\n\n## Installation\n\n```bash\nnpm install -g happy\n```\n\n> Migrated from the `happy-coder` package. Thanks to [@franciscop](https://github.com/franciscop) for donating the `happy` package name!\n\n## Usage\n\n### Claude Code (default)\n\n```bash\nhappy\n# or\nhappy claude\n```\n\nThis will:\n1. Start a Claude Code session\n2. Display a QR code to connect from your mobile device or browser\n3. Allow real-time session control — all communication is end-to-end encrypted\n4. Start new sessions directly from your phone or web while your computer is online\n\n### More agents\n\n```\nhappy codex\nhappy gemini\nhappy grok\nhappy openclaw\n\n# or any ACP-compatible CLI\nhappy acp opencode\nhappy acp -- custom-agent --flag\n```\n\n## Daemon\n\nThe daemon is a background service that stays running on your machine. It lets you spawn and manage coding sessions remotely — from your phone or the web app — without needing an open terminal.\n\n```bash\nhappy daemon start\nhappy daemon stop\nhappy daemon status\nhappy daemon list\n```\n\nThe daemon starts automatically when you run `happy`, so you usually don't need to manage it manually.\n\n## Authentication\n\n```bash\nhappy auth login\nhappy auth logout\n```\n\nHappy uses cryptographic key pairs for authentication — your private key stays on your machine. All session data is end-to-end encrypted before leaving your device.\n\nTo connect third-party agent APIs:\n\n```bash\nhappy connect gemini\nhappy connect claude\nhappy connect codex\nhappy connect status\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `happy` | Start Claude Code session (default) |\n| `happy codex` | Start Codex mode |\n| `happy gemini` | Start Gemini CLI session |\n| `happy grok` | Start Grok agent (via ACP) |\n| `happy openclaw` | Start OpenClaw session |\n| `happy acp` | Start any ACP-compatible agent |\n| `happy resume <id>` | Resume a previous session |\n| `happy notify` | Send push notification to your devices |\n| `happy doctor` | Diagnostics & troubleshooting |\n\n---\n\n## Advanced\n\n### Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `HAPPY_SERVER_URL` | Custom server URL (default: `https://relay.joehtoo.dev`) |\n| `HAPPY_WEBAPP_URL` | Custom web app URL (default: `https://happy.joehtoo.dev`) |\n| `HAPPY_HOME_DIR` | Custom home directory for Happy data (default: `~/.happy`) |\n| `HAPPY_DISABLE_CAFFEINATE` | Disable macOS sleep prevention |\n| `HAPPY_EXPERIMENTAL` | Enable experimental features |\n\n### Sandbox (experimental)\n\nHappy can run agents inside an OS-level sandbox to restrict file system and network access.\n\n```bash\nhappy sandbox configure\nhappy sandbox status\nhappy sandbox disable\n```\n\n### Building from source\n\n```bash\ngit clone https://github.com/slopus/happy\ncd happy-cli\npnpm install\npnpm --filter happy cli --help\n```\n\n## Requirements\n\n- Node.js >= 20.0.0\n- For Claude: `claude` CLI installed & logged in\n- For Codex: `codex` CLI installed & logged in\n- For Gemini: `npm install -g @google/gemini-cli` + `happy connect gemini`\n- For Grok: install xAI Grok CLI (`curl -fsSL https://x.ai/cli/install.sh | bash`), then `happy grok` (uses native Grok auth)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}