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.
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/scripts/generate_skill_references.py +61 -7
- {mindroom-2026.4.332 → mindroom-2026.5.0}/PKG-INFO +1 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/attachments.md +1 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/agents.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/kubernetes.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/sandbox-proxy.md +15 -2
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/execution-and-coding.md +5 -2
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/matrix-and-attachments.md +1 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/llms-full.txt +16 -8
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__architecture__matrix__index.md +13 -4
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__architecture__orchestration__index.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__attachments__index.md +21 -8
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__chat-commands__index.md +27 -12
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__cli__index.md +19 -6
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__agents__index.md +89 -25
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__index.md +10 -3
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__models__index.md +30 -3
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__router__index.md +7 -2
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__teams__index.md +5 -2
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__dashboard__index.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__docker__index.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__google-services-oauth__index.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__hosted-matrix__index.md +8 -4
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__index.md +5 -2
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__kubernetes__index.md +17 -5
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__sandbox-proxy__index.md +80 -21
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__getting-started__index.md +9 -4
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__images__index.md +9 -4
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__interactive__index.md +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__knowledge__index.md +41 -10
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__matrix-space__index.md +6 -3
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__memory__index.md +30 -8
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__openai-api__index.md +22 -9
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__openclaw__index.md +11 -3
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__plugins__index.md +43 -16
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__scheduling__index.md +10 -2
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__skills__index.md +11 -4
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__streaming__index.md +25 -10
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__agent-orchestration__index.md +67 -9
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__ai-and-generation__index.md +59 -13
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__automation-and-platforms__index.md +50 -9
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__calendar-and-scheduling__index.md +23 -5
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__data-and-databases__index.md +60 -14
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__execution-and-coding__index.md +72 -14
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__index.md +28 -7
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__location-commerce-and-home__index.md +30 -6
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__matrix-and-attachments__index.md +57 -8
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__media-and-content__index.md +41 -8
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__memory-and-storage__index.md +30 -5
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__messaging-and-social__index.md +61 -14
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__project-management__index.md +46 -12
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__research-sources__index.md +19 -6
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__web-scraping-and-browser__index.md +96 -17
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__web-search__index.md +51 -11
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__voice__index.md +33 -9
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_prompts.py +2 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_runner.py +199 -20
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/constants.py +19 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/shell.py +27 -1
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_sandbox_runner_api.py +796 -11
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_sandbox_proxy.py +61 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/agent-cli-dev/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/agent-cli-dev/examples.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/agent-cli-tmux-supervision/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/code-debate/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/docs-review/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/duplication-audit/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/agents/openai.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/references/core-mindroom.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/live-test/references/frontend-and-platform.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.agents/skills/pr-review/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.dockerignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.env.example +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.envrc +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.gitattributes +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/renovate.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/scripts/check_tool_extras_sync.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/build-mindroom.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/build-platform.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/calver-auto-release.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/docs.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/markdown-code-runner.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/publish-helm-charts.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/pytest.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/release.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/security-scan.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/smoke-stacks.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.github/workflows/tach.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.pre-commit-config.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/.python-version +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/AGENTS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/CLAUDE.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/LICENSE +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/PLAN.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/analyst.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/code.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/general.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/research.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/agents/summary.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/avatars/spaces/root_space.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/cert-manager/cluster-issuer-prod.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/cert-manager/cluster-issuer-staging.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/Chart.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/default-config.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/_helpers.tpl +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/configmap-mindroom.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/configmap-synapse.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/deployment-mindroom.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/deployment-synapse.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/ingress.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/networkpolicy.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/pvc.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/rbac-worker-manager.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/secret-api-keys.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/service.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/templates/serviceaccount-worker-manager.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/instance/values.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/.env.example +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/build_load_images.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/down.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/install_platform.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/kind-config-smoke.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/kind-config.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/setup-local-access.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/shell.nix +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/smoke_instance.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/start-fresh.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/test-access.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/up.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/kind/validate.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/Chart.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/all.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/apex-redirect.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/ingress.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/templates/rbac.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/values-prod.example.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/values-staging.example.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/platform/values.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/Chart.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/NOTES.txt +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/_helpers.tpl +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/configmap.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/deployment.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/event-cache-postgres.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/networkpolicy.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/pdb.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/pvc.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/rbac.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/secret.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/service.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/serviceaccount.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/templates/validate.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/k8s/runtime/values.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/cleanup-duplicate-subscriptions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/db/backup_supabase.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/db/setup-stripe-products.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/list-instances.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/mindroom-cli.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/setup-stripe-webhooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/setup-terraform-state.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/sync-stripe-prices.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/update-api-keys.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/validate_multitenancy_security.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/scripts/view-instance-logs.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/cert-manager.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/dns.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/hcloud-microos-snapshots.pkr.hcl +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/helm.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/kube.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-prod.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/manifests/cert-manager/cluster-issuer-staging.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/modules/dns/dns.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/platform-cert.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/providers-porkbun.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/build_snapshots.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/destroy.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/status.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/scripts/up.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/supabase-auth.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/terraform.tfvars.example +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/cluster/terraform/terraform-k8s/variables.tf +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/config.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/bot-runtime.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/matrix.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/architecture/orchestration.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/assets/logo.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/authorization.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/chat-commands.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/cli.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/cultures.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/models.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/router.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/teams.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/configuration/toolkits.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dashboard.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/bridges/index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/bridges/telegram.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/docker.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/google-services-oauth.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/google-services-user-oauth.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/hosted-matrix.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/deployment/index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/2026-04-15-mindroom-architecture-boundaries.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/2026-04-15-narrow-tach-rollout-plan.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/TESTING.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/agent_configuration.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/live-test-validation-summary-2026-03-19.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/openclaw-feature-parity-plan.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/per-user-matrix-space-plan.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/pitches.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/runtime-path-architecture-refactor-prompt.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/shared-agent-private-instance-goal.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/archive/skills-planning.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/exhaustive-live-test-checklist.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/agents/configfield-specialist.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/agents/testing-specialist.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/coding-agent-playbook.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/commands/commit.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/commands/init.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/general-agent-guides/commands/remove-cruft.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/mindroom-memory-consolidation-auto-flush-plan.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/ops/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/persistent-worker-runtime-plan.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_ACTION_PLAN.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_CRITICAL_FIXES.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_EXECUTIVE_SUMMARY.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_01_AUTH.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_02_MULTITENANCY.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_03_SECRETS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_04_INJECTION.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_05_TOKENS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_06_INFRASTRUCTURE.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_07_DATA_PROTECTION.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_08_DEPENDENCIES.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_09_ERROR_HANDLING.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_10_API_SECURITY.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_11_MONITORING.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_12_FRONTEND.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_CHECKLIST.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_FINDINGS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/dev/security/SECURITY_REVIEW_SUMMARY.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/getting-started.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/hooks.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/images.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/interactive.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/knowledge.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/matrix-space.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/mcp.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/memory.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/openai-api.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/openclaw.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/plugins.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/privacy.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/run_markdown_code_runner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/scheduling.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/skills.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/streaming.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/support.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/terms.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/agent-orchestration.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/ai-and-generation.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/automation-and-platforms.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/builtin.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/calendar-and-scheduling.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/data-and-databases.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/dynamic-toolkits.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/location-commerce-and-home.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/mcp.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/media-and-content.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/memory-and-storage.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/messaging-and-social.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/project-management.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/research-sources.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/web-scraping-and-browser.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/tools/web-search.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/docs/voice.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/.eslintrc.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/.prettierignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/.prettierrc +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/SCREENSHOT_INSTRUCTIONS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/bun.lock +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/index.html +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/chat-mockup.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/generate-mockup-from-json.cjs +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-conversations.cjs +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-cross-org.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-cross-platform.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/mockups/readme-multi-agent.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/package.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/postcss.config.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/favicon.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo-square.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo-text.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/logo.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/public/widget.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/scripts/generate-icon-imports.cjs +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/scripts/screenshot.cjs +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/App.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/App.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/AgentEditor.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/AgentEditor.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/ToolConfigPanel.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentEditor/ToolConfigPanel.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentList/AgentList.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/AgentList/AgentList.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Credentials/Credentials.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Credentials/Credentials.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureEditor/CultureEditor.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureEditor/CultureEditor.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureList/CultureList.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/CultureList/CultureList.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Dashboard/Dashboard.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Dashboard/Dashboard.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Dashboard/NetworkGraph.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/GoogleIntegration/GoogleIntegration.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/HomeAssistantIntegration/HomeAssistantIntegration.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/HomeAssistantIntegration/HomeAssistantIntegration.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/EnhancedConfigDialog.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/EnhancedConfigDialog.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/Integrations.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/Integrations.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/iconMapping.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/google/google.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/google/index.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/homeassistant/homeassistant.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/homeassistant/index.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/index.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/spotify/index.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/spotify/spotify.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Integrations/integrations/types/index.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Knowledge/Knowledge.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Knowledge/Knowledge.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/MemoryConfig/MemoryConfig.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/MemoryConfig/MemoryConfig.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ModelConfig.extra_kwargs.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ModelConfig.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ModelConfig.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ModelConfig/ProviderLogos.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomEditor/RoomEditor.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomEditor/RoomEditor.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomList/RoomList.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/RoomList/RoomList.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Schedules/Schedules.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/Skills/Skills.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/SyncStatus/SyncStatus.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamEditor/TeamEditor.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamEditor/TeamEditor.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamList/TeamList.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/TeamList/TeamList.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ThemeToggle/ThemeToggle.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ToolConfig/ToolConfigDialog.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ToolConfig/ToolConfigDialog.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/UnconfiguredRooms/UnconfiguredRooms.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/UnconfiguredRooms/UnconfiguredRooms.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/UnconfiguredRooms/index.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/VoiceConfig/VoiceConfig.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/VoiceConfig/VoiceConfig.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/CheckboxListField.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/EditorPanel.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/EmptyState.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/FieldGroup.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/FilterSelector.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/HistoryContextSection.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/ItemCard.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/ListPanel.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/ListPanel.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/index.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/shared/styles.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/alert.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/badge.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/button.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/card.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/checkbox.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/dialog.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/input.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/label.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/scroll-area.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/select.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/separator.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/skeleton.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/tabs.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/textarea.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/toaster.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/toggle-group.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/tooltip.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/components/ui/use-toast.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/contexts/ThemeContext.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useFetchData.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useFetchData.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useScopedConfigValidation.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useSkills.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useSwipeBack.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/hooks/useTools.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/index.css +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/api.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/configValidation.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/configValidation.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/providers.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/providers.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/toolEntry.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/toolEntry.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/lib/utils.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/main.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/services/configService.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/services/scheduleService.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/services/skillsService.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/store/configStore.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/store/configStore.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/styles/animations.css +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/styles/tokens.css +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/test/setup.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/config.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/schedule.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/skills.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/toolConfig.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/types/toolConfig.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/src/vite-env.d.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/tailwind.config.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/take_screenshot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/tsconfig.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/tsconfig.node.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/vite.config.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/frontend/vitest.config.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/hatch_build.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/justfile +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/.dockerignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/.dockerignore.backend +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/BRIDGE_MANAGER.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/Dockerfile.mindroom +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/Dockerfile.mindroom-minimal +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/README-DOCKER.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/bridge.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/default-deploy.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/deploy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.authelia.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.synapse.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.tuwunel.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.wellknown.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/docker-compose.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/authelia/configuration.yml.j2 +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/authelia/users_database.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/docker-compose.email.j2 +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/docker-compose.slack.j2 +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/bridges/docker-compose.telegram.j2 +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/synapse/entrypoint.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/synapse/homeserver.yaml.j2 +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/synapse/log.config +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/instances/deploy/templates/tuwunel/tuwunel.toml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/entrypoint.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/homeserver.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/log.config +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker/synapse/log.minimal.config +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/local/matrix/docker-compose.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/plugins/thread-snooze/hooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/plugins/thread-snooze/mindroom.plugin.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/plugins/thread-snooze/tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/pyproject.toml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/run-backend.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/run-frontend.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/run-nix.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/run-sandbox-runner.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/run-tests.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/.dockerignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/.env.example +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/API_ENDPOINT_MAPPING.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/COMPONENTS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/Dockerfile.platform-backend +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/Dockerfile.platform-frontend +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/LICENSE +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/deploy.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/docker-compose.yml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/docs/authentication.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/.python-version +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/pyproject.toml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/auth_monitor.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/db_utils.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/deps.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/k8s.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/metrics.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/middleware/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/middleware/audit_logging.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/models.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/pricing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/process.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/accounts.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/admin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/gdpr.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/health.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/instances.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/pricing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/provisioner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/sso.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/stripe_routes.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/subscriptions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/usage.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/routes/webhooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/tasks/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/tasks/cleanup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/tasks/usage_metrics.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/audit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/log_sanitizer.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/backend/utils/logger.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/src/main.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/conftest.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/stripe_mock.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_accounts.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin_account_deletion.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin_allowlist.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_admin_rate_limit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_auth_monitor.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_bearer_token_parsing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_cors_headers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_deps.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_gdpr.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_instances.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_log_sanitizer.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_metrics_endpoint.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_multitenancy_security.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_pricing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_auth.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_extended.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_rate_limit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_provisioner_real.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_rate_limit_sso.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_request_size_limit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_security_headers_and_hosts.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_sso_cookie_attrs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_stripe_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_stripe_routes.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_stripe_utils.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_subscriptions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_usage.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_usage_metrics.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_user_rate_limit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_webhook_rate_limit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/tests/test_webhooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-backend/uv.lock +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/bun.lock +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/jest.config.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/jest.setup.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/middleware.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/next.config.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/package.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/postcss.config.mjs +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/file.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/globe.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/logo-text.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/logo.png +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/logo.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/next.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/vercel.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/public/window.svg +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/runtime-config-shared.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/shell.nix +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/accounts/[id]/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/accounts/__tests__/page.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/accounts/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/audit-logs/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/instances/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/layout.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/subscriptions/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/admin/usage/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/api/csp-report/route.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/callback/route.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/complete/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/login/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/auth/signup/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/billing/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/billing/upgrade/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/instance/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/layout.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/edge-cases.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/settings/__tests__/page.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/settings/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/support/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/dashboard/usage/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/favicon.ico +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/globals.css +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/layout.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/privacy/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/app/terms/page.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/DarkModeToggle.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/LaunchButton.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/MindRoomLogo.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/admin/AdminLayout.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/admin/InstanceActions.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/admin/__tests__/InstanceActions.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/auth/__tests__/auth-wrapper.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/auth/auth-wrapper.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/DashboardLoader.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/Header.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/InstanceCard.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/QuickActions.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/Sidebar.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/UsageChart.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.simple.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/dashboard/__tests__/InstanceCard.test.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/CTA.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Collaboration.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Features.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Hero.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/HowItWorks.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Pricing.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Stats.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/Testimonials.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/landing/WhyItMatters.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/ui/AnimatedSection.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/ui/Card.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/components/ui/button.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useAuth.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useDarkMode.tsx +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useInstance.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useSubscription.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/hooks/useUsage.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/__tests__/api.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/__tests__/instance-lifecycle.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/__tests__/runtime-config.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/api.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/auth/admin.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/cache.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/constants.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/logger.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/pricing-config.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/runtime-config.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/stripe/client.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/supabase/client.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/supabase/server.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/lib/supabase/types.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/src/styles/buttons.css +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/take_screenshot.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tests/admin.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tests/e2e.test.ts +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tests/test-instance-control.js +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/platform-frontend/tsconfig.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/pricing-config.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/redeploy-mindroom.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/supabase/.gitignore +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/saas-platform/supabase/migrations/000_consolidated_complete_schema.sql +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/README.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/apply-rotated-keys.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/check_module_privacy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/check_schema_usage.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/clean-git-history.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/local_mindroom_provisioning_service.nix +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/local_mindroom_provisioning_service.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/rotate-api-keys.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/smoke_helpers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/smoke_mindroom_stack.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/smoke_platform_images.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/supabase_exec_sql.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/sync_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/benchmark_matrix_throughput.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/prompt_cache_review.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/testing/tool_auto_install_smoke.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/check_git_secrets.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/cleanup_agent_edits.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/cleanup_agent_edits.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/cleanup_agent_edits_docker.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/forward-ports.sh +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/rewrite_git_commits_ai.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/scripts/utilities/rewrite_git_history_apply.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/shell.nix +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/SKILL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/llms.txt +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__architecture__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__authorization__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__configuration__cultures__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__bridges__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__bridges__telegram__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__deployment__google-services-user-oauth__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__builtin__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__tools__mcp__index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/reference-index.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_descriptions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_policy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_run_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agent_storage.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/agents.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/ai.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/ai_runtime.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/auth.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/config_lifecycle.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/credentials.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/frontend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/google_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/google_tools_helper.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/homeassistant_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/integrations.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/knowledge.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/main.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/matrix_operations.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/openai_compat.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/runtime_reload.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_exec.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_protocol.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_runner_app.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/sandbox_worker_prep.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/schedules.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/skills.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/api/workers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/attachment_media.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/attachments.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/authorization.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/avatar_generation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/background_tasks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/bot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/bot_room_lifecycle.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/bot_runtime_view.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cancellation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/banner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/connect.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/doctor.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/local_stack.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/main.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/owner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/AGENTS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/HEARTBEAT.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/IDENTITY.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/MEMORY.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/SOUL.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/TOOLS.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/cli/templates/mind_data/USER.md +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/coalescing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/coalescing_batch.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/codex_model.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/config_commands.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/config_confirmation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/handler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/commands/parsing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/agent.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/auth.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/knowledge.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/main.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/matrix.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/memory.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/models.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/plugin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config/voice.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/config_template.yaml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/conversation_resolver.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/conversation_state_writer.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/credentials.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/credentials_sync.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/_google_oauth.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/attachment_helpers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/attachments.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/browser.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/claude_agent.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/coding.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/compact_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/config_manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/delegate.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/dynamic_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/gmail.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/google_calendar.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/google_sheets.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/homeassistant.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_conversation_operations.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_helpers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_message.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/matrix_room.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/memory.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/scheduler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/self_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/subagents.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/thread_summary.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/custom_tools/thread_tags.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/delivery_gateway.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/dispatch_handoff.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/dispatch_source.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/edit_regenerator.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/embeddings.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/entity_resolution.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/error_handling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/execution_preparation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/file_watcher.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/final_delivery.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/frontend_assets.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/handled_turns.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/compaction.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/interrupted_replay.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/policy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/runtime.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/storage.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/turn_recorder.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/history/types.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/decorators.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/enrichment.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/execution.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/ingress.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/matrix_admin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/registry.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/sender.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/state.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/hooks/types.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/inbound_turn_normalizer.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/interactive.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/availability.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/chunking.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/redaction.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/refresh_runner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/refresh_scheduler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/registry.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/status.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/utils.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge/watch.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/knowledge_refresh_runner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/llm_request_logging.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/logging_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/avatar.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/agent_message_snapshot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/event_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/event_normalization.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_agent_message_snapshot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_event_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_event_cache_events.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_event_cache_threads.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/postgres_redaction.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_agent_message_snapshot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_event_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_event_cache_events.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/sqlite_event_cache_threads.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_cache_helpers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_history_result.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_reads.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_write_cache_ops.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/thread_writes.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/cache/write_coordinator.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_delivery.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_room_admin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_session.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_thread_history.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/client_visible_messages.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/conversation_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/event_info.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/health.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/identity.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/image_handler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/invited_rooms_store.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/large_messages.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/media.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/mentions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/message_builder.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/message_content.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/presence.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/provisioning.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/room_cleanup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/rooms.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/stale_stream_cleanup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/state.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/sync_certification.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/sync_tokens.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_bookkeeping.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_membership.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_projection.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/thread_room_scan.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/typing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/users.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix/visible_body.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/matrix_identifiers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/errors.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/registry.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/results.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/toolkit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/transports.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/mcp/types.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/media_fallback.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/media_inputs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_file_backend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_mem0_backend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_policy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_prompting.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/_shared.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/auto_flush.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/memory/functions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/message_target.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/model_loading.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/config_updates.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/plugin_watch.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/rooms.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestration/runtime.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/orchestrator.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/post_response_effects.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/py.typed +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_attempt.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_lifecycle.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_runner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/response_terminal.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/routing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_protocols.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_resolution.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_state.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/runtime_support.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/scheduling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/stop.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/streaming.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/streaming_delivery.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/streaming_warmup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/team_exact_members.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/teams.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/thread_summary.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/thread_tags.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/thread_utils.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/timing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/token_budget.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/bootstrap.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/catalog.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/dependencies.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/dynamic_toolkits.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/events.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/metadata.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/output_files.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/plugin_identity.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/plugin_imports.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/plugins.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/registry_state.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/runtime_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/sandbox_proxy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/skills.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/tool_failures.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/tool_hooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tool_system/worker_routing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/agentql.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/airflow.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/apify.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/arxiv.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/attachments.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/aws_lambda.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/aws_ses.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/baidusearch.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/bitbucket.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/brandfetch.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/brightdata.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/browser.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/browserbase.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/cal_com.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/calculator.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/cartesia.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/claude_agent.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/clickup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/coding.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/compact_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/composio.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/config_manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/confluence.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/crawl4ai.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/csv.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/custom_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/dalle.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/daytona.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/delegate.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/desi_vocal.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/discord.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/docker.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/duckdb.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/duckduckgo.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/dynamic_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/e2b.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/eleven_labs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/email.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/exa.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/fal.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/file.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/file_generation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/financial_datasets_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/firecrawl.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/gemini.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/giphy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/github.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/gmail.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_bigquery.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_calendar.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_maps.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/google_sheets.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/googlesearch.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/groq.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/hackernews.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/jina.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/jira.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/linear.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/linkup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/lumalabs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/matrix_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/matrix_message.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/matrix_room.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/mem0.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/memory.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/modelslabs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/moviepy_video_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/neo4j.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/newspaper4k.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/notion.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/openai.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/openbb.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/openweather.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/oxylabs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/pandas.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/postgres.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/pubmed.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/python.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/reasoning.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/reddit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/redshift.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/replicate.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/resend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/scheduler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/scrapegraph.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/searxng.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/self_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/serpapi.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/serper.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/shopify.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/slack.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/sleep.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/spider.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/spotify.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/sql.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/subagents.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/tavily.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/telegram.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/thread_summary.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/thread_tags.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/todoist.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/trafilatura.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/trello.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/twilio.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/unsplash.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/visualization.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/web_browser_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/webex.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/website.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/whatsapp.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/wikipedia.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/x.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/yfinance.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/youtube.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/zendesk.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/zep.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools/zoom.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/tools_metadata.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/topic_generator.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/turn_controller.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/turn_policy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/turn_store.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/vendor_telemetry.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/vertex_claude_compat.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/vertex_claude_prompt_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/voice_handler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/kubernetes.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/kubernetes_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/kubernetes_resources.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/local.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/backends/static_runner.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/models.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workers/runtime.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/src/mindroom/workspaces.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tach.toml +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/test_plugin/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/test_plugin/hooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/test_plugin/mindroom.plugin.json +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/__init__.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/conftest.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_api_architecture_boundaries.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_credentials_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_file_watcher.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_knowledge_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_matrix_operations.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_schedules_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/api/test_skills_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/conftest.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/manual/manual_test_message_sizes.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/memory_test_support.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_datetime_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_order_preservation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_policy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_response_logic.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agent_run_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agents.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_agno_history.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_ai_error_message_display.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_ai_user_id.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_attachments.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_attachments_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_authorization.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_authorization_config_update.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_avatar_generation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_bot_ready_hook.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_bot_scheduling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_browser_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cancel_mid_wait.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cancelled_response_hook.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_check_module_privacy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_claude_agent_nightly_soak.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_claude_agent_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cli.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cli_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cli_connect.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_codex_model.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_coding_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_command_with_emoji.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_commands.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_compact_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_compaction.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_compress_tool_results.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_architecture_boundaries.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_commands.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_discovery.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_manager_consolidated.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_config_reload.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_credentials.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_credentials_api.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_credentials_sync.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_cron_natural_language.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_delegate_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dispatch_timing_instrumentation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dm_detection.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dm_functionality.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dm_room_preservation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dynamic_config_update.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_dynamic_toolkits.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_edit_after_restart.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_edit_event_handling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_edit_response_regeneration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_embeddings.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_entity_resolution.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_error_handling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_error_handling_in_callbacks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_cache_backends.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_driven_scheduling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_event_relations.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_execution_preparation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_extra_kwargs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_final_delivery.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_gemini_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_google_tool_wrappers.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_handled_turns.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hatch_build.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_helm_instance_worker_isolation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_homeassistant_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_enrichment.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_execution.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_ingress.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_matrix_admin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_registry.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_room_state.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_schedule.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_hook_sender.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_image_handler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_init.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_interactive.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_interactive_thread_fix.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_interrupted_replay.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_issue_176_real_thread_parallelism.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_knowledge_manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_kubernetes_worker_backend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_large_messages.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_large_messages_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_live_message_coalescing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_llm_request_logging.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_local_instance_deploy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_local_mindroom_provisioning_service.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_logging_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_markdown_to_html.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_agent_manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_api_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_cache_agent_message_snapshot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_identity.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_message_docs.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_message_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_room_access.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_room_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_spaces.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_state_cache.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_sync_tokens.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_matrix_thread_domain.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_integration_fake_server.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_manager.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_orchestrator.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_registry.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_results.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_toolkit.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mcp_transports.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_auto_flush.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_facade.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_file_backend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_mem0_backend.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_policy.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_memory_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mention_exclusion.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mentions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_message_builder.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_message_content.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_mock_tests.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_multi_agent_bot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_multi_agent_e2e.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_multiple_edits.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_openai_compat.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_partial_reply_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_plugins.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_preformed_team_routing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_presence.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_presence_based_streaming.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_prompt_cache_review.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_python_tools.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_queued_message_notify.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_response_attempt.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_response_terminal.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_response_tracking_regression.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_restore_dedup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_room_invites.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_router_configured_agents.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_router_rooms.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_routing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_routing_integration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_routing_regression.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_schedule_agent_validation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_scheduled_task_restoration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_scheduler_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_scheduling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_self_config.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_send_file_message.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_shell_async.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_shell_cancel.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_skills.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_skip_mentions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_smoke_mindroom_stack.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_stale_stream_cleanup.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_stop_emoji_reuse.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_behavior.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_e2e.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_edits.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_streaming_finalize.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_subagents.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_sync_certification.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_sync_task_cancellation.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_system_enrich.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tach_split_matrix_client_boundaries.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_take_screenshot.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_collaboration.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_coordination.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_extraction.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_invitations.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_media_fallback.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_mode_decision.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_room_updates.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_team_scheduler_context.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_history.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_mode.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_snooze_plugin.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_summary.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_summary_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_tags.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_thread_tags_tool.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_threading_error.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_timezone_scheduling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_timing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_config_sync.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_dependencies.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_events.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_failures.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_hooks.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_output_files.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tool_system_facade_boundaries.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_tools_metadata.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_turn_controller.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_turn_store.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_unknown_command.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_unknown_command_response.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_agent_mentions.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_bot_threading.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_command_processing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_handler.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_voice_handler_thread.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_worker_progress_routing.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_worker_runtime.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_workflow_scheduling.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_workloop_thread_scope.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/tests/test_workspace_env_hook.py +0 -0
- {mindroom-2026.4.332 → mindroom-2026.5.0}/uv.lock +0 -0
- {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
|
|
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
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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`.
|
|
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
|
|
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
|
|
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`.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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`).
|
|
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.
|
|
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`.
|
|
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_*`).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
{mindroom-2026.4.332 → mindroom-2026.5.0}/skills/mindroom-docs/references/page__cli__index.md
RENAMED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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`.
|
|
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.
|
|
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.
|
|
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
|