{"_id":"@genex-ai/embed-sdk","_rev":"40-28e121430298049ab77eba9094b08ebb","name":"@genex-ai/embed-sdk","dist-tags":{"latest":"0.31.0"},"versions":{"0.2.0":{"name":"@genex-ai/embed-sdk","version":"0.2.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.2.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"09da9323033d8aeb48f846a7a9f25a2d045d7bf1","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.2.0.tgz","fileCount":6,"integrity":"sha512-fvj1u8zm5sF6SmkQlS0F8o/+2FdmhxzrCqHFPEid1cNllP7pVMpsVj4ZdOv8aPw5JAk/mHWqGdp8W89xdt7ukQ==","signatures":[{"sig":"MEUCIQD5va/i7D57Y3QGHfmYx//s8bJa5lTzgmwFzNreTasJGQIgWURWHJ7K9WhIC2s8CClnEcloQ/jE7kBA4EHIZQlFajc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22335},"main":"./dist/index.js","type":"module","_from":"file:genex-ai-embed-sdk-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"},"_resolved":"/private/var/folders/0_/l7jk4sd11zsfzwzk2fc16sym0000gn/T/7ebc9cf6ea3d815679d45b1d84e3ed66/genex-ai-embed-sdk-0.2.0.tgz","_integrity":"sha512-fvj1u8zm5sF6SmkQlS0F8o/+2FdmhxzrCqHFPEid1cNllP7pVMpsVj4ZdOv8aPw5JAk/mHWqGdp8W89xdt7ukQ==","repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Signed-in identity for genex games — embedded (dashboard iframe postMessage handshake) or standalone (sign-in redirect). No anonymous play.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.2.0_1782992119762_0.6366795045672893","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@genex-ai/embed-sdk","version":"0.3.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.3.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"031877e488d0154c13dbcf2fe927262199a8ef3c","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.3.0.tgz","fileCount":6,"integrity":"sha512-ITY2bSORMBRmI+B8PCMGtoZ/iNTp4dnbwqnyMqSa4VCz2e9V57QAMBiM/DiY4q+1jeBPUTMkYNgaLi4UZ99Jng==","signatures":[{"sig":"MEUCIQCURjbzpvLAKiLUtt8X8SqmN9sb77/325w6JwnVe1luZAIgGwB5vfCTB8ogLr8prZTzZaiQ+h6z9L8i45PbuZNgof8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29547},"main":"./dist/index.js","type":"module","_from":"file:genex-ai-embed-sdk-0.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"},"_resolved":"/private/var/folders/0_/l7jk4sd11zsfzwzk2fc16sym0000gn/T/3b0f578eb52c54f27d96a897d4d46f78/genex-ai-embed-sdk-0.3.0.tgz","_integrity":"sha512-ITY2bSORMBRmI+B8PCMGtoZ/iNTp4dnbwqnyMqSa4VCz2e9V57QAMBiM/DiY4q+1jeBPUTMkYNgaLi4UZ99Jng==","repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.5.2","description":"Player identity for genex games — signed-in (dashboard iframe postMessage handshake or sign-in redirect) or guest (accountless play for published games, sign in to save).","directories":{},"_nodeVersion":"23.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.3.0_1783104468268_0.49879262451820927","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@genex-ai/embed-sdk","version":"0.3.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.3.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"94ce678c8aa7af17bc35892e5f00924ae110f408","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.3.1.tgz","fileCount":6,"integrity":"sha512-pbLzrryzamXZ3/C0/bQJ4B+H3+RsS3eT92da8YhA4ugHYJ3f5GIEwZ7Xcnm1WRy6ff35LojJtEFw+nTNxJUYIw==","signatures":[{"sig":"MEUCIAUEMAFQwdu+uO7SYJHLDWcWB1XL5u8o8qtvp+hw6+LIAiEAm6P/XWOPCyAFiyOiBpRsQbUzFrUGx94Svhy+07gkPq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29354},"main":"./dist/index.js","type":"module","_from":"file:genex-ai-embed-sdk-0.3.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"},"_resolved":"/private/var/folders/0_/l7jk4sd11zsfzwzk2fc16sym0000gn/T/338634704fe48497a3acb89e0e7973ab/genex-ai-embed-sdk-0.3.1.tgz","_integrity":"sha512-pbLzrryzamXZ3/C0/bQJ4B+H3+RsS3eT92da8YhA4ugHYJ3f5GIEwZ7Xcnm1WRy6ff35LojJtEFw+nTNxJUYIw==","repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity for genex games — signed-in (dashboard iframe postMessage handshake or sign-in redirect) or guest (accountless play for published games, sign in to save).","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.3.1_1783110922810_0.7309344633967576","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@genex-ai/embed-sdk","version":"0.3.2","license":"MIT","_id":"@genex-ai/embed-sdk@0.3.2","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"52a4a31e3ec1d9e5e36dbba01163cc2867f0c7ed","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.3.2.tgz","fileCount":6,"integrity":"sha512-xy6f8d2qTI+VbYp9oQj3LnwhFOjXRaO91QKb7QDkCwLKv6ErQlPDK3qyY5azf146B6we40M5cxafD05XKHBi7g==","signatures":[{"sig":"MEQCIEtsulJp51abuV8KFSEPCemYIrnXAAXs6o0K0BUwFPHiAiBKjZYaUYyU6wWoIMmeSu82ZWKAU7tu5OgVjmeASCfKXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29618},"main":"./dist/index.js","type":"module","_from":"file:genex-ai-embed-sdk-0.3.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"},"_resolved":"/private/var/folders/0_/l7jk4sd11zsfzwzk2fc16sym0000gn/T/da3c8999993394392ebec6604bb5f346/genex-ai-embed-sdk-0.3.2.tgz","_integrity":"sha512-xy6f8d2qTI+VbYp9oQj3LnwhFOjXRaO91QKb7QDkCwLKv6ErQlPDK3qyY5azf146B6we40M5cxafD05XKHBi7g==","repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity for genex games — signed-in (dashboard iframe postMessage handshake or sign-in redirect) or guest (accountless play for published games, sign in to save).","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.3.2_1783112928071_0.06631195945284452","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@genex-ai/embed-sdk","version":"0.4.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.4.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"4f2cc24e5c722ca5328767988eb0881f42ffcf70","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.4.0.tgz","fileCount":6,"integrity":"sha512-Ov6SCJWvlcZ9SDwAaEjTNbleni3chvFX5J9Q6CZRe56ZsSAeKW1XU2IbAfP33wwPRRwzX3DiYM43IgvWieHt4g==","signatures":[{"sig":"MEQCICNEaNkR2t3/NCZbM77qRyA//EJALxrTiAWLpqJcwyL4AiAuCra2zqjl/u88ZmlT7gx4SsiDVYWhq62Gk4c+6rL7pA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39711},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"5acff4c0539c397b27b3ae3515b61bbcd8770a9e","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.4.0_1783335605187_0.8274406134165482","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@genex-ai/embed-sdk","version":"0.4.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.4.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"26f5a95958751325d33acd75f21a46590bf1f692","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.4.1.tgz","fileCount":6,"integrity":"sha512-HtHPBMeBRKTTG3NvRvTpBQQrzr9F3pfiTNao8hLn9WlOKONd0k0DSGJpnT17KXZijYZHB4eGjCL1sFJ62icZaA==","signatures":[{"sig":"MEUCIDeHD2AqrCGvnRj1cszQhImOWfP0yeKCZ5C8BTnYwWDbAiEA5DPDr6lF+dBWOS2Cw5F6aWHa+/BBGpqSmkkzRJcB3kw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40229},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"a0be870f26fc81d5b0f9543957f66d64e253e54c","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.4.1_1783437503988_0.21168738069626247","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@genex-ai/embed-sdk","version":"0.5.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.5.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"ccac6aaca5ccc1cf235733106cf7fca9ae51ed89","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.5.0.tgz","fileCount":6,"integrity":"sha512-lePc6EE0gQWx8ZlAuv4sSuKq8UD+1aR1xbMFzruu+gZ49yWtqj5WPx8SygCvoMecSrs5UyYJzTfkqzpowOYKvw==","signatures":[{"sig":"MEUCIB8meMM0CSQXYWROhkTVIP2yEg+AhjvnYQqhIGZ2WF5oAiEAyqQhiH4czoDi1L3Mubcl303E3StMH/IK81ez16T9Lpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41658},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"bea3085d100a22f48666c59c431c98d89841242a","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.5.0_1783716689889_0.5258601952389992","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@genex-ai/embed-sdk","version":"0.6.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.6.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"60408b503dcc5c3034ea56f965b73615e0c1d23b","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.6.0.tgz","fileCount":6,"integrity":"sha512-TUTtHqYHZu+OOu0Wvd3OlL3f1CnmUwpiYsL9//iz/5H1dX7Pwl2uXQ1Gj4d665rMcVYfkwSOT0PCivikYSwkVg==","signatures":[{"sig":"MEYCIQCkldC3ixJnKp42scUHc0KXsi3b8XyR7IJGehG6BxWf1AIhAOjRPIDEOQ3aExSEsLEyzwWMcjBkCyqUjemIepkj2M7D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42016},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"29ef0fd52a3404fa3750288b84c9564fe4b713de","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.6.0_1783925803998_0.026538032359804342","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@genex-ai/embed-sdk","version":"0.6.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.6.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"02c572bc6fd2285e97a3cb92161419429c99f7bc","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.6.1.tgz","fileCount":6,"integrity":"sha512-CM5gAQ+2M561UrYONaeqo5BmDd5yaDiDSWbcozL7aevO4ytgoO5sWTCzhggyRciWm2q/NOp1EhcuFMpzojjTiA==","signatures":[{"sig":"MEUCIQDERxo9oc3o7kxD9qEOeaX/KJJg37Af4btiQa3TyDOuogIgCL8SpKLB0xshQvW/zo40fypMGd1DieVeRQv0GG1Fwlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42679},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"cdf199931d31799b3252591de52d37dd12f64f41","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.6.1_1784114235354_0.9780112225566904","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@genex-ai/embed-sdk","version":"0.7.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.7.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"1216d88bdbdac4573902e409deb0510a18673c20","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.7.0.tgz","fileCount":6,"integrity":"sha512-4/3sOOJN9de/UvtKRVSTHu3KVkFHVonoLY07VKesTJcLTXlSPV7KKqJxkDEepd9QbekFxiUb/GNFWKl9gZlTjw==","signatures":[{"sig":"MEQCIDYkNBcaAZPixuDTngxrzNSKTR3oLMmg/rKAOapNCeanAiBFcQw0TZRZmC6kyKteVKyi8jK0t0R1G425NHwE/c3VdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45126},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"2de6b279e0844daf44be1f5ff23da6999425a5be","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.7.0_1784130337977_0.371594675023712","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@genex-ai/embed-sdk","version":"0.8.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.8.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"de36e7c42f9732f3abff269cf674bc0ab03001cf","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.8.0.tgz","fileCount":6,"integrity":"sha512-njjnldlTAqUR8Y2FYQqL0gJ6YUiGJAskRrqUOrhbhdRuZKRkTPS+t8yG3QFL7of95582nVXxnIAPlxy8Ec1WgA==","signatures":[{"sig":"MEUCIQDvkg0Iim2xKtG8aRMmdKmECYrFDZmvybb6lW+tgHN9iwIgA+U+3a4TuFM8Qnbd1uuT6euHk64WuO1H0orl+Z2UTko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45494},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"d2b5b89dbf007abb6573e6db14000167528c29d8","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.8.0_1784285049517_0.3978948220394827","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@genex-ai/embed-sdk","version":"0.9.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.9.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"b4bdd1866df3b03b4325119d0f0bc82e2f5978da","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.9.0.tgz","fileCount":6,"integrity":"sha512-fodD7kgX0AVrBl1irGJSBgSgY0zigO3M4HzjWkIPcl4GOHsJuTcGcjCpdayH1HsJxbWxPvbBSqXXd5J7PKnOGA==","signatures":[{"sig":"MEYCIQDNxiYb3p9PAQkXViQ+MViOZHe3nJBI+46BZJ7Jyfhy6QIhAL/BprrtqqUAW5OtN+rwT+E8KCHO/YEtXevBPSstpV+a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46368},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"5fb2c03214753c3b5234b007f294848fd2d3ef90","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.9.0_1784625123757_0.9625363628607317","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@genex-ai/embed-sdk","version":"0.10.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.10.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"d42b2d174ab4f7f7f557f37b3e3da4991c611071","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.10.0.tgz","fileCount":6,"integrity":"sha512-vGHtJPpkUngZMYHSYOwadOn4m/qT/bNdZzfZl7HddETT2qcf5BXwqSWlIhorsgeKtjoSKHy1oTDm5ZiplXstVw==","signatures":[{"sig":"MEYCIQDMcdexkogpm3dxX/1H/xSIBj6LQGrqCW2w4WrfIdoqiwIhAMyIN0EJDvlkZPeDFKpfMn+1RPITaMxWarWZ91qXJ5d1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48808},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"d5bf132369e8a47b27b4779f5c3891d3c0443c17","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.10.0_1784634262541_0.22009231544913654","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@genex-ai/embed-sdk","version":"0.11.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.11.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"2894b700bfb24a065b1dc8c3b7fd2fde9b471f4c","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.11.0.tgz","fileCount":6,"integrity":"sha512-D5VFcxLJ2fQYpsl0DgnKg2StgUgG2mEqgqTuGtMGY3PTX0IKSCbD4IqFjhQPRczDnAGUUt7rTyGpFow0quLloQ==","signatures":[{"sig":"MEUCIQCiMGIfR4mIaXov4uD5sl4K4oukjWMSGo0LGEx3kJ85hgIgVXoV/vs2zjJvKOhI6IKtvU3+OLMzD218F/i4OetgD0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51027},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"7067da9327ded39066f98f6b7eed653cc81465e9","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.11.0_1784828453166_0.820886400080429","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@genex-ai/embed-sdk","version":"0.12.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.12.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"519ce508881e6c083c0057cecbfbb2375029ff43","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.12.0.tgz","fileCount":6,"integrity":"sha512-1Oe2cuY6A3VfSjVdAxuWY4dlbCdTkFl6dr07+SbSc2nT8CygUxk5xTJYq1YQOPRQSHZrJ7uADgrqhpB12/QRtw==","signatures":[{"sig":"MEYCIQDa13ipgD6wPI1KwU+6MMjDh5G9w2nFlLCmMcZhdUOL9AIhAO3LrQpzltLdkoLge4esXEtmLrPBKwgs+mGoyWS3SC39","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51021},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"88dd437f18a7de2825ba0aa4bf736890c21b93e7","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.12.0_1785364087285_0.2340053704277374","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@genex-ai/embed-sdk","version":"0.13.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.13.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"db894a6699d2cabf1aba7e4df2e4ad913d0091a1","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.13.0.tgz","fileCount":6,"integrity":"sha512-v6XxCrR0l7F8iluYE7+1cenhmWokfgZmxSdQXPdQ+SRX0v5ERp3rlN9Veoc9FQmaihoVncedLdvG5stRq2s1pw==","signatures":[{"sig":"MEUCIQDmd/2tJ4fkWwQoWOWFjFkMLplc4LpX0Q8LHdBJpW3jJQIgW+0tLrCd/eDzk7jsw0BAUADcJpbInHwE/zge957QWMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51734},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"d7ed4f2f7e8db8d1194fe09f32a47b8e0c914e96","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.13.0_1785744955455_0.33803529603181404","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@genex-ai/embed-sdk","version":"0.14.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.14.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"64393799d729be5e32626b61d9be634fe85bae56","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.14.0.tgz","fileCount":6,"integrity":"sha512-eB7zxtgUVvc+3iVZKj8ckcUHkyO/08nNu+LevcCj16wXjO/mbVz5ddZ5def6yG/de+UAS/Rfsr8sqfmoG5XMPw==","signatures":[{"sig":"MEUCICfJEX7dtR2UYgmnAdNUANnhGDh6+Kx+X8A53kU9e3f6AiEAh68MelIQe7hZlYhJsI6uywzd56Th+WZOxZP/4Hkdb20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65198},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"e984cc89c48333d5cf2a91e380bb79bc4f798550","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.14.0_1785865074989_0.24926376536061068","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@genex-ai/embed-sdk","version":"0.15.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.15.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"ea02badc4791ed79b88a6393bbbef8ccf4cf660f","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.15.0.tgz","fileCount":6,"integrity":"sha512-wxGYPbXkjJcveHr+VF6WFjN7rhx4hp6/UoV8OXBaI01i9eh0Cq35Lw2amQe+GOrhW4pc4nCBgZWOBw9/mXgFfA==","signatures":[{"sig":"MEUCIQCxFz/ZClRrmOh2Fr6GOEDHn7JqoqNoX81k6axnx/JbBAIgLL2od4lvzFTDrRnpNS+W/ZFybw49AT4BxB5tMUXxjds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73518},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"c42a63c2a8d4f4bd46c505a1e49f816750e9a691","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.17.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.15.0_1786553576777_0.26618422075904324","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@genex-ai/embed-sdk","version":"0.16.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.16.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"f930a2114062a098ac204999bad07a8bb42acc1c","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.16.0.tgz","fileCount":6,"integrity":"sha512-VMgRMuBx17v8iPehCPcp1v1lJ8GgA37XxX8Xor1dNhzRSY7BP3m5v8G4Ma5R6Jnyb/ALpJSVHNUi9Cw+TYa4Fg==","signatures":[{"sig":"MEYCIQD5k/d6QB1sCR7p8MuzqW39z52Sd1N207GrsYnZLw/JMAIhAJWLT5VjDjbw2mldzKnscqJpuLJdzvHPRLzVoZIUNSWV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74001},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"f2a9f91c660368008a82a343b125a22467f95a95","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.16.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.16.0_1786654818161_0.3053857954507899","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@genex-ai/embed-sdk","version":"0.17.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.17.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"69a9cb7ba5431b49658d499f415957180fd13bfe","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.17.0.tgz","fileCount":6,"integrity":"sha512-GbX7k4a1bIB+ugJPHDcGVPyY1nbd+AIGkQ+rqJMzWmzpuCznei7mxpxBFodpA4OeYL2LSRbBiMvHr0bF0TrUZA==","signatures":[{"sig":"MEYCIQDYJuhlYg+Mm198KL9+Uk2Y9/9EsYNTPXgc/Temj61PMAIhALnA5GeZsGMMow2ne2emF3xc3JIcy3iuTeVnQq7V6IX5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76229},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"}},"gitHead":"e7276a476ed608539636b443aa97abc72907922f","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.17.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.17.0_1788512685236_0.4749888172216832","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@genex-ai/embed-sdk","version":"0.21.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.21.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"89e7bdd3caf61d499d5ca1269711a8e6d547ab86","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.21.0.tgz","fileCount":10,"integrity":"sha512-lBnFc3MXdA9U6lvjphvHlzFsJR4Dk8ggAx+CXZgjs6eoW6+GSul4d0IIxRQAmephjhLU3MigAS3OKD1Fzv919A==","signatures":[{"sig":"MEUCIA37hu8anIuXwT50NQy7CcNAVq/CfzsEZsXhO2I0TSq+AiEAshLSkCMaOwKxMS8PSTpFu9lqIM0VG0F1sVM3pjTKVrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110996},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"269e5ae1f400033ae0742a9b3f98b6380e592793","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.21.0_1788998286231_0.8465772346232923","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@genex-ai/embed-sdk","version":"0.21.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.21.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"ec36115bcc3f54457f3d562287a67c49eebb1d44","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.21.1.tgz","fileCount":10,"integrity":"sha512-G/8BUP2HMWlK4r8XH+plKtamgOvL9qPraS2+psdJ1dZEvgjRMiceGwLKXM6ftbpGVM1erAcSAtNIC5LU2WAH5g==","signatures":[{"sig":"MEQCIGwy061yxyQr6B/sKENONc8GnIHzHJINeT7FqEETVV1XAiBUj4nhuDilu1az5ADzAG7OsKn92UCdmxv2w49Kvq2N0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111461},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"8c6721ea8dd27728f03c815cea46be5bee7e5566","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.21.1_1789024986359_0.25054988753518415","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@genex-ai/embed-sdk","version":"0.22.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.22.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"10c648768ee5db01f7a2fd42249ca8e94673ad29","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.22.0.tgz","fileCount":10,"integrity":"sha512-wVRbJA23CGMUZRf3NtpMc9owIn9QhSYPqQPqfNK7zsJQ0BUtUwE6iYBAkIuHGiDJYB4huPPYvIUrlfR4rdsRTg==","signatures":[{"sig":"MEYCIQCcMOnWskhT+5vg/zFLQ0G0qBfEBth/nHvsQ8/pK9FG2wIhAJb88ykhx5GUMmPkEh17SXbZYiJ2WOFjoiuQzSsRm9yE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111464},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"599937a94567be7578991fb1305e2d171ca71250","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.22.0_1789033960142_0.6318914499530608","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"@genex-ai/embed-sdk","version":"0.22.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.22.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"b3dbea2a1674619021e8d0bc3b940a90ab7961ea","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.22.1.tgz","fileCount":10,"integrity":"sha512-rEkcotI+tk6O3QKTsjIBEqrNQce8NyNcxRFtliUO1dAIhWx0vasT7fOwWhZUq0td3K0lD3S+ruWxqpLUqLFRLg==","signatures":[{"sig":"MEYCIQDIlwNB54KWk1cZrvWCpK0PWry9xEhRUvzKx3MdYCwX9wIhAJ820uDtzerxiNTvW4w4+uw5NLDLBilCFpxh8fwMTTa7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111917},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"a22ea8009afe2c48728331550a663ad15744cde7","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.22.1_1789036910334_0.034044641761552086","host":"s3://npm-registry-packages-npm-production"}},"0.22.2":{"name":"@genex-ai/embed-sdk","version":"0.22.2","license":"MIT","_id":"@genex-ai/embed-sdk@0.22.2","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/me-ai-org/genex-demo#readme","bugs":{"url":"https://github.com/me-ai-org/genex-demo/issues"},"dist":{"shasum":"244678f4912e42a6c9a8fce7f24c2d4ca6e5024d","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.22.2.tgz","fileCount":10,"integrity":"sha512-dQrc+ILokn6FvPOLGkMWbu2zksP4UMyOkJJFWY0ct+kDHx1bzgW28c/IaZU0uvyPT0oFHSxmqqzgqsRq0InfWQ==","signatures":[{"sig":"MEYCIQDh8ui4fwWkmQzWVk8DsXSvlJ0DPHomQHgT80jgIhUMCQIhAORZOr0srsXlf2qYeHc56oR7e67pbGGT3kHTqPzjPn16","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111920},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"c1cbd8baebabb2e8f92088bae8dda22e29194609","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/me-ai-org/genex-demo.git","type":"git","directory":"packages/embed-sdk"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.22.2_1789038288293_0.4853662201782707","host":"s3://npm-registry-packages-npm-production"}},"0.22.3":{"name":"@genex-ai/embed-sdk","version":"0.22.3","license":"MIT","_id":"@genex-ai/embed-sdk@0.22.3","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"956c000dab016cbc671fd0f684680a38a61721f2","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.22.3.tgz","fileCount":10,"integrity":"sha512-KGX5rlRdar+eMMP9JRoYoT/DykW5/RwRmhpZCfg+WHmyE41/V70zC3jlgWShBRc20AvDQlQySQetq9juaK5L1g==","signatures":[{"sig":"MEUCIQDtLKLstgUgnors8oCq4CdBNofNUY4XrPBNmS9OSFh6dQIgRut+Jtgg9A3U8EG3IczbCBKVusHS/Z38DJV9ioQS5Qc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDoPYnbRsFbGXEqHDliz8vY+HOeTlFuE64dxBzhdhoERAiEA5ocB4TLbVNDonVZkdIvIwTQZJDs55fndZCb9wBExUZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111882},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"16c166229d743308f204ee7f1a4dd9cfc3aa3ca6","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.22.3_1789568547326_0.12549371787353403","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@genex-ai/embed-sdk","version":"0.23.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.23.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"a827057031b376b7d42d4521ca4846cf95760eb5","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.23.0.tgz","fileCount":10,"integrity":"sha512-hw1KvQyEfOp6KtVCFwQuhV88sP4YesMt1ANPWnaQhufGAP3QD/R+sRRBAAzgd0J3MvLYYMPwNWmwvfnVrP9kYQ==","signatures":[{"sig":"MEYCIQCArcBwll0l5gb+88bXIoDZSwsj6F2dEBvrwYFbkAbi0AIhALz/x+fBQi6BzLBE5ppv6vJVBtuQDFlVta8xO+C/7QRv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCs4sN0PMHt4rb54OoQjmNkHIHtW0011w7X9v8zLJNHYgIgHJg6fKYxMUhiEEo9vMaiPrsNMMmKaQ6fRlg3W0KUa8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113540},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"73ef9a52636d1ec9a706d510d8668766f0111d22","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.23.0_1789661237616_0.026843201086722113","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@genex-ai/embed-sdk","version":"0.24.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.24.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"c3b4a0c743e1280accb95509e180d20c817b051a","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.24.0.tgz","fileCount":10,"integrity":"sha512-+KNz5y5kIDdnHM4rumS5qkIjwFIEA8Q6q0hUAYnMaZCOlp2AvkZ5zaMAJg7dRY4qzl2gIeutlfYl6oGlm3dCbQ==","signatures":[{"sig":"MEUCIQD8GpTwpg4iw30QtgdSFMK/4a1DgkxoYJnYqSmgGbMvSAIgc+UN3AB6EfUCa8+dJ4JRGP0wLY4Li0EakYClniEmzjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDQWNczbU7kaEtapsfctTiTYAd9pjQmhwl4nn4WXB8knwIgCDKkmGF511IO96YEgRONPyS3ynprh/tmdlZeNQjzLK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139833},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"1e2b7cc07972faa21f7f1786811b00618072e5ee","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.24.0_1790064911052_0.6212069979193637","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@genex-ai/embed-sdk","version":"0.24.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.24.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"d0c771a655617adf3f833499912b8458c8aa7336","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.24.1.tgz","fileCount":10,"integrity":"sha512-vn/1Z+d9Ly+w0P0w34z+5rS1bydVAx0x8F9Jkq+3Rrw6sCIvCMjyrcYYepQsuwzlgFHguxkhac3hIVdFLJ3MoQ==","signatures":[{"sig":"MEUCIQCLN6TSIZGk4/ncFr0HK1Gslrbl0AkgPb7pa35OvDMkEAIgZhWY+PMvcKyzZ9ebI0rOGBxIXh0iNpkrIQD9pvVWVpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCU04U4EbCx/ja8mOnDQEE7ydnj+aqoYORV0sUVKwzBgIgFI/u4vXdYQLpPvjffzLwe26ZS1owXoPPbvpIPxv6jvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140078},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"c71110b465356f8c0262684bfe8705a82be9b9db","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.24.1_1790131681818_0.4716851917400877","host":"s3://npm-registry-packages-npm-production"}},"0.24.2":{"name":"@genex-ai/embed-sdk","version":"0.24.2","license":"MIT","_id":"@genex-ai/embed-sdk@0.24.2","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"448a6718455f1dc0d752e95213b1dda27c70a66a","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.24.2.tgz","fileCount":10,"integrity":"sha512-csOI57Neqo84budq7Qc4zRg3qH1nItegepLMllHRXHPBrCsXVmFgbs3W76MrWpdy5mFE7eonmhDw8KV1MuDPSg==","signatures":[{"sig":"MEUCIBEPP/BBCXNN2TFfwYAoghqsY1Zj7MoG63QSY2w0AC/dAiEAoLXk+mfPC0KWCRKQSVTrGy0Cl6E6hkoxVUyreAgqf8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICcv3MTqF5CqiZ2BFAqwOKMPo16eDxpOukuKaGFW8vSWAiEAueb5ap7fIvSm3bxn6US1tlIkacZMvMKV2uB0BIqXLO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140699},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"97bfc0a56991659f8ee2d4e52186472a4280aaf7","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.24.2_1790170836381_0.014458549998306536","host":"s3://npm-registry-packages-npm-production"}},"0.24.3":{"name":"@genex-ai/embed-sdk","version":"0.24.3","license":"MIT","_id":"@genex-ai/embed-sdk@0.24.3","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"718d538e25ec2327f311cf2f9f02cc2843c63049","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.24.3.tgz","fileCount":10,"integrity":"sha512-A+8B2Ftq3Z24w7BL/AYsPZrpxUQ6NMr5Odi1vRuwkd6HblxokW+WVbjkVdnf0Srfc5uGMZJSc7WtUbYYVUFvoA==","signatures":[{"sig":"MEUCICzwvo/6YhTqioEYrykV4eU1JCvFw+0t4ryv/bNL3YtcAiEA8TEZVYS5uinG1FXEGiz+jMJ8CT5rP67ll4icN873VeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCSFtocKDBmfvBySxb9wGFGNygFx8BI9RvH0IPaNMmV+AIhANGaIJaXsKBgCk+O4ecQtWsE8fIRczVRpW+2p2Yrb5H9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141392},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"e27068de32fde68a6802a68aff5f163a1e85b3f1","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.24.3_1790183281936_0.19244515218356306","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@genex-ai/embed-sdk","version":"0.25.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.25.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"f2686146e94a4890553a5e62c117a7e212cbd987","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.25.0.tgz","fileCount":10,"integrity":"sha512-HtIPbHsXSOxAbxsaa4Dd60boM3AhJzA6RB5hCC+PIhksB4dKDweB1OhnBPrzFXpqwurBsOsRgEcTcGREM0f3Og==","signatures":[{"sig":"MEUCIQDYiwbH++1b1KMBKxzi6bWU8rMNbNjn/AI88E5QOcnkJgIgFYztH9n6f6BwlxI74T7thdUtCPcwBQtQHDEY3c0lxuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDCXx4YZW4SEzH0T8uZysqeY2dsjFUXkQTMev5PtgKFigIhAOX5pN/NbXjRU2OQkqqMBjb9N6nLDZMB8DB/On5l8wyr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153406},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"56d06b66982b4e6a1ec3cd4fccc3a2d0531b62a1","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.25.0_1790337717845_0.8200495283470772","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@genex-ai/embed-sdk","version":"0.26.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.26.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"d5b9eeef6e598f331e09b5054a7a007d9230bf48","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.26.0.tgz","fileCount":10,"integrity":"sha512-ybTahl01hGU9RGQX5CT1NJdAm9SJv8uq39oeVj9sYIFgXCHrAZYEBQh/Q2P08R15AxrB3VlOfTgKnGdzRS7pdQ==","signatures":[{"sig":"MEQCIFCcgHblTh+C+bcPy8qsBIve8P8xs13miaHanKNE9zuBAiBUVV1uOQvhhvyDf78e0dw38w4S9fNjtWBQ8AEpuv1XRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCTHcCOonfuY8KhWCD1Tynp9On9FIbapHhYwZaY5Hm9ywIhAMxjYEo9xXKkJPqCn63yp+5Z8K1oLD++tWFBlfSXOFm7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167260},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"0a8433990025ed62d0a6ef487960dd613a3cec29","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.26.0_1790339007344_0.3913407042378301","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@genex-ai/embed-sdk","version":"0.27.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.27.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"7c007195ffa6923da2432d60e67fe2476adecf3c","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.27.0.tgz","fileCount":10,"integrity":"sha512-jqRcVwHXKARW1zR9rEyw3dJ7hQVmoKWkKs3dHNJvSg+FiJoA/Yn27uaVvC1ifK+wIgJz8PH+TY9Ay5k/JoWXIQ==","signatures":[{"sig":"MEUCIQD96tGXHzs9vvFPvibPe8Sr1cqYw90ev6Lst3ELcTxDYgIgHpUUHKUG8X3feVCPBJQnVUb1cf5iRDFNiB4lbamoshk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAW1x4hu1Rc8KjcDJifIH+AwlkPyXA9m+6aWtpWra9O6AiEArUii5eYbKZms/CLA+tTqnvtXetlPCdg9O+PymX2e6D0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174837},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"df0453e94750d7d468f5172d424358ef14f3914e","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.27.0_1790339638205_0.30653233299878413","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@genex-ai/embed-sdk","version":"0.28.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.28.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"f40b2f08ac76fa329e2a1657fb61f28fc12ca60a","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.28.0.tgz","fileCount":10,"integrity":"sha512-oAsesA8wHtnvJCqjfHrI/FLJRggboQTVLPBNB3VSXayOt4qD3ZnmAKe1Cle9C1ZoyCTrDj6Mv8F2n3DslTfcBg==","signatures":[{"sig":"MEYCIQCUmxfYREEw96VaHd+oLloXRn4udSaR09Ytqgmz90JhdAIhAIILfMSfp5wEAVkNbGSgUvSVqvsPKNxyr3YdKHUfm54j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGthskJ4zLnA5t3easLlJsw2GDWv7R8yoohC8VztPVJvAiEA5p/ewOR78OKkY/POY0rdc3PtGQ46N9R1on9Lr4PTYUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178779},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"9a8c472bca3018ec470ad143c8bc1fd46bde31d5","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.28.0_1790340944164_0.09697423522453907","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@genex-ai/embed-sdk","version":"0.29.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.29.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"1f7069ade3535acf4c271dee798cd2cf4670ea31","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.29.0.tgz","fileCount":10,"integrity":"sha512-67TEhFo7CD4hxQcdIWnEFyowr1u6Pqg2IGWQabKUOUH7mJfeyyM+FUqiF3VHGFQyekffie0kmlfw9a4cYx+taQ==","signatures":[{"sig":"MEQCIFSUW6lrTU16EQU4D8Xlv3OLV64ADZ5vDC4+8N9rcEgzAiBstlGx2Ys4gluBAstXc/V0rKgV73JsqPSX+SRgCcGYXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDtBKSyV6003Cyr3KnI7w5tWgDtuZaM3fWRsYWDjkyE5AIhAOYycHJXWLpAUv/H4iNSO8lpZa2dhNmJVfsGDFvBOXni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179521},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"c6e759a8582acf6f6df5e623838f2663a0c31aa6","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, and soft-trust leaderboards.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.29.0_1790345071983_0.14826830402255986","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@genex-ai/embed-sdk","version":"0.30.0","license":"MIT","_id":"@genex-ai/embed-sdk@0.30.0","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"01b200973181f67af6034e76ab9cf64dd77109c7","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.30.0.tgz","fileCount":10,"integrity":"sha512-X2KCuLYh5pibz60hSDbOK9aydsuePH/FVyor0dV/0Y7xjUZ4XrqmH7l6h64TJU6lmFL9WYR0+A85V1ntJSCRZQ==","signatures":[{"sig":"MEUCIQDn4oKStu5rbTIM8/yzsxInNxQ0JPR/rRCHmA0LsYhvugIgFsBxI2EvFpyFZ/sr2isM4t1RpR2VFI8kh8OsVJNwcjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDhFz5Zj9AMBXBjcGeRkVMGjssztwq7y3oMySL5Rl1NVQIgDUZzz/tQLdQv5adqa0i2Dzxdye1fgLrTn2lQ5F0AuH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192694},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"7951b03886be7adac31d70d819e67d8310ebc515","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only","prepack":"pnpm build && publint","typecheck":"tsc --noEmit"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, soft-trust leaderboards, and shared collections and event streams.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.30.0_1790346289821_0.02265667764269108","host":"s3://npm-registry-packages-npm-production"}},"0.30.1":{"name":"@genex-ai/embed-sdk","version":"0.30.1","license":"MIT","_id":"@genex-ai/embed-sdk@0.30.1","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"homepage":"https://github.com/genex-games/genex#readme","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"5c67b859ecbc75bcda227519d6be613823aa0aa4","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.30.1.tgz","fileCount":11,"integrity":"sha512-pOfmyYOIVXqEkQ19DUkWxOJeEIeCy4Lmmgb7MctDC4Q9zasq8Xj4yEkM2+VSHEpKp0HlK5EHZpJBJ3OtuwbYgw==","signatures":[{"sig":"MEUCIQD5ERyFljEzEwbdfLYbQJWWr0OmlfouYCfWhO2M7HJogAIgCeMQryulqVRzZtjixc3SAn4oVWQ5tXJoql4Lb/h8TCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIECTNrnt+bwxc4spouVSY/GzxxOPdp45Pp0QTlMaDp7OAiEA7yUxctwfIQjfF0fQ6B31KDq9MiAWKRDV/zkXx//jp5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215803},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"4fc7234657748c56cecb3edfabe3e3e976d6a3d2","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only && node scripts/check-packed-types.mjs","prepack":"pnpm build && publint","typecheck":"tsc --noEmit","check:packed-types":"node scripts/check-packed-types.mjs"},"_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, soft-trust leaderboards, and shared collections and event streams.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embed-sdk_0.30.1_1790609984734_0.8940946933450165","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"_id":"@genex-ai/embed-sdk@0.31.0","bugs":{"url":"https://github.com/genex-games/genex/issues"},"dist":{"shasum":"8fa34160387b4f5fb87359bf154ea262d6f267c9","tarball":"https://registry.npmjs.org/@genex-ai/embed-sdk/-/embed-sdk-0.31.0.tgz","fileCount":11,"integrity":"sha512-TIaVreXtJEgnDEwFXrK3x2CXsAPCNQuqL0ZHtKV079R+Xrilz0qR+fugabafkFV9lUt440+h7J06Kfm9IUbpQg==","signatures":[{"sig":"MEUCIDw6L5LFXjmRbb27nAy7T3uwd/nXGX4Qh+M5C5WjfS6fAiEA/thKfxCB4NQOM5UlkX9Ej1OWWY5zNK6UIpEcyxw+meY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDm/K6w0mhwDxQKknkZ89q3cZYj93/XAQEl6vU16gwcXgIhAI11nfTPpZcLpxscOIiAbPx5KneIPHPqXyD9CmCAmyvN"}],"unpackedSize":220170},"main":"./dist/index.js","name":"@genex-ai/embed-sdk","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@genex-ai/source":"./src/index.ts"},"./sentry":{"types":"./dist/sentry.d.ts","import":"./dist/sentry.js","@genex-ai/source":"./src/sentry.ts"},"./development":{"types":"./dist/development.d.ts","import":"./dist/development.js","browser":null,"@genex-ai/source":"./src/development.ts"}},"gitHead":"1db3d37d2c05bb19d1bd1ec78942965234c72e95","license":"MIT","scripts":{"test":"node --test test/*.test.ts","build":"tsup","check":"pnpm build && publint && attw --pack . --profile esm-only && node scripts/check-packed-types.mjs","prepack":"pnpm build && publint","typecheck":"tsc --noEmit","check:packed-types":"node scripts/check-packed-types.mjs"},"version":"0.31.0","_npmUser":{"name":"rabneba","email":"rabneba2@gmail.com"},"homepage":"https://github.com/genex-games/genex#readme","repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"_npmVersion":"11.19.0","description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, soft-trust leaderboards, and shared collections and event streams.","directories":{},"maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","publint":"^0.3.0","typescript":"^5.8.0","@sentry/browser":"^10.63.0","@arethetypeswrong/cli":"^0.18.0","@genex/embed-protocol":"workspace:*"},"peerDependencies":{"@sentry/browser":"^10.0.0"},"peerDependenciesMeta":{"@sentry/browser":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/embed-sdk_0.31.0_1790665087312_0.3180245387773568"}}},"time":{"created":"2026-07-02T11:35:19.584Z","modified":"2026-09-29T06:58:07.615Z","0.2.0":"2026-07-02T11:35:19.906Z","0.3.0":"2026-07-03T18:47:48.402Z","0.3.1":"2026-07-03T20:35:22.943Z","0.3.2":"2026-07-03T21:08:48.212Z","0.4.0":"2026-07-06T11:00:05.326Z","0.4.1":"2026-07-07T15:18:24.129Z","0.5.0":"2026-07-10T20:51:30.038Z","0.6.0":"2026-07-13T06:56:44.115Z","0.6.1":"2026-07-15T11:17:15.489Z","0.7.0":"2026-07-15T15:45:38.125Z","0.8.0":"2026-07-17T10:44:09.642Z","0.9.0":"2026-07-21T09:12:03.887Z","0.10.0":"2026-07-21T11:44:22.660Z","0.11.0":"2026-07-23T17:40:53.327Z","0.12.0":"2026-07-29T22:28:07.417Z","0.13.0":"2026-08-03T08:15:55.580Z","0.14.0":"2026-08-04T17:37:55.149Z","0.15.0":"2026-08-12T16:52:56.940Z","0.16.0":"2026-08-13T21:00:18.314Z","0.17.0":"2026-09-04T09:04:45.376Z","0.21.0":"2026-09-09T23:58:06.362Z","0.21.1":"2026-09-10T07:23:06.499Z","0.22.0":"2026-09-10T09:52:40.267Z","0.22.1":"2026-09-10T10:41:50.461Z","0.22.2":"2026-09-10T11:04:48.498Z","0.22.3":"2026-09-16T14:22:27.432Z","0.23.0":"2026-09-17T16:07:17.704Z","0.24.0":"2026-09-22T08:15:11.126Z","0.24.1":"2026-09-23T02:48:01.921Z","0.24.2":"2026-09-23T13:40:36.482Z","0.24.3":"2026-09-23T17:08:02.043Z","0.25.0":"2026-09-25T12:01:57.950Z","0.26.0":"2026-09-25T12:23:27.424Z","0.27.0":"2026-09-25T12:33:58.291Z","0.28.0":"2026-09-25T12:55:44.269Z","0.29.0":"2026-09-25T14:04:32.083Z","0.30.0":"2026-09-25T14:24:49.939Z","0.30.1":"2026-09-28T15:39:44.824Z","0.31.0":"2026-09-29T06:58:07.407Z"},"bugs":{"url":"https://github.com/genex-games/genex/issues"},"license":"MIT","homepage":"https://github.com/genex-games/genex#readme","repository":{"url":"git+https://github.com/genex-games/genex.git","type":"git"},"description":"Player identity + durable game state for genex games — signed-in or guest play, per-player save slots, shared world state, soft-trust leaderboards, and shared collections and event streams.","maintainers":[{"name":"rabneba","email":"rabneba2@gmail.com"},{"name":"boozybats","email":"boozybats@icloud.com"},{"name":"vanyathecyborg","email":"slyshadowww@gmail.com"}],"readme":"# Genex embed SDK\n\n`@genex-ai/embed-sdk` connects a game to player identity, saves, shared\ncollections, commerce and player-funded generation. Initialize it with your\ngame's slug, API URL and trusted dashboard origins before using player APIs. See\n[the play-identity contract](../../CLI_INTEGRATION.md#6-durable-game-state--leaderboards--play-identity)\nfor identity and storage.\n\n## Share what players make\n\nSince 0.30.0 a signed-in player can publish objects every player of the game\ncan list and read — a robot, a level, a deck — and append small records anyone\nreads back in order, like match results. No game server needed.\n\n```ts\nimport { putShared, listShared, getShared, appendEvent, listEvents } from \"@genex-ai/embed-sdk\";\n\n// Publish (or replace) this player's own robot. `meta` is the small card a\n// list shows, so a list screen never downloads every body.\nconst saved = await putShared(\"robots\", \"grinder\", robot, { meta: { name: \"Grinder\", elo: 1200 } });\nif (saved.guest) showSignInToPublish();\nif (saved.quota) showTooManyRobots(saved.quota.limit);\n\n// Browse everyone's, newest first, then load one. Passing the listed version\n// makes the read cacheable: that exact version never changes.\nconst page = await listShared(\"robots\", { limit: 20 });\nconst rival = await getShared<Robot>(\"robots\", page.items[0].id, { version: page.items[0].version });\n\n// An ordered public record: append, then tail it with `after: next`.\nawait appendEvent(\"matches\", { winner: \"grinder\", loser: rival?.id });\nlet cursor: string | undefined;\nconst { items, next } = await listEvents(\"matches\", { after: cursor });\ncursor = next ?? cursor;\n```\n\nWrites need an account: a guest's resolves `{ guest: true }` and is never\nqueued. Reads are public on a published game, guests included. On a preview\nbuild the game's owner writes a separate test partition the live game never\nsees; anyone else there resolves `{ staging: true }`. Names match\n`^[a-z0-9_-]{1,64}$`. Limits, quotas and endpoints:\n[§6a](../../CLI_INTEGRATION.md#6a-shared-collections--event-streams).\n\n## Generate during play\n\nRuntime generation requires a signed-in player in a published game and an\nenabled Genex runtime service. Each player approves their own payment on Genex.\nThe game never handles an OpenRouter key or confirms a charge itself.\n\n**Test builds.** On the build `genex preview` ships, the game's OWNER can use\nevery call below before any player sees it: the same approval sheet (marked\n\"test build\"), the same terms, billed to the owner's own credits or plan. Anyone\nelse signed in on a test build, and every guest on any build, is refused with\n`player_wallet_required`; `waitForPlayer().guest` tells the two apart, and from\nSDK 0.29.0 `generationErrorMessage('player_wallet_required')` names both.\n\n```ts\nimport { generate, getGenerationModels } from '@genex-ai/embed-sdk';\n\n// After initEmbed() and player sign-in, populate your model picker from Genex.\n// The list is featured-first: show the featured models unless the user asked to\n// see more, and never a label that differs from the model you bill.\nconst { models, featuredCount } = await getGenerationModels();\nconst shortlist = featuredCount ? models.filter((m) => m.featured) : models;\nconst model = shortlist[0];\n\ngenerateButton.addEventListener('click', async () => {\n  if (!model) return;\n  const result = await generate({\n    modelId: model.id,\n    maxCredits: 5, // This call's ceiling in the player's credits — benchmark it (genex llm bench).\n    prompt: 'Invent a friendly creature. Return its name and color as JSON.',\n    outputFormat: 'json',\n    schema: {\n      type: 'object',\n      properties: { name: { type: 'string' }, color: { type: 'string' } },\n      required: ['name', 'color'],\n      additionalProperties: false,\n    },\n    allowExternal: true,\n  });\n  if (result.status === 'succeeded') {\n    // Validate the shape your game expects before rendering it as data.\n    showCreature(result.output);\n  }\n});\n```\n\nCall `generate()` directly inside the click handler: a standalone game must\nreserve a confirmation popup before asynchronous work. Embedded games ask the\ntrusted Genex parent to show its modal. Native WebViews and local-test identity\nreturn `native_unsupported` and `local_test_unsupported` until they have supported\nconfirmation surfaces.\n\n`GenerateOptions` requires `maxCredits` (SDK **0.27.0+**; an integer from 1 to\n1,000,000 — the call's ceiling in the player's credits; `estimateCoins`, its old\nname, is still accepted as the same number), `modelId`, `prompt`, `outputFormat: 'text' | 'json'`,\noptional bounded `schema`, `maxOutputTokens` (SDK **0.28.0+**, see *How long a\ncall may be*), `allowExternal` (default false), `idempotencyKey`,\n`timeoutMs` (default twenty minutes since 0.28.0; ten before) and `grantId` — a standing budget the player\nalready approved, which removes the popup entirely (see *Standing budgets*). Reuse an idempotency key only for the same\noperation; store it if you need retries to survive a reload. Only models returned\nby Genex are accepted. This first adapter generates text and JSON, including\ncreature descriptions, dialogue, rules and other structured game data.\n\n### How long a call may be\n\nSDK **0.28.0+**. A call's size is the stand's, served by\n`getGenerationModels()` as `limits`: `maxPromptBytes` and `maxSchemaBytes`\n(UTF-8 bytes), `defaultOutputTokens` (the answer's budget when you name none),\n`maxOutputTokens` (the most you may ask for) and `maxOutputBytes` (the answer,\nJSON-encoded). Read them; do not copy numbers into the game. A game that writes\nlong answers — generated code, a whole scene — asks for room:\n\n```ts\nconst { limits } = await getGenerationModels();\nconst reply = await generate({\n  ...request,                                   // modelId, prompt, outputFormat\n  maxOutputTokens: Math.min(24_000, limits?.maxOutputTokens ?? 24_000),\n  maxCredits: benchmarkedCeiling,               // must FUND that length\n  grantId,\n});\n```\n\n`maxOutputTokens` is a ceiling, not a purchase: the call is quoted on it, and\nthe answer gets only as many tokens as `maxCredits` funds (the ceiling also\nbuys the length). Under a budget the call's ceiling still may not pass the\n`perCallMaxCredits` the player approved. Benchmark with the same\n`maxOutputTokens` (`developmentGenerate({ request: { maxOutputTokens } })`).\nOver a limit the call fails before anything is quoted or charged:\n`prompt_too_large`, `schema_too_large` or `output_tokens_too_large`; a malformed\n`maxOutputTokens` is `invalid_max_output_tokens` before the network. The server\ngives a call time in proportion to the output it may write (minutes for the\nlongest answers), so the default wait is twenty minutes; answers that take\nminutes are best streamed (`generateStream()`).\n\nSDK **0.21.0+** returns the execution `status`, optional `generationId`, and\n`output` plus `source` on success. Cancellation is a normal `canceled` result,\nbut it does not imply that consumed work was free. `pending` with\n`error: 'wait_timeout'` means the SDK stopped waiting; it does not cancel or charge\nagain. Persist `generationId` and resume with `waitForGeneration(id)`, or inspect\nthe current server state with `getGeneration(id)`. Results also carry the\nserver's `billingStatus: 'pending'|'final'`, `currency`, `chargedCredits`,\n`reservedCredits`, `maxCredits`, `chargedDisplayUsdCents` and\n`reservedDisplayUsdCents` when available, including on failures (`chargedCoins`\nand `reservedCoins` stay present, and 0, on a credit receipt, for code written\nbefore credits). These USD amounts use the frozen credit value;\nnever derive them from an estimate or the current catalog. An execution can end\nwhile billing remains pending. `waitForGeneration()` waits for execution;\ncontinue reading `getGeneration(id)` for later billing settlement. Missing\nreceipt fields mean unavailable information, not zero cost.\n\n**In-game calls are paid from the player's Genex credits and billed as used.**\nThe Genex modal shows the game, the frozen request and \"billed as used, up to N\ncredits\" with its USD equivalent before approval. New quotes carry\n`quote.billingPolicy: 'metered-credits-v1'`, `kind: 'metered'`, `currency:\n'credits'` and `quote.maxCredits` — the call's quoted maximum with the Genex\nfee, never above your `maxCredits`. Approval holds that many credits; when the\ncall settles it is charged its REAL model cost plus the Genex fee, rounded up\nto a whole credit (so a very small one-time call costs one credit), and the rest\nis released. Model work that fails or is canceled is still charged for what it\nused; a request the provider refused before any work, or verified zero model\ncost, is free. `maxCredits` is a ceiling, not a price: it caps what one call\nmay reach and funds how long its answer may be. Every Genex API model needs a\npositive ceiling, including Gemini and GLM. A player who has not verified their\nemail is refused (`credits_unverified`), one short of credits sees\n`insufficient_credits`, and Genex may pause paid generation platform-wide\n(`generation_paused`). Personal funding chosen in the trusted approval modal\ncosts nothing on Genex. Quotes issued before 0.27's server change — `declared-v1`,\na fixed coin price per started attempt — keep their terms.\n\nThe provider hard budget is derived from that ceiling after the frozen platform\nfee, then capped by operator limits. Output is clipped to remaining funding;\nan input that cannot fit is refused before a call. Unresolved provider expense\nkeeps billing pending and the reservation held until verified. The trusted UI\nmust acknowledge the quote's exact `billingPolicy` at confirmation; an old UI\ncannot approve new terms. Previously issued `consumed-v1` quotes keep actual-\nusage billing and quotes without a policy keep their original promise.\nAlready-approved zero-price API requests retain their saved terms. An old\nunconfirmed zero-price API quote needs a fresh price review before coin approval;\nnever silently replace its price or start a paid request during recovery.\n\nWith `allowExternal: true`, Genex can offer the configured personal plan matching\nthe selected model alongside credits: Claude for `anthropic/` models, ChatGPT for\n`openai/` models, and neither for other models. This choice appears only in the\ntrusted Genex approval modal; never add a \"Your Plan\" model row in the game.\nEach personal choice costs nothing on Genex and its own plan and usage limits apply.\nNew quotes freeze the matching choices; connector metadata stays server-owned.\nOld unapproved quotes are narrowed to the matching provider before confirmation;\napproved personal requests retain their connector for recovery. Once chosen,\nfunding never switches providers or falls back to paid generation. Historical\npersonal-only offerings never gain free coin execution. Genex neither collects\nnor hosts subscription credentials.\n\n`source: 'external'` means user-supplied output, not proof that a particular model\ngenerated it; `modelProvenance: 'unverified'` makes that explicit. Treat every generated output as data. Never execute returned code\nor use a claimed model/source as authority to mint coins, rewards or items.\n\n## Standing budgets\n\nSDK **0.24.0+**. A one-time `generate()` asks the player once per call. When a\nfeature calls the model continuously — a thinking NPC, a director rewriting\nthe next encounter — ask for a **standing budget** instead: the player approves\nonce, sets their own limit on a Genex slider, and the game then calls the model\nwith no popup at all until the limit, a stop, or the budget's expiry.\n\n```ts\nimport { requestSpendGrant, generate, getSpendGrant, stopSpendGrant, generationErrorMessage } from '@genex-ai/embed-sdk';\n\nlet grantId: string | undefined;\n\n// Call it from the click, before awaiting: the approval surface is reserved\n// synchronously, exactly like generate().\ntalkButton.addEventListener('click', async () => {\n  if (!grantId) {\n    const budget = await requestSpendGrant({\n      models: [model.id],\n      perCallMaxCredits: 8,      // Hard ceiling per call. The server refuses a call asking more.\n      perCallEstimateCredits: 2, // The honest per-call estimate, benchmarked first.\n      disclosure: { periodLabel: 'minute', estimatedCallsPerPeriod: 4, estimatedCreditsPerPeriod: 8 },\n      maxConcurrent: 2,\n      idempotencyKey: 'npc-conversation-budget',\n    });\n    if (budget.status !== 'active') return showNotice(generationErrorMessage(budget.error));\n    grantId = budget.grantId;\n  }\n  const reply = await generate({ ...request, grantId });\n  if (reply.status === 'succeeded') applyGeneration(reply);\n  else showNotice(generationErrorMessage(reply.error));\n});\n```\n\n`requestSpendGrant()` resolves `active` once the budget can serve calls,\n`canceled` when the player closes the sheet or stops it, `expired` when the\napproval window passes, `pending` with `error: 'wait_timeout'` when the SDK\nstopped waiting (the sheet may still be open), and `failed` with a server code.\nThe successful result carries `grantId` and the full server `grant` view.\n\n**One live budget per player per game, and the newest approval wins.** Genex\nnever runs two budgets of one game for one player (per payment door). If you\nask while one is already running, the Genex sheet tells the player before they\napprove that the new budget replaces the running one (and what it has used);\napproving it stops the old budget and starts the new one in one step. Calls\nthe old budget already started still finish and are charged to it; a game\nstill holding the old id is refused `grant_stopped`, and `getSpendGrant(oldId)`\nreads `stopped` with `stopReason: 'replaced'`. So don't ask every session —\nreuse the running budget first (SDK **0.31.0+**):\n\n```ts\nimport { getActiveSpendGrant } from '@genex-ai/embed-sdk';\n\n// On boot, or after `grant_stopped`: the player's live budget in THIS game.\nconst running = await getActiveSpendGrant(); // RuntimeGrantView | null\nif (running) grantId = running.id;\nelse grantId = (await requestSpendGrant(budgetRequest)).grantId; // from a click\n```\n\n`getActiveSpendGrant()` (SDK **0.31.0+**) returns the same view as\n`getSpendGrant(id)`, or `null` when the player has no live budget in this game.\n\"Live\" means it can run calls now or once its reason clears (`active`,\n`suspended_insufficient_funds`, `waiting_for_plan`); a stopped, expired or\nused-up budget is `null`, like one that never existed. It is scoped by the\nplayer's token to this player and this game, so it never finds another game's\nbudget or another player's. A guest rejects with `no_player_session`, and any\nother refusal rejects with the server's code, like `getSpendGrant()`. It is a\nread: it never asks the player anything, so a game may call it on boot with no\nclick behind it — and, since only `requestSpendGrant()` needs a click, the one\nprompt a returning player sees is the one their running budget does not cover. The development lane (`@genex-ai/embed-sdk/development`) has\nno budgets, so there is no counterpart there.\n\n`generate({ grantId })` runs one call under that budget. It opens **no window,\nposts no parent message and needs no user gesture**, so it works from a game\nloop or a timer. Every other guard is unchanged: the published game (or its\nowner on a test build), a signed-in player, a trusted parent origin, and no\nnative or local-test surface. The\nfunding door was chosen once in the sheet, so `allowExternal` is ignored on a\nbudget call. Every call is **billed as used on the budget**: its real model\ncost plus the Genex fee accrues there, and the player's credits move one whole\ncredit at a time as calls add up — a call's own receipt carries\n`metered.chargedUsdPicos` (what it added) and `chargedCredits: 0`, and when the\nbudget ends any remainder is one credit. The per-call ceiling is `maxCredits`,\nat most the budget's `perCallMaxCredits`.\n\n`getSpendGrant(id)` is the readout to draw in the game: `limitCredits`,\n`spentCredits`, `heldCredits` (what the budget holds for calls not settled yet,\nand for a remainder under one credit), `remainingCredits`, `limitCalls`,\n`callCount`, `status` and the frozen `terms` (a budget approved before credits\nreports the same in `limitCoins`/`spentCoins`/…, and a credit budget keeps\nthose at 0). Poll it on the\ncadence your HUD needs — never derive the remaining budget from your own count\nof calls, and never show a figure the server did not send. Store `grantId` the\nway you store a `generationId`; `getSpendGrant()` recovers the budget after a\nreload, `getActiveSpendGrant()` finds it when the id is lost, and a budget\nwhose status is no longer live simply needs a new approval. `stopSpendGrant(id)` releases it when your feature ends. Stopping is\nprospective: calls already started finish and are charged. The player has the\nsame lever on Genex, on every page, and theirs always outranks the game's.\n\n**The disclosure is a promise, not a guess.** `disclosure` is what the Genex\nsheet shows the player, attributed to your game — Genex prints a server-computed\nworst case beside it, so an optimistic number is visible as one. Declare the\nrate you actually expect, benchmark `perCallEstimateCredits` before you declare\nit (see *Benchmark your own costs* below), and keep `perCallMaxCredits` a real\nceiling. The server refuses a call whose ceiling passes it\n(`grant_price_unreasonable`) — that check is what replaces the popup, so a\nbudget is never a blank cheque. `perCallMaxCoins`, `perCallEstimateCoins` and\n`estimatedCoinsPerPeriod` (before 0.27) are accepted as the same credit numbers.\nThe slider's bounds, the credit value, the fee and the recommended headroom all\ncome from the server; read them from `getGenerationModels()`\n(`standingCreditGrant`, `usdCentsPerCredit`, `feeBps`,\n`recommendedDeclaredHeadroomBps`) rather than typing any of them into the game.\n\n**Handle the refusals as game states.** A budget ends for ordinary reasons and\nthe game should have believable copy for each:\n`grant_limit_reached` (the player's limit is spent), `grant_stopped`,\n`grant_expired`, `grant_not_active`, `grant_concurrency` and\n`grant_rate_limited` (your own declared ceilings), `grant_insufficient_funds`\n(the player's credits ran low — the budget resumes when they top up),\n`credits_unverified` (verify the email on Genex), `generation_paused` (Genex\npaused paid generation; retry later),\n`waiting_for_plan` (a personal plan's own rate limit; it resumes by itself),\n`grant_price_unreasonable`, `external_grant_active` and\n`invalid_grant_limit`. `generationErrorMessage(code)` returns a player-facing\nsentence for every one of these and for every one-time code as well; show it, or\nwrite your own in-fiction line keyed off the same code. Never show the raw code,\nand never treat `unknown` as failure — it means the outcome is not settled yet.\n\n**The receiver pattern.** Persistence is the game's job, and it is what decides\nwhether a generated thing survives a reload:\n\n- Write exactly one function, `applyGeneration(result)`, that turns an output\n  into game state and saves it through the SDK's player-state API.\n- In the click path, save the `generationId` (and `grantId`) into player state\n  **before** awaiting, then call `applyGeneration`.\n- On boot, call `waitForGeneration(savedId)` for any stored id and call the\n  *same* `applyGeneration`.\n\nOne writer, two entry points: the difference between something that works once\nand something that survives a reload. Validate `result.output` against the shape\nyour game expects before using it, always. It is data, never authority for\ncoins, rewards or items.\n\n## Streaming replies\n\nSDK **0.26.0+**. `generateStream()` is `generate({ grantId })` answered as it is\nwritten: the text arrives in pieces while the model writes it, instead of all at\nonce after the call. Use it for **dialogue and narration** a player watches\nappear — an NPC's reply, a story beat. Keep `generate()` for answers the game\nonly acts on as a whole (a quest object, a list), and `judge()` for decisions.\n\n```ts\nimport { generateStream, generationErrorMessage } from '@genex-ai/embed-sdk';\n\nconst reply = await generateStream({\n  ...request,                          // the same options generate() takes\n  grantId,                             // required: only a standing budget streams\n  onDelta: (_piece, soFar) => bubble.setText(soFar),\n});\nif (reply.status === 'succeeded') applyGeneration(reply);   // the answer\nelse showNotice(generationErrorMessage(reply.error));\n```\n\nIt resolves to **the same result `generate()` gives** — status, output, receipt\n— and that result, not the pieces, is the answer. Pieces are provisional: a call\ncan still fail after text has arrived (the model broke off, or a JSON answer\ndid not match the schema), so let the resolved status decide what the game\nkeeps. It is billed exactly as a budget `generate()` call is — as used, on the\nbudget — whether it succeeds, fails, or the player walks away mid-sentence.\n\nFor `outputFormat: 'json'`, `onPartialField(name, partialText)` reports the\n**first top-level string property of `schema`** as far as the model has written\nit — put the NPC's line first in the schema and it can appear word by word while\nthe rest of the object is still arriving. The object itself is parsed and\nchecked against the schema only once it is complete.\n\n- **Grant-only.** Without `grantId` it resolves `failed` with\n  `stream_requires_grant` before the network: a one-time request waits on the\n  player's approval sheet, so there is nothing to stream. Every other guard is\n  a budget `generate()`'s — production play, a signed-in player, a trusted\n  parent, no popup and no user gesture — and so are the refusals\n  (`grant_concurrency`, `grant_limit_reached`, …). A stream holds one of the\n  budget's `maxConcurrent` slots until it has settled.\n- **Sometimes it arrives whole.** A call the stand cannot start at once, a\n  retry of a call already running (the same `idempotencyKey`), or a budget on\n  the player's own plan is answered in one piece: the SDK waits for it the way\n  `generate()` does and calls `onDelta` once with the whole text.\n- **`signal` stops the reading, not the call.** The model still finishes and the\n  call is charged; the result is `pending` with `stream_aborted` and the\n  `generationId` — `waitForGeneration(generationId)` recovers the answer. A\n  dropped connection is recovered the same way, automatically: Genex keeps\n  reading the model's reply after a client leaves and settles it either way.\n\nThe wire, for other clients: `POST /api/runtime/grants/:id/generations/stream`\nwith the embed token as a bearer answers `text/event-stream` — `start`\n`{ generationId }`, `delta` `{ text }` (batched, at most every ~50 ms) and a\nfinal `done` carrying the same view `GET /generations/:id` returns. EventSource\ncannot send a POST or the token, so the SDK reads `fetch()`'s body.\n\n## Judge during play\n\nSDK **0.25.0+**. `generate()` writes; `judge()` decides. A game that needs to\nKNOW something about its own state — which mood the player is in, how\nthreatening a scene is on a scale, whether an NPC is lying — asks the budget's\nclassifier typed questions and gets calibrated probabilities back, typically in\nabout a third of a second. It writes no prose and invents no numbers, which is\nexactly what makes it a steadier referee than a chat model asked to classify.\n\nIt is **grant-only** and **billed as used**, on the same budget as its\ngenerations: a call costs a small fraction of a credit, so it is never charged\na credit of its own. Calls add up on the budget, and a whole credit is taken\neach time they reach one; when the budget ends, a remainder is one credit and\nanything still held goes back. Ask for it when you request the budget:\n\n```ts\nimport { requestSpendGrant, judge, generationErrorMessage } from '@genex-ai/embed-sdk';\n\nconst budget = await requestSpendGrant({\n  models: [model.id],                 // or [] for a judge-only budget\n  perCallMaxCredits: 8, perCallEstimateCredits: 2,\n  disclosure: { periodLabel: 'minute', estimatedCallsPerPeriod: 4, estimatedCreditsPerPeriod: 8 },\n  judge: { enabled: true, estimatedCallsPerPeriod: 30 },  // honest checks per period\n});\n\nconst verdict = await judge({\n  grantId: budget.grantId!,\n  state: { npc: 'Mara', said: 'I never touched the key', evidence: ['key in her pocket'] },\n  questions: {\n    lying: { type: 'noul', instructions: 'Is the NPC lying about the key?' },\n    mood: { type: 'choice', instructions: 'What is the NPC\\'s mood?',\n      criteria: { calm: 'Relaxed and cooperative', defensive: { what: 'Guarded, deflecting', not_for: 'Openly hostile' } } },\n    threat: { type: 'score', instructions: 'How dangerous is the NPC right now?', criteria: ['harmless', 'wary', 'dangerous'] },\n  },\n});\nif (verdict.status === 'succeeded') {\n  const lying = verdict.answers!.lying;          // { type: 'noul', noul: 0.87 }\n  if (lying.type === 'noul' && lying.noul > 0.7) accuse();\n} else showNotice(generationErrorMessage(verdict.error));\n```\n\nThe sheet tells the player the game also uses a fast classifier billed as used,\nwith Genex's own worst case for your declared calls per period beside your\nestimate. Up to 64 questions per call: `choice` (2–255 named options, each a\ndescription or `{ what, not_for?, examples? }`), `score` (2–10 levels, lowest\nfirst) and `noul` (yes/no, `criteria: { true, false }` optional); every text\nfield is at most 2000 characters and `state` any JSON up to 96 KB. Each answer\nhas the type its question asked: `{ choice, probabilities }`,\n`{ score, probabilities }` or `{ noul }` (a probability, not a boolean — pick\nyour own threshold).\n\n`judge()` needs the budget and applies every guard a budget `generate()` does;\nit opens no window. The answer arrives in the same response; reuse an\n`idempotencyKey` to retry the same call without paying twice. A call that times\nout (`timeoutMs`, 1000–20000) is `unknown` and billed at its maximum, because\nthe work may have run. The refusals to handle as game states:\n`judge_requires_grant` (no budget), `judge_not_enabled` (the budget was approved\nwithout the judge — request a new one), `judge_requires_credits` (and, on a\nbudget approved before credits, `judge_requires_coins`),\n`judge_period_limit` (the checks reached the per-period ceiling the player was\nshown — it rolls, so try again shortly), `judge_busy` and `judge_paused` (the\nplatform's, retry later), `request_too_large` (state and questions over the\nbyte bound), and every budget code above — `grant_concurrency` now also means\n\"fits once calls in flight land\", never an ended budget. The receipt is on `verdict.billing` (`chargedCredits` and `chargedCoins` are\nalways 0; `chargedUsdPicos` is what this call added; `billingPolicy` is\n`metered-credits-v1`); the budget's `spentCredits` and `heldCredits` are the\nnumbers to show.\n\nBenchmark on your own credits with `developmentJudge()` from\n`@genex-ai/embed-sdk/development` (same shape, `{ maxCredits, request }`). It is\nbilled one whole credit a call — a player's budget, which meters, spends far\nless for the same calls.\n\n## Your subscription and the Genex player watcher\n\nBoth approval sheets can offer the player their own Claude or ChatGPT plan\nbeside credits, when the selected model's provider matches. That choice lives in\nthe trusted Genex surface only — never add a plan row to the game's own model\npicker, and never ask a player for a subscription credential. Genex neither\ncollects nor hosts them.\n\nA personal-plan request is answered on the player's own computer by the **Genex\nplayer watcher**, a small program that runs the official `claude` / `codex` CLIs\nthey signed into themselves. If a player picks their plan and has not installed\nit, Genex shows them the one-time prompt: *\"Install the Genex player watcher:\nrun `npx @genex-ai/cli-demo@latest player install` and approve it on Genex.\"*\nThe game does not install, start or speak to the watcher; it only reads\n`watcherOnline` on a grant or generation view when Genex includes it. A\npersonal-plan result costs nothing on Genex, is metered in requests rather than credits,\nand arrives with `source: 'external'` and `modelProvenance: 'unverified'`:\nuser-supplied output, never proof that a particular model produced it, and\nnever authority for money or rewards. When the player's own plan hits its rate limit\nthe budget reports `waiting_for_plan` and resumes on its own; it never falls back\nto paid work.\n\n## Registered generation workflows\n\nSDK **0.21.0+** supports multi-step generation and usage receipts through an\noperator-registered workflow. This requires the game's trusted server executor;\nan ordinary creator API key cannot register a workflow or dispatch its steps.\n**Which wallet a workflow bills is its executor's registration.** An executor\nleft on `funding: 'coins'` (every executor registered before credits, by\ndefault) keeps the fixed-price coin terms below: `requestWorkflow()` requires the\nfixed `estimateCoins` price, and offerings and quotes are `declared-v1` with a\nmultiplier of 2 or 3. An executor switched to `funding: 'credits'` issues\n`metered-credits-v1` offerings and quotes instead — `estimatedCredits`,\n`maxCredits`, `feeBps`, `currency: 'credits'`, coin fields 0, and the\nregistered `priceMultiplier` served unchanged but pricing nothing: the run is\nbilled its steps' real cost plus the Genex fee, rounded up to a whole credit.\nPass `maxCredits` (or `estimateCoins`, read as the same ceiling) to such a\nworkflow. A game must accept the new policy before its executor is switched.\n\n```ts\nimport { getWorkflowOfferings, requestWorkflow, getEmbedToken } from '@genex-ai/embed-sdk';\n\n// Load from this game's registered workflow before enabling the model picker.\nconst catalog = await getWorkflowOfferings(configuredWorkflowId);\n// Public offerings contain paid API/model rows.\n// Personal plan funding is offered only by the trusted Genex approval modal.\n// Keep the complete selected offering: availability, funding, model and prices.\nrenderModelPicker(catalog.offerings);\n\ncreateButton.addEventListener('click', async () => {\n  // Save the selected offering, exact input and benchmarked fixed price together.\n  const { offeringId, input, estimateCoins, idempotencyKey } = pendingCreation;\n  const approval = await requestWorkflow({\n    workflowId: catalog.workflowId, offeringId, input, estimateCoins, allowExternal: true, idempotencyKey,\n  });\n  if (approval.generationId) saveGenerationId(approval.generationId);\n  if (approval.status !== 'authorized' || !approval.generationId) return;\n  // Application-specific endpoint: the game backend verifies and claims the\n  // approved Genex run, binds it to one durable job, and enqueues its executor.\n  await enqueueApprovedWorkflow({\n    generationId: approval.generationId, embedToken: getEmbedToken(), input,\n  });\n});\n```\n\nCall `requestWorkflow()` directly from the click, before an earlier `await`, so\nthe SDK can reserve the standalone popup. It returns **approval**, not the\nfinished creature: `{ status: 'authorized'|'canceled'|'expired'|'failed'|'pending',\ngenerationId?, funding?, error? }`, plus available billing receipt fields.\nWaiting for completion before the backend\nclaims and enqueues the run would deadlock. Authorized replay also covers an\nalready-completed run, allowing the backend to recover the same job or artifact.\nPersonal-provider instructions remain open after authorization.\n\n`input` is `{ operation: 'create'|'refactor', description, bundleId, creatureId?,\nrevisionDigest? }`; refactors require both creature identity and its revision\ndigest. Persist this input, offering and idempotency key before submission; reuse\nthem only for the same operation after sign-in or reload. Persist the returned\ngeneration ID. Read with `getGeneration(id)` and wait with\n`waitForGeneration(id)` after enqueueing. A wait timeout does not cancel work.\nRecovering local state never starts a fresh charge without another player click.\nRead a fresh embed token when sending an approved run to the game backend; never\npersist or log the token.\n\nOn a COIN executor, the catalog's `estimatedCoins` and `priceCoins` are suggested price aliases,\nand its maximum describes operator limits. Choose the game's fixed attempt price\nafter development benchmarks, pass it as `estimateCoins`, and show coin plus USD.\nThe player's final approval always uses the server quote. Preserve the selected\nmodel, bundle, funding, availability and operator-owned tariff; the game cannot\nchange provider prices, dispatch costs or settlement.\n\nFor a coin executor's new public workflow quotes, `maxCoins` is the same fixed amount as\n`priceCoins`, not a promise to bill actual usage. The operator-owned multiplier\n(2 or 3, default 3) determines how much model work that fixed price can fund.\nThe whole started attempt is charged once, including failed or canceled work;\nno model work is zero and unknown expense keeps the hold pending. Only the\nselected model is admitted. The trusted executor validates and delivers the\nartifact; the browser cannot settle it.\n\nUse `resumeWorkflow(generationId, { timeoutMs? })` directly from a click to\nreopen a saved approval. It reads the original request without creating a quote\nor requiring a new price, including pre-0.21 consumed and legacy approvals.\nUse `requestWorkflow()` with `estimateCoins` (a coin executor) or `maxCredits` (a credit executor) for new operations.\n\nLegacy quotes without `billingPolicy` retain their original fixed-price and\nrefund terms. Never replace a saved quote's policy with the current catalog's\npolicy, infer a missing multiplier, or reprice an approved operation.\n\nAll API-backed Genex offerings are paid, including `google/gemini-3.8-flash` and\n`z-ai/glm-5.3-flash`. Airena's free access to those models is game-funded through\nits own direct OpenRouter path, outside the Genex runtime API.\nPersonal Claude/ChatGPT funding choices in the Genex approval modal cost\n**0 coins** and use the player's own account through Genex-owned\nMCP connectors. Claude uses `/player/mcp`; ChatGPT uses `/player/chatgpt/mcp`.\nChatGPT connector availability depends on account and workspace policy. One\nexternal request may be active per player across both providers. Follow the\ntrusted instructions to fetch and submit each exact stage and attempt; no\nsubscription credentials pass through the game and no paid fallback is allowed.\nSubmitted results remain user-supplied; the executor must validate them before\ndelivery. Both APIs restrict personal funding to the selected model's provider.\n\nThese workflow endpoints still require signed-in production play, including\npersonal funding. Airena's sponsored direct guest path is separate;\ndo not weaken the workflow's player/session checks to reproduce it.\n\nThe [runtime API contract](../../CLI_INTEGRATION.md#10-player-funded-runtime-generation)\ndescribes both APIs, executor authorization, recovery and connector endpoints.\n\n\n## Benchmark your own costs on the server\n\n`npx genex llm bench` is the CLI door onto this lane: it runs the real model\nagainst your own credits, reports what it actually cost and charged, and\nrecommends the per-call ceiling to declare. Reach for the API below when you want the samples in your\nown script.\n\nSDK **0.21.0+** provides `@genex-ai/embed-sdk/development`. Use it only in a\nlocal Node script or trusted server with your own full creator bearer credential\nand an owned `projectId`. It needs no production play token and cannot choose a\nplayer wallet. Restricted API keys and personal-only offerings are refused.\nKeep the credential out of game code, browser environment variables and logs;\nthe subpath is disabled for browser resolution and rejects browser execution.\n\n`maxCredits` (SDK 0.27.0+; `maxCoins` is the same number under its old name) is\nan explicit positive maximum from your own credits. Development uses\n`metered-credits-v1`: actual model usage plus the Genex fee, rounded up to a\nwhole credit per call, including failed usage, up to that maximum (a workflow\nwhose executor still bills coin uses `consumed-v1` on your coin wallet).\nGemini/GLM models are paid too. Actual zero cost is free; unknown expense\nremains held. No personal or paid fallback occurs.\n\n```ts\nimport { developmentGenerate } from '@genex-ai/embed-sdk/development';\n\nconst receipt = await developmentGenerate({\n  apiUrl: process.env.GENEX_API_URL!,\n  creatorToken: process.env.GENEX_CREATOR_TOKEN!,\n  projectId: process.env.GENEX_PROJECT_ID!,\n  maxCredits: 5,\n  request: {\n    modelId: 'your-configured-model-id',\n    prompt: 'Invent a friendly creature name.',\n    outputFormat: 'text',\n    // maxOutputTokens: 24_000,  // 0.28.0+: bench exactly what the game will ask for\n    idempotencyKey: 'calibration-sample-001',\n  },\n});\n// A 5-credit maximum can return chargedCredits: 1 for a small call. Use the\n// actual cost of repeated samples (usage.costUsdPicos) and usage.fitCredits to\n// choose the ceiling your game declares as maxCredits.\nif (receipt.billingStatus === 'final') useForCalibration(receipt.chargedCredits, receipt.usage);\n```\n\nThe full receipt includes execution status, output on success, charged/reserved\ncredits and USD, plus development-only `usage: { costUsdPicos, costUsd,\nmaxProviderUsdPicos, unknownProviderUsdPicos }`. Unknown cost is null rather\nthan zero; workflow cost aggregates known actual step costs and reports remaining\nunknown exposure separately. No token counts are inferred: SDK 0.24.3+ types the\ncounts the provider REPORTED (`usage.inputTokens`, `usage.outputTokens`, null\nwhen none), the call's own `usage.maxOutputTokens`, and `usage.fitCredits` (SDK\n0.27.0+; `usage.fitCoins` on a coin row) — the smallest per-call ceiling whose\nfunded output allowance holds that answer plus the stand's headroom. The\nceiling also decides how long the answer may be, so declare at least the p95\n`fitCredits` of your settled samples, not the charged credits alone.\n`usage.truncated` marks an answer the model had to stop writing (`error:\n'provider_token_limit'`, still charged: re-run with a higher `maxCredits`), and\n`usage.fitExceedsCap` an answer longer than the output cap the call asked for\n(its `maxOutputTokens`, else the stand's default): ask for more room, up to\n`limits.maxOutputTokens`, or for a shorter answer. When the provider\nrefused the request before running it (a rejected key, an unknown model, a rate\nlimit — `error: 'provider_http_<status>'`), nothing is charged, the hold is\nreleased, and SDK 0.24.2+ types `providerMessage`: the provider's own words,\nsanitized, on development rows only — a player-facing view never carries them.\nThe same SDK types `providerKey` on the models response (`'ok' | 'rejected' |\n'unknown'`): a stand whose key the provider refuses says so in that one word,\nand every in-game call there answers `provider_http_401` until an operator\nreplaces it — check it before a benchmark, not after.\n\nFor a registered workflow, call `developmentRequestWorkflow({ apiUrl,\ncreatorToken, projectId, workflowId, maxCredits, request: { offeringId, input,\nidempotencyKey? } })` (on a coin executor the same number is its coin cap). It returns the accepted, claimed workflow immediately so\nyour trusted executor can enqueue it. After enqueueing, call\n`waitForDevelopmentGeneration(config, id, timeoutMs?)`. Both generic and workflow\nbenchmarks are recoverable with `getDevelopmentGeneration(config, id)` and\n`cancelDevelopmentGeneration(config, id)`. The wait ends at execution plus final\nbilling, or returns the latest server view at timeout; timeout does not cancel\nor claim a refund. Save the operation ID and idempotency key for recovery.\n","readmeFilename":"README.md"}