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.
Files changed (761) hide show
  1. mindroom-0.1.4/AGENTS.md +1 -0
  2. {mindroom-0.1.2 → mindroom-0.1.4}/CLAUDE.md +124 -4
  3. {mindroom-0.1.2 → mindroom-0.1.4}/PKG-INFO +1 -1
  4. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/Dockerfile.backend +10 -0
  5. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/Dockerfile.frontend +7 -7
  6. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/config.py +1 -1
  7. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/memory/config.py +3 -0
  8. mindroom-0.1.2/AGENTS.md +0 -212
  9. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/agents/configfield-generator.md +0 -0
  10. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/agents/mindroom-tester.md +0 -0
  11. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/commands/commit.md +0 -0
  12. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/commands/cruft.md +0 -0
  13. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/commands/init.md +0 -0
  14. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  15. {mindroom-0.1.2 → mindroom-0.1.4}/.claude/skills/agent-cli-dev/examples.md +0 -0
  16. {mindroom-0.1.2 → mindroom-0.1.4}/.dockerignore +0 -0
  17. {mindroom-0.1.2 → mindroom-0.1.4}/.env.example +0 -0
  18. {mindroom-0.1.2 → mindroom-0.1.4}/.envrc +0 -0
  19. {mindroom-0.1.2 → mindroom-0.1.4}/.gitattributes +0 -0
  20. {mindroom-0.1.2 → mindroom-0.1.4}/.github/renovate.json +0 -0
  21. {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/build-mindroom.yml +0 -0
  22. {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/build-platform.yml +0 -0
  23. {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/pytest.yml +0 -0
  24. {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/release.yml +0 -0
  25. {mindroom-0.1.2 → mindroom-0.1.4}/.github/workflows/security-scan.yml +0 -0
  26. {mindroom-0.1.2 → mindroom-0.1.4}/.gitignore +0 -0
  27. {mindroom-0.1.2 → mindroom-0.1.4}/.pre-commit-config.yaml +0 -0
  28. {mindroom-0.1.2 → mindroom-0.1.4}/README.md +0 -0
  29. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/analyst.png +0 -0
  30. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/calculator.png +0 -0
  31. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/callagent.png +0 -0
  32. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/code.png +0 -0
  33. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/data_analyst.png +0 -0
  34. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/email_assistant.png +0 -0
  35. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/finance.png +0 -0
  36. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/general.png +0 -0
  37. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/home.png +0 -0
  38. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/news.png +0 -0
  39. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/research.png +0 -0
  40. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/router.png +0 -0
  41. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/security.png +0 -0
  42. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/shell.png +0 -0
  43. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/agents/summary.png +0 -0
  44. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/analysis.png +0 -0
  45. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/automation.png +0 -0
  46. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/business.png +0 -0
  47. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/communication.png +0 -0
  48. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/dev.png +0 -0
  49. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/docs.png +0 -0
  50. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/finance.png +0 -0
  51. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/help.png +0 -0
  52. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/home.png +0 -0
  53. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/lobby.png +0 -0
  54. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/news.png +0 -0
  55. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/ops.png +0 -0
  56. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/productivity.png +0 -0
  57. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/research.png +0 -0
  58. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/rooms/science.png +0 -0
  59. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/teams/code_team.png +0 -0
  60. {mindroom-0.1.2 → mindroom-0.1.4}/avatars/teams/super_team.png +0 -0
  61. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/cert-manager/cluster-issuer-prod.yaml +0 -0
  62. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/cert-manager/cluster-issuer-staging.yaml +0 -0
  63. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/Chart.yaml +0 -0
  64. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/default-config.yaml +0 -0
  65. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/configmap-mindroom.yaml +0 -0
  66. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/configmap-nginx.yaml +0 -0
  67. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/configmap-synapse.yaml +0 -0
  68. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/deployment-backend.yaml +0 -0
  69. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/deployment-frontend.yaml +0 -0
  70. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/deployment-synapse.yaml +0 -0
  71. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/ingress.yaml +0 -0
  72. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/networkpolicy.yaml +0 -0
  73. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/pvc.yaml +0 -0
  74. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/secret-api-keys.yaml +0 -0
  75. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/templates/service.yaml +0 -0
  76. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/instance/values.yaml +0 -0
  77. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/.env.example +0 -0
  78. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/README.md +0 -0
  79. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/build_load_images.sh +0 -0
  80. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/down.sh +0 -0
  81. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/install_platform.sh +0 -0
  82. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/kind-config.yaml +0 -0
  83. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/setup-local-access.sh +0 -0
  84. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/shell.nix +0 -0
  85. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/start-fresh.sh +0 -0
  86. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/test-access.sh +0 -0
  87. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/up.sh +0 -0
  88. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/kind/validate.sh +0 -0
  89. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/.gitignore +0 -0
  90. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/Chart.yaml +0 -0
  91. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/all.yaml +0 -0
  92. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/apex-redirect.yaml +0 -0
  93. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/ingress.yaml +0 -0
  94. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/templates/rbac.yaml +0 -0
  95. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/values-prod.example.yaml +0 -0
  96. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/values-staging.example.yaml +0 -0
  97. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/k8s/platform/values.yaml +0 -0
  98. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/cleanup-duplicate-subscriptions.py +0 -0
  99. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/db/backup_supabase.sh +0 -0
  100. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/db/setup-stripe-products.js +0 -0
  101. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/list-instances.sh +0 -0
  102. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/mindroom-cli.sh +0 -0
  103. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/setup-stripe-webhooks.py +0 -0
  104. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/setup-terraform-state.sh +0 -0
  105. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/sync-stripe-prices.py +0 -0
  106. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/update-api-keys.sh +0 -0
  107. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/validate_multitenancy_security.py +0 -0
  108. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/scripts/view-instance-logs.sh +0 -0
  109. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/.gitignore +0 -0
  110. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/README.md +0 -0
  111. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/cert-manager.tf +0 -0
  112. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/dns.tf +0 -0
  113. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/hcloud-microos-snapshots.pkr.hcl +0 -0
  114. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/helm.tf +0 -0
  115. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/kube.tf +0 -0
  116. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-prod.yaml +0 -0
  117. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-staging.yaml +0 -0
  118. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/modules/dns/dns.tf +0 -0
  119. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/platform-cert.yaml +0 -0
  120. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/providers-porkbun.tf +0 -0
  121. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/build_snapshots.sh +0 -0
  122. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/destroy.sh +0 -0
  123. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/status.sh +0 -0
  124. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/scripts/up.sh +0 -0
  125. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/supabase-auth.tf +0 -0
  126. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/terraform.tfvars.example +0 -0
  127. {mindroom-0.1.2 → mindroom-0.1.4}/cluster/terraform/terraform-k8s/variables.tf +0 -0
  128. {mindroom-0.1.2 → mindroom-0.1.4}/config.yaml +0 -0
  129. {mindroom-0.1.2 → mindroom-0.1.4}/docs/TESTING.md +0 -0
  130. {mindroom-0.1.2 → mindroom-0.1.4}/docs/agent_configuration.md +0 -0
  131. {mindroom-0.1.2 → mindroom-0.1.4}/docs/gmail_oauth_deployment.md +0 -0
  132. {mindroom-0.1.2 → mindroom-0.1.4}/docs/gmail_setup.md +0 -0
  133. {mindroom-0.1.2 → mindroom-0.1.4}/docs/ops/README.md +0 -0
  134. {mindroom-0.1.2 → mindroom-0.1.4}/docs/pitches.md +0 -0
  135. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_ACTION_PLAN.md +0 -0
  136. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_CRITICAL_FIXES.md +0 -0
  137. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_EXECUTIVE_SUMMARY.md +0 -0
  138. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_01_AUTH.md +0 -0
  139. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_02_MULTITENANCY.md +0 -0
  140. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_03_SECRETS.md +0 -0
  141. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_04_INJECTION.md +0 -0
  142. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_05_TOKENS.md +0 -0
  143. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_06_INFRASTRUCTURE.md +0 -0
  144. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_07_DATA_PROTECTION.md +0 -0
  145. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_08_DEPENDENCIES.md +0 -0
  146. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_09_ERROR_HANDLING.md +0 -0
  147. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_10_API_SECURITY.md +0 -0
  148. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_11_MONITORING.md +0 -0
  149. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_12_FRONTEND.md +0 -0
  150. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_CHECKLIST.md +0 -0
  151. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_FINDINGS.md +0 -0
  152. {mindroom-0.1.2 → mindroom-0.1.4}/docs/security/SECURITY_REVIEW_SUMMARY.md +0 -0
  153. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/.eslintrc.json +0 -0
  154. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/.prettierignore +0 -0
  155. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/.prettierrc +0 -0
  156. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/SCREENSHOT_INSTRUCTIONS.md +0 -0
  157. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/bun.lock +0 -0
  158. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/index.html +0 -0
  159. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/chat-mockup.png +0 -0
  160. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/generate-mockup-from-json.cjs +0 -0
  161. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-conversations.cjs +0 -0
  162. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-cross-org.png +0 -0
  163. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-cross-platform.png +0 -0
  164. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/mockups/readme-multi-agent.png +0 -0
  165. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/package.json +0 -0
  166. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/postcss.config.js +0 -0
  167. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/public/matrix-widget.html +0 -0
  168. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/public/widget.json +0 -0
  169. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/scripts/generate-icon-imports.cjs +0 -0
  170. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/scripts/screenshot.cjs +0 -0
  171. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/App.tsx +0 -0
  172. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentEditor/AgentEditor.test.tsx +0 -0
  173. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentEditor/AgentEditor.tsx +0 -0
  174. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentList/AgentList.test.tsx +0 -0
  175. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/AgentList/AgentList.tsx +0 -0
  176. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ApiKeyConfig/ApiKeyConfig.test.tsx +0 -0
  177. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ApiKeyConfig/ApiKeyConfig.tsx +0 -0
  178. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ApiKeyConfig/index.ts +0 -0
  179. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Dashboard/Dashboard.tsx +0 -0
  180. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Dashboard/NetworkGraph.tsx +0 -0
  181. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/GoogleIntegration/GoogleIntegration.tsx +0 -0
  182. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/HomeAssistantIntegration/HomeAssistantIntegration.tsx +0 -0
  183. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/EnhancedConfigDialog.tsx +0 -0
  184. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/Integrations.test.tsx +0 -0
  185. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/Integrations.tsx +0 -0
  186. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/iconMapping.tsx +0 -0
  187. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/google/google.test.tsx +0 -0
  188. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/google/index.tsx +0 -0
  189. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/homeassistant/homeassistant.test.tsx +0 -0
  190. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/homeassistant/index.tsx +0 -0
  191. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/index.ts +0 -0
  192. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/spotify/index.tsx +0 -0
  193. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/spotify/spotify.test.tsx +0 -0
  194. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/Integrations/integrations/types/index.ts +0 -0
  195. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/MemoryConfig/MemoryConfig.test.tsx +0 -0
  196. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/MemoryConfig/MemoryConfig.tsx +0 -0
  197. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ModelConfig.extra_kwargs.test.tsx +0 -0
  198. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ModelConfig.test.tsx +0 -0
  199. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ModelConfig.tsx +0 -0
  200. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ModelConfig/ProviderLogos.tsx +0 -0
  201. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomEditor/RoomEditor.test.tsx +0 -0
  202. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomEditor/RoomEditor.tsx +0 -0
  203. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomList/RoomList.test.tsx +0 -0
  204. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/RoomList/RoomList.tsx +0 -0
  205. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/SyncStatus/SyncStatus.tsx +0 -0
  206. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamEditor/TeamEditor.test.tsx +0 -0
  207. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamEditor/TeamEditor.tsx +0 -0
  208. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamList/TeamList.test.tsx +0 -0
  209. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/TeamList/TeamList.tsx +0 -0
  210. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ThemeToggle/ThemeToggle.tsx +0 -0
  211. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ToolConfig/ToolConfigDialog.test.tsx +0 -0
  212. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ToolConfig/ToolConfigDialog.tsx +0 -0
  213. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/UnconfiguredRooms/UnconfiguredRooms.tsx +0 -0
  214. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/UnconfiguredRooms/index.ts +0 -0
  215. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/VoiceConfig/VoiceConfig.tsx +0 -0
  216. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/EditorPanel.tsx +0 -0
  217. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/EmptyState.tsx +0 -0
  218. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/FieldGroup.tsx +0 -0
  219. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/FilterSelector.tsx +0 -0
  220. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/ItemCard.tsx +0 -0
  221. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/ListPanel.tsx +0 -0
  222. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/README.md +0 -0
  223. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/index.ts +0 -0
  224. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/shared/styles.ts +0 -0
  225. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/alert.tsx +0 -0
  226. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/badge.tsx +0 -0
  227. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/button.tsx +0 -0
  228. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/card.tsx +0 -0
  229. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/checkbox.tsx +0 -0
  230. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/dialog.tsx +0 -0
  231. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  232. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/input.tsx +0 -0
  233. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/label.tsx +0 -0
  234. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/scroll-area.tsx +0 -0
  235. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/select.tsx +0 -0
  236. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/separator.tsx +0 -0
  237. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/skeleton.tsx +0 -0
  238. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/tabs.tsx +0 -0
  239. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/textarea.tsx +0 -0
  240. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/toaster.tsx +0 -0
  241. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/toggle-group.tsx +0 -0
  242. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/tooltip.tsx +0 -0
  243. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/components/ui/use-toast.ts +0 -0
  244. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/contexts/ThemeContext.tsx +0 -0
  245. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/hooks/useSwipeBack.ts +0 -0
  246. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/hooks/useTools.ts +0 -0
  247. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/index.css +0 -0
  248. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/lib/api.ts +0 -0
  249. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/lib/providers.tsx +0 -0
  250. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/lib/utils.ts +0 -0
  251. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/main.tsx +0 -0
  252. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/services/configService.ts +0 -0
  253. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/store/configStore.test.ts +0 -0
  254. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/store/configStore.ts +0 -0
  255. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/styles/animations.css +0 -0
  256. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/styles/tokens.css +0 -0
  257. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/test/setup.ts +0 -0
  258. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/types/config.ts +0 -0
  259. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/types/toolConfig.test.ts +0 -0
  260. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/types/toolConfig.ts +0 -0
  261. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/src/vite-env.d.ts +0 -0
  262. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/tailwind.config.js +0 -0
  263. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/take_screenshot.py +0 -0
  264. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/tsconfig.json +0 -0
  265. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/tsconfig.node.json +0 -0
  266. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/vite.config.ts +0 -0
  267. {mindroom-0.1.2 → mindroom-0.1.4}/frontend/vitest.config.ts +0 -0
  268. {mindroom-0.1.2 → mindroom-0.1.4}/justfile +0 -0
  269. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/.dockerignore +0 -0
  270. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/.dockerignore.backend +0 -0
  271. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/.gitignore +0 -0
  272. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/BRIDGE_MANAGER.md +0 -0
  273. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/README-DOCKER.md +0 -0
  274. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/README.md +0 -0
  275. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/bridge.py +0 -0
  276. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/default-deploy.sh +0 -0
  277. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/deploy.py +0 -0
  278. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.authelia.yml +0 -0
  279. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.synapse.yml +0 -0
  280. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.tuwunel.yml +0 -0
  281. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.wellknown.yml +0 -0
  282. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/docker-compose.yml +0 -0
  283. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/authelia/configuration.yml.j2 +0 -0
  284. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/authelia/users_database.yml +0 -0
  285. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/README.md +0 -0
  286. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/docker-compose.email.j2 +0 -0
  287. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/docker-compose.slack.j2 +0 -0
  288. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/bridges/docker-compose.telegram.j2 +0 -0
  289. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/synapse/entrypoint.sh +0 -0
  290. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/synapse/homeserver.yaml.j2 +0 -0
  291. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/synapse/log.config +0 -0
  292. {mindroom-0.1.2 → mindroom-0.1.4}/local/instances/deploy/templates/tuwunel/tuwunel.toml +0 -0
  293. {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/.gitignore +0 -0
  294. {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/entrypoint.sh +0 -0
  295. {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/homeserver.yaml +0 -0
  296. {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/log.config +0 -0
  297. {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker/synapse/log.minimal.config +0 -0
  298. {mindroom-0.1.2 → mindroom-0.1.4}/local/matrix/docker-compose.yml +0 -0
  299. {mindroom-0.1.2 → mindroom-0.1.4}/mindroom/tools_metadata.json +0 -0
  300. {mindroom-0.1.2 → mindroom-0.1.4}/pyproject.toml +0 -0
  301. {mindroom-0.1.2 → mindroom-0.1.4}/run-backend.sh +0 -0
  302. {mindroom-0.1.2 → mindroom-0.1.4}/run-frontend.sh +0 -0
  303. {mindroom-0.1.2 → mindroom-0.1.4}/run-nix.sh +0 -0
  304. {mindroom-0.1.2 → mindroom-0.1.4}/run-tests.sh +0 -0
  305. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/.dockerignore +0 -0
  306. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/.env.example +0 -0
  307. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/API_ENDPOINT_MAPPING.md +0 -0
  308. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/COMPONENTS.md +0 -0
  309. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/Dockerfile.platform-backend +0 -0
  310. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/Dockerfile.platform-frontend +0 -0
  311. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/README.md +0 -0
  312. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/deploy.sh +0 -0
  313. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/docker-compose.yml +0 -0
  314. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/docs/authentication.md +0 -0
  315. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/.python-version +0 -0
  316. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/README.md +0 -0
  317. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/pyproject.toml +0 -0
  318. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/__init__.py +0 -0
  319. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/__init__.py +0 -0
  320. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/auth_monitor.py +0 -0
  321. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/config.py +0 -0
  322. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/db_utils.py +0 -0
  323. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/deps.py +0 -0
  324. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/k8s.py +0 -0
  325. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/metrics.py +0 -0
  326. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/middleware/__init__.py +0 -0
  327. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/middleware/audit_logging.py +0 -0
  328. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/models.py +0 -0
  329. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/pricing.py +0 -0
  330. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/process.py +0 -0
  331. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/__init__.py +0 -0
  332. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/accounts.py +0 -0
  333. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/admin.py +0 -0
  334. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/gdpr.py +0 -0
  335. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/health.py +0 -0
  336. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/instances.py +0 -0
  337. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/pricing.py +0 -0
  338. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/provisioner.py +0 -0
  339. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/sso.py +0 -0
  340. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/stripe_routes.py +0 -0
  341. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/subscriptions.py +0 -0
  342. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/usage.py +0 -0
  343. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/routes/webhooks.py +0 -0
  344. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/tasks/__init__.py +0 -0
  345. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/tasks/cleanup.py +0 -0
  346. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/tasks/usage_metrics.py +0 -0
  347. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/__init__.py +0 -0
  348. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/audit.py +0 -0
  349. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/log_sanitizer.py +0 -0
  350. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/backend/utils/logger.py +0 -0
  351. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/src/main.py +0 -0
  352. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/__init__.py +0 -0
  353. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/conftest.py +0 -0
  354. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/stripe_mock.py +0 -0
  355. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_accounts.py +0 -0
  356. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin.py +0 -0
  357. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin_account_deletion.py +0 -0
  358. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin_allowlist.py +0 -0
  359. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_admin_rate_limit.py +0 -0
  360. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_auth_monitor.py +0 -0
  361. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_bearer_token_parsing.py +0 -0
  362. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_cors_headers.py +0 -0
  363. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_deps.py +0 -0
  364. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_gdpr.py +0 -0
  365. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_instances.py +0 -0
  366. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_log_sanitizer.py +0 -0
  367. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_metrics_endpoint.py +0 -0
  368. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_multitenancy_security.py +0 -0
  369. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_pricing.py +0 -0
  370. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner.py +0 -0
  371. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_auth.py +0 -0
  372. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_extended.py +0 -0
  373. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_integration.py +0 -0
  374. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_rate_limit.py +0 -0
  375. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_provisioner_real.py +0 -0
  376. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_rate_limit_sso.py +0 -0
  377. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_request_size_limit.py +0 -0
  378. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_security_headers_and_hosts.py +0 -0
  379. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_sso_cookie_attrs.py +0 -0
  380. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_stripe_integration.py +0 -0
  381. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_stripe_routes.py +0 -0
  382. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_stripe_utils.py +0 -0
  383. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_subscriptions.py +0 -0
  384. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_usage.py +0 -0
  385. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_usage_metrics.py +0 -0
  386. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_user_rate_limit.py +0 -0
  387. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_webhook_rate_limit.py +0 -0
  388. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/tests/test_webhooks.py +0 -0
  389. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-backend/uv.lock +0 -0
  390. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/.gitignore +0 -0
  391. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/README.md +0 -0
  392. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/bun.lock +0 -0
  393. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/jest.config.js +0 -0
  394. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/jest.setup.js +0 -0
  395. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/middleware.ts +0 -0
  396. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/next.config.ts +0 -0
  397. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/package.json +0 -0
  398. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/postcss.config.mjs +0 -0
  399. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/brain-logo.svg +0 -0
  400. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/file.svg +0 -0
  401. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/globe.svg +0 -0
  402. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/next.svg +0 -0
  403. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/vercel.svg +0 -0
  404. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/public/window.svg +0 -0
  405. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/runtime-config-shared.js +0 -0
  406. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/shell.nix +0 -0
  407. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/accounts/[id]/page.tsx +0 -0
  408. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/accounts/__tests__/page.test.tsx +0 -0
  409. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/accounts/page.tsx +0 -0
  410. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/audit-logs/page.tsx +0 -0
  411. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/instances/page.tsx +0 -0
  412. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/layout.tsx +0 -0
  413. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/page.tsx +0 -0
  414. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/subscriptions/page.tsx +0 -0
  415. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/admin/usage/page.tsx +0 -0
  416. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/api/csp-report/route.ts +0 -0
  417. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/callback/route.ts +0 -0
  418. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/complete/page.tsx +0 -0
  419. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/login/page.tsx +0 -0
  420. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/auth/signup/page.tsx +0 -0
  421. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/billing/page.tsx +0 -0
  422. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/billing/upgrade/page.tsx +0 -0
  423. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/instance/page.tsx +0 -0
  424. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/layout.tsx +0 -0
  425. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/page.tsx +0 -0
  426. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/edge-cases.test.tsx +0 -0
  427. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/page.test.tsx +0 -0
  428. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/settings/page.tsx +0 -0
  429. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/support/page.tsx +0 -0
  430. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/dashboard/usage/page.tsx +0 -0
  431. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/favicon.ico +0 -0
  432. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/globals.css +0 -0
  433. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/layout.tsx +0 -0
  434. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/page.tsx +0 -0
  435. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/privacy/page.tsx +0 -0
  436. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/app/terms/page.tsx +0 -0
  437. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/DarkModeToggle.tsx +0 -0
  438. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/LaunchButton.tsx +0 -0
  439. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/MindRoomLogo.tsx +0 -0
  440. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/admin/AdminLayout.tsx +0 -0
  441. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/admin/InstanceActions.tsx +0 -0
  442. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/admin/__tests__/InstanceActions.test.tsx +0 -0
  443. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/auth/__tests__/auth-wrapper.test.tsx +0 -0
  444. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/auth/auth-wrapper.tsx +0 -0
  445. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/DashboardLoader.tsx +0 -0
  446. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/Header.tsx +0 -0
  447. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/InstanceCard.tsx +0 -0
  448. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/QuickActions.tsx +0 -0
  449. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/Sidebar.tsx +0 -0
  450. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/UsageChart.tsx +0 -0
  451. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.simple.test.tsx +0 -0
  452. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.test.tsx +0 -0
  453. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/CTA.tsx +0 -0
  454. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Collaboration.tsx +0 -0
  455. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Features.tsx +0 -0
  456. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Hero.tsx +0 -0
  457. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/HowItWorks.tsx +0 -0
  458. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Pricing.tsx +0 -0
  459. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Stats.tsx +0 -0
  460. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/Testimonials.tsx +0 -0
  461. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/landing/WhyItMatters.tsx +0 -0
  462. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/ui/AnimatedSection.tsx +0 -0
  463. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/ui/Card.tsx +0 -0
  464. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/components/ui/button.tsx +0 -0
  465. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useAuth.ts +0 -0
  466. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useDarkMode.tsx +0 -0
  467. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useInstance.ts +0 -0
  468. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useSubscription.ts +0 -0
  469. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/hooks/useUsage.ts +0 -0
  470. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/__tests__/api.test.ts +0 -0
  471. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/__tests__/instance-lifecycle.test.ts +0 -0
  472. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/api.ts +0 -0
  473. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/auth/admin.ts +0 -0
  474. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/cache.ts +0 -0
  475. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/constants.ts +0 -0
  476. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/logger.ts +0 -0
  477. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/pricing-config.ts +0 -0
  478. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/runtime-config.ts +0 -0
  479. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/stripe/client.ts +0 -0
  480. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/supabase/client.ts +0 -0
  481. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/supabase/server.ts +0 -0
  482. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/lib/supabase/types.ts +0 -0
  483. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/src/styles/buttons.css +0 -0
  484. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/take_screenshot.js +0 -0
  485. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tests/admin.test.ts +0 -0
  486. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tests/e2e.test.ts +0 -0
  487. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tests/test-instance-control.js +0 -0
  488. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/platform-frontend/tsconfig.json +0 -0
  489. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/pricing-config.yaml +0 -0
  490. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/redeploy-mindroom-backend.sh +0 -0
  491. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/redeploy-mindroom-frontend.sh +0 -0
  492. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/supabase/.gitignore +0 -0
  493. {mindroom-0.1.2 → mindroom-0.1.4}/saas-platform/supabase/migrations/000_consolidated_complete_schema.sql +0 -0
  494. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/README.md +0 -0
  495. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/__init__.py +0 -0
  496. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/apply-rotated-keys.sh +0 -0
  497. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/check_schema_usage.py +0 -0
  498. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/clean-git-history.sh +0 -0
  499. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/rotate-api-keys.sh +0 -0
  500. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/supabase_exec_sql.py +0 -0
  501. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/sync_config.py +0 -0
  502. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/testing/__init__.py +0 -0
  503. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/testing/benchmark_matrix_throughput.py +0 -0
  504. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/__init__.py +0 -0
  505. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/check_git_secrets.py +0 -0
  506. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/cleanup_agent_edits.py +0 -0
  507. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/cleanup_agent_edits.sh +0 -0
  508. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/cleanup_agent_edits_docker.sh +0 -0
  509. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/forward-ports.sh +0 -0
  510. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/generate_avatars.py +0 -0
  511. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/rewrite_git_commits_ai.py +0 -0
  512. {mindroom-0.1.2 → mindroom-0.1.4}/scripts/utilities/rewrite_git_history_apply.py +0 -0
  513. {mindroom-0.1.2 → mindroom-0.1.4}/shell.nix +0 -0
  514. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/__init__.py +0 -0
  515. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/agent_prompts.py +0 -0
  516. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/agents.py +0 -0
  517. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/ai.py +0 -0
  518. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/__init__.py +0 -0
  519. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/credentials.py +0 -0
  520. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/google_integration.py +0 -0
  521. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/google_tools_helper.py +0 -0
  522. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/homeassistant_integration.py +0 -0
  523. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/integrations.py +0 -0
  524. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/main.py +0 -0
  525. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/matrix_operations.py +0 -0
  526. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/api/tools.py +0 -0
  527. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/background_tasks.py +0 -0
  528. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/bot.py +0 -0
  529. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/cli.py +0 -0
  530. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/commands.py +0 -0
  531. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/config_commands.py +0 -0
  532. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/config_confirmation.py +0 -0
  533. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/constants.py +0 -0
  534. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/credentials.py +0 -0
  535. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/credentials_sync.py +0 -0
  536. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/__init__.py +0 -0
  537. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/config_manager.py +0 -0
  538. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/gmail.py +0 -0
  539. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/google_calendar.py +0 -0
  540. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/google_sheets.py +0 -0
  541. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/custom_tools/homeassistant.py +0 -0
  542. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/error_handling.py +0 -0
  543. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/file_watcher.py +0 -0
  544. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/interactive.py +0 -0
  545. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/logging_config.py +0 -0
  546. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/__init__.py +0 -0
  547. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/client.py +0 -0
  548. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/event_info.py +0 -0
  549. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/identity.py +0 -0
  550. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/large_messages.py +0 -0
  551. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/mentions.py +0 -0
  552. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/message_builder.py +0 -0
  553. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/message_content.py +0 -0
  554. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/presence.py +0 -0
  555. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/rooms.py +0 -0
  556. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/state.py +0 -0
  557. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/typing.py +0 -0
  558. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/matrix/users.py +0 -0
  559. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/memory/__init__.py +0 -0
  560. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/memory/functions.py +0 -0
  561. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/py.typed +0 -0
  562. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/response_tracker.py +0 -0
  563. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/room_cleanup.py +0 -0
  564. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/routing.py +0 -0
  565. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/scheduling.py +0 -0
  566. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/stop.py +0 -0
  567. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/streaming.py +0 -0
  568. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/teams.py +0 -0
  569. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/thread_utils.py +0 -0
  570. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/__init__.py +0 -0
  571. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/agentql.py +0 -0
  572. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/airflow.py +0 -0
  573. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/apify.py +0 -0
  574. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/arxiv.py +0 -0
  575. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/aws_lambda.py +0 -0
  576. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/aws_ses.py +0 -0
  577. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/baidusearch.py +0 -0
  578. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/brightdata.py +0 -0
  579. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/browserbase.py +0 -0
  580. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/cal_com.py +0 -0
  581. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/calculator.py +0 -0
  582. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/cartesia.py +0 -0
  583. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/composio.py +0 -0
  584. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/config_manager.py +0 -0
  585. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/confluence.py +0 -0
  586. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/crawl4ai.py +0 -0
  587. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/csv.py +0 -0
  588. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/custom_api.py +0 -0
  589. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/dalle.py +0 -0
  590. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/daytona.py +0 -0
  591. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/discord.py +0 -0
  592. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/docker.py +0 -0
  593. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/duckdb.py +0 -0
  594. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/duckduckgo.py +0 -0
  595. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/e2b.py +0 -0
  596. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/eleven_labs.py +0 -0
  597. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/email.py +0 -0
  598. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/exa.py +0 -0
  599. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/fal.py +0 -0
  600. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/file.py +0 -0
  601. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/financial_datasets_api.py +0 -0
  602. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/firecrawl.py +0 -0
  603. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/gemini.py +0 -0
  604. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/giphy.py +0 -0
  605. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/github.py +0 -0
  606. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/gmail.py +0 -0
  607. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/google_calendar.py +0 -0
  608. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/google_maps.py +0 -0
  609. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/google_sheets.py +0 -0
  610. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/googlesearch.py +0 -0
  611. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/groq.py +0 -0
  612. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/hackernews.py +0 -0
  613. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/jina.py +0 -0
  614. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/jira.py +0 -0
  615. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/linear.py +0 -0
  616. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/linkup.py +0 -0
  617. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/lumalabs.py +0 -0
  618. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/mem0.py +0 -0
  619. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/modelslabs.py +0 -0
  620. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/moviepy_video_tools.py +0 -0
  621. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/newspaper4k.py +0 -0
  622. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/openai.py +0 -0
  623. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/openweather.py +0 -0
  624. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/oxylabs.py +0 -0
  625. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/pandas.py +0 -0
  626. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/pubmed.py +0 -0
  627. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/python.py +0 -0
  628. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/reddit.py +0 -0
  629. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/replicate.py +0 -0
  630. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/resend.py +0 -0
  631. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/scrapegraph.py +0 -0
  632. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/searxng.py +0 -0
  633. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/serpapi.py +0 -0
  634. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/serper.py +0 -0
  635. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/shell.py +0 -0
  636. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/slack.py +0 -0
  637. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/sleep.py +0 -0
  638. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/spider.py +0 -0
  639. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/sql.py +0 -0
  640. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/tavily.py +0 -0
  641. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/telegram.py +0 -0
  642. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/todoist.py +0 -0
  643. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/trello.py +0 -0
  644. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/twilio.py +0 -0
  645. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/web_browser_tools.py +0 -0
  646. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/webex.py +0 -0
  647. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/website.py +0 -0
  648. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/whatsapp.py +0 -0
  649. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/wikipedia.py +0 -0
  650. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/x.py +0 -0
  651. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/yfinance.py +0 -0
  652. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/youtube.py +0 -0
  653. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/zendesk.py +0 -0
  654. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/zep.py +0 -0
  655. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools/zoom.py +0 -0
  656. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools_metadata.json +0 -0
  657. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/tools_metadata.py +0 -0
  658. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/topic_generator.py +0 -0
  659. {mindroom-0.1.2 → mindroom-0.1.4}/src/mindroom/voice_handler.py +0 -0
  660. {mindroom-0.1.2 → mindroom-0.1.4}/tests/__init__.py +0 -0
  661. {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/__init__.py +0 -0
  662. {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/conftest.py +0 -0
  663. {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_api.py +0 -0
  664. {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_credentials_api.py +0 -0
  665. {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_file_watcher.py +0 -0
  666. {mindroom-0.1.2 → mindroom-0.1.4}/tests/api/test_matrix_operations.py +0 -0
  667. {mindroom-0.1.2 → mindroom-0.1.4}/tests/conftest.py +0 -0
  668. {mindroom-0.1.2 → mindroom-0.1.4}/tests/manual/manual_test_message_sizes.py +0 -0
  669. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agent_datetime_context.py +0 -0
  670. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agent_order_preservation.py +0 -0
  671. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agent_response_logic.py +0 -0
  672. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_agents.py +0 -0
  673. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_ai_error_message_display.py +0 -0
  674. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_authorization.py +0 -0
  675. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_authorization_config_update.py +0 -0
  676. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_bot_scheduling.py +0 -0
  677. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_cancel_mid_wait.py +0 -0
  678. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_cli.py +0 -0
  679. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_command_with_emoji.py +0 -0
  680. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_commands.py +0 -0
  681. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_config_commands.py +0 -0
  682. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_config_manager_consolidated.py +0 -0
  683. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_config_reload.py +0 -0
  684. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_credentials.py +0 -0
  685. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_credentials_api.py +0 -0
  686. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_credentials_sync.py +0 -0
  687. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_cron_natural_language.py +0 -0
  688. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dm_detection.py +0 -0
  689. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dm_functionality.py +0 -0
  690. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dm_room_preservation.py +0 -0
  691. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_dynamic_config_update.py +0 -0
  692. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_edit_after_restart.py +0 -0
  693. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_edit_event_handling.py +0 -0
  694. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_edit_response_regeneration.py +0 -0
  695. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_error_handling.py +0 -0
  696. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_error_handling_in_callbacks.py +0 -0
  697. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_event_driven_scheduling.py +0 -0
  698. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_event_relations.py +0 -0
  699. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_extra_kwargs.py +0 -0
  700. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_gemini_integration.py +0 -0
  701. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_homeassistant_tools.py +0 -0
  702. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_interactive.py +0 -0
  703. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_interactive_thread_fix.py +0 -0
  704. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_large_messages.py +0 -0
  705. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_large_messages_integration.py +0 -0
  706. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_matrix_agent_manager.py +0 -0
  707. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_matrix_identity.py +0 -0
  708. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_memory_config.py +0 -0
  709. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_memory_functions.py +0 -0
  710. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_memory_integration.py +0 -0
  711. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_mention_exclusion.py +0 -0
  712. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_mentions.py +0 -0
  713. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_message_content.py +0 -0
  714. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_mock_tests.py +0 -0
  715. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_multi_agent_bot.py +0 -0
  716. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_multi_agent_e2e.py +0 -0
  717. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_multiple_edits.py +0 -0
  718. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_preformed_team_routing.py +0 -0
  719. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_presence.py +0 -0
  720. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_presence_based_streaming.py +0 -0
  721. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_response_tracker.py +0 -0
  722. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_response_tracking_regression.py +0 -0
  723. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_restore_dedup.py +0 -0
  724. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_room_invites.py +0 -0
  725. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_router_configured_agents.py +0 -0
  726. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_router_rooms.py +0 -0
  727. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_routing.py +0 -0
  728. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_routing_integration.py +0 -0
  729. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_routing_regression.py +0 -0
  730. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_schedule_agent_validation.py +0 -0
  731. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_scheduled_task_restoration.py +0 -0
  732. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_scheduling.py +0 -0
  733. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_skip_mentions.py +0 -0
  734. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_stop_emoji_reuse.py +0 -0
  735. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_streaming_behavior.py +0 -0
  736. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_streaming_e2e.py +0 -0
  737. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_streaming_edits.py +0 -0
  738. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_sync_task_cancellation.py +0 -0
  739. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_collaboration.py +0 -0
  740. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_coordination.py +0 -0
  741. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_extraction.py +0 -0
  742. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_invitations.py +0 -0
  743. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_mode_decision.py +0 -0
  744. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_team_room_updates.py +0 -0
  745. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_thread_history.py +0 -0
  746. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_threading_error.py +0 -0
  747. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_timezone_scheduling.py +0 -0
  748. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_tool_config_sync.py +0 -0
  749. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_tool_dependencies.py +0 -0
  750. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_tools_metadata.py +0 -0
  751. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_unknown_command.py +0 -0
  752. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_unknown_command_response.py +0 -0
  753. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_agent_mentions.py +0 -0
  754. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_bot_threading.py +0 -0
  755. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_command_processing.py +0 -0
  756. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_handler.py +0 -0
  757. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_handler_thread.py +0 -0
  758. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_voice_thread_agent_response.py +0 -0
  759. {mindroom-0.1.2 → mindroom-0.1.4}/tests/test_workflow_scheduling.py +0 -0
  760. {mindroom-0.1.2 → mindroom-0.1.4}/tools/CONFIGFIELD_GENERATION_PROMPT.md +0 -0
  761. {mindroom-0.1.2 → mindroom-0.1.4}/uv.lock +0 -0
@@ -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
- ### Core MindRoom (`src/mindroom/`)
24
- - **Agent System**: AI agents with persistent memory in Matrix
25
- - **Matrix Integration**: Synapse server for federation
26
- - **Multi-Platform**: Works via bridges to Slack, Discord, Telegram, etc.
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.2
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 - optimized for static serving
26
- FROM public.ecr.aws/nginx/nginx:alpine AS final
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 3003;
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 3003
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 like Ollama")
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