monkeybot 3.12.0__tar.gz → 3.13.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1480) hide show
  1. {monkeybot-3.12.0 → monkeybot-3.13.0}/CHANGELOG.md +16 -0
  2. {monkeybot-3.12.0 → monkeybot-3.13.0}/CONTRIBUTING.md +1 -1
  3. {monkeybot-3.12.0 → monkeybot-3.13.0}/PKG-INFO +7 -3
  4. {monkeybot-3.12.0 → monkeybot-3.13.0}/README.md +6 -2
  5. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/skills/monkeybot/SKILL.md +8 -4
  6. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_session.py +101 -4
  7. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/doctor.py +13 -1
  8. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/SKILL.md +1 -1
  9. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_session.py +24 -0
  10. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_doctor.py +6 -2
  11. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/cloud-deployment-design.md +1 -5
  12. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/deploy-pattern-d-realtime.md +2 -1
  13. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/features.md +22 -27
  14. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/getting-started.md +6 -2
  15. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/observability-runbook.md +4 -1
  16. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/testing.md +15 -8
  17. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/image-generator/SKILL.md +1 -1
  18. {monkeybot-3.12.0 → monkeybot-3.13.0}/pyproject.toml +1 -1
  19. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/session.py +13 -0
  20. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6W-ops.md +1 -1
  21. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/appendices.md +2 -2
  22. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/assertions.py +13 -4
  23. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/gateway/test_cases.py +168 -0
  24. monkeybot-3.13.0/regression/t2/loop/scenarios/file/file_change_absent_on_error.yaml +35 -0
  25. monkeybot-3.13.0/regression/t2/loop/scenarios/file/file_change_binary.yaml +32 -0
  26. monkeybot-3.13.0/regression/t2/loop/scenarios/file/file_change_patch.yaml +84 -0
  27. monkeybot-3.13.0/regression/t2/loop/scenarios/file/file_change_review.yaml +52 -0
  28. monkeybot-3.13.0/regression/t2/loop/scenarios/loop/ui_row_between_tool_pair.yaml +58 -0
  29. monkeybot-3.13.0/regression/t2/loop/scenarios/loop/ui_row_splits_a_batch.yaml +76 -0
  30. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/queue_pending_not_success.yaml +8 -8
  31. monkeybot-3.13.0/regression/t2/python/test_change_parent_session.py +43 -0
  32. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_ops_observability.py +8 -7
  33. {monkeybot-3.12.0 → monkeybot-3.13.0}/scripts/ci-local.sh +8 -0
  34. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/settings.py +20 -0
  35. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/__init__.py +78 -7
  36. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/messages/tool_integrity.py +94 -68
  37. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/messages/transform_context.py +10 -5
  38. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/backends.py +4 -23
  39. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/durable_runs.py +22 -105
  40. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/firestore.py +16 -118
  41. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/goal_ledger.py +1 -0
  42. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/postgres.py +23 -104
  43. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/prompts/headings.py +2 -0
  44. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/prompts/prompt.py +15 -0
  45. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/events.py +55 -0
  46. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/input_admission.py +18 -2
  47. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/loop.py +2 -0
  48. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/realtime_loop.py +10 -6
  49. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/tool_dispatch.py +32 -5
  50. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/turn_loop.py +32 -9
  51. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/subagents/subagent_proto.py +10 -0
  52. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/subagents/subagent_worker.py +2 -0
  53. monkeybot-3.13.0/src/monkeybot/core/subagents/supervisor.py +558 -0
  54. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/subprocess_groups.py +100 -0
  55. monkeybot-3.13.0/src/monkeybot/core/tools/change_recorder.py +821 -0
  56. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/core_tool_executor.py +259 -59
  57. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/permission.py +38 -0
  58. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/tool_kind.py +2 -0
  59. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/types.py +5 -0
  60. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/app.py +77 -22
  61. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/loop_port.py +2 -0
  62. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/models.py +8 -0
  63. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/routes.py +101 -3
  64. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/session_bus.py +16 -0
  65. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/observability/__init__.py +34 -2
  66. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/observability/spans.py +57 -27
  67. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/observability/sqlite_exporter.py +22 -12
  68. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scaffold/__init__.py +3 -1
  69. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/gateway.py +0 -1
  70. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/gateway_ports.py +2 -0
  71. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/subagent_worker.py +29 -0
  72. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/volatile_tail_parts.json +1 -0
  73. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/routes.txt +3 -0
  74. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/sse/schema.json +54 -0
  75. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_catalog_pairing.py +3 -3
  76. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_harness_prompt_golden.py +1 -0
  77. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_realtime_divergence.py +2 -0
  78. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_sse_schema.py +1 -0
  79. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_storage_parity.py +17 -8
  80. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_tool_error_catalog.py +1 -0
  81. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_context.py +3 -1
  82. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/goals/test_goals.py +8 -1
  83. monkeybot-3.13.0/tests/unit/core/messages/test_message_pipeline.py +337 -0
  84. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/messages/test_tool_integrity.py +74 -0
  85. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_durable_runs.py +5 -22
  86. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_storage_backends.py +24 -342
  87. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_durable_events.py +29 -0
  88. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_input_admission.py +24 -0
  89. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_loop.py +10 -3
  90. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_loop_observability.py +2 -2
  91. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/test_subagent_proto.py +15 -0
  92. monkeybot-3.13.0/tests/unit/core/subagents/test_supervisor.py +84 -0
  93. monkeybot-3.13.0/tests/unit/core/tools/test_change_recorder.py +461 -0
  94. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_core_tool_executor.py +180 -98
  95. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_path_grant_inspector.py +30 -0
  96. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_attachments.py +2 -0
  97. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_create_session_model.py +2 -0
  98. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_history_routes.py +6 -1
  99. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_routes.py +165 -0
  100. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_scheduler_routes.py +8 -1
  101. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_init.py +52 -0
  102. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_spans.py +75 -5
  103. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_sqlite_exporter.py +118 -0
  104. {monkeybot-3.12.0 → monkeybot-3.13.0}/uv.lock +1 -1
  105. monkeybot-3.12.0/regression/t2/python/test_subagent_worker_pool.py +0 -155
  106. monkeybot-3.12.0/src/monkeybot/core/subagents/worker_pool.py +0 -570
  107. monkeybot-3.12.0/src/monkeybot/subagents/__init__.py +0 -1
  108. monkeybot-3.12.0/src/monkeybot/subagents/worker/__init__.py +0 -1
  109. monkeybot-3.12.0/src/monkeybot/subagents/worker/__main__.py +0 -22
  110. monkeybot-3.12.0/tests/unit/core/messages/test_message_pipeline.py +0 -138
  111. monkeybot-3.12.0/tests/unit/core/subagents/test_worker_pool.py +0 -794
  112. {monkeybot-3.12.0 → monkeybot-3.13.0}/.cursor/hooks/pre-pr.py +0 -0
  113. {monkeybot-3.12.0 → monkeybot-3.13.0}/.cursor/hooks/test-failure-notice.py +0 -0
  114. {monkeybot-3.12.0 → monkeybot-3.13.0}/.cursor/hooks.json +0 -0
  115. {monkeybot-3.12.0 → monkeybot-3.13.0}/.cursor/rules/test-failures.mdc +0 -0
  116. {monkeybot-3.12.0 → monkeybot-3.13.0}/.cursor/skills/mb-retro/SKILL.md +0 -0
  117. {monkeybot-3.12.0 → monkeybot-3.13.0}/.dockerignore +0 -0
  118. {monkeybot-3.12.0 → monkeybot-3.13.0}/.github/CODEOWNERS +0 -0
  119. {monkeybot-3.12.0 → monkeybot-3.13.0}/.github/workflows/ci.yml +0 -0
  120. {monkeybot-3.12.0 → monkeybot-3.13.0}/.github/workflows/live-eval-smoke.yml +0 -0
  121. {monkeybot-3.12.0 → monkeybot-3.13.0}/.github/workflows/prepare-release.yml +0 -0
  122. {monkeybot-3.12.0 → monkeybot-3.13.0}/.github/workflows/publish-release.yml +0 -0
  123. {monkeybot-3.12.0 → monkeybot-3.13.0}/.gitignore +0 -0
  124. {monkeybot-3.12.0 → monkeybot-3.13.0}/.pre-commit-config.yaml +0 -0
  125. {monkeybot-3.12.0 → monkeybot-3.13.0}/BACKLOG.md +0 -0
  126. {monkeybot-3.12.0 → monkeybot-3.13.0}/LICENSE +0 -0
  127. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/pyproject.toml +0 -0
  128. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/skills/monkeybot/references/config-sections.md +0 -0
  129. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/__init__.py +0 -0
  130. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_file_index.py +0 -0
  131. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_local_shell.py +0 -0
  132. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_renderer.py +0 -0
  133. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_status_bar.py +0 -0
  134. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_theme.py +0 -0
  135. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_tool_display.py +0 -0
  136. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_tui.py +0 -0
  137. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/chat_tui_widgets.py +0 -0
  138. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/__init__.py +0 -0
  139. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/chat.py +0 -0
  140. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/loop.py +0 -0
  141. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/mcp_login.py +0 -0
  142. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/new.py +0 -0
  143. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/refresh.py +0 -0
  144. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/run_cmd.py +0 -0
  145. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/talk.py +0 -0
  146. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/trace.py +0 -0
  147. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/commands/validate.py +0 -0
  148. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/compat.py +0 -0
  149. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/config_resolve.py +0 -0
  150. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/exit_commands.py +0 -0
  151. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/extras_catalog.py +0 -0
  152. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/gateway_health.py +0 -0
  153. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/main.py +0 -0
  154. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/opensandbox_lifecycle.py +0 -0
  155. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/output.py +0 -0
  156. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/overrides.txt +0 -0
  157. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/process_tree.py +0 -0
  158. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/providers.py +0 -0
  159. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/__init__.py +0 -0
  160. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/audio_io.py +0 -0
  161. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/client.py +0 -0
  162. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/gateway_manager.py +0 -0
  163. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/push_to_talk.py +0 -0
  164. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/session.py +0 -0
  165. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/session_controller.py +0 -0
  166. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/talk_ui.py +0 -0
  167. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/realtime/wire_encode.py +0 -0
  168. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/runtime_python.py +0 -0
  169. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold.py +0 -0
  170. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/AGENT.md +0 -0
  171. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/Dockerfile +0 -0
  172. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/__init__.py +0 -0
  173. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/browser/SKILL.md +0 -0
  174. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/command_allowlist.yaml +0 -0
  175. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/dockerignore +0 -0
  176. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/env.example +0 -0
  177. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/goal/SKILL.md +0 -0
  178. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/image-generator/generate_image.py +0 -0
  179. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/loop/SKILL.md +0 -0
  180. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/mcp.json +0 -0
  181. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml +0 -0
  182. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/opensandbox.docker.toml +0 -0
  183. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/otel-collector.example.yaml +0 -0
  184. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/permissions.yaml +0 -0
  185. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/AGENT.md +0 -0
  186. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/command_allowlist.yaml +0 -0
  187. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/monkeybot.overrides.yaml +0 -0
  188. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/scaffold_defaults/templates/coding/permissions.yaml +0 -0
  189. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/session_controller.py +0 -0
  190. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/src/monkeybot_cli/terminal_markdown.py +0 -0
  191. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_continue.py +0 -0
  192. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_e2e.py +0 -0
  193. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_errors.py +0 -0
  194. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_file_index.py +0 -0
  195. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_grounding.py +0 -0
  196. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_local_shell.py +0 -0
  197. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_renderer_parity.py +0 -0
  198. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_status_bar.py +0 -0
  199. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_theme.py +0 -0
  200. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_tool_display.py +0 -0
  201. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_chat_tui.py +0 -0
  202. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_cli.py +0 -0
  203. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_config_resolve.py +0 -0
  204. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_extras_catalog.py +0 -0
  205. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_gateway_health.py +0 -0
  206. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_opensandbox_lifecycle.py +0 -0
  207. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_realtime_session_controller.py +0 -0
  208. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_run_cmd.py +0 -0
  209. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_runtime_python.py +0 -0
  210. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_scaffold.py +0 -0
  211. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_terminal_markdown.py +0 -0
  212. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/tests/test_trace_cmd.py +0 -0
  213. {monkeybot-3.12.0 → monkeybot-3.13.0}/cli/uv.lock +0 -0
  214. {monkeybot-3.12.0 → monkeybot-3.13.0}/conftest.py +0 -0
  215. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker/Dockerfile +0 -0
  216. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker/demo-model.yaml +0 -0
  217. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker/demo.yaml +0 -0
  218. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker/docker-compose.sandbox.yml +0 -0
  219. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker/opensandbox.docker.toml +0 -0
  220. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker/sandbox.Dockerfile +0 -0
  221. {monkeybot-3.12.0 → monkeybot-3.13.0}/docker-compose.yml +0 -0
  222. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/agent-layout.md +0 -0
  223. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/assets/logo.png +0 -0
  224. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/browser-mcp-perf-baseline.md +0 -0
  225. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/browser-mcp-performance-plan.md +0 -0
  226. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/browser-mcp.md +0 -0
  227. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/deploy-aws-agentcore.md +0 -0
  228. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/deploy-pattern-a-container.md +0 -0
  229. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/deploy-pattern-b-serverless.md +0 -0
  230. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/deploy-pattern-c-agent-platform.md +0 -0
  231. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/live-evals.md +0 -0
  232. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/mcp.md +0 -0
  233. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/migrations/agent-scope-namespacing.md +0 -0
  234. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/migrations/history-row-id.sql +0 -0
  235. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/migrations/memory-outbox.sql +0 -0
  236. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/migrations/session-branches.sql +0 -0
  237. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/ollama-local.md +0 -0
  238. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/otel-collector.example.yaml +0 -0
  239. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/progressive-loop-tools.md +0 -0
  240. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/progressive-mcp-tools.md +0 -0
  241. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/skills.md +0 -0
  242. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/spill-dynamic-design.md +0 -0
  243. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/sse-gateway-ui.md +0 -0
  244. {monkeybot-3.12.0 → monkeybot-3.13.0}/docs/verifier-agent-design.md +0 -0
  245. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/README.md +0 -0
  246. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/agentcore/handler.py +0 -0
  247. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/agentcore/runtime_app.py +0 -0
  248. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/agentengine/handler.py +0 -0
  249. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/cloud-functions/main.py +0 -0
  250. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/lambda/handler.py +0 -0
  251. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/ollama/PrefixStable.Modelfile +0 -0
  252. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/browser/SKILL.md +0 -0
  253. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/browser/playbooks/.gitkeep +0 -0
  254. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/diagnostics/README.md +0 -0
  255. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/diagnostics/SKILL.md +0 -0
  256. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/diagnostics/__init__.py +0 -0
  257. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/diagnostics/diagnostics.py +0 -0
  258. {monkeybot-3.12.0 → monkeybot-3.13.0}/examples/skills/image-generator/generate_image.py +0 -0
  259. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/pyproject.toml +0 -0
  260. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/scripts/agentcore_smoke.py +0 -0
  261. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/scripts/dump_tool_surface.py +0 -0
  262. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/scripts/perf_bench.py +0 -0
  263. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/__init__.py +0 -0
  264. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/actions.py +0 -0
  265. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/agentcore.py +0 -0
  266. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/app.py +0 -0
  267. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/assets/NOTICE.md +0 -0
  268. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/assets/dom_tree.js +0 -0
  269. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/assets/pa_driver.js +0 -0
  270. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/backend.py +0 -0
  271. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/chat_context.py +0 -0
  272. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/chat_scope.py +0 -0
  273. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/dom_indexing.py +0 -0
  274. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/in_app_cdp.py +0 -0
  275. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/login.py +0 -0
  276. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/observe.py +0 -0
  277. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/perf.py +0 -0
  278. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/playbooks.py +0 -0
  279. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/playwright_helpers.py +0 -0
  280. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/results.py +0 -0
  281. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/screenshots.py +0 -0
  282. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/server.py +0 -0
  283. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tab_ops.py +0 -0
  284. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tabs.py +0 -0
  285. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/__init__.py +0 -0
  286. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/batch.py +0 -0
  287. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/capture.py +0 -0
  288. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/interact.py +0 -0
  289. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/navigate.py +0 -0
  290. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/playbook.py +0 -0
  291. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/read.py +0 -0
  292. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/src/browser_mcp/tools/tab_control.py +0 -0
  293. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/conftest.py +0 -0
  294. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/api.json +0 -0
  295. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/article.html +0 -0
  296. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/cards.html +0 -0
  297. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/form.html +0 -0
  298. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/long_list.html +0 -0
  299. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/spa.html +0 -0
  300. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/fixtures/tool_surface.json +0 -0
  301. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/conftest.py +0 -0
  302. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_act_observe.py +0 -0
  303. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_driver_persist.py +0 -0
  304. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_intent_tools.py +0 -0
  305. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_multi_tab.py +0 -0
  306. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_observation.py +0 -0
  307. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_run_playbook.py +0 -0
  308. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/integration/test_wait_for.py +0 -0
  309. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_act.py +0 -0
  310. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_agentcore.py +0 -0
  311. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_chat_isolation.py +0 -0
  312. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_chat_scope.py +0 -0
  313. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_dom_indexing.py +0 -0
  314. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_fill_form.py +0 -0
  315. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_in_app_cdp.py +0 -0
  316. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_indexed_tools.py +0 -0
  317. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_observe.py +0 -0
  318. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_observe_after.py +0 -0
  319. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_perf.py +0 -0
  320. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_playbook_flows.py +0 -0
  321. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_playbooks.py +0 -0
  322. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_playwright_helpers.py +0 -0
  323. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_screenshots.py +0 -0
  324. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_server_shutdown.py +0 -0
  325. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_tabs.py +0 -0
  326. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_tool_surface.py +0 -0
  327. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/tests/test_wait_tools.py +0 -0
  328. {monkeybot-3.12.0 → monkeybot-3.13.0}/integrations/browser-mcp/uv.lock +0 -0
  329. {monkeybot-3.12.0 → monkeybot-3.13.0}/pytest.ini +0 -0
  330. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/__init__.py +0 -0
  331. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/conftest.py +0 -0
  332. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/__init__.py +0 -0
  333. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/__init__.py +0 -0
  334. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/git.py +0 -0
  335. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/hooks.py +0 -0
  336. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/host_tools.py +0 -0
  337. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/mcp.py +0 -0
  338. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/memory.py +0 -0
  339. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/policy.py +0 -0
  340. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/prompt_context.py +0 -0
  341. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/protocol.py +0 -0
  342. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/store.py +0 -0
  343. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/subagents.py +0 -0
  344. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/verifier.py +0 -0
  345. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/bundles/workspace.py +0 -0
  346. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/gateway.py +0 -0
  347. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/loop.py +0 -0
  348. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/realtime.py +0 -0
  349. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/record.py +0 -0
  350. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/replay.py +0 -0
  351. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/support/__init__.py +0 -0
  352. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/support/config.py +0 -0
  353. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/support/env.py +0 -0
  354. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/support/executor.py +0 -0
  355. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/support/paths.py +0 -0
  356. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/drivers/support/tokens.py +0 -0
  357. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/__init__.py +0 -0
  358. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/build.py +0 -0
  359. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/agent.base.yaml +0 -0
  360. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/command_allowlist.default.yaml +0 -0
  361. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/command_allowlist.empty.yaml +0 -0
  362. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/command_allowlist.no_deny_patterns.yaml +0 -0
  363. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/command_allowlist.strict.yaml +0 -0
  364. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/grants.corrupt.json +0 -0
  365. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/grants.json +0 -0
  366. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/mcp.autoconnect.json +0 -0
  367. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/mcp.broken.json +0 -0
  368. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/mcp.progressive.json +0 -0
  369. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/mcp.two_prefix.json +0 -0
  370. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/permissions.ask.yaml +0 -0
  371. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/permissions.default.yaml +0 -0
  372. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/permissions.overlap.yaml +0 -0
  373. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/verifier.block.yaml +0 -0
  374. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/verifier.judge.yaml +0 -0
  375. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/verifier.replan.yaml +0 -0
  376. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/verifier.tracker.yaml +0 -0
  377. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/configs/{workspace}/child.db +0 -0
  378. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/conftest.py +0 -0
  379. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/mcp/fixture_mcp_server.py +0 -0
  380. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/scripts/one_turn.yaml +0 -0
  381. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/skills/a/nested/SKILL.md +0 -0
  382. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/skills/diagnostics/SKILL.md +0 -0
  383. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/skills/plain/SKILL.md +0 -0
  384. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/.gitkeep +0 -0
  385. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/absent_file.ndjson +0 -0
  386. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/child_error.ndjson +0 -0
  387. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/echo.ndjson +0 -0
  388. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/hold.ndjson +0 -0
  389. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/large_line.ndjson +0 -0
  390. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/nested_task.ndjson +0 -0
  391. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/present_file.ndjson +0 -0
  392. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/roundtrip.ndjson +0 -0
  393. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/subagent_tapes/system_prompt.ndjson +0 -0
  394. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_secret.txt +0 -0
  395. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-link +0 -0
  396. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-link.json +0 -0
  397. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-pdf +0 -0
  398. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/.monkeybot/attachments/loop-scenario/att-pdf.json +0 -0
  399. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/i1.png +0 -0
  400. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/i2.png +0 -0
  401. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/i3.png +0 -0
  402. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/i4.png +0 -0
  403. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/i5.png +0 -0
  404. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/i6.png +0 -0
  405. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/att_ws/tiny.png +0 -0
  406. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/.gitignore +0 -0
  407. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/AGENTS.md +0 -0
  408. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/build/calc/ops.py +0 -0
  409. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/calc/__init__.py +0 -0
  410. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/calc/ops.py +0 -0
  411. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/node_modules/left-pad/index.js +0 -0
  412. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/node_modules/left-pad/package.json +0 -0
  413. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/pyproject.toml +0 -0
  414. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo/tests/test_ops.py +0 -0
  415. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/.gitignore +0 -0
  416. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/AGENTS.md +0 -0
  417. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/build/calc/ops.py +0 -0
  418. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/calc/__init__.py +0 -0
  419. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/calc/ops.py +0 -0
  420. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/node_modules/left-pad/index.js +0 -0
  421. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/node_modules/left-pad/package.json +0 -0
  422. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/pyproject.toml +0 -0
  423. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/calc_repo_green/tests/test_ops.py +0 -0
  424. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/drift_ws/DONE.txt +0 -0
  425. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/drift_ws/db/migrations/001_init.sql +0 -0
  426. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/drift_ws/src/models.py +0 -0
  427. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/grants_ws/granted/.env +0 -0
  428. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/grants_ws/granted/notes.md +0 -0
  429. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/grants_ws/workspace/src/app.txt +0 -0
  430. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/.gitignore +0 -0
  431. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/AGENTS.md +0 -0
  432. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/node_modules/left.js +0 -0
  433. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/notes.txt +0 -0
  434. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/pkg/.gitignore +0 -0
  435. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/pkg/hidden.txt +0 -0
  436. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/pkg/visible.txt +0 -0
  437. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/secret.txt +0 -0
  438. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/src/app.py +0 -0
  439. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/hostile_ws/wide.txt +0 -0
  440. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/overlays/bug_discount/shop/pricing.py +0 -0
  441. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/overlays/noisy_tests/shop/taxes.py +0 -0
  442. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/overlays/noisy_tests/tests/conftest.py +0 -0
  443. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/overlays/offline_gateway/tests/test_gateway.py +0 -0
  444. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/.gitignore +0 -0
  445. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/AGENTS.md +0 -0
  446. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/CHANGELOG.md +0 -0
  447. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/README.md +0 -0
  448. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/build/shop/shipping.py +0 -0
  449. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/pyproject.toml +0 -0
  450. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/__init__.py +0 -0
  451. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/cart.py +0 -0
  452. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/coupons.py +0 -0
  453. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/gateway.py +0 -0
  454. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/inventory.py +0 -0
  455. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/legacy/__init__.py +0 -0
  456. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/legacy/pricing_v1.py +0 -0
  457. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/legacy/shipping_v1.py +0 -0
  458. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/models.py +0 -0
  459. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/orders.py +0 -0
  460. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/pricing.py +0 -0
  461. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/reports.py +0 -0
  462. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/shipping.py +0 -0
  463. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/taxes.py +0 -0
  464. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/utils/__init__.py +0 -0
  465. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/utils/money.py +0 -0
  466. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/shop/utils/text.py +0 -0
  467. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_cart.py +0 -0
  468. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_coupons.py +0 -0
  469. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_inventory.py +0 -0
  470. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_money.py +0 -0
  471. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_orders.py +0 -0
  472. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_pricing.py +0 -0
  473. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_reports.py +0 -0
  474. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_shipping.py +0 -0
  475. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/tests/test_taxes.py +0 -0
  476. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/fixtures/workspaces/shop_repo/vendor/pricekit/__init__.py +0 -0
  477. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/AGENT_GUIDE.md +0 -0
  478. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/README.md +0 -0
  479. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-0a-tier1-reorg.md +0 -0
  480. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-0b-foundations.md +0 -0
  481. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-1-t2-harness-logic.md +0 -0
  482. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-2-contracts-and-gateway.md +0 -0
  483. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-3-record-replay.md +0 -0
  484. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-4-live.md +0 -0
  485. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-5-trials.md +0 -0
  486. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/phases/phase-6-cutover.md +0 -0
  487. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/01-goals-and-principles.md +0 -0
  488. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/03-tiers.md +0 -0
  489. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/04-file-structure.md +0 -0
  490. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.1-doubles.md +0 -0
  491. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.10-testing-doc.md +0 -0
  492. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.11-live-provider.md +0 -0
  493. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.2-scenario-schema.md +0 -0
  494. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.3-assertions-and-invariants.md +0 -0
  495. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.4-fixtures.md +0 -0
  496. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.5-cassettes.md +0 -0
  497. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.6-pytest-reporting-trials.md +0 -0
  498. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/05.9-failure-ledger.md +0 -0
  499. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/00-index.md +0 -0
  500. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6A-loop.md +0 -0
  501. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6B-ctx.md +0 -0
  502. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6C-hook.md +0 -0
  503. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6D-file.md +0 -0
  504. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6E-shell.md +0 -0
  505. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6F-pol.md +0 -0
  506. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6G-code.md +0 -0
  507. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6H-att.md +0 -0
  508. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6I-comp.md +0 -0
  509. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6J-sub.md +0 -0
  510. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6K-ver.md +0 -0
  511. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6L-sched.md +0 -0
  512. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6M-skill.md +0 -0
  513. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6N-mcp.md +0 -0
  514. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6O-web.md +0 -0
  515. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6P-mem.md +0 -0
  516. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6Q-store.md +0 -0
  517. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6R-cfg.md +0 -0
  518. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6S-todo.md +0 -0
  519. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6T-prov.md +0 -0
  520. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6U-gw.md +0 -0
  521. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/06-coverage/6V-rt.md +0 -0
  522. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/07-migration-map.md +0 -0
  523. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/09-ci.md +0 -0
  524. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/10-policies.md +0 -0
  525. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/11-known-issues.md +0 -0
  526. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/reference/12-decisions.md +0 -0
  527. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/status.md +0 -0
  528. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plan/tasks.md +0 -0
  529. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/plugin.py +0 -0
  530. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/__init__.py +0 -0
  531. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/events.py +0 -0
  532. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/invariants.py +0 -0
  533. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/scenario.py +0 -0
  534. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/sse_norm.py +0 -0
  535. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/schema/steps.py +0 -0
  536. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/__init__.py +0 -0
  537. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/recorded/t4_run_smoke_sample.json +0 -0
  538. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_agent_project.py +0 -0
  539. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_assertions.py +0 -0
  540. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_bundle_order.py +0 -0
  541. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_coding_hard_oracle.py +0 -0
  542. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_diff.py +0 -0
  543. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_fixtures.py +0 -0
  544. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_from_transcript.py +0 -0
  545. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_gateway_driver.py +0 -0
  546. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_invariants.py +0 -0
  547. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_judge.py +0 -0
  548. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_live_engine.py +0 -0
  549. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_live_ledger.py +0 -0
  550. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_live_scenarios.py +0 -0
  551. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_preflight.py +0 -0
  552. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_report.py +0 -0
  553. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_runner_sse.py +0 -0
  554. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_scenario_schema.py +0 -0
  555. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_scorer.py +0 -0
  556. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_steps.py +0 -0
  557. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/selftest/test_trials_stats.py +0 -0
  558. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/__init__.py +0 -0
  559. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/gateway/harness.py +0 -0
  560. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/gateway/scenarios/gw/reconnect_last_event_id.yaml +0 -0
  561. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/gateway/scenarios/gw/scripted_turn_golden_sse.yaml +0 -0
  562. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/gateway/scenarios/gw/tool_turn_golden_sse.yaml +0 -0
  563. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/attachment_symlink_leaf_rejected.yaml +0 -0
  564. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/freeze_descriptors_in_history.yaml +0 -0
  565. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/load_both_args.yaml +0 -0
  566. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/load_image_preview.yaml +0 -0
  567. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/load_pdf.yaml +0 -0
  568. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/load_per_reply_cap.yaml +0 -0
  569. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/attachments/load_text_rejected.yaml +0 -0
  570. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/compaction_forgets_reads.yaml +0 -0
  571. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/fix_failing_test.yaml +0 -0
  572. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_background_verify_not_counted.yaml +0 -0
  573. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_cap_then_accept.yaml +0 -0
  574. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_custom_verify_commands.yaml +0 -0
  575. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_masked_exit.yaml +0 -0
  576. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_non_executing_wrapper.yaml +0 -0
  577. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_open_todos_reject.yaml +0 -0
  578. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_passes_when_verified.yaml +0 -0
  579. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_question_not_gated.yaml +0 -0
  580. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_rejected_answer_not_persisted.yaml +0 -0
  581. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_rejects_unverified.yaml +0 -0
  582. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/gate_write_after_verify.yaml +0 -0
  583. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/git_context_absent.yaml +0 -0
  584. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/git_context_note.yaml +0 -0
  585. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/git_env_isolation.yaml +0 -0
  586. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/read_before_write.yaml +0 -0
  587. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/subagent_has_ledger_no_gate.yaml +0 -0
  588. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/coding/subagent_ledger_child.yml +0 -0
  589. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/clipboard_cap.yaml +0 -0
  590. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/denied_apps_and_schemes.yaml +0 -0
  591. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/denied_dirs_and_globs.yaml +0 -0
  592. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/move_trash_not_always_scoped.yaml +0 -0
  593. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/open_exec_suffix_denied.yaml +0 -0
  594. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/trash_huge_tree_refused.yaml +0 -0
  595. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/computer/x.sh +0 -0
  596. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/background_summary_applied.yaml +0 -0
  597. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/background_summary_stale_fallback.yaml +0 -0
  598. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/base64_sanitized.yaml +0 -0
  599. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/compact_at_trigger.yaml +0 -0
  600. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/compact_does_not_persist_repairs.yaml +0 -0
  601. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/compact_fallback.yaml +0 -0
  602. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/compact_keep_tail_ratio.yaml +0 -0
  603. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/compact_pins_verdict_attachment_thinking.yaml +0 -0
  604. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/compact_trailer_from_goal_ledger.yaml +0 -0
  605. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/context_usage_current_not_peak.yaml +0 -0
  606. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/epoch_after_compaction.yaml +0 -0
  607. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/epoch_stable_change.yaml +0 -0
  608. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/epoch_volatile_update.yaml +0 -0
  609. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/memory_wake_up_large.yaml +0 -0
  610. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/project_instructions_spoof_heading.yaml +0 -0
  611. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/slash_skill_turn_scoped.yaml +0 -0
  612. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/stable_prefix_byte_stable.yaml +0 -0
  613. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/summarizer_model_override.yaml +0 -0
  614. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/ctx/tool_result_shaping_under_pressure.yaml +0 -0
  615. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/glob_cap_incomplete.yaml +0 -0
  616. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/glob_skips_noise.yaml +0 -0
  617. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/grep_gitignore_default.yaml +0 -0
  618. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/grep_incomplete_scan.yaml +0 -0
  619. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/grep_invalid_regex.yaml +0 -0
  620. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/grep_pagination.yaml +0 -0
  621. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/list_dir_truncate.yaml +0 -0
  622. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/overwrite_unread_rejected.yaml +0 -0
  623. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/patch_add_existing.yaml +0 -0
  624. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/patch_fail_closed.yaml +0 -0
  625. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/patch_move_dest_exists.yaml +0 -0
  626. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/patch_rollback.yaml +0 -0
  627. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/patch_update_requires_read.yaml +0 -0
  628. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/read_absolute_needs_grant.yaml +0 -0
  629. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/read_escape_dotdot.yaml +0 -0
  630. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/read_escape_symlink.yaml +0 -0
  631. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/read_huge_single_line.yaml +0 -0
  632. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/read_offset_past_eof.yaml +0 -0
  633. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/read_paging_no_gap.yaml +0 -0
  634. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/replace_error_codes.yaml +0 -0
  635. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/replace_fuzzy_unicode.yaml +0 -0
  636. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/skills_read_only.yaml +0 -0
  637. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/spill_large_tool_output.yaml +0 -0
  638. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/spill_session_id_sanitized.yaml +0 -0
  639. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/stale_read_rejected.yaml +0 -0
  640. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/tool_glob_grep.yaml +0 -0
  641. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/tool_read.yaml +0 -0
  642. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/tool_replace_apply_patch.yaml +0 -0
  643. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/tool_write.yaml +0 -0
  644. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/virtual_mounts.yaml +0 -0
  645. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/write_new_without_read_ok.yaml +0 -0
  646. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/write_outside_scope.yaml +0 -0
  647. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/file/write_payload_too_large.yaml +0 -0
  648. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/evidence_grep_only_not_accepted.yaml +0 -0
  649. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/evidence_missing_path.yaml +0 -0
  650. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/evidence_thread_isolation.yaml +0 -0
  651. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/evidence_unread_then_read.yaml +0 -0
  652. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/secret_ends_routine_turn.yaml +0 -0
  653. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/secret_in_tool_args.yaml +0 -0
  654. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/secret_redacted_interactive.yaml +0 -0
  655. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/hook/secret_scanner_failure_fails_closed.yaml +0 -0
  656. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/all_parse_error_batch_rejected.yaml +0 -0
  657. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/ask_user_non_interactive.yaml +0 -0
  658. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/ask_user_roundtrip.yaml +0 -0
  659. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/background_check_raises_fails_closed.yaml +0 -0
  660. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/background_nudge_then_release.yaml +0 -0
  661. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/background_nudges_exhausted.yaml +0 -0
  662. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/cancel_after_tool_call_before_execute.yaml +0 -0
  663. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/cancel_mid_stream.yaml +0 -0
  664. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/confirm_always_remembered.yaml +0 -0
  665. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/confirm_approve.yaml +0 -0
  666. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/confirm_deny.yaml +0 -0
  667. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/confirm_timeout.yaml +0 -0
  668. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/doom_disabled.yaml +0 -0
  669. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/doom_exempt_poll.yaml +0 -0
  670. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/doom_identical_read.yaml +0 -0
  671. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/doom_path_reset_on_success.yaml +0 -0
  672. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/doom_path_retry_spelling.yaml +0 -0
  673. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/empty_exhausted.yaml +0 -0
  674. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/empty_then_text.yaml +0 -0
  675. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/grounding_event_passthrough.yaml +0 -0
  676. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/max_turns_cap.yaml +0 -0
  677. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/max_turns_not_on_clean_finish.yaml +0 -0
  678. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/mixed_parse_error_batch_runs_valid.yaml +0 -0
  679. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/parallel_concurrency_cap.yaml +0 -0
  680. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/parallel_results_in_submission_order.yaml +0 -0
  681. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/post_tool_empty_retry.yaml +0 -0
  682. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/promote_follow_up_provenance.yaml +0 -0
  683. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/provider_raises.yaml +0 -0
  684. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/registry_refresh_same_turn.yaml +0 -0
  685. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/repair_missing_tool_result.yaml +0 -0
  686. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/repair_orphan_tool_response.yaml +0 -0
  687. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/resume_thinking_budget_routine.yaml +0 -0
  688. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/steer_mid_turn.yaml +0 -0
  689. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/thinking_block_order.yaml +0 -0
  690. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/thinking_only_is_empty.yaml +0 -0
  691. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/thought_signature_preserved.yaml +0 -0
  692. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/tool_input_delta_passthrough.yaml +0 -0
  693. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/truncated_batch_rejected.yaml +0 -0
  694. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/turn_completion.yaml +0 -0
  695. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/loop/usage_totals.yaml +0 -0
  696. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/autoconnect_failure_is_status.yaml +0 -0
  697. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/catalog_diff_reload.yaml +0 -0
  698. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/disable_removes_tools.yaml +0 -0
  699. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/disabled_server_not_catalogued.yaml +0 -0
  700. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/enable_then_call.yaml +0 -0
  701. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/enable_unknown_server.yaml +0 -0
  702. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/env_interpolation_missing.yaml +0 -0
  703. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/meta_tools_only_when_connected.yaml +0 -0
  704. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/name_prefix_split.yaml +0 -0
  705. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/resources_and_prompts.yaml +0 -0
  706. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/mcp/strict_load_rolls_back.yaml +0 -0
  707. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/ephemeral_palace_shared_outbox_rejected.yaml +0 -0
  708. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/memory_off.yaml +0 -0
  709. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/memory_write_inject.yaml +0 -0
  710. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/mempalace_search_real.yaml +0 -0
  711. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/outbox_failure_does_not_fail_turn.yaml +0 -0
  712. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/outbox_ingest_then_inject.yaml +0 -0
  713. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/outbox_thread_isolation.yaml +0 -0
  714. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/memory/subagent_no_ingest.yaml +0 -0
  715. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/command_grant_from_store.yaml +0 -0
  716. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/default_deny_patterns.yaml +0 -0
  717. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/grant_revocation_clears.yaml +0 -0
  718. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/granted_folder_credential_denied.yaml +0 -0
  719. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/path_grant_read.yaml +0 -0
  720. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/permissions_last_match_wins.yaml +0 -0
  721. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/permissions_missing_file_fail_open.yaml +0 -0
  722. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/start_loop_always_confirms.yaml +0 -0
  723. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/symlink_in_grant_does_not_widen.yaml +0 -0
  724. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/unknown_binary_confirm_approve.yaml +0 -0
  725. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/policy/unknown_binary_confirm_deny.yaml +0 -0
  726. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/create_goal_requires_slash_goal.yaml +0 -0
  727. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/create_goal_with_slash_goal.yaml +0 -0
  728. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/enable_loops_progressive.yaml +0 -0
  729. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/loop_goal_isolation.yaml +0 -0
  730. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/loop_lifecycle_real_store.yaml +0 -0
  731. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/one_open_goal_per_session.yaml +0 -0
  732. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/start_loop_requires_stop_guard.yaml +0 -0
  733. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/scheduler/tool_loops.yaml +0 -0
  734. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/allowlist_deny.yaml +0 -0
  735. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/argv_forms.yaml +0 -0
  736. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/bg_job_cap.yaml +0 -0
  737. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/bg_kill_command.yaml +0 -0
  738. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/bg_killed_at_turn_end.yaml +0 -0
  739. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/bg_start_await_cursor.yaml +0 -0
  740. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/cwd_escape.yaml +0 -0
  741. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/home_escape.yaml +0 -0
  742. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/large_stdout_spill_keeps_exit.yaml +0 -0
  743. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/mempalace_refused_memory_off.yaml +0 -0
  744. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/mempalace_search_only.yaml +0 -0
  745. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/nonzero_exit.yaml +0 -0
  746. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/run_command.yaml +0 -0
  747. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/shell_wrapper_bypass.yaml +0 -0
  748. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/timeout_partial_output.yaml +0 -0
  749. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/shell/unscreenable_script_fails_closed.yaml +0 -0
  750. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/skills/list_then_read_skill.yaml +0 -0
  751. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/skills/skill_symlink_escape.yaml +0 -0
  752. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/skills/skill_write_denied.yaml +0 -0
  753. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/skills/skills_in_prompt.yaml +0 -0
  754. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/skills/skills_path_hot_reload.yaml +0 -0
  755. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/skills/slash_unknown_skill.yaml +0 -0
  756. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/store/compaction_reset_row_ids.yaml +0 -0
  757. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/store/transcript_convertible.yaml +0 -0
  758. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/store/usage_recorded_on_turn_complete.yaml +0 -0
  759. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/child_errors_record_failed.yaml +0 -0
  760. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/child_memory_read_only.yaml +0 -0
  761. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/expect_files_absent.yaml +0 -0
  762. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/expect_files_escape.yaml +0 -0
  763. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/expect_files_present.yaml +0 -0
  764. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/large_ndjson_line.yaml +0 -0
  765. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/ledger_context_forwarded.yaml +0 -0
  766. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/nested_task_refused.yaml +0 -0
  767. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/parallel_task_cap.yaml +0 -0
  768. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/parent_cancel.yaml +0 -0
  769. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/persona_applied.yaml +0 -0
  770. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/subagent_roundtrip.yaml +0 -0
  771. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/subagent_timeout.yaml +0 -0
  772. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/system_prompt_redacted_on_pipe.yaml +0 -0
  773. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/subagents/unknown_subagent_type.yaml +0 -0
  774. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/caps.yaml +0 -0
  775. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/ids_stable.yaml +0 -0
  776. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/mirror_hydrate.yaml +0 -0
  777. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/reminder_once.yaml +0 -0
  778. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/single_in_progress.yaml +0 -0
  779. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/todo_list.yaml +0 -0
  780. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/todo/todo_list_steps.yaml +0 -0
  781. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/block_denies_mutating_tools.yaml +0 -0
  782. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/constraint_touch_negative.yaml +0 -0
  783. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/constraint_touch_positive.yaml +0 -0
  784. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/done_unmet_positive.yaml +0 -0
  785. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/error_streak_negative.yaml +0 -0
  786. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/error_streak_positive.yaml +0 -0
  787. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/free_text_constraint_never_matches.yaml +0 -0
  788. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/judge_malformed_fails_open.yaml +0 -0
  789. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/judge_rate_limits.yaml +0 -0
  790. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/judge_replay_valid.yaml +0 -0
  791. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/judge_spend_ratio.yaml +0 -0
  792. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/mailbox_stale_checkpoint_dropped.yaml +0 -0
  793. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/min_turn_before_verdict.yaml +0 -0
  794. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/no_progress_budget_burn_not_mailboxed.yaml +0 -0
  795. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/preempt_negative.yaml +0 -0
  796. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/repeat_correction_positive.yaml +0 -0
  797. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/replan_one_turn.yaml +0 -0
  798. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/rewrite_churn_positive.yaml +0 -0
  799. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/rewrite_effects_branch_copy.yaml +0 -0
  800. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/severity_cap_nudge.yaml +0 -0
  801. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/sticky_nudge.yaml +0 -0
  802. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/supersession_negative.yaml +0 -0
  803. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/verdict_in_history_stripped_for_provider.yaml +0 -0
  804. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/verifier_off_no_effect.yaml +0 -0
  805. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/write_without_read_negative.yaml +0 -0
  806. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/verifier/write_without_read_positive.yaml +0 -0
  807. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/backend_none_not_advertised.yaml +0 -0
  808. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/browser_mcp.json +0 -0
  809. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/browser_stop_on_disconnect.yaml +0 -0
  810. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/browser_stop_server.py +0 -0
  811. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/empty_query.yaml +0 -0
  812. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/max_results.yaml +0 -0
  813. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/loop/scenarios/web/web_search.yaml +0 -0
  814. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/__init__.py +0 -0
  815. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_drift_confusion_matrix.py +0 -0
  816. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_e2e_simple_reply.py +0 -0
  817. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_grep_parity.py +0 -0
  818. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_hooks_lifecycle.py +0 -0
  819. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_jail.py +0 -0
  820. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_memory_commit.py +0 -0
  821. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_observability_acceptance.py +0 -0
  822. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_observability_integration.py +0 -0
  823. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_ops_cli.py +0 -0
  824. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_prompt_caching_integration.py +0 -0
  825. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_scheduler_engine.py +0 -0
  826. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/python/test_sse_stream_pressure.py +0 -0
  827. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_blocks_history_rewrite.yaml +0 -0
  828. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_guardrail_budget.yaml +0 -0
  829. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_interrupt.yaml +0 -0
  830. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_slot_limit.yaml +0 -0
  831. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_text_turn.yaml +0 -0
  832. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_tool_confirmation.yaml +0 -0
  833. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t2/realtime/scenarios/ws_tool_turn.yaml +0 -0
  834. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/__init__.py +0 -0
  835. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/mcp/tools_list_call.json +0 -0
  836. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/memory/wake_up_snapshot.json +0 -0
  837. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/sse/basic_turn.sse +0 -0
  838. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/sse/cassette_turn.sse +0 -0
  839. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/sse/tool_turn.sse +0 -0
  840. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/subagents/child_tape.ndjson +0 -0
  841. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/test_golden_sse.py +0 -0
  842. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/test_replay_mcp.py +0 -0
  843. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/test_replay_subagent_tape.py +0 -0
  844. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/test_replay_trajectories.py +0 -0
  845. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/test_replay_wake_up.py +0 -0
  846. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/test_replay_wire.py +0 -0
  847. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/tools/__init__.py +0 -0
  848. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/tools/cassette.py +0 -0
  849. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/tools/check_staleness.py +0 -0
  850. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/tools/from_transcript.py +0 -0
  851. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/tools/record_wire.py +0 -0
  852. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/ctx/replay_live_compaction.cassette.json +0 -0
  853. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/ctx/replay_live_compaction.yaml +0 -0
  854. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/loop/replay_live_doom_loop.cassette.json +0 -0
  855. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/loop/replay_live_doom_loop.yaml +0 -0
  856. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/loop/replay_live_truncation.cassette.json +0 -0
  857. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/loop/replay_live_truncation.yaml +0 -0
  858. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/shell/replay_live_pytest_run.cassette.json +0 -0
  859. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/shell/replay_live_pytest_run.yaml +0 -0
  860. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/verifier/replay_drift_tape.cassette.json +0 -0
  861. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/trajectories/verifier/replay_drift_tape.yaml +0 -0
  862. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/wire/ollama_cloud/glm_tool_turn.json +0 -0
  863. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t3/wire/ollama_cloud/thinking_only_completion.json +0 -0
  864. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/__init__.py +0 -0
  865. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/__main__.py +0 -0
  866. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/.gitignore +0 -0
  867. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/.blob_seq_ids_migrated +0 -0
  868. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/.collection_type_fixed +0 -0
  869. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/.embedder_identity +0 -0
  870. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/.embedding-migrate.lock +0 -0
  871. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/.palace_id +0 -0
  872. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/.palace_write.lock +0 -0
  873. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/data_level0.bin +0 -0
  874. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/header.bin +0 -0
  875. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/length.bin +0 -0
  876. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/2d1891d4-34d0-43bd-8eea-2fb73026046b/link_lists.bin +0 -0
  877. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/identity.txt +0 -0
  878. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/memory/mempalace_embedder.json +0 -0
  879. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/.t4-gateway-993b836fb2a9.yaml +0 -0
  880. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/AGENT.coding.md +0 -0
  881. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/AGENT.md +0 -0
  882. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/AGENT.researcher.md +0 -0
  883. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/command_allowlist.yaml +0 -0
  884. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/grants.json +0 -0
  885. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/mcp.json +0 -0
  886. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/mcp.progressive.json +0 -0
  887. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/monkeybot.coding.yaml +0 -0
  888. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/monkeybot.verifier-judge.yaml +0 -0
  889. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/monkeybot.verifier-tracker.yaml +0 -0
  890. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/monkeybot.yaml +0 -0
  891. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/monkeybot_config/permissions.yaml +0 -0
  892. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/pyproject.toml +0 -0
  893. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/skills/browser/SKILL.md +0 -0
  894. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/agent/uv.lock +0 -0
  895. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/assertions.py +0 -0
  896. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/baselines/smoke.json +0 -0
  897. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/baselines/smoke.md +0 -0
  898. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/conftest.py +0 -0
  899. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/diff.py +0 -0
  900. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/eval_config.yaml +0 -0
  901. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/gateway.py +0 -0
  902. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/models.py +0 -0
  903. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/persistence.py +0 -0
  904. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/preflight.py +0 -0
  905. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/python/__init__.py +0 -0
  906. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/python/test_docker_image_health.py +0 -0
  907. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/python/test_provider_live_matrix.py +0 -0
  908. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/report.py +0 -0
  909. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/runner.py +0 -0
  910. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenario_loader.py +0 -0
  911. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/attachments/describe_image_live.yaml +0 -0
  912. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding/add_feature_with_tests.yaml +0 -0
  913. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding/fix_failing_test.yaml +0 -0
  914. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding/navigate_repo.yaml +0 -0
  915. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/add_bulk_discount.yaml +0 -0
  916. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/fix_discount_rounding.yaml +0 -0
  917. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/honest_unfixable_failure.yaml +0 -0
  918. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/multi_feature_long.yaml +0 -0
  919. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/navigate_intl_rate.yaml +0 -0
  920. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/noisy_test_failure.yaml +0 -0
  921. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/coding_hard/rename_calc_tax.yaml +0 -0
  922. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/config/reload_memory_off_live.yaml +0 -0
  923. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/context/post_compaction_continuity.yaml +0 -0
  924. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/context/summarization_trigger.yaml +0 -0
  925. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/drift/declares_done.yaml +0 -0
  926. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/drift/path_constraint.yaml +0 -0
  927. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/drift/preempt.yaml +0 -0
  928. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/drift/repeat_correction.yaml +0 -0
  929. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/drift/supersession.yaml +0 -0
  930. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/file/core_read.yaml +0 -0
  931. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/file/core_read_error.yaml +0 -0
  932. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/file/core_write.yaml +0 -0
  933. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/file/grep_absence_honesty.yaml +0 -0
  934. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/gateway/live_resume.yaml +0 -0
  935. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/hooks/evidence_citation_live.yaml +0 -0
  936. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/mcp/enable_then_echo_live.yaml +0 -0
  937. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/mcp/get_prompt.yaml +0 -0
  938. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/mcp/list_resources.yaml +0 -0
  939. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/mcp/tool_invoke.yaml +0 -0
  940. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/memory/recall_cross_session.yaml +0 -0
  941. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/memory/recall_single_session.yaml +0 -0
  942. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/memory/search_past_session.yaml +0 -0
  943. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/multi_turn/task_tracking.yaml +0 -0
  944. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/scheduler/http_one_tick_live.yaml +0 -0
  945. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/scheduler/model_starts_loop.yaml +0 -0
  946. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/shell/core_run_command.yaml +0 -0
  947. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/shell/core_run_command_sandbox.yaml +0 -0
  948. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/skills/skill_invocation.yaml +0 -0
  949. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/subagents/dispatch_complete.yaml +0 -0
  950. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/scenarios/subagents/persona_dispatch.yaml +0 -0
  951. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/score.py +0 -0
  952. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/coding.yaml +0 -0
  953. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/coding_hard.yaml +0 -0
  954. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/context.yaml +0 -0
  955. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/drift.yaml +0 -0
  956. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/mcp.yaml +0 -0
  957. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/memory.yaml +0 -0
  958. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/nightly.yaml +0 -0
  959. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/scheduler.yaml +0 -0
  960. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/smoke.yaml +0 -0
  961. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t4/suites/subagents.yaml +0 -0
  962. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/__init__.py +0 -0
  963. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/__main__.py +0 -0
  964. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/baselines/subagents__ollama-cloud__glm-5.3-flash.json +0 -0
  965. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/compare.py +0 -0
  966. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/parallel.py +0 -0
  967. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/python/test_cancel_storm.py +0 -0
  968. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/python/test_reconnect_storm.py +0 -0
  969. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/runs/coding.json +0 -0
  970. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/runs/mcp.json +0 -0
  971. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/runs/smoke.json +0 -0
  972. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/runs/subagents.json +0 -0
  973. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/stats.py +0 -0
  974. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/suites/capability.yaml +0 -0
  975. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/suites/drift.yaml +0 -0
  976. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/suites/reliability.yaml +0 -0
  977. {monkeybot-3.12.0 → monkeybot-3.13.0}/regression/t5/trials.py +0 -0
  978. {monkeybot-3.12.0 → monkeybot-3.13.0}/scripts/create_schema.py +0 -0
  979. {monkeybot-3.12.0 → monkeybot-3.13.0}/scripts/precommit-pytest.sh +0 -0
  980. {monkeybot-3.12.0 → monkeybot-3.13.0}/scripts/release.py +0 -0
  981. {monkeybot-3.12.0 → monkeybot-3.13.0}/scripts/smoke_global_cli.sh +0 -0
  982. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/__init__.py +0 -0
  983. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/__init__.py +0 -0
  984. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/__main__.py +0 -0
  985. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/audio_io.py +0 -0
  986. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/gateway_manager.py +0 -0
  987. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/main.py +0 -0
  988. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/push_to_talk.py +0 -0
  989. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/cli/realtime_client.py +0 -0
  990. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/computer/__init__.py +0 -0
  991. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/computer/approvals.py +0 -0
  992. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/computer/permissions.py +0 -0
  993. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/computer/safety.py +0 -0
  994. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/computer/tools.py +0 -0
  995. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/__init__.py +0 -0
  996. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/__init__.py +0 -0
  997. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/catalog.py +0 -0
  998. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/config.py +0 -0
  999. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/freeze.py +0 -0
  1000. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/image_preview.py +0 -0
  1001. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/resolve.py +0 -0
  1002. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/store.py +0 -0
  1003. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/text.py +0 -0
  1004. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/attachments/tools.py +0 -0
  1005. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/bootstrap.py +0 -0
  1006. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/coding/__init__.py +0 -0
  1007. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/coding/git_context_hook.py +0 -0
  1008. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/coding/read_ledger_hook.py +0 -0
  1009. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/coding/verification_gate.py +0 -0
  1010. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/__init__.py +0 -0
  1011. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/realtime_config.py +0 -0
  1012. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/runtime_env.py +0 -0
  1013. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/snapshot.py +0 -0
  1014. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/validation.py +0 -0
  1015. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/config/yaml_loader.py +0 -0
  1016. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/campaign_context.py +0 -0
  1017. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/common.py +0 -0
  1018. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/epoch.py +0 -0
  1019. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/project_context.py +0 -0
  1020. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/secret_egress.py +0 -0
  1021. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/slash_skills.py +0 -0
  1022. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/tool_output_policy.py +0 -0
  1023. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/tool_result_ingress.py +0 -0
  1024. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/context/tool_shapers.py +0 -0
  1025. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/goals/__init__.py +0 -0
  1026. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/goals/service.py +0 -0
  1027. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/hooks/__init__.py +0 -0
  1028. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/hooks/evidence_guard.py +0 -0
  1029. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/layout.py +0 -0
  1030. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/llm/__init__.py +0 -0
  1031. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/llm/provider.py +0 -0
  1032. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/llm/realtime_provider.py +0 -0
  1033. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/llm/usage.py +0 -0
  1034. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/lockfile_names.py +0 -0
  1035. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/logging_utils.py +0 -0
  1036. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/mcp/__init__.py +0 -0
  1037. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/mcp/mcp_client.py +0 -0
  1038. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/mcp/oauth_flow.py +0 -0
  1039. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/mcp/ports_mcp.py +0 -0
  1040. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/__init__.py +0 -0
  1041. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/config.py +0 -0
  1042. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/hook.py +0 -0
  1043. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/ids.py +0 -0
  1044. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/ingest.py +0 -0
  1045. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/migrate_embedding.py +0 -0
  1046. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/migrate_layout.py +0 -0
  1047. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/observability.py +0 -0
  1048. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/outbox.py +0 -0
  1049. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/palace.py +0 -0
  1050. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/subsystem.py +0 -0
  1051. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/uri.py +0 -0
  1052. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/memory/writer.py +0 -0
  1053. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/messages/__init__.py +0 -0
  1054. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/messages/convert_provider.py +0 -0
  1055. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/path_safety.py +0 -0
  1056. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/__init__.py +0 -0
  1057. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/branches.py +0 -0
  1058. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/db.py +0 -0
  1059. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/errors.py +0 -0
  1060. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/firestore.indexes.json +0 -0
  1061. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/firestore_scheduled_loops.py +0 -0
  1062. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/history.py +0 -0
  1063. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/row_ids.py +0 -0
  1064. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/runs.py +0 -0
  1065. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/scheduled_loops.py +0 -0
  1066. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/session_turn_locks.py +0 -0
  1067. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/sqlite.py +0 -0
  1068. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/sqlite_backend.py +0 -0
  1069. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/thread_summary.py +0 -0
  1070. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/transcript.py +0 -0
  1071. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/transcript_reader.py +0 -0
  1072. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/usage.py +0 -0
  1073. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/persistence/usage_buckets.py +0 -0
  1074. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/prompts/__init__.py +0 -0
  1075. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/prompts/harness_prompt.py +0 -0
  1076. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/__init__.py +0 -0
  1077. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/background_summary.py +0 -0
  1078. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/chat_title.py +0 -0
  1079. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/context_budget.py +0 -0
  1080. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/doom_loop.py +0 -0
  1081. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/history_compaction.py +0 -0
  1082. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/history_rewrite.py +0 -0
  1083. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/loop_hooks.py +0 -0
  1084. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/loop_messages.py +0 -0
  1085. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/loop_ports.py +0 -0
  1086. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/loop_usage.py +0 -0
  1087. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/provider_stream_mapper.py +0 -0
  1088. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/tool_batch.py +0 -0
  1089. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/runtime/utterance_buffer.py +0 -0
  1090. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/subagents/__init__.py +0 -0
  1091. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/subagents/progress_publish.py +0 -0
  1092. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/testing/__init__.py +0 -0
  1093. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/testing/mocks_provider.py +0 -0
  1094. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/testing/mocks_realtime_provider.py +0 -0
  1095. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/__init__.py +0 -0
  1096. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/ask_user.py +0 -0
  1097. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/background_jobs.py +0 -0
  1098. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/command_executor.py +0 -0
  1099. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/fs_isolation.py +0 -0
  1100. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/gitignore.py +0 -0
  1101. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/grant_store.py +0 -0
  1102. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/inspector.py +0 -0
  1103. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/loop_inspector.py +0 -0
  1104. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/patch.py +0 -0
  1105. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/path_grant_inspector.py +0 -0
  1106. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/read_ledger.py +0 -0
  1107. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/sandbox_executor.py +0 -0
  1108. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/spill_inventory.py +0 -0
  1109. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/terminal.py +0 -0
  1110. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/text_normalize.py +0 -0
  1111. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/tool_hint.py +0 -0
  1112. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/tools/workspace_service.py +0 -0
  1113. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/types/__init__.py +0 -0
  1114. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/types/content_blocks.py +0 -0
  1115. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/types/interfaces.py +0 -0
  1116. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/types/types_tools.py +0 -0
  1117. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/__init__.py +0 -0
  1118. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/actuator.py +0 -0
  1119. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/binding.py +0 -0
  1120. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/classify.py +0 -0
  1121. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/inspector.py +0 -0
  1122. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/intervention.py +0 -0
  1123. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/judge.py +0 -0
  1124. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/ledger.py +0 -0
  1125. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/mailbox.py +0 -0
  1126. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/match.py +0 -0
  1127. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/port.py +0 -0
  1128. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/rewrite_effects.py +0 -0
  1129. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/severity.py +0 -0
  1130. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/verifier/tracker.py +0 -0
  1131. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace/__init__.py +0 -0
  1132. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace/factory.py +0 -0
  1133. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace/gcs.py +0 -0
  1134. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace/local.py +0 -0
  1135. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace/protocol.py +0 -0
  1136. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace/s3.py +0 -0
  1137. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/core/workspace_layout.py +0 -0
  1138. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/__init__.py +0 -0
  1139. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/bootstrap.py +0 -0
  1140. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/main.py +0 -0
  1141. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/pending_response_bus.py +0 -0
  1142. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/__init__.py +0 -0
  1143. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/app.py +0 -0
  1144. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/deps.py +0 -0
  1145. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/errors.py +0 -0
  1146. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/guardrails.py +0 -0
  1147. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/manager.py +0 -0
  1148. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/metrics.py +0 -0
  1149. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/routes.py +0 -0
  1150. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/session.py +0 -0
  1151. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime/wire.py +0 -0
  1152. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/realtime_main.py +0 -0
  1153. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/__init__.py +0 -0
  1154. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/goal_routes.py +0 -0
  1155. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/history_routes.py +0 -0
  1156. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/reload.py +0 -0
  1157. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/reply_body.py +0 -0
  1158. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/request_storage.py +0 -0
  1159. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/scheduler_routes.py +0 -0
  1160. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/scheduler_wiring.py +0 -0
  1161. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/sse.py +0 -0
  1162. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/gateway/sse/workspace_layout.py +0 -0
  1163. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/observability/_state.py +0 -0
  1164. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/observability/instrumentation.py +0 -0
  1165. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/observability/propagation.py +0 -0
  1166. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/__init__.py +0 -0
  1167. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/_bedrock_converse.py +0 -0
  1168. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/_openai_compat.py +0 -0
  1169. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/_sdk_client.py +0 -0
  1170. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/_stream_marks.py +0 -0
  1171. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/_utils.py +0 -0
  1172. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/bedrock.py +0 -0
  1173. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/claude.py +0 -0
  1174. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/fireworks.py +0 -0
  1175. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/gemini.py +0 -0
  1176. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/gemini_live.py +0 -0
  1177. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/huggingface.py +0 -0
  1178. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/model_capabilities.py +0 -0
  1179. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/nvidia.py +0 -0
  1180. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/ollama.py +0 -0
  1181. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/openai.py +0 -0
  1182. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/openrouter.py +0 -0
  1183. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/pricing.py +0 -0
  1184. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/rejected_sampling.py +0 -0
  1185. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/request_budget.py +0 -0
  1186. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/sampling.py +0 -0
  1187. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/providers/vertex_claude.py +0 -0
  1188. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/__init__.py +0 -0
  1189. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/__main__.py +0 -0
  1190. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/engine.py +0 -0
  1191. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/http_invoker.py +0 -0
  1192. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/interval.py +0 -0
  1193. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/tick_result.py +0 -0
  1194. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/scheduler/worker.py +0 -0
  1195. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/todo_list/__init__.py +0 -0
  1196. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/todo_list/hook.py +0 -0
  1197. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/todo_list/store.py +0 -0
  1198. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/todo_list/tool.py +0 -0
  1199. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/__init__.py +0 -0
  1200. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/backends/__init__.py +0 -0
  1201. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/backends/duckduckgo.py +0 -0
  1202. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/backends/firecrawl.py +0 -0
  1203. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/backends/tavily.py +0 -0
  1204. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/protocol.py +0 -0
  1205. {monkeybot-3.12.0 → monkeybot-3.13.0}/src/monkeybot/web_search/tool.py +0 -0
  1206. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/__init__.py +0 -0
  1207. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/backends.py +0 -0
  1208. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/clock.py +0 -0
  1209. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/context.py +0 -0
  1210. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/conversations.py +0 -0
  1211. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/data/attachments/tiny.jpg +0 -0
  1212. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/data/attachments/tiny.png +0 -0
  1213. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/data/attachments/with-text.pdf +0 -0
  1214. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/data/attachments/without-text.pdf +0 -0
  1215. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/executors.py +0 -0
  1216. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/failure_ledger.py +0 -0
  1217. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/failures/__init__.py +0 -0
  1218. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/failures/__main__.py +0 -0
  1219. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/failures/catalog.py +0 -0
  1220. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/failures/store.py +0 -0
  1221. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/history.py +0 -0
  1222. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/hooks.py +0 -0
  1223. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/inspectors.py +0 -0
  1224. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/mcp.py +0 -0
  1225. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/memory.py +0 -0
  1226. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/palace.py +0 -0
  1227. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/pending_bus.py +0 -0
  1228. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/provider.py +0 -0
  1229. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/py.typed +0 -0
  1230. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/sandbox.py +0 -0
  1231. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/scrub.py +0 -0
  1232. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/sse.py +0 -0
  1233. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/verifier.py +0 -0
  1234. {monkeybot-3.12.0 → monkeybot-3.13.0}/testkit/web_search.py +0 -0
  1235. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/__init__.py +0 -0
  1236. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/conftest.py +0 -0
  1237. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/__init__.py +0 -0
  1238. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/conftest.py +0 -0
  1239. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/harness_prompt.default.txt +0 -0
  1240. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/harness_prompt.emission_terse.txt +0 -0
  1241. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/harness_prompt.mcp_catalog.txt +0 -0
  1242. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/harness_prompt.memory_off.txt +0 -0
  1243. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/harness_prompt.sandbox_on.txt +0 -0
  1244. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/prompts/harness_prompt.task_terse.txt +0 -0
  1245. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/span_names.txt +0 -0
  1246. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/goldens/tool_error_codes.txt +0 -0
  1247. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/tables/config_precedence.yaml +0 -0
  1248. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/tables/policy_decisions.yaml +0 -0
  1249. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/tables/provider_error_mapping.yaml +0 -0
  1250. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_config_matrix.py +0 -0
  1251. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_migrations_replay.py +0 -0
  1252. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_policy_decision_table.py +0 -0
  1253. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_provider_conformance.py +0 -0
  1254. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_route_table.py +0 -0
  1255. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_scaffold_reexports.py +0 -0
  1256. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/contracts/test_span_names.py +0 -0
  1257. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/__init__.py +0 -0
  1258. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/cli/__init__.py +0 -0
  1259. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/cli/test_gateway_manager.py +0 -0
  1260. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/cli/test_main.py +0 -0
  1261. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/cli/test_push_to_talk.py +0 -0
  1262. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/cli/test_realtime_client.py +0 -0
  1263. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/__init__.py +0 -0
  1264. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_approvals.py +0 -0
  1265. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_computer_tools.py +0 -0
  1266. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_package_init.py +0 -0
  1267. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_path_policy.py +0 -0
  1268. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_permissions.py +0 -0
  1269. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_platform_gate.py +0 -0
  1270. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_subagent_exclusion.py +0 -0
  1271. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/computer/test_wiring.py +0 -0
  1272. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/conftest.py +0 -0
  1273. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/__init__.py +0 -0
  1274. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/attachments/__init__.py +0 -0
  1275. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/attachments/test_attachment_freeze.py +0 -0
  1276. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/attachments/test_attachment_store.py +0 -0
  1277. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/attachments/test_image_preview.py +0 -0
  1278. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/coding/__init__.py +0 -0
  1279. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/coding/test_verification_gate.py +0 -0
  1280. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/config/__init__.py +0 -0
  1281. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/config/test_config_extensions.py +0 -0
  1282. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/config/test_env_map_grep_gates.py +0 -0
  1283. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/config/test_runtime_config_snapshot.py +0 -0
  1284. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/config/test_runtime_env.py +0 -0
  1285. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/__init__.py +0 -0
  1286. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_context_epoch.py +0 -0
  1287. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_project_context.py +0 -0
  1288. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_secret_egress.py +0 -0
  1289. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_skill_discovery_rules.py +0 -0
  1290. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_slash_skills.py +0 -0
  1291. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_tool_result_ingress.py +0 -0
  1292. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/context/test_tool_shapers.py +0 -0
  1293. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/fixtures/__init__.py +0 -0
  1294. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/fixtures/bitbucket_dc_style_pr.diff +0 -0
  1295. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/goals/__init__.py +0 -0
  1296. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/goals/test_goal_persistence.py +0 -0
  1297. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/hooks/__init__.py +0 -0
  1298. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/hooks/test_evidence_guard.py +0 -0
  1299. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/hooks/test_hooks.py +0 -0
  1300. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/hooks/test_settlement.py +0 -0
  1301. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/llm/__init__.py +0 -0
  1302. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/llm/test_pricing.py +0 -0
  1303. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/llm/test_provider_contract.py +0 -0
  1304. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/mcp/__init__.py +0 -0
  1305. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/mcp/test_mcp_client.py +0 -0
  1306. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/mcp/test_mcp_oauth.py +0 -0
  1307. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/mcp/test_mcp_oauth_regressions.py +0 -0
  1308. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/memory/__init__.py +0 -0
  1309. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/memory/test_memory_layout_migrate.py +0 -0
  1310. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/memory/test_memory_scoping.py +0 -0
  1311. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/memory/test_mempalace.py +0 -0
  1312. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/memory/test_migrate_embedding.py +0 -0
  1313. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/memory/test_review_fixes.py +0 -0
  1314. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/messages/__init__.py +0 -0
  1315. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/messages/test_gemini_history_replay.py +0 -0
  1316. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/__init__.py +0 -0
  1317. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_branch_store_backends.py +0 -0
  1318. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_firestore_history.py +0 -0
  1319. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_firestore_scheduled_loops.py +0 -0
  1320. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_firestore_usage.py +0 -0
  1321. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_goal_ledger.py +0 -0
  1322. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_history.py +0 -0
  1323. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_history_branches.py +0 -0
  1324. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_history_row_ids.py +0 -0
  1325. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_runs.py +0 -0
  1326. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_scheduled_loops.py +0 -0
  1327. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_session_branches_migration.py +0 -0
  1328. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_session_turn_locks.py +0 -0
  1329. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_thread_summary_wire.py +0 -0
  1330. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_transcript.py +0 -0
  1331. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_transcript_reader.py +0 -0
  1332. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_usage.py +0 -0
  1333. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/persistence/test_usage_migration.py +0 -0
  1334. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/prompts/__init__.py +0 -0
  1335. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/prompts/test_harness_prompt.py +0 -0
  1336. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/prompts/test_prompt.py +0 -0
  1337. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/__init__.py +0 -0
  1338. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_background_summary.py +0 -0
  1339. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_chat_title.py +0 -0
  1340. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_context_budget.py +0 -0
  1341. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_doom_loop.py +0 -0
  1342. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_empty_completion.py +0 -0
  1343. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_events.py +0 -0
  1344. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_history_compaction_split.py +0 -0
  1345. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_loop_hooks.py +0 -0
  1346. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_loop_transcript.py +0 -0
  1347. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_provider_stream_mapper.py +0 -0
  1348. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_realtime_loop.py +0 -0
  1349. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_truncated_tool_batch.py +0 -0
  1350. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_turn_session_id.py +0 -0
  1351. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/runtime/test_utterance_buffer.py +0 -0
  1352. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/__init__.py +0 -0
  1353. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/test_child_tool_list.py +0 -0
  1354. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/test_progress_publish.py +0 -0
  1355. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/test_subagent_trace_propagation.py +0 -0
  1356. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/test_subagent_transcript.py +0 -0
  1357. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/subagents/test_subagent_worker_paths.py +0 -0
  1358. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/test_agent_layout.py +0 -0
  1359. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/test_bootstrap.py +0 -0
  1360. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/test_layout.py +0 -0
  1361. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/test_logging_utils.py +0 -0
  1362. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/test_path_safety.py +0 -0
  1363. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/test_workspace_layout.py +0 -0
  1364. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/testing/__init__.py +0 -0
  1365. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/testing/test_mocks_realtime_provider.py +0 -0
  1366. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/__init__.py +0 -0
  1367. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_ask_user.py +0 -0
  1368. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_background_jobs.py +0 -0
  1369. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_fs_isolation.py +0 -0
  1370. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_gitignore.py +0 -0
  1371. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_grant_store.py +0 -0
  1372. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_inspector.py +0 -0
  1373. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_patch.py +0 -0
  1374. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_permission.py +0 -0
  1375. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_replace_fuzzy.py +0 -0
  1376. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_run_command_parse.py +0 -0
  1377. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_sandbox_executor.py +0 -0
  1378. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_spill_dynamic.py +0 -0
  1379. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_spill_inventory.py +0 -0
  1380. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_terminal.py +0 -0
  1381. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_workspace_extra_read_roots.py +0 -0
  1382. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_workspace_symlinks.py +0 -0
  1383. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/tools/test_workspace_write_scope.py +0 -0
  1384. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/types/__init__.py +0 -0
  1385. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/types/test_content_blocks.py +0 -0
  1386. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/types/test_tool_def_schema.py +0 -0
  1387. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/__init__.py +0 -0
  1388. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_progress_tracker.py +0 -0
  1389. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_binding.py +0 -0
  1390. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_inspector.py +0 -0
  1391. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_judge.py +0 -0
  1392. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_mailbox_lifecycle.py +0 -0
  1393. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_port.py +0 -0
  1394. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_rewrite_effects.py +0 -0
  1395. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_sticky_nudge.py +0 -0
  1396. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/verifier/test_verifier_tracker.py +0 -0
  1397. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/workspace/__init__.py +0 -0
  1398. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/workspace/test_factory.py +0 -0
  1399. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/workspace/test_local_storage.py +0 -0
  1400. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/core/workspace/test_protocol_contract.py +0 -0
  1401. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/__init__.py +0 -0
  1402. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/__init__.py +0 -0
  1403. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_app.py +0 -0
  1404. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_deps.py +0 -0
  1405. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_guardrails.py +0 -0
  1406. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_manager.py +0 -0
  1407. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_metrics.py +0 -0
  1408. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_routes_client_text.py +0 -0
  1409. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_session.py +0 -0
  1410. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/realtime/test_wire.py +0 -0
  1411. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/__init__.py +0 -0
  1412. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_chat_title_route.py +0 -0
  1413. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_config_reload.py +0 -0
  1414. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_gateway_runtime.py +0 -0
  1415. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_session_bus.py +0 -0
  1416. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_start_turn_setup_failure.py +0 -0
  1417. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/sse/test_transcript_wiring.py +0 -0
  1418. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_otel_fastapi.py +0 -0
  1419. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_otel_lifespan.py +0 -0
  1420. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_pending_response_endpoints.py +0 -0
  1421. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_realtime_main.py +0 -0
  1422. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_resolve_provider.py +0 -0
  1423. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_sdk_client_shutdown.py +0 -0
  1424. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_sse_events.py +0 -0
  1425. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/gateway/test_subagent_event_publisher.py +0 -0
  1426. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/conftest.py +0 -0
  1427. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_instrumentation.py +0 -0
  1428. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_loop_hook_spans.py +0 -0
  1429. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_propagation.py +0 -0
  1430. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_span_contract.py +0 -0
  1431. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_truncate.py +0 -0
  1432. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/observability/test_turn_complete_trace.py +0 -0
  1433. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/packaging/__init__.py +0 -0
  1434. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/packaging/test_cold_start.py +0 -0
  1435. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/packaging/test_packaging_config.py +0 -0
  1436. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/packaging/test_release_script.py +0 -0
  1437. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/__init__.py +0 -0
  1438. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/conftest.py +0 -0
  1439. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_anthropic_cache.py +0 -0
  1440. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_anthropic_history.py +0 -0
  1441. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_bedrock_converse.py +0 -0
  1442. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_bedrock_estimate.py +0 -0
  1443. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_connection_warm.py +0 -0
  1444. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_fireworks.py +0 -0
  1445. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_gemini_history.py +0 -0
  1446. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_gemini_live.py +0 -0
  1447. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_gemini_usage.py +0 -0
  1448. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_huggingface.py +0 -0
  1449. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_model_capabilities.py +0 -0
  1450. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_nvidia.py +0 -0
  1451. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_ollama.py +0 -0
  1452. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_openai_byte_budget.py +0 -0
  1453. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_openai_compat_usage.py +0 -0
  1454. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_openai_history.py +0 -0
  1455. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_pricing.py +0 -0
  1456. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_request_budget.py +0 -0
  1457. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_safe_parse_tool_args.py +0 -0
  1458. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_sampling.py +0 -0
  1459. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_sdk_client_reuse.py +0 -0
  1460. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_sonnet5_sampling.py +0 -0
  1461. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_source_grep_gates.py +0 -0
  1462. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_tiktoken_encoding.py +0 -0
  1463. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/providers/test_vertex_claude_history.py +0 -0
  1464. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/scheduler/__init__.py +0 -0
  1465. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/scheduler/test_engine.py +0 -0
  1466. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/scheduler/test_interval.py +0 -0
  1467. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/skills/__init__.py +0 -0
  1468. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/skills/test_generate_image_script.py +0 -0
  1469. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/__init__.py +0 -0
  1470. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_clock.py +0 -0
  1471. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_failure_ledger.py +0 -0
  1472. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_failures_cli.py +0 -0
  1473. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_fake_history.py +0 -0
  1474. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_scripted_provider.py +0 -0
  1475. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_scrub.py +0 -0
  1476. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/testkit/test_sse_reader.py +0 -0
  1477. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/todo_list/__init__.py +0 -0
  1478. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/todo_list/test_todo_list.py +0 -0
  1479. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/web_search/__init__.py +0 -0
  1480. {monkeybot-3.12.0 → monkeybot-3.13.0}/tests/unit/web_search/test_web_search.py +0 -0
@@ -6,6 +6,22 @@ the project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [core v3.13.0] - 2026-11-01
10
+
11
+ ### Added
12
+
13
+ - `task` accepts `background: true`. The child keeps running after the turn ends. `await_task` and `kill_task` read or stop it. A finished child wakes the parent with a `[harness]` follow-up while the session is idle. `MONKEYBOT_TASK_QUEUE` and the subagent worker pool are removed.
14
+ - `write_file`, `replace_in_file`, and `apply_patch` emit a `FileChange` and keep a before/after snapshot under `.monkeybot/changes/{session}` so a client can review the diff and undo. Undo refuses a file that changed since the edit or a snapshot that was too large to keep, and the next turn is told which paths were restored.
15
+
16
+ ### Changed
17
+
18
+ - Tool input and output, tool errors, completions, and turn I/O are no longer clipped at 8 KB in traces or at 4 KB in the SQLite trace DB. Each attribute is capped at 1 MiB instead. The history prompt stays at 8 KB. Full tool I/O now reaches OTLP backends, so redact at the collector. The SQLite DB no longer stores the `langfuse.*` mirror keys. The OTLP and SQLite exporters send 8 spans per request (override OTLP with a positive integer `OTEL_BSP_MAX_EXPORT_BATCH_SIZE`; any other value keeps 8).
19
+
20
+ ### Fixed
21
+
22
+ - A UI-only row between a tool call and its result no longer makes the provider see two results for that call. Bedrock rejected the turn when the counts did not match. Stored history is unchanged.
23
+ - `list_skills` advertises the workspace `skills/` mount instead of the host skills directory. `run_command` paths under `skills/` stay inside that root, so opening a skill file no longer asks for approval.
24
+
9
25
  ## [core v3.12.0] - 2026-10-29
10
26
 
11
27
  ### Added
@@ -4,7 +4,7 @@ Thanks for helping improve monkeybot. Report bugs and doc gaps via [issues](http
4
4
 
5
5
  ## Developing the harness
6
6
 
7
- Clone only if you are changing monkeybot itself (end users should use `uv tool install monkeybot-cli` — see the [README](README.md)):
7
+ Clone only if you are changing monkeybot itself (end users should install with the Pillow override — see the [README](README.md)):
8
8
 
9
9
  ```bash
10
10
  git clone https://github.com/human-plus-machine/monkeybot.git
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: monkeybot
3
- Version: 3.12.0
3
+ Version: 3.13.0
4
4
  Summary: monkeybot agent harness — FastAPI SSE gateway, owned loop, SQLite, and MCP.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -120,7 +120,11 @@ Docs and examples are **GCP-first** (Vertex, GCS, Cloud Run); AWS paths ship in
120
120
  Install [uv](https://docs.astral.sh/uv/), then:
121
121
 
122
122
  ```bash
123
- uv tool install monkeybot-cli
123
+ # browser-harness pins Pillow 12. Core 3.12 needs Pillow 13, and
124
+ # `uv tool install` ignores the package override unless this file is passed.
125
+ # Without it the resolver stays on core 3.10.0.
126
+ printf 'pillow>=13\n' > /tmp/monkeybot-overrides.txt
127
+ uv tool install --overrides /tmp/monkeybot-overrides.txt monkeybot-cli
124
128
 
125
129
  monkeybot new --dest ./my-agent --provider openai --yes
126
130
  cd my-agent
@@ -130,7 +134,7 @@ monkeybot doctor
130
134
  monkeybot chat
131
135
  ```
132
136
 
133
- Upgrade the CLI with `uv tool upgrade monkeybot-cli`. Full walkthrough: **[Getting Started](docs/getting-started.md)**.
137
+ Upgrade the CLI with the same override: `uv tool install --reinstall --overrides /tmp/monkeybot-overrides.txt monkeybot-cli`. Full walkthrough: **[Getting Started](docs/getting-started.md)**.
134
138
 
135
139
  ## What you get
136
140
 
@@ -23,7 +23,11 @@ Docs and examples are **GCP-first** (Vertex, GCS, Cloud Run); AWS paths ship in
23
23
  Install [uv](https://docs.astral.sh/uv/), then:
24
24
 
25
25
  ```bash
26
- uv tool install monkeybot-cli
26
+ # browser-harness pins Pillow 12. Core 3.12 needs Pillow 13, and
27
+ # `uv tool install` ignores the package override unless this file is passed.
28
+ # Without it the resolver stays on core 3.10.0.
29
+ printf 'pillow>=13\n' > /tmp/monkeybot-overrides.txt
30
+ uv tool install --overrides /tmp/monkeybot-overrides.txt monkeybot-cli
27
31
 
28
32
  monkeybot new --dest ./my-agent --provider openai --yes
29
33
  cd my-agent
@@ -33,7 +37,7 @@ monkeybot doctor
33
37
  monkeybot chat
34
38
  ```
35
39
 
36
- Upgrade the CLI with `uv tool upgrade monkeybot-cli`. Full walkthrough: **[Getting Started](docs/getting-started.md)**.
40
+ Upgrade the CLI with the same override: `uv tool install --reinstall --overrides /tmp/monkeybot-overrides.txt monkeybot-cli`. Full walkthrough: **[Getting Started](docs/getting-started.md)**.
37
41
 
38
42
  ## What you get
39
43
 
@@ -31,11 +31,15 @@ Tell the user what you're installing and why. On macOS/Linux you can run these y
31
31
  ### 2. Install the global CLI
32
32
 
33
33
  ```bash
34
- uv tool install monkeybot-cli
34
+ # browser-harness pins Pillow 12. Core 3.12 needs Pillow 13, and
35
+ # `uv tool install` ignores the package override unless this file is passed.
36
+ # Without it the resolver stays on core 3.10.0.
37
+ printf 'pillow>=13\n' > /tmp/monkeybot-overrides.txt
38
+ uv tool install --overrides /tmp/monkeybot-overrides.txt monkeybot-cli
35
39
  monkeybot --help
36
40
  ```
37
41
 
38
- Upgrade later with `uv tool upgrade monkeybot-cli`.
42
+ Upgrade later with `uv tool install --reinstall --overrides /tmp/monkeybot-overrides.txt monkeybot-cli`.
39
43
 
40
44
  **Do not** tell day-1 users to clone `human-plus-machine/monkeybot` unless they are contributing to the harness itself (see Contributing below).
41
45
 
@@ -47,7 +51,7 @@ If the user arrived via skills.sh:
47
51
  npx skills add human-plus-machine/monkeybot --skill monkeybot
48
52
  ```
49
53
 
50
- …they have **this skill only**. Walk them through Tier 0: install `uv` → `uv tool install monkeybot-cli` → verify `monkeybot --help`. Then continue to Tier 1.
54
+ …they have **this skill only**. Walk them through Tier 0: install `uv` → `uv tool install --overrides /tmp/monkeybot-overrides.txt monkeybot-cli` (write `pillow>=13` into that file first) → verify `monkeybot --help`. Then continue to Tier 1.
51
55
 
52
56
  ## How config works (tell the user this first)
53
57
 
@@ -115,7 +119,7 @@ uv sync
115
119
  | `ollama-local` | None required — `OLLAMA_BASE_URL` (default `http://localhost:11434`). Requests send `keep_alive` 24h so prefix KV cache survives idle. | `monkeybot[ollama]` |
116
120
  | `ollama` | Legacy auto-route (key + blank URL = cloud; explicit URL wins) | `monkeybot[ollama]` |
117
121
 
118
- **Agent-first dependencies.** The CLI is thin — it does **not** install provider/storage extras globally. `monkeybot new` scaffolds a `pyproject.toml` with the selected provider (and any `--with` extras). Run plain `uv sync` in the agent directory. `monkeybot run` / `chat` spawn the gateway from that project's interpreter (`.venv/bin/python`, else `uv run python`), and `doctor` checks extras in that same interpreter. For a config-only tree (just `monkeybot_config/`, no `pyproject.toml`) the gateway uses the CLI's interpreter when it already has MonkeyBot 3.x (and MemPalace if memory is on). If memory is enabled and that interpreter cannot import MemPalace, `run` / `chat` provision a cached CLI-managed venv under `~/.cache/monkeybot/runtimes/` holding `monkeybot[memory]` pinned to the running core (never rewrites a `pyproject.toml`). `doctor` reuses that cache when it is already present. Otherwise extras must be installed in the CLI env (`uv tool install --with 'monkeybot[<extra>]' monkeybot-cli`).
122
+ **Agent-first dependencies.** The CLI is thin — it does **not** install provider/storage extras globally. `monkeybot new` scaffolds a `pyproject.toml` with the selected provider (and any `--with` extras). Run plain `uv sync` in the agent directory. `monkeybot run` / `chat` spawn the gateway from that project's interpreter (`.venv/bin/python`, else `uv run python`), and `doctor` checks extras in that same interpreter. For a config-only tree (just `monkeybot_config/`, no `pyproject.toml`) the gateway uses the CLI's interpreter when it already has MonkeyBot 3.x (and MemPalace if memory is on). If memory is enabled and that interpreter cannot import MemPalace, `run` / `chat` provision a cached CLI-managed venv under `~/.cache/monkeybot/runtimes/` holding `monkeybot[memory]` pinned to the running core (never rewrites a `pyproject.toml`). `doctor` reuses that cache when it is already present. Otherwise extras must be installed in the CLI env (`uv tool install --reinstall --overrides /tmp/monkeybot-overrides.txt --with 'monkeybot[<extra>]' monkeybot-cli`, with `pillow>=13` in that file). A bare `uv tool install` resolves core 3.10.0.
119
123
 
120
124
  `doctor` is the source of truth for credentials and extras — when in doubt, run it and read the `remediation` field (add `monkeybot[<extra>]` to agent deps + `uv sync`).
121
125
 
@@ -241,6 +241,8 @@ class ChatSessionController:
241
241
  self._reconnecting = False
242
242
  self._last_event_id: int | None = None
243
243
  self._abandoned: deque[str] = deque(maxlen=64)
244
+ self._deferred: list[Any] = []
245
+ self._idle_task: asyncio.Task[None] | None = None
244
246
  self._turn_abort = asyncio.Event()
245
247
  self._active_request_id: str | None = None
246
248
  self._hitl_future: asyncio.Future[HitlAnswer] | None = None
@@ -292,6 +294,7 @@ class ChatSessionController:
292
294
  self._reconnecting = False
293
295
  self._last_event_id = None
294
296
  self._stream_task = asyncio.create_task(self._consume_stream())
297
+ self._start_idle_watch()
295
298
  self._emit("session_ready", session_id=self.session_id)
296
299
  self._emit("connection_state", state="connected")
297
300
  await self._emit_transcript_backfill()
@@ -504,6 +507,14 @@ class ChatSessionController:
504
507
  return
505
508
 
506
509
  request_id = str(uuid.uuid4())
510
+ if self._active_request_id is not None:
511
+ self._emit("session_busy")
512
+ return
513
+ await self._stop_idle_watch()
514
+ if self._active_request_id is not None:
515
+ self._emit("session_busy")
516
+ self._start_idle_watch()
517
+ return
507
518
  self._active_request_id = request_id
508
519
  self._last_cancel_ok = None
509
520
  self._turn_abort.clear()
@@ -513,15 +524,23 @@ class ChatSessionController:
513
524
  json={"request_id": request_id, "message": message},
514
525
  )
515
526
  if reply.status_code == 409:
527
+ self._active_request_id = None
516
528
  self._emit("session_busy")
529
+ self._start_idle_watch()
517
530
  return
518
531
  reply.raise_for_status()
519
532
  except httpx.HTTPError as exc:
533
+ self._active_request_id = None
520
534
  self._emit("error", message=format_http_error("Reply", exc))
535
+ self._start_idle_watch()
521
536
  return
522
537
 
523
538
  self._emit("turn_started", request_id=request_id)
524
- await self._run_turn(request_id)
539
+ try:
540
+ await self._run_turn(request_id)
541
+ finally:
542
+ if self._active_request_id is None and not self._closed:
543
+ self._start_idle_watch()
525
544
 
526
545
  async def _dequeue_payload(self) -> str | None | Literal[False]:
527
546
  """Return payload, None for stream end, False on poll timeout."""
@@ -544,9 +563,13 @@ class ChatSessionController:
544
563
  self._warn(f"skipping unparseable event: {exc}")
545
564
  return None
546
565
 
547
- async def _run_turn(self, request_id: str) -> None:
566
+ async def _run_turn(self, request_id: str, *, prelude: list[Any] | None = None) -> None:
548
567
  assert self._client is not None and self.session_id is not None
549
568
  state = _TurnState()
569
+ for evt in prelude or []:
570
+ if state.done or self._turn_abort.is_set():
571
+ break
572
+ await self._dispatch_turn_event(evt, request_id, state)
550
573
  while not state.done and not self._turn_abort.is_set():
551
574
  payload = await self._dequeue_payload()
552
575
  if payload is False:
@@ -577,6 +600,71 @@ class ChatSessionController:
577
600
  if not self._stream_alive and not self._reconnecting:
578
601
  self._emit("stream_ended")
579
602
 
603
+ def _start_idle_watch(self) -> None:
604
+ """Render turns the gateway starts while the prompt is idle."""
605
+ if self._closed or self._active_request_id is not None:
606
+ return
607
+ task = self._idle_task
608
+ if task is not None and not task.done():
609
+ return
610
+ self._idle_task = asyncio.create_task(self._watch_idle(), name="chat-idle-watch")
611
+
612
+ async def _stop_idle_watch(self) -> None:
613
+ task = self._idle_task
614
+ if task is None or task.done():
615
+ self._idle_task = None
616
+ return
617
+ if self._active_request_id is not None:
618
+ return
619
+ task.cancel()
620
+ with contextlib.suppress(asyncio.CancelledError):
621
+ await task
622
+ self._idle_task = None
623
+
624
+ async def _watch_idle(self) -> None:
625
+ """Show a background-subagent wake (or any other turn) the user did not send."""
626
+ try:
627
+ while not self._closed and self._active_request_id is None:
628
+ await self._play_deferred()
629
+ if self._closed or self._active_request_id is not None:
630
+ return
631
+ payload = await self._dequeue_payload()
632
+ if payload is False:
633
+ continue
634
+ if payload is None:
635
+ return
636
+ if self._active_request_id is not None:
637
+ self._event_queue.put_nowait(payload)
638
+ return
639
+ evt = self._decode_event(payload)
640
+ if evt is None:
641
+ continue
642
+ rid = getattr(evt, "request_id", "") or ""
643
+ if not rid or rid in self._abandoned:
644
+ continue
645
+ self._deferred.append(evt)
646
+ except asyncio.CancelledError:
647
+ raise
648
+
649
+ async def _play_deferred(self) -> None:
650
+ while self._deferred and not self._closed and self._active_request_id is None:
651
+ first = self._deferred.pop(0)
652
+ rid = getattr(first, "request_id", "") or ""
653
+ if not rid or rid in self._abandoned:
654
+ continue
655
+ batch = [first]
656
+ rest: list[Any] = []
657
+ for evt in self._deferred:
658
+ if getattr(evt, "request_id", "") == rid:
659
+ batch.append(evt)
660
+ else:
661
+ rest.append(evt)
662
+ self._deferred = rest
663
+ self._active_request_id = rid
664
+ self._turn_abort.clear()
665
+ self._emit("turn_started", request_id=rid)
666
+ await self._run_turn(rid, prelude=batch)
667
+
580
668
  async def _dispatch_turn_event(self, evt: Any, request_id: str, state: _TurnState) -> None:
581
669
  evt_rid = getattr(evt, "request_id", "") or ""
582
670
 
@@ -589,8 +677,9 @@ class ChatSessionController:
589
677
  self._emit("thinking", text="thinking…")
590
678
  return
591
679
 
592
- if evt_rid != request_id:
593
- self._maybe_thinking_trace(evt, request_id)
680
+ if evt_rid and evt_rid != request_id:
681
+ if evt_rid not in self._abandoned:
682
+ self._deferred.append(evt)
594
683
  return
595
684
 
596
685
  if isinstance(evt, GroundingEvent):
@@ -885,6 +974,7 @@ class ChatSessionController:
885
974
  if self._active_request_id is not None:
886
975
  self._abandoned.append(self._active_request_id)
887
976
  self._active_request_id = None
977
+ await self._stop_idle_watch()
888
978
 
889
979
  if self._stream_task is not None:
890
980
  self._stream_task.cancel()
@@ -913,6 +1003,7 @@ class ChatSessionController:
913
1003
  await self._teardown_stream()
914
1004
  await self._create_session()
915
1005
  self._stream_task = asyncio.create_task(self._consume_stream())
1006
+ self._start_idle_watch()
916
1007
  self._emit("session_ready", session_id=self.session_id)
917
1008
  self._emit("connection_state", state="connected")
918
1009
 
@@ -926,6 +1017,7 @@ class ChatSessionController:
926
1017
  await self._teardown_stream()
927
1018
  await self._attach_or_create_session(sid)
928
1019
  self._stream_task = asyncio.create_task(self._consume_stream())
1020
+ self._start_idle_watch()
929
1021
  self._emit("session_ready", session_id=self.session_id)
930
1022
  self._emit("connection_state", state="connected")
931
1023
  await self._emit_transcript_backfill()
@@ -942,6 +1034,11 @@ class ChatSessionController:
942
1034
  if self._closed:
943
1035
  return
944
1036
  self._closed = True
1037
+ if self._idle_task is not None:
1038
+ self._idle_task.cancel()
1039
+ with contextlib.suppress(asyncio.CancelledError, asyncio.TimeoutError, TimeoutError):
1040
+ await asyncio.wait_for(self._idle_task, timeout=0.5)
1041
+ self._idle_task = None
945
1042
  if self._stream_task is not None:
946
1043
  self._stream_task.cancel()
947
1044
  with contextlib.suppress(asyncio.CancelledError, asyncio.TimeoutError, TimeoutError):
@@ -70,6 +70,16 @@ def _agent_defines_project_extra(agent_root: Path, extra: str) -> bool:
70
70
  return isinstance(optional, dict) and extra in optional
71
71
 
72
72
 
73
+ def _cli_overrides_file() -> Path:
74
+ """Pillow floor shipped next to this package.
75
+
76
+ ``uv tool install`` does not read ``[tool.uv] override-dependencies``.
77
+ browser-harness pins Pillow 12, so a bare install resolves core 3.10
78
+ instead of a core that requires Pillow 13.
79
+ """
80
+ return Path(__file__).resolve().parents[1] / "overrides.txt"
81
+
82
+
73
83
  def _extra_remediation(extra: str, agent_root: Path, runtime) -> str:
74
84
  """Remediation text pointing at the agent project, not the CLI env."""
75
85
  if runtime.source in {"cli", MANAGED_RUNTIME_SOURCE}:
@@ -78,9 +88,11 @@ def _extra_remediation(extra: str, agent_root: Path, runtime) -> str:
78
88
  if runtime.source == MANAGED_RUNTIME_SOURCE
79
89
  else ""
80
90
  )
91
+ overrides = _cli_overrides_file()
81
92
  return (
82
93
  "Config-only tree: install in the CLI env — "
83
- f"uv tool install --with 'monkeybot[{extra}]' monkeybot-cli"
94
+ f"uv tool install --reinstall --overrides {overrides} "
95
+ f"--with 'monkeybot[{extra}]' monkeybot-cli"
84
96
  f"{refresh}"
85
97
  )
86
98
  if _agent_defines_project_extra(agent_root, extra):
@@ -39,7 +39,7 @@ workspace-relative.
39
39
  }
40
40
  ```
41
41
 
42
- Replace `<skills_path>` with the absolute `skills_path` returned by `list_skills`.
42
+ Replace `<skills_path>` with the `skills_path` returned by `list_skills` (`skills`).
43
43
 
44
44
  Supported `--aspect-ratio` values: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`.
45
45
 
@@ -448,3 +448,27 @@ def test_close_deletes_session_and_captures_report_dir() -> None:
448
448
  assert client.delete.await_count == 1
449
449
 
450
450
  asyncio.run(_run())
451
+
452
+
453
+ def test_idle_watch_shows_a_turn_the_user_did_not_send() -> None:
454
+ async def _run() -> None:
455
+ events: list[ChatUiEvent] = []
456
+ controller = ChatSessionController(base="http://localhost:8080", emit=events.append)
457
+ controller.session_id = "s"
458
+ controller._client = object() # type: ignore[assignment]
459
+ controller._event_queue.put_nowait(
460
+ '{"type":"AssistantDelta","request_id":"wake-1","delta":"survey"}'
461
+ )
462
+ controller._event_queue.put_nowait('{"type":"TurnComplete","request_id":"wake-1"}')
463
+ controller._start_idle_watch()
464
+ for _ in range(40):
465
+ if any(event.kind == "turn_complete" for event in events):
466
+ break
467
+ await asyncio.sleep(0.05)
468
+ await controller._stop_idle_watch()
469
+ deltas = [event.payload.get("delta") for event in events if event.kind == "assistant_delta"]
470
+ assert deltas == ["survey"]
471
+ assert any(event.kind == "turn_complete" for event in events)
472
+ assert any(event.kind == "turn_started" for event in events)
473
+
474
+ asyncio.run(_run())
@@ -46,14 +46,18 @@ def test_extra_remediation_keeps_extra_for_project_optionals(tmp_path: Path) ->
46
46
  def test_extra_remediation_config_only_cli_env(tmp_path: Path) -> None:
47
47
  runtime = SimpleNamespace(source="cli")
48
48
  text = _extra_remediation("bedrock", tmp_path, runtime)
49
- assert "uv tool install --with 'monkeybot[bedrock]' monkeybot-cli" in text
49
+ assert "--overrides " in text
50
+ assert "overrides.txt" in text
51
+ assert "--with 'monkeybot[bedrock]' monkeybot-cli" in text
50
52
  assert "refresh the managed runtime" not in text
51
53
 
52
54
 
53
55
  def test_extra_remediation_config_only_managed_runtime(tmp_path: Path) -> None:
54
56
  runtime = SimpleNamespace(source="cli-managed")
55
57
  text = _extra_remediation("openai", tmp_path, runtime)
56
- assert "uv tool install --with 'monkeybot[openai]' monkeybot-cli" in text
58
+ assert "--overrides " in text
59
+ assert "overrides.txt" in text
60
+ assert "--with 'monkeybot[openai]' monkeybot-cli" in text
57
61
  assert "refresh the managed runtime" in text
58
62
 
59
63
 
@@ -87,10 +87,6 @@ managed `DB_URL` and `MEMORY_STORAGE_URI` for state that must survive recycling.
87
87
 
88
88
  When several gateway or worker processes share one `DB_URL`, conversation isolation is by `thread_id`; subagent run isolation is by `run_id`.
89
89
 
90
- For **queued subagent work** (`MONKEYBOT_TASK_QUEUE=1`), workers poll `pending_runs()` and `claim(run_id, worker_id)`. Stale claims use `MONKEYBOT_WORKER_STALE_CLAIM_MS` (default 10 minutes). See [Features — durable subagent runs](features.md#14-durable-subagent-runs-task-queue) for worker env vars.
91
-
92
- - **Production:** standalone `python -m monkeybot.subagents.worker` alongside the gateway (separate event loop; share state via `DB_URL`).
93
- - **Development only:** `MONKEYBOT_WORKER_POOL=1` co-locates a worker in the gateway process — do not use in production.
94
- - **SQLite:** single-process / local only. **Postgres / Firestore:** multi-process worker pools.
90
+ Background subagents run inside the gateway process that owns the session. There is no separate worker pool and no `MONKEYBOT_TASK_QUEUE`. A `running` row carries this process's owner id and a lease. On startup, rows whose owner is a dead process on this host are marked failed. Another host's rows are left alone, so a session must stay pinned to one gateway. See [Features — durable subagent runs](features.md#13-durable-subagent-runs-runstore-lease).
95
91
 
96
92
  Handle `StorageBackend` open/close in every entry point (gateway lifespan, FaaS cold start, AgentCore handler).
@@ -99,7 +99,8 @@ Install the unified CLI (`monkeybot-cli` in `cli/`) plus harness extras for talk
99
99
  # monkeybot[cli-realtime] — audio talk (requires PortAudio)
100
100
 
101
101
  # Global CLI on PATH
102
- uv tool install monkeybot-cli
102
+ printf 'pillow>=13\n' > /tmp/monkeybot-overrides.txt
103
+ uv tool install --overrides /tmp/monkeybot-overrides.txt monkeybot-cli
103
104
 
104
105
  # Harness contributors only (editable checkout):
105
106
  # uv sync --extra cli # or cli-realtime
@@ -149,7 +149,7 @@ Each section follows: **Purpose** · **Key files** · **How it works** · **Depe
149
149
  - Consecutive `task` tools and consecutive `parallel_safe` tools in one batch run **in parallel** (capped; default 10); mutating / unmarked tools run as **serial chunks**.
150
150
  - One user `Message` per model tool-call turn — all `ToolResponse` blocks grouped together (required for Gemini replay).
151
151
  - Final assistant history write is backgrounded but **awaited at turn tail** before freeze/reset.
152
- - `transform_context()` (tool-integrity repair + UI-block strip) runs on every `history.load()` (in-memory only, never persisted); `convert_to_provider()` resolves attachments / pressure-shapes for the provider view.
152
+ - `transform_context()` strips UI-only blocks, then repairs tool pairs, on every `history.load()` (in-memory only, never persisted); `convert_to_provider()` resolves attachments / pressure-shapes for the provider view.
153
153
 
154
154
  **Depends on:** Provider, HistoryStore, ToolExecutorPort, inspectors, optional hooks/curator/attachments.
155
155
 
@@ -164,7 +164,7 @@ Each section follows: **Purpose** · **Key files** · **How it works** · **Depe
164
164
  - **Settlement barrier:** `PRE_TOOL` is awaited before execute; fire-and-forget hooks are drained (bounded by `MONKEYBOT_HOOK_SETTLEMENT_TIMEOUT_S`, default 2s) before the next provider call and before `TurnComplete` (`run()` finally). Settlement does **not** wait on SSE client ACKs (avoids deadlock).
165
165
  - **Parallel-safe tools:** `ToolDef.parallel_safe=True` for read-only core tools (`read_file`, `glob`, `grep`, `search_memory`, `list_skills`, `loop_status`, `load_file`). Mutating tools (`write_file`, `replace_in_file`, `apply_patch`, …) stay serial. MCP tools default serial. Results always append in `call_id` order.
166
166
  - **Context Epoch:** At each safe provider-turn boundary the harness reconciles stable vs volatile system-context sources. The leading system message keeps an immutable epoch baseline (cache prefix). Volatile changes emit a chronological mid-conversation update (user-role, not persisted) and a `SystemContextUpdated` event. Compaction / stable-source change opens a new epoch (`ContextEpochStarted`).
167
- - **Message pipeline:** `history → transform_context() → convert_to_provider() → Provider.stream`. Transform repairs tool integrity and strips UI-only blocks; convert resolves attachments and applies pressure shaping without mutating persisted history.
167
+ - **Message pipeline:** `history → transform_context() → convert_to_provider() → Provider.stream`. Transform strips UI-only blocks, then repairs tool pairs on that provider-shaped list; convert resolves attachments and applies pressure shaping without mutating persisted history.
168
168
  - **Streaming grammar (additive):** `AssistantTextStarted` / `AssistantTextEnded`, `ThinkingBlockStarted`, and `ToolInputDelta` supplement existing `AssistantDelta` / `ThinkingBlockDelta` / `ToolCallStarted`. Clients may ignore the new events.
169
169
 
170
170
  ---
@@ -294,6 +294,7 @@ Each section follows: **Purpose** · **Key files** · **How it works** · **Depe
294
294
  - `skills/...` paths resolve only below the read-only skills root; all other relative paths resolve only below `workspace_root`.
295
295
  - Writes, edits, and patches reject `skills/...`; real-path checks reject symlink escapes from either root.
296
296
  - `apply_patch` validates all hunks before writing; a mid-apply failure rolls back completed ops in reverse order.
297
+ - `write_file`, `replace_in_file`, and `apply_patch` snapshot the before/after bytes under `.monkeybot/changes/{session}/` and emit `FileChange` (path, action, line stats; bodies stay off the wire). Undo restores the earliest pre-image in the selection. It refuses a file that no longer matches the recorded result, and a snapshot that was too large to keep. A parent session lists and deletes the `subagent:{session}:*` copies with its own.
297
298
  - Soft spill: large tool results always write the full payload to `.monkeybot/spill/{session_id}/` (and `.monkeybot/spill/subagent:{session_id}:*/` for task subagents) and keep a window-derived inline body in history when headroom allows; cleaned concurrently on session end. Budgets derive from `model.context_window` (no spill YAML/env knobs). Reported `read_file` line metadata is always truthful (`next_offset` when truncated).
298
299
  - `run_command` output over the spill threshold is never inlined as a raw-JSON prefix: the result stays valid JSON with `ok`, `exit_code`, `stdout_head`, `stdout_tail`, `stderr_tail`, `stdout_chars`/`stderr_chars` and `output_path` (full streams under `.monkeybot/spill/`). It is in `_SPILL_SKIP_TOOLS` because it self-spills.
299
300
  - `run_command` accepts `./…` and workspace-absolute path arguments (the agent's own tree); `../memory` and symlink escapes stay outside. `bash|sh|zsh -c "…"` scripts are split on shell operators and each command is checked against `deny_patterns` (anchored patterns like `^rm\s+-rf` used to miss them).
@@ -475,47 +476,41 @@ pricing:
475
476
 
476
477
  ### 12. Subagents (`task` tool)
477
478
 
478
- **Purpose:** Delegate work to isolated subprocess with same workspace/memory/MCP.
479
+ **Purpose:** Delegate work to an isolated subprocess with the same workspace, memory, and MCP.
479
480
 
480
- **Key files:** `core/subagents/subagent_proto.py`, `subagent_worker.py`, `monkeybot.yaml` `subagents.personas`
481
+ **Key files:** `core/subagents/subagent_proto.py`, `subagent_worker.py`, `core/subagents/supervisor.py`, `monkeybot.yaml` `subagents.personas`
481
482
 
482
483
  **How it works:**
483
484
  - Parent passes `subagent_type` to select a named persona from `monkeybot.yaml`.
484
- - Subagent uses separate `AGENT.md` per type.
485
- - Returns JSON (summary, errors, usage).
485
+ - Omit `background` to wait for the result in this turn.
486
+ - `background: true` returns immediately with `{status: "running", run_id, child_thread_id}`. The child keeps running after the turn ends. Read it back with `await_task`; stop it with `kill_task`.
487
+ - A session may run `subagents.max_background` background children at once (default 4). Stop on a later turn does not kill them. Deleting the session does.
488
+ - A child starts with the folders and commands this session has already approved. It cannot raise its own access prompt. Durable "Always allow" grants in `grants.json` still apply.
489
+ - When a background child finishes while the session is idle, the harness starts one follow-up turn whose text begins with `[harness]`. That turn is not human intent and is not written to memory.
486
490
 
487
491
  **Invariants:**
488
492
  - No nested `task` inside subagents.
489
- - Max 10 parallel `task` calls per batch.
490
- - `subagents.max_turns` / `subagents.timeout_sec` YAML limits apply.
491
- - Parent reads child NDJSON with a raised StreamReader limit (`SUBAGENT_STDOUT_LINE_LIMIT`, 16 MiB) — not asyncio’s default 64 KiB — so large `SystemPromptSnapshot` lines do not fail with `Separator is not found, and chunk exceed the limit`.
492
- - Subagent workers redact `SystemPromptSnapshot.text` on the NDJSON pipe (parent drain ignores it; full index would otherwise inflate every inner-turn line).
493
+ - Max 10 parallel blocking `task` calls per batch.
494
+ - `subagents.max_turns` / `subagents.timeout_sec` YAML limits apply (timeout default 3600s).
495
+ - Parent reads child NDJSON with a raised StreamReader limit (`SUBAGENT_STDOUT_LINE_LIMIT`, 16 MiB).
496
+ - Subagent workers redact `SystemPromptSnapshot.text` on the NDJSON pipe.
493
497
 
494
498
  ---
495
499
 
496
- ### 13. Durable subagent runs (task queue)
500
+ ### 13. Durable subagent runs (RunStore lease)
497
501
 
498
- **Purpose:** Optional async subagent execution via `RunStore`.
502
+ **Purpose:** Remember background runs across turns and gateway restarts.
499
503
 
500
- **Key files:** `core/persistence/durable_runs.py`, `core/persistence/runs.py`, `subagents/worker/`
504
+ **Key files:** `core/persistence/durable_runs.py`, `core/subagents/supervisor.py`
501
505
 
502
506
  **How it works:**
503
- - `MONKEYBOT_TASK_QUEUE=1` enqueues via `record_pending`; workers run `python -m monkeybot.subagents.worker`.
504
- - Requires `DB_URL` / storage — queue mode without storage raises at enqueue time.
505
- - Production: standalone `python -m monkeybot.subagents.worker`. Development only: `MONKEYBOT_WORKER_POOL=1` on the gateway (same event loop as SSE — do not use in production). See [Cloud deployment](cloud-deployment-design.md) for multi-process notes.
506
-
507
- **Worker tuning:**
508
-
509
- | Variable | Default | Purpose |
510
- |---|---|---|
511
- | `MONKEYBOT_WORKER_STALE_CLAIM_MS` | `600000` (10 min) | Reclaim `running` rows with no heartbeat after this window; another worker may re-execute the run |
512
- | `MONKEYBOT_WORKER_POLL_INTERVAL_S` | `2` | Poll interval for `pending_runs()` |
513
- | `MONKEYBOT_WORKER_CONCURRENCY` | `1` | Max concurrent claimed runs per worker |
514
- | `MONKEYBOT_WORKER_ID` | auto | Worker identity for claim attribution |
507
+ - A background spawn writes a `running` row with `worker_id` (this process) and `claimed_at`. A heartbeat renews the lease (`subagents.lease_ms`, default 60s).
508
+ - `await_task` reads the in-memory run, or the stored payload after a restart.
509
+ - On startup, `running` rows owned by a dead process on this host are marked failed. A row owned by another host is left alone.
515
510
 
516
511
  **Invariants:**
517
- - No claim heartbeat yet — subagent runs longer than `MONKEYBOT_WORKER_STALE_CLAIM_MS` risk duplicate execution. Increase the limit for long LLM workloads or keep runs under the window.
518
- - Queue mode without storage raises at enqueue time.
512
+ - There is no worker pool and no `MONKEYBOT_TASK_QUEUE`. A `running` result is not completion.
513
+ - Without a storage backend, background runs live only in the gateway process.
519
514
 
520
515
  ---
521
516
 
@@ -21,11 +21,15 @@ Session routes are **not** authenticated; do not expose the gateway to the publi
21
21
 
22
22
  ```bash
23
23
  curl -LsSf https://astral.sh/uv/install.sh | sh # if needed
24
- uv tool install monkeybot-cli
24
+ # browser-harness pins Pillow 12. Core 3.12 needs Pillow 13, and
25
+ # `uv tool install` ignores the package override unless this file is passed.
26
+ # Without it the resolver stays on core 3.10.0.
27
+ printf 'pillow>=13\n' > /tmp/monkeybot-overrides.txt
28
+ uv tool install --overrides /tmp/monkeybot-overrides.txt monkeybot-cli
25
29
  monkeybot --help
26
30
  ```
27
31
 
28
- Upgrade later with `uv tool upgrade monkeybot-cli`.
32
+ Upgrade later with `uv tool install --reinstall --overrides /tmp/monkeybot-overrides.txt monkeybot-cli`.
29
33
 
30
34
  ---
31
35
 
@@ -38,7 +38,8 @@ export OTEL_TRACES_SAMPLER_ARG=0.1
38
38
 
39
39
  ## PII and data minimization
40
40
 
41
- - Span attributes use `truncate()` (default 8 KiB) for user messages, tool I/O, and errors.
41
+ - Tool input and output, tool errors, user messages, completions, and turn I/O are stored whole, capped at 1 MiB per attribute. The repeated history prompt (`gen_ai.prompt`) and other strings stay at 8 KiB.
42
+ - OTLP exports have no value-level secret scan, so full tool I/O reaches the collector. Redact at the collector. The SQLite exporter scans values when Spaces is running.
42
43
  - Denylist blocks attribute keys containing `api_key`, `secret`, `password`, `token`, `authorization`, etc. (`gen_ai.*` usage keys are exempt).
43
44
  - Hook span events record **`tool.name` only** — never tool args or results.
44
45
  - Use **HTTPS** for `OTEL_EXPORTER_OTLP_ENDPOINT` in production.
@@ -48,6 +49,8 @@ export OTEL_TRACES_SAMPLER_ARG=0.1
48
49
 
49
50
  - Lower production volume with sampling (above).
50
51
  - Use an OpenTelemetry Collector for fan-out and optional filtering.
52
+ - The OTLP exporter sends 8 spans per request (the SDK default is 512). A tool span copies each value three times, so input and output both near 1 MiB are about 6 MiB and eight of those stay under the SDK's 64 MiB `max_request_size` (measured before compression). A larger batch is dropped whole and logged. Set `OTEL_BSP_MAX_EXPORT_BATCH_SIZE` to a positive integer to override; any other value keeps 8. Set `OTEL_EXPORTER_OTLP_COMPRESSION=gzip` to help with a collector body limit. The SQLite exporter uses the same batch size.
53
+ - The SQLite trace DB stores each I/O value up to three times per span (`attributes_json` under the tool and `*.value` keys, plus the `input_value` / `output_value` column) and never shrinks on its own. Lower `MONKEYBOT_TRACES_MAX_SPANS` or `MONKEYBOT_TRACES_RETENTION_DAYS` if it grows too large.
51
54
  - Tune backend retention (Phoenix / Langfuse) per your compliance budget.
52
55
 
53
56
  ## Troubleshooting