monkeybot 3.0.0__tar.gz → 3.0.2__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.
- {monkeybot-3.0.0 → monkeybot-3.0.2}/CHANGELOG.md +12 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/PKG-INFO +1 -1
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/features.md +1 -1
- {monkeybot-3.0.0 → monkeybot-3.0.2}/pyproject.toml +1 -1
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/sandbox_executor.py +11 -1
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/terminal.py +17 -2
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_sandbox_executor.py +18 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_terminal.py +22 -1
- {monkeybot-3.0.0 → monkeybot-3.0.2}/uv.lock +1 -1
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.dockerignore +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.github/workflows/ci.yml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.github/workflows/live-eval-smoke.yml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.github/workflows/prepare-release.yml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.github/workflows/publish-release.yml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.gitignore +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/.pre-commit-config.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/BACKLOG.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/CONTRIBUTING.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/LICENSE +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/README.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/pyproject.toml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/skills/monkeybot/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/skills/monkeybot/references/config-sections.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_file_index.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_local_shell.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_renderer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_session.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_status_bar.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_theme.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_tool_display.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_tui.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/chat_tui_widgets.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/chat.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/doctor.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/new.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/refresh.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/run_cmd.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/talk.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/commands/validate.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/compat.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/config_resolve.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/exit_commands.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/extras_catalog.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/gateway_health.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/opensandbox_lifecycle.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/output.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/providers.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/audio_io.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/client.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/gateway_manager.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/push_to_talk.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/session.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/session_controller.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/talk_ui.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/realtime/wire_encode.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/runtime_python.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/AGENT.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/Dockerfile +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/browser/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/command_allowlist.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/dockerignore +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/env.example +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/generate_image.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/loop/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/mcp.json +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/opensandbox.docker.toml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/otel-collector.example.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/permissions.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/session_controller.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/terminal_markdown.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_continue.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_e2e.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_errors.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_file_index.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_grounding.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_local_shell.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_renderer_parity.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_session.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_status_bar.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_theme.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_tool_display.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_chat_tui.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_cli.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_config_resolve.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_doctor.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_extras_catalog.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_gateway_health.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_opensandbox_lifecycle.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_realtime_session_controller.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_run_cmd.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_runtime_python.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_scaffold.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/tests/test_terminal_markdown.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/cli/uv.lock +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docker/Dockerfile +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docker/docker-compose.sandbox.yml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docker/opensandbox.docker.toml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docker/sandbox.Dockerfile +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docker-compose.yml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/agent-layout.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/assets/logo.png +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/browser-mcp.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/cloud-deployment-design.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/deploy-aws-agentcore.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/deploy-pattern-a-container.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/deploy-pattern-b-serverless.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/deploy-pattern-c-agent-platform.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/deploy-pattern-d-realtime.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/getting-started.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/knowledge-layer-fixes.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/live-evals.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/mcp.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/memory-graph-split-plan.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/migrations/agent-scope-namespacing.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/migrations/memory-outbox.sql +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/observability-runbook.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/otel-collector.example.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/progressive-loop-tools.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/progressive-mcp-tools.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/skills.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/spill-dynamic-design.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/sse-gateway-ui.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/docs/workspace-index-design.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/TEST_COVERAGE.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/assertions.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/diff.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/eval_config.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/models.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/persistence.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/report.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/runner.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenario_loader.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/context/summarization_trigger.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/mcp/get_prompt.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/mcp/list_resources.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/mcp/tool_invoke.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/memory/recall_cross_session.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/memory/recall_single_session.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/multi_turn/task_tracking.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/skills/skill_invocation.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/subagents/dispatch_complete.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/tools/core_read.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/tools/core_read_error.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/tools/core_run_command.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/tools/core_run_command_sandbox.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scenarios/tools/core_write.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/scorer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/.env.example +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/.gitignore +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/fixture_mcp_server.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/monkeybot_config/AGENT.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/monkeybot_config/command_allowlist.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/monkeybot_config/mcp.json +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/monkeybot_config/monkeybot.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/monkeybot_config/permissions.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/pyproject.toml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/skills/browser/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/uv.lock +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/workspace/.gitkeep +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/workspace/skills/browser/playbooks/.gitkeep +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/suites/smoke.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/test_assertions.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/test_diff.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/test_judge.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/test_report.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/test_runner_sse.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/evals/test_scorer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/README.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/agentcore/handler.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/agentcore/runtime_app.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/agentengine/handler.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/cloud-functions/main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/lambda/handler.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/browser/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/browser/playbooks/.gitkeep +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/diagnostics/README.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/diagnostics/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/diagnostics/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/diagnostics/diagnostics.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/image-generator/SKILL.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/examples/skills/image-generator/generate_image.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/pyproject.toml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/scripts/agentcore_smoke.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/agentcore.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/assets/NOTICE.md +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/assets/dom_tree.js +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/assets/pa_driver.js +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/dom_indexing.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/playbooks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/playwright_helpers.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/screenshots.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/src/browser_mcp/server.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_agentcore.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_dom_indexing.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_in_app_cdp.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_indexed_tools.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_playbooks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_playwright_helpers.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_screenshots.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/tests/test_server_shutdown.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/integrations/browser-mcp/uv.lock +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/pytest.ini +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/scripts/create_schema.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/scripts/precommit-pytest.sh +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/scripts/release.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/scripts/smoke_global_cli.sh +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/__main__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/audio_io.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/gateway_manager.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/push_to_talk.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/cli/realtime_client.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/catalog.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/config.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/freeze.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/resolve.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/store.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/text.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/attachments/tools.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/bootstrap.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/config/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/config/realtime_config.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/config/runtime_env.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/config/settings.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/config/validation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/config/yaml_loader.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/campaign_context.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/common.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/epoch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/tool_output_policy.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/tool_result_ingress.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/context/tool_shapers.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/hooks/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/captions.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/chunking.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/config.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/base.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/factory.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/gemini.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/nvidia.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/openai_compat.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/embeddings/sanitize.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/evidence_guard.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/extractors.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/fusion.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/hook.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/indexer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/links.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/salience.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/sqlite_index.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/subsystem.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/tool.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/knowledge/types.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/layout.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/llm/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/llm/provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/llm/realtime_provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/llm/usage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/lockfile_names.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/logging_utils.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/mcp/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/mcp/mcp_client.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/mcp/ports_mcp.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/config.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/hook.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/ids.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/ingest.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/migrate_layout.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/observability.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/outbox.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/palace.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/subsystem.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/uri.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/memory/writer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/messages/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/messages/convert_provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/messages/tool_integrity.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/messages/transform_context.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/path_safety.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/backends.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/db.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/durable_runs.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/errors.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/firestore.indexes.json +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/firestore.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/firestore_scheduled_loops.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/history.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/postgres.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/runs.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/scheduled_loops.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/session_turn_locks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/sqlite.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/sqlite_backend.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/sqlite_vector.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/thread_summary.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/transcript.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/transcript_analyzer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/persistence/usage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/prompts/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/prompts/harness_prompt.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/prompts/headings.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/prompts/prompt.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/context_budget.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/doom_loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/events.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/history_compaction.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/input_admission.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/loop_hooks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/loop_messages.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/loop_ports.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/loop_usage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/provider_stream_mapper.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/realtime_loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/tool_batch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/tool_dispatch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/turn_loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/runtime/utterance_buffer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/subagents/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/subagents/progress_publish.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/subagents/subagent_proto.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/subagents/subagent_worker.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/subagents/worker_pool.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/testing/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/testing/mocks_provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/testing/mocks_realtime_provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/core_tool_executor.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/fs_isolation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/inspector.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/loop_inspector.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/patch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/permission.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/spill_inventory.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/text_normalize.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/tool_hint.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/tool_kind.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/types.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/tools/workspace_service.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/types/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/types/content_blocks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/types/interfaces.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/types/types_tools.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace/factory.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace/gcs.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace/local.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace/protocol.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace/s3.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/core/workspace_layout.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/bootstrap.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/app.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/deps.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/errors.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/guardrails.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/manager.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/metrics.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/routes.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/session.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime/wire.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/realtime_main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/app.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/loop_port.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/models.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/reply_body.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/routes.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/scheduler_routes.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/scheduler_wiring.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/session_bus.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/sse.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/gateway/sse/workspace_layout.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/observability/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/observability/_state.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/observability/instrumentation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/observability/propagation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/observability/spans.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/observability/sqlite_exporter.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/_openai_compat.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/_utils.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/bedrock.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/claude.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/gemini.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/gemini_live.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/huggingface.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/model_capabilities.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/nvidia.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/ollama.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/openai.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/openrouter.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/pricing.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/sampling.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/providers/vertex_claude.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scaffold/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/__main__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/engine.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/http_invoker.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/interval.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/tick_result.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/scheduler/worker.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/subagents/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/subagents/worker/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/subagents/worker/__main__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/todo_list/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/todo_list/store.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/todo_list/tool.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/backends/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/backends/duckduckgo.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/backends/firecrawl.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/backends/tavily.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/protocol.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/src/monkeybot/web_search/tool.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/acceptance/test_observability_acceptance.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/cli/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/cli/test_gateway_manager.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/cli/test_main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/cli/test_push_to_talk.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/cli/test_realtime_client.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/conftest.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/fixtures/bitbucket_dc_style_pr.diff +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/memory/helpers.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/memory/in_memory_palace.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/memory/test_mempalace.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/memory/test_review_fixes.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_agent_layout.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_attachment_freeze.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_bootstrap.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_config_extensions.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_content_blocks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_context.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_context_budget.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_context_epoch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_core_tool_executor.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_doom_loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_durable_events.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_durable_runs.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_empty_completion.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_events.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_evidence_guard.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_firestore_history.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_firestore_scheduled_loops.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_fs_isolation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_gemini_history_replay.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_harness_prompt.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_history.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_history_compaction_split.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_hooks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_input_admission.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_inspector.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_chunking.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_chunking_rank.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_config.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_embeddings.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_fts.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_fusion.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_fusion_ann.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_hook.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_indexer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_links.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_media.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_salience.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_single_writer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_subsystem.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_knowledge_vectors.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_logging_utils.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_loop_hooks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_loop_observability.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_loop_transcript.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_mcp_client.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_memory_layout_migrate.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_message_pipeline.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_mocks_realtime_provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_patch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_permission.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_pricing.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_progress_publish.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_prompt.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_provider_contract.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_provider_stream_mapper.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_realtime_loop.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_replace_fuzzy.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_run_command_parse.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_runs.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_runtime_env.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_scheduled_loops.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_session_turn_locks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_settlement.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_spill_dynamic.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_spill_inventory.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_storage_backends.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_subagent_proto.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_subagent_trace_propagation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_subagent_worker_paths.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_thread_summary_wire.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_tool_def_schema.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_tool_integrity.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_tool_result_ingress.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_tool_shapers.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_transcript.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_transcript_analyzer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_truncated_tool_batch.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_usage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_usage_migration.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_utterance_buffer.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_worker_pool.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_workspace_layout.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_workspace_symlinks.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/test_workspace_write_scope.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/workspace/test_factory.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/workspace/test_local_storage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/core/workspace/test_protocol_contract.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/eval_hook.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenario_runner.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/context_curation.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/memory_write_inject.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/subagent_roundtrip.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_glob_grep.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_load_file.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_loops.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_read.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_replace_apply_patch.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_run_command.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_search_knowledge.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_search_memory.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_todo_list.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_web_search.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/tool_write.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/scenarios/turn_completion.yaml +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/test_agent_behavior.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/evals/test_memory_knowledge_routing.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_app.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_deps.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_guardrails.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_manager.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_metrics.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_routes_client_text.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_session.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/realtime/test_wire.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/sse/test_attachments.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/sse/test_create_session_model.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/sse/test_routes.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/sse/test_scheduler_routes.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/sse/test_session_bus.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/sse/test_transcript_wiring.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_otel_fastapi.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_otel_lifespan.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_pending_response_endpoints.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_realtime_main.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_resolve_provider.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_sse_events.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/gateway/test_subagent_event_publisher.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/integration/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/integration/test_mb_e2e_simple_reply.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/integration/test_observability_integration.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/integration/test_prompt_caching_integration.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/conftest.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_init.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_instrumentation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_loop_hook_spans.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_propagation.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_span_contract.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_spans.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_sqlite_exporter.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_truncate.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/observability/test_turn_complete_trace.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/conftest.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_anthropic_cache.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_anthropic_history.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_bedrock_estimate.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_gemini_live.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_gemini_usage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_huggingface.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_model_capabilities.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_nvidia.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_ollama.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_openai_compat_usage.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_openai_history.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_pricing.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_safe_parse_tool_args.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_sampling.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_sonnet5_sampling.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_source_grep_gates.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/providers/test_vertex_claude_history.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/scheduler/test_engine.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/scheduler/test_interval.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/skills/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/skills/test_generate_image_script.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/test_cold_start.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/test_packaging_config.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/test_release_script.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/todo_list/test_todo_list.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/web_search/__init__.py +0 -0
- {monkeybot-3.0.0 → monkeybot-3.0.2}/tests/web_search/test_web_search.py +0 -0
|
@@ -6,6 +6,18 @@ the project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [core v3.0.2] - 2026-08-18
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Compute-only OpenSandbox (`SANDBOX_SHARED_FILESYSTEM=false`) no longer rejects every `run_command` when the harness passes the default workspace-root cwd. Nested workspace cwd and workspace/skills path args are still refused.
|
|
14
|
+
|
|
15
|
+
## [core v3.0.1] - 2026-08-18
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Host `run_command` no longer fail-closes every command when filesystem isolation is unavailable and none of the memory hidden paths exist on disk (typical in nested Linux containers with memory off). Isolation is still required — and the command still refused — when at least one palace path is present.
|
|
20
|
+
|
|
9
21
|
## [core v3.0.0] - 2026-08-17
|
|
10
22
|
|
|
11
23
|
### Breaking
|
|
@@ -445,7 +445,7 @@ Each section follows: **Purpose** · **Key files** · **How it works** · **Depe
|
|
|
445
445
|
**Invariants:**
|
|
446
446
|
- Chat history is canonical; MemPalace drawers are an idempotent projection.
|
|
447
447
|
- Recall is scoped to the current `thread_id` by default.
|
|
448
|
-
- `memory.enabled: false` (or `MONKEYBOT_MEMORY_HOOK_ENABLED=0`) skips capture, wake-up, and prompt teaching. Host `run_command` children then cannot see palace files: Linux user+mount namespaces or macOS `sandbox-exec` hide those directories. If
|
|
448
|
+
- `memory.enabled: false` (or `MONKEYBOT_MEMORY_HOOK_ENABLED=0`) skips capture, wake-up, and prompt teaching. Host `run_command` children then cannot see palace files: Linux user+mount namespaces or macOS `sandbox-exec` hide those directories. If isolation cannot be established and at least one hidden palace path exists, the command is refused rather than run with palace files visible. If none of the hidden paths exist on disk, the command runs unwrapped (memory was never configured; nothing to hide). OpenSandbox does not mount the palace. The kill switch is not an argv denylist; `bash` remains allowed, and the OS hides the files.
|
|
449
449
|
- Postgres/Firestore persist the memory outbox with replica `palace_id` claim partitioning. Replicated deployments must share a lock-capable palace volume.
|
|
450
450
|
- MemPalace (chromadb / onnxruntime) is the optional `monkeybot[memory]` extra. Missing the extra disables memory instead of failing startup.
|
|
451
451
|
- Subagents can read the palace but do not register duplicate automatic-ingest hooks.
|
|
@@ -304,7 +304,17 @@ class SandboxExecutor:
|
|
|
304
304
|
if command == "mempalace":
|
|
305
305
|
validate_mempalace_subcommand(args)
|
|
306
306
|
|
|
307
|
-
|
|
307
|
+
# CoreToolExecutor always passes cwd=workspace root. Compute-only already
|
|
308
|
+
# forces working_directory=/tmp, so the default harness cwd must not trip
|
|
309
|
+
# the mounted-path guard. Nested paths under workspace are still rejected.
|
|
310
|
+
check_cwd = cwd
|
|
311
|
+
if not self._config.shared_filesystem and cwd is not None:
|
|
312
|
+
if Path(cwd).resolve() == self._workspace_root:
|
|
313
|
+
check_cwd = None
|
|
314
|
+
|
|
315
|
+
if not self._config.shared_filesystem and self._remote_requests_mounted_path(
|
|
316
|
+
args, check_cwd
|
|
317
|
+
):
|
|
308
318
|
raise SecurityError(
|
|
309
319
|
"remote sandbox is compute-only and cannot access workspace or skills files"
|
|
310
320
|
)
|
|
@@ -403,13 +403,28 @@ class TerminalExecutor:
|
|
|
403
403
|
async def _isolate(self, executable: str, args: list[str]) -> tuple[str, list[str]]:
|
|
404
404
|
"""Wrap argv so hidden paths are absent from the child's filesystem.
|
|
405
405
|
|
|
406
|
-
If this host cannot hide those paths, refuse to exec
|
|
407
|
-
validation is not a sandbox: a shell can
|
|
406
|
+
If this host cannot hide those paths, refuse to exec when any of them
|
|
407
|
+
exist on disk. Argument validation is not a sandbox: a shell can
|
|
408
|
+
build any path at runtime. Missing hidden paths with no isolation
|
|
409
|
+
available means memory was never configured — nothing to hide.
|
|
408
410
|
"""
|
|
409
411
|
if not self._hidden_paths:
|
|
410
412
|
return executable, args
|
|
411
413
|
support = await asyncio.to_thread(isolation_support)
|
|
412
414
|
if not support.available:
|
|
415
|
+
existing = [path for path in self._hidden_paths if path.expanduser().exists()]
|
|
416
|
+
if not existing:
|
|
417
|
+
logger.info(
|
|
418
|
+
"Filesystem isolation is unavailable on this host (%s); "
|
|
419
|
+
"running unwrapped because none of the hidden paths exist "
|
|
420
|
+
"(nothing to hide).",
|
|
421
|
+
support.detail,
|
|
422
|
+
extra={
|
|
423
|
+
"component": "terminal_executor",
|
|
424
|
+
"hidden_paths": [str(path) for path in self._hidden_paths],
|
|
425
|
+
},
|
|
426
|
+
)
|
|
427
|
+
return executable, args
|
|
413
428
|
raise SecurityError(
|
|
414
429
|
"Filesystem isolation is unavailable on this host "
|
|
415
430
|
f"({support.detail}); refusing to run commands while memory "
|
|
@@ -364,6 +364,24 @@ class TestSandboxExecutorLayoutMounts:
|
|
|
364
364
|
assert mock_cls.create.call_args.kwargs["volumes"] == []
|
|
365
365
|
assert sandbox.commands.run.call_args.kwargs["opts"].working_directory == "/tmp"
|
|
366
366
|
|
|
367
|
+
@pytest.mark.asyncio
|
|
368
|
+
async def test_remote_compute_mode_allows_default_workspace_cwd(self, tmp_path):
|
|
369
|
+
workspace = tmp_path / "workspace"
|
|
370
|
+
workspace.mkdir()
|
|
371
|
+
cfg = SandboxConfig(
|
|
372
|
+
True, "https://remote.example", None, "test", 30, shared_filesystem=False
|
|
373
|
+
)
|
|
374
|
+
executor = SandboxExecutor(cfg, workspace)
|
|
375
|
+
mock_cls, sandbox = _make_create_mock()
|
|
376
|
+
osb = _make_opensandbox_module(mock_cls)
|
|
377
|
+
|
|
378
|
+
with patch.dict(sys.modules, _opensandbox_sys_modules(osb)):
|
|
379
|
+
result = await executor.execute("python3", ["--version"], cwd=workspace)
|
|
380
|
+
|
|
381
|
+
assert result.exit_code == 0
|
|
382
|
+
mock_cls.create.assert_called_once()
|
|
383
|
+
assert sandbox.commands.run.call_args.kwargs["opts"].working_directory == "/tmp"
|
|
384
|
+
|
|
367
385
|
@pytest.mark.asyncio
|
|
368
386
|
async def test_remote_compute_mode_rejects_paths_under_workspace_or_skills(self, tmp_path):
|
|
369
387
|
workspace = tmp_path / "workspace"
|
|
@@ -876,18 +876,39 @@ class TestTerminalExecutorIsolationFallback:
|
|
|
876
876
|
|
|
877
877
|
@pytest.mark.asyncio
|
|
878
878
|
async def test_unavailable_isolation_refuses_to_run(self, tmp_path, monkeypatch):
|
|
879
|
+
palace = tmp_path / "memory"
|
|
880
|
+
palace.mkdir()
|
|
879
881
|
monkeypatch.setattr(
|
|
880
882
|
terminal_module,
|
|
881
883
|
"isolation_support",
|
|
882
884
|
lambda: IsolationSupport("none", "probe says no"),
|
|
883
885
|
)
|
|
884
886
|
executor = TerminalExecutor(
|
|
885
|
-
allowed_path_prefixes=[str(tmp_path)], hidden_paths=[
|
|
887
|
+
allowed_path_prefixes=[str(tmp_path)], hidden_paths=[palace]
|
|
886
888
|
)
|
|
887
889
|
|
|
888
890
|
with pytest.raises(SecurityError, match="Filesystem isolation is unavailable"):
|
|
889
891
|
await executor.execute("echo", ["should-not-run"])
|
|
890
892
|
|
|
893
|
+
@pytest.mark.asyncio
|
|
894
|
+
async def test_unavailable_isolation_runs_when_nothing_exists_to_hide(
|
|
895
|
+
self, tmp_path, monkeypatch
|
|
896
|
+
):
|
|
897
|
+
monkeypatch.setattr(
|
|
898
|
+
terminal_module,
|
|
899
|
+
"isolation_support",
|
|
900
|
+
lambda: IsolationSupport("none", "probe says no"),
|
|
901
|
+
)
|
|
902
|
+
executor = TerminalExecutor(
|
|
903
|
+
allowed_path_prefixes=[str(tmp_path)],
|
|
904
|
+
hidden_paths=[tmp_path / "missing-palace"],
|
|
905
|
+
)
|
|
906
|
+
|
|
907
|
+
result = await executor.execute("echo", ["ok-to-run"])
|
|
908
|
+
|
|
909
|
+
assert result.exit_code == 0
|
|
910
|
+
assert "ok-to-run" in result.stdout
|
|
911
|
+
|
|
891
912
|
@pytest.mark.asyncio
|
|
892
913
|
async def test_failed_isolation_setup_raises_security_error(self, tmp_path, monkeypatch):
|
|
893
914
|
def broken_argv(executable, args, hidden_paths, *, support):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/browser/SKILL.md
RENAMED
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/command_allowlist.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml
RENAMED
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/opensandbox.docker.toml
RENAMED
|
File without changes
|
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/cli/src/monkeybot_cli/scaffold_defaults/permissions.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/monkeybot_config/command_allowlist.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monkeybot-3.0.0 → monkeybot-3.0.2}/evals/smoke_agent/workspace/skills/browser/playbooks/.gitkeep
RENAMED
|
File without changes
|
|
File without changes
|