{"_id":"ggk-happy","_rev":"55-975ac87e9a1cb4a5520fea989bf0c693","name":"ggk-happy","dist-tags":{"latest":"1.2.46"},"versions":{"1.0.0":{"name":"ggk-happy","version":"1.0.0","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.0","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"happy":"bin/happy.mjs","happy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"67b5a077821e5458113da7ae5c7b2f7e3d4a7fbd","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.0.tgz","fileCount":64,"integrity":"sha512-U4ZhntbTB6vtLj9JQZrc91nLk9QvhsUb2I1UmqLeLyLNY71MRecTLXWxRK++lb/h6QAeUh+yUkDjnT7xXMYJAA==","signatures":[{"sig":"MEUCIQCaWFROI49Sb9wQyGGVTAPUEIgMcFQoLTZ6Dk7glhTUcQIgIx0MaZgzh9Mo5HQs2Azt97yb93KbTQxuH9Bd94fdgXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270559226},"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":"6d01a96920137646c9d3acf401756529edc22dee","scripts":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs","prepublishOnly":"pnpm test"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"workspace:*","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0","devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.0_1778137409479_0.4871654692733045","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"ggk-happy","version":"1.0.1","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.1","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"96d3c1dbe5d86339f83d47147edd5d52bf2401b4","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.1.tgz","fileCount":64,"integrity":"sha512-D7Pv7m2cqhQssbwAQf3hQ9Qe9QBHR9luCsg2zn4WPMv4B1MYH7Dd4qTzs8A2fFh2dC/BwYw48m5PXkWgzbFKrQ==","signatures":[{"sig":"MEUCICBJmjax3dfyNgVrEsCpJmA+ZNAVD/q2gG9GjNw3spyJAiEAyvd+K7hnTW30ku46a6mScvoLvTmMos0vwO252yMDdTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270559993},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.1.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\4f40e411bb0287c005cbf9a15fa2008e\\ggk-happy-1.0.1.tgz","_integrity":"sha512-D7Pv7m2cqhQssbwAQf3hQ9Qe9QBHR9luCsg2zn4WPMv4B1MYH7Dd4qTzs8A2fFh2dC/BwYw48m5PXkWgzbFKrQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.1_1778139250877_0.4997530860439223","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"ggk-happy","version":"1.0.2","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.2","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"e8b0e41b3c20c47305d6d39ec96f04975e9563eb","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.2.tgz","fileCount":64,"integrity":"sha512-TjJlhgo3P80AX8uH2mswZbTHxKjUl5y9Rq2uLTRDgRzeOaOrHs9RsPDd1HpuvhYayi/Orms3FUSleg8fGvNjGw==","signatures":[{"sig":"MEYCIQC7suqVvLyZnMSd23I3KJKUIevPmd+lsby+aD5Sl6XevAIhAM15+AENt6yQ8Kh2uF3AWoyCn5LslA55GZY/EUPsGXra","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270553660},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.2.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\71cb552e3ddcfff0b1de55f043ae5f18\\ggk-happy-1.0.2.tgz","_integrity":"sha512-TjJlhgo3P80AX8uH2mswZbTHxKjUl5y9Rq2uLTRDgRzeOaOrHs9RsPDd1HpuvhYayi/Orms3FUSleg8fGvNjGw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.2_1778293762760_0.7023020557117052","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"ggk-happy","version":"1.0.3","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.3","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"3b974912e382e4f3210e8996dca0402edcd87bff","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.3.tgz","fileCount":64,"integrity":"sha512-s9oCIOUC0Rl7y40DdGsLcj1kIT1o2lC+0gzbcvVSi+mZfNsZOp3hjmOrzUyfA28qT57iyTU6lbPpR7fzHXZ8yQ==","signatures":[{"sig":"MEUCIA72sxeE0ZJ1oUcAv+IyMKfaJcXZTsQF+iidkk/SdtHnAiEA3uJQuXcWZ5u7brpV9lx6Xy5mLHr8C0keo6bM5hrfaGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270545622},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.3.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\cfcbd41737a06f4be3f353c825da33c8\\ggk-happy-1.0.3.tgz","_integrity":"sha512-s9oCIOUC0Rl7y40DdGsLcj1kIT1o2lC+0gzbcvVSi+mZfNsZOp3hjmOrzUyfA28qT57iyTU6lbPpR7fzHXZ8yQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.3_1778310712549_0.6340920658572564","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"ggk-happy","version":"1.0.4","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.4","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"75a040593ef472c520ab4bec451a8084bd98ecd6","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.4.tgz","fileCount":64,"integrity":"sha512-dYuFAb1FJQdd8NB0lzMWObQVZ9rTUBzuGBdWVfzBnakGpIHoeBB3ORi3QvHL/iq3VbntXZIpY29gXjUG7+4QEA==","signatures":[{"sig":"MEQCICisn1a+DwECyUSnCUTSxsCa7s3dFPL6frqXLQelbQ46AiAqgSRaJSYMcf+e+UFdPAwE10/+vM9QsQlFpE++Hk2Vtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270545690},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.4.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\bca35bd01079242634366a9da3344ba9\\ggk-happy-1.0.4.tgz","_integrity":"sha512-dYuFAb1FJQdd8NB0lzMWObQVZ9rTUBzuGBdWVfzBnakGpIHoeBB3ORi3QvHL/iq3VbntXZIpY29gXjUG7+4QEA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.4_1778738269918_0.4075380814742846","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"ggk-happy","version":"1.0.5","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.5","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"e6c0e94f4f380ab0ef347c5221a1f078e4a76960","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.5.tgz","fileCount":64,"integrity":"sha512-JU3y59u29wc+jvf4Iq0oVZkpRu1IHZPZgeEBxZE7hYhIRUjH6Vw67oLF1fnSJhVgnQvfcUgCXIi+G8zDKALdsg==","signatures":[{"sig":"MEUCIQCEpxNv4kuiZ2OO+y9H7esDmt8Gft+9ce06lfxbJP/gbAIgYj11ewnpjVwCngdyt9O2Vk7F+5oKp9aPr1ddsN1SUKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270549610},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.5.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\b4832b70b944ed960b08eb694f54ba7f\\ggk-happy-1.0.5.tgz","_integrity":"sha512-JU3y59u29wc+jvf4Iq0oVZkpRu1IHZPZgeEBxZE7hYhIRUjH6Vw67oLF1fnSJhVgnQvfcUgCXIi+G8zDKALdsg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.5_1779160966066_0.055535850290294286","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"ggk-happy","version":"1.0.6","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.6","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"cc818f71690bde06205742b9ee5bd82ea98a6309","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.6.tgz","fileCount":61,"integrity":"sha512-qSVgXDHksCAVRLoNPtdgMYoJkJuMYjCpodW3S7rCigAudWRdB5bxQeTqGViDO6JPbj6x8konB3J4+Ba1h820pw==","signatures":[{"sig":"MEUCIQCt+OH4R/h49IdebOeW9OZc1RvtAGnbKIAnDkRcF7ICxAIgfpWLWbMNWNdCpQ2h1N1a+ATxdZVO/fiOcPblH57OoPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112317103},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.6.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\fc477e10bfd7a7bcef76386bbc20919a\\ggk-happy-1.0.6.tgz","_integrity":"sha512-qSVgXDHksCAVRLoNPtdgMYoJkJuMYjCpodW3S7rCigAudWRdB5bxQeTqGViDO6JPbj6x8konB3J4+Ba1h820pw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.6_1779414213195_0.0003038843366167665","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"ggk-happy","version":"1.0.7","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.7","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"2a1d0853af56839ff2f9008c0f49170d9326c365","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.7.tgz","fileCount":61,"integrity":"sha512-EtFUx7CbwTxCHANFNJXsSU+tEE2NGOWhBq3xC3JZ7aS4QVeVyPlKYXPZzLtMWKgjUQHiv4o0ZkU5tjEXEdDJ0A==","signatures":[{"sig":"MEUCIQCclM/eBzpEgjdqx6sh6dTOGq1SiyBs9Q2n+pcx/AACBQIgAQh+K/FnIFWHvEgLyIy+R2j3IflVHcgmofdYQMurW4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112316403},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.7.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\63fb401d539dbb616bf802fd6eb613b1\\ggk-happy-1.0.7.tgz","_integrity":"sha512-EtFUx7CbwTxCHANFNJXsSU+tEE2NGOWhBq3xC3JZ7aS4QVeVyPlKYXPZzLtMWKgjUQHiv4o0ZkU5tjEXEdDJ0A==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","qrcode-terminal":"^0.12.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@types/qrcode-terminal":"^0.12.2","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.7_1779441436489_0.4969738633849068","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"ggk-happy","version":"1.0.8","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.8","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"ecf35d229cd0305f0c5b9033d02c418e5756d308","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.8.tgz","fileCount":61,"integrity":"sha512-NmiL15Ak8kOPbjcnraIho6i9zS1oaV8XJk6tGp7kI7bkpGE2pdJe89yfBEgYkY92qJQthBcnPQhmEwIpk9vQfg==","signatures":[{"sig":"MEUCIQDa4Wk3pJqwfsUe0i7yNU7c6TWiLs72WUYnOt2smngE0gIgS1KC+Z7++cViCxW2D7icyneICCB1F6l/YuJshhDTfHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112317279},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.8.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\8bd7e590a52a38e49eb9c5882b42010e\\ggk-happy-1.0.8.tgz","_integrity":"sha512-NmiL15Ak8kOPbjcnraIho6i9zS1oaV8XJk6tGp7kI7bkpGE2pdJe89yfBEgYkY92qJQthBcnPQhmEwIpk9vQfg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.8_1779691204827_0.07499094724344624","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"ggk-happy","version":"1.0.9","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.0.9","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"50faabb164d08233c4faf8c64aa07899b0f8f4df","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.0.9.tgz","fileCount":61,"integrity":"sha512-MF8irpW9T+XAryCVOlOnJ86QYz5VHOi3Bc69kggE+gMeaKoiksVGgUp18Lsda0iBSOulj58ve1TZ/zk+uS5xeQ==","signatures":[{"sig":"MEUCIFjsO8+gXwkvkwO/BOIHkGE/U5k7cRGe+rsqFTY2wFz3AiEA35fvdeAsBU4YHigEGStVQLyv4kDQXN6ki9Udv/Jy57M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112319681},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.0.9.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\862cf18e3695f4fb3ac091908f734ba3\\ggk-happy-1.0.9.tgz","_integrity":"sha512-MF8irpW9T+XAryCVOlOnJ86QYz5VHOi3Bc69kggE+gMeaKoiksVGgUp18Lsda0iBSOulj58ve1TZ/zk+uS5xeQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.0.9_1779782702262_0.7768471016291474","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"ggk-happy","version":"1.1.0","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.0","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"67010d5215afdd8b4905828d407b0f8521cf7703","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.0.tgz","fileCount":61,"integrity":"sha512-P6R0Lxg/hodbNUr43UAAucJqYRf93jgAE45tdsvkW9BZVKvQNaWlQkokMaIx++KDfrRjW0qI8Aj+sxMhvXtFCQ==","signatures":[{"sig":"MEQCIGbf2+a5MgOdXw0T+QN5Y1RWtFA7vL2Ba7p0qwuboYrxAiAmxXFowuYAEi8C2x52l5chK+is+VcPGVRcUK+KbW6s9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112321023},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.0.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\815af08c3a442dd4d99b71818259ef8e\\ggk-happy-1.1.0.tgz","_integrity":"sha512-P6R0Lxg/hodbNUr43UAAucJqYRf93jgAE45tdsvkW9BZVKvQNaWlQkokMaIx++KDfrRjW0qI8Aj+sxMhvXtFCQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.0_1779785960870_0.004055274359562322","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"ggk-happy","version":"1.1.1","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.1","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"119307b62792878a53b129e8f5bf0ef2c209854a","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.1.tgz","fileCount":61,"integrity":"sha512-S+OcFg/fTcO9PiJdGEZEvmJSa5KYVOYAhMHP9XEvQHmZdoHq9qsjwSbsmP8urwaVW0Kpcl4hagvQ08LZDDU6Uw==","signatures":[{"sig":"MEUCIQCptvomSMlttwSZFFW9pgPP0znMAKzzrdJa3MtUvrxLEQIgC/CdfLwhQJalCB3J/yOY1EKpR19YDzPwNyU3w010C2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112321530},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.1.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\20c8e88691d73b44e5b613fdfb2bf417\\ggk-happy-1.1.1.tgz","_integrity":"sha512-S+OcFg/fTcO9PiJdGEZEvmJSa5KYVOYAhMHP9XEvQHmZdoHq9qsjwSbsmP8urwaVW0Kpcl4hagvQ08LZDDU6Uw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.1_1779788004366_0.3160067037994101","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"ggk-happy","version":"1.1.2","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.2","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"2ee87173a57583f21c2a8ff613ec55da09695389","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.2.tgz","fileCount":61,"integrity":"sha512-uvRUcNbK7o9qG4qwfjPy9xumJ8Gp4wkxsBbeE1w4uwlNHfoWg/PezbYRKT5iuCwam18V0L612r2MBYfe6So45g==","signatures":[{"sig":"MEQCIFjfOA8WSPmG55C6tv5x+Gqd7U8QOqLljjbSYVCekhmFAiAbynHBDqd6MkQocWhHAmQZMbhzwh8vNACzaXemmocztA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112321546},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.2.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\b8563c0a42ef5efd426740859a587f36\\ggk-happy-1.1.2.tgz","_integrity":"sha512-uvRUcNbK7o9qG4qwfjPy9xumJ8Gp4wkxsBbeE1w4uwlNHfoWg/PezbYRKT5iuCwam18V0L612r2MBYfe6So45g==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.2_1779793671458_0.0785131275151909","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"ggk-happy","version":"1.1.3","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.3","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"9477f2e64661475b0b2db5adda4945ddc3a45a6d","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.3.tgz","fileCount":61,"integrity":"sha512-dXuO3Qu9ndOAkJGG6V9R8s2VPpjBRbvZht3tdPOm03BfiOMon1jxxAn7zjbjihhnHBJITAYh93roNUC/eHDqJg==","signatures":[{"sig":"MEQCICL8A+EQqmvdsllTbclZeZdQu4mJM+fG+3CfvpxZVHQkAiBO5un+DTHGbrJy6VuUmoCgwrQZ4MiDOLUMzK2p5wyOdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112321562},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.3.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/unpack-tools.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\2c224acc0c53b8534185ced7d5ff2f69\\ggk-happy-1.1.3.tgz","_integrity":"sha512-dXuO3Qu9ndOAkJGG6V9R8s2VPpjBRbvZht3tdPOm03BfiOMon1jxxAn7zjbjihhnHBJITAYh93roNUC/eHDqJg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.3_1779794713465_0.8715018209056802","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"ggk-happy","version":"1.1.4","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.4","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"2a11cdf4e6a3a47ae2dfaa709afd8423af06753a","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.4.tgz","fileCount":62,"integrity":"sha512-4BFbBLZrhqMX+T4H9ThMVmiTpZIP9MbMzPTgQtcsbDQJcQp+diQ3ubEgq5Dr17ydLvfx3zl8OH329Qh4D/aWAg==","signatures":[{"sig":"MEUCIBuoAurbWLJeG6azPOI5Yh/RtrMRKCgv2QJzPlryo4dtAiEA5BJ71eOy+CLwKnu0KJl6bTeXqr3WmftF8whuSEl0hSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112346336},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.4.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\548cf5b9c8c883eebef1ac082e2495d4\\ggk-happy-1.1.4.tgz","_integrity":"sha512-4BFbBLZrhqMX+T4H9ThMVmiTpZIP9MbMzPTgQtcsbDQJcQp+diQ3ubEgq5Dr17ydLvfx3zl8OH329Qh4D/aWAg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.4_1780019982124_0.9132730028547515","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"ggk-happy","version":"1.1.5","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.5","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"723645abb0baa5c70ec2083109fe9e5b7d7e8146","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.5.tgz","fileCount":62,"integrity":"sha512-ixnGWFFYucm5nLn7DI5vVagdjr0U0Juux3q4wrv9plja4QM3Q+5c3+kpvHd8TQMG1Csqdplrv6Grg5Jksqw/HA==","signatures":[{"sig":"MEUCIQCZiT9uj670b6AXBjbN/320qhulBBjEYuqEteyrPMPF/QIgUQTyJN2CxV6a8Xn04RqTCCVSW9mAzF604PLt7+XvCOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112345150},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.5.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\1169b24130cbe2c9cd989378df2b8857\\ggk-happy-1.1.5.tgz","_integrity":"sha512-ixnGWFFYucm5nLn7DI5vVagdjr0U0Juux3q4wrv9plja4QM3Q+5c3+kpvHd8TQMG1Csqdplrv6Grg5Jksqw/HA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.5_1780031937400_0.5195930659168142","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"ggk-happy","version":"1.1.6","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.6","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"66b32dac6cd371330c8f2b6df3f0bcad3fe7fc34","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.6.tgz","fileCount":62,"integrity":"sha512-X9kfMgaHXkCQ9dnnGT53Ba8jajwlw2RYM2uU4Xh4xEO/1Sa/8Pu6F92ctIKkmkXad/ylu50ADLh+CK8v1T71EA==","signatures":[{"sig":"MEUCIQC119xxUnTvGtKA6+pXjzTeKiD1VIwe86hhjNfoufbfKwIgXxIkUmAmNfSSpwnIBwcgofx0B4bdW+cX38VvafdpHr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112344950},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.6.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\82bc97b6ffeb9a720995071cb355fb54\\ggk-happy-1.1.6.tgz","_integrity":"sha512-X9kfMgaHXkCQ9dnnGT53Ba8jajwlw2RYM2uU4Xh4xEO/1Sa/8Pu6F92ctIKkmkXad/ylu50ADLh+CK8v1T71EA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.6_1780039033977_0.925430383242714","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"ggk-happy","version":"1.1.7","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.7","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"67baef3682924f2ec4e3e1e680dfdaf4d93c9028","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.7.tgz","fileCount":62,"integrity":"sha512-kAXPuPozi0GVC1reldMuy8Q+zEFRrtePiorMk3QW2HdOq8WFpx/J74FDme2Vxhjp3kvsKgOiXnI3xCrT1rH1Xg==","signatures":[{"sig":"MEQCIBrcva52D3Wjb9H/QFPvCMFNt7qexwcmAm5Hid+QOwv7AiBPzXxMfeEDyLOL/Kxc2uCOQxQinJqVxC4W2NRkAsywbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112348372},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.7.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\815bcf36c43a2c608bde2177a7383a96\\ggk-happy-1.1.7.tgz","_integrity":"sha512-kAXPuPozi0GVC1reldMuy8Q+zEFRrtePiorMk3QW2HdOq8WFpx/J74FDme2Vxhjp3kvsKgOiXnI3xCrT1rH1Xg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.7_1780044813099_0.9218030773585872","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"ggk-happy","version":"1.1.8","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.8","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"55e3feab2ebb2a1ac46d8fd6ab6b8e061ad89026","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.8.tgz","fileCount":62,"integrity":"sha512-aruiMFF0ds/6j9nRhq/v4W13TCXbbq4lpQySoKOEiQLsU15/Z7byHSoBhosvgpO0CZ7UwE5D2NpvLA8N4uOaXA==","signatures":[{"sig":"MEUCIQDH2GvEJPwW+GaiWRQI/99kgm9fCN25H3rYqdn0xik7UQIgZz+DG3mCNJq4IL26xpfSk91M91JuQ/VVOjEr5ilnw5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112352719},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.8.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\2f876191c5feb44d97966762201efdf3\\ggk-happy-1.1.8.tgz","_integrity":"sha512-aruiMFF0ds/6j9nRhq/v4W13TCXbbq4lpQySoKOEiQLsU15/Z7byHSoBhosvgpO0CZ7UwE5D2NpvLA8N4uOaXA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.8_1780048457284_0.7019492680195787","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"ggk-happy","version":"1.1.9","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.1.9","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"521e8c2074c5c69a1da2b22933a5739e84381bf0","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.1.9.tgz","fileCount":62,"integrity":"sha512-HaHCDMk9JhRJGrjgcx189IAeM1blAkHp+cnEPV3ZEFR1L7s8WyepVbuti9rEerSccdtBvL/L6tiC0DclYiXkqQ==","signatures":[{"sig":"MEQCICXgceB6Lhhg32zsbkiFxbTCLA1BTSu8ac5h8LMd+mSgAiBIW8CREweIHDz1WCeoEUhp2FDGJRDQWO2wMxoadi1HtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112352729},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.1.9.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\f4a3c7b1e8ac7d3da0d19dbe70c24925\\ggk-happy-1.1.9.tgz","_integrity":"sha512-HaHCDMk9JhRJGrjgcx189IAeM1blAkHp+cnEPV3ZEFR1L7s8WyepVbuti9rEerSccdtBvL/L6tiC0DclYiXkqQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.1.9_1780453373389_0.48863738021488157","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"ggk-happy","version":"1.2.0","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.0","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"ecc7da9672ba7136e0b0b7a26c9c1d6cf936ecc5","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.0.tgz","fileCount":62,"integrity":"sha512-NJLcVZ2PkcM2E4UiHjacV6dc9aLPSCBN8JZdfkN8UljUG1lSNsBWaOjB+HDKqq2Yf6jch7PBJLGavB0xFhf+BA==","signatures":[{"sig":"MEYCIQDgVLdgCvMNWxTnSNkGx7RNsZ6iNVvqsEcIx02OXqlCgwIhAJL+7Tlwdk8k1kLtRdFVwuIs289hohHXBOjPayV5nmFI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112352467},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.0.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\75f8d1de37812eb2e84b432892095679\\ggk-happy-1.2.0.tgz","_integrity":"sha512-NJLcVZ2PkcM2E4UiHjacV6dc9aLPSCBN8JZdfkN8UljUG1lSNsBWaOjB+HDKqq2Yf6jch7PBJLGavB0xFhf+BA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.0_1780551319229_0.25414111146427976","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"ggk-happy","version":"1.2.11","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.11","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"c54274fe849986dc17ffd1b5c4fcdbc681d8e6ff","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.11.tgz","fileCount":32,"integrity":"sha512-Z0rEQwUnsDl4eg5KZQd0qvrNaLbxq9sm2R6fjuMmk39+sb8a7QhkXq73CpqgKojTWt2aVEVPvrb3BQYf2DJgtg==","signatures":[{"sig":"MEYCIQDnEko4DWGCJ4PkgqbZfS0EAbUg/FEumZm3V7NRCBYo0AIhAO8TzvCMkxr70jgQlYTcjYNzfBV2roEW/bZIisOuOnA3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110827917},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.11.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\30bca449f94b88f49be56f0c2a2a0527\\ggk-happy-1.2.11.tgz","_integrity":"sha512-Z0rEQwUnsDl4eg5KZQd0qvrNaLbxq9sm2R6fjuMmk39+sb8a7QhkXq73CpqgKojTWt2aVEVPvrb3BQYf2DJgtg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.11_1780627572494_0.22678841239372782","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"ggk-happy","version":"1.2.12","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.12","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"48f2f773b8ce5a2208c4b4098d8892cfcefcce7a","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.12.tgz","fileCount":62,"integrity":"sha512-Eqp8JnCAaI6PQ1coDRhtQs8b4KwMGhSK8MSGqzb51LwPDTdsvuZjliuSyZ8v1v3Qtsj2hTZRKGSBRy7EYTX51Q==","signatures":[{"sig":"MEYCIQCfPG+07KZUwZ7t04sNW9i2pSGvkDmdgwCjbe69CUxk9QIhAP8CJ6RRY3rAjknSh8MM/xcjw95U8jOhuD0gwMG1YBuN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112353042},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.12.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\65f05698499cd99713f8569b2e136de4\\ggk-happy-1.2.12.tgz","_integrity":"sha512-Eqp8JnCAaI6PQ1coDRhtQs8b4KwMGhSK8MSGqzb51LwPDTdsvuZjliuSyZ8v1v3Qtsj2hTZRKGSBRy7EYTX51Q==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.12_1780629520358_0.23593463297713058","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"ggk-happy","version":"1.2.13","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.13","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"3f874bd0f5a6550c84fd7fa62a34a672192784df","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.13.tgz","fileCount":62,"integrity":"sha512-g8O/+SCVrv4fXfkP9sTQRMBz81PjCypD0y1Cgc70b20daTpPk/hWm32kNmywfn6xvdMbj1/ekoc2harjnawNzg==","signatures":[{"sig":"MEUCICYFA53NNvDGdQPNQ4ceRIx19tuXknc/kzYd8/CX1JyWAiEAo1UNGVbewhWjpOWY9D7Gzl5Rb9bNPhe/+12/WAdcRAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112353848},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.13.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\670d300de815cf503eb572c5d4fd6cf6\\ggk-happy-1.2.13.tgz","_integrity":"sha512-g8O/+SCVrv4fXfkP9sTQRMBz81PjCypD0y1Cgc70b20daTpPk/hWm32kNmywfn6xvdMbj1/ekoc2harjnawNzg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.13_1780645266777_0.8040127478424117","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"ggk-happy","version":"1.2.14","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.14","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"9f4c8fdcb7af94ceb9163bdb6d0c05a0d97d881a","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.14.tgz","fileCount":62,"integrity":"sha512-Lzu8oyL1G2CjLThinkGTTyPniZgLUgFig7BbGCHity/ZuOaomqlnZp0BbDCLWLgYSLvH8YgiaPUwCoCtrIsbPw==","signatures":[{"sig":"MEYCIQCS83UnSmI5gXtc/XhudkTom9Fe/fSSIDlPdpXqjJDpQwIhAJAnUbXZNO8+Cd+WFnbbU437v/kSKWS9T78xutIiKHk3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112354019},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.14.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\2ddde372e2efc209e96c073354bb9cec\\ggk-happy-1.2.14.tgz","_integrity":"sha512-Lzu8oyL1G2CjLThinkGTTyPniZgLUgFig7BbGCHity/ZuOaomqlnZp0BbDCLWLgYSLvH8YgiaPUwCoCtrIsbPw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.14_1780647129525_0.6870968317639019","host":"s3://npm-registry-packages-npm-production"}},"1.2.15":{"name":"ggk-happy","version":"1.2.15","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.15","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"c87a4b734e3e73b8a129901d45d5984c3eb55c51","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.15.tgz","fileCount":32,"integrity":"sha512-saoJmbTLFgiq8ZmaN7OkDlJSlP/67FJpmQPFrda0J5+tjnO67S/xwh6KfNck0c4/S1sauT8/qbgAhR+LAWS39g==","signatures":[{"sig":"MEUCIEGdsLZ56x+Qf0ilpdbjQHg7+8oRv4o+WdQFS93ndXj0AiEA2XZea68gxTaxucg70Z/OxYPCkklql6umAdeCx/A/Hts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110828088},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.15.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\57050a700fc99a7bcd52cb7d7a0fa9dd\\ggk-happy-1.2.15.tgz","_integrity":"sha512-saoJmbTLFgiq8ZmaN7OkDlJSlP/67FJpmQPFrda0J5+tjnO67S/xwh6KfNck0c4/S1sauT8/qbgAhR+LAWS39g==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.15_1780651125080_0.8472987657603337","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"ggk-happy","version":"1.2.16","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.16","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"f7faddae0305babe97c91a6b7c213d783f85d079","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.16.tgz","fileCount":62,"integrity":"sha512-juB2pxl6S3G05k3kWm1pbZ3ODQ+OQdM3olA6jSo+3+8nRkgmPODsN5CSLZUGTrY/OnRXgkelJwAYMIVGKwxuYw==","signatures":[{"sig":"MEYCIQCUT/JS35QS4Ap4UwBrRmJiHtOTl/Vaq88qYO5BVgdltwIhANl80AqCXzyXi6fh/kpZ1P4Yn+j3dSHU1W511hLjgzHy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112355142},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.16.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\d3151c17315d98bd1c16ca7be7787e03\\ggk-happy-1.2.16.tgz","_integrity":"sha512-juB2pxl6S3G05k3kWm1pbZ3ODQ+OQdM3olA6jSo+3+8nRkgmPODsN5CSLZUGTrY/OnRXgkelJwAYMIVGKwxuYw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.16_1780652459150_0.4752919436192975","host":"s3://npm-registry-packages-npm-production"}},"1.2.17":{"name":"ggk-happy","version":"1.2.17","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.17","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"9bb888428882d7ffc62224e03e6563804ad00b7d","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.17.tgz","fileCount":62,"integrity":"sha512-PSajDfo1a5iP1EGWLV0GGKifPySIzXtqeWgiyRrD4e5IJeQ/TB69W/8GUcb+sQpp01PJ7NctsVISLUmXQGsvRA==","signatures":[{"sig":"MEYCIQCKtbzOODvyvDfNLr0KovHaXRg0OiBuhb3CwGjl9QkD4AIhAIw7nINQKaTR191lJCKRdcORuRW00CO+XKnF+PbHiTAm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112354945},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.17.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\48b5f4bec8eaf3111117cfc6feda77e2\\ggk-happy-1.2.17.tgz","_integrity":"sha512-PSajDfo1a5iP1EGWLV0GGKifPySIzXtqeWgiyRrD4e5IJeQ/TB69W/8GUcb+sQpp01PJ7NctsVISLUmXQGsvRA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.17_1780654003201_0.6086895528155154","host":"s3://npm-registry-packages-npm-production"}},"1.2.18":{"name":"ggk-happy","version":"1.2.18","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.18","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"11afa52bdd381f2df02bc8774381ac7985920430","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.18.tgz","fileCount":60,"integrity":"sha512-afDqzqkImcQRhD6sH9M1gA/q11WOg4xhXtUfY3n8An/wdaQKBKY4JkYVb8YPXkP0AxS+pB/6bAY2mERltnsQqg==","signatures":[{"sig":"MEUCIQCURn9UM1b4WFuX6i2H0r6sIc+K2G7NLvM/LL9SQH/TmwIgFTcO+tLMu79ZEturQScuaILYwTl7pQiCzqDYyqKLrnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112510522},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.18.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\bda5303b8bb2956aa53de37dc3c6d2e4\\ggk-happy-1.2.18.tgz","_integrity":"sha512-afDqzqkImcQRhD6sH9M1gA/q11WOg4xhXtUfY3n8An/wdaQKBKY4JkYVb8YPXkP0AxS+pB/6bAY2mERltnsQqg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.18_1781668697832_0.7831870795095952","host":"s3://npm-registry-packages-npm-production"}},"1.2.19":{"name":"ggk-happy","version":"1.2.19","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.19","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"f150b479a5fdc7a33ff0d37c7769894da2d8b831","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.19.tgz","fileCount":60,"integrity":"sha512-lCnJTdVsRyUPU9fnHgFH5vjqV1MkKJdSMWT0Gu3hiTTDld7L7pzr8JY0i+dpRvVurOmZ2wxhBNpnpe+jMq36AQ==","signatures":[{"sig":"MEQCIHmgy73Bl3UdRvl0JKIS8qFbH579yHXO5SPvljJzCVSdAiBcx1jR7OUjuqC9N5yGz92jsab2/R5mSUm+XfkYXKXzYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112510600},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.19.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\854c0500c8b0ab32d6a94232f6389b94\\ggk-happy-1.2.19.tgz","_integrity":"sha512-lCnJTdVsRyUPU9fnHgFH5vjqV1MkKJdSMWT0Gu3hiTTDld7L7pzr8JY0i+dpRvVurOmZ2wxhBNpnpe+jMq36AQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.19_1781752361969_0.24318435460220034","host":"s3://npm-registry-packages-npm-production"}},"1.2.20":{"name":"ggk-happy","version":"1.2.20","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.20","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"5f2ba62f267843c111bf7ad4537ba288ab4fc889","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.20.tgz","fileCount":60,"integrity":"sha512-VlEPTVjtLQjSWTyY5UOYTINaJNpLUJPCVIoGupSdQkVesRgCNwNLZgLwtIsKE63H4awPysliXiHd9Bl0YEfEaQ==","signatures":[{"sig":"MEQCIFFeHGxMilog29OhRXB3f0dpI1fGbDFynaXasJCjP5hCAiBoRlodvZiXRPzoNF7T9C4HvO/fAZXK4thYmiz+zwb+bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112510600},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.20.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\5d761b6d2662ef90a751c49c47d71f39\\ggk-happy-1.2.20.tgz","_integrity":"sha512-VlEPTVjtLQjSWTyY5UOYTINaJNpLUJPCVIoGupSdQkVesRgCNwNLZgLwtIsKE63H4awPysliXiHd9Bl0YEfEaQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.20_1782459119985_0.8358190604006324","host":"s3://npm-registry-packages-npm-production"}},"1.2.21":{"name":"ggk-happy","version":"1.2.21","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.21","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"a875d2b53476efc4a5a6bb51e04dc1212812437e","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.21.tgz","fileCount":60,"integrity":"sha512-Ld5HqqHBCR7JV8iqqgoh39w6HqpGf286R84iNf6GpnSX4afxjgEl2zvxtWwrx5pgDNDPpKagAOU+qZv2EcxLiw==","signatures":[{"sig":"MEUCIQCxPcd7xbIqaf3UtJosM0VhVW2r3eSiycSIyg4u5CLF8wIgPJx4Zm5K8STCu4/IVyzyT2BhOwT9AEfKPmRgYTKWMQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112516024},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.21.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\9a98041a2a16db5384390c2930898247\\ggk-happy-1.2.21.tgz","_integrity":"sha512-Ld5HqqHBCR7JV8iqqgoh39w6HqpGf286R84iNf6GpnSX4afxjgEl2zvxtWwrx5pgDNDPpKagAOU+qZv2EcxLiw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.21_1782717772407_0.7055485771311643","host":"s3://npm-registry-packages-npm-production"}},"1.2.22":{"name":"ggk-happy","version":"1.2.22","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.22","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"7ab0cf596c61d944df7b17221f7b480787c8de64","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.22.tgz","fileCount":60,"integrity":"sha512-nB2iqaPtVuQrQ9wuGtetGyiuq3TyUkgUETBVVM0TSJbdHBN5wILdqfyjiu0kvtg/xvc7qkmV2wBJAZAQ5y7hWg==","signatures":[{"sig":"MEQCIDmxWjFaSKj9eq3wMVQ4Cgm1iqYCUrN4kD1uvTA45y/8AiASPJQOTcKBtx/Gf13/XRhk5Lx6z2PQICqD/S9eu2Q4Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112519652},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.22.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\cac986baa1098ae021646e8d8159620d\\ggk-happy-1.2.22.tgz","_integrity":"sha512-nB2iqaPtVuQrQ9wuGtetGyiuq3TyUkgUETBVVM0TSJbdHBN5wILdqfyjiu0kvtg/xvc7qkmV2wBJAZAQ5y7hWg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.22_1782810470488_0.021706637257231653","host":"s3://npm-registry-packages-npm-production"}},"1.2.23":{"name":"ggk-happy","version":"1.2.23","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.23","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"a02b2a9362e80a839ab75263cf7276493915216f","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.23.tgz","fileCount":60,"integrity":"sha512-/ErP+lS2NrJapuV0XhBXnhtYgtTDOOuH81ZQWSebR8f1FP59NsOZRREjQ1fQjSCf+oIxt+/bPj/Hzc7Due0a2g==","signatures":[{"sig":"MEUCIBqojJh3riaVNsVkDEWwPpeb+G+g3Ifg9abLwhXvuMmfAiEA8x+kKUypjl1SG9NQq8LB12uijmtTcrJDMyJirBZYz0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112519338},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.23.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\3179820aea1c17a8f3342b3e87e891a2\\ggk-happy-1.2.23.tgz","_integrity":"sha512-/ErP+lS2NrJapuV0XhBXnhtYgtTDOOuH81ZQWSebR8f1FP59NsOZRREjQ1fQjSCf+oIxt+/bPj/Hzc7Due0a2g==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.23_1782887496826_0.8185252712523812","host":"s3://npm-registry-packages-npm-production"}},"1.2.24":{"name":"ggk-happy","version":"1.2.24","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.24","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"9d42341eaecee68703cced3be3c3ad5ed15bc5e6","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.24.tgz","fileCount":60,"integrity":"sha512-FpI96c16bSDH/tCXQ0Tsr8aqOH0rFXNl+2Jh6hzPzmAkSVS7RVsjD5fc7l86MmS+6+mr4H5vgqvOkD3wg4zO8A==","signatures":[{"sig":"MEQCIHBOi7ZxUxz+8PVVBrWim+fCX4iPbLoFN3UzZxMgAtAJAiBXrLpEISL2L4TVQGFePPEDRl6ZfTYuvWsIdMzNoMsblg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112410493},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.24.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\3fc2daafad29badb85e3e78faaf8368f\\ggk-happy-1.2.24.tgz","_integrity":"sha512-FpI96c16bSDH/tCXQ0Tsr8aqOH0rFXNl+2Jh6hzPzmAkSVS7RVsjD5fc7l86MmS+6+mr4H5vgqvOkD3wg4zO8A==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.24_1782901220515_0.5844040108931015","host":"s3://npm-registry-packages-npm-production"}},"1.2.25":{"name":"ggk-happy","version":"1.2.25","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.25","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"3f8277e57472c207c2984567b87dc5b22cf53398","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.25.tgz","fileCount":32,"integrity":"sha512-qPL3ZtqwJGINs36Uh+WBD7z3TOUBb9H3kZOWWFe91ojJykJ5chZFFpuj1R5KWv4a2pIxXlY/hFcOUXsP1TM7Kg==","signatures":[{"sig":"MEUCIEF9EiOiU9fmwp5Ig+Xmc89mqQlplxRoAYZAPhhwPiCzAiEAj2f+461KXiUmKws7OuGGbgjmBn/Go6rtIqKofYFofzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110827891},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.25.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\e26e25c035720fb6900695046201d0b6\\ggk-happy-1.2.25.tgz","_integrity":"sha512-qPL3ZtqwJGINs36Uh+WBD7z3TOUBb9H3kZOWWFe91ojJykJ5chZFFpuj1R5KWv4a2pIxXlY/hFcOUXsP1TM7Kg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.25_1782975416671_0.5188581120978117","host":"s3://npm-registry-packages-npm-production"}},"1.2.26":{"name":"ggk-happy","version":"1.2.26","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.26","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"92f7e7d3fe6989420aa77a3099de432487642bb1","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.26.tgz","fileCount":60,"integrity":"sha512-nrnde8FGrFgkhz9Y2lLsbtkbIT0QIOfkONyV/t2x3d3+0nXWgnoYL3lqEKLD/fD2xJ/jaVTuM5wjxGPqjYrhpQ==","signatures":[{"sig":"MEUCIQCSPBCxxSPDQz7uPS6OUXPUwVPENK97cCxZzReY86OT7QIgWBwM/vLn85hY2WJow9WDdfqcVyXmaVI3NK2ZpP0m8xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112416361},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.26.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\089bb2114efb8d3c56ddd04a7fc180c7\\ggk-happy-1.2.26.tgz","_integrity":"sha512-nrnde8FGrFgkhz9Y2lLsbtkbIT0QIOfkONyV/t2x3d3+0nXWgnoYL3lqEKLD/fD2xJ/jaVTuM5wjxGPqjYrhpQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.26_1782977601903_0.7963341800756512","host":"s3://npm-registry-packages-npm-production"}},"1.2.27":{"name":"ggk-happy","version":"1.2.27","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.27","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"e5c312504646292b4155f1100f4acaf3dec7325b","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.27.tgz","fileCount":60,"integrity":"sha512-N8hmfTjnJ1o7BzWzFf8dr53tGUqGcvCKbMQfLQE2U74eU2HEOAoIutitjEK2J5zRAMHjFi8gqsGfxewXecXBug==","signatures":[{"sig":"MEUCIBSRl20LgR1Xszi50zbr8Wgv2Duli61/9w8k7YMwSRHnAiEA2JTIJbRmhIVrBdq/1VqNZ7YjCNFOj5m2ES/y/5oEtz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112417901},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.27.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\232c0239c85de8229b2a8178f2a239c7\\ggk-happy-1.2.27.tgz","_integrity":"sha512-N8hmfTjnJ1o7BzWzFf8dr53tGUqGcvCKbMQfLQE2U74eU2HEOAoIutitjEK2J5zRAMHjFi8gqsGfxewXecXBug==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.27_1782983458523_0.23243057978186865","host":"s3://npm-registry-packages-npm-production"}},"1.2.28":{"name":"ggk-happy","version":"1.2.28","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.28","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"fafa015b9efd9a6580799adbafd7248de40ff53c","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.28.tgz","fileCount":60,"integrity":"sha512-ofM7BwggXxE6cmQiLnPEITSAtmv8/Z7cRT7jKeBwG9SFcFdSwCKc8PVsFQED44oDyx6XnqHoP2O9Pirxmj800Q==","signatures":[{"sig":"MEUCIH4vilNL5/PwqrK13DyQnuuwCHx0/3dzfK1fA7T4ZL5kAiEAuaamhDFNTeiudfA+8f4v/+uEW+Lt/5I/X4onK4jiPpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112420955},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.28.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\30d2b4667ee68670aff2f291f83e610a\\ggk-happy-1.2.28.tgz","_integrity":"sha512-ofM7BwggXxE6cmQiLnPEITSAtmv8/Z7cRT7jKeBwG9SFcFdSwCKc8PVsFQED44oDyx6XnqHoP2O9Pirxmj800Q==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.28_1782985848195_0.999727975571417","host":"s3://npm-registry-packages-npm-production"}},"1.2.29":{"name":"ggk-happy","version":"1.2.29","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.29","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"f09ed1eecebc5034fc1030b6a9f5996c8995c216","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.29.tgz","fileCount":60,"integrity":"sha512-gAxM6p+/CMG6ALlADlrmzAwJ/TULTdeuNXSr/yjslfbzYf0MgewnAUDo5iqA/T1iH7I20b08B+X9PAOTgCxL4w==","signatures":[{"sig":"MEUCIDHTdpdKKJDFcty3DPpWzjpYCklYWXu0PIeZi8baE/7XAiEAgg2pVIO9RxwKPUaHwlrR5jNhmDcOGKGpn+MlR3Haatc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112379107},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.29.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\ddf30b137cb945b35bafbda1369a7a3e\\ggk-happy-1.2.29.tgz","_integrity":"sha512-gAxM6p+/CMG6ALlADlrmzAwJ/TULTdeuNXSr/yjslfbzYf0MgewnAUDo5iqA/T1iH7I20b08B+X9PAOTgCxL4w==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.29_1783066190929_0.028796749394544685","host":"s3://npm-registry-packages-npm-production"}},"1.2.30":{"name":"ggk-happy","version":"1.2.30","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.30","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"28385dce064b97cc8a3cfa1d2a667e7632483eeb","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.30.tgz","fileCount":60,"integrity":"sha512-ZAKRF0AXBkO3A4TESjT2j4f4ZT3kdX2M4UZGpGWRixhC+rqCaNCy/g/DE7xwIruR/LVcKCjP8x5hC+tDoCwszA==","signatures":[{"sig":"MEUCIFoxNE4VSmYVsZYcXslVEtpKiXEXzrK/N9DWVnxM3ATOAiEAysejxCO2qI4U/xe9uW9pjpL071ew77YKJ4fnF3kavtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112378775},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.30.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\a2d5d9ff0b56b876c1663a2e6ff0bad3\\ggk-happy-1.2.30.tgz","_integrity":"sha512-ZAKRF0AXBkO3A4TESjT2j4f4ZT3kdX2M4UZGpGWRixhC+rqCaNCy/g/DE7xwIruR/LVcKCjP8x5hC+tDoCwszA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.30_1783071745293_0.46702855120353415","host":"s3://npm-registry-packages-npm-production"}},"1.2.31":{"name":"ggk-happy","version":"1.2.31","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.31","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"bf35b83edca977ddf45113fc26d4226df51cc746","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.31.tgz","fileCount":60,"integrity":"sha512-gptn197Z6nxJ/RvQ1w6/saxOKIXNhdCKA/Z2YE7mdf+FIMDMCecOVu9kTL4PV8NewbUIF2jJBCgGcq3j0+OWQg==","signatures":[{"sig":"MEUCIFsPJSpbyA7OZw/rioiKxb6MYzxcFULmnQDzGlP/l8DRAiEA7Ac+eyq2rVMqJNZvePaZl67LU13cdeBCW8F7t9lEyxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112379961},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.31.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\691dbadcdaf9135ba0675337c6e2228e\\ggk-happy-1.2.31.tgz","_integrity":"sha512-gptn197Z6nxJ/RvQ1w6/saxOKIXNhdCKA/Z2YE7mdf+FIMDMCecOVu9kTL4PV8NewbUIF2jJBCgGcq3j0+OWQg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.31_1783301205376_0.33220328165189117","host":"s3://npm-registry-packages-npm-production"}},"1.2.32":{"name":"ggk-happy","version":"1.2.32","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.32","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"298819feafb7cfc7948bf5ab7bd0fe81a9e6eaf6","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.32.tgz","fileCount":60,"integrity":"sha512-xRGocyU37W6s8pAn32YcylRqDI2hpOt1qpsYKxDbDEo3NEOgqbqbnkOg2O/KaPisLX3Ht3OXDxnIxohpRDgmxg==","signatures":[{"sig":"MEUCIAGGyIbG1s7nRYrxD9X08MHOGU1Px6G0ZMx2FyegZZ2yAiEAyCvjRPC6w4qJ6ozBE/L6JUyINKh1nt/FoJdUcEWSbgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112382145},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.32.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\a45add43d3bbf744b39fc96ceb58230c\\ggk-happy-1.2.32.tgz","_integrity":"sha512-xRGocyU37W6s8pAn32YcylRqDI2hpOt1qpsYKxDbDEo3NEOgqbqbnkOg2O/KaPisLX3Ht3OXDxnIxohpRDgmxg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.32_1783308000971_0.9851972829092022","host":"s3://npm-registry-packages-npm-production"}},"1.2.33":{"name":"ggk-happy","version":"1.2.33","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.33","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"a8a584699cc11beea0d21856f6fdf643133d1f14","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.33.tgz","fileCount":61,"integrity":"sha512-k8nelxn/gOWY6GK6ihiIhI4/qgpcIRk30CLz7vnUUbQKl897kmSL9oXwB6WH64ukJiCw8Lc9pKnWCmMGlOYi6g==","signatures":[{"sig":"MEYCIQCbbbJVP7ENd3fy2cSr1T7/ewEXyjq+3GZo8v9Z3ikz3gIhAINBldsfW4uGT3YyWCNmeEgCj9ajDjhWaxmkyN2/+7/S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390049},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.33.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\38520a9386553fa0678e5ab2bb4a0a51\\ggk-happy-1.2.33.tgz","_integrity":"sha512-k8nelxn/gOWY6GK6ihiIhI4/qgpcIRk30CLz7vnUUbQKl897kmSL9oXwB6WH64ukJiCw8Lc9pKnWCmMGlOYi6g==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.33_1783309000520_0.8769654205476032","host":"s3://npm-registry-packages-npm-production"}},"1.2.34":{"name":"ggk-happy","version":"1.2.34","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.34","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"2abfd81a67650030ccd72b1f92f09f17522d5b53","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.34.tgz","fileCount":61,"integrity":"sha512-PYC7gjtjaeN6cYxEI4cSIe8C1THxapB737nMzzt/mjj4idm4FW6oNTYytPvwCTF0mr4Mf4vkKdbHXe8pwWTeYw==","signatures":[{"sig":"MEUCIH+qrYX9K97iVOGgI5S7onZrwzoGWAyWKnqqysdp8yKkAiEAnnwSiVZJ8hPI5IN4UBzD1UTbY3lZvySRrvLPRqte1Zs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390049},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.34.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\4c68be3cfdc17ab5f0716efdf230cd3c\\ggk-happy-1.2.34.tgz","_integrity":"sha512-PYC7gjtjaeN6cYxEI4cSIe8C1THxapB737nMzzt/mjj4idm4FW6oNTYytPvwCTF0mr4Mf4vkKdbHXe8pwWTeYw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.34_1783309198995_0.9423558883841576","host":"s3://npm-registry-packages-npm-production"}},"1.2.35":{"name":"ggk-happy","version":"1.2.35","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.35","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"a22a588f54b08ff81dccbdcf7513cc86cbf47eaf","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.35.tgz","fileCount":61,"integrity":"sha512-ix4w0xpNeegcqES/y1W5amhcMrMIBnP4D3p6FTKLCUR+l7JV1stjkmd94JFUEgMZeXMHWvLdy/nw/al/zkWQwg==","signatures":[{"sig":"MEQCIFO6xvf+w8SqwdKxh87DWiif9WoyAn2eofrKsfezym3FAiApqXrw+IxqBo4qbO3NhcyeBoGTB8H6DG0smrN91xzv2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390090},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.35.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\19ff30451dd8cadf10bb3167703ffea1\\ggk-happy-1.2.35.tgz","_integrity":"sha512-ix4w0xpNeegcqES/y1W5amhcMrMIBnP4D3p6FTKLCUR+l7JV1stjkmd94JFUEgMZeXMHWvLdy/nw/al/zkWQwg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.35_1783309735572_0.9800144759962308","host":"s3://npm-registry-packages-npm-production"}},"1.2.36":{"name":"ggk-happy","version":"1.2.36","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.36","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"5ac7487040880c399f269a97d1ccaa28019dcc3c","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.36.tgz","fileCount":61,"integrity":"sha512-2aQxFf+wABjke0/ob30Z49MtgzO9SxWkJoZFZj+uG4dB/QLMHa/bjvHdnQnEUwsAW/b13Qi9rhocirTRPQobJQ==","signatures":[{"sig":"MEUCIQCUixK6OOoP3q8G1yWmMUgI7xEdtJn5F2hDJkxJV4yEWQIgJsVG0aUTY66yJn9lm017EKY45+oP3ki703HshHXMbKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390352},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.36.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\e16526958949a9eba379c48e7fe5bf5d\\ggk-happy-1.2.36.tgz","_integrity":"sha512-2aQxFf+wABjke0/ob30Z49MtgzO9SxWkJoZFZj+uG4dB/QLMHa/bjvHdnQnEUwsAW/b13Qi9rhocirTRPQobJQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.36_1783311700756_0.9601953401367611","host":"s3://npm-registry-packages-npm-production"}},"1.2.37":{"name":"ggk-happy","version":"1.2.37","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.37","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"1d326a80e1a821086897789f4fefccdd5187e082","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.37.tgz","fileCount":61,"integrity":"sha512-6iOCDOZPZ61rSX3lHLLZgPPmylnwUACL7InpdFyJpNzV9VLIu62zqs9KbpHVCdSDX+dUvks6gNiTPUNDtflmcw==","signatures":[{"sig":"MEQCIC2g2YgpsJj3+HgqqGMKnIwHy/qv8Rz7zpPXZznmT6RTAiAp2p+/Xs+fTx41QvIgtshh+DLmbfktcv9I3AXE3+i8HQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390352},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.37.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\75a6b08c9170c3e2de85430c904f6d87\\ggk-happy-1.2.37.tgz","_integrity":"sha512-6iOCDOZPZ61rSX3lHLLZgPPmylnwUACL7InpdFyJpNzV9VLIu62zqs9KbpHVCdSDX+dUvks6gNiTPUNDtflmcw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.37_1783315830726_0.681381464502411","host":"s3://npm-registry-packages-npm-production"}},"1.2.38":{"name":"ggk-happy","version":"1.2.38","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.38","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"0a7dc00871daba32de6193c17f98c7a0cb2e40d4","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.38.tgz","fileCount":61,"integrity":"sha512-ewLsoHIt6VTgcoo/gaYyLJCrB+hNDl5qp3KwwSlngr99LNWxXnmPr92G6mqlcnQHAYZtM33a6OJmouWdFyGbCA==","signatures":[{"sig":"MEQCIEjapBXq7x84GBMaiDIjIwswDMUFjmmc48slyclU8twLAiADohf5fcVywQPvjA6febF4lqAISwf3fSv4TQvlPtja1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390532},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.38.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\0e5d948ced325eaaf57abc9c21377698\\ggk-happy-1.2.38.tgz","_integrity":"sha512-ewLsoHIt6VTgcoo/gaYyLJCrB+hNDl5qp3KwwSlngr99LNWxXnmPr92G6mqlcnQHAYZtM33a6OJmouWdFyGbCA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.38_1783316442916_0.9664505525239317","host":"s3://npm-registry-packages-npm-production"}},"1.2.39":{"name":"ggk-happy","version":"1.2.39","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.39","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"bf60a88b0e86e55a079edbb4fa35fb33eab92984","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.39.tgz","fileCount":61,"integrity":"sha512-PQD2gaeacI50WKtMH7Pj6BqV2pldQiBLf19e9BP7u2Z1L9Ss+HEVUr5IFS2VgGLIWFEi1qdv9tPhl3lr0j4xtg==","signatures":[{"sig":"MEQCICxp4JhW79CV82CnMzF8eIfP3cMhiF2hVIx7vZsFeLFWAiAfGEkYmXJoNBUVT/uxyVIa9q3OctNjYrz8B4wE/plmTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112390536},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.39.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\b28caebc4504cdacd275ff262c37d700\\ggk-happy-1.2.39.tgz","_integrity":"sha512-PQD2gaeacI50WKtMH7Pj6BqV2pldQiBLf19e9BP7u2Z1L9Ss+HEVUr5IFS2VgGLIWFEi1qdv9tPhl3lr0j4xtg==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.39_1783317382216_0.7039678514975651","host":"s3://npm-registry-packages-npm-production"}},"1.2.42":{"name":"ggk-happy","version":"1.2.42","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.42","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"4de3df0d71cd7e31a82566a1400b412c08441c37","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.42.tgz","fileCount":61,"integrity":"sha512-DLy6fI6JrVTH1rsTwxx2SxtPgN1JsUp3+gGHOcQIfy80kS9G7QTgK/iWCa9oKbFML0s6NbS1wMi6+Tva0SJ2vw==","signatures":[{"sig":"MEUCIBQ0xhoICT///XkMPcYUZ8dan5fMhKntiaSTJloXQc3WAiEA0RRPYwjqm5derUAmuU2hOiDsxcruPyfDeDF1MbBmX60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112395382},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.42.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\c2d91e43d31e31dbe21ea2f7e81d728e\\ggk-happy-1.2.42.tgz","_integrity":"sha512-DLy6fI6JrVTH1rsTwxx2SxtPgN1JsUp3+gGHOcQIfy80kS9G7QTgK/iWCa9oKbFML0s6NbS1wMi6+Tva0SJ2vw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.42_1783420779155_0.4137999357559994","host":"s3://npm-registry-packages-npm-production"}},"1.2.43":{"name":"ggk-happy","version":"1.2.43","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.43","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"cf0aeaa41ce3556694f0e40333d24b9168252711","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.43.tgz","fileCount":61,"integrity":"sha512-gYlgotKoDxnuWQ/4PK0tRMN0l+LRWTHK4RFK37TyRhUzHF9X117rN2Y8CLWxTzDmSchJAo9FuukHJCvj0cv3uA==","signatures":[{"sig":"MEUCIEZQU6dh3fJt0cG3zJJyBCnm3Ox2ZTpgrxNOWX2Kdfv7AiEAtZQrdTYI4cTrn5JJcYarbCevKPR5SJGBW/JmiYTGekQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112397938},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.43.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\d7539ba63f71c24e51e6e816db455460\\ggk-happy-1.2.43.tgz","_integrity":"sha512-gYlgotKoDxnuWQ/4PK0tRMN0l+LRWTHK4RFK37TyRhUzHF9X117rN2Y8CLWxTzDmSchJAo9FuukHJCvj0cv3uA==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.43_1783995467266_0.8071552057183145","host":"s3://npm-registry-packages-npm-production"}},"1.2.44":{"name":"ggk-happy","version":"1.2.44","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.44","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"7c4cc02c109f7f2cfb46beb9a82426cb7185e685","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.44.tgz","fileCount":61,"integrity":"sha512-XgQaHZvhahjADcAiCK2tymI6C3SfHjCsUVhw54CnPw85up8Pragvn9NC4NU+RbMil2SywwdqopqSvZ/hWzyHWw==","signatures":[{"sig":"MEUCIBemyWtykA4xMe/nqeejUABlf2kgUTKSGXo+zwRGni/yAiEAyrK1k9C7hC6wiaiuIr+gnJHBPL+FuaiyxdlWPHj+eRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112398572},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.44.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\d34f5012b25d574b8811894295a7a814\\ggk-happy-1.2.44.tgz","_integrity":"sha512-XgQaHZvhahjADcAiCK2tymI6C3SfHjCsUVhw54CnPw85up8Pragvn9NC4NU+RbMil2SywwdqopqSvZ/hWzyHWw==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.44_1784000038772_0.27972339869398133","host":"s3://npm-registry-packages-npm-production"}},"1.2.45":{"name":"ggk-happy","version":"1.2.45","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","_id":"ggk-happy@1.2.45","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"dist":{"shasum":"60130ddae51d86635ba95f876edfa5ad833e0790","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.45.tgz","fileCount":61,"integrity":"sha512-hl4fJkvsT3Qrgvj6E/Bdc7hHbRd9D5AD2NaNFdjED4QK45R6xx7hYoK1zDOdTP8xIrA6AlyGz3uReklkA3mgvQ==","signatures":[{"sig":"MEYCIQD9NeuKDk1yF9BVjpyu1pgDRhN1R6hm+qKobUGTYeXhAAIhAIm9HweaC0SC2xvcm3TjfOqKIquyv+/uLVzuHrGAnAIn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112399382},"main":"./dist/index.cjs","type":"module","_from":"file:ggk-happy-1.2.45.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":{"test":"pnpm run build && vitest run","build":"shx rm -rf dist && tsc --noEmit && pkgroll","typecheck":"tsc --noEmit","cli:install":"node scripts/install-local.cjs","postinstall":"node scripts/postinstall.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun"},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\709c15c3c7cb17f552ed1c49ad9f8973\\ggk-happy-1.2.45.tgz","_integrity":"sha512-hl4fJkvsT3Qrgvj6E/Bdc7hHbRd9D5AD2NaNFdjED4QK45R6xx7hYoK1zDOdTP8xIrA6AlyGz3uReklkA3mgvQ==","repository":{"url":"git+https://github.com/slopus/happy.git","type":"git"},"_npmVersion":"11.11.1","description":"Mobile and Web client for Claude Code and Codex","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ai":"^5.0.107","ws":"^8.19.0","ink":"^6.5.1","tar":"^7.5.2","tmp":"^0.2.5","zod":"3.25.76","open":"^10.2.0","axios":"^1.13.2","chalk":"^5.6.2","react":"^19.2.0","qrcode":"^1.5.4","fastify":"^5.6.2","ps-list":"^8.1.1","inquirer":"^13.2.2","tweetnacl":"^1.0.3","@types/tmp":"^0.2.6","http-proxy":"^1.18.1","cross-spawn":"^7.0.6","@types/react":"^19.2.7","@noble/hashes":"^2.0.1","@types/qrcode":"^1.5.6","@noble/ed25519":"^3.0.0","@stablelib/hex":"^2.0.1","expo-server-sdk":"^3.15.0","socket.io-client":"^4.8.1","@stablelib/base64":"^2.0.1","@types/http-proxy":"^1.17.17","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@types/cross-spawn":"^6.0.6","@paralleldrive/cuid2":"^2.2.2","http-proxy-middleware":"^3.0.5","@agentclientprotocol/sdk":"^0.14.1","@modelcontextprotocol/sdk":"1.25.3","fastify-type-provider-zod":"4.0.2","@anthropic-ai/sandbox-runtime":"^0.0.37","@anthropic-ai/claude-agent-sdk":"^0.2.96"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.3","tsx":"^4.20.6","dotenv":"^16.6.1","eslint":"^9","vitest":"^3.2.4","pkgroll":"^2.14.2","ts-node":"^10","@types/ws":"^8.18.1","cross-env":"^10.1.0","typescript":"5.9.3","@types/node":">=20","@eslint/compat":"^1","@types/inquirer":"^9.0.9","eslint-config-prettier":"^10"},"_npmOperationalInternal":{"tmp":"tmp/ggk-happy_1.2.45_1784190290344_0.2441683926526801","host":"s3://npm-registry-packages-npm-production"}},"1.2.46":{"name":"ggk-happy","version":"1.2.46","description":"Mobile and Web client for Claude Code and Codex","author":{"name":"Kirill Dubovitskiy"},"license":"MIT","type":"module","homepage":"https://happy.engineering","bugs":{"url":"https://github.com/slopus/happy/issues"},"repository":{"type":"git","url":"git+https://github.com/slopus/happy.git"},"bin":{"ggkhappy":"bin/happy.mjs","ggkhappy-mcp":"bin/happy-mcp.mjs"},"main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.cts","exports":{".":{"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"./lib":{"require":{"types":"./dist/lib.d.cts","default":"./dist/lib.cjs"},"import":{"types":"./dist/lib.d.mts","default":"./dist/lib.mjs"}},"./codex/happyMcpStdioBridge":{"require":{"types":"./dist/codex/happyMcpStdioBridge.d.cts","default":"./dist/codex/happyMcpStdioBridge.cjs"},"import":{"types":"./dist/codex/happyMcpStdioBridge.d.mts","default":"./dist/codex/happyMcpStdioBridge.mjs"}}},"dependencies":{"@agentclientprotocol/sdk":"^0.14.1","@anthropic-ai/claude-agent-sdk":"^0.2.96","@anthropic-ai/sandbox-runtime":"^0.0.37","@modelcontextprotocol/sdk":"1.25.3","@noble/ed25519":"^3.0.0","@noble/hashes":"^2.0.1","@paralleldrive/cuid2":"^2.2.2","@slopus/happy-wire":"npm:ggkhappy-wire@0.1.0","@stablelib/base64":"^2.0.1","@stablelib/hex":"^2.0.1","@types/cross-spawn":"^6.0.6","@types/http-proxy":"^1.17.17","@types/qrcode":"^1.5.6","@types/react":"^19.2.7","@types/tmp":"^0.2.6","ai":"^5.0.107","axios":"^1.13.2","chalk":"^5.6.2","cross-spawn":"^7.0.6","expo-server-sdk":"^3.15.0","fastify":"^5.6.2","fastify-type-provider-zod":"4.0.2","http-proxy":"^1.18.1","http-proxy-middleware":"^3.0.5","ink":"^6.5.1","inquirer":"^13.2.2","open":"^10.2.0","ps-list":"^8.1.1","qrcode":"^1.5.4","react":"^19.2.0","socket.io-client":"^4.8.1","tar":"^7.5.2","tmp":"^0.2.5","tweetnacl":"^1.0.3","ws":"^8.19.0","zod":"3.25.76"},"devDependencies":{"@eslint/compat":"^1","@types/inquirer":"^9.0.9","@types/node":">=20","@types/ws":"^8.18.1","cross-env":"^10.1.0","dotenv":"^16.6.1","eslint":"^9","eslint-config-prettier":"^10","pkgroll":"^2.14.2","shx":"^0.3.3","ts-node":"^10","tsx":"^4.20.6","typescript":"5.9.3","vitest":"^3.2.4"},"publishConfig":{"registry":"https://registry.npmjs.org"},"scripts":{"typecheck":"tsc --noEmit","build":"shx rm -rf dist && tsc --noEmit && pkgroll","test":"pnpm run build && vitest run","cli:install":"node scripts/install-local.cjs","publish:npm":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1","publish:npm:dry-run":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/publish-npm.ps1 -DryRun","postinstall":"node scripts/postinstall.cjs"},"_id":"ggk-happy@1.2.46","_integrity":"sha512-SNNNW/XtHVuLDzUWFafP9hIdhheNneH6bw45umtpyWTYGA/k9ETrj74teMFkfQ8A2YIM3q7HSl/rVGKrs5Tg2w==","_resolved":"C:\\Users\\wangzc\\AppData\\Local\\Temp\\4fa4457827f07b37f97042b7443ad88c\\ggk-happy-1.2.46.tgz","_from":"file:ggk-happy-1.2.46.tgz","_nodeVersion":"25.8.2","_npmVersion":"11.11.1","dist":{"integrity":"sha512-SNNNW/XtHVuLDzUWFafP9hIdhheNneH6bw45umtpyWTYGA/k9ETrj74teMFkfQ8A2YIM3q7HSl/rVGKrs5Tg2w==","shasum":"c310a13a28dd41c0e78cbd572a59040fe5fdd917","tarball":"https://registry.npmjs.org/ggk-happy/-/ggk-happy-1.2.46.tgz","fileCount":125,"unpackedSize":112447940,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFUPmIu1dLcT2dnS/RZkIMn4F2OvvEQa97/CpqOgGLUwAiEAlOryHUQrE7Ex7bq2h+KNIInGGZx2Z0DY3u7KBt2awV0="}]},"_npmUser":{"name":"jonathan1984","email":"jonathan1984@126.com"},"directories":{},"maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ggk-happy_1.2.46_1784355614060_0.659625194316797"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T07:03:29.478Z","modified":"2026-07-18T06:20:15.834Z","1.0.0":"2026-05-07T07:03:32.577Z","1.0.1":"2026-05-07T07:34:14.015Z","1.0.2":"2026-05-09T02:29:25.910Z","1.0.3":"2026-05-09T07:11:55.658Z","1.0.4":"2026-05-14T05:57:53.446Z","1.0.5":"2026-05-19T03:22:49.194Z","1.0.6":"2026-05-22T01:43:34.718Z","1.0.7":"2026-05-22T09:17:17.942Z","1.0.8":"2026-05-25T06:40:06.244Z","1.0.9":"2026-05-26T08:05:03.660Z","1.1.0":"2026-05-26T08:59:22.496Z","1.1.1":"2026-05-26T09:33:25.762Z","1.1.2":"2026-05-26T11:07:52.961Z","1.1.3":"2026-05-26T11:25:14.947Z","1.1.4":"2026-05-29T01:59:43.588Z","1.1.5":"2026-05-29T05:18:59.180Z","1.1.6":"2026-05-29T07:17:15.377Z","1.1.7":"2026-05-29T08:53:34.524Z","1.1.8":"2026-05-29T09:54:18.699Z","1.1.9":"2026-06-03T02:22:54.804Z","1.2.0":"2026-06-04T05:35:21.081Z","1.2.11":"2026-06-05T02:46:13.917Z","1.2.12":"2026-06-05T03:18:41.788Z","1.2.13":"2026-06-05T07:41:08.494Z","1.2.14":"2026-06-05T08:12:10.981Z","1.2.15":"2026-06-05T09:18:46.528Z","1.2.16":"2026-06-05T09:41:00.544Z","1.2.17":"2026-06-05T10:06:44.658Z","1.2.18":"2026-06-17T03:58:19.487Z","1.2.19":"2026-06-18T03:12:43.386Z","1.2.20":"2026-06-26T07:32:01.385Z","1.2.21":"2026-06-29T07:22:53.769Z","1.2.22":"2026-06-30T09:07:51.868Z","1.2.23":"2026-07-01T06:31:38.283Z","1.2.24":"2026-07-01T10:20:22.163Z","1.2.25":"2026-07-02T06:56:58.048Z","1.2.26":"2026-07-02T07:33:23.309Z","1.2.27":"2026-07-02T09:10:59.881Z","1.2.28":"2026-07-02T09:50:49.615Z","1.2.29":"2026-07-03T08:09:52.448Z","1.2.30":"2026-07-03T09:42:27.232Z","1.2.31":"2026-07-06T01:26:46.766Z","1.2.32":"2026-07-06T03:20:02.570Z","1.2.33":"2026-07-06T03:36:41.924Z","1.2.34":"2026-07-06T03:40:00.416Z","1.2.35":"2026-07-06T03:48:56.948Z","1.2.36":"2026-07-06T04:21:42.157Z","1.2.37":"2026-07-06T05:30:32.132Z","1.2.38":"2026-07-06T05:40:44.278Z","1.2.39":"2026-07-06T05:56:23.576Z","1.2.42":"2026-07-07T10:39:40.543Z","1.2.43":"2026-07-14T02:17:48.681Z","1.2.44":"2026-07-14T03:34:00.168Z","1.2.45":"2026-07-16T08:24:51.724Z","1.2.46":"2026-07-18T06:20:15.685Z"},"bugs":{"url":"https://github.com/slopus/happy/issues"},"author":{"name":"Kirill Dubovitskiy"},"license":"MIT","homepage":"https://happy.engineering","repository":{"type":"git","url":"git+https://github.com/slopus/happy.git"},"description":"Mobile and Web client for Claude Code and Codex","maintainers":[{"name":"jonathan1984","email":"jonathan1984@126.com"}],"readme":"# Happy\n\nCode on the go — control AI coding agents from your phone, browser, or terminal.\n\nFree. Open source. Code anywhere.\n\n## Installation\n\n```bash\nnpm install -g happy\n```\n\n> Migrated from the `happy-coder` package. Thanks to [@franciscop](https://github.com/franciscop) for donating the `happy` package name!\n\n## Usage\n\n### Claude Code (default)\n\n```bash\nhappy\n# or\nhappy claude\n```\n\nThis will:\n1. Start a Claude Code session\n2. Display a QR code to connect from your mobile device or browser\n3. Allow real-time session control — all communication is end-to-end encrypted\n4. Start new sessions directly from your phone or web while your computer is online\n\n### More agents\n\n```\nhappy codex\nhappy gemini\nhappy openclaw\n\n# or any ACP-compatible CLI\nhappy acp opencode\nhappy acp -- custom-agent --flag\n```\n\n## Daemon\n\nThe daemon is a background service that stays running on your machine. It lets you spawn and manage coding sessions remotely — from your phone or the web app — without needing an open terminal.\n\n```bash\nhappy daemon start\nhappy daemon stop\nhappy daemon status\nhappy daemon list\n```\n\nThe daemon starts automatically when you run `happy`, so you usually don't need to manage it manually.\n\n## Authentication\n\n```bash\nhappy auth login\nhappy auth logout\n```\n\nHappy uses cryptographic key pairs for authentication — your private key stays on your machine. All session data is end-to-end encrypted before leaving your device.\n\nTo connect third-party agent APIs:\n\n```bash\nhappy connect gemini\nhappy connect claude\nhappy connect codex\nhappy connect status\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `happy` | Start Claude Code session (default) |\n| `happy codex` | Start Codex mode |\n| `happy gemini` | Start Gemini CLI session |\n| `happy openclaw` | Start OpenClaw session |\n| `happy acp` | Start any ACP-compatible agent |\n| `happy resume <id>` | Resume a previous session |\n| `happy notify` | Send push notification to your devices |\n| `happy doctor` | Diagnostics & troubleshooting |\n\n---\n\n## Advanced\n\n### Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `HAPPY_SERVER_URL` | Custom server URL (default: `https://api.cluster-fluster.com`) |\n| `HAPPY_WEBAPP_URL` | Custom web app URL (default: `https://app.happy.engineering`) |\n| `HAPPY_HOME_DIR` | Custom home directory for Happy data (default: `~/.happy`) |\n| `HAPPY_DISABLE_CAFFEINATE` | Disable macOS sleep prevention |\n| `HAPPY_EXPERIMENTAL` | Enable experimental features |\n\n### Sandbox (experimental)\n\nHappy can run agents inside an OS-level sandbox to restrict file system and network access.\n\n```bash\nhappy sandbox configure\nhappy sandbox status\nhappy sandbox disable\n```\n\n### Building from source\n\n```bash\ngit clone https://github.com/slopus/happy\ncd happy-cli\nyarn install\nyarn workspace happy cli --help\n```\n\n## Requirements\n\n- Node.js >= 20.0.0\n- For Claude: `claude` CLI installed & logged in\n- For Codex: `codex` CLI installed & logged in\n- For Gemini: `npm install -g @google/gemini-cli` + `happy connect gemini`\n\n## License\n\nMIT\n","readmeFilename":"README.md"}