How josephyt7/shadow-talk works
ShadowTalk is a community chat application with an AI agent, membership-based Secret Society features, and a protected administration console. The principal workflow runs from a visitor using the React client to the Express/Socket.IO server, which handles chat and community events, with James providing AI responses. Separate branches cover email verification, society membership and chat, admin security and management, and visitor geolocation. Edges are limited to relationships supported by the excerpts, SOURCE INDEX references, or explicit file evidence; several UI and service implementations were not sampled.
Main entry points: agent.js James agent · adminRoutes.js Admin APIs · server.js Chat server · App.jsx Community app
Components 24
Community client
- Community app
client/src/App.jsx - Admin console
client/src/components/admin/AdminPanel.jsx - Visitor globe
client/src/components/admin/GeoGlobe3D.jsx - Voice activator
client/src/components/admin/HiddenVoiceActivator.jsx
Chat runtime
- Chat server
server/server.js - Email verification
server/otpService.js
James agent
- James agent
server/james/agent.js - AI provider
server/james/aiProvider.js - Agent tools
server/james/tools.js - Web research
server/james/webResearch.js - Agent memory
server/james/memory.js - Moderation
server/james/moderation.js - Message decisions
server/james/decisionEngine.js - News service
server/james/newsService.js
Society features
- Membership applications
server/membershipService.js - Society service
server/services/secretSocietyService.js - Society chat
client/src/components/society/SecretSocietyChat.jsx
Administration
- Admin APIs
server/admin/adminRoutes.js - Admin sessions
server/admin/adminAuthSession.js - Identity verification
server/admin/adminIdentityVerification.js - Admin route protection
server/admin/adminRouteProtection.js - Voice verification
server/admin/voiceVerification.js - Geolocation
server/services/geoService.js
Other components
- Visitor
Connections 26
- Visitor → Community app: uses
client/src/App.jsx - Community app → Chat server: chat events
- Community app → Admin console: opens
client/src/App.jsx - Community app → Society chat: opens
client/src/App.jsx - Community app → Voice activator: renders
client/src/App.jsx - Chat server → Email verification: verifies email
server/server.js - Chat server → Membership applications: handles applications
server/server.js - Chat server → Society service: uses
server/server.js - Chat server → James agent: starts bot
server/server.js - Chat server → Admin APIs: mounts routes
server/server.js - James agent → AI provider: requests completions
server/james/agent.js - James agent → Agent tools: executes tools
server/james/agent.js - James agent → Web research: uses
server/james/agent.js - James agent → Agent memory: records messages
server/james/agent.js - James agent → Moderation: uses
server/james/agent.js - James agent → Message decisions: uses
server/james/agent.js - James agent → News service: broadcasts news
- Admin console → Admin APIs: calls APIs
- Admin APIs → Admin sessions: checks sessions
server/admin/adminRoutes.js - Admin APIs → Identity verification: verifies identity
server/admin/adminRoutes.js - Admin APIs → Admin route protection: protects routes
server/admin/adminRoutes.js - Admin APIs → Voice verification: uses verification
server/admin/adminRoutes.js - Admin APIs → Geolocation: loads visitor locations
server/admin/adminRoutes.js - Admin APIs → Society service: manages membership
server/admin/adminRoutes.js - Admin console → Visitor globe: renders
client/src/components/admin/AdminPanel.jsx - Visitor globe → Geolocation: location data