{"id":39025778,"url":"https://github.com/equationalapplications/clanker","last_synced_at":"2026-07-02T18:05:46.785Z","repository":{"id":319011457,"uuid":"585290845","full_name":"equationalapplications/clanker","owner":"equationalapplications","description":"Clanker","archived":false,"fork":false,"pushed_at":"2026-07-02T15:00:22.000Z","size":14116,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-02T15:10:40.883Z","etag":null,"topics":["ai","chatbot"],"latest_commit_sha":null,"homepage":"https://clanker-ai.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equationalapplications.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-01-04T19:55:35.000Z","updated_at":"2026-07-02T13:42:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"96226264-c2f5-46de-afff-937583381486","html_url":"https://github.com/equationalapplications/clanker","commit_stats":null,"previous_names":["equationalapplications/clanker"],"tags_count":239,"template":false,"template_full_name":null,"purl":"pkg:github/equationalapplications/clanker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equationalapplications%2Fclanker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equationalapplications%2Fclanker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equationalapplications%2Fclanker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equationalapplications%2Fclanker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equationalapplications","download_url":"https://codeload.github.com/equationalapplications/clanker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equationalapplications%2Fclanker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35057470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatbot"],"created_at":"2026-01-17T17:32:34.650Z","updated_at":"2026-07-02T18:05:46.774Z","avatar_url":"https://github.com/equationalapplications.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clanker\n\n\u003e An AI chatbot Expo app with Firebase + Cloud SQL architecture. Users create custom characters and chat with them using Vertex AI, with subscription-based access control.\n\n## Documentation Deep Dives\n\n### Authentication\n- **[Authentication](docs/authentication.md)** — Source of truth, Firebase → Cloud SQL bootstrap flow, auth cache management, provider name sync, event-driven refresh, cookie consent, and optimistic terms acceptance — all in one place.\n\n### AI \u0026 Chat\n- **[AI \u0026 Chat](docs/ai-and-chat.md)** — Chat response pipeline (`generateReply`), chat memory summarization, LLM Wiki Memory (structured facts/tasks/events), wiki state machine architecture, image generation (`generateImage`), and local `cloud-agent` dev (local Postgres + Vertex via ADC; see `docker-compose.local.yml` and `./scripts/migrate-dev.sh`).\n- **[Browser Bridge](docs/browser-bridge.md)** — Clanker Desktop Bridge MV3 extension: cross-device web tasks via `browser_action`, Wake-and-Connect lifecycle, Firestore coordination, approval flow, pairing, and billing.\n- **[Real-Time Voice Chat](docs/real-time-voice-chat.md)** — Talk tab live voice calls via Gemini Live (`/agent/live` WebSocket), XState session lifecycle, audio I/O, pre-flight checks, and native build requirements.\n- **[Edge Agent](docs/edge-agent.md)** — On-device tool orchestration loop (BYOI proxy via `generateReply`), escalation paths, per-round billing, and security policy.\n\n### Billing \u0026 Credits\n- **[Billing \u0026 Credits](docs/billing-and-credits.md)** — First-login credits, Stripe and RevenueCat webhook event mappings, web checkout flow, Apple auto-renewable subscription consent, and multi-tab checkout robustness (localStorage + BroadcastChannel).\n\n### Admin Operations\n- **[Admin Operations](docs/admin-operations.md)** — Web-only admin dashboard UX, callable function contracts (list/set/reset/delete), authorization model, audit logging, and runbook with action procedures.\n\n### Architecture \u0026 Data\n- **[Architecture \u0026 Data](docs/architecture-and-data.md)** — State management (xState / TanStack Query / SQLite), navigation (Expo Router), offline support architecture, Cloud SQL schema design \u0026 migrations, cloud character save/share, avatar upload, and support page.\n\n### ADRs\n- **[ADR 001: Callable Error Normalization](docs/adrs/001-callable-error-normalization.md)** — How callable handlers map bootstrap/config errors to stable `HttpsError` codes.\n\n### Workflows \u0026 Debugging\n- **[Contributing Guide](CONTRIBUTING.md)** — Git workflow, merge strategy, coding standards, commit guidelines (Conventional Commits), testing (root + functions), web debugging, and PR process — all in one place.\n\n### Other Reference\n- **[Accessibility Guide](docs/accessibility.md)** — Conventions for `accessibilityLabel`, `accessibilityRole`, `accessibilityHint`, live regions, and skip links.\n- **[Architecture Charts](docs/flowcharts/README.md)** — Auto-generated Mermaid dependency charts per module, plus C4 system context and container diagrams.\n\n## 🏗️ Tech Stack\n\n- **Frontend**: React Native 0.81, Expo SDK 54, TypeScript 5.9\n- **Navigation**: Expo Router (file-based routing)\n- **Authentication**: Firebase Auth\n- **Backend**: Firebase Functions + Cloud SQL (PostgreSQL)\n- **AI**: Google Cloud Vertex AI\n- **State Management**: React Query (TanStack Query)\n- **Payments**: Stripe (web) + RevenueCat (iOS/Android)\n- **UI Components**: React Native Paper, Gifted Chat\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details on:\n\n- How to set up your development environment\n- Our code style and conventions\n- How to submit pull requests\n- Our commit message format\n\nPlease read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.\n\n## 🔒 Security\n\nIf you discover a security vulnerability, please email [info@equationalapplications.com](mailto:info@equationalapplications.com). Do not create a public issue. See [SECURITY.md](SECURITY.md) for more details.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Built with [Expo](https://expo.dev/)\n- UI components from [React Native Paper](https://reactnativepaper.com/)\n- Chat interface powered by [React Native Gifted Chat](https://github.com/FaridSafi/react-native-gifted-chat)\n- AI capabilities provided by [Google Cloud Vertex AI](https://cloud.google.com/vertex-ai)\n- Agentic memory powered by [expo-llm-wiki](https://github.com/equationalapplications/expo-llm-wiki)\n- Agent tools and permissions via [@equationalapplications/core-llm-tools](https://www.npmjs.com/package/@equationalapplications/core-llm-tools)\n\n## 📞 Support\n\n- **Documentation**: Check the `/docs` folder for detailed guides\n- **Issues**: [GitHub Issues](https://github.com/equationalapplications/clanker/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/equationalapplications/clanker/discussions)\n- **Email**: [info@equationalapplications.com](mailto:info@equationalapplications.com)\n\n---\n\nMade with ❤️ by [Equational Applications LLC](https://equationalapplications.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequationalapplications%2Fclanker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequationalapplications%2Fclanker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequationalapplications%2Fclanker/lists"}