mindroom 2026.4.332__tar.gz → 2026.5.0__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 (1356) hide show
  1. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/scripts/generate_skill_references.py +61 -7
  2. {mindroom-2026.4.332 → mindroom-2026.5.0}/PKG-INFO +1 -1
  3. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/attachments.md +1 -0
  4. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/agents.md +2 -1
  5. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/kubernetes.md +2 -1
  6. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/sandbox-proxy.md +15 -2
  7. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/execution-and-coding.md +5 -2
  8. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/matrix-and-attachments.md +1 -0
  9. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/llms-full.txt +16 -8
  10. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__architecture__matrix__index.md +13 -4
  11. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__architecture__orchestration__index.md +2 -1
  12. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__attachments__index.md +21 -8
  13. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__chat-commands__index.md +27 -12
  14. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__cli__index.md +19 -6
  15. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__agents__index.md +89 -25
  16. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__index.md +10 -3
  17. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__models__index.md +30 -3
  18. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__router__index.md +7 -2
  19. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__teams__index.md +5 -2
  20. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__dashboard__index.md +2 -1
  21. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__docker__index.md +2 -1
  22. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__google-services-oauth__index.md +2 -1
  23. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__hosted-matrix__index.md +8 -4
  24. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__index.md +5 -2
  25. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__kubernetes__index.md +17 -5
  26. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__sandbox-proxy__index.md +80 -21
  27. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__getting-started__index.md +9 -4
  28. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__images__index.md +9 -4
  29. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__interactive__index.md +2 -1
  30. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__knowledge__index.md +41 -10
  31. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__matrix-space__index.md +6 -3
  32. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__memory__index.md +30 -8
  33. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__openai-api__index.md +22 -9
  34. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__openclaw__index.md +11 -3
  35. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__plugins__index.md +43 -16
  36. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__scheduling__index.md +10 -2
  37. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__skills__index.md +11 -4
  38. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__streaming__index.md +25 -10
  39. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__agent-orchestration__index.md +67 -9
  40. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__ai-and-generation__index.md +59 -13
  41. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__automation-and-platforms__index.md +50 -9
  42. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__calendar-and-scheduling__index.md +23 -5
  43. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__data-and-databases__index.md +60 -14
  44. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__execution-and-coding__index.md +72 -14
  45. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__index.md +28 -7
  46. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__location-commerce-and-home__index.md +30 -6
  47. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__matrix-and-attachments__index.md +57 -8
  48. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__media-and-content__index.md +41 -8
  49. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__memory-and-storage__index.md +30 -5
  50. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__messaging-and-social__index.md +61 -14
  51. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__project-management__index.md +46 -12
  52. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__research-sources__index.md +19 -6
  53. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__web-scraping-and-browser__index.md +96 -17
  54. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__web-search__index.md +51 -11
  55. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__voice__index.md +33 -9
  56. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_prompts.py +2 -1
  57. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_runner.py +199 -20
  58. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/constants.py +19 -0
  59. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/shell.py +27 -1
  60. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_sandbox_runner_api.py +796 -11
  61. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_sandbox_proxy.py +61 -0
  62. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/agent-cli-dev/SKILL.md +0 -0
  63. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/agent-cli-dev/examples.md +0 -0
  64. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/agent-cli-tmux-supervision/SKILL.md +0 -0
  65. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/code-debate/SKILL.md +0 -0
  66. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/docs-review/SKILL.md +0 -0
  67. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/duplication-audit/SKILL.md +0 -0
  68. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/SKILL.md +0 -0
  69. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/agents/openai.yaml +0 -0
  70. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/references/core-mindroom.md +0 -0
  71. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/references/frontend-and-platform.md +0 -0
  72. {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/pr-review/SKILL.md +0 -0
  73. {mindroom-2026.4.332 → mindroom-2026.5.0}/.dockerignore +0 -0
  74. {mindroom-2026.4.332 → mindroom-2026.5.0}/.env.example +0 -0
  75. {mindroom-2026.4.332 → mindroom-2026.5.0}/.envrc +0 -0
  76. {mindroom-2026.4.332 → mindroom-2026.5.0}/.gitattributes +0 -0
  77. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/renovate.json +0 -0
  78. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/scripts/check_tool_extras_sync.py +0 -0
  79. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/build-mindroom.yml +0 -0
  80. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/build-platform.yml +0 -0
  81. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/calver-auto-release.yml +0 -0
  82. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/docs.yml +0 -0
  83. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/markdown-code-runner.yml +0 -0
  84. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/publish-helm-charts.yml +0 -0
  85. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/pytest.yml +0 -0
  86. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/release.yml +0 -0
  87. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/security-scan.yml +0 -0
  88. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/smoke-stacks.yml +0 -0
  89. {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/tach.yml +0 -0
  90. {mindroom-2026.4.332 → mindroom-2026.5.0}/.gitignore +0 -0
  91. {mindroom-2026.4.332 → mindroom-2026.5.0}/.pre-commit-config.yaml +0 -0
  92. {mindroom-2026.4.332 → mindroom-2026.5.0}/.python-version +0 -0
  93. {mindroom-2026.4.332 → mindroom-2026.5.0}/AGENTS.md +0 -0
  94. {mindroom-2026.4.332 → mindroom-2026.5.0}/CLAUDE.md +0 -0
  95. {mindroom-2026.4.332 → mindroom-2026.5.0}/LICENSE +0 -0
  96. {mindroom-2026.4.332 → mindroom-2026.5.0}/PLAN.md +0 -0
  97. {mindroom-2026.4.332 → mindroom-2026.5.0}/README.md +0 -0
  98. {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/analyst.png +0 -0
  99. {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/code.png +0 -0
  100. {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/general.png +0 -0
  101. {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/research.png +0 -0
  102. {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/summary.png +0 -0
  103. {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/spaces/root_space.png +0 -0
  104. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/cert-manager/cluster-issuer-prod.yaml +0 -0
  105. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/cert-manager/cluster-issuer-staging.yaml +0 -0
  106. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/Chart.yaml +0 -0
  107. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/default-config.yaml +0 -0
  108. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/_helpers.tpl +0 -0
  109. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/configmap-mindroom.yaml +0 -0
  110. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/configmap-synapse.yaml +0 -0
  111. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/deployment-mindroom.yaml +0 -0
  112. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/deployment-synapse.yaml +0 -0
  113. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/ingress.yaml +0 -0
  114. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/networkpolicy.yaml +0 -0
  115. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/pvc.yaml +0 -0
  116. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/rbac-worker-manager.yaml +0 -0
  117. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/secret-api-keys.yaml +0 -0
  118. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/service.yaml +0 -0
  119. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/serviceaccount-worker-manager.yaml +0 -0
  120. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/values.yaml +0 -0
  121. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/.env.example +0 -0
  122. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/README.md +0 -0
  123. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/build_load_images.sh +0 -0
  124. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/down.sh +0 -0
  125. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/install_platform.sh +0 -0
  126. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/kind-config-smoke.yaml +0 -0
  127. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/kind-config.yaml +0 -0
  128. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/setup-local-access.sh +0 -0
  129. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/shell.nix +0 -0
  130. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/smoke_instance.py +0 -0
  131. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/start-fresh.sh +0 -0
  132. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/test-access.sh +0 -0
  133. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/up.sh +0 -0
  134. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/validate.sh +0 -0
  135. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/.gitignore +0 -0
  136. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/Chart.yaml +0 -0
  137. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/all.yaml +0 -0
  138. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/apex-redirect.yaml +0 -0
  139. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/ingress.yaml +0 -0
  140. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/rbac.yaml +0 -0
  141. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/values-prod.example.yaml +0 -0
  142. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/values-staging.example.yaml +0 -0
  143. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/values.yaml +0 -0
  144. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/Chart.yaml +0 -0
  145. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/README.md +0 -0
  146. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/NOTES.txt +0 -0
  147. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/_helpers.tpl +0 -0
  148. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/configmap.yaml +0 -0
  149. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/deployment.yaml +0 -0
  150. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/event-cache-postgres.yaml +0 -0
  151. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/networkpolicy.yaml +0 -0
  152. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/pdb.yaml +0 -0
  153. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/pvc.yaml +0 -0
  154. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/rbac.yaml +0 -0
  155. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/secret.yaml +0 -0
  156. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/service.yaml +0 -0
  157. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/serviceaccount.yaml +0 -0
  158. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/validate.yaml +0 -0
  159. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/values.yaml +0 -0
  160. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/cleanup-duplicate-subscriptions.py +0 -0
  161. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/db/backup_supabase.sh +0 -0
  162. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/db/setup-stripe-products.js +0 -0
  163. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/list-instances.sh +0 -0
  164. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/mindroom-cli.sh +0 -0
  165. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/setup-stripe-webhooks.py +0 -0
  166. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/setup-terraform-state.sh +0 -0
  167. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/sync-stripe-prices.py +0 -0
  168. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/update-api-keys.sh +0 -0
  169. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/validate_multitenancy_security.py +0 -0
  170. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/view-instance-logs.sh +0 -0
  171. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/.gitignore +0 -0
  172. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/README.md +0 -0
  173. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/cert-manager.tf +0 -0
  174. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/dns.tf +0 -0
  175. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/hcloud-microos-snapshots.pkr.hcl +0 -0
  176. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/helm.tf +0 -0
  177. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/kube.tf +0 -0
  178. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-prod.yaml +0 -0
  179. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-staging.yaml +0 -0
  180. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/modules/dns/dns.tf +0 -0
  181. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/platform-cert.yaml +0 -0
  182. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/providers-porkbun.tf +0 -0
  183. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/build_snapshots.sh +0 -0
  184. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/destroy.sh +0 -0
  185. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/status.sh +0 -0
  186. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/up.sh +0 -0
  187. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/supabase-auth.tf +0 -0
  188. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/terraform.tfvars.example +0 -0
  189. {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/variables.tf +0 -0
  190. {mindroom-2026.4.332 → mindroom-2026.5.0}/config.yaml +0 -0
  191. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/bot-runtime.md +0 -0
  192. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/index.md +0 -0
  193. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/matrix.md +0 -0
  194. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/orchestration.md +0 -0
  195. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/assets/logo.png +0 -0
  196. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/authorization.md +0 -0
  197. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/chat-commands.md +0 -0
  198. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/cli.md +0 -0
  199. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/cultures.md +0 -0
  200. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/index.md +0 -0
  201. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/models.md +0 -0
  202. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/router.md +0 -0
  203. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/teams.md +0 -0
  204. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/toolkits.md +0 -0
  205. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dashboard.md +0 -0
  206. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/bridges/index.md +0 -0
  207. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/bridges/telegram.md +0 -0
  208. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/docker.md +0 -0
  209. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/google-services-oauth.md +0 -0
  210. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/google-services-user-oauth.md +0 -0
  211. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/hosted-matrix.md +0 -0
  212. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/index.md +0 -0
  213. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/2026-04-15-mindroom-architecture-boundaries.md +0 -0
  214. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/2026-04-15-narrow-tach-rollout-plan.md +0 -0
  215. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/TESTING.md +0 -0
  216. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/agent_configuration.md +0 -0
  217. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/live-test-validation-summary-2026-03-19.md +0 -0
  218. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/openclaw-feature-parity-plan.md +0 -0
  219. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/per-user-matrix-space-plan.md +0 -0
  220. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/pitches.md +0 -0
  221. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/runtime-path-architecture-refactor-prompt.md +0 -0
  222. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/shared-agent-private-instance-goal.md +0 -0
  223. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/skills-planning.md +0 -0
  224. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/exhaustive-live-test-checklist.md +0 -0
  225. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/README.md +0 -0
  226. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/agents/configfield-specialist.md +0 -0
  227. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/agents/testing-specialist.md +0 -0
  228. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/coding-agent-playbook.md +0 -0
  229. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/commands/commit.md +0 -0
  230. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/commands/init.md +0 -0
  231. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/commands/remove-cruft.md +0 -0
  232. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/mindroom-memory-consolidation-auto-flush-plan.md +0 -0
  233. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/ops/README.md +0 -0
  234. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/persistent-worker-runtime-plan.md +0 -0
  235. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_ACTION_PLAN.md +0 -0
  236. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_CRITICAL_FIXES.md +0 -0
  237. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_EXECUTIVE_SUMMARY.md +0 -0
  238. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_01_AUTH.md +0 -0
  239. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_02_MULTITENANCY.md +0 -0
  240. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_03_SECRETS.md +0 -0
  241. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_04_INJECTION.md +0 -0
  242. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_05_TOKENS.md +0 -0
  243. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_06_INFRASTRUCTURE.md +0 -0
  244. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_07_DATA_PROTECTION.md +0 -0
  245. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_08_DEPENDENCIES.md +0 -0
  246. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_09_ERROR_HANDLING.md +0 -0
  247. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_10_API_SECURITY.md +0 -0
  248. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_11_MONITORING.md +0 -0
  249. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_12_FRONTEND.md +0 -0
  250. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_CHECKLIST.md +0 -0
  251. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_FINDINGS.md +0 -0
  252. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_SUMMARY.md +0 -0
  253. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/getting-started.md +0 -0
  254. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/hooks.md +0 -0
  255. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/images.md +0 -0
  256. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/index.md +0 -0
  257. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/interactive.md +0 -0
  258. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/knowledge.md +0 -0
  259. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/matrix-space.md +0 -0
  260. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/mcp.md +0 -0
  261. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/memory.md +0 -0
  262. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/openai-api.md +0 -0
  263. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/openclaw.md +0 -0
  264. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  265. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/plugins.md +0 -0
  266. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/privacy.md +0 -0
  267. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/run_markdown_code_runner.py +0 -0
  268. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/scheduling.md +0 -0
  269. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/skills.md +0 -0
  270. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/streaming.md +0 -0
  271. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/support.md +0 -0
  272. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/terms.md +0 -0
  273. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/agent-orchestration.md +0 -0
  274. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/ai-and-generation.md +0 -0
  275. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/automation-and-platforms.md +0 -0
  276. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/builtin.md +0 -0
  277. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/calendar-and-scheduling.md +0 -0
  278. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/data-and-databases.md +0 -0
  279. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/dynamic-toolkits.md +0 -0
  280. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/index.md +0 -0
  281. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/location-commerce-and-home.md +0 -0
  282. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/mcp.md +0 -0
  283. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/media-and-content.md +0 -0
  284. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/memory-and-storage.md +0 -0
  285. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/messaging-and-social.md +0 -0
  286. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/project-management.md +0 -0
  287. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/research-sources.md +0 -0
  288. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/web-scraping-and-browser.md +0 -0
  289. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/web-search.md +0 -0
  290. {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/voice.md +0 -0
  291. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/.eslintrc.json +0 -0
  292. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/.prettierignore +0 -0
  293. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/.prettierrc +0 -0
  294. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/SCREENSHOT_INSTRUCTIONS.md +0 -0
  295. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/bun.lock +0 -0
  296. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/index.html +0 -0
  297. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/chat-mockup.png +0 -0
  298. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/generate-mockup-from-json.cjs +0 -0
  299. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-conversations.cjs +0 -0
  300. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-cross-org.png +0 -0
  301. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-cross-platform.png +0 -0
  302. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-multi-agent.png +0 -0
  303. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/package.json +0 -0
  304. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/postcss.config.js +0 -0
  305. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/favicon.png +0 -0
  306. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo-square.png +0 -0
  307. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo-text.svg +0 -0
  308. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo.png +0 -0
  309. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo.svg +0 -0
  310. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/widget.json +0 -0
  311. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/scripts/generate-icon-imports.cjs +0 -0
  312. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/scripts/screenshot.cjs +0 -0
  313. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/App.test.tsx +0 -0
  314. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/App.tsx +0 -0
  315. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/AgentEditor.test.tsx +0 -0
  316. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/AgentEditor.tsx +0 -0
  317. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/ToolConfigPanel.test.tsx +0 -0
  318. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/ToolConfigPanel.tsx +0 -0
  319. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentList/AgentList.test.tsx +0 -0
  320. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentList/AgentList.tsx +0 -0
  321. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Credentials/Credentials.test.tsx +0 -0
  322. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Credentials/Credentials.tsx +0 -0
  323. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureEditor/CultureEditor.test.tsx +0 -0
  324. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureEditor/CultureEditor.tsx +0 -0
  325. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureList/CultureList.test.tsx +0 -0
  326. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureList/CultureList.tsx +0 -0
  327. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Dashboard/Dashboard.test.tsx +0 -0
  328. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Dashboard/Dashboard.tsx +0 -0
  329. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Dashboard/NetworkGraph.tsx +0 -0
  330. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/GoogleIntegration/GoogleIntegration.tsx +0 -0
  331. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/HomeAssistantIntegration/HomeAssistantIntegration.test.tsx +0 -0
  332. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/HomeAssistantIntegration/HomeAssistantIntegration.tsx +0 -0
  333. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/EnhancedConfigDialog.test.tsx +0 -0
  334. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/EnhancedConfigDialog.tsx +0 -0
  335. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/Integrations.test.tsx +0 -0
  336. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/Integrations.tsx +0 -0
  337. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/iconMapping.tsx +0 -0
  338. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/google/google.test.tsx +0 -0
  339. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/google/index.tsx +0 -0
  340. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/homeassistant/homeassistant.test.tsx +0 -0
  341. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/homeassistant/index.tsx +0 -0
  342. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/index.ts +0 -0
  343. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/spotify/index.tsx +0 -0
  344. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/spotify/spotify.test.tsx +0 -0
  345. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/types/index.ts +0 -0
  346. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Knowledge/Knowledge.test.tsx +0 -0
  347. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Knowledge/Knowledge.tsx +0 -0
  348. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/MemoryConfig/MemoryConfig.test.tsx +0 -0
  349. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/MemoryConfig/MemoryConfig.tsx +0 -0
  350. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ModelConfig.extra_kwargs.test.tsx +0 -0
  351. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ModelConfig.test.tsx +0 -0
  352. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ModelConfig.tsx +0 -0
  353. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ProviderLogos.tsx +0 -0
  354. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomEditor/RoomEditor.test.tsx +0 -0
  355. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomEditor/RoomEditor.tsx +0 -0
  356. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomList/RoomList.test.tsx +0 -0
  357. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomList/RoomList.tsx +0 -0
  358. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Schedules/Schedules.tsx +0 -0
  359. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Skills/Skills.tsx +0 -0
  360. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/SyncStatus/SyncStatus.tsx +0 -0
  361. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamEditor/TeamEditor.test.tsx +0 -0
  362. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamEditor/TeamEditor.tsx +0 -0
  363. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamList/TeamList.test.tsx +0 -0
  364. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamList/TeamList.tsx +0 -0
  365. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ThemeToggle/ThemeToggle.tsx +0 -0
  366. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ToolConfig/ToolConfigDialog.test.tsx +0 -0
  367. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ToolConfig/ToolConfigDialog.tsx +0 -0
  368. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/UnconfiguredRooms/UnconfiguredRooms.test.tsx +0 -0
  369. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/UnconfiguredRooms/UnconfiguredRooms.tsx +0 -0
  370. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/UnconfiguredRooms/index.ts +0 -0
  371. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/VoiceConfig/VoiceConfig.test.tsx +0 -0
  372. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/VoiceConfig/VoiceConfig.tsx +0 -0
  373. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/CheckboxListField.tsx +0 -0
  374. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/EditorPanel.tsx +0 -0
  375. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/EmptyState.tsx +0 -0
  376. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/FieldGroup.tsx +0 -0
  377. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/FilterSelector.tsx +0 -0
  378. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/HistoryContextSection.tsx +0 -0
  379. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/ItemCard.tsx +0 -0
  380. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/ListPanel.test.tsx +0 -0
  381. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/ListPanel.tsx +0 -0
  382. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/README.md +0 -0
  383. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/index.ts +0 -0
  384. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/styles.ts +0 -0
  385. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/alert.tsx +0 -0
  386. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/badge.tsx +0 -0
  387. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/button.tsx +0 -0
  388. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/card.tsx +0 -0
  389. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/checkbox.tsx +0 -0
  390. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/dialog.tsx +0 -0
  391. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  392. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/input.tsx +0 -0
  393. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/label.tsx +0 -0
  394. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/scroll-area.tsx +0 -0
  395. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/select.tsx +0 -0
  396. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/separator.tsx +0 -0
  397. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/skeleton.tsx +0 -0
  398. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/tabs.tsx +0 -0
  399. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/textarea.tsx +0 -0
  400. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/toaster.tsx +0 -0
  401. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/toggle-group.tsx +0 -0
  402. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/tooltip.tsx +0 -0
  403. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/use-toast.ts +0 -0
  404. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/contexts/ThemeContext.tsx +0 -0
  405. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useFetchData.test.tsx +0 -0
  406. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useFetchData.ts +0 -0
  407. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useScopedConfigValidation.ts +0 -0
  408. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useSkills.ts +0 -0
  409. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useSwipeBack.ts +0 -0
  410. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useTools.ts +0 -0
  411. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/index.css +0 -0
  412. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/api.ts +0 -0
  413. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/configValidation.test.ts +0 -0
  414. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/configValidation.ts +0 -0
  415. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/providers.test.tsx +0 -0
  416. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/providers.tsx +0 -0
  417. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/toolEntry.test.ts +0 -0
  418. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/toolEntry.ts +0 -0
  419. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/utils.ts +0 -0
  420. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/main.tsx +0 -0
  421. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/services/configService.ts +0 -0
  422. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/services/scheduleService.ts +0 -0
  423. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/services/skillsService.ts +0 -0
  424. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/store/configStore.test.ts +0 -0
  425. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/store/configStore.ts +0 -0
  426. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/styles/animations.css +0 -0
  427. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/styles/tokens.css +0 -0
  428. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/test/setup.ts +0 -0
  429. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/config.ts +0 -0
  430. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/schedule.ts +0 -0
  431. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/skills.ts +0 -0
  432. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/toolConfig.test.ts +0 -0
  433. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/toolConfig.ts +0 -0
  434. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/vite-env.d.ts +0 -0
  435. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/tailwind.config.js +0 -0
  436. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/take_screenshot.py +0 -0
  437. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/tsconfig.json +0 -0
  438. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/tsconfig.node.json +0 -0
  439. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/vite.config.ts +0 -0
  440. {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/vitest.config.ts +0 -0
  441. {mindroom-2026.4.332 → mindroom-2026.5.0}/hatch_build.py +0 -0
  442. {mindroom-2026.4.332 → mindroom-2026.5.0}/justfile +0 -0
  443. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/.dockerignore +0 -0
  444. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/.dockerignore.backend +0 -0
  445. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/.gitignore +0 -0
  446. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/BRIDGE_MANAGER.md +0 -0
  447. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/Dockerfile.mindroom +0 -0
  448. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/Dockerfile.mindroom-minimal +0 -0
  449. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/README-DOCKER.md +0 -0
  450. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/README.md +0 -0
  451. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/bridge.py +0 -0
  452. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/default-deploy.sh +0 -0
  453. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/deploy.py +0 -0
  454. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.authelia.yml +0 -0
  455. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.synapse.yml +0 -0
  456. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.tuwunel.yml +0 -0
  457. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.wellknown.yml +0 -0
  458. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.yml +0 -0
  459. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/authelia/configuration.yml.j2 +0 -0
  460. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/authelia/users_database.yml +0 -0
  461. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/README.md +0 -0
  462. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/docker-compose.email.j2 +0 -0
  463. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/docker-compose.slack.j2 +0 -0
  464. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/docker-compose.telegram.j2 +0 -0
  465. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/synapse/entrypoint.sh +0 -0
  466. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/synapse/homeserver.yaml.j2 +0 -0
  467. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/synapse/log.config +0 -0
  468. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/tuwunel/tuwunel.toml +0 -0
  469. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/.gitignore +0 -0
  470. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/entrypoint.sh +0 -0
  471. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/homeserver.yaml +0 -0
  472. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/log.config +0 -0
  473. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/log.minimal.config +0 -0
  474. {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker-compose.yml +0 -0
  475. {mindroom-2026.4.332 → mindroom-2026.5.0}/plugins/thread-snooze/hooks.py +0 -0
  476. {mindroom-2026.4.332 → mindroom-2026.5.0}/plugins/thread-snooze/mindroom.plugin.json +0 -0
  477. {mindroom-2026.4.332 → mindroom-2026.5.0}/plugins/thread-snooze/tools.py +0 -0
  478. {mindroom-2026.4.332 → mindroom-2026.5.0}/pyproject.toml +0 -0
  479. {mindroom-2026.4.332 → mindroom-2026.5.0}/run-backend.sh +0 -0
  480. {mindroom-2026.4.332 → mindroom-2026.5.0}/run-frontend.sh +0 -0
  481. {mindroom-2026.4.332 → mindroom-2026.5.0}/run-nix.sh +0 -0
  482. {mindroom-2026.4.332 → mindroom-2026.5.0}/run-sandbox-runner.sh +0 -0
  483. {mindroom-2026.4.332 → mindroom-2026.5.0}/run-tests.sh +0 -0
  484. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/.dockerignore +0 -0
  485. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/.env.example +0 -0
  486. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/API_ENDPOINT_MAPPING.md +0 -0
  487. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/COMPONENTS.md +0 -0
  488. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/Dockerfile.platform-backend +0 -0
  489. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/Dockerfile.platform-frontend +0 -0
  490. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/LICENSE +0 -0
  491. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/README.md +0 -0
  492. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/deploy.sh +0 -0
  493. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/docker-compose.yml +0 -0
  494. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/docs/authentication.md +0 -0
  495. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/.python-version +0 -0
  496. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/README.md +0 -0
  497. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/pyproject.toml +0 -0
  498. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/__init__.py +0 -0
  499. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/__init__.py +0 -0
  500. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/auth_monitor.py +0 -0
  501. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/config.py +0 -0
  502. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/db_utils.py +0 -0
  503. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/deps.py +0 -0
  504. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/k8s.py +0 -0
  505. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/metrics.py +0 -0
  506. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/middleware/__init__.py +0 -0
  507. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/middleware/audit_logging.py +0 -0
  508. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/models.py +0 -0
  509. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/pricing.py +0 -0
  510. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/process.py +0 -0
  511. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/__init__.py +0 -0
  512. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/accounts.py +0 -0
  513. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/admin.py +0 -0
  514. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/gdpr.py +0 -0
  515. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/health.py +0 -0
  516. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/instances.py +0 -0
  517. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/pricing.py +0 -0
  518. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/provisioner.py +0 -0
  519. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/sso.py +0 -0
  520. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/stripe_routes.py +0 -0
  521. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/subscriptions.py +0 -0
  522. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/usage.py +0 -0
  523. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/webhooks.py +0 -0
  524. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/tasks/__init__.py +0 -0
  525. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/tasks/cleanup.py +0 -0
  526. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/tasks/usage_metrics.py +0 -0
  527. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/__init__.py +0 -0
  528. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/audit.py +0 -0
  529. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/log_sanitizer.py +0 -0
  530. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/logger.py +0 -0
  531. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/main.py +0 -0
  532. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/__init__.py +0 -0
  533. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/conftest.py +0 -0
  534. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/stripe_mock.py +0 -0
  535. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_accounts.py +0 -0
  536. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin.py +0 -0
  537. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin_account_deletion.py +0 -0
  538. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin_allowlist.py +0 -0
  539. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin_rate_limit.py +0 -0
  540. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_auth_monitor.py +0 -0
  541. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_bearer_token_parsing.py +0 -0
  542. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_cors_headers.py +0 -0
  543. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_deps.py +0 -0
  544. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_gdpr.py +0 -0
  545. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_instances.py +0 -0
  546. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_log_sanitizer.py +0 -0
  547. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_metrics_endpoint.py +0 -0
  548. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_multitenancy_security.py +0 -0
  549. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_pricing.py +0 -0
  550. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner.py +0 -0
  551. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_auth.py +0 -0
  552. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_extended.py +0 -0
  553. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_integration.py +0 -0
  554. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_rate_limit.py +0 -0
  555. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_real.py +0 -0
  556. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_rate_limit_sso.py +0 -0
  557. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_request_size_limit.py +0 -0
  558. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_security_headers_and_hosts.py +0 -0
  559. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_sso_cookie_attrs.py +0 -0
  560. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_stripe_integration.py +0 -0
  561. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_stripe_routes.py +0 -0
  562. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_stripe_utils.py +0 -0
  563. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_subscriptions.py +0 -0
  564. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_usage.py +0 -0
  565. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_usage_metrics.py +0 -0
  566. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_user_rate_limit.py +0 -0
  567. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_webhook_rate_limit.py +0 -0
  568. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_webhooks.py +0 -0
  569. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/uv.lock +0 -0
  570. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/.gitignore +0 -0
  571. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/README.md +0 -0
  572. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/bun.lock +0 -0
  573. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/jest.config.js +0 -0
  574. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/jest.setup.js +0 -0
  575. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/middleware.ts +0 -0
  576. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/next.config.ts +0 -0
  577. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/package.json +0 -0
  578. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/postcss.config.mjs +0 -0
  579. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/file.svg +0 -0
  580. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/globe.svg +0 -0
  581. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/logo-text.svg +0 -0
  582. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/logo.png +0 -0
  583. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/logo.svg +0 -0
  584. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/next.svg +0 -0
  585. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/vercel.svg +0 -0
  586. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/window.svg +0 -0
  587. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/runtime-config-shared.js +0 -0
  588. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/shell.nix +0 -0
  589. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/accounts/[id]/page.tsx +0 -0
  590. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/accounts/__tests__/page.test.tsx +0 -0
  591. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/accounts/page.tsx +0 -0
  592. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/audit-logs/page.tsx +0 -0
  593. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/instances/page.tsx +0 -0
  594. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/layout.tsx +0 -0
  595. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/page.tsx +0 -0
  596. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/subscriptions/page.tsx +0 -0
  597. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/usage/page.tsx +0 -0
  598. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/api/csp-report/route.ts +0 -0
  599. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/callback/route.ts +0 -0
  600. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/complete/page.tsx +0 -0
  601. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/login/page.tsx +0 -0
  602. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/signup/page.tsx +0 -0
  603. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/billing/page.tsx +0 -0
  604. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/billing/upgrade/page.tsx +0 -0
  605. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/instance/page.tsx +0 -0
  606. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/layout.tsx +0 -0
  607. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/page.tsx +0 -0
  608. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/edge-cases.test.tsx +0 -0
  609. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/page.test.tsx +0 -0
  610. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/settings/page.tsx +0 -0
  611. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/support/page.tsx +0 -0
  612. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/usage/page.tsx +0 -0
  613. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/favicon.ico +0 -0
  614. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/globals.css +0 -0
  615. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/layout.tsx +0 -0
  616. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/page.tsx +0 -0
  617. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/privacy/page.tsx +0 -0
  618. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/terms/page.tsx +0 -0
  619. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/DarkModeToggle.tsx +0 -0
  620. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/LaunchButton.tsx +0 -0
  621. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/MindRoomLogo.tsx +0 -0
  622. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/admin/AdminLayout.tsx +0 -0
  623. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/admin/InstanceActions.tsx +0 -0
  624. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/admin/__tests__/InstanceActions.test.tsx +0 -0
  625. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/auth/__tests__/auth-wrapper.test.tsx +0 -0
  626. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/auth/auth-wrapper.tsx +0 -0
  627. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/DashboardLoader.tsx +0 -0
  628. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/Header.tsx +0 -0
  629. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/InstanceCard.tsx +0 -0
  630. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/QuickActions.tsx +0 -0
  631. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/Sidebar.tsx +0 -0
  632. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/UsageChart.tsx +0 -0
  633. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.simple.test.tsx +0 -0
  634. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.test.tsx +0 -0
  635. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/CTA.tsx +0 -0
  636. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Collaboration.tsx +0 -0
  637. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Features.tsx +0 -0
  638. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Hero.tsx +0 -0
  639. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/HowItWorks.tsx +0 -0
  640. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Pricing.tsx +0 -0
  641. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Stats.tsx +0 -0
  642. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Testimonials.tsx +0 -0
  643. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/WhyItMatters.tsx +0 -0
  644. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/ui/AnimatedSection.tsx +0 -0
  645. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/ui/Card.tsx +0 -0
  646. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/ui/button.tsx +0 -0
  647. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useAuth.ts +0 -0
  648. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useDarkMode.tsx +0 -0
  649. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useInstance.ts +0 -0
  650. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useSubscription.ts +0 -0
  651. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useUsage.ts +0 -0
  652. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/__tests__/api.test.ts +0 -0
  653. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/__tests__/instance-lifecycle.test.ts +0 -0
  654. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/__tests__/runtime-config.test.ts +0 -0
  655. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/api.ts +0 -0
  656. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/auth/admin.ts +0 -0
  657. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/cache.ts +0 -0
  658. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/constants.ts +0 -0
  659. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/logger.ts +0 -0
  660. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/pricing-config.ts +0 -0
  661. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/runtime-config.ts +0 -0
  662. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/stripe/client.ts +0 -0
  663. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/supabase/client.ts +0 -0
  664. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/supabase/server.ts +0 -0
  665. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/supabase/types.ts +0 -0
  666. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/styles/buttons.css +0 -0
  667. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/take_screenshot.js +0 -0
  668. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tests/admin.test.ts +0 -0
  669. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tests/e2e.test.ts +0 -0
  670. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tests/test-instance-control.js +0 -0
  671. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tsconfig.json +0 -0
  672. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/pricing-config.yaml +0 -0
  673. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/redeploy-mindroom.sh +0 -0
  674. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/supabase/.gitignore +0 -0
  675. {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/supabase/migrations/000_consolidated_complete_schema.sql +0 -0
  676. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/README.md +0 -0
  677. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/__init__.py +0 -0
  678. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/apply-rotated-keys.sh +0 -0
  679. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/check_module_privacy.py +0 -0
  680. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/check_schema_usage.py +0 -0
  681. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/clean-git-history.sh +0 -0
  682. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/local_mindroom_provisioning_service.nix +0 -0
  683. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/local_mindroom_provisioning_service.py +0 -0
  684. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/rotate-api-keys.sh +0 -0
  685. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/smoke_helpers.py +0 -0
  686. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/smoke_mindroom_stack.py +0 -0
  687. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/smoke_platform_images.py +0 -0
  688. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/supabase_exec_sql.py +0 -0
  689. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/sync_config.py +0 -0
  690. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/__init__.py +0 -0
  691. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/benchmark_matrix_throughput.py +0 -0
  692. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/prompt_cache_review.py +0 -0
  693. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/tool_auto_install_smoke.py +0 -0
  694. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/__init__.py +0 -0
  695. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/check_git_secrets.py +0 -0
  696. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/cleanup_agent_edits.py +0 -0
  697. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/cleanup_agent_edits.sh +0 -0
  698. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/cleanup_agent_edits_docker.sh +0 -0
  699. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/forward-ports.sh +0 -0
  700. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/rewrite_git_commits_ai.py +0 -0
  701. {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/rewrite_git_history_apply.py +0 -0
  702. {mindroom-2026.4.332 → mindroom-2026.5.0}/shell.nix +0 -0
  703. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/SKILL.md +0 -0
  704. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/llms.txt +0 -0
  705. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__architecture__index.md +0 -0
  706. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__authorization__index.md +0 -0
  707. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__cultures__index.md +0 -0
  708. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__bridges__index.md +0 -0
  709. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__bridges__telegram__index.md +0 -0
  710. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__google-services-user-oauth__index.md +0 -0
  711. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__index.md +0 -0
  712. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__builtin__index.md +0 -0
  713. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__mcp__index.md +0 -0
  714. {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/reference-index.md +0 -0
  715. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/__init__.py +0 -0
  716. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_descriptions.py +0 -0
  717. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_policy.py +0 -0
  718. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_run_context.py +0 -0
  719. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_storage.py +0 -0
  720. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agents.py +0 -0
  721. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/ai.py +0 -0
  722. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/ai_runtime.py +0 -0
  723. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/__init__.py +0 -0
  724. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/auth.py +0 -0
  725. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/config_lifecycle.py +0 -0
  726. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/credentials.py +0 -0
  727. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/frontend.py +0 -0
  728. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/google_integration.py +0 -0
  729. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/google_tools_helper.py +0 -0
  730. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/homeassistant_integration.py +0 -0
  731. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/integrations.py +0 -0
  732. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/knowledge.py +0 -0
  733. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/main.py +0 -0
  734. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/matrix_operations.py +0 -0
  735. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/openai_compat.py +0 -0
  736. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/runtime_reload.py +0 -0
  737. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_exec.py +0 -0
  738. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_protocol.py +0 -0
  739. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_runner_app.py +0 -0
  740. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_worker_prep.py +0 -0
  741. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/schedules.py +0 -0
  742. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/skills.py +0 -0
  743. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/tools.py +0 -0
  744. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/workers.py +0 -0
  745. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/attachment_media.py +0 -0
  746. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/attachments.py +0 -0
  747. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/authorization.py +0 -0
  748. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/avatar_generation.py +0 -0
  749. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/background_tasks.py +0 -0
  750. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/bot.py +0 -0
  751. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/bot_room_lifecycle.py +0 -0
  752. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/bot_runtime_view.py +0 -0
  753. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cancellation.py +0 -0
  754. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/__init__.py +0 -0
  755. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/banner.py +0 -0
  756. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/config.py +0 -0
  757. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/connect.py +0 -0
  758. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/doctor.py +0 -0
  759. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/local_stack.py +0 -0
  760. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/main.py +0 -0
  761. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/owner.py +0 -0
  762. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/AGENTS.md +0 -0
  763. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/HEARTBEAT.md +0 -0
  764. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/IDENTITY.md +0 -0
  765. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/MEMORY.md +0 -0
  766. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/SOUL.md +0 -0
  767. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/TOOLS.md +0 -0
  768. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/USER.md +0 -0
  769. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/coalescing.py +0 -0
  770. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/coalescing_batch.py +0 -0
  771. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/codex_model.py +0 -0
  772. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/__init__.py +0 -0
  773. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/config_commands.py +0 -0
  774. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/config_confirmation.py +0 -0
  775. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/handler.py +0 -0
  776. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/parsing.py +0 -0
  777. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/__init__.py +0 -0
  778. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/agent.py +0 -0
  779. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/auth.py +0 -0
  780. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/knowledge.py +0 -0
  781. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/main.py +0 -0
  782. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/matrix.py +0 -0
  783. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/memory.py +0 -0
  784. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/models.py +0 -0
  785. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/plugin.py +0 -0
  786. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/voice.py +0 -0
  787. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config_template.yaml +0 -0
  788. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/conversation_resolver.py +0 -0
  789. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/conversation_state_writer.py +0 -0
  790. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/credentials.py +0 -0
  791. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/credentials_sync.py +0 -0
  792. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/__init__.py +0 -0
  793. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/_google_oauth.py +0 -0
  794. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/attachment_helpers.py +0 -0
  795. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/attachments.py +0 -0
  796. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/browser.py +0 -0
  797. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/claude_agent.py +0 -0
  798. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/coding.py +0 -0
  799. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/compact_context.py +0 -0
  800. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/config_manager.py +0 -0
  801. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/delegate.py +0 -0
  802. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/dynamic_tools.py +0 -0
  803. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/gmail.py +0 -0
  804. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/google_calendar.py +0 -0
  805. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/google_sheets.py +0 -0
  806. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/homeassistant.py +0 -0
  807. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_api.py +0 -0
  808. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_conversation_operations.py +0 -0
  809. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_helpers.py +0 -0
  810. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_message.py +0 -0
  811. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_room.py +0 -0
  812. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/memory.py +0 -0
  813. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/scheduler.py +0 -0
  814. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/self_config.py +0 -0
  815. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/subagents.py +0 -0
  816. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/thread_summary.py +0 -0
  817. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/thread_tags.py +0 -0
  818. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/delivery_gateway.py +0 -0
  819. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/dispatch_handoff.py +0 -0
  820. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/dispatch_source.py +0 -0
  821. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/edit_regenerator.py +0 -0
  822. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/embeddings.py +0 -0
  823. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/entity_resolution.py +0 -0
  824. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/error_handling.py +0 -0
  825. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/execution_preparation.py +0 -0
  826. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/file_watcher.py +0 -0
  827. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/final_delivery.py +0 -0
  828. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/frontend_assets.py +0 -0
  829. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/handled_turns.py +0 -0
  830. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/__init__.py +0 -0
  831. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/compaction.py +0 -0
  832. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/interrupted_replay.py +0 -0
  833. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/policy.py +0 -0
  834. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/runtime.py +0 -0
  835. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/storage.py +0 -0
  836. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/turn_recorder.py +0 -0
  837. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/types.py +0 -0
  838. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/__init__.py +0 -0
  839. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/context.py +0 -0
  840. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/decorators.py +0 -0
  841. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/enrichment.py +0 -0
  842. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/execution.py +0 -0
  843. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/ingress.py +0 -0
  844. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/matrix_admin.py +0 -0
  845. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/registry.py +0 -0
  846. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/sender.py +0 -0
  847. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/state.py +0 -0
  848. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/types.py +0 -0
  849. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/inbound_turn_normalizer.py +0 -0
  850. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/interactive.py +0 -0
  851. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/__init__.py +0 -0
  852. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/availability.py +0 -0
  853. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/chunking.py +0 -0
  854. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/manager.py +0 -0
  855. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/redaction.py +0 -0
  856. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/refresh_runner.py +0 -0
  857. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/refresh_scheduler.py +0 -0
  858. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/registry.py +0 -0
  859. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/status.py +0 -0
  860. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/utils.py +0 -0
  861. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/watch.py +0 -0
  862. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge_refresh_runner.py +0 -0
  863. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/llm_request_logging.py +0 -0
  864. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/logging_config.py +0 -0
  865. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/__init__.py +0 -0
  866. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/avatar.py +0 -0
  867. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/__init__.py +0 -0
  868. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/agent_message_snapshot.py +0 -0
  869. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/event_cache.py +0 -0
  870. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/event_normalization.py +0 -0
  871. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_agent_message_snapshot.py +0 -0
  872. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_event_cache.py +0 -0
  873. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_event_cache_events.py +0 -0
  874. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_event_cache_threads.py +0 -0
  875. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_redaction.py +0 -0
  876. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_agent_message_snapshot.py +0 -0
  877. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_event_cache.py +0 -0
  878. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_event_cache_events.py +0 -0
  879. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_event_cache_threads.py +0 -0
  880. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_cache_helpers.py +0 -0
  881. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_history_result.py +0 -0
  882. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_reads.py +0 -0
  883. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_write_cache_ops.py +0 -0
  884. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_writes.py +0 -0
  885. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/write_coordinator.py +0 -0
  886. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client.py +0 -0
  887. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_delivery.py +0 -0
  888. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_room_admin.py +0 -0
  889. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_session.py +0 -0
  890. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_thread_history.py +0 -0
  891. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_visible_messages.py +0 -0
  892. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/conversation_cache.py +0 -0
  893. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/event_info.py +0 -0
  894. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/health.py +0 -0
  895. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/identity.py +0 -0
  896. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/image_handler.py +0 -0
  897. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/invited_rooms_store.py +0 -0
  898. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/large_messages.py +0 -0
  899. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/media.py +0 -0
  900. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/mentions.py +0 -0
  901. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/message_builder.py +0 -0
  902. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/message_content.py +0 -0
  903. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/presence.py +0 -0
  904. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/provisioning.py +0 -0
  905. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/room_cleanup.py +0 -0
  906. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/rooms.py +0 -0
  907. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/stale_stream_cleanup.py +0 -0
  908. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/state.py +0 -0
  909. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/sync_certification.py +0 -0
  910. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/sync_tokens.py +0 -0
  911. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_bookkeeping.py +0 -0
  912. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_membership.py +0 -0
  913. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_projection.py +0 -0
  914. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_room_scan.py +0 -0
  915. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/typing.py +0 -0
  916. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/users.py +0 -0
  917. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/visible_body.py +0 -0
  918. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix_identifiers.py +0 -0
  919. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/__init__.py +0 -0
  920. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/config.py +0 -0
  921. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/errors.py +0 -0
  922. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/manager.py +0 -0
  923. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/registry.py +0 -0
  924. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/results.py +0 -0
  925. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/toolkit.py +0 -0
  926. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/transports.py +0 -0
  927. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/types.py +0 -0
  928. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/media_fallback.py +0 -0
  929. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/media_inputs.py +0 -0
  930. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/__init__.py +0 -0
  931. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_file_backend.py +0 -0
  932. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_mem0_backend.py +0 -0
  933. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_policy.py +0 -0
  934. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_prompting.py +0 -0
  935. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_shared.py +0 -0
  936. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/auto_flush.py +0 -0
  937. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/config.py +0 -0
  938. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/functions.py +0 -0
  939. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/message_target.py +0 -0
  940. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/model_loading.py +0 -0
  941. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/__init__.py +0 -0
  942. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/config_updates.py +0 -0
  943. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/plugin_watch.py +0 -0
  944. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/rooms.py +0 -0
  945. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/runtime.py +0 -0
  946. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestrator.py +0 -0
  947. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/post_response_effects.py +0 -0
  948. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/py.typed +0 -0
  949. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_attempt.py +0 -0
  950. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_lifecycle.py +0 -0
  951. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_runner.py +0 -0
  952. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_terminal.py +0 -0
  953. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/routing.py +0 -0
  954. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_protocols.py +0 -0
  955. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_resolution.py +0 -0
  956. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_state.py +0 -0
  957. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_support.py +0 -0
  958. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/scheduling.py +0 -0
  959. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/stop.py +0 -0
  960. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/streaming.py +0 -0
  961. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/streaming_delivery.py +0 -0
  962. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/streaming_warmup.py +0 -0
  963. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/team_exact_members.py +0 -0
  964. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/teams.py +0 -0
  965. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/thread_summary.py +0 -0
  966. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/thread_tags.py +0 -0
  967. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/thread_utils.py +0 -0
  968. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/timing.py +0 -0
  969. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/token_budget.py +0 -0
  970. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/__init__.py +0 -0
  971. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/bootstrap.py +0 -0
  972. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/catalog.py +0 -0
  973. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/dependencies.py +0 -0
  974. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/dynamic_toolkits.py +0 -0
  975. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/events.py +0 -0
  976. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/metadata.py +0 -0
  977. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/output_files.py +0 -0
  978. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/plugin_identity.py +0 -0
  979. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/plugin_imports.py +0 -0
  980. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/plugins.py +0 -0
  981. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/registry_state.py +0 -0
  982. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/runtime_context.py +0 -0
  983. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/sandbox_proxy.py +0 -0
  984. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/skills.py +0 -0
  985. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/tool_failures.py +0 -0
  986. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/tool_hooks.py +0 -0
  987. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/worker_routing.py +0 -0
  988. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/__init__.py +0 -0
  989. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/agentql.py +0 -0
  990. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/airflow.py +0 -0
  991. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/apify.py +0 -0
  992. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/arxiv.py +0 -0
  993. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/attachments.py +0 -0
  994. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/aws_lambda.py +0 -0
  995. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/aws_ses.py +0 -0
  996. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/baidusearch.py +0 -0
  997. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/bitbucket.py +0 -0
  998. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/brandfetch.py +0 -0
  999. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/brightdata.py +0 -0
  1000. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/browser.py +0 -0
  1001. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/browserbase.py +0 -0
  1002. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/cal_com.py +0 -0
  1003. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/calculator.py +0 -0
  1004. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/cartesia.py +0 -0
  1005. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/claude_agent.py +0 -0
  1006. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/clickup.py +0 -0
  1007. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/coding.py +0 -0
  1008. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/compact_context.py +0 -0
  1009. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/composio.py +0 -0
  1010. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/config_manager.py +0 -0
  1011. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/confluence.py +0 -0
  1012. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/crawl4ai.py +0 -0
  1013. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/csv.py +0 -0
  1014. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/custom_api.py +0 -0
  1015. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/dalle.py +0 -0
  1016. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/daytona.py +0 -0
  1017. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/delegate.py +0 -0
  1018. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/desi_vocal.py +0 -0
  1019. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/discord.py +0 -0
  1020. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/docker.py +0 -0
  1021. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/duckdb.py +0 -0
  1022. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/duckduckgo.py +0 -0
  1023. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/dynamic_tools.py +0 -0
  1024. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/e2b.py +0 -0
  1025. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/eleven_labs.py +0 -0
  1026. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/email.py +0 -0
  1027. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/exa.py +0 -0
  1028. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/fal.py +0 -0
  1029. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/file.py +0 -0
  1030. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/file_generation.py +0 -0
  1031. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/financial_datasets_api.py +0 -0
  1032. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/firecrawl.py +0 -0
  1033. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/gemini.py +0 -0
  1034. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/giphy.py +0 -0
  1035. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/github.py +0 -0
  1036. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/gmail.py +0 -0
  1037. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_bigquery.py +0 -0
  1038. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_calendar.py +0 -0
  1039. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_maps.py +0 -0
  1040. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_sheets.py +0 -0
  1041. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/googlesearch.py +0 -0
  1042. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/groq.py +0 -0
  1043. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/hackernews.py +0 -0
  1044. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/jina.py +0 -0
  1045. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/jira.py +0 -0
  1046. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/linear.py +0 -0
  1047. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/linkup.py +0 -0
  1048. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/lumalabs.py +0 -0
  1049. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/matrix_api.py +0 -0
  1050. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/matrix_message.py +0 -0
  1051. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/matrix_room.py +0 -0
  1052. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/mem0.py +0 -0
  1053. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/memory.py +0 -0
  1054. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/modelslabs.py +0 -0
  1055. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/moviepy_video_tools.py +0 -0
  1056. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/neo4j.py +0 -0
  1057. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/newspaper4k.py +0 -0
  1058. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/notion.py +0 -0
  1059. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/openai.py +0 -0
  1060. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/openbb.py +0 -0
  1061. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/openweather.py +0 -0
  1062. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/oxylabs.py +0 -0
  1063. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/pandas.py +0 -0
  1064. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/postgres.py +0 -0
  1065. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/pubmed.py +0 -0
  1066. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/python.py +0 -0
  1067. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/reasoning.py +0 -0
  1068. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/reddit.py +0 -0
  1069. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/redshift.py +0 -0
  1070. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/replicate.py +0 -0
  1071. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/resend.py +0 -0
  1072. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/scheduler.py +0 -0
  1073. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/scrapegraph.py +0 -0
  1074. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/searxng.py +0 -0
  1075. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/self_config.py +0 -0
  1076. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/serpapi.py +0 -0
  1077. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/serper.py +0 -0
  1078. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/shopify.py +0 -0
  1079. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/slack.py +0 -0
  1080. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/sleep.py +0 -0
  1081. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/spider.py +0 -0
  1082. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/spotify.py +0 -0
  1083. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/sql.py +0 -0
  1084. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/subagents.py +0 -0
  1085. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/tavily.py +0 -0
  1086. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/telegram.py +0 -0
  1087. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/thread_summary.py +0 -0
  1088. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/thread_tags.py +0 -0
  1089. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/todoist.py +0 -0
  1090. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/trafilatura.py +0 -0
  1091. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/trello.py +0 -0
  1092. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/twilio.py +0 -0
  1093. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/unsplash.py +0 -0
  1094. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/visualization.py +0 -0
  1095. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/web_browser_tools.py +0 -0
  1096. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/webex.py +0 -0
  1097. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/website.py +0 -0
  1098. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/whatsapp.py +0 -0
  1099. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/wikipedia.py +0 -0
  1100. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/x.py +0 -0
  1101. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/yfinance.py +0 -0
  1102. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/youtube.py +0 -0
  1103. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/zendesk.py +0 -0
  1104. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/zep.py +0 -0
  1105. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/zoom.py +0 -0
  1106. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools_metadata.json +0 -0
  1107. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/topic_generator.py +0 -0
  1108. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/turn_controller.py +0 -0
  1109. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/turn_policy.py +0 -0
  1110. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/turn_store.py +0 -0
  1111. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/vendor_telemetry.py +0 -0
  1112. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/vertex_claude_compat.py +0 -0
  1113. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/vertex_claude_prompt_cache.py +0 -0
  1114. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/voice_handler.py +0 -0
  1115. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/__init__.py +0 -0
  1116. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backend.py +0 -0
  1117. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/__init__.py +0 -0
  1118. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/kubernetes.py +0 -0
  1119. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/kubernetes_config.py +0 -0
  1120. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/kubernetes_resources.py +0 -0
  1121. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/local.py +0 -0
  1122. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/static_runner.py +0 -0
  1123. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/manager.py +0 -0
  1124. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/models.py +0 -0
  1125. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/runtime.py +0 -0
  1126. {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workspaces.py +0 -0
  1127. {mindroom-2026.4.332 → mindroom-2026.5.0}/tach.toml +0 -0
  1128. {mindroom-2026.4.332 → mindroom-2026.5.0}/test_plugin/__init__.py +0 -0
  1129. {mindroom-2026.4.332 → mindroom-2026.5.0}/test_plugin/hooks.py +0 -0
  1130. {mindroom-2026.4.332 → mindroom-2026.5.0}/test_plugin/mindroom.plugin.json +0 -0
  1131. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/__init__.py +0 -0
  1132. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/__init__.py +0 -0
  1133. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/conftest.py +0 -0
  1134. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_api.py +0 -0
  1135. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_api_architecture_boundaries.py +0 -0
  1136. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_credentials_api.py +0 -0
  1137. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_file_watcher.py +0 -0
  1138. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_knowledge_api.py +0 -0
  1139. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_matrix_operations.py +0 -0
  1140. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_schedules_api.py +0 -0
  1141. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_skills_api.py +0 -0
  1142. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/conftest.py +0 -0
  1143. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/manual/manual_test_message_sizes.py +0 -0
  1144. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/memory_test_support.py +0 -0
  1145. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_datetime_context.py +0 -0
  1146. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_order_preservation.py +0 -0
  1147. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_policy.py +0 -0
  1148. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_response_logic.py +0 -0
  1149. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_run_context.py +0 -0
  1150. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agents.py +0 -0
  1151. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agno_history.py +0 -0
  1152. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_ai_error_message_display.py +0 -0
  1153. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_ai_user_id.py +0 -0
  1154. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_attachments.py +0 -0
  1155. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_attachments_tool.py +0 -0
  1156. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_authorization.py +0 -0
  1157. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_authorization_config_update.py +0 -0
  1158. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_avatar_generation.py +0 -0
  1159. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_bot_ready_hook.py +0 -0
  1160. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_bot_scheduling.py +0 -0
  1161. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_browser_tool.py +0 -0
  1162. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cancel_mid_wait.py +0 -0
  1163. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cancelled_response_hook.py +0 -0
  1164. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_check_module_privacy.py +0 -0
  1165. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_claude_agent_nightly_soak.py +0 -0
  1166. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_claude_agent_tool.py +0 -0
  1167. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cli.py +0 -0
  1168. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cli_config.py +0 -0
  1169. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cli_connect.py +0 -0
  1170. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_codex_model.py +0 -0
  1171. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_coding_tools.py +0 -0
  1172. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_command_with_emoji.py +0 -0
  1173. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_commands.py +0 -0
  1174. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_compact_context.py +0 -0
  1175. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_compaction.py +0 -0
  1176. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_compress_tool_results.py +0 -0
  1177. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_architecture_boundaries.py +0 -0
  1178. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_commands.py +0 -0
  1179. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_discovery.py +0 -0
  1180. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_manager_consolidated.py +0 -0
  1181. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_reload.py +0 -0
  1182. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_credentials.py +0 -0
  1183. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_credentials_api.py +0 -0
  1184. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_credentials_sync.py +0 -0
  1185. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cron_natural_language.py +0 -0
  1186. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_delegate_tools.py +0 -0
  1187. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dispatch_timing_instrumentation.py +0 -0
  1188. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dm_detection.py +0 -0
  1189. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dm_functionality.py +0 -0
  1190. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dm_room_preservation.py +0 -0
  1191. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dynamic_config_update.py +0 -0
  1192. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dynamic_toolkits.py +0 -0
  1193. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_edit_after_restart.py +0 -0
  1194. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_edit_event_handling.py +0 -0
  1195. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_edit_response_regeneration.py +0 -0
  1196. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_embeddings.py +0 -0
  1197. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_entity_resolution.py +0 -0
  1198. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_error_handling.py +0 -0
  1199. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_error_handling_in_callbacks.py +0 -0
  1200. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_cache.py +0 -0
  1201. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_cache_backends.py +0 -0
  1202. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_driven_scheduling.py +0 -0
  1203. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_relations.py +0 -0
  1204. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_execution_preparation.py +0 -0
  1205. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_extra_kwargs.py +0 -0
  1206. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_final_delivery.py +0 -0
  1207. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_gemini_integration.py +0 -0
  1208. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_google_tool_wrappers.py +0 -0
  1209. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_handled_turns.py +0 -0
  1210. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hatch_build.py +0 -0
  1211. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_helm_instance_worker_isolation.py +0 -0
  1212. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_homeassistant_tools.py +0 -0
  1213. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_enrichment.py +0 -0
  1214. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_execution.py +0 -0
  1215. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_ingress.py +0 -0
  1216. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_matrix_admin.py +0 -0
  1217. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_registry.py +0 -0
  1218. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_room_state.py +0 -0
  1219. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_schedule.py +0 -0
  1220. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_sender.py +0 -0
  1221. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_image_handler.py +0 -0
  1222. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_init.py +0 -0
  1223. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_interactive.py +0 -0
  1224. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_interactive_thread_fix.py +0 -0
  1225. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_interrupted_replay.py +0 -0
  1226. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_issue_176_real_thread_parallelism.py +0 -0
  1227. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_knowledge_manager.py +0 -0
  1228. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_kubernetes_worker_backend.py +0 -0
  1229. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_large_messages.py +0 -0
  1230. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_large_messages_integration.py +0 -0
  1231. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_live_message_coalescing.py +0 -0
  1232. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_llm_request_logging.py +0 -0
  1233. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_local_instance_deploy.py +0 -0
  1234. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_local_mindroom_provisioning_service.py +0 -0
  1235. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_logging_config.py +0 -0
  1236. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_markdown_to_html.py +0 -0
  1237. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_agent_manager.py +0 -0
  1238. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_api_tool.py +0 -0
  1239. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_cache_agent_message_snapshot.py +0 -0
  1240. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_identity.py +0 -0
  1241. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_message_docs.py +0 -0
  1242. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_message_tool.py +0 -0
  1243. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_room_access.py +0 -0
  1244. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_room_tool.py +0 -0
  1245. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_spaces.py +0 -0
  1246. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_state_cache.py +0 -0
  1247. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_sync_tokens.py +0 -0
  1248. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_thread_domain.py +0 -0
  1249. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_config.py +0 -0
  1250. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_integration_fake_server.py +0 -0
  1251. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_manager.py +0 -0
  1252. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_orchestrator.py +0 -0
  1253. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_registry.py +0 -0
  1254. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_results.py +0 -0
  1255. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_toolkit.py +0 -0
  1256. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_transports.py +0 -0
  1257. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_auto_flush.py +0 -0
  1258. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_config.py +0 -0
  1259. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_facade.py +0 -0
  1260. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_file_backend.py +0 -0
  1261. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_integration.py +0 -0
  1262. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_mem0_backend.py +0 -0
  1263. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_policy.py +0 -0
  1264. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_tools.py +0 -0
  1265. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mention_exclusion.py +0 -0
  1266. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mentions.py +0 -0
  1267. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_message_builder.py +0 -0
  1268. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_message_content.py +0 -0
  1269. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mock_tests.py +0 -0
  1270. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_multi_agent_bot.py +0 -0
  1271. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_multi_agent_e2e.py +0 -0
  1272. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_multiple_edits.py +0 -0
  1273. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_openai_compat.py +0 -0
  1274. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_partial_reply_context.py +0 -0
  1275. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_plugins.py +0 -0
  1276. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_preformed_team_routing.py +0 -0
  1277. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_presence.py +0 -0
  1278. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_presence_based_streaming.py +0 -0
  1279. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_prompt_cache_review.py +0 -0
  1280. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_python_tools.py +0 -0
  1281. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_queued_message_notify.py +0 -0
  1282. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_response_attempt.py +0 -0
  1283. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_response_terminal.py +0 -0
  1284. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_response_tracking_regression.py +0 -0
  1285. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_restore_dedup.py +0 -0
  1286. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_room_invites.py +0 -0
  1287. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_router_configured_agents.py +0 -0
  1288. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_router_rooms.py +0 -0
  1289. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_routing.py +0 -0
  1290. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_routing_integration.py +0 -0
  1291. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_routing_regression.py +0 -0
  1292. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_schedule_agent_validation.py +0 -0
  1293. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_scheduled_task_restoration.py +0 -0
  1294. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_scheduler_tool.py +0 -0
  1295. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_scheduling.py +0 -0
  1296. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_self_config.py +0 -0
  1297. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_send_file_message.py +0 -0
  1298. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_shell_async.py +0 -0
  1299. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_shell_cancel.py +0 -0
  1300. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_skills.py +0 -0
  1301. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_skip_mentions.py +0 -0
  1302. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_smoke_mindroom_stack.py +0 -0
  1303. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_stale_stream_cleanup.py +0 -0
  1304. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_stop_emoji_reuse.py +0 -0
  1305. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_behavior.py +0 -0
  1306. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_e2e.py +0 -0
  1307. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_edits.py +0 -0
  1308. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_finalize.py +0 -0
  1309. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_subagents.py +0 -0
  1310. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_sync_certification.py +0 -0
  1311. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_sync_task_cancellation.py +0 -0
  1312. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_system_enrich.py +0 -0
  1313. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tach_split_matrix_client_boundaries.py +0 -0
  1314. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_take_screenshot.py +0 -0
  1315. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_collaboration.py +0 -0
  1316. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_coordination.py +0 -0
  1317. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_extraction.py +0 -0
  1318. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_invitations.py +0 -0
  1319. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_media_fallback.py +0 -0
  1320. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_mode_decision.py +0 -0
  1321. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_room_updates.py +0 -0
  1322. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_scheduler_context.py +0 -0
  1323. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_history.py +0 -0
  1324. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_mode.py +0 -0
  1325. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_snooze_plugin.py +0 -0
  1326. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_summary.py +0 -0
  1327. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_summary_tool.py +0 -0
  1328. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_tags.py +0 -0
  1329. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_tags_tool.py +0 -0
  1330. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_threading_error.py +0 -0
  1331. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_timezone_scheduling.py +0 -0
  1332. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_timing.py +0 -0
  1333. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_config_sync.py +0 -0
  1334. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_dependencies.py +0 -0
  1335. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_events.py +0 -0
  1336. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_failures.py +0 -0
  1337. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_hooks.py +0 -0
  1338. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_output_files.py +0 -0
  1339. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_system_facade_boundaries.py +0 -0
  1340. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tools_metadata.py +0 -0
  1341. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_turn_controller.py +0 -0
  1342. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_turn_store.py +0 -0
  1343. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_unknown_command.py +0 -0
  1344. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_unknown_command_response.py +0 -0
  1345. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_agent_mentions.py +0 -0
  1346. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_bot_threading.py +0 -0
  1347. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_command_processing.py +0 -0
  1348. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_handler.py +0 -0
  1349. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_handler_thread.py +0 -0
  1350. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_worker_progress_routing.py +0 -0
  1351. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_worker_runtime.py +0 -0
  1352. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_workflow_scheduling.py +0 -0
  1353. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_workloop_thread_scope.py +0 -0
  1354. {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_workspace_env_hook.py +0 -0
  1355. {mindroom-2026.4.332 → mindroom-2026.5.0}/uv.lock +0 -0
  1356. {mindroom-2026.4.332 → mindroom-2026.5.0}/zensical.toml +0 -0
@@ -8,6 +8,7 @@ import subprocess
8
8
  import tempfile
9
9
  import tomllib
10
10
  from dataclasses import dataclass
11
+ from itertools import pairwise
11
12
  from pathlib import Path
12
13
  from typing import Any
13
14
 
@@ -153,13 +154,66 @@ def _copy_main_outputs(site_dir: Path) -> None:
153
154
  shutil.copyfile(source, REFERENCES_DIR / filename)
154
155
 
155
156
 
156
- def _flatten_page_references(site_dir: Path) -> dict[str, str]:
157
+ def _strip_frontmatter(text: str) -> str:
158
+ if not text.startswith("---\n"):
159
+ return text
160
+
161
+ _, separator, rest = text[4:].partition("\n---\n")
162
+ return rest if separator else text
163
+
164
+
165
+ def _source_paragraph_lines(source_text: str) -> list[list[str]]:
166
+ paragraphs: list[list[str]] = []
167
+ current: list[str] = []
168
+ in_code = False
169
+
170
+ for line in _strip_frontmatter(source_text).splitlines():
171
+ stripped = line.strip()
172
+ if stripped.startswith("```"):
173
+ in_code = not in_code
174
+
175
+ starts_block = (
176
+ in_code
177
+ or not stripped
178
+ or line.startswith((" ", "\t"))
179
+ or stripped.startswith(("#", "-", "*", "|", ">", "```", "===", "!!!"))
180
+ or stripped[0].isdigit()
181
+ )
182
+ if starts_block:
183
+ if current:
184
+ paragraphs.append(current)
185
+ current = []
186
+ continue
187
+
188
+ current.append(stripped)
189
+
190
+ if current:
191
+ paragraphs.append(current)
192
+
193
+ return paragraphs
194
+
195
+
196
+ def _restore_source_line_breaks(rendered_text: str, source_text: str) -> str:
197
+ for paragraph in _source_paragraph_lines(source_text):
198
+ for left, right in pairwise(paragraph):
199
+ rendered_text = rendered_text.replace(f"{left} {right}", f"{left}\n{right}")
200
+
201
+ return rendered_text
202
+
203
+
204
+ def _flatten_page_references(site_dir: Path, nav_pages: list[NavPage]) -> dict[str, str]:
157
205
  built_to_reference: dict[str, str] = {}
158
- for source in sorted(site_dir.rglob("*.md")):
159
- relative = source.relative_to(site_dir).as_posix()
160
- reference_name = f"page__{relative.replace('/', '__')}"
161
- shutil.copyfile(source, REFERENCES_DIR / reference_name)
162
- built_to_reference[relative] = reference_name
206
+ for page in nav_pages:
207
+ generated = site_dir / page.built_path
208
+ assert generated.exists(), f"Expected generated page: {generated}"
209
+ source_path = DOCS_DIR / page.source_path
210
+ assert source_path.exists(), f"Expected docs source page: {source_path}"
211
+ reference_name = f"page__{page.built_path.replace('/', '__')}"
212
+ rendered_text = generated.read_text(encoding="utf-8")
213
+ source_text = source_path.read_text(encoding="utf-8")
214
+ restored_text = _restore_source_line_breaks(rendered_text, source_text)
215
+ (REFERENCES_DIR / reference_name).write_text(restored_text, encoding="utf-8")
216
+ built_to_reference[page.built_path] = reference_name
163
217
  return built_to_reference
164
218
 
165
219
 
@@ -206,7 +260,7 @@ def main() -> None:
206
260
 
207
261
  _clear_reference_dir()
208
262
  _copy_main_outputs(generated_site_dir)
209
- built_to_reference = _flatten_page_references(generated_site_dir)
263
+ built_to_reference = _flatten_page_references(generated_site_dir, nav_pages)
210
264
  _write_reference_index(nav_pages, built_to_reference)
211
265
 
212
266
  CACHE_PATH.parent.mkdir(parents=True, exist_ok=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mindroom
3
- Version: 2026.4.332
3
+ Version: 2026.5.0
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
@@ -85,6 +85,7 @@ For worker-routed agents, prefer `get_attachment("att_...", mindroom_output_path
85
85
  `mindroom_output_path` must be a file path relative to the agent workspace.
86
86
  It must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion.
87
87
  When the save succeeds, the response includes `mindroom_tool_output` with `status: "saved_to_file"`, `path`, byte count, `format: "binary"`, and `sha256`.
88
+ In worker-routed shell and python tools, that workspace is also exposed as `~`, `$HOME`, and `$MINDROOM_AGENT_WORKSPACE`, so `incoming/file.ext` and `~/incoming/file.ext` refer to the same saved file.
88
89
 
89
90
  `attachment_ids` accepts only context attachment IDs (`att_*`).
90
91
  `attachment_file_paths` accepts local file paths and auto-registers them in the current context before sending.
@@ -344,7 +344,8 @@ Isolation depends on the worker backend:
344
344
 
345
345
  Use `user_agent` if you need per-agent filesystem isolation.
346
346
 
347
- For per-workspace env that an agent can edit (PATH, npm/pip cache locations, etc.), drop a `.mindroom/worker-env.sh` script in the agent workspace; MindRoom sources it before each worker-routed `shell` or `python` request.
347
+ For per-workspace env that an agent can edit (PATH, package indexes, npm cache locations, etc.), drop a `.mindroom/worker-env.sh` script in the agent workspace; MindRoom sources it before each worker-routed `shell` or `python` request.
348
+ MindRoom-owned workspace identity, cache, and virtualenv env names are reasserted after the hook, so hooks cannot redirect `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, or `VIRTUAL_ENV`.
348
349
  With `worker_scope: user`, the same runtime can move between several agent workspaces, and the hook is discovered from the current request's workspace — different agents get different overlays automatically.
349
350
  See [Workspace env hook](../deployment/sandbox-proxy.md#workspace-env-hook-mindroomworker-envsh) for filename, filtering, and failure semantics.
350
351
 
@@ -168,7 +168,8 @@ Important behavior and constraints:
168
168
  - `google_vertex_adc` is intentionally unsupported for dedicated workers because workers do not receive ADC files or `GOOGLE_APPLICATION_CREDENTIALS`; keep Vertex ADC usage in the primary runtime.
169
169
  - Dedicated worker runtime env stays deny-by-default for provider and arbitrary `.env` values, while basic runtime plumbing such as `PATH`, `VIRTUAL_ENV`, and linker vars is set separately.
170
170
  - This matches the broader sandbox-proxy contract for `python` and `shell`: proxied execution is intentionally stricter than direct local execution and does not inherit ordinary runtime `.env` or provider env by default.
171
- - For agent-editable per-workspace env (extra PATH entries, npm/pip cache dirs, etc.), use the request-time `.mindroom/worker-env.sh` overlay documented in [Sandbox Proxy Isolation](sandbox-proxy.md#workspace-env-hook-mindroomworker-envsh). The overlay is sourced inside the running worker per request, so it does not change the worker Deployment, the startup manifest, the pod-template hash, or any Helm value, and does not require a worker restart when edited.
171
+ - For agent-editable per-workspace env (extra PATH entries, package indexes, npm cache dirs, etc.), use the request-time `.mindroom/worker-env.sh` overlay documented in [Sandbox Proxy Isolation](sandbox-proxy.md#workspace-env-hook-mindroomworker-envsh). The overlay is sourced inside the running worker per request, so it does not change the worker Deployment, the startup manifest, the pod-template hash, or any Helm value, and does not require a worker restart when edited.
172
+ - MindRoom-owned workspace identity, cache, and virtualenv env names remain controlled by the worker runtime and cannot be redirected by `.mindroom/worker-env.sh`: `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, and `VIRTUAL_ENV`.
172
173
  - Worker-local caches may still live under `kubernetesWorkerStorageSubpathPrefix/<worker-dir>/`.
173
174
 
174
175
  ### Storage Requirements
@@ -266,11 +266,24 @@ Use `check_shell_command(handle)` to poll and `kill_shell_command(handle)` to st
266
266
  These handles are process-local to the sandbox runner: they survive multiple requests to the same runner process, but not runner restarts.
267
267
  To make that work, shell background-handle requests stay owned by the long-lived runner process even when `MINDROOM_SANDBOX_RUNNER_EXECUTION_MODE=subprocess`.
268
268
 
269
+ ## Workspace home contract
270
+
271
+ For worker-routed shell or python requests with a resolved workspace, MindRoom sets `HOME` and `MINDROOM_AGENT_WORKSPACE` to that workspace before running the tool.
272
+ This includes agent-routed calls, worker-keyed calls whose prepared runtime has a `base_dir`, and unkeyed static-sidecar calls with an explicit absolute `base_dir` override.
273
+ It also sets `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, and `XDG_STATE_HOME` under that workspace.
274
+ Workspace identity variables and worker cache variables are owned by MindRoom for the request.
275
+ `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, and `XDG_STATE_HOME` stay under the workspace.
276
+ `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, and `PYTHONPYCACHEPREFIX` stay under the worker cache directory when a worker root exists.
277
+ `VIRTUAL_ENV` is preserved from the active worker environment and is not pointed at the agent workspace.
278
+ MindRoom reasserts these owned variables after request env passthrough and after `.mindroom/worker-env.sh`, so hooks can read them but cannot redirect them.
279
+ The practical contract is that `pwd`, `~`, `Path.home()`, attachment `mindroom_output_path` saves, and file/coding relative paths all refer to the same workspace.
280
+ For example, after `get_attachment("att_...", mindroom_output_path="incoming/file.txt")`, worker-routed shell can read both `incoming/file.txt` and `~/incoming/file.txt`.
281
+
269
282
  ## Workspace env hook (`.mindroom/worker-env.sh`)
270
283
 
271
284
  Agents can drop a shell script at `<workspace>/.mindroom/worker-env.sh` to set custom env for worker-routed tool calls without changing config or redeploying.
272
285
 
273
- The runner sources this script with `bash` before each worker-routed `shell` or `python` request, then merges its exported env into the tool's execution environment.
286
+ The runner sources this script with `bash` after applying the workspace home contract and before each worker-routed `shell` or `python` request, then merges its exported env into the tool's execution environment.
274
287
 
275
288
  **Discovery:**
276
289
 
@@ -292,7 +305,7 @@ The runner sources this script with `bash` before each worker-routed `shell` or
292
305
  `.mindroom/worker-env.sh` is sourced by bash that inherits the runner's process env, which contains tokens the runner needs to function (sandbox proxy auth, etc.).
293
306
  To prevent the runner from leaking its own control-plane credentials to tools, the overlay drops names in a small explicit denylist (`MINDROOM_API_KEY`, `MINDROOM_LOCAL_CLIENT_SECRET`, `MINDROOM_SANDBOX_PROXY_TOKEN`, `MINDROOM_SANDBOX_STARTUP_MANIFEST_PATH`) and any name starting with `MINDROOM_SANDBOX_`.
294
307
  Bash bookkeeping vars (`PWD`, `OLDPWD`, `SHLVL`, `_`, `PIPESTATUS`) are also dropped because they're noise, not values the script meant to export.
295
- Everything else passes through, including service tokens and provider credentials you intentionally export from the hook.
308
+ After MindRoom-owned env names are reasserted, other exported values pass through, including service tokens and provider credentials you intentionally export from the hook.
296
309
  If you don't want a value to reach tools, don't export it.
297
310
 
298
311
  **Limits and failure handling:**
@@ -181,7 +181,9 @@ kill_shell_command("shell:abcd1234")
181
181
  - In authored YAML, `extra_env_passthrough` and `shell_path_prepend` can be written as lists, and MindRoom normalizes them to the tool's comma-or-newline form.
182
182
  - Background handles survive multiple requests to the same long-lived runner process, but they do not survive runner restarts.
183
183
  - `shell_path_prepend` deduplicates PATH entries and only changes subprocess PATH, not the main MindRoom process PATH.
184
- - For per-workspace env that an agent can edit on the fly (PATH prefixes, `NPM_CONFIG_PREFIX`, `PIP_INDEX_URL`, etc.), drop a `.mindroom/worker-env.sh` script in the workspace and `export` the values you want — see "Workspace env hook" in `docs/deployment/sandbox-proxy.md`. Example:
184
+ - For per-workspace env that an agent can edit on the fly (PATH prefixes, `NPM_CONFIG_PREFIX`, `NPM_CONFIG_CACHE`, `PIP_INDEX_URL`, etc.), drop a `.mindroom/worker-env.sh` script in the workspace and `export` the values you want — see "Workspace env hook" in `docs/deployment/sandbox-proxy.md`.
185
+ - MindRoom-owned env names are reasserted after the hook and cannot be redirected from `.mindroom/worker-env.sh`: `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, and `VIRTUAL_ENV`.
186
+ - Example:
185
187
 
186
188
  ```bash
187
189
  mkdir -p .mindroom .local/bin .cache/npm
@@ -237,7 +239,8 @@ list_files()
237
239
  - `restrict_to_base_dir` only constrains the file helper paths, not what arbitrary Python code can do once executed.
238
240
  - `safe_globals` and `safe_locals` are exposed directly from the upstream constructor and are mainly useful for advanced programmatic wiring, not typical hand-written YAML.
239
241
  - If you need runtime-scoped environment isolation, rely on worker-routed execution instead of assuming in-process Python emulation is a security boundary.
240
- - Worker-routed `python` execution also receives `.mindroom/worker-env.sh` overlay env via `os.environ` (e.g., `PIP_INDEX_URL`, `UV_CACHE_DIR`). See "Workspace env hook" in `docs/deployment/sandbox-proxy.md`.
242
+ - Worker-routed `python` execution also receives `.mindroom/worker-env.sh` overlay env via `os.environ` (e.g., `PIP_INDEX_URL`). See "Workspace env hook" in `docs/deployment/sandbox-proxy.md`.
243
+ - Workspace identity, worker cache, and virtualenv env names remain controlled by MindRoom, so hooks cannot redirect `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, or `VIRTUAL_ENV`.
241
244
 
242
245
  ## [`coding`]
243
246
 
@@ -225,6 +225,7 @@ matrix_api(
225
225
  `get_attachment()` returns a single attachment record, including the runtime-local path, when called with only an attachment ID.
226
226
  `get_attachment(attachment_id, mindroom_output_path="relative/path")` saves the attachment bytes into the agent workspace and returns a `mindroom_tool_output` save receipt with the saved path, byte count, binary format, and SHA256 digest.
227
227
  Use `mindroom_output_path` before handing attachments to worker-routed workspace tools such as `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace.
228
+ In worker-routed shell and python tools, the agent workspace is also `~`, `$HOME`, and `$MINDROOM_AGENT_WORKSPACE`, so a saved path like `incoming/file.txt` can also be read as `~/incoming/file.txt`.
228
229
  The path must be relative to the workspace and must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion.
229
230
  `register_attachment()` turns a local file path into a new context-scoped `att_*` ID and appends that ID to the current runtime context so later tool calls in the same run can reuse it.
230
231
  Attachment records include kind, filename, MIME type, room ID, thread ID, sender, creation time, and an `available` flag that reports whether the local file still exists.
@@ -1517,7 +1517,7 @@ Isolation depends on the worker backend:
1517
1517
 
1518
1518
  Use `user_agent` if you need per-agent filesystem isolation.
1519
1519
 
1520
- For per-workspace env that an agent can edit (PATH, npm/pip cache locations, etc.), drop a `.mindroom/worker-env.sh` script in the agent workspace; MindRoom sources it before each worker-routed `shell` or `python` request. With `worker_scope: user`, the same runtime can move between several agent workspaces, and the hook is discovered from the current request's workspace — different agents get different overlays automatically. See [Workspace env hook](https://docs.mindroom.chat/deployment/sandbox-proxy/#workspace-env-hook-mindroomworker-envsh) for filename, filtering, and failure semantics.
1520
+ For per-workspace env that an agent can edit (PATH, package indexes, npm cache locations, etc.), drop a `.mindroom/worker-env.sh` script in the agent workspace; MindRoom sources it before each worker-routed `shell` or `python` request. MindRoom-owned workspace identity, cache, and virtualenv env names are reasserted after the hook, so hooks cannot redirect `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, or `VIRTUAL_ENV`. With `worker_scope: user`, the same runtime can move between several agent workspaces, and the hook is discovered from the current request's workspace — different agents get different overlays automatically. See [Workspace env hook](https://docs.mindroom.chat/deployment/sandbox-proxy/#workspace-env-hook-mindroomworker-envsh) for filename, filtering, and failure semantics.
1521
1521
 
1522
1522
  ### Where Agent Data Lives
1523
1523
 
@@ -2484,7 +2484,9 @@ kill_shell_command("shell:abcd1234")
2484
2484
  - In authored YAML, `extra_env_passthrough` and `shell_path_prepend` can be written as lists, and MindRoom normalizes them to the tool's comma-or-newline form.
2485
2485
  - Background handles survive multiple requests to the same long-lived runner process, but they do not survive runner restarts.
2486
2486
  - `shell_path_prepend` deduplicates PATH entries and only changes subprocess PATH, not the main MindRoom process PATH.
2487
- - For per-workspace env that an agent can edit on the fly (PATH prefixes, `NPM_CONFIG_PREFIX`, `PIP_INDEX_URL`, etc.), drop a `.mindroom/worker-env.sh` script in the workspace and `export` the values you want — see "Workspace env hook" in `docs/deployment/sandbox-proxy.md`. Example:
2487
+ - For per-workspace env that an agent can edit on the fly (PATH prefixes, `NPM_CONFIG_PREFIX`, `NPM_CONFIG_CACHE`, `PIP_INDEX_URL`, etc.), drop a `.mindroom/worker-env.sh` script in the workspace and `export` the values you want — see "Workspace env hook" in `docs/deployment/sandbox-proxy.md`.
2488
+ - MindRoom-owned env names are reasserted after the hook and cannot be redirected from `.mindroom/worker-env.sh`: `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, and `VIRTUAL_ENV`.
2489
+ - Example:
2488
2490
 
2489
2491
  ```
2490
2492
  mkdir -p .mindroom .local/bin .cache/npm
@@ -2536,7 +2538,8 @@ list_files()
2536
2538
  - `restrict_to_base_dir` only constrains the file helper paths, not what arbitrary Python code can do once executed.
2537
2539
  - `safe_globals` and `safe_locals` are exposed directly from the upstream constructor and are mainly useful for advanced programmatic wiring, not typical hand-written YAML.
2538
2540
  - If you need runtime-scoped environment isolation, rely on worker-routed execution instead of assuming in-process Python emulation is a security boundary.
2539
- - Worker-routed `python` execution also receives `.mindroom/worker-env.sh` overlay env via `os.environ` (e.g., `PIP_INDEX_URL`, `UV_CACHE_DIR`). See "Workspace env hook" in `docs/deployment/sandbox-proxy.md`.
2541
+ - Worker-routed `python` execution also receives `.mindroom/worker-env.sh` overlay env via `os.environ` (e.g., `PIP_INDEX_URL`). See "Workspace env hook" in `docs/deployment/sandbox-proxy.md`.
2542
+ - Workspace identity, worker cache, and virtualenv env names remain controlled by MindRoom, so hooks cannot redirect `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, or `VIRTUAL_ENV`.
2540
2543
 
2541
2544
  ## \[`coding`\]
2542
2545
 
@@ -5646,7 +5649,7 @@ matrix_api(
5646
5649
 
5647
5650
  ### What It Does
5648
5651
 
5649
- `attachments` exposes `list_attachments()`, `get_attachment()`, and `register_attachment()`. `list_attachments()` returns the attachment IDs currently available in tool runtime context, the resolved metadata payloads, and any `missing_attachment_ids`. `get_attachment()` returns a single attachment record, including the runtime-local path, when called with only an attachment ID. `get_attachment(attachment_id, mindroom_output_path="relative/path")` saves the attachment bytes into the agent workspace and returns a `mindroom_tool_output` save receipt with the saved path, byte count, binary format, and SHA256 digest. Use `mindroom_output_path` before handing attachments to worker-routed workspace tools such as `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace. The path must be relative to the workspace and must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion. `register_attachment()` turns a local file path into a new context-scoped `att_*` ID and appends that ID to the current runtime context so later tool calls in the same run can reuse it. Attachment records include kind, filename, MIME type, room ID, thread ID, sender, creation time, and an `available` flag that reports whether the local file still exists. This tool does not send files by itself, but its IDs can be passed to `matrix_message` for `send`, `reply`, or `thread-reply`.
5652
+ `attachments` exposes `list_attachments()`, `get_attachment()`, and `register_attachment()`. `list_attachments()` returns the attachment IDs currently available in tool runtime context, the resolved metadata payloads, and any `missing_attachment_ids`. `get_attachment()` returns a single attachment record, including the runtime-local path, when called with only an attachment ID. `get_attachment(attachment_id, mindroom_output_path="relative/path")` saves the attachment bytes into the agent workspace and returns a `mindroom_tool_output` save receipt with the saved path, byte count, binary format, and SHA256 digest. Use `mindroom_output_path` before handing attachments to worker-routed workspace tools such as `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace. In worker-routed shell and python tools, the agent workspace is also `~`, `$HOME`, and `$MINDROOM_AGENT_WORKSPACE`, so a saved path like `incoming/file.txt` can also be read as `~/incoming/file.txt`. The path must be relative to the workspace and must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion. `register_attachment()` turns a local file path into a new context-scoped `att_*` ID and appends that ID to the current runtime context so later tool calls in the same run can reuse it. Attachment records include kind, filename, MIME type, room ID, thread ID, sender, creation time, and an `available` flag that reports whether the local file still exists. This tool does not send files by itself, but its IDs can be passed to `matrix_message` for `send`, `reply`, or `thread-reply`.
5650
5653
 
5651
5654
  ### Configuration
5652
5655
 
@@ -9591,7 +9594,7 @@ agents:
9591
9594
  | `get_attachment(attachment_id, mindroom_output_path?)` | Return one context attachment record, or save its bytes to a workspace-relative path and return a save receipt |
9592
9595
  | `register_attachment(file_path)` | Register a local file path as a context attachment ID (`att_*`) |
9593
9596
 
9594
- When `mindroom_output_path` is omitted, `get_attachment()` returns the attachment metadata response, including the runtime-local `local_path`. For worker-routed agents, prefer `get_attachment("att_...", mindroom_output_path="incoming/file.ext")` before processing an attachment with `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace. `mindroom_output_path` must be a file path relative to the agent workspace. It must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion. When the save succeeds, the response includes `mindroom_tool_output` with `status: "saved_to_file"`, `path`, byte count, `format: "binary"`, and `sha256`.
9597
+ When `mindroom_output_path` is omitted, `get_attachment()` returns the attachment metadata response, including the runtime-local `local_path`. For worker-routed agents, prefer `get_attachment("att_...", mindroom_output_path="incoming/file.ext")` before processing an attachment with `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace. `mindroom_output_path` must be a file path relative to the agent workspace. It must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion. When the save succeeds, the response includes `mindroom_tool_output` with `status: "saved_to_file"`, `path`, byte count, `format: "binary"`, and `sha256`. In worker-routed shell and python tools, that workspace is also exposed as `~`, `$HOME`, and `$MINDROOM_AGENT_WORKSPACE`, so `incoming/file.ext` and `~/incoming/file.ext` refer to the same saved file.
9595
9598
 
9596
9599
  `attachment_ids` accepts only context attachment IDs (`att_*`). `attachment_file_paths` accepts local file paths and auto-registers them in the current context before sending. Use `matrix_message(action="send"|"reply"|"thread-reply", attachment_ids=..., attachment_file_paths=...)` to send attachments.
9597
9600
 
@@ -12110,11 +12113,15 @@ If proxied shell commands need extra PATH entries such as wrapper directories, c
12110
12113
 
12111
12114
  Shell commands that exceed their timeout return a background handle. Use `check_shell_command(handle)` to poll and `kill_shell_command(handle)` to stop the process. These handles are process-local to the sandbox runner: they survive multiple requests to the same runner process, but not runner restarts. To make that work, shell background-handle requests stay owned by the long-lived runner process even when `MINDROOM_SANDBOX_RUNNER_EXECUTION_MODE=subprocess`.
12112
12115
 
12116
+ ## Workspace home contract
12117
+
12118
+ For worker-routed shell or python requests with a resolved workspace, MindRoom sets `HOME` and `MINDROOM_AGENT_WORKSPACE` to that workspace before running the tool. This includes agent-routed calls, worker-keyed calls whose prepared runtime has a `base_dir`, and unkeyed static-sidecar calls with an explicit absolute `base_dir` override. It also sets `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, and `XDG_STATE_HOME` under that workspace. Workspace identity variables and worker cache variables are owned by MindRoom for the request. `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, and `XDG_STATE_HOME` stay under the workspace. `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, and `PYTHONPYCACHEPREFIX` stay under the worker cache directory when a worker root exists. `VIRTUAL_ENV` is preserved from the active worker environment and is not pointed at the agent workspace. MindRoom reasserts these owned variables after request env passthrough and after `.mindroom/worker-env.sh`, so hooks can read them but cannot redirect them. The practical contract is that `pwd`, `~`, `Path.home()`, attachment `mindroom_output_path` saves, and file/coding relative paths all refer to the same workspace. For example, after `get_attachment("att_...", mindroom_output_path="incoming/file.txt")`, worker-routed shell can read both `incoming/file.txt` and `~/incoming/file.txt`.
12119
+
12113
12120
  ## Workspace env hook (`.mindroom/worker-env.sh`)
12114
12121
 
12115
12122
  Agents can drop a shell script at `<workspace>/.mindroom/worker-env.sh` to set custom env for worker-routed tool calls without changing config or redeploying.
12116
12123
 
12117
- The runner sources this script with `bash` before each worker-routed `shell` or `python` request, then merges its exported env into the tool's execution environment.
12124
+ The runner sources this script with `bash` after applying the workspace home contract and before each worker-routed `shell` or `python` request, then merges its exported env into the tool's execution environment.
12118
12125
 
12119
12126
  **Discovery:**
12120
12127
 
@@ -12133,7 +12140,7 @@ The runner sources this script with `bash` before each worker-routed `shell` or
12133
12140
 
12134
12141
  **Filtering:**
12135
12142
 
12136
- `.mindroom/worker-env.sh` is sourced by bash that inherits the runner's process env, which contains tokens the runner needs to function (sandbox proxy auth, etc.). To prevent the runner from leaking its own control-plane credentials to tools, the overlay drops names in a small explicit denylist (`MINDROOM_API_KEY`, `MINDROOM_LOCAL_CLIENT_SECRET`, `MINDROOM_SANDBOX_PROXY_TOKEN`, `MINDROOM_SANDBOX_STARTUP_MANIFEST_PATH`) and any name starting with `MINDROOM_SANDBOX_`. Bash bookkeeping vars (`PWD`, `OLDPWD`, `SHLVL`, `_`, `PIPESTATUS`) are also dropped because they're noise, not values the script meant to export. Everything else passes through, including service tokens and provider credentials you intentionally export from the hook. If you don't want a value to reach tools, don't export it.
12143
+ `.mindroom/worker-env.sh` is sourced by bash that inherits the runner's process env, which contains tokens the runner needs to function (sandbox proxy auth, etc.). To prevent the runner from leaking its own control-plane credentials to tools, the overlay drops names in a small explicit denylist (`MINDROOM_API_KEY`, `MINDROOM_LOCAL_CLIENT_SECRET`, `MINDROOM_SANDBOX_PROXY_TOKEN`, `MINDROOM_SANDBOX_STARTUP_MANIFEST_PATH`) and any name starting with `MINDROOM_SANDBOX_`. Bash bookkeeping vars (`PWD`, `OLDPWD`, `SHLVL`, `_`, `PIPESTATUS`) are also dropped because they're noise, not values the script meant to export. After MindRoom-owned env names are reasserted, other exported values pass through, including service tokens and provider credentials you intentionally export from the hook. If you don't want a value to reach tools, don't export it.
12137
12144
 
12138
12145
  **Limits and failure handling:**
12139
12146
 
@@ -12414,7 +12421,8 @@ Important behavior and constraints:
12414
12421
  - `google_vertex_adc` is intentionally unsupported for dedicated workers because workers do not receive ADC files or `GOOGLE_APPLICATION_CREDENTIALS`; keep Vertex ADC usage in the primary runtime.
12415
12422
  - Dedicated worker runtime env stays deny-by-default for provider and arbitrary `.env` values, while basic runtime plumbing such as `PATH`, `VIRTUAL_ENV`, and linker vars is set separately.
12416
12423
  - This matches the broader sandbox-proxy contract for `python` and `shell`: proxied execution is intentionally stricter than direct local execution and does not inherit ordinary runtime `.env` or provider env by default.
12417
- - For agent-editable per-workspace env (extra PATH entries, npm/pip cache dirs, etc.), use the request-time `.mindroom/worker-env.sh` overlay documented in [Sandbox Proxy Isolation](https://docs.mindroom.chat/deployment/sandbox-proxy/#workspace-env-hook-mindroomworker-envsh). The overlay is sourced inside the running worker per request, so it does not change the worker Deployment, the startup manifest, the pod-template hash, or any Helm value, and does not require a worker restart when edited.
12424
+ - For agent-editable per-workspace env (extra PATH entries, package indexes, npm cache dirs, etc.), use the request-time `.mindroom/worker-env.sh` overlay documented in [Sandbox Proxy Isolation](https://docs.mindroom.chat/deployment/sandbox-proxy/#workspace-env-hook-mindroomworker-envsh). The overlay is sourced inside the running worker per request, so it does not change the worker Deployment, the startup manifest, the pod-template hash, or any Helm value, and does not require a worker restart when edited.
12425
+ - MindRoom-owned workspace identity, cache, and virtualenv env names remain controlled by the worker runtime and cannot be redirected by `.mindroom/worker-env.sh`: `HOME`, `MINDROOM_AGENT_WORKSPACE`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`, `PIP_CACHE_DIR`, `UV_CACHE_DIR`, `PYTHONPYCACHEPREFIX`, and `VIRTUAL_ENV`.
12418
12426
  - Worker-local caches may still live under `kubernetesWorkerStorageSubpathPrefix/<worker-dir>/`.
12419
12427
 
12420
12428
  ### Storage Requirements
@@ -44,7 +44,10 @@ Rooms are auto-created via `_ensure_room_exists()` (private) and `ensure_all_roo
44
44
 
45
45
  MindRoom emits thread replies following [MSC3440](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3440-threading-via-relations.md), using `m.relates_to` with `rel_type: m.thread`.
46
46
 
47
- Explicit `m.thread` metadata remains the primary source of thread conversation context. For clients or bridges that send plain replies without thread metadata (`m.in_reply_to` but no `rel_type: m.thread`), MindRoom applies a transitive compatibility rule. If a reply chain eventually reaches explicit thread `T` or a proven thread root, MindRoom treats the new reply as part of `T`. Replies that never reach threaded context stay room-level.
47
+ Explicit `m.thread` metadata remains the primary source of thread conversation context.
48
+ For clients or bridges that send plain replies without thread metadata (`m.in_reply_to` but no `rel_type: m.thread`), MindRoom applies a transitive compatibility rule.
49
+ If a reply chain eventually reaches explicit thread `T` or a proven thread root, MindRoom treats the new reply as part of `T`.
50
+ Replies that never reach threaded context stay room-level.
48
51
 
49
52
  ### Resolution Rules
50
53
 
@@ -129,11 +132,16 @@ Messages exceeding the 64KB Matrix event limit are automatically handled by `pre
129
132
 
130
133
  ## Response Tracking
131
134
 
132
- MindRoom prevents duplicate responses using a `ResponseTracker` that records which events have already been processed. When a sync reconnection or retry delivers the same event twice, the tracker suppresses the duplicate so only one agent response is sent per triggering message. Tracking state is persisted under `mindroom_data/tracking/` and survives restarts.
135
+ MindRoom prevents duplicate responses using a `ResponseTracker` that records which events have already been processed.
136
+ When a sync reconnection or retry delivers the same event twice, the tracker suppresses the duplicate so only one agent response is sent per triggering message.
137
+ Tracking state is persisted under `mindroom_data/tracking/` and survives restarts.
133
138
 
134
139
  ## Room Cleanup
135
140
 
136
- On startup, MindRoom detects orphaned bot memberships left over from a previous configuration. When an agent is removed from `config.yaml`, its Matrix bot account may still be a member of rooms it previously joined. The cleanup process leaves those rooms safely without ejecting currently configured entities from their required rooms. This runs automatically — no manual intervention is needed.
141
+ On startup, MindRoom detects orphaned bot memberships left over from a previous configuration.
142
+ When an agent is removed from `config.yaml`, its Matrix bot account may still be a member of rooms it previously joined.
143
+ The cleanup process leaves those rooms safely without ejecting currently configured entities from their required rooms.
144
+ This runs automatically — no manual intervention is needed.
137
145
 
138
146
  ## Identity Management
139
147
 
@@ -162,7 +170,8 @@ matrix_space:
162
170
  name: MindRoom # Display name for the Space
163
171
  ```
164
172
 
165
- When enabled, `ensure_root_space()` creates the Space on first boot (or resolves an existing one by alias), links all managed rooms as children, and sets the Space avatar from workspace or bundled assets. The Space name is reconciled on each startup to match the configured value.
173
+ When enabled, `ensure_root_space()` creates the Space on first boot (or resolves an existing one by alias), links all managed rooms as children, and sets the Space avatar from workspace or bundled assets.
174
+ The Space name is reconciled on each startup to match the configured value.
166
175
 
167
176
  ## Configuration
168
177
 
@@ -119,7 +119,8 @@ Event callbacks are wrapped in `_create_task_wrapper()` to run as background tas
119
119
  1. Check for team formation or individual response
120
120
  1. Generate response and store memory
121
121
 
122
- **Message edits**: When a user edits a message that already received an agent response, the agent regenerates its response for the updated content. The agent edits its own previous reply in place rather than sending a new message. Edits from other agents are ignored, and the feature requires that the original response event ID is tracked by the `ResponseTracker`.
122
+ **Message edits**: When a user edits a message that already received an agent response, the agent regenerates its response for the updated content. The agent edits its own previous reply in place rather than sending a new message.
123
+ Edits from other agents are ignored, and the feature requires that the original response event ID is tracked by the `ResponseTracker`.
123
124
 
124
125
  **`_on_media_message`**: Handles media events (images, videos, files, and audio). Downloads and decrypts media data, then processes it through the agent. When no agent is mentioned, AI routing is used to select the appropriate agent, similar to text messages.
125
126
 
@@ -1,6 +1,7 @@
1
1
  # Attachments
2
2
 
3
- MindRoom can process files, images, audio, and videos sent to Matrix rooms, passing them to agents for analysis or action. Supported attachment kinds: `audio`, `file`, `image`, `video`.
3
+ MindRoom can process files, images, audio, and videos sent to Matrix rooms, passing them to agents for analysis or action.
4
+ Supported attachment kinds: `audio`, `file`, `image`, `video`.
4
5
 
5
6
  ## Overview
6
7
 
@@ -41,13 +42,15 @@ Attachments work in both direct messages and threads, and with both individual a
41
42
 
42
43
  ## Attachment IDs
43
44
 
44
- Each uploaded file or video is assigned a stable attachment ID (e.g., `att_abc123`). The agent's prompt is augmented with the available IDs:
45
+ Each uploaded file or video is assigned a stable attachment ID (e.g., `att_abc123`).
46
+ The agent's prompt is augmented with the available IDs:
45
47
 
46
48
  ```
47
49
  Available attachment IDs: att_abc123. Use tool calls to inspect or process them.
48
50
  ```
49
51
 
50
- Attachment IDs are **context-scoped** -- an attachment registered in one room or thread is not accessible from another. This prevents cross-room data leakage for ID-based access. Voice raw-audio fallback uses the same attachment ID mechanism; see [Voice Fallback](https://docs.mindroom.chat/voice/#voice-fallback-no-stt-available).
52
+ Attachment IDs are **context-scoped** -- an attachment registered in one room or thread is not accessible from another.
53
+ This prevents cross-room data leakage for ID-based access. Voice raw-audio fallback uses the same attachment ID mechanism; see [Voice Fallback](https://docs.mindroom.chat/voice/#voice-fallback-no-stt-available).
51
54
 
52
55
  ## The `attachments` Tool
53
56
 
@@ -72,17 +75,26 @@ agents:
72
75
  | `get_attachment(attachment_id, mindroom_output_path?)` | Return one context attachment record, or save its bytes to a workspace-relative path and return a save receipt |
73
76
  | `register_attachment(file_path)` | Register a local file path as a context attachment ID (`att_*`) |
74
77
 
75
- When `mindroom_output_path` is omitted, `get_attachment()` returns the attachment metadata response, including the runtime-local `local_path`. For worker-routed agents, prefer `get_attachment("att_...", mindroom_output_path="incoming/file.ext")` before processing an attachment with `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace. `mindroom_output_path` must be a file path relative to the agent workspace. It must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion. When the save succeeds, the response includes `mindroom_tool_output` with `status: "saved_to_file"`, `path`, byte count, `format: "binary"`, and `sha256`.
78
+ When `mindroom_output_path` is omitted, `get_attachment()` returns the attachment metadata response, including the runtime-local `local_path`.
79
+ For worker-routed agents, prefer `get_attachment("att_...", mindroom_output_path="incoming/file.ext")` before processing an attachment with `file`, `coding`, `python`, or `shell`, because the runtime-local path may not exist inside the worker workspace.
80
+ `mindroom_output_path` must be a file path relative to the agent workspace.
81
+ It must not be empty, absolute, point at the workspace root, contain `..` or NUL bytes, or use environment or user expansion.
82
+ When the save succeeds, the response includes `mindroom_tool_output` with `status: "saved_to_file"`, `path`, byte count, `format: "binary"`, and `sha256`.
83
+ In worker-routed shell and python tools, that workspace is also exposed as `~`, `$HOME`, and `$MINDROOM_AGENT_WORKSPACE`, so `incoming/file.ext` and `~/incoming/file.ext` refer to the same saved file.
76
84
 
77
- `attachment_ids` accepts only context attachment IDs (`att_*`). `attachment_file_paths` accepts local file paths and auto-registers them in the current context before sending. Use `matrix_message(action="send"|"reply"|"thread-reply", attachment_ids=..., attachment_file_paths=...)` to send attachments.
85
+ `attachment_ids` accepts only context attachment IDs (`att_*`).
86
+ `attachment_file_paths` accepts local file paths and auto-registers them in the current context before sending.
87
+ Use `matrix_message(action="send"|"reply"|"thread-reply", attachment_ids=..., attachment_file_paths=...)` to send attachments.
78
88
 
79
89
  ### Why use this tool?
80
90
 
81
- Not all AI models support direct file inputs. The `attachments` tool lets any model work with files by calling tools that operate on attachment IDs, even if the model itself cannot ingest the raw bytes.
91
+ Not all AI models support direct file inputs.
92
+ The `attachments` tool lets any model work with files by calling tools that operate on attachment IDs, even if the model itself cannot ingest the raw bytes.
82
93
 
83
94
  ## Encryption
84
95
 
85
- Both unencrypted and E2E encrypted files and videos are supported. Encrypted media is decrypted transparently using the key material from the Matrix event.
96
+ Both unencrypted and E2E encrypted files and videos are supported.
97
+ Encrypted media is decrypted transparently using the key material from the Matrix event.
86
98
 
87
99
  ## Caching
88
100
 
@@ -90,7 +102,8 @@ AI response caching is automatically skipped when files, images, audio, or video
90
102
 
91
103
  ## Retention
92
104
 
93
- MindRoom automatically prunes attachment metadata and managed `incoming_media/` files older than 30 days. Pruning runs opportunistically during new attachment registration.
105
+ MindRoom automatically prunes attachment metadata and managed `incoming_media/` files older than 30 days.
106
+ Pruning runs opportunistically during new attachment registration.
94
107
 
95
108
  ## Limitations
96
109
 
@@ -1,6 +1,7 @@
1
1
  # Chat Commands
2
2
 
3
- MindRoom provides chat commands that users can type in any Matrix room where MindRoom agents are present. Commands start with `!` and are handled by the router agent.
3
+ MindRoom provides chat commands that users can type in any Matrix room where MindRoom agents are present.
4
+ Commands start with `!` and are handled by the router agent.
4
5
 
5
6
  ## Quick Reference
6
7
 
@@ -17,15 +18,19 @@ MindRoom provides chat commands that users can type in any Matrix room where Min
17
18
 
18
19
  ## Who Handles Commands
19
20
 
20
- The **router** handles all commands exclusively. Even in single-agent rooms, commands are always processed by the router, not the agent. Commands work in both main room messages and within threads.
21
+ The **router** handles all commands exclusively.
22
+ Even in single-agent rooms, commands are always processed by the router, not the agent.
23
+ Commands work in both main room messages and within threads.
21
24
 
22
25
  Voice messages that contain commands (e.g., spoken `!schedule`) are recognized after transcription and processed the same way.
23
26
 
24
27
  ## Permission Behavior
25
28
 
26
- Commands are subject to the same authorization rules as normal messages. The sender must be authorized to interact with agents in the room (via `global_users`, `room_permissions`, or `default_room_access`). See [Authorization](https://docs.mindroom.chat/authorization/index.md) for details.
29
+ Commands are subject to the same authorization rules as normal messages.
30
+ The sender must be authorized to interact with agents in the room (via `global_users`, `room_permissions`, or `default_room_access`). See [Authorization](https://docs.mindroom.chat/authorization/index.md) for details.
27
31
 
28
- For `!config set`, only the user who requested the change can confirm or cancel it via reactions. Pending config changes expire after 24 hours.
32
+ For `!config set`, only the user who requested the change can confirm or cancel it via reactions.
33
+ Pending config changes expire after 24 hours.
29
34
 
30
35
  ## Commands
31
36
 
@@ -53,7 +58,8 @@ Show the welcome message for the current room, listing available agents, their r
53
58
 
54
59
  ### `!schedule`
55
60
 
56
- Schedule a one-time or recurring task using natural language. Tasks run in the thread where they were created.
61
+ Schedule a one-time or recurring task using natural language.
62
+ Tasks run in the thread where they were created.
57
63
 
58
64
  ```
59
65
  !schedule <natural-language-request>
@@ -76,14 +82,16 @@ Schedule a one-time or recurring task using natural language. Tasks run in the t
76
82
 
77
83
  **Conditional workflows (polling-based):**
78
84
 
79
- Conditional requests are converted to recurring cron-based polling schedules. These are periodic checks, not real event subscriptions.
85
+ Conditional requests are converted to recurring cron-based polling schedules.
86
+ These are periodic checks, not real event subscriptions.
80
87
 
81
88
  ```
82
89
  !schedule If I get an email about "urgent", @phone_agent call me
83
90
  !schedule When Bitcoin drops below $40k, @crypto_agent notify me
84
91
  ```
85
92
 
86
- Include `@agent_name` in your schedule to target specific agents. The scheduler validates that mentioned agents are available in the room before creating the task.
93
+ Include `@agent_name` in your schedule to target specific agents.
94
+ The scheduler validates that mentioned agents are available in the room before creating the task.
87
95
 
88
96
  Schedules use the timezone from `config.yaml` (defaults to UTC). See [Scheduling](https://docs.mindroom.chat/scheduling/index.md) for full details.
89
97
 
@@ -118,13 +126,15 @@ Replace an existing scheduled task with new timing and content.
118
126
  !edit_schedule <task-id> <new-task-description>
119
127
  ```
120
128
 
121
- The task description is re-parsed to update timing and content. Schedule type cannot be changed (one-time to recurring or vice versa) -- cancel and recreate instead.
129
+ The task description is re-parsed to update timing and content.
130
+ Schedule type cannot be changed (one-time to recurring or vice versa) -- cancel and recreate instead.
122
131
 
123
132
  **Aliases:** `!editschedule`, `!edit-schedule`
124
133
 
125
134
  ### `!config`
126
135
 
127
- View and modify MindRoom configuration from chat. Changes are validated against the Pydantic config schema before applying.
136
+ View and modify MindRoom configuration from chat.
137
+ Changes are validated against the Pydantic config schema before applying.
128
138
 
129
139
  **View configuration:**
130
140
 
@@ -159,7 +169,9 @@ When you use `!config set`, MindRoom:
159
169
  1. Adds reaction buttons to the preview message
160
170
  1. Waits for the requester to react with ✅ (confirm) or ❌ (cancel)
161
171
 
162
- Only the user who requested the change can confirm or cancel it. Pending changes are persisted in Matrix room state and survive restarts. Unconfirmed changes expire after 24 hours.
172
+ Only the user who requested the change can confirm or cancel it.
173
+ Pending changes are persisted in Matrix room state and survive restarts.
174
+ Unconfirmed changes expire after 24 hours.
163
175
 
164
176
  Changes are saved to `config.yaml` immediately on confirmation and take effect for new agent interactions.
165
177
 
@@ -185,9 +197,12 @@ Plugins are also auto-reloaded on file save, typically about 1-2 seconds after s
185
197
 
186
198
  MindRoom supports cancelling in-progress responses via a reaction-based stop button, not a chat command.
187
199
 
188
- When `defaults.show_stop_button` is `true` (the default), MindRoom adds a 🛑 reaction to the agent's message while it is generating. React with 🛑 on the message to cancel the response. The agent finalizes the partial text with `**[Response cancelled by user]**`.
200
+ When `defaults.show_stop_button` is `true` (the default), MindRoom adds a 🛑 reaction to the agent's message while it is generating.
201
+ React with 🛑 on the message to cancel the response.
202
+ The agent finalizes the partial text with `**[Response cancelled by user]**`.
189
203
 
190
- The stop button only works on messages currently being generated. Only non-agent users can trigger cancellation — agent reactions are ignored.
204
+ The stop button only works on messages currently being generated.
205
+ Only non-agent users can trigger cancellation — agent reactions are ignored.
191
206
 
192
207
  See [Streaming — Cancellation](https://docs.mindroom.chat/streaming/#cancellation-and-errors) for details on how cancelled responses are finalized.
193
208
 
@@ -105,7 +105,11 @@ Generate and sync managed avatar assets.
105
105
 
106
106
  ## avatars generate
107
107
 
108
- Generate missing managed avatar files in the workspace. In a source checkout, generated files are written under `./avatars/`. In containerized deployments, generated overrides are written under the persistent MindRoom storage path. Existing managed files are skipped by default. Use `--force` to overwrite them after changing avatar prompts or styles.
108
+ Generate missing managed avatar files in the workspace.
109
+ In a source checkout, generated files are written under `./avatars/`.
110
+ In containerized deployments, generated overrides are written under the persistent MindRoom storage path.
111
+ Existing managed files are skipped by default.
112
+ Use `--force` to overwrite them after changing avatar prompts or styles.
109
113
 
110
114
  ```
111
115
  Usage: root avatars generate [OPTIONS]
@@ -120,7 +124,9 @@ Generate missing managed avatar files in the workspace. In a source checkout, ge
120
124
 
121
125
  ## avatars sync
122
126
 
123
- Sync configured room and root-space avatars to Matrix using the initialized router account. Existing Matrix avatars are skipped by default. Use `--force` to replace them.
127
+ Sync configured room and root-space avatars to Matrix using the initialized router account.
128
+ Existing Matrix avatars are skipped by default.
129
+ Use `--force` to replace them.
124
130
 
125
131
  ```
126
132
  Usage: root avatars sync [OPTIONS]
@@ -161,7 +167,8 @@ Runs a series of checks in one pass:
161
167
 
162
168
  ## config
163
169
 
164
- Manage MindRoom configuration files. The `config` subgroup contains commands for creating, viewing, editing, and validating your `config.yaml`.
170
+ Manage MindRoom configuration files.
171
+ The `config` subgroup contains commands for creating, viewing, editing, and validating your `config.yaml`.
165
172
 
166
173
  ```
167
174
  Usage: root config [OPTIONS] COMMAND [ARGS]...
@@ -211,7 +218,10 @@ mindroom config init --profile public-vertexai-anthropic
211
218
  mindroom config init --force
212
219
  ```
213
220
 
214
- The `public-codex` profile and `--provider codex` preset generate `provider: codex` with `id: gpt-5.5` and `context_window: 258000`. They set `extra_kwargs.reasoning_effort: medium`. Prompt caching is enabled automatically per active agent session; leave `prompt_cache_key` unset unless you intentionally want to override the derived key. Run `codex login` first so MindRoom can read `~/.codex/auth.json`.
221
+ The `public-codex` profile and `--provider codex` preset generate `provider: codex` with `id: gpt-5.5` and `context_window: 258000`.
222
+ They set `extra_kwargs.reasoning_effort: medium`.
223
+ Prompt caching is enabled automatically per active agent session; leave `prompt_cache_key` unset unless you intentionally want to override the derived key.
224
+ Run `codex login` first so MindRoom can read `~/.codex/auth.json`.
215
225
 
216
226
  ### config show
217
227
 
@@ -230,7 +240,8 @@ mindroom config show --path /custom/path/config.yaml
230
240
 
231
241
  ### config edit
232
242
 
233
- Open `config.yaml` in your default editor. Editor preference: `$EDITOR` → `$VISUAL` → `nano` → `vim` → `vi`.
243
+ Open `config.yaml` in your default editor.
244
+ Editor preference: `$EDITOR` → `$VISUAL` → `nano` → `vim` → `vi`.
234
245
 
235
246
  ```
236
247
  mindroom config edit
@@ -238,7 +249,9 @@ mindroom config edit
238
249
 
239
250
  ### config validate
240
251
 
241
- Validate `config.yaml` and check for common issues. Parses the YAML config using Pydantic and reports errors in a friendly format. Also checks whether required API keys are set as environment variables.
252
+ Validate `config.yaml` and check for common issues.
253
+ Parses the YAML config using Pydantic and reports errors in a friendly format.
254
+ Also checks whether required API keys are set as environment variables.
242
255
 
243
256
  ```
244
257
  mindroom config validate