{"_id":"@alcheme/game-chat-react","name":"@alcheme/game-chat-react","dist-tags":{"devnet":"0.1.0","latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alcheme/game-chat-react","version":"0.1.0","license":"Apache-2.0","description":"Optional React components for Alcheme external app chat and voice integrations.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"peerDependencies":{"react":">=18 <20"},"devDependencies":{"@types/react":"^19.0.0","react":"19.2.3","typescript":"^5.0.0"},"_id":"@alcheme/game-chat-react@0.1.0","gitHead":"b2f2a4cfbb00d4b2520366f29fc723737ed682b2","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-OnPCRKlUkLDjZ1t+GXXquMjHkwFe3XCv1mVDd1XX5R4TNmDbuMNVJ7s7kWAGJgvYlzvG8fG062KvDgE4Cfry+w==","shasum":"b7a8af70f9355d3176c15bd36765d6c3056bf075","tarball":"https://registry.npmjs.org/@alcheme/game-chat-react/-/game-chat-react-0.1.0.tgz","fileCount":14,"unpackedSize":33908,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDOszHb3FHJxxdhnxrOg6J7pPFhKxY6X/FabEwy1JmQFwIgPQmwp5sThqgu/ZnxbbmRcnp1KkEzU7yJFrBuMAfEP5c="}]},"_npmUser":{"name":"alcheme","email":"taiyi_id@icloud.com"},"directories":{},"maintainers":[{"name":"alcheme","email":"taiyi_id@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/game-chat-react_0.1.0_1778691062945_0.30703399635372075"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T16:51:02.826Z","0.1.0":"2026-05-13T16:51:03.085Z","modified":"2026-05-13T16:51:03.263Z"},"maintainers":[{"name":"alcheme","email":"taiyi_id@icloud.com"}],"description":"Optional React components for Alcheme external app chat and voice integrations.","license":"Apache-2.0","readme":"# @alcheme/game-chat-react\n\nHTML diagram: [Open this subproject map](../../docs/architecture/subproject-maps.html#game-chat-react).\n\nOptional React components for external app or runtime integrations that want a simple UI on top of the Alcheme headless communication and voice clients.\n\nThis package is intentionally adapter-based. It does not require API users to use React, and it does not import Plaza, draft, semantic, knowledge, transcript, or recap controls.\n\n## System Position\n\n```mermaid\nflowchart LR\n    app[\"external app UI\"] --> package[\"@alcheme/game-chat-react\"]\n    package --> chat[\"ChatPanel\"]\n    package --> voice[\"VoiceControls\"]\n    chat --> adapter[\"host-supplied GameChatClientAdapter\"]\n    voice --> voice_adapter[\"host-supplied VoiceClientAdapter\"]\n    adapter -. \"may wrap\" .-> sdk[\"@alcheme/sdk runtime clients\"]\n    voice_adapter -. \"may wrap\" .-> sdk\n    sdk --> query[\"query-api communication / voice routes\"]\n```\n\n## Component Map\n\n```mermaid\nflowchart TB\n    index[\"src/index.ts\"] --> chat[\"ChatPanel\"]\n    index --> voice[\"VoiceControls\"]\n    chat --> list[\"listRoomMessages\"]\n    chat --> send[\"sendRoomMessage\"]\n    chat --> stream[\"subscribeRoomMessages\"]\n    voice --> join[\"joinVoice\"]\n    voice --> mute[\"setMutedBySelf\"]\n    voice --> leave[\"leave\"]\n```\n\n## Responsibility\n\n- Provides optional React UI for chat messages and voice controls.\n- Depends on adapters supplied by the host application instead of importing Plaza or Alcheme product UI.\n- Keeps external app integrations compatible with headless SDK runtime clients.\n- Leaves authentication, wallet signing, room claims, and provider setup to the host application.\n\n## Build\n\n```bash\nnpm --workspace @alcheme/game-chat-react run build\n```\n\n## Components\n\n- `ChatPanel`: message list, composer, send state, and stream reconnect state.\n- `VoiceControls`: join/leave, mute/unmute, and participant list.\n\nPass adapters compatible with the existing headless SDK runtime methods.\n\n## Entry Points\n\n| Surface | File |\n| --- | --- |\n| Package exports | `packages/game-chat-react/src/index.ts` |\n| Chat UI | `packages/game-chat-react/src/ChatPanel.tsx` |\n| Voice UI | `packages/game-chat-react/src/VoiceControls.tsx` |\n| Build config | `packages/game-chat-react/tsconfig.json` |\n\n## Blind Spots To Check\n\n| Question | Evidence Needed |\n| --- | --- |\n| Which adapter methods should be treated as stable public API? | Compare `ChatPanel.tsx`, `VoiceControls.tsx`, SDK runtime clients, and external example usage. |\n| Which styling contract should host apps expect? | Inspect exported class names and any future CSS package decisions. |\n| Which voice provider states need richer UI? | Compare `VoiceConnectionState` with query-api voice provider capabilities. |\n","readmeFilename":"README.md","_rev":"1-48967a4dfe6d6d82c6732e54b51f3536"}