{"_id":"@boujot/happy-coder","_rev":"77-fbadedce6dcc6c4af6741db2af43dcb7","name":"@boujot/happy-coder","dist-tags":{"latest":"0.14.52","beta":"0.14.71"},"versions":{"0.15.0":{"name":"@boujot/happy-coder","version":"0.15.0","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.15.0","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"34f3bfe93b38e7d837c369c128d71c6dd89bef6e","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.15.0.tgz","fileCount":67,"integrity":"sha512-298ozBaKFNW79wHWdAe5DAdVedIeMqXTWQ7lM9fkGfj1UxEVdXny34lRx7gy9FRo8oKFbu8Xyzas/J8MsXl5Jw==","signatures":[{"sig":"MEQCIBLKU38UJd8IAOF0xOAy5REwaQlb5TO1vC7eR2QEdyI0AiB/dYpwrNZ20RY/wJHSOqBI3hCOAIL64+6hE7Kls/ujVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238192016},"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":"ae4047728e9629eb55b980a1dd1fe417a7a43ca0","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.15.0_1771584554854_0.3431480827985902","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@boujot/happy-coder","version":"0.15.1","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.15.1","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"d7f2cf12d7baa5264a07c8831456b315a4309c2b","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.15.1.tgz","fileCount":67,"integrity":"sha512-3WGyytVl9yGgIWwQrekwvvS2mvrBp6FokTGkxPeL9fNeHU2iirEGKv4SSoSyBB5zNoc1Uj4y0qavOGvp4wEIQg==","signatures":[{"sig":"MEQCIGm6yrv63csnfvmFwH1o1VeaIKxsd+AhXnBH7d4q/lKyAiAEOY/s5l2sSNgNqgZ5Sm+qlp567OXj2VqChICQOj3DvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238192024},"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":"e7efb2dc17d001684c54f7481262ce6b62af26cf","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.15.1_1771592760597_0.9683088028874434","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"@boujot/happy-coder","version":"0.15.2","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.15.2","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"011206b2700d85d12ff5c267f9add6e3306e2f97","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.15.2.tgz","fileCount":67,"integrity":"sha512-F2eo3XmdRWOuAILN60Io2i2YVFHEQEdHLVC2Th9yM5JCnmv0NPXWBvnkcAU4uxAMAqypXibfVCrLO8wPuW2fVw==","signatures":[{"sig":"MEYCIQDId6ui7nvL+2ao1uIJG796a2yIlVCmQqwf+R7Sv/f1MgIhAJSD0yn1EIVuK7cOiLJ+AvNX2f85wpQxXn4jHrxyVpWg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238192266},"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":"3c243af5ac96d0c5e0079b25eec4a9217a106e11","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.15.2_1771835203635_0.44580219784854025","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"@boujot/happy-coder","version":"0.15.3","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.15.3","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"dceb5e7030f6f9bce755f151a0cb8c45aa48975d","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.15.3.tgz","fileCount":68,"integrity":"sha512-pcvrioNdKSZhYrx4ikbe+DCvf4Ix7yfdhNruxjLBSd3QwtsSTQN3G5THwa8nH9LfQDN1U4NXiGqC6JAcQqJ0Bg==","signatures":[{"sig":"MEQCIGQR/iL7pNmX0cPUYCknpOY+W057RKbBN95HB7k88zK2AiBPM8j1nV7pH3zy4LuUiNMm72GS8lAnoAlgUBgzDrwG7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238201207},"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":"b84cfc5157e0a689185c3dd9465a78f96e1a804c","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.15.3_1772209461373_0.7615871261353861","host":"s3://npm-registry-packages-npm-production"}},"0.15.4":{"name":"@boujot/happy-coder","version":"0.15.4","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.15.4","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"e91c139a9ddec80307e354bd13f1697786a21206","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.15.4.tgz","fileCount":68,"integrity":"sha512-wg3+r/xxD/vZoAjlypjMsYd9cbd9FgDLaL/JAVYXAuRJe6L9LqK8sbk8K8LE3KkGTsTZqoTqAE90s/FXxRkOsA==","signatures":[{"sig":"MEQCIDuYK/LshjI1UBs9FjcrdwVkTLWVS6aufpR7wsIqfDauAiAh2dD+VQiwngXB2kM3ZMhXqcHS86eJ0nzeCbFpxllxcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238201863},"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":"f907d38ca6beb645f78a330a4c9876e938ec09a4","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.15.4_1773698474384_0.7792031421193462","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@boujot/happy-coder","version":"0.14.1","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.1","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"47b832e94e005fdba9be97bbce661d265c3b146d","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.1.tgz","fileCount":68,"integrity":"sha512-pg1Bs0mHC3hEgmJxWVZ5giYUbWm4TKiNoyN1IA9Yf6euhfsuCcApQRRMmlGmaZJzjM9hm6PcK7P9odPD7yeVmA==","signatures":[{"sig":"MEQCICYgyE1U6cdvQMtTiFx9GARo+x3kPJpCm66rsxjzuKq0AiALvPmCY+e2WRSj2VbGzsmG+fL9Odi1vtkXem3LXwA05A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238202834},"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":"bb34fdd1aeba46a482582e459f63f21c441fb6a7","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.1_1777977429220_0.9735272107149855","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"@boujot/happy-coder","version":"0.14.2","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.2","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"ea5914a4f7e33b15d537028ac12253f43dcd4edc","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.2.tgz","fileCount":68,"integrity":"sha512-Xdg9rT4Od8akDnSWyipPNbTAPYQLDQ5uE1iqTO7RJclLCWGMI3dDqD1J9trIUbkGS2Bs3NlbUh8TC1xAKE9zMQ==","signatures":[{"sig":"MEYCIQD7nxoQ3XWPkmPGen8kgfLskgfIXhvqLx1gdTqlt4GIOAIhAPdHFH4yTg70hs+TEtAFUCgnPYf7jBICowrj8bASWbbq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238218224},"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":"a13fe045a8de343b10d4af3655bf95fde5d4e53b","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.2_1777982766427_0.019785278526245342","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"@boujot/happy-coder","version":"0.14.3","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.3","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"384836b706c412c9940790cc5830c7638761bf2f","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.3.tgz","fileCount":68,"integrity":"sha512-H8KZqfWbgiywgjmbZRouzAhIM6xRj3o7yvDOWHD55Ucudxqv/e/WGvufrENiwLOjcKJ7GZHCGKOITvXjzoY3UQ==","signatures":[{"sig":"MEQCH2NwkStk8pODY3O0VRz5h/Jgdt71ZkWXSFl0vuAx6mACIQCdtvx5TyuNb4Y+7kEZnW9tXI/ESNXJwS3tWNj9eJmR0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238222573},"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":"baa57e1be965072a5742481b2cdebe2cfc04fd48","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.3_1778013026256_0.015797975917696494","host":"s3://npm-registry-packages-npm-production"}},"0.14.4":{"name":"@boujot/happy-coder","version":"0.14.4","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.4","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"4b9275ca4a1c061dd6854cad3b6c8a042ecd9641","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.4.tgz","fileCount":68,"integrity":"sha512-UcWvcR1jLqh1VJl5uoAQQUfXb9DcFikb+9XjE/KgxYQmfhqb9BaNhBrxD1Oosp7+oODYS7pgK6pNdptFmIJktQ==","signatures":[{"sig":"MEYCIQCdjp0ogZoyGjJm/hGEbuKNVcrXOGn01vWb/iT0QO0o0gIhANuuAQM6gjrDinut8xqs8ox/YZojHLZ9p6f8pca0p4Yu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238225105},"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":"3acfc194cd89bb066d2602d441cbf57ad64d8b3f","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.4_1778048800240_0.3963807814739502","host":"s3://npm-registry-packages-npm-production"}},"0.14.5":{"name":"@boujot/happy-coder","version":"0.14.5","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.5","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"620c40cfce4e72369da07ae44b3c0cb75d0ac7c4","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.5.tgz","fileCount":70,"integrity":"sha512-yi/nBXTsvWK7btBZnNAYv3gfxOJ+72RDw5S4Y01mw1ITAkPubr5hmbTaK1f4oQhU5y8y+aCvI7cmzncIRs5IHQ==","signatures":[{"sig":"MEUCIQCXaqOWvmSJ2dpD1MEXnyJYhzJ/1R18KR2KzRFfIngvkAIgXnhB8TqLJcBcEfo1OAmBOWJqWwuBWAuyAwt0f1RZd4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238235916},"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":"c3849d7180514c9cfc6ce3194c62b6bd3bbbc76c","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.5_1778057078345_0.7332672378997105","host":"s3://npm-registry-packages-npm-production"}},"0.14.6":{"name":"@boujot/happy-coder","version":"0.14.6","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.6","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"519cb72217603339fde69f798f1d4c2ab02014c8","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.6.tgz","fileCount":70,"integrity":"sha512-zTg9yiVtisMMJQIOIQDYiGCypP3g1ykIa56wahAr6hzEgN8XYup8UyObQdQcQq4eLjsnaKNWO23HgdDS4POTog==","signatures":[{"sig":"MEUCIHWshIuUtTECBGqUKAbVHjRbZiSns2uszirybwl7Yq72AiEAqZjd09yPptznk5UNaSlXtglSVTauo3GYzQuwk+qv5e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238236928},"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":"280e16186493f50f4066da6aa91e4e34386708e2","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.6_1778060775914_0.48709538458208224","host":"s3://npm-registry-packages-npm-production"}},"0.14.7":{"name":"@boujot/happy-coder","version":"0.14.7","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.7","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"2f96f778aa0c33e703438db4a4591d504760687b","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.7.tgz","fileCount":70,"integrity":"sha512-fKdQGrIY3OSCr55gTuVsl1WtEEk6PA60eEbvL1CVrSIPj9na9hzUj+2EcKglNeePJ1XY0CM6TztFZX20lwizBw==","signatures":[{"sig":"MEYCIQCtRZx2lCH8ZO6bzMAF1L9vBnmU3zenaioo3D7WbDwwFQIhAK3WwlBELmHe3TmNP74TC77ooTjJtb8dAHhmMlFJY5NZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238237972},"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":"a9b21d3930361c95685394b8b312421c116c93a7","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.7_1778168030176_0.6778560745589639","host":"s3://npm-registry-packages-npm-production"}},"0.14.8":{"name":"@boujot/happy-coder","version":"0.14.8","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.8","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"928973648d2896b6ebc1e7dee0cc9385c0ef9d1a","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.8.tgz","fileCount":70,"integrity":"sha512-3LYhukfA4rfjdeumBqaHAUVaSDc1ljMcfc5zaO1JZRfYmX3n8Vwt8cCilQ8jcMG3EoBxktl+DgfG6mdEmWRgTA==","signatures":[{"sig":"MEUCIB2jYJRn7GIcyJHRGO0g8qQ+SISbFD+Bs+STMBzxPUwNAiEAmhyoOgos2SPAd/EyyTjfM2uH+Nk3Z5/EQqNoerYM9PQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238240664},"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":"8d754b85393d8ef4bae9478e0b38e643a58bf729","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.8_1778278168830_0.30191459839855606","host":"s3://npm-registry-packages-npm-production"}},"0.14.9":{"name":"@boujot/happy-coder","version":"0.14.9","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.9","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"759d06cc91bf111bbdb498ae2edab77c6e866ab5","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.9.tgz","fileCount":70,"integrity":"sha512-MeYXv0+L+3tRsNTpF5tHc+NgbZwIwRnUPqhcqF7fBgcTFqQvEyiHjTdziriGPs8bv4NyDuTpn+4RaFjshMFOpA==","signatures":[{"sig":"MEQCIFo+xCw6ZKYqbB1etatDMrwXuUDVVEex6+kbHB9344u4AiBvS+sAEei9XbFmiRG2NKQdqmLSCXp2C0y7uIaC/qPPGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238253709},"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":"ae4e8317771d7518ce7ad2749cb2e73ee0a84fd5","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.9_1778288388163_0.5706986967278367","host":"s3://npm-registry-packages-npm-production"}},"0.14.10":{"name":"@boujot/happy-coder","version":"0.14.10","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.10","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"150aea34c885d65caca11f7d648d1b928b129248","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.10.tgz","fileCount":70,"integrity":"sha512-6d4ilsihAtfTtqfjN8kvWS0vrDmGdXiSnyMRCB/KLiPCmRjdj35EPBRZRMAwb4NaKezLKLe9cYDJBRLFReQOpg==","signatures":[{"sig":"MEUCIQCFuBcId1xehd6A+YW5Yjs4DQ35G4oJ9kOFQMUWAeDwSgIgYaDmFAFSke3/63kCeW3urDIcZd9zd90Gh2YnsTc7CfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238255550},"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":"ae4e8317771d7518ce7ad2749cb2e73ee0a84fd5","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.10_1778292050213_0.02595245324185491","host":"s3://npm-registry-packages-npm-production"}},"0.14.11":{"name":"@boujot/happy-coder","version":"0.14.11","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.11","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"0672a9eb5b9252ff7befbb89012f32951f94d646","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.11.tgz","fileCount":70,"integrity":"sha512-vtlKena4kO/jVCOQu8VpqwA2vifJuZp07dWlB7vPbaeK+c9lJR2/UxecQJ4cR41MQ5h1Mp4MOVwimHl0bNrflA==","signatures":[{"sig":"MEYCIQDlzdLmgPEiiio+nZrVfzXuEqAVGe30i5PedtCMuBPcQAIhAJ1PfBVDuGTWPwlo/Bh9m4oLU8Y0yVrDo9D8+1mbeDDx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238261919},"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":"d9d12c5db00436d9e706147a06303ea2d7553007","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.11_1780394753487_0.6558555805944248","host":"s3://npm-registry-packages-npm-production"}},"0.14.12":{"name":"@boujot/happy-coder","version":"0.14.12","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.12","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"e2073ad3f665e57d3e49ff0145f486d7801350c6","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.12.tgz","fileCount":70,"integrity":"sha512-nCBdfyjcd5VK1p4XIBnF6vKTvHWkWmi3fmB7mLpI0OUagMlvhcAAu6rI7xMsPWtQdJJ5bvWuCCoi5rakDEkW3A==","signatures":[{"sig":"MEQCICqJST4YfnX2sRUd/ghNS8K8ANXUpnAtA4tIa7lxHx+/AiByiVPpzPc4sOsqf2YqRj+1UV2Lm+UKDQbjFLN1Z5k0Pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238262083},"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":"f85426e3cb557ca1b03591d156cec012c85000bc","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.12_1780395109239_0.5467138673754188","host":"s3://npm-registry-packages-npm-production"}},"0.14.13":{"name":"@boujot/happy-coder","version":"0.14.13","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.13","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"878dcf321e6c8ad10c5bbfa80ead3f95ecddc219","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.13.tgz","fileCount":70,"integrity":"sha512-dyrt7SMwV4FCa8XhYpjWo97aNcYvSimiLPkRyqpRwMQtwKGNq6rcFV8Q3fxp/FNiTwrgyiL04QIV3Jy6gqtAdg==","signatures":[{"sig":"MEUCICjY4DSw1HRUNtWAdB2NgOhtEd5oM1d/x9PZXPnW7k/lAiEAoySfWI6T1MCJQ97u9h664hTcxS3fUwS/tgiGCfcw5e0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238263893},"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":"4ec6b8935e58b616182b59ef7e41d4d676e668d2","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.13_1780398550777_0.10945301243125893","host":"s3://npm-registry-packages-npm-production"}},"0.14.14":{"name":"@boujot/happy-coder","version":"0.14.14","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.14","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"6d4d6c9f97edaa88453445f07bc1bb4e8e60abcd","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.14.tgz","fileCount":70,"integrity":"sha512-8X40VeNY4bUjZN1FQOil6WKlLzeAPs+mgLmCbMyFL/1abiWK+1qiHNhYB1O8IdGMZDp/lqINTUbleWnWvPGhtA==","signatures":[{"sig":"MEYCIQCDjO4KbEUK96qyCfzRSqXykW8juVs/bjJddR1WO0DL1QIhAIRbYgAWBd1eV0oJYwS4IUBsgJfk6XqbIEdCEUQ4hp6x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238268059},"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":"f7fbcb81d7e132ac10bbf5ec110c40ad8b7aebcb","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.14_1780402670337_0.014528498007382096","host":"s3://npm-registry-packages-npm-production"}},"0.14.15":{"name":"@boujot/happy-coder","version":"0.14.15","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.15","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"78230667e1db1aec9275e2d40f533ae9d70bebc8","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.15.tgz","fileCount":70,"integrity":"sha512-wpOx2QubPtVCBRgIMXyViHxwCmvhXF3XoxEZEb5QGO8gfz3NB9slcVQMtGW/qnBHco4iRb35THkI4FtZv9N0Sg==","signatures":[{"sig":"MEQCIAU7zeZL3hNrDScmSlpZHncKCXrnalzj9PCbtIAGVFcRAiA5q8cWbqJf45pqSxcUIeHNrwkTAgwfMGj+tFtCEH1MDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238281157},"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":"56f0c9f792115c850dcb6e0ab7454eb9a8836587","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.15_1781880175915_0.07578679555701084","host":"s3://npm-registry-packages-npm-production"}},"0.14.16":{"name":"@boujot/happy-coder","version":"0.14.16","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.16","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"e832e28493fca8d08e08c86d177c6bd8cb57f1b6","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.16.tgz","fileCount":70,"integrity":"sha512-xDa/NUhGOryj/8IUTYCvqIlRtzAw5VTZJeIUg/KYbk6VgYUmaEDM97ts5aAF86L/4VpV4BY3whdreR2nOFKWqg==","signatures":[{"sig":"MEUCIEf40h4TEziWC/j+ZIX7Ldp6KvmRNAWzR2j6627OrIz1AiEAnLyL9/yPEWJeWN3wEKMALSXW+doVZLt4hNrCVPlmdZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238302333},"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":"bd97fc57152b341ded819f092d853f94f3fb4aac","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.16_1781949195816_0.7168463551238795","host":"s3://npm-registry-packages-npm-production"}},"0.14.17":{"name":"@boujot/happy-coder","version":"0.14.17","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.17","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"aceafdf0c6ab3daa29f3b87c4bb0995c994d85a1","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.17.tgz","fileCount":70,"integrity":"sha512-2nz4sgkGBXuAOhn32ekwgxM7urYZPT5dEicp7phvnmTbkctPrTxQJE0TmbYvVfr66FK3ZK+cD6l07yLuJ3cZ8g==","signatures":[{"sig":"MEUCIQCgF0ucvWCLVewldSNWyZBpOs5QAF3BWZR4xTnnkRUOnQIgPX6Nq8hWomYzOb9YaYOXzQA6Gv16hBRow6rurXoRIPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238299205},"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":"5531052421e5df71feea915950d39f5a8062c3f3","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.17_1781961497819_0.6265136757777425","host":"s3://npm-registry-packages-npm-production"}},"0.14.18":{"name":"@boujot/happy-coder","version":"0.14.18","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.18","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"859c20f7ea90511869331bdae64bd173ff442ade","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.18.tgz","fileCount":70,"integrity":"sha512-LECOgamADxcar6lD3oHQtzCytTn1wvW+L2o4lyRsrDCE+0Hx4VECrevDXksYnCfIB8YERmWO/oPm17pZ0yIrpQ==","signatures":[{"sig":"MEYCIQDtIiR2qW0ikpFDoW70JKjbX3o3y6WQcDKZy5JVj8qxRQIhAKB21C3IYYjJWw5GQZOo/1eH3jshq5T4Fl+pvVvyvRiD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238324723},"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":"679c11081061130bd3fce8c75c024126d37856aa","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.18_1781967610625_0.47008918192513205","host":"s3://npm-registry-packages-npm-production"}},"0.14.19":{"name":"@boujot/happy-coder","version":"0.14.19","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.19","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"0119152e9245c14ed92a2890bb7b5029da4563ec","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.19.tgz","fileCount":70,"integrity":"sha512-h4O6QzVWkxR+vT+DXBSnTCNfuKZzqqdItjLZM1fZi7hiARTiER+sZSpkWdEOym4Rcth8YwHpHOfrYLNmi/Drrw==","signatures":[{"sig":"MEYCIQCEyD0a1u2d3veUAkvwVA8uh3hB9JM+9SKxr2LKVID0CAIhAOd1Vm89XB078B5uQLpBF6Dv21gS5Y4aWqYpEdnbB7mj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238335595},"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":"b28766bf1d685b05be0ac5d06500d6e667372381","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.19_1782046770719_0.36565257420895914","host":"s3://npm-registry-packages-npm-production"}},"0.14.20":{"name":"@boujot/happy-coder","version":"0.14.20","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.20","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"e1562dab7aff0fb967919de81b8296ccbe0d454f","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.20.tgz","fileCount":70,"integrity":"sha512-5plpooQK4br8lXNa3md2qUGAX3lPOsW/bDzTV77cFBOASJf0daxmECuqt4xqfFO20ihgSgbcrCAst8P4cI2BKw==","signatures":[{"sig":"MEUCIQDzoBeDiZ5OoobWh7lV9GYpfOSETAALF/CM4P1VLi+0MQIgXyoa+Imcqb/t92npk7vMeebusSYGIWtotHozL+AAZxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238336747},"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":"0bb9649531344962f8c68e78910f394bcaf64a2e","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.20_1782065990919_0.4571475927162332","host":"s3://npm-registry-packages-npm-production"}},"0.14.21":{"name":"@boujot/happy-coder","version":"0.14.21","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.21","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"8069a260b2bcc83f7f67733ce76545e9fd4903c2","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.21.tgz","fileCount":70,"integrity":"sha512-hI/gWuBFxHlxyXdfJrhXttb+S4VPZhaY/ml6tBvDz6r65yNnmXy3Xpy0lleQ6gOZkaEbq5M7gkSE9jPD8t9Ixg==","signatures":[{"sig":"MEUCIQC6L9O3Zn6SFDivP+RDkYGeJUpN/ac4HyHgzYES0dr11AIgTBhVFpEA7oLR9VgZFbRY1Fap+KZWGxZI9zuLDiOB3hY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238349245},"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":"9353ba9794bb3da556d22f950c98abf04aace945","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.21_1782070147317_0.6800153552279065","host":"s3://npm-registry-packages-npm-production"}},"0.14.22":{"name":"@boujot/happy-coder","version":"0.14.22","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.22","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"c06d4d44dc8b75ac1a4e9213ac8100716e997910","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.22.tgz","fileCount":70,"integrity":"sha512-lIqJkHQ90Q2YMw8pqF6CoFoaey5sDMmDeweAbRbbHB8NfC4gcnISIwEkNhN66TpFHnliklbUJ2f/BcB6b2WPSA==","signatures":[{"sig":"MEUCIF8lwVWRsqaaA1Litagq3eGJ7hSiDi2rrmaqL0mtJcYBAiEAuVcnPYpHSjcYs5kYByow2U1nz7H2HEyuQpwS0JXAIws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238366589},"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":"c874f23dba3df6a203a6fb4ceeeda98d4fcb982a","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.22_1782080435084_0.8003501307337337","host":"s3://npm-registry-packages-npm-production"}},"0.14.23":{"name":"@boujot/happy-coder","version":"0.14.23","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.23","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"0f357d1f50e1323b56797d983a0d8c5c8621eca8","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.23.tgz","fileCount":70,"integrity":"sha512-nFuFaVWyrJiDDhvWbFg4tMpb63PlwWhZwjsKjLCOewAJ6HSXBEo6BPEkJeH37e1HR3U/NE5YNa6Lrwuo+bQ22g==","signatures":[{"sig":"MEQCIHof4WahRRlYJs/chaQRZLrpQrAZ84yuRm5+pXmDw/r4AiAzuqYdqzC8Mtf7ox8XyYM3V6dU9Sw0gU2yXxlANZdn0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238375859},"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":"4a976120393a672c65894dad3e2679183c6fa0bd","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.23_1782298486343_0.21293091047397872","host":"s3://npm-registry-packages-npm-production"}},"0.14.24":{"name":"@boujot/happy-coder","version":"0.14.24","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.24","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"a3f7d28799a3b47f7798ba9c6f67b485665dc546","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.24.tgz","fileCount":70,"integrity":"sha512-8ROOuAmPGZ7jkC5UM8tzTgLnmwORNm6Q6o1+zCUsBDnwIevtuZM+1TiH0wTxTBx5dn+sTlfM9dUR5WBtSnVLXw==","signatures":[{"sig":"MEYCIQC+Nq8eU1XQqg2w9zPktLw+cLWeHiCYj/+k0wnFGxvuxAIhAMqqFpqo25nZ9BYVlxDHXLqjLHGAHojdXlDJwWw+lP41","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238379658},"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":"4a976120393a672c65894dad3e2679183c6fa0bd","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.24_1782303697393_0.5585582933910465","host":"s3://npm-registry-packages-npm-production"}},"0.14.25":{"name":"@boujot/happy-coder","version":"0.14.25","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.25","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"8fcbb3bca663343d16c7a3dc3cc1851acde254d7","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.25.tgz","fileCount":70,"integrity":"sha512-hRXK57inZxkatbJQsSWaUWYCj3VJoPcRIB/UbhEOFMH2Cxm3OfgzDBvHcI3xCYaVtRvXdzLoVcEeduBDcV+wpA==","signatures":[{"sig":"MEYCIQDYElMJhvLlmzjm8qu0RV8HDRMbqCBj6C5zb8JKwZA0yQIhANzxRAsUbO4md+bb8YTKgeZRVgFoEccqv8zOCfQ/TXCt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238386010},"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":"e662025e5666e2a3a474b05fec5dd2dccb68c44b","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.25_1782312654923_0.7814657253712911","host":"s3://npm-registry-packages-npm-production"}},"0.14.26":{"name":"@boujot/happy-coder","version":"0.14.26","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.26","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"5614dd9328369b97f7eb6e9428d4d26e2f014c85","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.26.tgz","fileCount":70,"integrity":"sha512-WYltWI2o+kWKkZGGSJn4HN78cPtPtBWRsX6KOYySBSmQRpSsEuq0dE/4WSi/iPwakb1DNplMn2buBk3NEiy/iA==","signatures":[{"sig":"MEUCIQDEoviGI1KHp1PvJTIi1WoFO4RvD/M35J+yUjczG989jQIgU9jIdnc9aFU8nPvJrgQNgNYgSgEIWrraN30/D3XipVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238409648},"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":"afd31557d8f5e3708f0bf8e8cd076e07a44b96e0","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.26_1782903575589_0.8981507669013487","host":"s3://npm-registry-packages-npm-production"}},"0.14.27":{"name":"@boujot/happy-coder","version":"0.14.27","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.27","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"c7a74c63b0d6d148e4878838fed9d81673b8023b","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.27.tgz","fileCount":70,"integrity":"sha512-PHR8G+K/uwIjA9FOEHROxJhMoZ46JWNfSWGazDue6EXvWGv32nbypRP19rxQ432W9Md+82QHlhR3js89KCrW/w==","signatures":[{"sig":"MEQCICGZ+Ha/CpJdvXErGcIp03SUBTf3dlU7/VSKNk/6t+TLAiAkwdDjNzmbFhoxf4Ekh2/xYhQ1oHN/adMNHcJa6n0WLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238409992},"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":"7cda1d9eba722ba6cdf54923aeab48da84730fda","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.27_1783064290043_0.8966280040091403","host":"s3://npm-registry-packages-npm-production"}},"0.14.28":{"name":"@boujot/happy-coder","version":"0.14.28","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.28","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"0f5cf6d7191d51ddd2458eef10553bb179f8b3e6","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.28.tgz","fileCount":70,"integrity":"sha512-PDCEghIRF20GVhzGrFxt3c6N4aoIK+38EhlzQwTPBOX0P9gdFYN7sHN86YlriYfOmGtQNjkkW+crBmeljO3Ozg==","signatures":[{"sig":"MEQCIH0kbaOEuMNhhsfAwICuu0yr5CJzilXD5itpYr2uLPNgAiBSaJ9I2BM8cwdj6cTlFku0QGWqW16Zrqikk9E5BkDilg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238420040},"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":"d0e4aca188d5e489f4c875db7bcb12844e977399","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.28_1783608916349_0.7930125555344016","host":"s3://npm-registry-packages-npm-production"}},"0.14.29":{"name":"@boujot/happy-coder","version":"0.14.29","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.29","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"f13a02e4822fd5e07d4c1a0470e4ef131b79cbc8","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.29.tgz","fileCount":70,"integrity":"sha512-8smFK/zGiACdVGC+kSJ9FjcSOOmkqrtG59Bo7HRZ33M7f2paH/y1exOmkIrEFO75PuoeYsm60CipAnv4C1w0dw==","signatures":[{"sig":"MEQCIG7WM9qQdrnRJxp8/RKtPC20PqVsMPwhsvWFFoYzpUoaAiAwJ0oKc7n4tROPJfRcqF1OVY/+WGbja9lGp1aYkqX9rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238431974},"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":"f49e8945476383e80e3a420e6bf40a2a12bfcb51","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.29_1783951947565_0.12450286783753106","host":"s3://npm-registry-packages-npm-production"}},"0.14.30":{"name":"@boujot/happy-coder","version":"0.14.30","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.30","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"31c8a8feaf290a227ad28781d9a7cdbad7f98a4e","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.30.tgz","fileCount":70,"integrity":"sha512-wm/MoRGbGIoCGcfIWiiLeQVsnM48pT3htzRo8htFLziO/kIIELNO4iyxsp1gbR7YztF8b1hY2vADXK2n2P28lw==","signatures":[{"sig":"MEUCIQCV1YHbW11wLB9CXmhfwz3plhnRW/pEH/atiXL7cpaNwAIgYBB6mRPviEiUaSj7BfZkfqx8scSU5f/Ra0JLr2zfVIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238436212},"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":"9bcec513d001b871c0c35dae348faa9295254728","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.30_1783959831226_0.7173277879438038","host":"s3://npm-registry-packages-npm-production"}},"0.14.31":{"name":"@boujot/happy-coder","version":"0.14.31","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.31","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"59a8731f755dac0fb739b21d93579cf5a597c612","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.31.tgz","fileCount":70,"integrity":"sha512-qSZdaZQ3Uey1Dv5RseLhn/sou9/ekEmEdnAjU74ue7L8EwfyJAdu7xHFpmyDQD8RxlDCD0n5Nv/Xezk2cmM+bw==","signatures":[{"sig":"MEYCIQCUdNg1+yF/ZwEK1hSx2YgnoK98ERJKhA0PbEq+qwJnmgIhAJUuG2ygx2JbyZsJz2YVpogjDp3iJnP+anB7xF4wP7x2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238437420},"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":"e9b43a6202f1f771118e69154f673f5b6542e92c","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.31_1784273896043_0.5280364355868075","host":"s3://npm-registry-packages-npm-production"}},"0.14.32":{"name":"@boujot/happy-coder","version":"0.14.32","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.32","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"037ab2b929683b9add7413f299444ae8307df986","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.32.tgz","fileCount":70,"integrity":"sha512-tuaqHN5eLI4Key6jRx1GIQeIF6ssVX856/F9SNwD8gunCO8G5MAH5ggPAQgK9WMbTsw675FQXKzNYdMjPScSZg==","signatures":[{"sig":"MEUCICd9yvRWittEGJ1rcNYCZ36Kgi4DCRClDyGZ8HOHFTzQAiEAiX0UxhVyyn9H9jRZaKe3iYyLlP/ic8P/gB68mKgaqTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238437694},"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":"7a34d86dd50b5d1b1200cfe6daf0c856dd0fc7d0","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.32_1784285004049_0.8687288206961437","host":"s3://npm-registry-packages-npm-production"}},"0.14.33":{"name":"@boujot/happy-coder","version":"0.14.33","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.33","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"f6d4564c7ae3b7a309d44888289b94609472b2ad","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.33.tgz","fileCount":68,"integrity":"sha512-r/O3rXX6skTDkUxKw9UNgfUPtQKFE+Oh5rK5oiklPUWgfgsp628+q/E42TfG2t/351w10JvvYzXvwcpx07WANA==","signatures":[{"sig":"MEYCIQCU9QEORZt4sg4aKfuk9N8Jk50L7Bp1BIkBB1C+0d+KLwIhAM9AhKpgL7wkiMQMLVy4LO82elLa9Ya7RJpcxFTjIIFk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238588809},"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":"f670e5fe50ca85a13096949ae9e0fceacb2e99c6","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.33_1784471991796_0.017862162083150945","host":"s3://npm-registry-packages-npm-production"}},"0.14.34":{"name":"@boujot/happy-coder","version":"0.14.34","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.34","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"ab4855189faf84c04e1cfba3dea50b858e1b2f8c","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.34.tgz","fileCount":68,"integrity":"sha512-VvOQhY2kP/zWHxHackPCqf5bRTlOxP0y6URKquF3wbmH1d4kOHaf4HSHLs/JiN84g2Qpz3fxVIzeiJfLrwXAoA==","signatures":[{"sig":"MEUCICdK8Ram0VAgZelcmY9WijYgXwiW6WgJt4JBrGG1owmPAiEAlJ/TdEac46avT1h01Z8NxBbyHtPFIgb7nzr8Yhy5iAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238621433},"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":"59ecf84437fa1955b7c16827b691b09340b0ad45","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.34_1784482045134_0.1200547155098668","host":"s3://npm-registry-packages-npm-production"}},"0.14.35":{"name":"@boujot/happy-coder","version":"0.14.35","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.35","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"d8c00aaa45492476fcf79d6bde251667e07ca9d3","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.35.tgz","fileCount":68,"integrity":"sha512-f6pLIDZsvkj0mrTLUGApQ5Kk2jjTb4DeVSbrpfrcYZfteuVilcT30QdUKM/eGZcqDEhvYYVjbVj5q5O5Df54Pw==","signatures":[{"sig":"MEUCIQCFN43ZKtkF5E1DR5SFeo0RCjmaOPljw/tqNghj1SXHpgIgQ9p+rvWvZA1z4ZIWV0UmIsQ+/8BMB6va0tS4DFDBFgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238705048},"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":"98a5e6b1d1a19617fff5862804637a5f92e26adc","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.35_1784562972657_0.6774264957577203","host":"s3://npm-registry-packages-npm-production"}},"0.14.36":{"name":"@boujot/happy-coder","version":"0.14.36","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.36","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"8c67340fd2fe9a2ac7d3ab6d44a10c33ad563bba","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.36.tgz","fileCount":68,"integrity":"sha512-gbwwZMjarduErs/9XJo3ioG0kCgFJEp/5d1w/vQPv/fvkeVE7fuEmeC0Tde32BuRBZaOE0pcJZLZnS+2kW/ZzA==","signatures":[{"sig":"MEYCIQCvAbT01QSdTFP2h9bMd+VsSN4WZlcRH4JJJ/zfHgAIMwIhANMJNHSdGgKi9JqP4aM1o/VGCK9GAAWGkJTl4ax1TNxj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238746456},"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":"af121d670d23e0b0bc70abf991d91b4c09ed35a8","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.36_1784719871741_0.8872446322384806","host":"s3://npm-registry-packages-npm-production"}},"0.14.37":{"name":"@boujot/happy-coder","version":"0.14.37","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.37","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"31c9c7c0ace3206168273d870091fd6736219a15","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.37.tgz","fileCount":68,"integrity":"sha512-tFuCzQXfI4MnukVvv5yTybtZDD1VmUrAElvIWmBdJ6xjLZjfkKqane9SEqIvWGJPACUJSlXK2SnnD8+bo6R8Tw==","signatures":[{"sig":"MEQCIFiEwnKYAkfUPIYAjgeLzMwjKAPysUGLvL8vwL/F6MAYAiAtGXoq5xh45e+ms9TNuc+kPeFLUZR42FMT9nvKNIl5kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238766083},"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":"de9d332e104399d54666f264043218002e1d5ce7","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.37_1784732274964_0.9597957223614615","host":"s3://npm-registry-packages-npm-production"}},"0.14.38":{"name":"@boujot/happy-coder","version":"0.14.38","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.38","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"89d09d74959fb2386708fd2e81f5727f9783cc85","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.38.tgz","fileCount":68,"integrity":"sha512-GRQ3WYPPv8N15YQPwyGbXZ/TSKX837tUr3Tacq4MBnoPBjgWP2KmlD25TNh3gkO89oFE4OY7ItzilyagxM5MtA==","signatures":[{"sig":"MEUCIE1hUsnF6/QnA1x1LDUu8RJJwh95fYqI86BqTl8t8PliAiEA4HSjRRaF7x1BNT68ubPkzo3kX4Q7fSVyb7giXS2xfNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238861052},"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":"2773e19dceac7c51d5a66512698e8a86493571bc","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.38_1785268902471_0.18821572269849796","host":"s3://npm-registry-packages-npm-production"}},"0.14.39":{"name":"@boujot/happy-coder","version":"0.14.39","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.39","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"2cd7b98db0098e518f193651067d4f99852fbc74","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.39.tgz","fileCount":68,"integrity":"sha512-PJ73gaNmvZR7slQT2sn8s5gvc5Ls5w6K1iJf+cZZA61D2ppj4o9RBXlRM+UtZdNKDlEBpFBn2kZvo+NNbroc3w==","signatures":[{"sig":"MEQCIDkEO096/WrXs6/uv0+ydyRd1RSTeV3P3QCv/CiRXHb/AiALxElLRNrXau8euV8/6k9qGJztxvyO6PxqNYjYiOIceg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238862804},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.39_1785274370828_0.5060902121078341","host":"s3://npm-registry-packages-npm-production"}},"0.14.40":{"name":"@boujot/happy-coder","version":"0.14.40","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.40","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"3c7b79db705c9d4d70148a732463d21617b5e094","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.40.tgz","fileCount":68,"integrity":"sha512-QPa1PuzdaJlHKrLSXWIm/GUA0sUbGZvq8+EIBAXhFRTgM/jWtrRzNO5O4jDHg7MSQR9MUwr+DbhpVsim+aDYFw==","signatures":[{"sig":"MEYCIQDBHharRJuBflEtV9sgcNQgDZv9eVa/XjvETsPT+5EITgIhAO3Hkzsl4Ey2Q4T/SdtHulFMvJifoPS9vIVUD8EGwhEv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238865558},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.40_1786356981344_0.717677036445586","host":"s3://npm-registry-packages-npm-production"}},"0.14.41":{"name":"@boujot/happy-coder","version":"0.14.41","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.41","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"f785a1f5e80b381bd7f39d4115e576a219571725","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.41.tgz","fileCount":68,"integrity":"sha512-Y36eLkPHvGPNVAB6e9uQCWV6OkZUJQ5Dc4K/hWLEWUWASChDphe8E/RfRkWWtx6ftWK6U7uulzMGBujw/XnFmQ==","signatures":[{"sig":"MEYCIQDQFjjsfZu/49Xjp7y7BUEZx735AKhrBcpOKhPJdJ7n2gIhAJttKJsxX+Xpmh3laLer0kiEdXL2exNywFIm39x8lK/Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238900330},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.41_1786638626582_0.15414558832598568","host":"s3://npm-registry-packages-npm-production"}},"0.14.42":{"name":"@boujot/happy-coder","version":"0.14.42","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.42","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"da8ba5138b62f506c0c7d284b930f2918caafd2b","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.42.tgz","fileCount":68,"integrity":"sha512-EOY1DSycXy8HJco0Z9qYWqxzrmDWsALw/5JNiNsfu4ZonPxDrBXEH/nbNGPg8u6h09+zt9HWy9z5K7iPM8029Q==","signatures":[{"sig":"MEQCIFQa+jasLBfY2PuUnS7hagkI7u3U9lYjoDLR/s6y9kpJAiARaJ4EvNljoZ388GEXDF3rQsP/quzt2VJpF4D340b8rA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239147831},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.42_1786706505878_0.5329938648134007","host":"s3://npm-registry-packages-npm-production"}},"0.14.43":{"name":"@boujot/happy-coder","version":"0.14.43","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.43","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"8edd245a2321c60dace09d0bf4a898ac52aa5ab1","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.43.tgz","fileCount":68,"integrity":"sha512-AgD1gPaDePx6qg4L8opJsN4hyv/ErzVYqF1kDnp+krTxvfXpXnN8eoCkeW/HvOMgIQz6NEs3Q/Kzq/qRwgFMgQ==","signatures":[{"sig":"MEQCIGvBSpvnArKeKy7oq8GhryaFrpd4+Wduq3Z4KTCwUpC3AiAT04BwRbRvMVcK7WmP/qOKQsWhp4grt4/7yZHGCzF2RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239153939},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.43_1786718872778_0.4578633611389338","host":"s3://npm-registry-packages-npm-production"}},"0.14.44":{"name":"@boujot/happy-coder","version":"0.14.44","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.44","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"5d611f9e63a72402fb503421276d2c1610738f08","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.44.tgz","fileCount":68,"integrity":"sha512-Rj2EsPV30bHVUNdb4oths+lmWlndojJfBNA7u8Dc3xImWr3r5vLKSh6CQ9BEKx6TF0iBeyeHfwuz6CI6Z9yaqg==","signatures":[{"sig":"MEUCIQCjtGQ9o/UQtLrj5cmkTvB2G4oy6/clE8BvukcR5sPYggIgDcbFO/WXrNYM4UniJ+5/BdeQJO3og9FM7cKXKycAsSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239164059},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.44_1786736049408_0.3979301355699525","host":"s3://npm-registry-packages-npm-production"}},"0.14.45":{"name":"@boujot/happy-coder","version":"0.14.45","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.45","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"f3b8284bfa0bc4b70d79f63ca6c3d520393c1e42","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.45.tgz","fileCount":68,"integrity":"sha512-rsh3Zmmid3NEwNqCxWIbJrryt+doqPNoUjaGQMDquDwoJN2xXHA3tJsW0Fo7ALUyZXdgG9aZi+6w62setwYKEw==","signatures":[{"sig":"MEYCIQD6RGvLTfxIYzV1YI6O/u/IwGtPOlxZDXOSNUAl+GZjpAIhAPrsDpMWy8Ld+eWBOgXff6AavhUtnlwHHw/+DH7ipgRt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239164819},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.45_1787127106186_0.42601545554625453","host":"s3://npm-registry-packages-npm-production"}},"0.14.46":{"name":"@boujot/happy-coder","version":"0.14.46","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.46","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"11ac32acdcf93e9716f169f8250d7767aba6aa11","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.46.tgz","fileCount":68,"integrity":"sha512-H1Z/iI7iKxsK0TlLIFVikJJouAYKqxwkuj7H1FFLCsAurfN2oqCHiBfslh0HS7YF3crIdrNOnp1y/bf7PSaElw==","signatures":[{"sig":"MEYCIQCx0dEKrPlfFmzVps/5gkHARp2Wb4UWdPrz7ANUbheIHQIhAJ9K50g/wd3XyOe0qeyeTMUDDajrC56dhu+AldV1k5Oj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239174185},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.46_1787161600978_0.6828588516353535","host":"s3://npm-registry-packages-npm-production"}},"0.14.47":{"name":"@boujot/happy-coder","version":"0.14.47","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.47","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"8b8301a96ca4e12be73d0ac99f211d8c3ec4e8f1","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.47.tgz","fileCount":68,"integrity":"sha512-h7Z+G6wi828cK4hK4dSMPWYdKMtwjqjwp4K6VChrJVbOYqlsRa1q3EcGS36bduN3uxu8zf+teE8whL6OTYaDNQ==","signatures":[{"sig":"MEYCIQCNe0wKXWJQlbN1Z+0ISeMeY+BhgLBzl71vtm/BDsq2YQIhAJw9AvfargfnmrUWRYOlwadnx4O0dgLnIfEw1NmFxh9R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239353302},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.47_1788495890794_0.414971764499769","host":"s3://npm-registry-packages-npm-production"}},"0.14.48":{"name":"@boujot/happy-coder","version":"0.14.48","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.48","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"95de1034b36a2834c4b7ee2bfe8ddaf6296875af","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.48.tgz","fileCount":68,"integrity":"sha512-7VnX41SGgYQMZoliyAXEzQFCMj9PgmLwBDHzysRGcH+5SSlm85Mhy3Ji66lfchMbhCcbdRvM5o63CcdWnk9slA==","signatures":[{"sig":"MEUCIQCG/TkyEkHLweQECUHA37WWlphFwhqzJcOPvfmNdL5BjAIgHWd89GbZgaIb+uHdLOfft/Vy4fpBEOmUnv4q+DfFodA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239356030},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.48_1788508212894_0.6198559916180879","host":"s3://npm-registry-packages-npm-production"}},"0.14.49":{"name":"@boujot/happy-coder","version":"0.14.49","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.49","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"fea95f211adabd9635be818b7de65c98d5540d55","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.49.tgz","fileCount":68,"integrity":"sha512-EB9VTiJQ8Fg0+0bKjebGz2f9sO1QI4frTmGYHT5pBVPN8LgH/3m845pWxKYL61w07DIX/eQ6NqCzHMJQUVXp0w==","signatures":[{"sig":"MEUCIQDHEZOGpu9FANd11qY86VAPVwUCBGet/S/uqWaTr9rYHQIgRD+alMyeCmsKhwk9POBJzCkqXeRHzuOiMPrRVxy019w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239401487},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.49_1788763104509_0.8103616869781916","host":"s3://npm-registry-packages-npm-production"}},"0.14.50":{"name":"@boujot/happy-coder","version":"0.14.50","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.50","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"f0a0fdee99f8a7f5a633d0d56ab1f137b8b1f856","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.50.tgz","fileCount":67,"integrity":"sha512-XnApnieF19qkfa/MbZw2kiQbYrT5o9SuqXWKbqUFssSjoGkK6C8VcYsV89lXEJerZlU+ESUeXAXyb5kWHEqC4g==","signatures":[{"sig":"MEYCIQCkcgy0jBdVKhU5Iq/ft25j+MtPz0Rz0DBuNffWqF33YgIhALYd6FxLRTbpLN6Ush6A+rdyluIIod6lOQqACzRMeqWk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239413208},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"deprecated":"Faulty launcher; superseded by 0.14.51+","repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.50_1789374285519_0.5832734134218038","host":"s3://npm-registry-packages-npm-production"}},"0.14.51":{"name":"@boujot/happy-coder","version":"0.14.51","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.51","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"aff72f55a494b33a36fffc82890c4fc098f5750d","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.51.tgz","fileCount":65,"integrity":"sha512-nEXuocrmNR+vIwymhebrR8GbP5JuOOtfYfhLY2kug0htPYknvMhYcvttUzhNQYJepeC/zxD+yfFSfFFuj/3Zcw==","signatures":[{"sig":"MEUCIQDzEpyuqE1BR/gGTm6HUeYypbpHLJUsmuLm1xQB4hDCFwIgUZlj+DhcxrpR9D0sJH6cCZuTLssDn+DIYj+bj23NzFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113318363},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.51_1789374785662_0.8445906143826738","host":"s3://npm-registry-packages-npm-production"}},"0.14.52":{"name":"@boujot/happy-coder","version":"0.14.52","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.52","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"e8aad44d0f6551b57105f1dbd3ed25d3b697818d","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.52.tgz","fileCount":65,"integrity":"sha512-4+Iju16mbccnKkZ1ODtJAmWSNf/J2E63ehQVT1axc77PDbEVtmsj2L3aeEbh+qRXK6RdGNJVbY4rcraAJxzlbg==","signatures":[{"sig":"MEUCIFn8O1wqOfbK7sTGX0K3bcWKZ5xQWnwsU617rR4LScKwAiEAmyewFASNdbe3JuCJnslOSRWjE8/xsJwo1MbzLzgYBmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113351325},"main":"./dist/index.cjs","type":"module","_from":"file:/private/tmp/boujot-happy-coder-0.14.52.tgz","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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"_resolved":"/private/tmp/boujot-happy-coder-0.14.52.tgz","_integrity":"sha512-4+Iju16mbccnKkZ1ODtJAmWSNf/J2E63ehQVT1axc77PDbEVtmsj2L3aeEbh+qRXK6RdGNJVbY4rcraAJxzlbg==","repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.52_1789398013025_0.07532970810710204","host":"s3://npm-registry-packages-npm-production"}},"0.14.53":{"name":"@boujot/happy-coder","version":"0.14.53","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.53","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"35267d245d21409cac289af691940c74adcdec9f","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.53.tgz","fileCount":65,"integrity":"sha512-w9lXlcghrQ72a5pH5mTJnx6BgSHH4Vim3/DhHdtWBjM/oRFStONNUAqlMzFvSFI0RNVrQLQNDDN4Q5X0cQN8qA==","signatures":[{"sig":"MEQCIBYam7yWQDRH3+uGD8w9z6IHPFbisSMHkopHFARuQBQpAiA2eLYz2Sh5mg2agfnQIwzPwKbDJv+16ogV2ofKB2Usww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113373799},"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":"a8b37cb2b2e0f12152f169972b424eb3bd6ac25c","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.53_1789565929996_0.54398924381059","host":"s3://npm-registry-packages-npm-production"}},"0.14.54":{"name":"@boujot/happy-coder","version":"0.14.54","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.54","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"2c3061429b1ea246cb6701cc7ab68463ca667e92","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.54.tgz","fileCount":65,"integrity":"sha512-tRasjMlPwMwLZT8j9VY6WkREefXZA7UZAgKmWTTZ02dwTbIL5xf7fTQkeNU51xfR4+jzrjKE/OX1lDfImnHg6g==","signatures":[{"sig":"MEQCIF3HbBzgd7ciCWskUEGxUfDSmroqeCDNsY+2qIgl+322AiAErqjrvftsS4uSruHiKpn3wo1s5ri/jaMcXKQLrhMfiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCKzcvOw/45cMGaqOaCnE4QBFO+Dlf8DJf6QaskHQcStAIgMsT80ucDEhgNggryWkIUIx28V4n2M+I5QAqvpDK4X6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113379534},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.54_1790089228565_0.5120062144739617","host":"s3://npm-registry-packages-npm-production"}},"0.14.55":{"name":"@boujot/happy-coder","version":"0.14.55","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.55","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"724bf34554e19ebebfb52780d392db7147ade3f3","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.55.tgz","fileCount":65,"integrity":"sha512-548wZV3WfdeRlzEdtcQR9O3nb7/Z3jugEnR/NJ0UGbvRhj2qSh8i/GWgZ1OuJilN3129PnucxPiysUSxd4py+Q==","signatures":[{"sig":"MEYCIQDwVWVTa3BZ7ZemUEwwu7x4GNbfzuLdSHt7zmFYErUUKAIhAO8ayFlsBPPa0yw8cR6csVIS0AFBMi8Wrx14i3XJikTs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEIA1GouCzDZxKF5WB8kzWSf6JKLIl1DHeMDkQfnrtBWAiEAmCKRbRwKGeoohJc5kT3bhukozNzd2bMxsvfHR0XacMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113385340},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.55_1790156571128_0.744998595847788","host":"s3://npm-registry-packages-npm-production"}},"0.14.56":{"name":"@boujot/happy-coder","version":"0.14.56","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.56","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"ce73359c43949a17125cefa833ce139cedd6d747","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.56.tgz","fileCount":65,"integrity":"sha512-12DLHoFoFMKjfLPZaNFJMaiXwbiTmPg/ORt7payXZLAGTp34MgMr/D4mcVWrFAwrE4ze3+OmraP5uyh9BLqFig==","signatures":[{"sig":"MEUCIGDj/lKYl1SfGBOjEaU0vZi+Vbz64rdi6AeBMS2HgkbDAiEArkiBwZgNKfURTaUND12vjTMuzRbPvo8KcjnVfJRZjyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCPgkekpoaJhY2SgBQWEmadGIRhIJPfSus3cJ8z2MYajwIhAN6ufhg28g91YUOrXt56dXmRSPfftK+YW+oLy7NmTGCB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113398326},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.56_1790169357718_0.5377389729204347","host":"s3://npm-registry-packages-npm-production"}},"0.14.57":{"name":"@boujot/happy-coder","version":"0.14.57","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.57","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"c9a605c04bd50c47c613851a1430fc6c2a4e7bd1","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.57.tgz","fileCount":65,"integrity":"sha512-/+fVWHEPYJ+35ran0pn97LZk4JtBfxHByc7y6vRS1q3ESgMvku/F3pQNpY5fJehltvF9zvBCa/hH1ZTjOPk4eg==","signatures":[{"sig":"MEQCIHhmLwiIprhY//go7qC48RvV2VvinODNJ6aIqMiHvtTCAiAkyzmGbX15mfacSfCr21yodooQfSs6qjNMcIB9Bw7lgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnZg5pCDZ7KmAk9J6eDHq0vWkL1LHBsz3kxLhUaoHfAQIgK1fWgUpTmxVVgBcB55FERdzHE4uG/PpU0dIIxRU0G1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113399204},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.57_1790173696561_0.11817942190531339","host":"s3://npm-registry-packages-npm-production"}},"0.14.58":{"name":"@boujot/happy-coder","version":"0.14.58","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.58","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"5242c7a99437a34ff1eaf3e73b2f4fd12a26dbb4","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.58.tgz","fileCount":65,"integrity":"sha512-zVXuGixyoysPgcMx/B1QL2cV6M268QzvwGMYbdXnZWT3KhXL1Wzqm943CLObSsu3pR35toVBh+iNOhSBEek58A==","signatures":[{"sig":"MEYCIQDAYP6EeW7FsOUOZUd8S9WqXjtxoQNEm9FH+IkakoiK8AIhAI336yC3Q2fZIhspZe91LuNBeP4/8RVnvPbLvihYHyGz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHyav74UOsyWevv2WKj0YeIGr1p8c6tecknp2VUFjfSnAiBr6eMkgVese8d5uptkY+9M+I3ae8rc6zP8xHgmvRxISg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113488409},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.58_1790273155745_0.9121572345645288","host":"s3://npm-registry-packages-npm-production"}},"0.14.59":{"name":"@boujot/happy-coder","version":"0.14.59","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.59","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"2f462ae169379651ab06a0ab0e2b33d80260d3db","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.59.tgz","fileCount":65,"integrity":"sha512-scs6UWlDnTAP1kHfLqxMzzfBHyNn2O3OQrurOiYip+B5Q7rNWNSuESPU4zMj5r9Vdmrfo2W6cu93xZXa95Jc3w==","signatures":[{"sig":"MEUCIQDhNnHb1ze2K+NT2o8L5De6spVcFW4ftjbovgehawo3mwIgFmOwkCyAH7FH6VIw4j9n3rpylibmqYTbqz5VyNUVr5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGDWSJW/Y1DTLSlq+k0KCoBlMCX3mjM5fYlcy3Irx0U/AiAqondJRmWh0ItunQsUJEVrwrOg7Q96/9J7OdTPHl1I/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113489123},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.59_1790328573985_0.8538852600452509","host":"s3://npm-registry-packages-npm-production"}},"0.14.60":{"name":"@boujot/happy-coder","version":"0.14.60","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.60","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"508d204378be60041c9ab9fa05b1cc2f1eb4bc4d","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.60.tgz","fileCount":65,"integrity":"sha512-ZKiZa+Igoao+0mSXpyksmDD7VUtLxNAmttPqfgs59mXlgmb83mABig18q7H1plqfZOmHNlFPXOyLnfc9/68u3g==","signatures":[{"sig":"MEQCIGp2R1wPnJYilebDz0Xey0Yl0ZO/7aCsQImhCTgyVcW+AiB5C6/01aVpnyivU18RyV3miCQUFUejmShexolodMe7yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA19BRwRMkK7R6d4LfjUE38NCTlcZRy9JcQ7KyupT5IuAiAKimL64Q9DYNHZUSFu4pt8YtPlZitZ34O4z6vFPX8G9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113497153},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.60_1790330250680_0.7357000824090076","host":"s3://npm-registry-packages-npm-production"}},"0.14.61":{"name":"@boujot/happy-coder","version":"0.14.61","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.61","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"92e8a8854cc4b5de982c881ba6eb7825a356f78c","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.61.tgz","fileCount":65,"integrity":"sha512-ZtvrzdmT9ZclRNx3I1+utS1itI1B8ij9smg2IP27ilRy3aLH7oyu23RQ64JzJvHS78BYmNVpTBLmFYXuu/9MAA==","signatures":[{"sig":"MEYCIQDBgqRoFDkTcsdvfNIOn316BVwaNtbxJu24/bDbNq+x2gIhAKsAK+1LU0rYuDxYuDRrg2XO62ypR1udTQRTtK/BSHdw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICrI2r29OQvfoQYk2vRjevb6BYWiArRtFfLZhzKukbo+AiEAoqRdFLATpkN8Y8ozAKNH3xL9Kckvq+FUlgXsRUXdMYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113505210},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.61_1790335833973_0.14318919974166056","host":"s3://npm-registry-packages-npm-production"}},"0.14.62":{"name":"@boujot/happy-coder","version":"0.14.62","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.62","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"9fd8cff6271ade89936e283dd00b4bbc0d9340a9","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.62.tgz","fileCount":65,"integrity":"sha512-GGvOCoIDqZRB/ZPVfwNMF3cwJagP4uSQd2tSI8Nro6dfFzUmONEYFi/+qCEyGuys5zo2dcxZhg/zayZHvPESAw==","signatures":[{"sig":"MEUCIQDwCxv6N+ItS++0EVbjYStdeoRqj07ulTn6OkkfhOGK6QIgOxzYcYH9oHM+K7CbYVP7bZ9hEiRQeS2bGduEBf4CgVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDIxLqlzAY1wONrWGwmcYdR/ZgrrxiLZGdGuuBCtOy1agIhAI8n5xQHYFBKdYoYHVUQLT1kOfWXFGywtUBcUotueD/R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113506482},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.62_1790336829080_0.9725551814453424","host":"s3://npm-registry-packages-npm-production"}},"0.14.63":{"name":"@boujot/happy-coder","version":"0.14.63","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.63","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"4bd433fa8f532a19fe301144ea61236a647f3ce2","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.63.tgz","fileCount":65,"integrity":"sha512-j8TtFdYoFWWbMLmNB7J2kOe4jmtqPfjGxIiDzneTd7lFtmMgjCw7i3woemfEjTTRNWUJWdJpyKSSvFS9c4dCVg==","signatures":[{"sig":"MEUCIQDyiJXwqAAIcPiGp0I8Se/9qCg73pgqYNaLKYcLiODwKgIgapIiFk9uius2OafhGGZ23670r4o3sdDB9ZEdBWeAPbw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCyULfA7jNwo7qwKlDa6/up1epvfD3qspSWdrwQQtsZHQIhANzYVpm1GJQPXlreeno69tWkjd4joC0vP9dd+P3q/YVw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113505210},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.63_1790337512717_0.5288690125238464","host":"s3://npm-registry-packages-npm-production"}},"0.14.64":{"name":"@boujot/happy-coder","version":"0.14.64","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.64","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"99c4463c7128835603156c435534c38ce298da55","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.64.tgz","fileCount":65,"integrity":"sha512-BVyHK+Z/Ru5mSjz9cdwiraZFAh6gsJK1g50jAPy7TSFe93+lBh2Qa3A796WcOm2wCM/lURn6/CMX4RxfE/oD7A==","signatures":[{"sig":"MEYCIQCzqBWE8NZRfg9NBv3k4n2HfKZqb3pPdf4mt5VoGSpDfAIhAKZ/jPcJcKL4QBW5SV20rEYIcS2gBKzxTNfUVzxkYJAQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCK7VMo4HfRyVUCWC19wk3E4xJ43paNEQmqqTxRr9FmCAIgScJndg1j1LMg6ox6mvHdyY6c5J95gBVuP6ZrObcQndY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113506482},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.64_1790339158798_0.059312484355980466","host":"s3://npm-registry-packages-npm-production"}},"0.14.65":{"name":"@boujot/happy-coder","version":"0.14.65","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.65","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"9190b31b79c2bd27e4c592d8be5831b7fc88df74","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.65.tgz","fileCount":65,"integrity":"sha512-eEWsGwp9++4Ln5Acwao83B9HxETVSRiYxVq+L0nq/2jLd500c9FNw0Ku6Tgnu8ftJP++SA0yHDyMv+lsPNYQfw==","signatures":[{"sig":"MEYCIQDiwOG8pqJgNvtUNd3aF/yjFyKHluyXBctzhN5xu0JdlAIhAKhKSjqNKLvTUw8X+qkw5+w7fA01p2pHrXuP2EqzTqm+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAhOt+sbdMvPtCfvvxOcDn49Hv6LyHjsYJVzCMhIjBf0AiEA+dleedy/PEEuMFe7jB3XXZyM4tkc10aZBbIBShhC1/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113541012},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.65_1790345136165_0.4587166310602244","host":"s3://npm-registry-packages-npm-production"}},"0.14.66":{"name":"@boujot/happy-coder","version":"0.14.66","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.66","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"73b7e65ece4d026b200422e37542645d5bdf6a9e","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.66.tgz","fileCount":65,"integrity":"sha512-mOYxEKOojdSMV8ObV8WifvIJOGuNxZnPBt1GqqafQutfmyMczJcIy4f6VWD0aNsLx6n25Euh4JAPwW7r83wSAA==","signatures":[{"sig":"MEQCIE1XpnGfJlQTOpU5foidSTzCqYkE8QItLIEFIua7mddwAiA9nP7RjFUiin+m9UII9H7s7wx+A486vIjDrnTeGi6Nww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE56VHrJQZ+EA0uTitsiguu1yk31+COHGoq/8fIo/MOyAiAa+jlXz1OXp+9XTtdUkXJgBttyOzVwGvN6ShctckH53A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113544352},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.66_1790366070035_0.03763803287496148","host":"s3://npm-registry-packages-npm-production"}},"0.14.67":{"name":"@boujot/happy-coder","version":"0.14.67","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.67","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"ffc839d8cefc0dd317d5ca1b095d3c5f10a46b28","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.67.tgz","fileCount":65,"integrity":"sha512-meLjTx9qJeFRCrYddqWK22Mr+PDAR/aVwq30F8+htUTqdIv4gxSMdm258b4EMNLvcRSZER7TSFrTrzbDri6HAw==","signatures":[{"sig":"MEUCIQDok641DFNVq3oQgx6y9vIJsZS3feb8vBye2Oy10Rs+1AIgeHFNOEadXnpXLdatY1xxz4ukaP6C554g3XwDWfAfBok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHIANYCvIr9Q+q9kIuaEjssDLLXh9ERVODCzYoOjuPOnAiEA2qnq1+1wjU3O3PBDHLyeSw29N/Mh4rcZ38Pxqlny/48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113545764},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.67_1790370824523_0.3168947808544855","host":"s3://npm-registry-packages-npm-production"}},"0.14.68":{"name":"@boujot/happy-coder","version":"0.14.68","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.68","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"e6b135a3ceeefc3ead45bfa2e7f334800afd5504","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.68.tgz","fileCount":65,"integrity":"sha512-BlQ1kGxDsP2DrXpZx+PGtXfyxuw+e5NhLAuM3QmeeicyAPDuFGht8AC7//ioyQTAh2b8XgGyzsQbnyUagqw4GQ==","signatures":[{"sig":"MEYCIQCNqta+HHoyRiKTc43A2ckvtruWoFGMUy2SGBJsBL8PJQIhAKm4xctSmT6XHsYn3kEMA+pztmlF5kWd+0liaYON39Cy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBq3yi2rDBm7B5LbSWnmuE+FjhRLpAtm5HO7WrVBlkHiAiBbP4iopUWzaYeYnQxiqirJh4oYUS5heDmPdC1ktyUbZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113549294},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.68_1790544288838_0.21493631927657786","host":"s3://npm-registry-packages-npm-production"}},"0.14.69":{"name":"@boujot/happy-coder","version":"0.14.69","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.69","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"1c63e9ce001da27cefd24001d79b0f1e262ca60d","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.69.tgz","fileCount":65,"integrity":"sha512-Be/7VQ6GRUhNDsxqXdMizVpNtpFrwFJlGO/WzZJkN1FoGrZ5AEiLdKhOoFPGpjOsK/H4BC2hH8LeS6kCcjCZHA==","signatures":[{"sig":"MEUCIGXzo6kxTyGGvmBR0rbhWZYJMqugIZrCdUty5whrrIN2AiEA94QZgoXdAoWY94Qn+jGCom0w5Jp6vpdPnYsDz75xs9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBgVdHJgnr/5GZ/22LCLXZ5l8uqYbQRtmKf7XpYLLCWRAiBtml14CSrAv6dYLM5ycsz8vwwN1uj8Eov8iVIM+C5Y3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113551366},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.69_1790585326150_0.17551684327826855","host":"s3://npm-registry-packages-npm-production"}},"0.14.70":{"name":"@boujot/happy-coder","version":"0.14.70","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"@boujot/happy-coder@0.14.70","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"homepage":"https://github.com/slopus/happy-cli","bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"dist":{"shasum":"b2ad6e04f4d25d4ef19eaa3ea46728c403bcfd89","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.70.tgz","fileCount":65,"integrity":"sha512-PhX0hZlzb9P4mJ59wHxHHIj71Ydf6f2+FuEZLdiIbN34OjNolSgHVvG6CFyuvPJDkneB5PUZvEw7AqgFBeIwJQ==","signatures":[{"sig":"MEQCIFCk1aLYEXyd3RhwDiZfnP9C8wqOJAs/GxKYgfV9LbOkAiBXQY0FxMTYQ3pG5eovWa1YIstSwFmM4/RqDkZi2noChA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGItIKMZ9hDGnLevrrdsTvmvpwuiPtdFreXjKHHpPIAYAiAmPoibxYcW0EuVMLhO/aZm1nhL8WfAoEB/I+h5Gl1Gmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113551838},"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":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"guillermo_at","email":"mail@guillermo.at"},"repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/happy-coder_0.14.70_1790588232782_0.04365383454196348","host":"s3://npm-registry-packages-npm-production"}},"0.14.71":{"_id":"@boujot/happy-coder@0.14.71","bin":{"boujot":"bin/boujot.mjs","boujot-mcp":"bin/boujot-mcp.mjs"},"bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"dist":{"shasum":"9ad94e727262678d4365830fc4239606b065c2e0","tarball":"https://registry.npmjs.org/@boujot/happy-coder/-/happy-coder-0.14.71.tgz","fileCount":65,"integrity":"sha512-S5yKXvacoRc+vPDgqPC2bIxoWbs3+C113LoJXGKGflIup/xa8FLZTQZ402jj238WjSWCrSJVqjGJoDXmYVlNNQ==","signatures":[{"sig":"MEUCIDqO0tTCEghHjs8Yh3tfGu0NwutJ4WVmB8KhWC/lUcemAiEArRXi+OtE+0fB1HNsxQOhQJ7THGWDpncHqAGVuf2K2Pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICCuparH6oeRfRasfkQLt+iboWC/SLBQvATw1yGzoamIAiAUO9vD0dGSqQkpjQUa/VFHgwT4kZisIQSkyGnjJQMVuw=="}],"unpackedSize":113560657},"main":"./dist/index.cjs","name":"@boujot/happy-coder","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"}}},"license":"MIT","scripts":{"dev":"tsx src/index.ts","test":"$npm_execpath run build && vitest run","build":"shx rm -rf dist && npx 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","rebrand":"tsx scripts/rebrand.ts","release":"$npm_execpath 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","dev:deploy":"bash scripts/dev-deploy.sh","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","publish:boujot":"bash scripts/publish-boujot.sh","release:boujot":"bash scripts/release-boujot-cli.sh","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 ====":"","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","// ==== Rebranding ====":"","dev:integration-test-env":"$npm_execpath run build && tsx --env-file .env.integration-test src/index.ts","// ==== Development Linking ====":"","// ==== Dev/Stable Variant Management ====":"","// ==== Stable Version Quick Commands ====":"","// ==== Development Version Quick Commands ====":"","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":"0.14.71","_npmUser":{"name":"guillermo_at","email":"mail@guillermo.at"},"homepage":"https://github.com/slopus/happy-cli","repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"resolutions":{"parse-path":"7.0.3","whatwg-url":"14.2.0","engine.io-client":"6.6.6","follow-redirects":"1.16.0","socket.io-parser":"4.2.7","@types/parse-path":"7.0.3"},"_nodeVersion":"24.7.0","dependencies":{"ai":"^5.0.107","ink":"^6.5.1","tar":"^7.5.19","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","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@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","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.8.0","@modelcontextprotocol/sdk":"^1.25.3","fastify-type-provider-zod":"4.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","readmeFilename":"README.md","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","cross-env":"^10.1.0","socket.io":"4.8.3","release-it":"^19.0.6","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/happy-coder_0.14.71_1790880132713_0.4667815086135385"}}},"time":{"created":"2026-02-20T10:49:14.783Z","modified":"2026-10-01T18:42:14.229Z","0.15.0":"2026-02-20T10:49:18.474Z","0.15.1":"2026-02-20T13:06:03.622Z","0.15.2":"2026-02-23T08:26:46.641Z","0.15.3":"2026-02-27T16:24:24.796Z","0.15.4":"2026-03-16T22:01:18.744Z","0.14.1":"2026-05-05T10:37:12.143Z","0.14.2":"2026-05-05T12:06:09.404Z","0.14.3":"2026-05-05T20:30:29.171Z","0.14.4":"2026-05-06T06:26:44.292Z","0.14.5":"2026-05-06T08:44:41.298Z","0.14.6":"2026-05-06T09:46:19.488Z","0.14.7":"2026-05-07T15:33:53.470Z","0.14.8":"2026-05-08T22:09:31.812Z","0.14.9":"2026-05-09T00:59:51.082Z","0.14.10":"2026-05-09T02:00:53.201Z","0.14.11":"2026-06-02T10:05:55.075Z","0.14.12":"2026-06-02T10:11:51.120Z","0.14.13":"2026-06-02T11:09:15.641Z","0.14.14":"2026-06-02T12:17:51.962Z","0.14.15":"2026-06-19T14:42:57.576Z","0.14.16":"2026-06-20T09:53:17.419Z","0.14.17":"2026-06-20T13:18:19.444Z","0.14.18":"2026-06-20T15:00:12.233Z","0.14.19":"2026-06-21T12:59:32.301Z","0.14.20":"2026-06-21T18:19:53.029Z","0.14.21":"2026-06-21T19:29:09.408Z","0.14.22":"2026-06-21T22:20:36.688Z","0.14.23":"2026-06-24T10:54:47.938Z","0.14.24":"2026-06-24T12:21:39.492Z","0.14.25":"2026-06-24T14:50:56.488Z","0.14.26":"2026-07-01T10:59:37.181Z","0.14.27":"2026-07-03T07:38:11.676Z","0.14.28":"2026-07-09T14:55:17.930Z","0.14.29":"2026-07-13T14:12:29.161Z","0.14.30":"2026-07-13T16:23:52.818Z","0.14.31":"2026-07-17T07:38:17.585Z","0.14.32":"2026-07-17T10:43:25.638Z","0.14.33":"2026-07-19T14:39:53.369Z","0.14.34":"2026-07-19T17:27:26.729Z","0.14.35":"2026-07-20T15:56:14.457Z","0.14.36":"2026-07-22T11:31:13.771Z","0.14.37":"2026-07-22T14:57:56.612Z","0.14.38":"2026-07-28T20:01:44.541Z","0.14.39":"2026-07-28T21:32:52.408Z","0.14.40":"2026-08-10T10:16:22.910Z","0.14.41":"2026-08-13T16:30:28.305Z","0.14.42":"2026-08-14T11:21:47.485Z","0.14.43":"2026-08-14T14:47:54.361Z","0.14.44":"2026-08-14T19:34:11.007Z","0.14.45":"2026-08-19T08:11:47.817Z","0.14.46":"2026-08-19T17:46:42.618Z","0.14.47":"2026-09-04T04:24:52.347Z","0.14.48":"2026-09-04T07:50:14.452Z","0.14.49":"2026-09-07T06:38:26.081Z","0.14.50":"2026-09-14T08:24:47.114Z","0.14.51":"2026-09-14T08:33:07.041Z","0.14.52":"2026-09-14T15:00:14.386Z","0.14.53":"2026-09-16T13:38:51.453Z","0.14.54":"2026-09-22T15:00:29.886Z","0.14.55":"2026-09-23T09:42:52.433Z","0.14.56":"2026-09-23T13:15:59.065Z","0.14.57":"2026-09-23T14:28:17.892Z","0.14.58":"2026-09-24T18:05:57.079Z","0.14.59":"2026-09-25T09:29:35.308Z","0.14.60":"2026-09-25T09:57:32.002Z","0.14.61":"2026-09-25T11:30:35.293Z","0.14.62":"2026-09-25T11:47:10.439Z","0.14.63":"2026-09-25T11:58:34.032Z","0.14.64":"2026-09-25T12:26:00.127Z","0.14.65":"2026-09-25T14:05:37.771Z","0.14.66":"2026-09-25T19:54:31.350Z","0.14.67":"2026-09-25T21:13:45.891Z","0.14.68":"2026-09-27T21:24:50.174Z","0.14.69":"2026-09-28T08:48:47.482Z","0.14.70":"2026-09-28T09:37:14.151Z","0.14.71":"2026-10-01T18:42:14.028Z"},"bugs":{"url":"https://github.com/slopus/happy-cli/issues"},"author":{"name":"Kirill Dubovitskiy"},"license":"MIT","homepage":"https://github.com/slopus/happy-cli","repository":{"url":"git+https://github.com/slopus/happy-cli.git","type":"git"},"description":"Mobile and Web client for Claude Code and Codex","maintainers":[{"name":"guillermo_at","email":"mail@guillermo.at"}],"readme":"","readmeFilename":""}