monkeybot 3.10.0__tar.gz → 3.11.1__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.11.1/.cursor/hooks/test-failure-notice.py +106 -0
- monkeybot-3.11.1/.cursor/hooks.json +33 -0
- monkeybot-3.11.1/.cursor/rules/test-failures.mdc +10 -0
- monkeybot-3.11.1/.cursor/skills/mb-retro/SKILL.md +85 -0
- monkeybot-3.11.1/.github/workflows/ci.yml +51 -0
- monkeybot-3.11.1/.github/workflows/live-eval-smoke.yml +179 -0
- monkeybot-3.11.1/.gitignore +93 -0
- monkeybot-3.11.1/.pre-commit-config.yaml +36 -0
- monkeybot-3.11.1/CHANGELOG.md +619 -0
- monkeybot-3.11.1/CONTRIBUTING.md +43 -0
- monkeybot-3.11.1/PKG-INFO +202 -0
- monkeybot-3.11.1/README.md +105 -0
- monkeybot-3.11.1/cli/pyproject.toml +50 -0
- monkeybot-3.11.1/cli/skills/monkeybot/SKILL.md +202 -0
- monkeybot-3.11.1/cli/skills/monkeybot/references/config-sections.md +170 -0
- monkeybot-3.11.1/cli/src/monkeybot_cli/chat_tui.py +1981 -0
- monkeybot-3.11.1/cli/src/monkeybot_cli/chat_tui_widgets.py +1275 -0
- monkeybot-3.11.1/cli/src/monkeybot_cli/overrides.txt +5 -0
- monkeybot-3.11.1/cli/src/monkeybot_cli/runtime_python.py +857 -0
- monkeybot-3.11.1/cli/src/monkeybot_cli/scaffold.py +517 -0
- monkeybot-3.11.1/cli/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml +277 -0
- monkeybot-3.11.1/cli/tests/test_chat_tui.py +2485 -0
- monkeybot-3.11.1/cli/tests/test_runtime_python.py +1233 -0
- monkeybot-3.11.1/cli/tests/test_scaffold.py +422 -0
- monkeybot-3.11.1/cli/uv.lock +1789 -0
- monkeybot-3.11.1/conftest.py +22 -0
- monkeybot-3.11.1/docs/deploy-pattern-d-realtime.md +306 -0
- monkeybot-3.11.1/docs/features.md +865 -0
- monkeybot-3.11.1/docs/getting-started.md +182 -0
- monkeybot-3.11.1/docs/live-evals.md +75 -0
- monkeybot-3.11.1/docs/spill-dynamic-design.md +557 -0
- monkeybot-3.11.1/docs/testing.md +756 -0
- monkeybot-3.11.1/docs/verifier-agent-design.md +831 -0
- monkeybot-3.11.1/integrations/browser-mcp/pyproject.toml +31 -0
- monkeybot-3.11.1/integrations/browser-mcp/uv.lock +1232 -0
- monkeybot-3.11.1/pyproject.toml +145 -0
- monkeybot-3.11.1/pytest.ini +19 -0
- monkeybot-3.11.1/regression/conftest.py +41 -0
- monkeybot-3.11.1/regression/drivers/__init__.py +5 -0
- monkeybot-3.11.1/regression/drivers/bundles/__init__.py +32 -0
- monkeybot-3.11.1/regression/drivers/bundles/git.py +91 -0
- monkeybot-3.11.1/regression/drivers/bundles/hooks.py +99 -0
- monkeybot-3.11.1/regression/drivers/bundles/host_tools.py +109 -0
- monkeybot-3.11.1/regression/drivers/bundles/mcp.py +103 -0
- monkeybot-3.11.1/regression/drivers/bundles/memory.py +176 -0
- monkeybot-3.11.1/regression/drivers/bundles/policy.py +241 -0
- monkeybot-3.11.1/regression/drivers/bundles/prompt_context.py +69 -0
- monkeybot-3.11.1/regression/drivers/bundles/protocol.py +86 -0
- monkeybot-3.11.1/regression/drivers/bundles/session.py +339 -0
- monkeybot-3.11.1/regression/drivers/bundles/store.py +153 -0
- monkeybot-3.11.1/regression/drivers/bundles/subagents.py +181 -0
- monkeybot-3.11.1/regression/drivers/bundles/verifier.py +230 -0
- monkeybot-3.11.1/regression/drivers/bundles/workspace.py +138 -0
- monkeybot-3.11.1/regression/drivers/gateway.py +480 -0
- monkeybot-3.11.1/regression/drivers/loop.py +682 -0
- monkeybot-3.11.1/regression/drivers/realtime.py +607 -0
- monkeybot-3.11.1/regression/drivers/replay.py +347 -0
- monkeybot-3.11.1/regression/drivers/support/__init__.py +1 -0
- monkeybot-3.11.1/regression/drivers/support/config.py +183 -0
- monkeybot-3.11.1/regression/drivers/support/env.py +40 -0
- monkeybot-3.11.1/regression/drivers/support/executor.py +84 -0
- monkeybot-3.11.1/regression/drivers/support/paths.py +36 -0
- monkeybot-3.11.1/regression/drivers/support/tokens.py +332 -0
- monkeybot-3.11.1/regression/fixtures/__init__.py +1 -0
- monkeybot-3.11.1/regression/fixtures/build.py +133 -0
- monkeybot-3.11.1/regression/fixtures/configs/agent.base.yaml +21 -0
- monkeybot-3.11.1/regression/fixtures/configs/command_allowlist.default.yaml +12 -0
- monkeybot-3.11.1/regression/fixtures/configs/command_allowlist.empty.yaml +2 -0
- monkeybot-3.11.1/regression/fixtures/configs/command_allowlist.no_deny_patterns.yaml +7 -0
- monkeybot-3.11.1/regression/fixtures/configs/command_allowlist.strict.yaml +7 -0
- monkeybot-3.11.1/regression/fixtures/configs/grants.corrupt.json +1 -0
- monkeybot-3.11.1/regression/fixtures/configs/grants.json +16 -0
- monkeybot-3.11.1/regression/fixtures/configs/mcp.autoconnect.json +10 -0
- monkeybot-3.11.1/regression/fixtures/configs/mcp.broken.json +15 -0
- monkeybot-3.11.1/regression/fixtures/configs/mcp.progressive.json +16 -0
- monkeybot-3.11.1/regression/fixtures/configs/mcp.two_prefix.json +16 -0
- monkeybot-3.11.1/regression/fixtures/configs/permissions.ask.yaml +4 -0
- monkeybot-3.11.1/regression/fixtures/configs/permissions.default.yaml +4 -0
- monkeybot-3.11.1/regression/fixtures/configs/permissions.overlap.yaml +11 -0
- monkeybot-3.11.1/regression/fixtures/configs/verifier.block.yaml +4 -0
- monkeybot-3.11.1/regression/fixtures/configs/verifier.judge.yaml +11 -0
- monkeybot-3.11.1/regression/fixtures/configs/verifier.replan.yaml +4 -0
- monkeybot-3.11.1/regression/fixtures/configs/verifier.tracker.yaml +10 -0
- monkeybot-3.11.1/regression/fixtures/configs/{workspace}/child.db +0 -0
- monkeybot-3.11.1/regression/fixtures/conftest.py +8 -0
- monkeybot-3.11.1/regression/fixtures/mcp/fixture_mcp_server.py +35 -0
- monkeybot-3.11.1/regression/fixtures/scripts/one_turn.yaml +5 -0
- monkeybot-3.11.1/regression/fixtures/skills/a/nested/SKILL.md +6 -0
- monkeybot-3.11.1/regression/fixtures/skills/diagnostics/SKILL.md +6 -0
- monkeybot-3.11.1/regression/fixtures/skills/plain/SKILL.md +1 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/absent_file.ndjson +3 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/child_error.ndjson +3 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/echo.ndjson +2 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/hold.ndjson +2 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/large_line.ndjson +2 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/nested_task.ndjson +4 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/present_file.ndjson +3 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/roundtrip.ndjson +3 -0
- monkeybot-3.11.1/regression/fixtures/subagent_tapes/system_prompt.ndjson +4 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_secret.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-link +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-link.json +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-pdf +66 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-pdf.json +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/i1.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/i2.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/i3.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/i4.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/i5.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/i6.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/att_ws/tiny.png +0 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/drift_ws/DONE.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/drift_ws/db/migrations/001_init.sql +4 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/drift_ws/src/models.py +3 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/grants_ws/granted/.env +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/grants_ws/granted/notes.md +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/grants_ws/workspace/src/app.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/.gitignore +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/AGENTS.md +6 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/node_modules/left.js +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/notes.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/pkg/.gitignore +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/pkg/hidden.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/pkg/visible.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/secret.txt +1 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/src/app.py +2 -0
- monkeybot-3.11.1/regression/fixtures/workspaces/hostile_ws/wide.txt +1 -0
- monkeybot-3.11.1/regression/plan/AGENT_GUIDE.md +109 -0
- monkeybot-3.11.1/regression/plan/README.md +132 -0
- monkeybot-3.11.1/regression/plan/phases/phase-0a-tier1-reorg.md +222 -0
- monkeybot-3.11.1/regression/plan/phases/phase-0b-foundations.md +184 -0
- monkeybot-3.11.1/regression/plan/phases/phase-1-t2-harness-logic.md +213 -0
- monkeybot-3.11.1/regression/plan/phases/phase-2-contracts-and-gateway.md +147 -0
- monkeybot-3.11.1/regression/plan/phases/phase-3-record-replay.md +84 -0
- monkeybot-3.11.1/regression/plan/phases/phase-4-live.md +129 -0
- monkeybot-3.11.1/regression/plan/phases/phase-5-trials.md +62 -0
- monkeybot-3.11.1/regression/plan/phases/phase-6-cutover.md +30 -0
- monkeybot-3.11.1/regression/plan/reference/01-goals-and-principles.md +65 -0
- monkeybot-3.11.1/regression/plan/reference/03-tiers.md +48 -0
- monkeybot-3.11.1/regression/plan/reference/04-file-structure.md +825 -0
- monkeybot-3.11.1/regression/plan/reference/05.1-doubles.md +26 -0
- monkeybot-3.11.1/regression/plan/reference/05.10-testing-doc.md +48 -0
- monkeybot-3.11.1/regression/plan/reference/05.11-live-provider.md +37 -0
- monkeybot-3.11.1/regression/plan/reference/05.2-scenario-schema.md +31 -0
- monkeybot-3.11.1/regression/plan/reference/05.3-assertions-and-invariants.md +52 -0
- monkeybot-3.11.1/regression/plan/reference/05.4-fixtures.md +25 -0
- monkeybot-3.11.1/regression/plan/reference/05.5-cassettes.md +98 -0
- monkeybot-3.11.1/regression/plan/reference/05.6-pytest-reporting-trials.md +37 -0
- monkeybot-3.11.1/regression/plan/reference/05.9-failure-ledger.md +138 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/00-index.md +6 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6A-loop.md +55 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6B-ctx.md +38 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6C-hook.md +29 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6D-file.md +52 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6E-shell.md +31 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6F-pol.md +25 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6G-code.md +32 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6H-att.md +21 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6I-comp.md +18 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6J-sub.md +33 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6K-ver.md +39 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6L-sched.md +28 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6M-skill.md +20 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6N-mcp.md +26 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6O-web.md +14 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6P-mem.md +27 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6Q-store.md +42 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6R-cfg.md +23 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6S-todo.md +19 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6T-prov.md +30 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6U-gw.md +55 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6V-rt.md +20 -0
- monkeybot-3.11.1/regression/plan/reference/06-coverage/6W-ops.md +20 -0
- monkeybot-3.11.1/regression/plan/reference/07-migration-map.md +30 -0
- monkeybot-3.11.1/regression/plan/reference/09-ci.md +17 -0
- monkeybot-3.11.1/regression/plan/reference/10-policies.md +31 -0
- monkeybot-3.11.1/regression/plan/reference/11-known-issues.md +24 -0
- monkeybot-3.11.1/regression/plan/reference/12-decisions.md +20 -0
- monkeybot-3.11.1/regression/plan/reference/appendices.md +29 -0
- monkeybot-3.11.1/regression/plan/status.md +1170 -0
- monkeybot-3.11.1/regression/plan/tasks.md +71 -0
- monkeybot-3.11.1/regression/plugin.py +371 -0
- monkeybot-3.11.1/regression/schema/__init__.py +5 -0
- monkeybot-3.11.1/regression/schema/assertions.py +2238 -0
- monkeybot-3.11.1/regression/schema/events.py +170 -0
- monkeybot-3.11.1/regression/schema/invariants.py +286 -0
- monkeybot-3.11.1/regression/schema/scenario.py +342 -0
- monkeybot-3.11.1/regression/schema/sse_norm.py +100 -0
- monkeybot-3.11.1/regression/schema/steps.py +618 -0
- monkeybot-3.11.1/regression/selftest/__init__.py +1 -0
- monkeybot-3.11.1/regression/selftest/recorded/t4_run_smoke_sample.json +121 -0
- monkeybot-3.11.1/regression/selftest/test_agent_project.py +129 -0
- monkeybot-3.11.1/regression/selftest/test_assertions.py +1159 -0
- monkeybot-3.11.1/regression/selftest/test_bundle_order.py +34 -0
- monkeybot-3.11.1/regression/selftest/test_coding_hard_oracle.py +257 -0
- monkeybot-3.11.1/regression/selftest/test_diff.py +72 -0
- monkeybot-3.11.1/regression/selftest/test_fixtures.py +368 -0
- monkeybot-3.11.1/regression/selftest/test_from_transcript.py +598 -0
- monkeybot-3.11.1/regression/selftest/test_gateway_driver.py +125 -0
- monkeybot-3.11.1/regression/selftest/test_invariants.py +231 -0
- monkeybot-3.11.1/regression/selftest/test_judge.py +87 -0
- monkeybot-3.11.1/regression/selftest/test_live_engine.py +620 -0
- monkeybot-3.11.1/regression/selftest/test_live_ledger.py +252 -0
- monkeybot-3.11.1/regression/selftest/test_live_scenarios.py +129 -0
- monkeybot-3.11.1/regression/selftest/test_preflight.py +353 -0
- monkeybot-3.11.1/regression/selftest/test_report.py +264 -0
- monkeybot-3.11.1/regression/selftest/test_runner_sse.py +321 -0
- monkeybot-3.11.1/regression/selftest/test_scenario_schema.py +877 -0
- monkeybot-3.11.1/regression/selftest/test_scorer.py +38 -0
- monkeybot-3.11.1/regression/selftest/test_steps.py +435 -0
- monkeybot-3.11.1/regression/selftest/test_trials_stats.py +540 -0
- monkeybot-3.11.1/regression/t2/gateway/harness.py +207 -0
- monkeybot-3.11.1/regression/t2/gateway/scenarios/gw/reconnect_last_event_id.yaml +24 -0
- monkeybot-3.11.1/regression/t2/gateway/scenarios/gw/scripted_turn_golden_sse.yaml +16 -0
- monkeybot-3.11.1/regression/t2/gateway/scenarios/gw/tool_turn_golden_sse.yaml +25 -0
- monkeybot-3.11.1/regression/t2/gateway/test_cases.py +1246 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/attachment_symlink_leaf_rejected.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/freeze_descriptors_in_history.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/load_both_args.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/load_image_preview.yaml +21 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/load_pdf.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/load_per_reply_cap.yaml +72 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/attachments/load_text_rejected.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/compaction_forgets_reads.yaml +67 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/fix_failing_test.yaml +53 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_background_verify_not_counted.yaml +49 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_cap_then_accept.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_custom_verify_commands.yaml +66 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_masked_exit.yaml +61 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_non_executing_wrapper.yaml +73 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_open_todos_reject.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_passes_when_verified.yaml +50 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_question_not_gated.yaml +22 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_rejected_answer_not_persisted.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_rejects_unverified.yaml +61 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/gate_write_after_verify.yaml +58 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/git_context_absent.yaml +24 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/git_context_note.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/git_env_isolation.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/read_before_write.yaml +67 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/subagent_has_ledger_no_gate.yaml +48 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/coding/subagent_ledger_child.yml +18 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/clipboard_cap.yaml +47 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/denied_apps_and_schemes.yaml +59 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/denied_dirs_and_globs.yaml +225 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/move_trash_not_always_scoped.yaml +58 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/open_exec_suffix_denied.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/trash_huge_tree_refused.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/computer/x.sh +3 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/background_summary_applied.yaml +58 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/background_summary_stale_fallback.yaml +78 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/base64_sanitized.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/compact_at_trigger.yaml +45 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/compact_does_not_persist_repairs.yaml +59 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/compact_fallback.yaml +20042 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/compact_keep_tail_ratio.yaml +55 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/compact_pins_verdict_attachment_thinking.yaml +59 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/compact_trailer_from_goal_ledger.yaml +43 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/context_usage_current_not_peak.yaml +59 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/epoch_after_compaction.yaml +45 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/epoch_stable_change.yaml +43 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/epoch_volatile_update.yaml +53 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/memory_wake_up_large.yaml +19 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/project_instructions_spoof_heading.yaml +22 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/slash_skill_turn_scoped.yaml +17 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/stable_prefix_byte_stable.yaml +61 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/summarizer_model_override.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/ctx/tool_result_shaping_under_pressure.yaml +66 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/glob_cap_incomplete.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/glob_skips_noise.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/grep_gitignore_default.yaml +57 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/grep_incomplete_scan.yaml +29 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/grep_invalid_regex.yaml +23 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/grep_pagination.yaml +54 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/list_dir_truncate.yaml +25 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/overwrite_unread_rejected.yaml +26 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/patch_add_existing.yaml +29 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/patch_fail_closed.yaml +47 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/patch_move_dest_exists.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/patch_rollback.yaml +44 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/patch_update_requires_read.yaml +41 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/read_absolute_needs_grant.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/read_escape_dotdot.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/read_escape_symlink.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/read_huge_single_line.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/read_offset_past_eof.yaml +28 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/read_paging_no_gap.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/replace_error_codes.yaml +67 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/replace_fuzzy_unicode.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/skills_read_only.yaml +26 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/spill_large_tool_output.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/spill_session_id_sanitized.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/stale_read_rejected.yaml +53 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/tool_glob_grep.yaml +28 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/tool_read.yaml +25 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/tool_replace_apply_patch.yaml +49 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/tool_write.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/virtual_mounts.yaml +66 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/write_new_without_read_ok.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/write_outside_scope.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/file/write_payload_too_large.yaml +29 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/evidence_grep_only_not_accepted.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/evidence_missing_path.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/evidence_thread_isolation.yaml +44 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/evidence_unread_then_read.yaml +50 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/secret_ends_routine_turn.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/secret_in_tool_args.yaml +32 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/secret_redacted_interactive.yaml +32 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/hook/secret_scanner_failure_fails_closed.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/all_parse_error_batch_rejected.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/ask_user_non_interactive.yaml +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/ask_user_roundtrip.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/background_check_raises_fails_closed.yaml +24 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/background_nudge_then_release.yaml +48 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/background_nudges_exhausted.yaml +47 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/cancel_after_tool_call_before_execute.yaml +33 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/cancel_mid_stream.yaml +33 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/confirm_always_remembered.yaml +55 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/confirm_approve.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/confirm_deny.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/confirm_timeout.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/doom_disabled.yaml +48 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/doom_exempt_poll.yaml +58 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/doom_identical_read.yaml +40 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/doom_path_reset_on_success.yaml +53 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/doom_path_retry_spelling.yaml +44 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/empty_exhausted.yaml +22 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/empty_then_text.yaml +22 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/grounding_event_passthrough.yaml +28 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/max_turns_cap.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/max_turns_not_on_clean_finish.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/mixed_parse_error_batch_runs_valid.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/parallel_concurrency_cap.yaml +91 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/parallel_results_in_submission_order.yaml +52 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/post_tool_empty_retry.yaml +32 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/promote_follow_up_provenance.yaml +49 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/provider_raises.yaml +25 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/registry_refresh_same_turn.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/repair_missing_tool_result.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/repair_orphan_tool_response.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/resume_thinking_budget_routine.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/steer_mid_turn.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/thinking_block_order.yaml +32 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/thinking_only_is_empty.yaml +25 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/thought_signature_preserved.yaml +26 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/tool_input_delta_passthrough.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/truncated_batch_rejected.yaml +41 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/turn_completion.yaml +14 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/loop/usage_totals.yaml +28 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/autoconnect_failure_is_status.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/catalog_diff_reload.yaml +97 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/disable_removes_tools.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/disabled_server_not_catalogued.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/enable_then_call.yaml +47 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/enable_unknown_server.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/env_interpolation_missing.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/meta_tools_only_when_connected.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/name_prefix_split.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/resources_and_prompts.yaml +76 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/mcp/strict_load_rolls_back.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/ephemeral_palace_shared_outbox_rejected.yaml +23 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/memory_off.yaml +47 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/memory_write_inject.yaml +18 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/mempalace_search_real.yaml +43 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/outbox_failure_does_not_fail_turn.yaml +26 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/outbox_ingest_then_inject.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/outbox_thread_isolation.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/memory/subagent_no_ingest.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/command_grant_from_store.yaml +33 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/default_deny_patterns.yaml +71 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/grant_revocation_clears.yaml +52 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/granted_folder_credential_denied.yaml +55 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/path_grant_read.yaml +52 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/permissions_last_match_wins.yaml +44 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/permissions_missing_file_fail_open.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/start_loop_always_confirms.yaml +65 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/symlink_in_grant_does_not_widen.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/unknown_binary_confirm_approve.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/policy/unknown_binary_confirm_deny.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/create_goal_requires_slash_goal.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/create_goal_with_slash_goal.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/enable_loops_progressive.yaml +59 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/loop_goal_isolation.yaml +33 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/loop_lifecycle_real_store.yaml +96 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/one_open_goal_per_session.yaml +46 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/start_loop_requires_stop_guard.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/scheduler/tool_loops.yaml +28 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/allowlist_deny.yaml +33 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/argv_forms.yaml +59 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/bg_job_cap.yaml +54 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/bg_kill_command.yaml +51 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/bg_killed_at_turn_end.yaml +50 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/bg_start_await_cursor.yaml +61 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/cwd_escape.yaml +26 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/home_escape.yaml +41 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/large_stdout_spill_keeps_exit.yaml +29 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/mempalace_refused_memory_off.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/mempalace_search_only.yaml +83 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/nonzero_exit.yaml +29 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/run_command.yaml +21 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/shell_wrapper_bypass.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/timeout_partial_output.yaml +71 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/shell/unscreenable_script_fails_closed.yaml +32 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/skills/list_then_read_skill.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/skills/skill_symlink_escape.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/skills/skill_write_denied.yaml +64 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/skills/skills_in_prompt.yaml +21 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/skills/skills_path_hot_reload.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/skills/slash_unknown_skill.yaml +23 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/store/compaction_reset_row_ids.yaml +45 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/store/transcript_convertible.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/store/usage_recorded_on_turn_complete.yaml +27 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/child_errors_record_failed.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/child_memory_read_only.yaml +40 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/expect_files_absent.yaml +34 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/expect_files_escape.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/expect_files_present.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/large_ndjson_line.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/ledger_context_forwarded.yaml +29 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/nested_task_refused.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/parallel_task_cap.yaml +89 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/parent_cancel.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/persona_applied.yaml +43 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/queue_pending_not_success.yaml +33 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/subagent_roundtrip.yaml +50 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/subagent_timeout.yaml +43 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/system_prompt_redacted_on_pipe.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/subagents/unknown_subagent_type.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/caps.yaml +98 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/ids_stable.yaml +58 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/mirror_hydrate.yaml +37 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/reminder_once.yaml +147 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/single_in_progress.yaml +46 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/todo_list.yaml +22 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/todo/todo_list_steps.yaml +67 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/block_denies_mutating_tools.yaml +79 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/constraint_touch_negative.yaml +49 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/constraint_touch_positive.yaml +54 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/done_unmet_positive.yaml +45 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/error_streak_negative.yaml +42 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/error_streak_positive.yaml +61 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/free_text_constraint_never_matches.yaml +62 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/judge_malformed_fails_open.yaml +64 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/judge_rate_limits.yaml +66 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/judge_replay_valid.yaml +79 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/judge_spend_ratio.yaml +73 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/mailbox_stale_checkpoint_dropped.yaml +62 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/min_turn_before_verdict.yaml +74 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/no_progress_budget_burn_not_mailboxed.yaml +60 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/preempt_negative.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/repeat_correction_positive.yaml +58 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/replan_one_turn.yaml +63 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/rewrite_churn_positive.yaml +70 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/rewrite_effects_branch_copy.yaml +36 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/severity_cap_nudge.yaml +80 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/sticky_nudge.yaml +72 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/supersession_negative.yaml +39 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/verdict_in_history_stripped_for_provider.yaml +62 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/verifier_off_no_effect.yaml +35 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/write_without_read_negative.yaml +43 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/verifier/write_without_read_positive.yaml +65 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/backend_none_not_advertised.yaml +25 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/browser_mcp.json +13 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/browser_stop_on_disconnect.yaml +38 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/browser_stop_server.py +30 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/empty_query.yaml +32 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/max_results.yaml +31 -0
- monkeybot-3.11.1/regression/t2/loop/scenarios/web/web_search.yaml +37 -0
- monkeybot-3.11.1/regression/t2/python/test_drift_confusion_matrix.py +150 -0
- monkeybot-3.11.1/regression/t2/python/test_e2e_simple_reply.py +118 -0
- monkeybot-3.11.1/regression/t2/python/test_grep_parity.py +56 -0
- monkeybot-3.11.1/regression/t2/python/test_hooks_lifecycle.py +250 -0
- monkeybot-3.11.1/regression/t2/python/test_jail.py +93 -0
- monkeybot-3.11.1/regression/t2/python/test_memory_commit.py +70 -0
- monkeybot-3.11.1/regression/t2/python/test_observability_acceptance.py +252 -0
- monkeybot-3.11.1/regression/t2/python/test_observability_integration.py +403 -0
- monkeybot-3.11.1/regression/t2/python/test_ops_cli.py +283 -0
- monkeybot-3.11.1/regression/t2/python/test_ops_observability.py +245 -0
- monkeybot-3.11.1/regression/t2/python/test_prompt_caching_integration.py +142 -0
- monkeybot-3.11.1/regression/t2/python/test_scheduler_engine.py +389 -0
- monkeybot-3.11.1/regression/t2/python/test_sse_stream_pressure.py +100 -0
- monkeybot-3.11.1/regression/t2/python/test_subagent_worker_pool.py +155 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_blocks_history_rewrite.yaml +17 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_guardrail_budget.yaml +21 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_interrupt.yaml +33 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_slot_limit.yaml +23 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_text_turn.yaml +32 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_tool_confirmation.yaml +41 -0
- monkeybot-3.11.1/regression/t2/realtime/scenarios/ws_tool_turn.yaml +32 -0
- monkeybot-3.11.1/regression/t3/__init__.py +1 -0
- monkeybot-3.11.1/regression/t3/mcp/tools_list_call.json +110 -0
- monkeybot-3.11.1/regression/t3/memory/wake_up_snapshot.json +107 -0
- monkeybot-3.11.1/regression/t3/sse/basic_turn.sse +26 -0
- monkeybot-3.11.1/regression/t3/sse/cassette_turn.sse +56 -0
- monkeybot-3.11.1/regression/t3/sse/tool_turn.sse +47 -0
- monkeybot-3.11.1/regression/t3/subagents/child_tape.ndjson +9 -0
- monkeybot-3.11.1/regression/t3/test_golden_sse.py +152 -0
- monkeybot-3.11.1/regression/t3/test_replay_mcp.py +261 -0
- monkeybot-3.11.1/regression/t3/test_replay_subagent_tape.py +191 -0
- monkeybot-3.11.1/regression/t3/test_replay_trajectories.py +252 -0
- monkeybot-3.11.1/regression/t3/test_replay_wake_up.py +237 -0
- monkeybot-3.11.1/regression/t3/test_replay_wire.py +157 -0
- monkeybot-3.11.1/regression/t3/tools/__init__.py +1 -0
- monkeybot-3.11.1/regression/t3/tools/cassette.py +248 -0
- monkeybot-3.11.1/regression/t3/tools/check_staleness.py +94 -0
- monkeybot-3.11.1/regression/t3/tools/from_transcript.py +511 -0
- monkeybot-3.11.1/regression/t3/tools/record_wire.py +498 -0
- monkeybot-3.11.1/regression/t3/trajectories/ctx/replay_live_compaction.cassette.json +4622 -0
- monkeybot-3.11.1/regression/t3/trajectories/ctx/replay_live_compaction.yaml +41 -0
- monkeybot-3.11.1/regression/t3/trajectories/loop/replay_live_doom_loop.cassette.json +198 -0
- monkeybot-3.11.1/regression/t3/trajectories/loop/replay_live_doom_loop.yaml +31 -0
- monkeybot-3.11.1/regression/t3/trajectories/loop/replay_live_truncation.cassette.json +65 -0
- monkeybot-3.11.1/regression/t3/trajectories/loop/replay_live_truncation.yaml +30 -0
- monkeybot-3.11.1/regression/t3/trajectories/shell/replay_live_pytest_run.cassette.json +895 -0
- monkeybot-3.11.1/regression/t3/trajectories/shell/replay_live_pytest_run.yaml +21 -0
- monkeybot-3.11.1/regression/t3/trajectories/verifier/replay_drift_tape.cassette.json +434 -0
- monkeybot-3.11.1/regression/t3/trajectories/verifier/replay_drift_tape.yaml +45 -0
- monkeybot-3.11.1/regression/t3/wire/ollama_cloud/glm_tool_turn.json +137 -0
- monkeybot-3.11.1/regression/t3/wire/ollama_cloud/thinking_only_completion.json +151 -0
- monkeybot-3.11.1/regression/t4/__init__.py +1 -0
- monkeybot-3.11.1/regression/t4/__main__.py +8 -0
- monkeybot-3.11.1/regression/t4/agent/memory/.embedder_identity +1 -0
- monkeybot-3.11.1/regression/t4/agent/memory/.embedding-migrate.lock +0 -0
- monkeybot-3.11.1/regression/t4/agent/memory/.palace_id +1 -0
- monkeybot-3.11.1/regression/t4/agent/memory/.palace_write.lock +0 -0
- monkeybot-3.11.1/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/data_level0.bin +0 -0
- monkeybot-3.11.1/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/header.bin +0 -0
- monkeybot-3.11.1/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/length.bin +0 -0
- monkeybot-3.11.1/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/link_lists.bin +0 -0
- monkeybot-3.11.1/regression/t4/agent/memory/identity.txt +3 -0
- monkeybot-3.11.1/regression/t4/agent/memory/mempalace_embedder.json +6 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/.t4-gateway-993b836fb2a9.yaml +31 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/AGENT.researcher.md +3 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/grants.json +14 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/mcp.json +12 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/mcp.progressive.json +12 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/monkeybot.coding.yaml +56 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/monkeybot.verifier-judge.yaml +55 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/monkeybot.verifier-tracker.yaml +54 -0
- monkeybot-3.11.1/regression/t4/agent/monkeybot_config/monkeybot.yaml +40 -0
- monkeybot-3.11.1/regression/t4/agent/pyproject.toml +19 -0
- monkeybot-3.11.1/regression/t4/agent/uv.lock +4078 -0
- monkeybot-3.11.1/regression/t4/assertions.py +509 -0
- monkeybot-3.11.1/regression/t4/baselines/smoke.md +55 -0
- monkeybot-3.11.1/regression/t4/conftest.py +2 -0
- monkeybot-3.11.1/regression/t4/diff.py +127 -0
- monkeybot-3.11.1/regression/t4/eval_config.yaml +4 -0
- monkeybot-3.11.1/regression/t4/gateway.py +451 -0
- monkeybot-3.11.1/regression/t4/models.py +189 -0
- monkeybot-3.11.1/regression/t4/persistence.py +196 -0
- monkeybot-3.11.1/regression/t4/preflight.py +249 -0
- monkeybot-3.11.1/regression/t4/python/__init__.py +1 -0
- monkeybot-3.11.1/regression/t4/python/test_docker_image_health.py +108 -0
- monkeybot-3.11.1/regression/t4/python/test_provider_live_matrix.py +164 -0
- monkeybot-3.11.1/regression/t4/report.py +607 -0
- monkeybot-3.11.1/regression/t4/runner.py +817 -0
- monkeybot-3.11.1/regression/t4/scenario_loader.py +234 -0
- monkeybot-3.11.1/regression/t4/scenarios/attachments/describe_image_live.yaml +14 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding/add_feature_with_tests.yaml +21 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding/fix_failing_test.yaml +18 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding/navigate_repo.yaml +19 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/add_bulk_discount.yaml +24 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/fix_discount_rounding.yaml +19 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/honest_unfixable_failure.yaml +17 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/multi_feature_long.yaml +26 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/navigate_intl_rate.yaml +16 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/noisy_test_failure.yaml +18 -0
- monkeybot-3.11.1/regression/t4/scenarios/coding_hard/rename_calc_tax.yaml +19 -0
- monkeybot-3.11.1/regression/t4/scenarios/config/reload_memory_off_live.yaml +18 -0
- monkeybot-3.11.1/regression/t4/scenarios/context/post_compaction_continuity.yaml +35 -0
- monkeybot-3.11.1/regression/t4/scenarios/context/summarization_trigger.yaml +51 -0
- monkeybot-3.11.1/regression/t4/scenarios/drift/declares_done.yaml +23 -0
- monkeybot-3.11.1/regression/t4/scenarios/drift/path_constraint.yaml +28 -0
- monkeybot-3.11.1/regression/t4/scenarios/drift/preempt.yaml +22 -0
- monkeybot-3.11.1/regression/t4/scenarios/drift/repeat_correction.yaml +23 -0
- monkeybot-3.11.1/regression/t4/scenarios/drift/supersession.yaml +21 -0
- monkeybot-3.11.1/regression/t4/scenarios/file/core_read.yaml +13 -0
- monkeybot-3.11.1/regression/t4/scenarios/file/core_read_error.yaml +13 -0
- monkeybot-3.11.1/regression/t4/scenarios/file/core_write.yaml +13 -0
- monkeybot-3.11.1/regression/t4/scenarios/file/grep_absence_honesty.yaml +24 -0
- monkeybot-3.11.1/regression/t4/scenarios/gateway/live_resume.yaml +17 -0
- monkeybot-3.11.1/regression/t4/scenarios/hooks/evidence_citation_live.yaml +15 -0
- monkeybot-3.11.1/regression/t4/scenarios/mcp/enable_then_echo_live.yaml +19 -0
- monkeybot-3.11.1/regression/t4/scenarios/mcp/get_prompt.yaml +15 -0
- monkeybot-3.11.1/regression/t4/scenarios/mcp/list_resources.yaml +15 -0
- monkeybot-3.11.1/regression/t4/scenarios/mcp/tool_invoke.yaml +15 -0
- monkeybot-3.11.1/regression/t4/scenarios/memory/recall_cross_session.yaml +15 -0
- monkeybot-3.11.1/regression/t4/scenarios/memory/recall_single_session.yaml +14 -0
- monkeybot-3.11.1/regression/t4/scenarios/memory/search_past_session.yaml +19 -0
- monkeybot-3.11.1/regression/t4/scenarios/multi_turn/task_tracking.yaml +14 -0
- monkeybot-3.11.1/regression/t4/scenarios/scheduler/http_one_tick_live.yaml +18 -0
- monkeybot-3.11.1/regression/t4/scenarios/scheduler/model_starts_loop.yaml +20 -0
- monkeybot-3.11.1/regression/t4/scenarios/shell/core_run_command.yaml +14 -0
- monkeybot-3.11.1/regression/t4/scenarios/shell/core_run_command_sandbox.yaml +23 -0
- monkeybot-3.11.1/regression/t4/scenarios/skills/skill_invocation.yaml +14 -0
- monkeybot-3.11.1/regression/t4/scenarios/subagents/dispatch_complete.yaml +12 -0
- monkeybot-3.11.1/regression/t4/scenarios/subagents/persona_dispatch.yaml +22 -0
- monkeybot-3.11.1/regression/t4/score.py +383 -0
- monkeybot-3.11.1/regression/t4/suites/coding.yaml +15 -0
- monkeybot-3.11.1/regression/t4/suites/coding_hard.yaml +18 -0
- monkeybot-3.11.1/regression/t4/suites/context.yaml +14 -0
- monkeybot-3.11.1/regression/t4/suites/drift.yaml +17 -0
- monkeybot-3.11.1/regression/t4/suites/mcp.yaml +16 -0
- monkeybot-3.11.1/regression/t4/suites/memory.yaml +13 -0
- monkeybot-3.11.1/regression/t4/suites/nightly.yaml +64 -0
- monkeybot-3.11.1/regression/t4/suites/scheduler.yaml +12 -0
- monkeybot-3.11.1/regression/t4/suites/smoke.yaml +26 -0
- monkeybot-3.11.1/regression/t4/suites/subagents.yaml +11 -0
- monkeybot-3.11.1/regression/t5/__init__.py +1 -0
- monkeybot-3.11.1/regression/t5/__main__.py +8 -0
- monkeybot-3.11.1/regression/t5/baselines/subagents__ollama-cloud__glm-5.3-flash.json +18 -0
- monkeybot-3.11.1/regression/t5/compare.py +124 -0
- monkeybot-3.11.1/regression/t5/parallel.py +210 -0
- monkeybot-3.11.1/regression/t5/python/test_cancel_storm.py +59 -0
- monkeybot-3.11.1/regression/t5/python/test_reconnect_storm.py +69 -0
- monkeybot-3.11.1/regression/t5/runs/coding.json +173 -0
- monkeybot-3.11.1/regression/t5/runs/mcp.json +468 -0
- monkeybot-3.11.1/regression/t5/runs/smoke.json +394 -0
- monkeybot-3.11.1/regression/t5/runs/subagents.json +216 -0
- monkeybot-3.11.1/regression/t5/stats.py +242 -0
- monkeybot-3.11.1/regression/t5/suites/capability.yaml +33 -0
- monkeybot-3.11.1/regression/t5/suites/drift.yaml +17 -0
- monkeybot-3.11.1/regression/t5/suites/reliability.yaml +15 -0
- monkeybot-3.11.1/regression/t5/trials.py +498 -0
- monkeybot-3.11.1/scripts/ci-local.sh +83 -0
- monkeybot-3.11.1/scripts/create_schema.py +82 -0
- monkeybot-3.11.1/scripts/precommit-pytest.sh +33 -0
- monkeybot-3.11.1/scripts/smoke_global_cli.sh +91 -0
- monkeybot-3.11.1/src/monkeybot/computer/permissions.py +224 -0
- monkeybot-3.11.1/src/monkeybot/core/bootstrap.py +315 -0
- monkeybot-3.11.1/src/monkeybot/core/coding/verification_gate.py +385 -0
- monkeybot-3.11.1/src/monkeybot/core/config/snapshot.py +1080 -0
- monkeybot-3.11.1/src/monkeybot/core/config/validation.py +302 -0
- monkeybot-3.11.1/src/monkeybot/core/context/__init__.py +1227 -0
- monkeybot-3.11.1/src/monkeybot/core/context/secret_egress.py +455 -0
- monkeybot-3.11.1/src/monkeybot/core/hooks/evidence_guard.py +302 -0
- monkeybot-3.11.1/src/monkeybot/core/layout.py +351 -0
- monkeybot-3.11.1/src/monkeybot/core/mcp/mcp_client.py +1730 -0
- monkeybot-3.11.1/src/monkeybot/core/mcp/ports_mcp.py +150 -0
- monkeybot-3.11.1/src/monkeybot/core/memory/migrate_embedding.py +328 -0
- monkeybot-3.11.1/src/monkeybot/core/memory/outbox.py +525 -0
- monkeybot-3.11.1/src/monkeybot/core/memory/palace.py +490 -0
- monkeybot-3.11.1/src/monkeybot/core/memory/subsystem.py +368 -0
- monkeybot-3.11.1/src/monkeybot/core/memory/writer.py +222 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/backends.py +334 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/durable_runs.py +376 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/firestore.py +1778 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/firestore_scheduled_loops.py +527 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/goal_ledger.py +556 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/postgres.py +2046 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/scheduled_loops.py +735 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/session_turn_locks.py +108 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/transcript.py +808 -0
- monkeybot-3.11.1/src/monkeybot/core/persistence/usage_buckets.py +77 -0
- monkeybot-3.11.1/src/monkeybot/core/prompts/harness_prompt.py +228 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/background_summary.py +424 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/chat_title.py +107 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/context_budget.py +256 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/history_compaction.py +872 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/realtime_loop.py +778 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/tool_dispatch.py +1198 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/turn_loop.py +2204 -0
- monkeybot-3.11.1/src/monkeybot/core/runtime/utterance_buffer.py +186 -0
- monkeybot-3.11.1/src/monkeybot/core/subagents/subagent_proto.py +388 -0
- monkeybot-3.11.1/src/monkeybot/core/subagents/subagent_worker.py +552 -0
- monkeybot-3.11.1/src/monkeybot/core/testing/mocks_provider.py +588 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/core_tool_executor.py +3193 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/fs_isolation.py +992 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/grant_store.py +310 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/inspector.py +656 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/path_grant_inspector.py +116 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/sandbox_executor.py +805 -0
- monkeybot-3.11.1/src/monkeybot/core/tools/workspace_service.py +1974 -0
- monkeybot-3.11.1/src/monkeybot/core/verifier/classify.py +285 -0
- monkeybot-3.11.1/src/monkeybot/core/verifier/judge.py +588 -0
- monkeybot-3.11.1/src/monkeybot/core/verifier/ledger.py +574 -0
- monkeybot-3.11.1/src/monkeybot/core/verifier/mailbox.py +574 -0
- monkeybot-3.11.1/src/monkeybot/core/verifier/tracker.py +383 -0
- monkeybot-3.11.1/src/monkeybot/gateway/realtime/app.py +119 -0
- monkeybot-3.11.1/src/monkeybot/gateway/realtime/routes.py +1070 -0
- monkeybot-3.11.1/src/monkeybot/gateway/realtime/session.py +249 -0
- monkeybot-3.11.1/src/monkeybot/gateway/sse/app.py +1554 -0
- monkeybot-3.11.1/src/monkeybot/gateway/sse/models.py +302 -0
- monkeybot-3.11.1/src/monkeybot/gateway/sse/routes.py +1517 -0
- monkeybot-3.11.1/src/monkeybot/providers/_openai_compat.py +1744 -0
- monkeybot-3.11.1/src/monkeybot/providers/_stream_marks.py +108 -0
- monkeybot-3.11.1/src/monkeybot/providers/fireworks.py +135 -0
- monkeybot-3.11.1/src/monkeybot/providers/gemini.py +1036 -0
- monkeybot-3.11.1/src/monkeybot/providers/huggingface.py +157 -0
- monkeybot-3.11.1/src/monkeybot/providers/nvidia.py +132 -0
- monkeybot-3.11.1/src/monkeybot/providers/ollama.py +351 -0
- monkeybot-3.11.1/src/monkeybot/providers/openai.py +174 -0
- monkeybot-3.11.1/src/monkeybot/providers/openrouter.py +134 -0
- monkeybot-3.11.1/src/monkeybot/providers/pricing.py +400 -0
- monkeybot-3.11.1/src/monkeybot/scaffold/__init__.py +31 -0
- monkeybot-3.11.1/src/monkeybot/scheduler/engine.py +394 -0
- monkeybot-3.11.1/src/monkeybot/todo_list/__init__.py +44 -0
- monkeybot-3.11.1/src/monkeybot/todo_list/hook.py +97 -0
- monkeybot-3.11.1/src/monkeybot/todo_list/store.py +346 -0
- monkeybot-3.11.1/src/monkeybot/todo_list/tool.py +149 -0
- monkeybot-3.11.1/testkit/__init__.py +0 -0
- monkeybot-3.11.1/testkit/backends.py +68 -0
- monkeybot-3.11.1/testkit/clock.py +25 -0
- monkeybot-3.11.1/testkit/context.py +108 -0
- monkeybot-3.11.1/testkit/conversations.py +153 -0
- monkeybot-3.11.1/testkit/data/attachments/tiny.jpg +0 -0
- monkeybot-3.11.1/testkit/data/attachments/tiny.png +0 -0
- monkeybot-3.11.1/testkit/data/attachments/with-text.pdf +66 -0
- monkeybot-3.11.1/testkit/data/attachments/without-text.pdf +45 -0
- monkeybot-3.11.1/testkit/executors.py +75 -0
- monkeybot-3.11.1/testkit/failure_ledger.py +685 -0
- monkeybot-3.11.1/testkit/failures/__init__.py +0 -0
- monkeybot-3.11.1/testkit/failures/__main__.py +257 -0
- monkeybot-3.11.1/testkit/failures/catalog.py +281 -0
- monkeybot-3.11.1/testkit/failures/store.py +452 -0
- monkeybot-3.11.1/testkit/gateway.py +263 -0
- monkeybot-3.11.1/testkit/gateway_ports.py +54 -0
- monkeybot-3.11.1/testkit/history.py +61 -0
- monkeybot-3.11.1/testkit/hooks.py +48 -0
- monkeybot-3.11.1/testkit/inspectors.py +11 -0
- monkeybot-3.11.1/testkit/mcp.py +215 -0
- monkeybot-3.11.1/testkit/memory.py +44 -0
- monkeybot-3.11.1/testkit/palace.py +110 -0
- monkeybot-3.11.1/testkit/pending_bus.py +100 -0
- monkeybot-3.11.1/testkit/provider.py +183 -0
- monkeybot-3.11.1/testkit/py.typed +0 -0
- monkeybot-3.11.1/testkit/sandbox.py +96 -0
- monkeybot-3.11.1/testkit/scrub.py +85 -0
- monkeybot-3.11.1/testkit/sse.py +318 -0
- monkeybot-3.11.1/testkit/subagent_worker.py +261 -0
- monkeybot-3.11.1/testkit/verifier.py +339 -0
- monkeybot-3.11.1/testkit/web_search.py +47 -0
- monkeybot-3.11.1/tests/conftest.py +99 -0
- monkeybot-3.11.1/tests/contracts/__init__.py +1 -0
- monkeybot-3.11.1/tests/contracts/conftest.py +76 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/harness_prompt.default.txt +51 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/harness_prompt.emission_terse.txt +66 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/harness_prompt.mcp_catalog.txt +52 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/harness_prompt.memory_off.txt +51 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/harness_prompt.sandbox_on.txt +51 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/harness_prompt.task_terse.txt +74 -0
- monkeybot-3.11.1/tests/contracts/goldens/prompts/volatile_tail_parts.json +8 -0
- monkeybot-3.11.1/tests/contracts/goldens/routes.txt +53 -0
- monkeybot-3.11.1/tests/contracts/goldens/span_names.txt +41 -0
- monkeybot-3.11.1/tests/contracts/goldens/sse/schema.json +1270 -0
- monkeybot-3.11.1/tests/contracts/goldens/tool_error_codes.txt +43 -0
- monkeybot-3.11.1/tests/contracts/tables/config_precedence.yaml +116 -0
- monkeybot-3.11.1/tests/contracts/tables/policy_decisions.yaml +297 -0
- monkeybot-3.11.1/tests/contracts/tables/provider_error_mapping.yaml +28 -0
- monkeybot-3.11.1/tests/contracts/test_catalog_pairing.py +177 -0
- monkeybot-3.11.1/tests/contracts/test_config_matrix.py +214 -0
- monkeybot-3.11.1/tests/contracts/test_harness_prompt_golden.py +186 -0
- monkeybot-3.11.1/tests/contracts/test_migrations_replay.py +291 -0
- monkeybot-3.11.1/tests/contracts/test_policy_decision_table.py +220 -0
- monkeybot-3.11.1/tests/contracts/test_provider_conformance.py +1427 -0
- monkeybot-3.11.1/tests/contracts/test_realtime_divergence.py +122 -0
- monkeybot-3.11.1/tests/contracts/test_route_table.py +229 -0
- monkeybot-3.11.1/tests/contracts/test_scaffold_reexports.py +44 -0
- monkeybot-3.11.1/tests/contracts/test_span_names.py +143 -0
- monkeybot-3.11.1/tests/contracts/test_sse_schema.py +572 -0
- monkeybot-3.11.1/tests/contracts/test_storage_parity.py +503 -0
- monkeybot-3.11.1/tests/contracts/test_tool_error_catalog.py +254 -0
- monkeybot-3.11.1/tests/unit/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/cli/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/computer/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/computer/test_permissions.py +348 -0
- monkeybot-3.11.1/tests/unit/computer/test_platform_gate.py +35 -0
- monkeybot-3.11.1/tests/unit/computer/test_wiring.py +177 -0
- monkeybot-3.11.1/tests/unit/conftest.py +15 -0
- monkeybot-3.11.1/tests/unit/core/attachments/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/coding/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/coding/test_verification_gate.py +394 -0
- monkeybot-3.11.1/tests/unit/core/config/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/config/test_env_map_grep_gates.py +44 -0
- monkeybot-3.11.1/tests/unit/core/config/test_runtime_config_snapshot.py +935 -0
- monkeybot-3.11.1/tests/unit/core/context/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/context/test_context.py +692 -0
- monkeybot-3.11.1/tests/unit/core/context/test_project_context.py +448 -0
- monkeybot-3.11.1/tests/unit/core/context/test_secret_egress.py +477 -0
- monkeybot-3.11.1/tests/unit/core/context/test_skill_discovery_rules.py +52 -0
- monkeybot-3.11.1/tests/unit/core/context/test_tool_result_ingress.py +208 -0
- monkeybot-3.11.1/tests/unit/core/fixtures/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/goals/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/goals/test_goals.py +496 -0
- monkeybot-3.11.1/tests/unit/core/hooks/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/hooks/test_evidence_guard.py +433 -0
- monkeybot-3.11.1/tests/unit/core/hooks/test_hooks.py +215 -0
- monkeybot-3.11.1/tests/unit/core/hooks/test_settlement.py +106 -0
- monkeybot-3.11.1/tests/unit/core/llm/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/llm/test_provider_contract.py +259 -0
- monkeybot-3.11.1/tests/unit/core/mcp/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/mcp/test_mcp_client.py +1609 -0
- monkeybot-3.11.1/tests/unit/core/memory/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/memory/test_memory_scoping.py +175 -0
- monkeybot-3.11.1/tests/unit/core/memory/test_mempalace.py +492 -0
- monkeybot-3.11.1/tests/unit/core/memory/test_migrate_embedding.py +144 -0
- monkeybot-3.11.1/tests/unit/core/memory/test_review_fixes.py +1310 -0
- monkeybot-3.11.1/tests/unit/core/messages/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/messages/test_gemini_history_replay.py +353 -0
- monkeybot-3.11.1/tests/unit/core/messages/test_tool_integrity.py +198 -0
- monkeybot-3.11.1/tests/unit/core/persistence/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/persistence/test_durable_runs.py +217 -0
- monkeybot-3.11.1/tests/unit/core/persistence/test_goal_ledger.py +815 -0
- monkeybot-3.11.1/tests/unit/core/persistence/test_history.py +436 -0
- monkeybot-3.11.1/tests/unit/core/prompts/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/prompts/test_harness_prompt.py +218 -0
- monkeybot-3.11.1/tests/unit/core/prompts/test_prompt.py +399 -0
- monkeybot-3.11.1/tests/unit/core/runtime/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_background_summary.py +533 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_chat_title.py +124 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_doom_loop.py +682 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_empty_completion.py +184 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_history_compaction_split.py +313 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_input_admission.py +924 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_loop.py +3731 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_loop_hooks.py +968 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_loop_observability.py +202 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_truncated_tool_batch.py +205 -0
- monkeybot-3.11.1/tests/unit/core/runtime/test_utterance_buffer.py +140 -0
- monkeybot-3.11.1/tests/unit/core/subagents/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/subagents/test_child_tool_list.py +119 -0
- monkeybot-3.11.1/tests/unit/core/subagents/test_subagent_proto.py +505 -0
- monkeybot-3.11.1/tests/unit/core/subagents/test_subagent_trace_propagation.py +620 -0
- monkeybot-3.11.1/tests/unit/core/subagents/test_subagent_worker_paths.py +420 -0
- monkeybot-3.11.1/tests/unit/core/subagents/test_worker_pool.py +794 -0
- monkeybot-3.11.1/tests/unit/core/test_bootstrap.py +499 -0
- monkeybot-3.11.1/tests/unit/core/testing/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/tools/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_background_jobs.py +593 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_core_tool_executor.py +5682 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_fs_isolation.py +1026 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_grant_store.py +194 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_inspector.py +500 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_path_grant_inspector.py +247 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_sandbox_executor.py +933 -0
- monkeybot-3.11.1/tests/unit/core/tools/test_spill_dynamic.py +402 -0
- monkeybot-3.11.1/tests/unit/core/types/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/verifier/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_progress_tracker.py +771 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_inspector.py +108 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_judge.py +709 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_mailbox_lifecycle.py +351 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_port.py +30 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_rewrite_effects.py +360 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_sticky_nudge.py +478 -0
- monkeybot-3.11.1/tests/unit/core/verifier/test_verifier_tracker.py +62 -0
- monkeybot-3.11.1/tests/unit/core/workspace/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/gateway/realtime/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/gateway/sse/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/gateway/sse/test_chat_title_route.py +150 -0
- monkeybot-3.11.1/tests/unit/gateway/sse/test_routes.py +686 -0
- monkeybot-3.11.1/tests/unit/gateway/sse/test_session_bus.py +243 -0
- monkeybot-3.11.1/tests/unit/gateway/test_otel_lifespan.py +158 -0
- monkeybot-3.11.1/tests/unit/observability/test_loop_hook_spans.py +80 -0
- monkeybot-3.11.1/tests/unit/observability/test_span_contract.py +236 -0
- monkeybot-3.11.1/tests/unit/observability/test_sqlite_exporter.py +709 -0
- monkeybot-3.11.1/tests/unit/observability/test_turn_complete_trace.py +61 -0
- monkeybot-3.11.1/tests/unit/packaging/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/packaging/test_cold_start.py +90 -0
- monkeybot-3.11.1/tests/unit/packaging/test_packaging_config.py +93 -0
- monkeybot-3.11.1/tests/unit/packaging/test_release_script.py +192 -0
- monkeybot-3.11.1/tests/unit/providers/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/providers/conftest.py +16 -0
- monkeybot-3.11.1/tests/unit/providers/test_anthropic_cache.py +742 -0
- monkeybot-3.11.1/tests/unit/providers/test_bedrock_converse.py +613 -0
- monkeybot-3.11.1/tests/unit/providers/test_connection_warm.py +164 -0
- monkeybot-3.11.1/tests/unit/providers/test_openai_history.py +489 -0
- monkeybot-3.11.1/tests/unit/providers/test_pricing.py +368 -0
- monkeybot-3.11.1/tests/unit/providers/test_sampling.py +490 -0
- monkeybot-3.11.1/tests/unit/providers/test_sdk_client_reuse.py +747 -0
- monkeybot-3.11.1/tests/unit/providers/test_sonnet5_sampling.py +568 -0
- monkeybot-3.11.1/tests/unit/providers/test_source_grep_gates.py +68 -0
- monkeybot-3.11.1/tests/unit/providers/test_tiktoken_encoding.py +161 -0
- monkeybot-3.11.1/tests/unit/providers/test_vertex_claude_history.py +37 -0
- monkeybot-3.11.1/tests/unit/scheduler/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/scheduler/test_interval.py +86 -0
- monkeybot-3.11.1/tests/unit/skills/test_generate_image_script.py +208 -0
- monkeybot-3.11.1/tests/unit/testkit/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/testkit/test_clock.py +255 -0
- monkeybot-3.11.1/tests/unit/testkit/test_failure_ledger.py +379 -0
- monkeybot-3.11.1/tests/unit/testkit/test_failures_cli.py +348 -0
- monkeybot-3.11.1/tests/unit/testkit/test_fake_history.py +35 -0
- monkeybot-3.11.1/tests/unit/testkit/test_scripted_provider.py +478 -0
- monkeybot-3.11.1/tests/unit/testkit/test_scrub.py +62 -0
- monkeybot-3.11.1/tests/unit/testkit/test_sse_reader.py +78 -0
- monkeybot-3.11.1/tests/unit/todo_list/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/todo_list/test_todo_list.py +592 -0
- monkeybot-3.11.1/tests/unit/web_search/__init__.py +0 -0
- monkeybot-3.11.1/tests/unit/web_search/test_web_search.py +301 -0
- monkeybot-3.11.1/uv.lock +5578 -0
- monkeybot-3.10.0/.cursor/hooks.json +0 -21
- monkeybot-3.10.0/.cursor/skills/mb-retro/SKILL.md +0 -85
- monkeybot-3.10.0/.github/workflows/ci.yml +0 -52
- monkeybot-3.10.0/.github/workflows/live-eval-smoke.yml +0 -208
- monkeybot-3.10.0/.gitignore +0 -75
- monkeybot-3.10.0/.pre-commit-config.yaml +0 -36
- monkeybot-3.10.0/CHANGELOG.md +0 -568
- monkeybot-3.10.0/CONTRIBUTING.md +0 -43
- monkeybot-3.10.0/PKG-INFO +0 -202
- monkeybot-3.10.0/README.md +0 -105
- monkeybot-3.10.0/cli/pyproject.toml +0 -44
- monkeybot-3.10.0/cli/skills/monkeybot/SKILL.md +0 -202
- monkeybot-3.10.0/cli/skills/monkeybot/references/config-sections.md +0 -168
- monkeybot-3.10.0/cli/src/monkeybot_cli/chat_tui.py +0 -1909
- monkeybot-3.10.0/cli/src/monkeybot_cli/chat_tui_widgets.py +0 -1117
- monkeybot-3.10.0/cli/src/monkeybot_cli/runtime_python.py +0 -746
- monkeybot-3.10.0/cli/src/monkeybot_cli/scaffold.py +0 -515
- monkeybot-3.10.0/cli/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml +0 -277
- monkeybot-3.10.0/cli/tests/test_chat_tui.py +0 -2389
- monkeybot-3.10.0/cli/tests/test_runtime_python.py +0 -1078
- monkeybot-3.10.0/cli/tests/test_scaffold.py +0 -421
- monkeybot-3.10.0/cli/uv.lock +0 -1768
- monkeybot-3.10.0/docs/deploy-pattern-d-realtime.md +0 -306
- monkeybot-3.10.0/docs/features.md +0 -871
- monkeybot-3.10.0/docs/getting-started.md +0 -182
- monkeybot-3.10.0/docs/live-evals.md +0 -152
- monkeybot-3.10.0/docs/spill-dynamic-design.md +0 -557
- monkeybot-3.10.0/docs/verifier-agent-design.md +0 -831
- monkeybot-3.10.0/evals/TEST_COVERAGE.md +0 -67
- monkeybot-3.10.0/evals/assertions.py +0 -323
- monkeybot-3.10.0/evals/baselines/smoke.md +0 -55
- monkeybot-3.10.0/evals/conftest.py +0 -4
- monkeybot-3.10.0/evals/diff.py +0 -130
- monkeybot-3.10.0/evals/eval_config.yaml +0 -5
- monkeybot-3.10.0/evals/models.py +0 -141
- monkeybot-3.10.0/evals/persistence.py +0 -193
- monkeybot-3.10.0/evals/report.py +0 -386
- monkeybot-3.10.0/evals/runner.py +0 -315
- monkeybot-3.10.0/evals/scenario_loader.py +0 -195
- monkeybot-3.10.0/evals/scenarios/coding/add_feature_with_tests.yaml +0 -19
- monkeybot-3.10.0/evals/scenarios/coding/fix_failing_test.yaml +0 -16
- monkeybot-3.10.0/evals/scenarios/coding/navigate_repo.yaml +0 -17
- monkeybot-3.10.0/evals/scenarios/coding_hard/add_bulk_discount.yaml +0 -22
- monkeybot-3.10.0/evals/scenarios/coding_hard/fix_discount_rounding.yaml +0 -17
- monkeybot-3.10.0/evals/scenarios/coding_hard/honest_unfixable_failure.yaml +0 -15
- monkeybot-3.10.0/evals/scenarios/coding_hard/multi_feature_long.yaml +0 -24
- monkeybot-3.10.0/evals/scenarios/coding_hard/navigate_intl_rate.yaml +0 -14
- monkeybot-3.10.0/evals/scenarios/coding_hard/noisy_test_failure.yaml +0 -16
- monkeybot-3.10.0/evals/scenarios/coding_hard/rename_calc_tax.yaml +0 -17
- monkeybot-3.10.0/evals/scenarios/context/summarization_trigger.yaml +0 -33
- monkeybot-3.10.0/evals/scenarios/drift/declares_done.yaml +0 -20
- monkeybot-3.10.0/evals/scenarios/drift/path_constraint.yaml +0 -26
- monkeybot-3.10.0/evals/scenarios/drift/preempt.yaml +0 -20
- monkeybot-3.10.0/evals/scenarios/drift/repeat_correction.yaml +0 -21
- monkeybot-3.10.0/evals/scenarios/drift/supersession.yaml +0 -19
- monkeybot-3.10.0/evals/scenarios/mcp/get_prompt.yaml +0 -13
- monkeybot-3.10.0/evals/scenarios/mcp/list_resources.yaml +0 -13
- monkeybot-3.10.0/evals/scenarios/mcp/tool_invoke.yaml +0 -13
- monkeybot-3.10.0/evals/scenarios/memory/recall_cross_session.yaml +0 -13
- monkeybot-3.10.0/evals/scenarios/memory/recall_single_session.yaml +0 -12
- monkeybot-3.10.0/evals/scenarios/multi_turn/task_tracking.yaml +0 -12
- monkeybot-3.10.0/evals/scenarios/skills/skill_invocation.yaml +0 -11
- monkeybot-3.10.0/evals/scenarios/subagents/dispatch_complete.yaml +0 -9
- monkeybot-3.10.0/evals/scenarios/tools/core_read.yaml +0 -11
- monkeybot-3.10.0/evals/scenarios/tools/core_read_error.yaml +0 -11
- monkeybot-3.10.0/evals/scenarios/tools/core_run_command.yaml +0 -12
- monkeybot-3.10.0/evals/scenarios/tools/core_run_command_sandbox.yaml +0 -21
- monkeybot-3.10.0/evals/scenarios/tools/core_write.yaml +0 -11
- monkeybot-3.10.0/evals/scorer.py +0 -382
- monkeybot-3.10.0/evals/smoke_agent/.env.example +0 -5
- monkeybot-3.10.0/evals/smoke_agent/fixture_mcp_server.py +0 -35
- monkeybot-3.10.0/evals/smoke_agent/monkeybot_config/mcp.json +0 -12
- monkeybot-3.10.0/evals/smoke_agent/monkeybot_config/monkeybot.coding.yaml +0 -56
- monkeybot-3.10.0/evals/smoke_agent/monkeybot_config/monkeybot.verifier-on.yaml +0 -53
- monkeybot-3.10.0/evals/smoke_agent/monkeybot_config/monkeybot.yaml +0 -40
- monkeybot-3.10.0/evals/smoke_agent/pyproject.toml +0 -15
- monkeybot-3.10.0/evals/smoke_agent/uv.lock +0 -3887
- monkeybot-3.10.0/evals/suites/coding.yaml +0 -9
- monkeybot-3.10.0/evals/suites/coding_hard.yaml +0 -11
- monkeybot-3.10.0/evals/suites/drift.yaml +0 -10
- monkeybot-3.10.0/evals/suites/smoke.yaml +0 -19
- monkeybot-3.10.0/evals/test_assertions.py +0 -447
- monkeybot-3.10.0/evals/test_coding_hard_oracle.py +0 -264
- monkeybot-3.10.0/evals/test_diff.py +0 -88
- monkeybot-3.10.0/evals/test_judge.py +0 -82
- monkeybot-3.10.0/evals/test_report.py +0 -264
- monkeybot-3.10.0/evals/test_runner_sse.py +0 -336
- monkeybot-3.10.0/evals/test_scorer.py +0 -53
- monkeybot-3.10.0/evals/trials.py +0 -128
- monkeybot-3.10.0/integrations/browser-mcp/pyproject.toml +0 -27
- monkeybot-3.10.0/integrations/browser-mcp/uv.lock +0 -1212
- monkeybot-3.10.0/pyproject.toml +0 -136
- monkeybot-3.10.0/pytest.ini +0 -15
- monkeybot-3.10.0/scripts/ci-local.sh +0 -79
- monkeybot-3.10.0/scripts/create_schema.py +0 -82
- monkeybot-3.10.0/scripts/precommit-pytest.sh +0 -28
- monkeybot-3.10.0/scripts/smoke_global_cli.sh +0 -91
- monkeybot-3.10.0/src/monkeybot/computer/permissions.py +0 -220
- monkeybot-3.10.0/src/monkeybot/core/bootstrap.py +0 -293
- monkeybot-3.10.0/src/monkeybot/core/coding/verification_gate.py +0 -383
- monkeybot-3.10.0/src/monkeybot/core/config/snapshot.py +0 -1048
- monkeybot-3.10.0/src/monkeybot/core/config/validation.py +0 -271
- monkeybot-3.10.0/src/monkeybot/core/context/__init__.py +0 -1207
- monkeybot-3.10.0/src/monkeybot/core/context/secret_egress.py +0 -445
- monkeybot-3.10.0/src/monkeybot/core/hooks/evidence_guard.py +0 -271
- monkeybot-3.10.0/src/monkeybot/core/layout.py +0 -341
- monkeybot-3.10.0/src/monkeybot/core/mcp/mcp_client.py +0 -1476
- monkeybot-3.10.0/src/monkeybot/core/mcp/ports_mcp.py +0 -136
- monkeybot-3.10.0/src/monkeybot/core/memory/outbox.py +0 -499
- monkeybot-3.10.0/src/monkeybot/core/memory/palace.py +0 -446
- monkeybot-3.10.0/src/monkeybot/core/memory/subsystem.py +0 -355
- monkeybot-3.10.0/src/monkeybot/core/memory/writer.py +0 -205
- monkeybot-3.10.0/src/monkeybot/core/persistence/backends.py +0 -319
- monkeybot-3.10.0/src/monkeybot/core/persistence/durable_runs.py +0 -372
- monkeybot-3.10.0/src/monkeybot/core/persistence/firestore.py +0 -1736
- monkeybot-3.10.0/src/monkeybot/core/persistence/firestore_scheduled_loops.py +0 -514
- monkeybot-3.10.0/src/monkeybot/core/persistence/goal_ledger.py +0 -555
- monkeybot-3.10.0/src/monkeybot/core/persistence/postgres.py +0 -2015
- monkeybot-3.10.0/src/monkeybot/core/persistence/scheduled_loops.py +0 -718
- monkeybot-3.10.0/src/monkeybot/core/persistence/session_turn_locks.py +0 -107
- monkeybot-3.10.0/src/monkeybot/core/persistence/transcript.py +0 -802
- monkeybot-3.10.0/src/monkeybot/core/persistence/usage_buckets.py +0 -77
- monkeybot-3.10.0/src/monkeybot/core/prompts/harness_prompt.py +0 -227
- monkeybot-3.10.0/src/monkeybot/core/runtime/context_budget.py +0 -254
- monkeybot-3.10.0/src/monkeybot/core/runtime/history_compaction.py +0 -631
- monkeybot-3.10.0/src/monkeybot/core/runtime/realtime_loop.py +0 -770
- monkeybot-3.10.0/src/monkeybot/core/runtime/tool_dispatch.py +0 -1190
- monkeybot-3.10.0/src/monkeybot/core/runtime/turn_loop.py +0 -2094
- monkeybot-3.10.0/src/monkeybot/core/runtime/utterance_buffer.py +0 -177
- monkeybot-3.10.0/src/monkeybot/core/subagents/subagent_proto.py +0 -372
- monkeybot-3.10.0/src/monkeybot/core/subagents/subagent_worker.py +0 -544
- monkeybot-3.10.0/src/monkeybot/core/testing/mocks_provider.py +0 -86
- monkeybot-3.10.0/src/monkeybot/core/tools/core_tool_executor.py +0 -2918
- monkeybot-3.10.0/src/monkeybot/core/tools/fs_isolation.py +0 -962
- monkeybot-3.10.0/src/monkeybot/core/tools/grant_store.py +0 -259
- monkeybot-3.10.0/src/monkeybot/core/tools/inspector.py +0 -618
- monkeybot-3.10.0/src/monkeybot/core/tools/path_grant_inspector.py +0 -115
- monkeybot-3.10.0/src/monkeybot/core/tools/sandbox_executor.py +0 -799
- monkeybot-3.10.0/src/monkeybot/core/tools/workspace_service.py +0 -1952
- monkeybot-3.10.0/src/monkeybot/core/verifier/classify.py +0 -275
- monkeybot-3.10.0/src/monkeybot/core/verifier/judge.py +0 -572
- monkeybot-3.10.0/src/monkeybot/core/verifier/ledger.py +0 -574
- monkeybot-3.10.0/src/monkeybot/core/verifier/mailbox.py +0 -551
- monkeybot-3.10.0/src/monkeybot/core/verifier/tracker.py +0 -381
- monkeybot-3.10.0/src/monkeybot/gateway/realtime/app.py +0 -118
- monkeybot-3.10.0/src/monkeybot/gateway/realtime/routes.py +0 -1039
- monkeybot-3.10.0/src/monkeybot/gateway/realtime/session.py +0 -244
- monkeybot-3.10.0/src/monkeybot/gateway/sse/app.py +0 -1533
- monkeybot-3.10.0/src/monkeybot/gateway/sse/models.py +0 -291
- monkeybot-3.10.0/src/monkeybot/gateway/sse/routes.py +0 -1450
- monkeybot-3.10.0/src/monkeybot/providers/_openai_compat.py +0 -1534
- monkeybot-3.10.0/src/monkeybot/providers/fireworks.py +0 -126
- monkeybot-3.10.0/src/monkeybot/providers/gemini.py +0 -989
- monkeybot-3.10.0/src/monkeybot/providers/huggingface.py +0 -148
- monkeybot-3.10.0/src/monkeybot/providers/nvidia.py +0 -123
- monkeybot-3.10.0/src/monkeybot/providers/ollama.py +0 -342
- monkeybot-3.10.0/src/monkeybot/providers/openai.py +0 -179
- monkeybot-3.10.0/src/monkeybot/providers/openrouter.py +0 -125
- monkeybot-3.10.0/src/monkeybot/providers/pricing.py +0 -109
- monkeybot-3.10.0/src/monkeybot/scaffold/__init__.py +0 -33
- monkeybot-3.10.0/src/monkeybot/scheduler/engine.py +0 -363
- monkeybot-3.10.0/src/monkeybot/todo_list/__init__.py +0 -42
- monkeybot-3.10.0/src/monkeybot/todo_list/store.py +0 -262
- monkeybot-3.10.0/src/monkeybot/todo_list/tool.py +0 -130
- monkeybot-3.10.0/tests/acceptance/test_observability_acceptance.py +0 -252
- monkeybot-3.10.0/tests/computer/test_permissions.py +0 -342
- monkeybot-3.10.0/tests/computer/test_wiring.py +0 -174
- monkeybot-3.10.0/tests/conftest.py +0 -101
- monkeybot-3.10.0/tests/core/memory/helpers.py +0 -28
- monkeybot-3.10.0/tests/core/memory/in_memory_palace.py +0 -107
- monkeybot-3.10.0/tests/core/memory/test_mempalace.py +0 -489
- monkeybot-3.10.0/tests/core/memory/test_review_fixes.py +0 -1235
- monkeybot-3.10.0/tests/core/test_background_jobs.py +0 -591
- monkeybot-3.10.0/tests/core/test_bootstrap.py +0 -396
- monkeybot-3.10.0/tests/core/test_context.py +0 -759
- monkeybot-3.10.0/tests/core/test_core_tool_executor.py +0 -5724
- monkeybot-3.10.0/tests/core/test_doom_loop.py +0 -705
- monkeybot-3.10.0/tests/core/test_durable_runs.py +0 -217
- monkeybot-3.10.0/tests/core/test_empty_completion.py +0 -180
- monkeybot-3.10.0/tests/core/test_env_map_grep_gates.py +0 -44
- monkeybot-3.10.0/tests/core/test_evidence_guard.py +0 -392
- monkeybot-3.10.0/tests/core/test_fs_isolation.py +0 -997
- monkeybot-3.10.0/tests/core/test_gemini_history_replay.py +0 -353
- monkeybot-3.10.0/tests/core/test_goal_ledger.py +0 -840
- monkeybot-3.10.0/tests/core/test_goals.py +0 -494
- monkeybot-3.10.0/tests/core/test_grant_store.py +0 -185
- monkeybot-3.10.0/tests/core/test_harness_prompt.py +0 -213
- monkeybot-3.10.0/tests/core/test_history.py +0 -436
- monkeybot-3.10.0/tests/core/test_history_compaction_split.py +0 -265
- monkeybot-3.10.0/tests/core/test_hooks.py +0 -219
- monkeybot-3.10.0/tests/core/test_input_admission.py +0 -922
- monkeybot-3.10.0/tests/core/test_inspector.py +0 -476
- monkeybot-3.10.0/tests/core/test_loop.py +0 -3840
- monkeybot-3.10.0/tests/core/test_loop_hooks.py +0 -1055
- monkeybot-3.10.0/tests/core/test_loop_observability.py +0 -204
- monkeybot-3.10.0/tests/core/test_mcp_client.py +0 -1317
- monkeybot-3.10.0/tests/core/test_path_grant_inspector.py +0 -224
- monkeybot-3.10.0/tests/core/test_progress_tracker.py +0 -799
- monkeybot-3.10.0/tests/core/test_project_context.py +0 -448
- monkeybot-3.10.0/tests/core/test_prompt.py +0 -418
- monkeybot-3.10.0/tests/core/test_provider_contract.py +0 -259
- monkeybot-3.10.0/tests/core/test_runtime_config_snapshot.py +0 -916
- monkeybot-3.10.0/tests/core/test_sandbox_executor.py +0 -954
- monkeybot-3.10.0/tests/core/test_secret_egress.py +0 -462
- monkeybot-3.10.0/tests/core/test_settlement.py +0 -104
- monkeybot-3.10.0/tests/core/test_spill_dynamic.py +0 -399
- monkeybot-3.10.0/tests/core/test_subagent_proto.py +0 -490
- monkeybot-3.10.0/tests/core/test_subagent_trace_propagation.py +0 -659
- monkeybot-3.10.0/tests/core/test_subagent_worker_paths.py +0 -420
- monkeybot-3.10.0/tests/core/test_tool_integrity.py +0 -198
- monkeybot-3.10.0/tests/core/test_tool_result_ingress.py +0 -208
- monkeybot-3.10.0/tests/core/test_truncated_tool_batch.py +0 -201
- monkeybot-3.10.0/tests/core/test_utterance_buffer.py +0 -133
- monkeybot-3.10.0/tests/core/test_verification_gate.py +0 -383
- monkeybot-3.10.0/tests/core/test_verifier_inspector.py +0 -114
- monkeybot-3.10.0/tests/core/test_verifier_judge.py +0 -673
- monkeybot-3.10.0/tests/core/test_verifier_mailbox_lifecycle.py +0 -348
- monkeybot-3.10.0/tests/core/test_verifier_rewrite_effects.py +0 -358
- monkeybot-3.10.0/tests/core/test_verifier_sticky_nudge.py +0 -466
- monkeybot-3.10.0/tests/core/test_verifier_tracker.py +0 -62
- monkeybot-3.10.0/tests/core/test_worker_pool.py +0 -791
- monkeybot-3.10.0/tests/evals/__init__.py +0 -1
- monkeybot-3.10.0/tests/evals/scenario_runner.py +0 -359
- monkeybot-3.10.0/tests/evals/scenarios/coding_fix_failing_test.yaml +0 -39
- monkeybot-3.10.0/tests/evals/scenarios/coding_gate_passes_when_verified.yaml +0 -35
- monkeybot-3.10.0/tests/evals/scenarios/coding_gate_rejects_unverified.yaml +0 -41
- monkeybot-3.10.0/tests/evals/scenarios/coding_read_before_write.yaml +0 -48
- monkeybot-3.10.0/tests/evals/scenarios/memory_wake_up_large.yaml +0 -14
- monkeybot-3.10.0/tests/evals/scenarios/memory_write_inject.yaml +0 -12
- monkeybot-3.10.0/tests/evals/scenarios/subagent_roundtrip.yaml +0 -17
- monkeybot-3.10.0/tests/evals/scenarios/tool_glob_grep.yaml +0 -24
- monkeybot-3.10.0/tests/evals/scenarios/tool_load_file.yaml +0 -17
- monkeybot-3.10.0/tests/evals/scenarios/tool_loops.yaml +0 -24
- monkeybot-3.10.0/tests/evals/scenarios/tool_read.yaml +0 -17
- monkeybot-3.10.0/tests/evals/scenarios/tool_replace_apply_patch.yaml +0 -32
- monkeybot-3.10.0/tests/evals/scenarios/tool_run_command.yaml +0 -17
- monkeybot-3.10.0/tests/evals/scenarios/tool_search_memory.yaml +0 -17
- monkeybot-3.10.0/tests/evals/scenarios/tool_todo_list.yaml +0 -18
- monkeybot-3.10.0/tests/evals/scenarios/tool_web_search.yaml +0 -17
- monkeybot-3.10.0/tests/evals/scenarios/tool_write.yaml +0 -18
- monkeybot-3.10.0/tests/evals/scenarios/turn_completion.yaml +0 -10
- monkeybot-3.10.0/tests/evals/test_agent_behavior.py +0 -41
- monkeybot-3.10.0/tests/evals/test_verifier_port.py +0 -30
- monkeybot-3.10.0/tests/gateway/sse/test_routes.py +0 -733
- monkeybot-3.10.0/tests/gateway/sse/test_session_bus.py +0 -242
- monkeybot-3.10.0/tests/gateway/test_otel_lifespan.py +0 -108
- monkeybot-3.10.0/tests/integration/__init__.py +0 -1
- monkeybot-3.10.0/tests/integration/test_mb_e2e_simple_reply.py +0 -118
- monkeybot-3.10.0/tests/integration/test_observability_integration.py +0 -402
- monkeybot-3.10.0/tests/integration/test_prompt_caching_integration.py +0 -140
- monkeybot-3.10.0/tests/observability/test_loop_hook_spans.py +0 -76
- monkeybot-3.10.0/tests/observability/test_span_contract.py +0 -238
- monkeybot-3.10.0/tests/observability/test_sqlite_exporter.py +0 -705
- monkeybot-3.10.0/tests/observability/test_turn_complete_trace.py +0 -57
- monkeybot-3.10.0/tests/providers/conftest.py +0 -119
- monkeybot-3.10.0/tests/providers/test_anthropic_cache.py +0 -745
- monkeybot-3.10.0/tests/providers/test_bedrock_converse.py +0 -613
- monkeybot-3.10.0/tests/providers/test_openai_history.py +0 -489
- monkeybot-3.10.0/tests/providers/test_pricing.py +0 -105
- monkeybot-3.10.0/tests/providers/test_sampling.py +0 -490
- monkeybot-3.10.0/tests/providers/test_sdk_client_reuse.py +0 -743
- monkeybot-3.10.0/tests/providers/test_sonnet5_sampling.py +0 -568
- monkeybot-3.10.0/tests/providers/test_source_grep_gates.py +0 -68
- monkeybot-3.10.0/tests/providers/test_vertex_claude_history.py +0 -37
- monkeybot-3.10.0/tests/scheduler/test_interval.py +0 -29
- monkeybot-3.10.0/tests/skills/test_generate_image_script.py +0 -208
- monkeybot-3.10.0/tests/test_cold_start.py +0 -90
- monkeybot-3.10.0/tests/test_packaging_config.py +0 -93
- monkeybot-3.10.0/tests/test_release_script.py +0 -192
- monkeybot-3.10.0/tests/todo_list/test_todo_list.py +0 -306
- monkeybot-3.10.0/tests/web_search/test_web_search.py +0 -298
- monkeybot-3.10.0/uv.lock +0 -5364
- {monkeybot-3.10.0 → monkeybot-3.11.1}/.cursor/hooks/pre-pr.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/.dockerignore +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/.github/workflows/prepare-release.yml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/.github/workflows/publish-release.yml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/BACKLOG.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/LICENSE +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_file_index.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_local_shell.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_renderer.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_session.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_status_bar.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_theme.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/chat_tool_display.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/chat.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/doctor.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/loop.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/mcp_login.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/new.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/refresh.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/run_cmd.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/talk.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/trace.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/commands/validate.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/compat.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/config_resolve.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/exit_commands.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/extras_catalog.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/gateway_health.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/main.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/opensandbox_lifecycle.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/output.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/process_tree.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/providers.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/audio_io.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/client.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/gateway_manager.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/push_to_talk.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/session.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/session_controller.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/talk_ui.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/realtime/wire_encode.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/AGENT.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/Dockerfile +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/browser/SKILL.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/command_allowlist.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/dockerignore +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/env.example +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/goal/SKILL.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/SKILL.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/generate_image.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/loop/SKILL.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/mcp.json +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/opensandbox.docker.toml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/otel-collector.example.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/permissions.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/AGENT.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/command_allowlist.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/monkeybot.overrides.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/permissions.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/session_controller.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/src/monkeybot_cli/terminal_markdown.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_continue.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_e2e.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_errors.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_file_index.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_grounding.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_local_shell.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_renderer_parity.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_session.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_status_bar.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_theme.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_chat_tool_display.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_cli.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_config_resolve.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_doctor.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_extras_catalog.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_gateway_health.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_opensandbox_lifecycle.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_realtime_session_controller.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_run_cmd.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_terminal_markdown.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/cli/tests/test_trace_cmd.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker/Dockerfile +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker/demo-model.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker/demo.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker/docker-compose.sandbox.yml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker/opensandbox.docker.toml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker/sandbox.Dockerfile +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docker-compose.yml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/agent-layout.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/assets/logo.png +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/browser-mcp-perf-baseline.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/browser-mcp-performance-plan.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/browser-mcp.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/cloud-deployment-design.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/deploy-aws-agentcore.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/deploy-pattern-a-container.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/deploy-pattern-b-serverless.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/deploy-pattern-c-agent-platform.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/mcp.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/migrations/agent-scope-namespacing.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/migrations/history-row-id.sql +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/migrations/memory-outbox.sql +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/migrations/session-branches.sql +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/observability-runbook.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/ollama-local.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/otel-collector.example.yaml +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/progressive-loop-tools.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/progressive-mcp-tools.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/skills.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/docs/sse-gateway-ui.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/README.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/agentcore/handler.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/agentcore/runtime_app.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/agentengine/handler.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/cloud-functions/main.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/lambda/handler.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/ollama/PrefixStable.Modelfile +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/browser/SKILL.md +0 -0
- {monkeybot-3.10.0/evals/smoke_agent/workspace → monkeybot-3.11.1/examples/skills/browser/playbooks}/.gitkeep +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/diagnostics/README.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/diagnostics/SKILL.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/diagnostics/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/diagnostics/diagnostics.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/image-generator/SKILL.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/examples/skills/image-generator/generate_image.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/scripts/agentcore_smoke.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/scripts/dump_tool_surface.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/scripts/perf_bench.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/actions.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/agentcore.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/app.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/assets/NOTICE.md +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/assets/dom_tree.js +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/assets/pa_driver.js +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/backend.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/chat_context.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/chat_scope.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/dom_indexing.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/in_app_cdp.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/login.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/observe.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/perf.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/playbooks.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/playwright_helpers.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/results.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/screenshots.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/server.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tab_ops.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tabs.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/batch.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/capture.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/interact.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/navigate.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/playbook.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/read.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/src/browser_mcp/tools/tab_control.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/conftest.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/api.json +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/article.html +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/cards.html +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/form.html +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/long_list.html +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/spa.html +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/fixtures/tool_surface.json +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/conftest.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_act_observe.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_driver_persist.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_intent_tools.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_multi_tab.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_observation.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_run_playbook.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/integration/test_wait_for.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_act.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_agentcore.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_chat_isolation.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_chat_scope.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_dom_indexing.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_fill_form.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_in_app_cdp.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_indexed_tools.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_observe.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_observe_after.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_perf.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_playbook_flows.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_playbooks.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_playwright_helpers.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_screenshots.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_server_shutdown.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_tabs.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_tool_surface.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/integrations/browser-mcp/tests/test_wait_tools.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding/shop_repo/shop/legacy → monkeybot-3.11.1/regression}/__init__.py +0 -0
- /monkeybot-3.10.0/tests/evals/eval_hook.py → /monkeybot-3.11.1/regression/drivers/record.py +0 -0
- {monkeybot-3.10.0/evals/smoke_agent/workspace/skills/browser/playbooks → monkeybot-3.11.1/regression/fixtures/subagent_tapes}/.gitkeep +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/.gitignore +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/AGENTS.md +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/build/calc/ops.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/calc/__init__.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/calc/ops.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/node_modules/left-pad/index.js +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/node_modules/left-pad/package.json +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/pyproject.toml +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo/tests/test_ops.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/.gitignore +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/AGENTS.md +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/build/calc/ops.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/calc/__init__.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/calc/ops.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/node_modules/left-pad/index.js +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/node_modules/left-pad/package.json +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/pyproject.toml +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/calc_repo_green/tests/test_ops.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/overlays/bug_discount/shop/pricing.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/overlays/noisy_tests/shop/taxes.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/overlays/noisy_tests/tests/conftest.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/overlays/offline_gateway/tests/test_gateway.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/.gitignore +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/AGENTS.md +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/CHANGELOG.md +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/README.md +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/build/shop/shipping.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/pyproject.toml +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/__init__.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/cart.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/coupons.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/gateway.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/inventory.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding/shop_repo/shop/utils → monkeybot-3.11.1/regression/fixtures/workspaces/shop_repo/shop/legacy}/__init__.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/legacy/pricing_v1.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/legacy/shipping_v1.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/models.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/orders.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/pricing.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/reports.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/shipping.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/taxes.py +0 -0
- {monkeybot-3.10.0/tests/cli → monkeybot-3.11.1/regression/fixtures/workspaces/shop_repo/shop/utils}/__init__.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/utils/money.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/shop/utils/text.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_cart.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_coupons.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_inventory.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_money.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_orders.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_pricing.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_reports.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_shipping.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/tests/test_taxes.py +0 -0
- {monkeybot-3.10.0/evals/fixtures/coding → monkeybot-3.11.1/regression/fixtures/workspaces}/shop_repo/vendor/pricekit/__init__.py +0 -0
- {monkeybot-3.10.0/tests/computer → monkeybot-3.11.1/regression/t2}/__init__.py +0 -0
- {monkeybot-3.10.0/tests/gateway/realtime → monkeybot-3.11.1/regression/t2/python}/__init__.py +0 -0
- {monkeybot-3.10.0/evals/smoke_agent → monkeybot-3.11.1/regression/t4/agent}/.gitignore +0 -0
- /monkeybot-3.10.0/examples/skills/browser/playbooks/.gitkeep → /monkeybot-3.11.1/regression/t4/agent/memory/.blob_seq_ids_migrated +0 -0
- /monkeybot-3.10.0/tests/web_search/__init__.py → /monkeybot-3.11.1/regression/t4/agent/memory/.collection_type_fixed +0 -0
- {monkeybot-3.10.0/evals/smoke_agent → monkeybot-3.11.1/regression/t4/agent}/monkeybot_config/AGENT.coding.md +0 -0
- {monkeybot-3.10.0/evals/smoke_agent → monkeybot-3.11.1/regression/t4/agent}/monkeybot_config/AGENT.md +0 -0
- {monkeybot-3.10.0/evals/smoke_agent → monkeybot-3.11.1/regression/t4/agent}/monkeybot_config/command_allowlist.yaml +0 -0
- {monkeybot-3.10.0/evals/smoke_agent → monkeybot-3.11.1/regression/t4/agent}/monkeybot_config/permissions.yaml +0 -0
- {monkeybot-3.10.0/evals/smoke_agent → monkeybot-3.11.1/regression/t4/agent}/skills/browser/SKILL.md +0 -0
- {monkeybot-3.10.0/evals → monkeybot-3.11.1/regression/t4}/baselines/smoke.json +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/scripts/release.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/__main__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/audio_io.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/gateway_manager.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/main.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/push_to_talk.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/cli/realtime_client.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/computer/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/computer/approvals.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/computer/safety.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/computer/tools.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/catalog.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/config.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/freeze.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/image_preview.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/resolve.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/store.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/text.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/attachments/tools.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/coding/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/coding/git_context_hook.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/coding/read_ledger_hook.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/config/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/config/realtime_config.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/config/runtime_env.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/config/settings.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/config/yaml_loader.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/campaign_context.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/common.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/epoch.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/project_context.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/slash_skills.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/tool_output_policy.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/tool_result_ingress.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/context/tool_shapers.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/goals/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/goals/service.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/hooks/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/llm/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/llm/provider.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/llm/realtime_provider.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/llm/usage.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/lockfile_names.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/logging_utils.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/mcp/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/mcp/oauth_flow.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/config.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/hook.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/ids.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/ingest.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/migrate_layout.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/observability.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/memory/uri.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/messages/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/messages/convert_provider.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/messages/tool_integrity.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/messages/transform_context.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/path_safety.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/branches.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/db.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/errors.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/firestore.indexes.json +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/history.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/row_ids.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/runs.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/sqlite.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/sqlite_backend.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/thread_summary.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/transcript_reader.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/persistence/usage.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/prompts/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/prompts/headings.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/prompts/prompt.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/doom_loop.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/events.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/history_rewrite.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/input_admission.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/loop.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/loop_hooks.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/loop_messages.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/loop_ports.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/loop_usage.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/provider_stream_mapper.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/runtime/tool_batch.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/subagents/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/subagents/progress_publish.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/subagents/worker_pool.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/subprocess_groups.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/testing/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/testing/mocks_realtime_provider.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/ask_user.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/background_jobs.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/command_executor.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/gitignore.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/loop_inspector.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/patch.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/permission.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/read_ledger.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/spill_inventory.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/terminal.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/text_normalize.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/tool_hint.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/tool_kind.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/tools/types.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/types/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/types/content_blocks.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/types/interfaces.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/types/types_tools.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/actuator.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/binding.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/inspector.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/intervention.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/match.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/port.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/rewrite_effects.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/verifier/severity.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace/factory.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace/gcs.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace/local.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace/protocol.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace/s3.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/core/workspace_layout.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/bootstrap.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/main.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/pending_response_bus.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/deps.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/errors.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/guardrails.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/manager.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/metrics.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime/wire.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/realtime_main.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/goal_routes.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/history_routes.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/loop_port.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/reload.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/reply_body.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/request_storage.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/scheduler_routes.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/scheduler_wiring.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/session_bus.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/sse.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/gateway/sse/workspace_layout.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/observability/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/observability/_state.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/observability/instrumentation.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/observability/propagation.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/observability/spans.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/observability/sqlite_exporter.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/_bedrock_converse.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/_sdk_client.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/_utils.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/bedrock.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/claude.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/gemini_live.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/model_capabilities.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/rejected_sampling.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/request_budget.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/sampling.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/providers/vertex_claude.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/scheduler/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/scheduler/__main__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/scheduler/http_invoker.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/scheduler/interval.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/scheduler/tick_result.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/scheduler/worker.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/subagents/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/subagents/worker/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/subagents/worker/__main__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/backends/__init__.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/backends/duckduckgo.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/backends/firecrawl.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/backends/tavily.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/protocol.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/src/monkeybot/web_search/tool.py +0 -0
- {monkeybot-3.10.0 → monkeybot-3.11.1}/tests/__init__.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/cli/test_gateway_manager.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/cli/test_main.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/cli/test_push_to_talk.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/cli/test_realtime_client.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/computer/test_approvals.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/computer/test_computer_tools.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/computer/test_package_init.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/computer/test_path_policy.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/computer/test_subagent_exclusion.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/__init__.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/attachments}/test_attachment_freeze.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/attachments}/test_attachment_store.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/attachments}/test_image_preview.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/config}/test_config_extensions.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/config}/test_runtime_env.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/context}/test_context_epoch.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/context}/test_slash_skills.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/context}/test_tool_shapers.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/fixtures/bitbucket_dc_style_pr.diff +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/goals}/test_goal_persistence.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/llm}/test_pricing.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/mcp}/test_mcp_oauth.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/mcp}/test_mcp_oauth_regressions.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/memory}/test_memory_layout_migrate.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/messages}/test_message_pipeline.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_branch_store_backends.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_firestore_history.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_firestore_scheduled_loops.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_firestore_usage.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_history_branches.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_history_row_ids.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_runs.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_scheduled_loops.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_session_branches_migration.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_session_turn_locks.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_storage_backends.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_thread_summary_wire.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_transcript.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_transcript_reader.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_usage.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/persistence}/test_usage_migration.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_context_budget.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_durable_events.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_events.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_loop_transcript.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_provider_stream_mapper.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_realtime_loop.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/runtime}/test_turn_session_id.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/subagents}/test_progress_publish.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/subagents}/test_subagent_transcript.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/test_agent_layout.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/test_layout.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/test_logging_utils.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/test_path_safety.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/test_workspace_layout.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/testing}/test_mocks_realtime_provider.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_ask_user.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_gitignore.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_patch.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_permission.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_replace_fuzzy.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_run_command_parse.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_spill_inventory.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_terminal.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_workspace_extra_read_roots.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_workspace_symlinks.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/tools}/test_workspace_write_scope.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/types}/test_content_blocks.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/types}/test_tool_def_schema.py +0 -0
- {monkeybot-3.10.0/tests/core → monkeybot-3.11.1/tests/unit/core/verifier}/test_verifier_binding.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/workspace/test_factory.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/workspace/test_local_storage.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/core/workspace/test_protocol_contract.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/__init__.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_app.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_deps.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_guardrails.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_manager.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_metrics.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_routes_client_text.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_session.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/realtime/test_wire.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_attachments.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_config_reload.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_create_session_model.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_gateway_runtime.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_history_routes.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_scheduler_routes.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_start_turn_setup_failure.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/sse/test_transcript_wiring.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_otel_fastapi.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_pending_response_endpoints.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_realtime_main.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_resolve_provider.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_sdk_client_shutdown.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_sse_events.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/gateway/test_subagent_event_publisher.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/observability/conftest.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/observability/test_init.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/observability/test_instrumentation.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/observability/test_propagation.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/observability/test_spans.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/observability/test_truncate.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_anthropic_history.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_bedrock_estimate.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_fireworks.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_gemini_history.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_gemini_live.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_gemini_usage.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_huggingface.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_model_capabilities.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_nvidia.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_ollama.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_openai_byte_budget.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_openai_compat_usage.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_request_budget.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/providers/test_safe_parse_tool_args.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/scheduler/test_engine.py +0 -0
- {monkeybot-3.10.0/tests → monkeybot-3.11.1/tests/unit}/skills/__init__.py +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Tell the agent about a new failing test run. Advisory: always exit 0."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import json
|
|
7
|
+
import re
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
ROOT = Path(__file__).resolve().parents[2]
|
|
12
|
+
LATEST = ROOT / "test-runs" / "LATEST.json"
|
|
13
|
+
STATE = ROOT / ".cursor" / "hooks" / ".state" / "last_notified"
|
|
14
|
+
|
|
15
|
+
# Confirmed from a live postToolUse payload (2026-10-25): the shell command is
|
|
16
|
+
# tool_input.command. A top-level command is accepted if a future payload uses it.
|
|
17
|
+
_TEST_COMMAND = re.compile(
|
|
18
|
+
r"(?:^|[^\w.])(?:pytest|regression\.t4|regression\.t5|ci-local\.sh)(?:$|[^\w.])"
|
|
19
|
+
r"|(?:^|[^\w])git\s+push\b"
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def main() -> None:
|
|
24
|
+
data = json.load(sys.stdin)
|
|
25
|
+
command = command_text(data)
|
|
26
|
+
if not command or _TEST_COMMAND.search(command) is None:
|
|
27
|
+
return
|
|
28
|
+
latest = load_latest()
|
|
29
|
+
if latest is None or not has_failures(latest):
|
|
30
|
+
return
|
|
31
|
+
run_id = str(latest.get("run_id") or "")
|
|
32
|
+
if not run_id or run_id == read_state():
|
|
33
|
+
return
|
|
34
|
+
write_state(run_id)
|
|
35
|
+
json.dump({"additional_context": notice(latest)}, sys.stdout)
|
|
36
|
+
sys.stdout.write("\n")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def command_text(data: object) -> str:
|
|
40
|
+
if not isinstance(data, dict):
|
|
41
|
+
return ""
|
|
42
|
+
raw = data.get("tool_input")
|
|
43
|
+
if isinstance(raw, dict):
|
|
44
|
+
command = raw.get("command")
|
|
45
|
+
if isinstance(command, str):
|
|
46
|
+
return command
|
|
47
|
+
if isinstance(raw, str):
|
|
48
|
+
try:
|
|
49
|
+
parsed = json.loads(raw)
|
|
50
|
+
except json.JSONDecodeError:
|
|
51
|
+
parsed = None
|
|
52
|
+
if isinstance(parsed, dict) and isinstance(parsed.get("command"), str):
|
|
53
|
+
return parsed["command"]
|
|
54
|
+
command = data.get("command")
|
|
55
|
+
return command if isinstance(command, str) else ""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def load_latest() -> dict | None:
|
|
59
|
+
if not LATEST.is_file():
|
|
60
|
+
return None
|
|
61
|
+
value = json.loads(LATEST.read_text(encoding="utf-8"))
|
|
62
|
+
return value if isinstance(value, dict) else None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def has_failures(latest: dict) -> bool:
|
|
66
|
+
counts = latest.get("counts")
|
|
67
|
+
if not isinstance(counts, dict):
|
|
68
|
+
return False
|
|
69
|
+
return any(int(counts.get(key) or 0) > 0 for key in ("failed", "errors", "xpassed_strict"))
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def read_state() -> str:
|
|
73
|
+
if not STATE.is_file():
|
|
74
|
+
return ""
|
|
75
|
+
return STATE.read_text(encoding="utf-8").strip()
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def write_state(run_id: str) -> None:
|
|
79
|
+
STATE.parent.mkdir(parents=True, exist_ok=True)
|
|
80
|
+
STATE.write_text(run_id + "\n", encoding="utf-8")
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def notice(latest: dict) -> str:
|
|
84
|
+
counts = latest.get("counts") if isinstance(latest.get("counts"), dict) else {}
|
|
85
|
+
path = latest.get("path") or ""
|
|
86
|
+
run_id = latest.get("run_id") or ""
|
|
87
|
+
return (
|
|
88
|
+
"monkeybot failure ledger: a test command just finished a run that has failures. "
|
|
89
|
+
f"Run file: {path} (run_id {run_id}; "
|
|
90
|
+
f"failed={int(counts.get('failed') or 0)}, "
|
|
91
|
+
f"errors={int(counts.get('errors') or 0)}, "
|
|
92
|
+
f"xpassed_strict={int(counts.get('xpassed_strict') or 0)}). "
|
|
93
|
+
"This is a finding to report, not a task. Do not edit source, tests, scenarios, "
|
|
94
|
+
"goldens, cassettes, or baselines to make it pass, and do not skip, quarantine, "
|
|
95
|
+
"xfail, delete, or loosen a check. List this run file and each failure's case id, "
|
|
96
|
+
"path, and one-line error, then continue the original task. "
|
|
97
|
+
"Inspect: uv run python -m testkit.failures latest"
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
if __name__ == "__main__":
|
|
102
|
+
try:
|
|
103
|
+
main()
|
|
104
|
+
except Exception:
|
|
105
|
+
sys.stdout.write("")
|
|
106
|
+
raise SystemExit(0)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"hooks": {
|
|
4
|
+
"beforeShellExecution": [
|
|
5
|
+
{
|
|
6
|
+
"command": ".cursor/hooks/pre-pr.py",
|
|
7
|
+
"matcher": "gh\\s+pr\\s+create",
|
|
8
|
+
"timeout": 2400,
|
|
9
|
+
"failClosed": true
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"beforeMCPExecution": [
|
|
13
|
+
{
|
|
14
|
+
"command": ".cursor/hooks/pre-pr.py",
|
|
15
|
+
"matcher": "create_pull_request",
|
|
16
|
+
"timeout": 2400,
|
|
17
|
+
"failClosed": true
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"postToolUse": [
|
|
21
|
+
{
|
|
22
|
+
"command": ".cursor/hooks/test-failure-notice.py",
|
|
23
|
+
"matcher": "Shell"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"postToolUseFailure": [
|
|
27
|
+
{
|
|
28
|
+
"command": ".cursor/hooks/test-failure-notice.py",
|
|
29
|
+
"matcher": "Shell"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Report test failures from the ledger instead of fixing them.
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
- A failing test, scenario, or trial is a finding to report, not a task. Do not edit source, tests, scenarios, goldens, cassettes, or baselines to make it pass.
|
|
7
|
+
- Do not skip, quarantine, `xfail`, delete, or loosen a check to make a run green.
|
|
8
|
+
- In the reply, list the run file and each failure's case id, path, and one-line error. Then continue the original task, or stop if it cannot continue without the failing behavior.
|
|
9
|
+
- Exception: the user explicitly asked to fix test failures (for example "fix the failures in run X" or "fix fingerprint abc123"). Then use `python -m testkit.failures prompt <fingerprint>` as the brief.
|
|
10
|
+
- Running the tests again to confirm a failure is fine; changing things between runs is not.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mb-retro
|
|
3
|
+
description: >-
|
|
4
|
+
Review one MonkeyBot session transcript and propose environment fixes
|
|
5
|
+
(checks, verifier criteria, AGENT.md pointers, tool access). Use ONLY when
|
|
6
|
+
the user explicitly asks for /mb-retro, a MonkeyBot retro, or to review a
|
|
7
|
+
MonkeyBot transcript for why the agent struggled. Do not run during ordinary
|
|
8
|
+
coding, and do not edit anything until the user picks a candidate.
|
|
9
|
+
disable-model-invocation: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# mb-retro
|
|
13
|
+
|
|
14
|
+
Look at one MonkeyBot session and propose changes to the agent's environment so the next run goes better. Propose only. Edit nothing until the user picks a candidate.
|
|
15
|
+
|
|
16
|
+
This is the MonkeyBot form of a session retro. It does not review the code the session produced. If the user wants a verdict on a diff, that is a code review, not this skill.
|
|
17
|
+
|
|
18
|
+
## Input
|
|
19
|
+
|
|
20
|
+
A session id, a session directory, or a `transcript.ndjson` path. Transcripts live under `{workspace}/.monkeybot/transcripts/` and exist only when `runtime.transcript_enabled` is true in `monkeybot.yaml`.
|
|
21
|
+
|
|
22
|
+
From the monkeybot repo:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
uv run monkeybot trace list --cwd <agent-root>
|
|
26
|
+
uv run monkeybot trace digest <session-id-or-path> --cwd <agent-root>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If the user does not name a session, run `trace list` and suggest the session with the highest `score`. Say which one you are using. Do not retro every session.
|
|
30
|
+
|
|
31
|
+
## Read
|
|
32
|
+
|
|
33
|
+
1. Run `uv run monkeybot trace digest <id>`. That output is already resolved. Do not hand-expand `text_seq`, `result_seq`, `schema_seq`, `content_seq`, or `base_seq` diffs.
|
|
34
|
+
2. Open one record only when the digest line is not enough: `uv run monkeybot trace digest <id> --seq N`. Repeat `--seq` for a few records, not the whole file.
|
|
35
|
+
3. Subagent work is inlined under the `task` call that started it, from `{session}/subagents/`. Runs the digest cannot tie to a call appear under `Unlinked subagent runs`. If a line says `no child transcript`, say so and do not invent what the child did.
|
|
36
|
+
4. A `--seq` record with `text_error: diff_mismatch` was written by an older harness whose prompt diff cannot be rebuilt. Do not quote its text.
|
|
37
|
+
|
|
38
|
+
A smooth digest (score 0, short timeline, no interventions) has little to teach. Say that and stop.
|
|
39
|
+
|
|
40
|
+
## Find struggle moments
|
|
41
|
+
|
|
42
|
+
Every candidate must cite one or more `@seq` lines from this digest. Discard any candidate you cannot point at a specific moment. Do not fill categories with generic advice.
|
|
43
|
+
|
|
44
|
+
Look for:
|
|
45
|
+
|
|
46
|
+
- Tool errors, especially the same `error_kind` more than once
|
|
47
|
+
- `HarnessIntervention` (`doom_loop`, `truncated_batch`, `empty_completion`, `post_tool_empty`, `background_jobs_nudge`, `compaction_fallback`, `max_turns`, `verifier_replan`)
|
|
48
|
+
- Steers, verifier verdicts, empty assistant replies, context summaries
|
|
49
|
+
- Slow tools and repeated identical calls
|
|
50
|
+
- A long search before a fact that a pointer would have named
|
|
51
|
+
- A subagent that struggled while the parent looked fine
|
|
52
|
+
|
|
53
|
+
## Classify
|
|
54
|
+
|
|
55
|
+
Put each moment in one category. The category decides where the fix goes.
|
|
56
|
+
|
|
57
|
+
| What went wrong | Propose |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| Slow to find a fact | A navigation pointer in the agent's `AGENT.md`, a skill description, or a memory entry |
|
|
60
|
+
| A mechanical mistake | An inspector or `PRE_TOOL` hook, tighter tool-schema validation, `permissions.yaml` or a path grant, or a guard threshold |
|
|
61
|
+
| A judgement-call miss | A verifier criterion. The verifier is the reviewer. |
|
|
62
|
+
| Bloated `AGENT.md` or harness prompt (`src/monkeybot/core/prompts/harness_prompt.py`) | Move the steering into an on-demand skill, or delete the no-op lines |
|
|
63
|
+
| An expensive tool call | Trim tool output, spill it to a file, or load tools progressively |
|
|
64
|
+
| Missing information or access | An MCP server, a tool, or wider permissions |
|
|
65
|
+
| The agent behaved reasonably and the harness misbehaved | A code fix plus a regression test in `tests/`, or a live scenario under `regression/t4/scenarios/` |
|
|
66
|
+
|
|
67
|
+
## Rules
|
|
68
|
+
|
|
69
|
+
- A mechanical problem gets a check that can fail, never a sentence in a steering file.
|
|
70
|
+
- `AGENT.md` gets navigation pointers only. Do not add new standing rules there, and do not add them to a root `AGENTS.md` or `CLAUDE.md`.
|
|
71
|
+
- If a check already exists but is not wired up, the fix is to wire it, not to write a second one.
|
|
72
|
+
- A missing guardrail (no test or eval covers this failure) is its own finding.
|
|
73
|
+
- Rank by severity for the next session, not by how loud the log line was. A quiet expensive miss can outrank a noisy cheap one. Say that the order is a draft.
|
|
74
|
+
- Do not propose deleting lint rules, hooks, or CI jobs from other sessions. This skill sees one transcript.
|
|
75
|
+
|
|
76
|
+
## Output
|
|
77
|
+
|
|
78
|
+
Ranked candidates, most severe first. For each one:
|
|
79
|
+
|
|
80
|
+
1. **Moment** — quote the digest lines and their `@seq` numbers.
|
|
81
|
+
2. **Category** — one row from the table.
|
|
82
|
+
3. **Target** — the exact file or config key.
|
|
83
|
+
4. **Change** — the proposed check, pointer, criterion, or deletion, in a few lines. Not a patch yet.
|
|
84
|
+
|
|
85
|
+
Then stop and ask which candidates to apply. Do not edit files, install hooks, or change `monkeybot.yaml` before that.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Automatic runs are off. Pushing a branch runs this same suite locally
|
|
2
|
+
# (scripts/ci-local.sh via the pre-push hook). Dispatch this workflow from the
|
|
3
|
+
# Actions tab only when you want a GitHub-hosted run.
|
|
4
|
+
name: CI
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
python:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Install ripgrep and GitHub CLI
|
|
16
|
+
run: sudo apt-get update && sudo apt-get install -y ripgrep gh
|
|
17
|
+
|
|
18
|
+
- uses: astral-sh/setup-uv@v5
|
|
19
|
+
with:
|
|
20
|
+
version: "latest"
|
|
21
|
+
|
|
22
|
+
- name: Sync dependencies
|
|
23
|
+
run: uv sync --extra claude --extra vertex-claude --extra bedrock --extra firestore
|
|
24
|
+
|
|
25
|
+
- name: Ruff format
|
|
26
|
+
run: uv run ruff format --check .
|
|
27
|
+
|
|
28
|
+
- name: Mypy
|
|
29
|
+
run: uv run mypy src/monkeybot testkit
|
|
30
|
+
|
|
31
|
+
# §9 cassette-staleness: the reminder is a PR that touches any uv.lock.
|
|
32
|
+
# This workflow stays workflow_dispatch (D2), so the step runs on every
|
|
33
|
+
# dispatch. No provider key. scripts/ci-local.sh runs the same command.
|
|
34
|
+
- name: cassette-staleness
|
|
35
|
+
run: uv run python -m regression.t3.tools.check_staleness
|
|
36
|
+
|
|
37
|
+
- name: Pytest
|
|
38
|
+
run: uv run pytest tests regression -m "t1 or t2 or t3" -q -n auto
|
|
39
|
+
|
|
40
|
+
- name: CLI pytest
|
|
41
|
+
working-directory: cli
|
|
42
|
+
run: |
|
|
43
|
+
uv sync
|
|
44
|
+
uv run pytest -q
|
|
45
|
+
|
|
46
|
+
- name: Browser MCP pytest
|
|
47
|
+
working-directory: integrations/browser-mcp
|
|
48
|
+
run: |
|
|
49
|
+
uv sync --dev
|
|
50
|
+
# Root pytest.ini addopts load regression.plugin, which imports monkeybot.
|
|
51
|
+
uv run pytest -q -o addopts= -p testkit.failure_ledger
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
name: Live eval smoke
|
|
2
|
+
|
|
3
|
+
# Runs the live eval smoke suite (see docs/live-evals.md) and posts a Markdown
|
|
4
|
+
# scorecard. Manual only (Actions tab -> Live eval smoke -> Run workflow): live runs
|
|
5
|
+
# happen locally (decision D1), and GitHub has no provider key, so an automatic trigger
|
|
6
|
+
# would only report an empty scorecard.
|
|
7
|
+
# The scorecard lands on the workflow run's Summary page. The run JSON is uploaded as
|
|
8
|
+
# an artifact — download two of them and
|
|
9
|
+
# compare with `uv run python -m regression.t4.diff <old.json> <new.json>`.
|
|
10
|
+
#
|
|
11
|
+
# Cost/time budget: smoke suite is 12 scenarios x 2-5 turns x (agent call + judge call),
|
|
12
|
+
# paced by EVAL_SCENARIO_DELAY_SEC=150 between scenarios to stay under the current
|
|
13
|
+
# model's provider rate limit. Expect ~30-45 minutes per run (11 delays x 150s = 27.5 min
|
|
14
|
+
# of pacing alone, plus actual call time) — this is not stuck if it runs long; see
|
|
15
|
+
# timeout-minutes below.
|
|
16
|
+
#
|
|
17
|
+
# No provider key is passed to this workflow (decision D1): the live smoke suite runs
|
|
18
|
+
# locally with `uv run python -m regression.t4 --suite smoke`, reading the Ollama Cloud
|
|
19
|
+
# key from the shell or the repo-root .env. Here the suite's preflight finds no key and
|
|
20
|
+
# exits 2 with a run_error instead of skipping silently.
|
|
21
|
+
|
|
22
|
+
on:
|
|
23
|
+
workflow_dispatch:
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
contents: read
|
|
27
|
+
pull-requests: write
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
gate:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
outputs:
|
|
33
|
+
run: ${{ steps.decide.outputs.run }}
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
with:
|
|
37
|
+
fetch-depth: 0
|
|
38
|
+
|
|
39
|
+
- id: decide
|
|
40
|
+
env:
|
|
41
|
+
EVENT_NAME: ${{ github.event_name }}
|
|
42
|
+
BASE_REF: ${{ github.base_ref }}
|
|
43
|
+
HEAD_REF: ${{ github.head_ref }}
|
|
44
|
+
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
|
45
|
+
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
|
46
|
+
run: |
|
|
47
|
+
run=false
|
|
48
|
+
# Push to main and manual dispatch always run; PRs are gated below.
|
|
49
|
+
if [[ "$EVENT_NAME" != "pull_request" ]]; then
|
|
50
|
+
run=true
|
|
51
|
+
else
|
|
52
|
+
if [[ "$BASE_REF" == "main" && "$HEAD_REF" == "develop" ]]; then
|
|
53
|
+
run=true
|
|
54
|
+
fi
|
|
55
|
+
changed="$(git diff --name-only "$BASE_SHA" "$HEAD_SHA")"
|
|
56
|
+
for f in uv.lock cli/uv.lock regression/t4/agent/uv.lock; do
|
|
57
|
+
if grep -qxF "$f" <<<"$changed"; then
|
|
58
|
+
run=true
|
|
59
|
+
fi
|
|
60
|
+
done
|
|
61
|
+
fi
|
|
62
|
+
echo "run=$run" >> "$GITHUB_OUTPUT"
|
|
63
|
+
|
|
64
|
+
live-eval:
|
|
65
|
+
needs: gate
|
|
66
|
+
if: needs.gate.outputs.run == 'true'
|
|
67
|
+
runs-on: ubuntu-latest
|
|
68
|
+
timeout-minutes: 60 # 12 scenarios x ~150s inter-scenario delay (see EVAL_SCENARIO_DELAY_SEC) + run time,
|
|
69
|
+
# plus headroom for checkout/uv sync/gateway boot and slow judge or subagent turns
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@v4
|
|
72
|
+
|
|
73
|
+
- uses: astral-sh/setup-uv@v5
|
|
74
|
+
with:
|
|
75
|
+
version: "latest"
|
|
76
|
+
|
|
77
|
+
- name: Sync root deps (regression/t4/report.py needs deepeval, langfuse)
|
|
78
|
+
run: uv sync --extra evals
|
|
79
|
+
|
|
80
|
+
- name: Sync agent project deps
|
|
81
|
+
working-directory: regression/t4/agent
|
|
82
|
+
run: uv sync
|
|
83
|
+
|
|
84
|
+
- name: Boot monkeybot gateway (regression/t4/agent workspace)
|
|
85
|
+
working-directory: regression/t4/agent
|
|
86
|
+
env:
|
|
87
|
+
# Agent model is YAML-only (regression/t4/agent/monkeybot_config/monkeybot.yaml).
|
|
88
|
+
# The agent monkeybot.yaml sets runtime.port: 8080; the health check and
|
|
89
|
+
# AGENT_URL below expect 8787, so pin PORT explicitly (env beats yaml).
|
|
90
|
+
PORT: "8787"
|
|
91
|
+
SANDBOX_ENABLED: "false" # no Docker socket in this runner
|
|
92
|
+
# summarization_trigger is excluded from smoke; if it returns, set
|
|
93
|
+
# model.context_window in the agent YAML (not MODEL_CONTEXT_WINDOW env).
|
|
94
|
+
run: |
|
|
95
|
+
uv run -m monkeybot.gateway.main > /tmp/gateway.log 2>&1 &
|
|
96
|
+
echo $! > /tmp/gateway.pid
|
|
97
|
+
for i in $(seq 1 30); do
|
|
98
|
+
if curl -sf http://127.0.0.1:8787/health > /dev/null; then
|
|
99
|
+
echo "gateway healthy"
|
|
100
|
+
exit 0
|
|
101
|
+
fi
|
|
102
|
+
sleep 2
|
|
103
|
+
done
|
|
104
|
+
echo "gateway did not become healthy" >&2
|
|
105
|
+
cat /tmp/gateway.log >&2
|
|
106
|
+
exit 1
|
|
107
|
+
|
|
108
|
+
- name: Run smoke suite report
|
|
109
|
+
env:
|
|
110
|
+
AGENT_URL: http://127.0.0.1:8787
|
|
111
|
+
# The judge comes from regression/t4/eval_config.yaml.
|
|
112
|
+
# Scorecard metadata: read the model the gateway ran from the agent YAML.
|
|
113
|
+
MONKEYBOT_AGENT_CONFIG: regression/t4/agent/monkeybot_config/monkeybot.yaml
|
|
114
|
+
EVENT_NAME: ${{ github.event_name }}
|
|
115
|
+
# Each scenario itself makes several requests in quick succession, so space
|
|
116
|
+
# scenarios out to stay under the provider's rate limit rather than trying to
|
|
117
|
+
# throttle within one.
|
|
118
|
+
EVAL_SCENARIO_DELAY_SEC: "150"
|
|
119
|
+
run: |
|
|
120
|
+
# PRs are a gate and must block on regressions; main pushes and manual runs
|
|
121
|
+
# just score the build and always report. --fail-on-regression always blocks on
|
|
122
|
+
# this run's own scenario errors/failures. It does NOT require
|
|
123
|
+
# regression/t4/baselines/smoke.json to exist (that's the separate
|
|
124
|
+
# --require-baseline flag, intentionally omitted below) — no trusted baseline has
|
|
125
|
+
# been committed yet. Once one has
|
|
126
|
+
# (`uv run python -m regression.t4 --suite smoke --update-baseline`, committed),
|
|
127
|
+
# add --require-baseline here too so a missing/deleted file can't silently skip
|
|
128
|
+
# the token/cost/latency drift checks.
|
|
129
|
+
flags=""
|
|
130
|
+
if [[ "$EVENT_NAME" == "pull_request" ]]; then
|
|
131
|
+
flags="--fail-on-regression"
|
|
132
|
+
fi
|
|
133
|
+
uv run python -m regression.t4 \
|
|
134
|
+
--suite smoke \
|
|
135
|
+
--baseline regression/t4/baselines/smoke.json \
|
|
136
|
+
$flags \
|
|
137
|
+
| tee eval-report.md
|
|
138
|
+
|
|
139
|
+
- name: Publish report to run summary
|
|
140
|
+
if: always()
|
|
141
|
+
run: |
|
|
142
|
+
if [[ -f eval-report.md ]]; then
|
|
143
|
+
cat eval-report.md >> "$GITHUB_STEP_SUMMARY"
|
|
144
|
+
else
|
|
145
|
+
echo '`FAIL` — no report produced; see the job logs.' >> "$GITHUB_STEP_SUMMARY"
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
- name: Post report as PR comment
|
|
149
|
+
if: always() && github.event_name == 'pull_request'
|
|
150
|
+
uses: actions/github-script@v7
|
|
151
|
+
with:
|
|
152
|
+
script: |
|
|
153
|
+
const fs = require("fs");
|
|
154
|
+
const body = fs.existsSync("eval-report.md")
|
|
155
|
+
? fs.readFileSync("eval-report.md", "utf8")
|
|
156
|
+
: "## monkeybot Eval Scorecard\n\n`FAIL` — the report step did not complete " +
|
|
157
|
+
"(gateway boot or the report command itself errored before writing a report). " +
|
|
158
|
+
"See the workflow run logs for details.";
|
|
159
|
+
await github.rest.issues.createComment({
|
|
160
|
+
issue_number: context.issue.number,
|
|
161
|
+
owner: context.repo.owner,
|
|
162
|
+
repo: context.repo.repo,
|
|
163
|
+
body,
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
- name: Upload run + report artifacts
|
|
167
|
+
if: always()
|
|
168
|
+
uses: actions/upload-artifact@v4
|
|
169
|
+
with:
|
|
170
|
+
name: live-eval-smoke-${{ github.run_id }}
|
|
171
|
+
path: |
|
|
172
|
+
regression/t4/runs/
|
|
173
|
+
eval-report.md
|
|
174
|
+
if-no-files-found: ignore
|
|
175
|
+
|
|
176
|
+
- name: Stop gateway
|
|
177
|
+
if: always()
|
|
178
|
+
working-directory: regression/t4/agent
|
|
179
|
+
run: kill "$(cat /tmp/gateway.pid)" 2>/dev/null || true
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Internal (not shipped in OSS)
|
|
2
|
+
internal/
|
|
3
|
+
|
|
4
|
+
# Environment
|
|
5
|
+
.env
|
|
6
|
+
.env.*
|
|
7
|
+
!.env.example
|
|
8
|
+
# The grants fixture's .env is fixture data, not a local secret.
|
|
9
|
+
!regression/fixtures/workspaces/grants_ws/granted/.env
|
|
10
|
+
|
|
11
|
+
# Local scaffolded harness config (defaults ship in monkeybot-cli scaffold_defaults/)
|
|
12
|
+
/monkeybot_config/
|
|
13
|
+
|
|
14
|
+
# Local agent for manual CLI testing. Recreate with `monkeybot new --dest ./cli-agent`.
|
|
15
|
+
/cli-agent/
|
|
16
|
+
|
|
17
|
+
# Live eval run artifacts. Baselines under regression/t4/baselines/ stay versioned.
|
|
18
|
+
/regression/t4/runs/
|
|
19
|
+
# Live-eval agent project local state. Live secrets come from the repo-root .env; a stray key
|
|
20
|
+
# file in the agent project stays out of git. The two workspace .gitkeep files need git add -f.
|
|
21
|
+
/regression/t4/agent/.env
|
|
22
|
+
/regression/t4/agent/data/
|
|
23
|
+
/regression/t4/agent/workspace/
|
|
24
|
+
|
|
25
|
+
# Python
|
|
26
|
+
__pycache__/
|
|
27
|
+
*.py[cod]
|
|
28
|
+
*.pyo
|
|
29
|
+
*.pyd
|
|
30
|
+
.Python
|
|
31
|
+
*.egg-info/
|
|
32
|
+
dist/
|
|
33
|
+
build/
|
|
34
|
+
.eggs/
|
|
35
|
+
*.egg
|
|
36
|
+
|
|
37
|
+
# uv
|
|
38
|
+
.venv/
|
|
39
|
+
.uv/
|
|
40
|
+
|
|
41
|
+
# Data (SQLite DB + memory files — never commit)
|
|
42
|
+
data/
|
|
43
|
+
# Shared attachment fixtures live here (§5.4); they are not a local data dir.
|
|
44
|
+
!testkit/data/
|
|
45
|
+
!testkit/data/**
|
|
46
|
+
/memory/
|
|
47
|
+
.monkeybot/
|
|
48
|
+
# Store layout for the attachment loop fixture. The directory name is ignored above.
|
|
49
|
+
!regression/fixtures/workspaces/att_ws/.monkeybot/
|
|
50
|
+
!regression/fixtures/workspaces/att_ws/.monkeybot/**
|
|
51
|
+
*.sqlite3
|
|
52
|
+
workspace/.monkeybot/
|
|
53
|
+
*.sqlite
|
|
54
|
+
*.sqlite.writer-pid
|
|
55
|
+
|
|
56
|
+
# Testing & coverage
|
|
57
|
+
/test-runs/
|
|
58
|
+
/.cursor/hooks/.state/
|
|
59
|
+
.pytest_cache/
|
|
60
|
+
.coverage
|
|
61
|
+
htmlcov/
|
|
62
|
+
.mypy_cache/
|
|
63
|
+
.ruff_cache/
|
|
64
|
+
.deepeval/
|
|
65
|
+
|
|
66
|
+
# macOS
|
|
67
|
+
.DS_Store
|
|
68
|
+
|
|
69
|
+
# IDEs
|
|
70
|
+
.idea/
|
|
71
|
+
.vscode/
|
|
72
|
+
*.swp
|
|
73
|
+
*.swo
|
|
74
|
+
|
|
75
|
+
# Docker
|
|
76
|
+
docker/data/
|
|
77
|
+
|
|
78
|
+
# Planning Documents
|
|
79
|
+
.prt/
|
|
80
|
+
.monkeymode/
|
|
81
|
+
|
|
82
|
+
# Reference clones (read-only)
|
|
83
|
+
code/
|
|
84
|
+
|
|
85
|
+
# Local venv for evals dependency experiments
|
|
86
|
+
.evals-venv/
|
|
87
|
+
|
|
88
|
+
# monkeythink
|
|
89
|
+
.monkeythink/
|
|
90
|
+
# Eval fixtures ship their own build/ decoy
|
|
91
|
+
!/regression/fixtures/workspaces/calc_repo/build/
|
|
92
|
+
!/regression/fixtures/workspaces/calc_repo_green/build/
|
|
93
|
+
!/regression/fixtures/workspaces/shop_repo/build/
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Pre-commit hooks for monkeybot
|
|
2
|
+
# Install: uv run pre-commit install && uv run pre-commit install --hook-type pre-push
|
|
3
|
+
# Run the commit hooks manually: uv run pre-commit run --all-files
|
|
4
|
+
# Run the full pull-request suite: bash scripts/ci-local.sh
|
|
5
|
+
|
|
6
|
+
repos:
|
|
7
|
+
- repo: local
|
|
8
|
+
hooks:
|
|
9
|
+
- id: ruff-format
|
|
10
|
+
name: ruff format
|
|
11
|
+
entry: uv run ruff format --check .
|
|
12
|
+
language: system
|
|
13
|
+
pass_filenames: false
|
|
14
|
+
always_run: true
|
|
15
|
+
|
|
16
|
+
- id: mypy
|
|
17
|
+
name: mypy (src/monkeybot)
|
|
18
|
+
entry: uv run mypy src/monkeybot
|
|
19
|
+
language: system
|
|
20
|
+
pass_filenames: false
|
|
21
|
+
always_run: true
|
|
22
|
+
|
|
23
|
+
- id: pytest
|
|
24
|
+
name: pytest (changed tests or collection check)
|
|
25
|
+
entry: bash scripts/precommit-pytest.sh
|
|
26
|
+
language: system
|
|
27
|
+
files: ^(src/monkeybot|testkit|tests|regression)/.*\.py$
|
|
28
|
+
pass_filenames: true
|
|
29
|
+
|
|
30
|
+
- id: local-ci
|
|
31
|
+
name: local CI (ruff format, mypy, pytest, cli, browser MCP, eval self-checks)
|
|
32
|
+
entry: bash scripts/ci-local.sh --if-needed
|
|
33
|
+
language: system
|
|
34
|
+
pass_filenames: false
|
|
35
|
+
always_run: true
|
|
36
|
+
stages: [pre-push]
|