mindroom 0.1.2__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mindroom-0.1.4/AGENTS.md +1 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/CLAUDE.md +124 -4
- {mindroom-0.1.2 → mindroom-0.1.4}/PKG-INFO +1 -1
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/Dockerfile.backend +10 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/Dockerfile.frontend +7 -7
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/config.py +1 -1
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/memory/config.py +3 -0
- mindroom-0.1.2/AGENTS.md +0 -212
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/agents/configfield-generator.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/agents/mindroom-tester.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/commands/commit.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/commands/cruft.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/commands/init.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.claude/skills/agent-cli-dev/examples.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.dockerignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.env.example +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.envrc +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.gitattributes +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.github/renovate.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/build-mindroom.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/build-platform.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/pytest.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/release.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/security-scan.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/.pre-commit-config.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/analyst.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/calculator.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/callagent.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/code.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/data_analyst.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/email_assistant.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/finance.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/general.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/home.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/news.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/research.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/router.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/security.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/shell.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/summary.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/analysis.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/automation.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/business.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/communication.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/dev.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/docs.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/finance.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/help.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/home.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/lobby.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/news.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/ops.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/productivity.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/research.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/science.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/teams/code_team.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/avatars/teams/super_team.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/cert-manager/cluster-issuer-prod.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/cert-manager/cluster-issuer-staging.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/Chart.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/default-config.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/configmap-mindroom.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/configmap-nginx.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/configmap-synapse.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/deployment-backend.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/deployment-frontend.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/deployment-synapse.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/ingress.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/networkpolicy.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/pvc.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/secret-api-keys.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/service.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/values.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/.env.example +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/build_load_images.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/down.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/install_platform.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/kind-config.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/setup-local-access.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/shell.nix +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/start-fresh.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/test-access.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/up.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/validate.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/Chart.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/all.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/apex-redirect.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/ingress.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/rbac.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/values-prod.example.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/values-staging.example.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/values.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/cleanup-duplicate-subscriptions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/db/backup_supabase.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/db/setup-stripe-products.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/list-instances.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/mindroom-cli.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/setup-stripe-webhooks.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/setup-terraform-state.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/sync-stripe-prices.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/update-api-keys.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/validate_multitenancy_security.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/view-instance-logs.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/cert-manager.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/dns.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/hcloud-microos-snapshots.pkr.hcl +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/helm.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/kube.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-prod.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-staging.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/modules/dns/dns.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/platform-cert.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/providers-porkbun.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/build_snapshots.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/destroy.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/status.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/up.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/supabase-auth.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/terraform.tfvars.example +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/variables.tf +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/config.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/TESTING.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/agent_configuration.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/gmail_oauth_deployment.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/gmail_setup.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/ops/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/pitches.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_ACTION_PLAN.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_CRITICAL_FIXES.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_EXECUTIVE_SUMMARY.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_01_AUTH.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_02_MULTITENANCY.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_03_SECRETS.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_04_INJECTION.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_05_TOKENS.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_06_INFRASTRUCTURE.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_07_DATA_PROTECTION.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_08_DEPENDENCIES.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_09_ERROR_HANDLING.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_10_API_SECURITY.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_11_MONITORING.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_12_FRONTEND.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_CHECKLIST.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_FINDINGS.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_SUMMARY.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/.eslintrc.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/.prettierignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/.prettierrc +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/SCREENSHOT_INSTRUCTIONS.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/bun.lock +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/index.html +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/chat-mockup.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/generate-mockup-from-json.cjs +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-conversations.cjs +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-cross-org.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-cross-platform.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-multi-agent.png +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/package.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/postcss.config.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/public/matrix-widget.html +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/public/widget.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/scripts/generate-icon-imports.cjs +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/scripts/screenshot.cjs +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/App.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentEditor/AgentEditor.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentEditor/AgentEditor.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentList/AgentList.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentList/AgentList.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ApiKeyConfig/ApiKeyConfig.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ApiKeyConfig/ApiKeyConfig.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ApiKeyConfig/index.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Dashboard/Dashboard.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Dashboard/NetworkGraph.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/GoogleIntegration/GoogleIntegration.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/HomeAssistantIntegration/HomeAssistantIntegration.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/EnhancedConfigDialog.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/Integrations.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/Integrations.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/iconMapping.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/google/google.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/google/index.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/homeassistant/homeassistant.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/homeassistant/index.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/index.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/spotify/index.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/spotify/spotify.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/types/index.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/MemoryConfig/MemoryConfig.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/MemoryConfig/MemoryConfig.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ModelConfig.extra_kwargs.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ModelConfig.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ModelConfig.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ProviderLogos.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomEditor/RoomEditor.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomEditor/RoomEditor.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomList/RoomList.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomList/RoomList.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/SyncStatus/SyncStatus.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamEditor/TeamEditor.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamEditor/TeamEditor.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamList/TeamList.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamList/TeamList.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ThemeToggle/ThemeToggle.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ToolConfig/ToolConfigDialog.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ToolConfig/ToolConfigDialog.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/UnconfiguredRooms/UnconfiguredRooms.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/UnconfiguredRooms/index.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/VoiceConfig/VoiceConfig.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/EditorPanel.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/EmptyState.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/FieldGroup.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/FilterSelector.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/ItemCard.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/ListPanel.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/index.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/styles.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/alert.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/badge.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/button.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/card.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/checkbox.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/dialog.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/input.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/label.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/scroll-area.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/select.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/separator.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/skeleton.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/tabs.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/textarea.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/toaster.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/toggle-group.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/tooltip.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/use-toast.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/contexts/ThemeContext.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/hooks/useSwipeBack.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/hooks/useTools.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/index.css +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/lib/api.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/lib/providers.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/lib/utils.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/main.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/services/configService.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/store/configStore.test.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/store/configStore.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/styles/animations.css +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/styles/tokens.css +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/test/setup.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/types/config.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/types/toolConfig.test.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/types/toolConfig.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/vite-env.d.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/tailwind.config.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/take_screenshot.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/tsconfig.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/tsconfig.node.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/vite.config.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/frontend/vitest.config.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/justfile +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/.dockerignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/.dockerignore.backend +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/BRIDGE_MANAGER.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/README-DOCKER.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/bridge.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/default-deploy.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/deploy.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.authelia.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.synapse.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.tuwunel.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.wellknown.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/authelia/configuration.yml.j2 +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/authelia/users_database.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/docker-compose.email.j2 +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/docker-compose.slack.j2 +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/docker-compose.telegram.j2 +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/synapse/entrypoint.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/synapse/homeserver.yaml.j2 +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/synapse/log.config +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/tuwunel/tuwunel.toml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/entrypoint.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/homeserver.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/log.config +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/log.minimal.config +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker-compose.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/mindroom/tools_metadata.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/pyproject.toml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/run-backend.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/run-frontend.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/run-nix.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/run-tests.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/.dockerignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/.env.example +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/API_ENDPOINT_MAPPING.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/COMPONENTS.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/Dockerfile.platform-backend +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/Dockerfile.platform-frontend +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/deploy.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/docker-compose.yml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/docs/authentication.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/.python-version +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/pyproject.toml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/auth_monitor.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/config.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/db_utils.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/deps.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/k8s.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/metrics.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/middleware/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/middleware/audit_logging.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/models.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/pricing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/process.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/accounts.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/admin.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/gdpr.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/health.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/instances.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/pricing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/provisioner.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/sso.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/stripe_routes.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/subscriptions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/usage.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/webhooks.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/tasks/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/tasks/cleanup.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/tasks/usage_metrics.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/audit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/log_sanitizer.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/logger.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/main.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/conftest.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/stripe_mock.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_accounts.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin_account_deletion.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin_allowlist.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin_rate_limit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_auth_monitor.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_bearer_token_parsing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_cors_headers.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_deps.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_gdpr.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_instances.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_log_sanitizer.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_metrics_endpoint.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_multitenancy_security.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_pricing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_auth.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_extended.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_rate_limit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_real.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_rate_limit_sso.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_request_size_limit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_security_headers_and_hosts.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_sso_cookie_attrs.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_stripe_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_stripe_routes.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_stripe_utils.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_subscriptions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_usage.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_usage_metrics.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_user_rate_limit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_webhook_rate_limit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_webhooks.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/uv.lock +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/bun.lock +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/jest.config.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/jest.setup.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/middleware.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/next.config.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/package.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/postcss.config.mjs +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/brain-logo.svg +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/file.svg +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/globe.svg +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/next.svg +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/vercel.svg +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/window.svg +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/runtime-config-shared.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/shell.nix +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/accounts/[id]/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/accounts/__tests__/page.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/accounts/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/audit-logs/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/instances/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/layout.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/subscriptions/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/usage/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/api/csp-report/route.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/callback/route.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/complete/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/login/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/signup/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/billing/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/billing/upgrade/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/instance/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/layout.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/edge-cases.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/page.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/settings/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/support/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/usage/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/favicon.ico +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/globals.css +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/layout.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/privacy/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/terms/page.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/DarkModeToggle.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/LaunchButton.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/MindRoomLogo.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/admin/AdminLayout.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/admin/InstanceActions.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/admin/__tests__/InstanceActions.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/auth/__tests__/auth-wrapper.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/auth/auth-wrapper.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/DashboardLoader.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/Header.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/InstanceCard.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/QuickActions.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/Sidebar.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/UsageChart.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.simple.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.test.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/CTA.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Collaboration.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Features.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Hero.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/HowItWorks.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Pricing.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Stats.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Testimonials.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/WhyItMatters.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/ui/AnimatedSection.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/ui/Card.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/ui/button.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useAuth.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useDarkMode.tsx +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useInstance.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useSubscription.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useUsage.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/__tests__/api.test.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/__tests__/instance-lifecycle.test.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/api.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/auth/admin.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/cache.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/constants.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/logger.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/pricing-config.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/runtime-config.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/stripe/client.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/supabase/client.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/supabase/server.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/supabase/types.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/styles/buttons.css +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/take_screenshot.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tests/admin.test.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tests/e2e.test.ts +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tests/test-instance-control.js +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tsconfig.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/pricing-config.yaml +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/redeploy-mindroom-backend.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/redeploy-mindroom-frontend.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/supabase/.gitignore +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/supabase/migrations/000_consolidated_complete_schema.sql +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/README.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/apply-rotated-keys.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/check_schema_usage.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/clean-git-history.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/rotate-api-keys.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/supabase_exec_sql.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/sync_config.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/testing/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/testing/benchmark_matrix_throughput.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/check_git_secrets.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/cleanup_agent_edits.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/cleanup_agent_edits.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/cleanup_agent_edits_docker.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/forward-ports.sh +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/generate_avatars.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/rewrite_git_commits_ai.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/rewrite_git_history_apply.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/shell.nix +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/agent_prompts.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/agents.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/ai.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/credentials.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/google_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/google_tools_helper.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/homeassistant_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/integrations.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/main.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/matrix_operations.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/tools.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/background_tasks.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/bot.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/cli.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/commands.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/config_commands.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/config_confirmation.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/constants.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/credentials.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/credentials_sync.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/config_manager.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/gmail.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/google_calendar.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/google_sheets.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/homeassistant.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/error_handling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/file_watcher.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/interactive.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/logging_config.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/client.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/event_info.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/identity.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/large_messages.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/mentions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/message_builder.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/message_content.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/presence.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/rooms.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/state.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/typing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/users.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/memory/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/memory/functions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/py.typed +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/response_tracker.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/room_cleanup.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/routing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/scheduling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/stop.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/streaming.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/teams.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/thread_utils.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/agentql.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/airflow.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/apify.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/arxiv.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/aws_lambda.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/aws_ses.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/baidusearch.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/brightdata.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/browserbase.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/cal_com.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/calculator.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/cartesia.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/composio.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/config_manager.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/confluence.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/crawl4ai.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/csv.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/custom_api.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/dalle.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/daytona.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/discord.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/docker.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/duckdb.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/duckduckgo.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/e2b.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/eleven_labs.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/email.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/exa.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/fal.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/file.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/financial_datasets_api.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/firecrawl.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/gemini.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/giphy.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/github.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/gmail.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/google_calendar.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/google_maps.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/google_sheets.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/googlesearch.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/groq.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/hackernews.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/jina.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/jira.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/linear.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/linkup.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/lumalabs.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/mem0.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/modelslabs.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/moviepy_video_tools.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/newspaper4k.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/openai.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/openweather.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/oxylabs.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/pandas.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/pubmed.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/python.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/reddit.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/replicate.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/resend.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/scrapegraph.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/searxng.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/serpapi.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/serper.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/shell.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/slack.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/sleep.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/spider.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/sql.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/tavily.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/telegram.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/todoist.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/trello.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/twilio.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/web_browser_tools.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/webex.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/website.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/whatsapp.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/wikipedia.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/x.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/yfinance.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/youtube.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/zendesk.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/zep.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/zoom.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools_metadata.json +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools_metadata.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/topic_generator.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/voice_handler.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/__init__.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/conftest.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_api.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_credentials_api.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_file_watcher.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_matrix_operations.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/conftest.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/manual/manual_test_message_sizes.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agent_datetime_context.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agent_order_preservation.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agent_response_logic.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agents.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_ai_error_message_display.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_authorization.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_authorization_config_update.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_bot_scheduling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_cancel_mid_wait.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_cli.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_command_with_emoji.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_commands.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_config_commands.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_config_manager_consolidated.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_config_reload.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_credentials.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_credentials_api.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_credentials_sync.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_cron_natural_language.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dm_detection.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dm_functionality.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dm_room_preservation.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dynamic_config_update.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_edit_after_restart.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_edit_event_handling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_edit_response_regeneration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_error_handling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_error_handling_in_callbacks.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_event_driven_scheduling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_event_relations.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_extra_kwargs.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_gemini_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_homeassistant_tools.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_interactive.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_interactive_thread_fix.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_large_messages.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_large_messages_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_matrix_agent_manager.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_matrix_identity.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_memory_config.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_memory_functions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_memory_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_mention_exclusion.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_mentions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_message_content.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_mock_tests.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_multi_agent_bot.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_multi_agent_e2e.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_multiple_edits.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_preformed_team_routing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_presence.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_presence_based_streaming.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_response_tracker.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_response_tracking_regression.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_restore_dedup.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_room_invites.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_router_configured_agents.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_router_rooms.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_routing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_routing_integration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_routing_regression.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_schedule_agent_validation.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_scheduled_task_restoration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_scheduling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_skip_mentions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_stop_emoji_reuse.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_streaming_behavior.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_streaming_e2e.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_streaming_edits.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_sync_task_cancellation.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_collaboration.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_coordination.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_extraction.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_invitations.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_mode_decision.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_room_updates.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_thread_history.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_threading_error.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_timezone_scheduling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_tool_config_sync.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_tool_dependencies.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_tools_metadata.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_unknown_command.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_unknown_command_response.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_agent_mentions.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_bot_threading.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_command_processing.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_handler.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_handler_thread.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_thread_agent_response.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_workflow_scheduling.py +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/tools/CONFIGFIELD_GENERATION_PROMPT.md +0 -0
- {mindroom-0.1.2 → mindroom-0.1.4}/uv.lock +0 -0
mindroom-0.1.4/AGENTS.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
CLAUDE.md
|
|
@@ -13,6 +13,33 @@ MindRoom - AI agents that live in Matrix and work everywhere via bridges. The pr
|
|
|
13
13
|
|
|
14
14
|
## Architecture
|
|
15
15
|
|
|
16
|
+
### Core MindRoom (`src/mindroom/`)
|
|
17
|
+
|
|
18
|
+
**MultiAgentOrchestrator** (`bot.py`) is the heart of the system - it boots every configured entity (router, agents, teams), provisions Matrix users, and keeps sync loops alive with hot-reload support when `config.yaml` changes.
|
|
19
|
+
|
|
20
|
+
**Entity types**:
|
|
21
|
+
- `router`: Built-in traffic director that greets rooms and decides which agent should answer
|
|
22
|
+
- **Agents**: Single-specialty actors defined under `agents:` in `config.yaml`
|
|
23
|
+
- **Teams**: Collaborative bundles of agents that coordinate or parallelize work
|
|
24
|
+
|
|
25
|
+
**Key modules**:
|
|
26
|
+
| Module | Purpose |
|
|
27
|
+
|--------|---------|
|
|
28
|
+
| `bot.py` | MultiAgentOrchestrator - boots agents, manages sync loops, hot-reload |
|
|
29
|
+
| `agents.py` | Agent creation and configuration |
|
|
30
|
+
| `config.py` | Pydantic models for YAML config parsing |
|
|
31
|
+
| `routing.py` | Intelligent agent selection when no agent is mentioned |
|
|
32
|
+
| `teams.py` | Multi-agent collaboration (coordinate vs collaborate modes) |
|
|
33
|
+
| `memory/` | Mem0-inspired dual memory: agent, room, and team-scoped |
|
|
34
|
+
| `tools/` | 80+ tool integrations |
|
|
35
|
+
| `matrix/` | Matrix protocol integration (client, users, rooms, presence) |
|
|
36
|
+
|
|
37
|
+
**Persistent state** lives under `mindroom_data/` (overridable via `STORAGE_PATH`):
|
|
38
|
+
- `sessions/` – Per-agent SQLite event history for Agno conversations
|
|
39
|
+
- `memory/` – Mem0 vector store for agent/room/team memories
|
|
40
|
+
- `tracking/` – Response tracking to avoid duplicate replies
|
|
41
|
+
- `credentials/` – JSON secrets synchronized from `.env`
|
|
42
|
+
|
|
16
43
|
### SaaS Platform (`saas-platform/`)
|
|
17
44
|
- **Platform Backend**: Modular FastAPI app with routes in `backend/routes/`
|
|
18
45
|
- **Platform Frontend**: Next.js 15 with centralized API client in `lib/api.ts`
|
|
@@ -20,10 +47,68 @@ MindRoom - AI agents that live in Matrix and work everywhere via bridges. The pr
|
|
|
20
47
|
- **Deployment**: Kubernetes with Helm charts, dual-mode support (platform/standalone)
|
|
21
48
|
- **Database**: Supabase with comprehensive RLS policies
|
|
22
49
|
|
|
23
|
-
###
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
50
|
+
### Repo Layout
|
|
51
|
+
|
|
52
|
+
| Path | Purpose |
|
|
53
|
+
|------|---------|
|
|
54
|
+
| `src/mindroom/` | Core agent runtime (Matrix orchestrator, routing, memory, tools) |
|
|
55
|
+
| `frontend/` | Core MindRoom dashboard (Vite + React) |
|
|
56
|
+
| `saas-platform/platform-backend/` | SaaS control-plane API (FastAPI) |
|
|
57
|
+
| `saas-platform/platform-frontend/` | SaaS portal UI (Next.js 15) |
|
|
58
|
+
| `saas-platform/supabase/` | Supabase migrations, policies, seeds |
|
|
59
|
+
| `cluster/` | Terraform + Helm for hosted deployments |
|
|
60
|
+
| `local/` | Docker Compose helpers for local dev stacks |
|
|
61
|
+
|
|
62
|
+
### Configuration Model
|
|
63
|
+
|
|
64
|
+
The authoritative config is `config.yaml`, loaded via Pydantic models in `src/mindroom/config.py`:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
agents:
|
|
68
|
+
code:
|
|
69
|
+
display_name: CodeAgent
|
|
70
|
+
role: Generate code, manage files, execute shell commands
|
|
71
|
+
model: sonnet
|
|
72
|
+
tools: [file, shell]
|
|
73
|
+
instructions:
|
|
74
|
+
- Always read files before modifying them.
|
|
75
|
+
rooms: [lobby, dev]
|
|
76
|
+
|
|
77
|
+
defaults:
|
|
78
|
+
num_history_runs: 5
|
|
79
|
+
markdown: true
|
|
80
|
+
|
|
81
|
+
models:
|
|
82
|
+
sonnet:
|
|
83
|
+
provider: anthropic
|
|
84
|
+
id: claude-sonnet-4-latest
|
|
85
|
+
|
|
86
|
+
router:
|
|
87
|
+
model: ollama
|
|
88
|
+
|
|
89
|
+
teams:
|
|
90
|
+
super_team:
|
|
91
|
+
display_name: Super Team
|
|
92
|
+
agents: [code, research, finance]
|
|
93
|
+
mode: collaborate
|
|
94
|
+
|
|
95
|
+
timezone: America/Los_Angeles
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Hot reloading**: `config.yaml` changes are watched at runtime. The orchestrator diffs configs, gracefully restarts affected agents, and rejoins rooms without bringing down the stack.
|
|
99
|
+
|
|
100
|
+
### Memory System
|
|
101
|
+
|
|
102
|
+
Mem0-inspired dual memory (`src/mindroom/memory/functions.py`):
|
|
103
|
+
- **Agent memory** (`agent_<name>`) – Personal preferences, coding style, tasks
|
|
104
|
+
- **Team memory** – Shared context for team collaboration
|
|
105
|
+
- **Room memory** (`room_<id>`) – Project-specific knowledge
|
|
106
|
+
|
|
107
|
+
### Teams & Collaboration
|
|
108
|
+
|
|
109
|
+
Teams (`src/mindroom/teams.py`) let multiple agents work together:
|
|
110
|
+
- **coordinate**: Lead agent orchestrates others
|
|
111
|
+
- **collaborate**: All members respond in parallel with consensus summary
|
|
27
112
|
|
|
28
113
|
## 1. Core Philosophy
|
|
29
114
|
|
|
@@ -129,6 +214,23 @@ cd saas-platform
|
|
|
129
214
|
- **Screenshot Location**: Screenshots are saved to `frontend/screenshots/` with timestamps.
|
|
130
215
|
- **Use Cases**: This is helpful for visual verification, documentation, and sharing the widget appearance.
|
|
131
216
|
|
|
217
|
+
### Developer Automation (`justfile`)
|
|
218
|
+
|
|
219
|
+
Common `just` recipes for development:
|
|
220
|
+
```bash
|
|
221
|
+
# Local stacks
|
|
222
|
+
just local-matrix-up # Boot Synapse + Postgres dev stack
|
|
223
|
+
just local-platform-compose-up # Full SaaS sandbox
|
|
224
|
+
|
|
225
|
+
# Testing
|
|
226
|
+
just test-backend # Run pytest for core
|
|
227
|
+
just test-saas-backend # Run pytest for SaaS backend
|
|
228
|
+
|
|
229
|
+
# Deployment
|
|
230
|
+
just redeploy-mindroom-backend # Build, push, restart all instances
|
|
231
|
+
just deploy target=platform-backend # One-off rollout
|
|
232
|
+
```
|
|
233
|
+
|
|
132
234
|
## 3. Critical "Don'ts"
|
|
133
235
|
|
|
134
236
|
- **DO NOT** manually edit the CLI help messages in `README.md`. They are auto-generated.
|
|
@@ -211,6 +313,24 @@ matty thread-reply "test_room" t1 "@mindroom_research find information about X"
|
|
|
211
313
|
- **Output formats**: Add `--format json` for machine-readable output
|
|
212
314
|
- **Streaming responses**: If you see "⋯" in agent messages, they're still typing. Agents stream responses by editing messages, which may take 10+ seconds to complete. Re-check the thread after waiting.
|
|
213
315
|
|
|
316
|
+
## 5. Quick Reference
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# Run the stack
|
|
320
|
+
uv run mindroom run --storage-path mindroom_data # or use ./run-backend.sh
|
|
321
|
+
|
|
322
|
+
# Update credentials
|
|
323
|
+
# Edit .env and restart; sync step mirrors keys to credentials vault
|
|
324
|
+
|
|
325
|
+
# Discover commands
|
|
326
|
+
# Send !help from any bridged room
|
|
327
|
+
|
|
328
|
+
# Debug logging
|
|
329
|
+
mindroom run --log-level DEBUG # Surface routing decisions, tool calls, config reloads
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Inspect agent traces: `mindroom_data/sessions/<agent>.db`
|
|
333
|
+
|
|
214
334
|
# Important Instruction Reminders
|
|
215
335
|
Do what has been asked; nothing more, nothing less.
|
|
216
336
|
NEVER create files unless they're absolutely necessary for achieving your goal.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mindroom
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: A universal interface for AI agents with persistent memory, where every conversation has a home
|
|
5
5
|
Project-URL: documentation, https://github.com/mindroom-ai/mindroom
|
|
6
6
|
Project-URL: homepage, https://github.com/mindroom-ai/mindroom
|
|
@@ -30,6 +30,10 @@ FROM public.ecr.aws/docker/library/python:3.12-slim AS final
|
|
|
30
30
|
# Copy uv for runtime
|
|
31
31
|
COPY --from=uv /uv /uvx /bin/
|
|
32
32
|
|
|
33
|
+
# Set version for setuptools-scm at runtime (no .git in container)
|
|
34
|
+
ARG VERSION=0.0.0
|
|
35
|
+
ENV SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION}
|
|
36
|
+
|
|
33
37
|
WORKDIR /app
|
|
34
38
|
|
|
35
39
|
# Install runtime dependencies (curl for health checks)
|
|
@@ -52,9 +56,15 @@ RUN chmod +x /app/run-backend.sh
|
|
|
52
56
|
# Create necessary directories
|
|
53
57
|
RUN mkdir -p /app/logs /app/mindroom_data
|
|
54
58
|
|
|
59
|
+
# Create non-root user and set ownership
|
|
60
|
+
RUN useradd -u 1000 -U -m mindroom && chown -R 1000:1000 /app
|
|
61
|
+
|
|
55
62
|
# Set environment variable to indicate Docker mode
|
|
56
63
|
ENV DOCKER_CONTAINER=1
|
|
57
64
|
|
|
65
|
+
# Run as non-root user
|
|
66
|
+
USER 1000:1000
|
|
67
|
+
|
|
58
68
|
EXPOSE 8765
|
|
59
69
|
# Run the app
|
|
60
70
|
CMD ["/app/run-backend.sh"]
|
|
@@ -22,17 +22,17 @@ ENV NODE_ENV=production
|
|
|
22
22
|
# Build production bundle with optimizations
|
|
23
23
|
RUN cd frontend && bun run build
|
|
24
24
|
|
|
25
|
-
# Production stage -
|
|
26
|
-
FROM
|
|
25
|
+
# Production stage - unprivileged nginx (runs as UID 101 by default)
|
|
26
|
+
FROM nginxinc/nginx-unprivileged:alpine AS final
|
|
27
27
|
WORKDIR /usr/share/nginx/html
|
|
28
28
|
|
|
29
29
|
# Only copy what's needed for production
|
|
30
30
|
COPY --from=builder /app/frontend/dist ./
|
|
31
31
|
|
|
32
|
-
# Create nginx config for SPA with proper routing
|
|
32
|
+
# Create nginx config for SPA with proper routing (use port 8080, default for unprivileged)
|
|
33
33
|
RUN cat > /etc/nginx/conf.d/default.conf << 'EOF'
|
|
34
34
|
server {
|
|
35
|
-
listen
|
|
35
|
+
listen 8080;
|
|
36
36
|
server_name _;
|
|
37
37
|
root /usr/share/nginx/html;
|
|
38
38
|
|
|
@@ -47,10 +47,10 @@ server {
|
|
|
47
47
|
}
|
|
48
48
|
EOF
|
|
49
49
|
|
|
50
|
-
# Expose port
|
|
51
|
-
EXPOSE
|
|
50
|
+
# Expose port (8080 is default for nginx-unprivileged)
|
|
51
|
+
EXPOSE 8080
|
|
52
52
|
|
|
53
53
|
# No health check needed - K8s handles this via readiness/liveness probes
|
|
54
54
|
|
|
55
|
-
# Start nginx server
|
|
55
|
+
# Start nginx server (already runs as non-root UID 101)
|
|
56
56
|
CMD ["nginx", "-g", "daemon off;"]
|
|
@@ -46,7 +46,7 @@ class EmbedderConfig(BaseModel):
|
|
|
46
46
|
|
|
47
47
|
model: str = Field(default="text-embedding-3-small", description="Model name for embeddings")
|
|
48
48
|
api_key: str | None = Field(default=None, description="API key (usually from environment variable)")
|
|
49
|
-
host: str | None = Field(default=None, description="Host URL for self-hosted models
|
|
49
|
+
host: str | None = Field(default=None, description="Host URL for self-hosted models (Ollama, llama.cpp, etc.)")
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class MemoryEmbedderConfig(BaseModel):
|
|
@@ -45,6 +45,9 @@ def get_memory_config(storage_path: Path, config: Config) -> dict: # noqa: C901
|
|
|
45
45
|
api_key = creds_manager.get_api_key("openai")
|
|
46
46
|
if api_key:
|
|
47
47
|
os.environ["OPENAI_API_KEY"] = api_key
|
|
48
|
+
# Support custom OpenAI-compatible base URL (e.g., llama.cpp)
|
|
49
|
+
if app_config.memory.embedder.config.host:
|
|
50
|
+
embedder_config["config"]["openai_base_url"] = app_config.memory.embedder.config.host
|
|
48
51
|
elif app_config.memory.embedder.provider == "ollama":
|
|
49
52
|
# Check CredentialsManager for Ollama host
|
|
50
53
|
ollama_creds = creds_manager.load_credentials("ollama")
|
mindroom-0.1.2/AGENTS.md
DELETED
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
# MindRoom Agents
|
|
2
|
-
|
|
3
|
-
This guide explains how MindRoom’s multi-agent stack is wired together, how agents are defined in configuration, and how to extend or operate the system safely. It replaces the older `CLAUDE.md` with up-to-date details drawn straight from the current codebase.
|
|
4
|
-
|
|
5
|
-
## Architecture at a Glance
|
|
6
|
-
|
|
7
|
-
- **MultiAgentOrchestrator** (`src/mindroom/bot.py`): boots every configured entity (router, single agents, and teams), provisions Matrix users, and keeps their sync loops alive with automatic restart logic and hot-reload support when `config.yaml` changes.
|
|
8
|
-
- **Entity types**:
|
|
9
|
-
- `router`: the built-in traffic director that greets rooms and can decide which agent should answer if no one is explicitly mentioned.
|
|
10
|
-
- **Agents**: single-specialty actors defined under `agents:` in `config.yaml`.
|
|
11
|
-
- **Teams**: collaborative bundles of agents defined under `teams:` that coordinate or parallelize work via Agno’s team runner (`src/mindroom/teams.py`).
|
|
12
|
-
- **Matrix-first runtime**: every entity is materialized as a dedicated Matrix account (`src/mindroom/matrix/users.py`), auto-joins the rooms listed in configuration (`src/mindroom/matrix/rooms.py`), and talks through the Matrix bridges you already operate.
|
|
13
|
-
- **Persistent state** lives under `mindroom_data/` (overridable via `STORAGE_PATH`):
|
|
14
|
-
- `sessions/` – per-agent Sqlite event history for Agno conversations.
|
|
15
|
-
- `memory/` – Mem0 vector store backing agent and room memories.
|
|
16
|
-
- `tracking/` – response tracking to avoid duplicate replies.
|
|
17
|
-
- `credentials/` – JSON secrets synchronized from `.env` (`src/mindroom/credentials_sync.py`).
|
|
18
|
-
|
|
19
|
-
### Repo Layout & Supporting Apps
|
|
20
|
-
|
|
21
|
-
| Path | What lives here | Notes |
|
|
22
|
-
| --- | --- | --- |
|
|
23
|
-
| `src/mindroom/` | Core agent runtime (Matrix orchestrator, routing, memory, tools) | Python package shipped via `mindroom` CLI |
|
|
24
|
-
| `frontend/` | Core MindRoom dashboard (Vite + React) | Connects to agents via Matrix bridges and local backend APIs |
|
|
25
|
-
| `saas-platform/platform-backend/` | SaaS control-plane API (FastAPI) | Powers multi-tenant provisioning, billing, and admin surfaces |
|
|
26
|
-
| `saas-platform/platform-frontend/` | SaaS portal UI (Next.js) | Customer/admin portal that talks to the SaaS backend and Supabase |
|
|
27
|
-
| `saas-platform/supabase/` | Supabase migrations, policies, seeds | Mirrors tables used by the SaaS portal and platform backend |
|
|
28
|
-
| `saas-platform/redeploy-*.sh`, `saas-platform/deploy.sh` | K8s deployment helpers | Build/push images and rollout restarts for hosted clusters |
|
|
29
|
-
| `cluster/` | Terraform + Helm for hosted deployments | Automates kube clusters, images, ingress, and secrets |
|
|
30
|
-
| `local/` | Docker Compose helpers for matrix + instances | Used by `just local-*` recipes for quick local stacks |
|
|
31
|
-
| `tools/`, `scripts/` | Utility scripts, avatar generation, automation | Invoked by CI, `just`, or manual ops |
|
|
32
|
-
|
|
33
|
-
Understanding these layers helps when extending agents: the Matrix runtime is the beating heart, while the SaaS/portal components wrap it in commercial tooling for provisioning and billing.
|
|
34
|
-
|
|
35
|
-
## Configuration Model
|
|
36
|
-
|
|
37
|
-
The authoritative configuration is `config.yaml`. The schema is codified in `src/mindroom/config.py` and loaded with `Config.from_yaml`, so every field shown below maps directly to a pydantic model.
|
|
38
|
-
|
|
39
|
-
```yaml
|
|
40
|
-
agents:
|
|
41
|
-
code:
|
|
42
|
-
display_name: CodeAgent
|
|
43
|
-
role: Generate code, manage files, and execute shell commands.
|
|
44
|
-
model: sonnet
|
|
45
|
-
tools: [file, shell]
|
|
46
|
-
instructions:
|
|
47
|
-
- Always read files before modifying them.
|
|
48
|
-
rooms: [lobby, dev, automation]
|
|
49
|
-
|
|
50
|
-
defaults:
|
|
51
|
-
num_history_runs: 5
|
|
52
|
-
markdown: true
|
|
53
|
-
|
|
54
|
-
models:
|
|
55
|
-
sonnet:
|
|
56
|
-
provider: anthropic
|
|
57
|
-
id: claude-sonnet-4-latest
|
|
58
|
-
|
|
59
|
-
router:
|
|
60
|
-
model: ollama
|
|
61
|
-
|
|
62
|
-
teams:
|
|
63
|
-
super_team:
|
|
64
|
-
display_name: Super Team
|
|
65
|
-
role: A team with all the great agents.
|
|
66
|
-
agents: [code, shell, research, finance]
|
|
67
|
-
mode: collaborate
|
|
68
|
-
|
|
69
|
-
timezone: America/Los_Angeles
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Key sections:
|
|
73
|
-
|
|
74
|
-
- **`agents`** – each key becomes an internal agent name; values map to `AgentConfig` (`src/mindroom/config.py:26`). The `rooms` list accepts aliases (auto-resolved to IDs) and controls auto-join behavior.
|
|
75
|
-
- **`defaults`** – baseline behavior used whenever an agent does not override settings such as markdown rendering or history length.
|
|
76
|
-
- **`models`** – named providers and identifiers for LLM backends. Model names referenced by agents, teams, the router, and the memory subsystem must exist here.
|
|
77
|
-
- **`router`** – selects the model used for routing suggestions (`src/mindroom/routing.py`).
|
|
78
|
-
- **`room_models`** – optional per-room overrides if certain spaces should be backed by lighter or faster models.
|
|
79
|
-
- **`teams`** – definitions bound to `TeamConfig`; include the target `mode` (`coordinate` vs `collaborate`) and optional `rooms` for team auto-join.
|
|
80
|
-
- **`memory` / `voice` / `authorization`** – configure cross-room memory storage, speech handling, and fine-grained access lists.
|
|
81
|
-
|
|
82
|
-
### Default Agents Snapshot
|
|
83
|
-
|
|
84
|
-
The repo ships with a curated suite of agents; highlights are below. Refer to `config.yaml` for the full list and to adjust rooms, tools, or models.
|
|
85
|
-
|
|
86
|
-
| Agent | Display name | Purpose | Tools |
|
|
87
|
-
| --- | --- | --- | --- |
|
|
88
|
-
| `general` | GeneralAgent | Friendly fallback assistant for everyday questions | _None (language only)_ |
|
|
89
|
-
| `code` | CodeAgent | Writes and edits code, executes controlled shell commands | `file`, `shell` |
|
|
90
|
-
| `research` | ResearchAgent | Multi-source research with citations | `duckduckgo`, `wikipedia`, `arxiv` |
|
|
91
|
-
| `finance` | FinanceAgent | Market data and calculations | `yfinance`, `calculator` |
|
|
92
|
-
| `sleepy_paws` | Sleepy Paws 🐾 | Dutch bedtime storyteller with rich instructions | _None_ |
|
|
93
|
-
| `agent_builder` | AgentBuilder | Conversational assistant for editing configs through the config manager toolkit | `config_manager` |
|
|
94
|
-
|
|
95
|
-
Teams such as `super_team` bundle these capabilities and can be summoned with a single mention; their collaboration logic is detailed in [Teams & Collaboration](#teams--collaboration).
|
|
96
|
-
|
|
97
|
-
### Hot Reloading & Deploy Flow
|
|
98
|
-
|
|
99
|
-
`config.yaml` changes are watched at runtime via `watch_file` (`src/mindroom/bot.py:2368`). When edits land, the orchestrator diffs the old and new config, gracefully restarts affected agents, applies new presence/status metadata, and rejoins the necessary rooms. This allows iterative tuning without bringing down the entire stack.
|
|
100
|
-
|
|
101
|
-
## SaaS Platform Context
|
|
102
|
-
|
|
103
|
-
The SaaS control plane wraps the core agents so you can vend managed rooms for customers:
|
|
104
|
-
|
|
105
|
-
- **Platform backend** (`saas-platform/platform-backend`, FastAPI): exposes admin routes for provisioning Matrix instances, synchronizes billing via Stripe webhooks, and surfaces metrics for the React Admin dashboards (`README.md` in that folder outlines routes and environment). Kubernetes helpers under `backend/k8s.py` drive per-tenant workloads.
|
|
106
|
-
- **Platform frontend** (`saas-platform/platform-frontend`, Next.js): customer and admin portal that consumes the backend, Supabase auth, and Stripe billing APIs (`README.md` there enumerates app router structure and required env vars).
|
|
107
|
-
- **Supabase schema** (`saas-platform/supabase`): migrations, policies, and seeds used by both portal and backend for accounts, subscriptions, and audit trails.
|
|
108
|
-
- **element-web overlay** (`saas-platform/element-web`): packaged Element client with branded theming to give customers a hosted Matrix web UI.
|
|
109
|
-
|
|
110
|
-
Local Compose stacks in `saas-platform/docker-compose.yml` spin up backend, frontend, Supabase, and Element together. Use `just local-platform-compose-up` for a full SaaS sandbox and `just docker-build-saas-*` to bake release images.
|
|
111
|
-
|
|
112
|
-
## Agent Lifecycle
|
|
113
|
-
|
|
114
|
-
The execution path for a single agent response spans several modules:
|
|
115
|
-
|
|
116
|
-
1. **Creation & identity** – `create_agent` (`src/mindroom/agents.py:63`) reads the agent’s configuration, instantiates its toolkits via `get_tool_by_name`, attaches identity context (`AGENT_IDENTITY_CONTEXT` in `src/mindroom/agent_prompts.py`), plus current date/time (`get_datetime_context`). Sessions are backed by a per-agent Sqlite store in `mindroom_data/sessions/`.
|
|
117
|
-
2. **Prompt assembly** – Agents with a rich prompt (e.g., `code`, `research`, `summary`) receive a handcrafted instruction block; others rely on YAML `role`/`instructions`. The interactive-question helper is appended for UX consistency.
|
|
118
|
-
3. **Runtime orchestration** – When a message arrives, `MultiAgentOrchestrator` delegates to either the router or a targeted agent/TEAM bot (`src/mindroom/bot.py`). Each `AgentBot` logs into Matrix, maintains presence, and spins a sync loop with retry logic.
|
|
119
|
-
4. **Response streaming & cancellation** – Depending on requester presence (`src/mindroom/matrix/presence.py`), the bot either streams partial replies using edits (`src/mindroom/streaming.py`) or sends a single message. The `StopManager` allows users to cancel generation by reacting with 🛑.
|
|
120
|
-
5. **Memory capture** – After responding, the conversation is pushed into agent and room memory stores (`src/mindroom/memory/functions.py`). Memories are retrieved on future turns via `build_memory_enhanced_prompt` to provide context.
|
|
121
|
-
6. **Tracking & deduplication** – `ResponseTracker` records served Matrix event IDs so agents skip duplicate work if the same event replays.
|
|
122
|
-
|
|
123
|
-
## Routing & Mention Handling
|
|
124
|
-
|
|
125
|
-
- **Mention parsing** – `thread_utils.get_mentioned_agents` and related helpers identify which entities were tagged in a message or thread. Router and teammate participation history is used to avoid spurious replies from agents already involved.
|
|
126
|
-
- **Automatic agent suggestions** – When nobody is explicitly addressed, the router runs `suggest_agent_for_message` (`src/mindroom/routing.py`), packaging available agents, their roles, tools, and prior thread context. The router’s model (default `ollama`) predicts the best responder.
|
|
127
|
-
- **Room scoping** – Only agents whose `rooms` list includes the current room are considered eligible, keeping private or high-signal rooms clean.
|
|
128
|
-
- **Welcome flow** – The router greets rooms with a dynamically generated roster (`_generate_welcome_message` in `src/mindroom/bot.py:112`), summarizing each agent’s role and toolset for quick discovery.
|
|
129
|
-
|
|
130
|
-
## Memory & Context
|
|
131
|
-
|
|
132
|
-
MindRoom implements Mem0-inspired dual memory (`src/mindroom/memory/functions.py`):
|
|
133
|
-
|
|
134
|
-
- **Agent memory** – Stored per agent (namespaced as `agent_<name>`) so personal preferences, coding style, or recurring tasks persist across rooms.
|
|
135
|
-
- **Team memory** – Agents also search shared team memories for any team they belong to, allowing coordinated workflows to build shared context.
|
|
136
|
-
- **Room memory** – Messages tagged as room-specific context are stored under `room_<id>` so project channels keep local state without leaking to private chats.
|
|
137
|
-
- **Embedding & recall config** – Controlled through `memory.embedder` and `memory.llm` in `config.yaml`, typically pointing to self-hosted Ollama endpoints for privacy and cost control.
|
|
138
|
-
|
|
139
|
-
`build_memory_enhanced_prompt` injects retrieved snippets into the final prompt before generation, ensuring agents stay grounded in prior interactions.
|
|
140
|
-
|
|
141
|
-
## Tools & Credentials
|
|
142
|
-
|
|
143
|
-
- **Dynamic registry** – All tools register via decorators in `src/mindroom/tools/__init__.py`, attaching rich metadata (`src/mindroom/tools_metadata.py`) including setup requirements, icons, and dependency hints. `get_tool_by_name` instantiates the toolkit, preloading any saved credentials.
|
|
144
|
-
- **Credential management** – Secrets are persisted under `mindroom_data/credentials/` by `CredentialsManager` (`src/mindroom/credentials.py`). `.env` values are auto-synced on startup so the CLI remains the source of truth.
|
|
145
|
-
- **Config Manager toolkit** – The `config_manager` tool (`src/mindroom/custom_tools/config_manager.py`) exposes consolidated actions (inspect, create, update, validate agents/teams) and is primarily used by `agent_builder` for conversational configuration edits.
|
|
146
|
-
- **Custom tools** – Drop new toolkits under `src/mindroom/custom_tools/` or extend the registry; include metadata so the React dashboard can surface setup instructions.
|
|
147
|
-
|
|
148
|
-
## Teams & Collaboration
|
|
149
|
-
|
|
150
|
-
Teams let multiple agents work a request together (`src/mindroom/teams.py`):
|
|
151
|
-
|
|
152
|
-
- **Modes** – `coordinate` appoints a lead agent to orchestrate others; `collaborate` lets all members respond in parallel with a consensus summary when available.
|
|
153
|
-
- **Formatting** – Responses are rendered with explicit headers per agent, nested recursion for sub-teams, and optional consensus blocks for transparency.
|
|
154
|
-
- **Model selection** – Teams can override their model; otherwise, they inherit the defaults. `select_model_for_team` respects `team_config.model`, enabling heavy reasoning models only when needed.
|
|
155
|
-
- **Availability** – Team bots join any rooms listed under the team configuration and inherit mention and routing behavior like individual agents.
|
|
156
|
-
|
|
157
|
-
## Scheduling & Background Workflows
|
|
158
|
-
|
|
159
|
-
- `!schedule`, `!list_schedules`, and `!cancel_schedule` commands are parsed by `CommandParser` (`src/mindroom/commands.py`).
|
|
160
|
-
- Natural-language schedule requests are parsed into cron or one-off workflows via `parse_workflow_schedule` (`src/mindroom/scheduling.py`), which uses the default model to interpret timing, target agents, and condition checks.
|
|
161
|
-
- Executions run as background asyncio tasks with durable storage in Matrix state events, ensuring restarts reload pending jobs.
|
|
162
|
-
- Background tasks use `create_background_task` (`src/mindroom/background_tasks.py`) so long-running operations never block the sync loop.
|
|
163
|
-
|
|
164
|
-
## Runtime Operations & Monitoring
|
|
165
|
-
|
|
166
|
-
- **Presence** – `set_presence_status` and `build_agent_status_message` (`src/mindroom/matrix/presence.py`) broadcast which model and role each agent is using.
|
|
167
|
-
- **Stop reactions** – Users can cancel streaming replies; `StopManager` (`src/mindroom/stop.py`) removes the stop reaction and cancels the generation coroutine.
|
|
168
|
-
- **Config updates** – The orchestrator compares old/new configs (`_identify_entities_to_restart` in `src/mindroom/bot.py`) and only restarts changed entities, minimizing churn.
|
|
169
|
-
- **Cleanup** – `room_cleanup.py` and `ensure_all_rooms_exist` keep Matrix rooms aligned with configuration, pruning orphaned bots and ensuring avatars/topics remain accurate.
|
|
170
|
-
|
|
171
|
-
## Extending MindRoom Agents
|
|
172
|
-
|
|
173
|
-
1. **Add a new agent**
|
|
174
|
-
- Define it under `agents:` in `config.yaml` or ask `@AgentBuilder` to scaffold it via the config manager tool.
|
|
175
|
-
- Choose the right tools from the registry; custom toolkits can be authored under `src/mindroom/tools/` and registered with metadata for UI support.
|
|
176
|
-
- Tailor instructions or create a dedicated rich prompt in `src/mindroom/agent_prompts.py` if the agent needs a bespoke identity.
|
|
177
|
-
|
|
178
|
-
2. **Create a team**
|
|
179
|
-
- Add a `teams:` entry specifying `agents`, `mode`, and optional `rooms`. Mention the team handle (e.g., `@mindroom_super_team`) in Matrix to trigger collaborative responses.
|
|
180
|
-
|
|
181
|
-
3. **Override models per room**
|
|
182
|
-
- Use `room_models:` in `config.yaml` so certain channels automatically route to lighter or faster models when the router or default agent would otherwise choose something heavier.
|
|
183
|
-
|
|
184
|
-
4. **Wire custom workflows**
|
|
185
|
-
- Implement bespoke scheduling actions or background automations by extending `src/mindroom/scheduling.py`. New workflow types can piggyback on the same cron parsing and Matrix messaging helpers.
|
|
186
|
-
|
|
187
|
-
5. **Inspect and debug**
|
|
188
|
-
- Check `mindroom_data/sessions/<agent>.db` for Agno conversation traces.
|
|
189
|
-
- Enable `DEBUG` logging via `mindroom run --log-level DEBUG` to surface routing decisions, tool calls, and config reloads.
|
|
190
|
-
|
|
191
|
-
## Developer Automation (`justfile`)
|
|
192
|
-
|
|
193
|
-
MindRoom standardizes developer and ops flows through `just` recipes (see root `justfile`):
|
|
194
|
-
|
|
195
|
-
- **Matrix + core stacks**: `just local-matrix-up` boots a Synapse + Postgres dev stack, while `just local-instances-*` manages per-customer Compose environments via `local/instances/deploy`.
|
|
196
|
-
- **SaaS platform**: `just local-platform-compose-up` launches the platform portal/backends; `start-saas-*-dev` kicks off hot-reload dev servers in the respective directories.
|
|
197
|
-
- **Testing**: `just test-backend`, `test-front`, `test-saas-backend`, and `test-saas-frontend` wrap uv/pytest and bun test runners to ensure parity with CI.
|
|
198
|
-
- **Infrastructure**: `cluster-*` recipes lint/render Helm charts, drive Terraform lifecycle, or stand up Kind-based preview clusters (with Nix shells for repeatability).
|
|
199
|
-
- **Docker builds**: handy shortcuts for building dev images for core agents or the SaaS portal (`docker-build-*`).
|
|
200
|
-
- **Environment sync**: `just env-saas` prints evaluated SaaS `.env` variables so you can export them into shells or CI jobs.
|
|
201
|
-
- **Kubernetes redeploy shortcuts**: run `just redeploy-mindroom-backend` / `just redeploy-mindroom-frontend` to build, push, and restart every customer deployment, or `just deploy target=platform-backend` (etc.) for one-off rollouts using the underlying scripts in `saas-platform/`.
|
|
202
|
-
|
|
203
|
-
These commands are the canonical way to bootstrap local dev, run focused suites, or deploy to playground clusters without memorizing long scripts.
|
|
204
|
-
|
|
205
|
-
## Quick Reference
|
|
206
|
-
|
|
207
|
-
- Run the stack: `uv run mindroom run --storage-path mindroom_data` (or use `run-backend.sh` / `run-frontend.sh` / `just` recipes).
|
|
208
|
-
- Update credentials: edit `.env` and restart; the sync step will mirror keys to the credentials vault.
|
|
209
|
-
- Discover commands: `!help` from any bridged room lists scheduling, widget, and configuration commands alongside usage tips.
|
|
210
|
-
- Keep documentation current: whenever `config.yaml`, tools, or prompts change, refresh this document to reflect new capabilities.
|
|
211
|
-
|
|
212
|
-
MindRoom’s agent subsystem is intentionally composable—add new tools, teams, or workflows as your organization’s playbook solidifies, and the orchestrator will make sure every Matrix room sees the right specialists at the right time.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|