agentenv-framework 0.9.1302__tar.gz → 0.9.1303__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 (947) hide show
  1. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/PKG-INFO +2 -2
  2. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/pyproject.toml +1 -1
  3. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/pyproject.toml +2 -2
  4. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/a2a_agent.py +10 -0
  5. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/docker_image.py +18 -7
  6. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/preflight.py +22 -4
  7. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/env_gateway_provider.py +3 -0
  8. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/env_server_provider.py +2 -0
  9. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/sandbox.py +31 -7
  10. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sandbox.py +42 -3
  11. agentenv_framework-0.9.1303/tst/unit/a2a_agent/context_only_deploy_test.py +67 -0
  12. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/deploy_cleanup_test.py +2 -1
  13. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_build_context.py +4 -3
  14. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/preflight_test.py +51 -0
  15. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/env_gateway_provider_test.py +43 -14
  16. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/env_server_provider_test.py +15 -3
  17. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/e2b_sandbox_test.py +55 -0
  18. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/local_sandbox_test.py +2 -2
  19. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/vm_sandbox_test.py +86 -0
  20. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/local_container_urls_test.py +2 -1
  21. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/check_clean_install.py +0 -0
  22. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/check_plugin_api.py +0 -0
  23. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/check_skip_policy.py +0 -0
  24. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/clean_install.py +0 -0
  25. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.gitignore +0 -0
  26. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/LICENSE +0 -0
  27. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/NOTICE +0 -0
  28. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/README.md +0 -0
  29. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/THIRD_PARTY_NOTICES.md +0 -0
  30. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/LICENSE +0 -0
  31. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/NOTICE +0 -0
  32. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/README.md +0 -0
  33. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/THIRD_PARTY_NOTICES.md +0 -0
  34. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/__init__.py +0 -0
  35. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/advanced_agent.py +0 -0
  36. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/basic_agent.py +0 -0
  37. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/custom_extensions_agent.py +0 -0
  38. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/multimodal_agent.py +0 -0
  39. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/reference_model.py +0 -0
  40. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/streaming_agent.py +0 -0
  41. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/__init__.py +0 -0
  42. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/__init__.py +0 -0
  43. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/_triggers.py +0 -0
  44. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/extensions.py +0 -0
  45. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/framework.py +0 -0
  46. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/registry.py +0 -0
  47. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/staging.py +0 -0
  48. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/tasks/__init__.py +0 -0
  49. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/tasks/v1.py +0 -0
  50. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/agent_env_environment.py +0 -0
  51. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/client.py +0 -0
  52. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/manifest.py +0 -0
  53. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/preflight.py +0 -0
  54. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/transfers.py +0 -0
  55. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/types.py +0 -0
  56. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_agent.py +0 -0
  57. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_agent_examples.py +0 -0
  58. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_object_transfers.py +0 -0
  59. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_staging.py +0 -0
  60. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_agent_env_environment.py +0 -0
  61. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_client.py +0 -0
  62. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_data_objects.py +0 -0
  63. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_intake.py +0 -0
  64. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_manifest.py +0 -0
  65. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_preflight.py +0 -0
  66. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/__init__.py +0 -0
  67. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/__init__.py +0 -0
  68. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/conversation_store.py +0 -0
  69. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/object_transfer.py +0 -0
  70. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/protocol.py +0 -0
  71. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/staging.py +0 -0
  72. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/store.py +0 -0
  73. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/validator.py +0 -0
  74. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/__init__.py +0 -0
  75. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifact.py +0 -0
  76. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/__init__.py +0 -0
  77. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/cli.py +0 -0
  78. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/environment.py +0 -0
  79. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/environment_universe.py +0 -0
  80. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/file.py +0 -0
  81. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/file_artifact_universe.py +0 -0
  82. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/skill.py +0 -0
  83. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/ref.py +0 -0
  84. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/registry.py +0 -0
  85. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/store.py +0 -0
  86. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/universe.py +0 -0
  87. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/attribution.py +0 -0
  88. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/__init__.py +0 -0
  89. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/_fs.py +0 -0
  90. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/authoring.py +0 -0
  91. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/installed.py +0 -0
  92. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/ledger.py +0 -0
  93. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/materialize.py +0 -0
  94. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/parse.py +0 -0
  95. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/plan.py +0 -0
  96. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/resolve.py +0 -0
  97. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/run.py +0 -0
  98. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/__init__.py +0 -0
  99. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/__main__.py +0 -0
  100. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/_installers.py +0 -0
  101. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/_plugin_changes.py +0 -0
  102. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/__init__.py +0 -0
  103. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/add_skill.py +0 -0
  104. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/deploy.py +0 -0
  105. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/get.py +0 -0
  106. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/get_instance.py +0 -0
  107. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/put.py +0 -0
  108. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/validate.py +0 -0
  109. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/__init__.py +0 -0
  110. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/cli.py +0 -0
  111. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/environment.py +0 -0
  112. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/environment_universe.py +0 -0
  113. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/file_artifact_universe.py +0 -0
  114. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/skill.py +0 -0
  115. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/banner.py +0 -0
  116. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/config.py +0 -0
  117. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/__init__.py +0 -0
  118. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/deploy.py +0 -0
  119. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/gateway.py +0 -0
  120. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/get_instance.py +0 -0
  121. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/mcp_server.py +0 -0
  122. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/multi.py +0 -0
  123. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/service_db.py +0 -0
  124. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/snapshot.py +0 -0
  125. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/state/__init__.py +0 -0
  126. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/state/init.py +0 -0
  127. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/state/teardown.py +0 -0
  128. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/website.py +0 -0
  129. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/website_browser.py +0 -0
  130. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/__init__.py +0 -0
  131. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/add_tasks.py +0 -0
  132. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/create.py +0 -0
  133. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/run.py +0 -0
  134. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/identity/__init__.py +0 -0
  135. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/identity/client_identity.py +0 -0
  136. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/plugin.py +0 -0
  137. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/run.py +0 -0
  138. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/__init__.py +0 -0
  139. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/create.py +0 -0
  140. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/get.py +0 -0
  141. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/get_instance.py +0 -0
  142. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/run.py +0 -0
  143. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/validate.py +0 -0
  144. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/teardown_output.py +0 -0
  145. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/up.py +0 -0
  146. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/utils.py +0 -0
  147. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/__init__.py +0 -0
  148. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/describe.py +0 -0
  149. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/errors.py +0 -0
  150. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/loader.py +0 -0
  151. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/model.py +0 -0
  152. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/paths.py +0 -0
  153. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/plugin_tables.py +0 -0
  154. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/provenance.py +0 -0
  155. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/runtime.py +0 -0
  156. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/snapshot.py +0 -0
  157. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/entity_refs.py +0 -0
  158. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/__init__.py +0 -0
  159. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/bootstrap.py +0 -0
  160. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/env.py +0 -0
  161. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/env_artifact_store.py +0 -0
  162. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/__init__.py +0 -0
  163. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/_deployment.py +0 -0
  164. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/gateway_server.py +0 -0
  165. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/mcp_server.py +0 -0
  166. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/multi_env.py +0 -0
  167. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db/Dockerfile +0 -0
  168. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db/Dockerfile.db-mcp +0 -0
  169. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db/Dockerfile.db-web +0 -0
  170. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db.py +0 -0
  171. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website.py +0 -0
  172. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website_browser/Dockerfile +0 -0
  173. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website_browser/__init__.py +0 -0
  174. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website_browser/entrypoint.sh +0 -0
  175. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/Dockerfile +0 -0
  176. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/__init__.py +0 -0
  177. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/clock.py +0 -0
  178. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/constants.py +0 -0
  179. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/entrypoint.py +0 -0
  180. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/gateway.py +0 -0
  181. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/get_time.py +0 -0
  182. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/requirements.txt +0 -0
  183. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/triggers.py +0 -0
  184. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/legacy_protocol.py +0 -0
  185. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/registry.py +0 -0
  186. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/snapshot_store.py +0 -0
  187. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/store.py +0 -0
  188. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/eval/__init__.py +0 -0
  189. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/eval/eval.py +0 -0
  190. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/eval/store.py +0 -0
  191. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/README.md +0 -0
  192. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/artifacts/greeting/check.sh +0 -0
  193. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/artifacts/greeting/hello.txt +0 -0
  194. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/tasks/hello.json +0 -0
  195. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/__init__.py +0 -0
  196. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/app.py +0 -0
  197. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/entity_ids.py +0 -0
  198. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/openapi_docs.py +0 -0
  199. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/plugin.py +0 -0
  200. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/__init__.py +0 -0
  201. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/common.py +0 -0
  202. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/conversations.py +0 -0
  203. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/objects.py +0 -0
  204. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/runs.py +0 -0
  205. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/triggers.py +0 -0
  206. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/.env.example +0 -0
  207. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/.gitignore +0 -0
  208. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/README.md +0 -0
  209. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/eslint.config.mjs +0 -0
  210. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/next-env.d.ts +0 -0
  211. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/next.config.mjs +0 -0
  212. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/package-lock.json +0 -0
  213. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/package.json +0 -0
  214. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/postcss.config.mjs +0 -0
  215. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/prettier.config.js +0 -0
  216. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/android-chrome-192x192.png +0 -0
  217. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/android-chrome-512x512.png +0 -0
  218. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/apple-touch-icon.png +0 -0
  219. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/favicon.ico +0 -0
  220. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/favicon.svg +0 -0
  221. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/logos/agentenv-icon.svg +0 -0
  222. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/logos/claude.svg +0 -0
  223. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/logos/scale-logo.svg +0 -0
  224. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/site.webmanifest +0 -0
  225. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/scripts/run-smokes.mjs +0 -0
  226. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/advertised-agent-card.tsx +0 -0
  227. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/advertised-environment-card.tsx +0 -0
  228. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/agent-detail-page.tsx +0 -0
  229. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/agents-hub-page.tsx +0 -0
  230. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/backend-status-banner.tsx +0 -0
  231. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/conversations-panel.tsx +0 -0
  232. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/docs-page.tsx +0 -0
  233. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/env-detail-page.tsx +0 -0
  234. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/environments-page.tsx +0 -0
  235. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/flow-shared.tsx +0 -0
  236. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/home-page.tsx +0 -0
  237. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/mcp-env-validation-entry.tsx +0 -0
  238. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/peer-qna-panel.tsx +0 -0
  239. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/rollout-deep-link.tsx +0 -0
  240. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/rubric-grading-results.tsx +0 -0
  241. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/rubric-matrix.tsx +0 -0
  242. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/run-group-step-funnel.tsx +0 -0
  243. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/run-step-progress.tsx +0 -0
  244. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/server-config-panel.tsx +0 -0
  245. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/shared.tsx +0 -0
  246. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/start-runs-panel.tsx +0 -0
  247. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/step-attempt-failures.tsx +0 -0
  248. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/step-progress.ts +0 -0
  249. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/steps-pipeline.tsx +0 -0
  250. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-detail-page.tsx +0 -0
  251. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-instance-viewer.tsx +0 -0
  252. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-runner-page.tsx +0 -0
  253. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-steps-shared.tsx +0 -0
  254. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/tasks-hub-page.tsx +0 -0
  255. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/trajectory-viewer.tsx +0 -0
  256. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/trigger-timeline.tsx +0 -0
  257. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/triggers-graph.tsx +0 -0
  258. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/triggers-panel.tsx +0 -0
  259. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/universe-detail-page.tsx +0 -0
  260. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/universes-page.tsx +0 -0
  261. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/env.mjs +0 -0
  262. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/hooks/useLiveTriggers.ts +0 -0
  263. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/hooks/useRunGroupPolling.ts +0 -0
  264. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/pages/[[...slug]].tsx +0 -0
  265. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/pages/_app.tsx +0 -0
  266. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/styles/globals.css +0 -0
  267. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/styles/tokens.ts +0 -0
  268. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/types/pptx-preview.d.ts +0 -0
  269. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/tailwind.config.ts +0 -0
  270. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/tsconfig.json +0 -0
  271. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/__init__.py +0 -0
  272. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_cli.py +0 -0
  273. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_discovery.py +0 -0
  274. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_inventory.py +0 -0
  275. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_registration.py +0 -0
  276. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_report.py +0 -0
  277. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_requirements.py +0 -0
  278. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/__init__.py +0 -0
  279. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/__init__.py +0 -0
  280. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/constants.py +0 -0
  281. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/env_provider.py +0 -0
  282. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/__init__.py +0 -0
  283. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/env_state_provider.py +0 -0
  284. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/local_postgres.py +0 -0
  285. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/store.py +0 -0
  286. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/__init__.py +0 -0
  287. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/chained_sandbox_provider.py +0 -0
  288. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/__init__.py +0 -0
  289. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/provider.py +0 -0
  290. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/template.py +0 -0
  291. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/local_sandbox.py +0 -0
  292. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/modal_sandbox.py +0 -0
  293. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/modal_vm_sandbox.py +0 -0
  294. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/README.md +0 -0
  295. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/__init__.py +0 -0
  296. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/_sdk.py +0 -0
  297. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/model_key.py +0 -0
  298. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/provider.py +0 -0
  299. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/sandbox.py +0 -0
  300. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sandbox_provider.py +0 -0
  301. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/py.typed +0 -0
  302. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/__init__.py +0 -0
  303. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/local_runner.py +0 -0
  304. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/runner.py +0 -0
  305. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/store.py +0 -0
  306. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/__init__.py +0 -0
  307. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/_google.py +0 -0
  308. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/_lazy.py +0 -0
  309. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/base.py +0 -0
  310. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/__init__.py +0 -0
  311. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/document_store.py +0 -0
  312. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/dynamodb_document_store.py +0 -0
  313. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/evaluation.py +0 -0
  314. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/firestore_mongo_document_store.py +0 -0
  315. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/mongo_document_store.py +0 -0
  316. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/sqlite_document_store.py +0 -0
  317. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/ids.py +0 -0
  318. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/__init__.py +0 -0
  319. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/ecr_image_store.py +0 -0
  320. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/google_credentials.py +0 -0
  321. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/image_store.py +0 -0
  322. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/local_registry_image_store.py +0 -0
  323. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/oci_registry_credentials.py +0 -0
  324. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/registry_api.py +0 -0
  325. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/local_state.py +0 -0
  326. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/__init__.py +0 -0
  327. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/gcs_object_store.py +0 -0
  328. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/__init__.py +0 -0
  329. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/grant_server.py +0 -0
  330. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/store.py +0 -0
  331. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/tls.py +0 -0
  332. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/tokens.py +0 -0
  333. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/object_store.py +0 -0
  334. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/s3_object_store.py +0 -0
  335. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/query.py +0 -0
  336. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/routing.py +0 -0
  337. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/__init__.py +0 -0
  338. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/aws_secrets_manager_secret_store.py +0 -0
  339. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/gcp_secret_manager_secret_store.py +0 -0
  340. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/local_secret_store.py +0 -0
  341. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/secret_store.py +0 -0
  342. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/__init__.py +0 -0
  343. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/interrupts.py +0 -0
  344. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/registry.py +0 -0
  345. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/step_journal.py +0 -0
  346. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/store.py +0 -0
  347. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/task.py +0 -0
  348. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/teardown.py +0 -0
  349. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/__init__.py +0 -0
  350. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/context.py +0 -0
  351. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/context_ops.py +0 -0
  352. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/registry.py +0 -0
  353. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/review_store.py +0 -0
  354. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/snapshot_utils/__init__.py +0 -0
  355. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/snapshot_utils/agent_state_capture.py +0 -0
  356. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/snapshot_utils/snapshot_series.py +0 -0
  357. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/store.py +0 -0
  358. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_step.py +0 -0
  359. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/__init__.py +0 -0
  360. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/__init__.py +0 -0
  361. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/README.md +0 -0
  362. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/clip.m4a +0 -0
  363. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/clip.mp3 +0 -0
  364. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/clip.mp4 +0 -0
  365. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/clip.ogg +0 -0
  366. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/clip.wav +0 -0
  367. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/document.pdf +0 -0
  368. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/red.gif +0 -0
  369. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/red.jpg +0 -0
  370. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/fixtures/red.png +0 -0
  371. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_agent_card.py +0 -0
  372. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_agent_config_identity.py +0 -0
  373. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_agent_mcp.py +0 -0
  374. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_core_protocol.py +0 -0
  375. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_install.py +0 -0
  376. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_modalities.py +0 -0
  377. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_peer_agents.py +0 -0
  378. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_role.py +0 -0
  379. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_skill_config.py +0 -0
  380. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_snapshot.py +0 -0
  381. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_system_prompt.py +0 -0
  382. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/verify_a2a_trajectory.py +0 -0
  383. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/add_skills.py +0 -0
  384. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/apply_server_config.py +0 -0
  385. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/collect_artifacts.py +0 -0
  386. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_agent.py +0 -0
  387. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_env.py +0 -0
  388. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_human_agent.py +0 -0
  389. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_sandbox.py +0 -0
  390. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/env_card_validator/__init__.py +0 -0
  391. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/env_card_validator/verify_env_card.py +0 -0
  392. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/env_card_validator/verify_env_core_protocol.py +0 -0
  393. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/install_agent.py +0 -0
  394. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/load_artifact.py +0 -0
  395. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_cli_builder/__init__.py +0 -0
  396. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_cli_builder/build_mcp_cli.py +0 -0
  397. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_cli_builder/codegen.py +0 -0
  398. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_env_validator/__init__.py +0 -0
  399. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_env_validator/validation_gate_aggregator.py +0 -0
  400. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_env_validator/verify_mcp_env_assessment.py +0 -0
  401. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_env_validator/verify_mcp_tool_schema.py +0 -0
  402. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_env_validator/verify_spec_conformance.py +0 -0
  403. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/modify_env_tool_access.py +0 -0
  404. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/__init__.py +0 -0
  405. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/combine_universe_verdicts.py +0 -0
  406. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/universe_comparison.py +0 -0
  407. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/verify_universe_agent_judge.py +0 -0
  408. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/verify_universe_roundtrip.py +0 -0
  409. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/peer_agents.py +0 -0
  410. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/prompt_agent.py +0 -0
  411. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/register_agent_triggers.py +0 -0
  412. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/register_env_triggers.py +0 -0
  413. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/reset_env.py +0 -0
  414. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/review.py +0 -0
  415. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/run_code.py +0 -0
  416. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/run_code_runner.py +0 -0
  417. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/run_docker_container.py +0 -0
  418. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/sandbox_utils/__init__.py +0 -0
  419. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/sandbox_utils/sandbox_utils.py +0 -0
  420. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/snapshot_agent_state.py +0 -0
  421. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/snapshot_env.py +0 -0
  422. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/sync_env_clock.py +0 -0
  423. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/teardown_sandboxes.py +0 -0
  424. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/__init__.py +0 -0
  425. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/agent_prompt_response_verifier.py +0 -0
  426. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/aggregate_verifiers.py +0 -0
  427. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/env_outcome_verifier.py +0 -0
  428. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/judge_utils/__init__.py +0 -0
  429. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/judge_utils/frame_selection.py +0 -0
  430. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/judge_utils/judge_output_format.py +0 -0
  431. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/judge_utils/trajectory_filter.py +0 -0
  432. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/rubrics_verifier.py +0 -0
  433. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/run_container_unit_tests_verifier.py +0 -0
  434. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/scoring.py +0 -0
  435. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/verify_sandbox.py +0 -0
  436. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/thread_work.py +0 -0
  437. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/__init__.py +0 -0
  438. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/build_context.py +0 -0
  439. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/build_metadata.py +0 -0
  440. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/card_naming.py +0 -0
  441. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/deprecation.py +0 -0
  442. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/docker_build.py +0 -0
  443. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/exec_retry.py +0 -0
  444. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/paths.py +0 -0
  445. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/__init__.py +0 -0
  446. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/explorer_reads.py +0 -0
  447. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/journal_union.py +0 -0
  448. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/task_graphs.py +0 -0
  449. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/version_lookup.py +0 -0
  450. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/conftest.py +0 -0
  451. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/a2a_agent/Dockerfile +0 -0
  452. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/a2a_agent/agent.py +0 -0
  453. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_mcp/Dockerfile +0 -0
  454. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_mcp/seed.json +0 -0
  455. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_mcp/server.py +0 -0
  456. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_website/Dockerfile +0 -0
  457. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_website/server.py +0 -0
  458. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/base_mcp/__init__.py +0 -0
  459. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/base_mcp/base_database.py +0 -0
  460. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/base_mcp/base_service.py +0 -0
  461. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/cardless_mcp/Dockerfile +0 -0
  462. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/cardless_mcp/server.py +0 -0
  463. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_artifact.json +0 -0
  464. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/Dockerfile +0 -0
  465. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/database.py +0 -0
  466. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/email_service.py +0 -0
  467. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/generated_data.json +0 -0
  468. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/models.py +0 -0
  469. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/requirements.txt +0 -0
  470. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/sample_data.json +0 -0
  471. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/legacy_stub/Dockerfile +0 -0
  472. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/legacy_stub/server.py +0 -0
  473. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/skills/sample_skill/SKILL.md +0 -0
  474. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/skills/sample_skill/references/notes.md +0 -0
  475. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/skills/sample_skill/scripts/hello.py +0 -0
  476. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/Dockerfile +0 -0
  477. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/database.py +0 -0
  478. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/generated_data.json +0 -0
  479. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/models.py +0 -0
  480. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/requirements.txt +0 -0
  481. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/sample_data.json +0 -0
  482. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/slack_service.py +0 -0
  483. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/Dockerfile +0 -0
  484. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/api/__init__.py +0 -0
  485. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/api/routes.py +0 -0
  486. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/app.py +0 -0
  487. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/config.py +0 -0
  488. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/db_extensions.py +0 -0
  489. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/requirements.txt +0 -0
  490. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/schemas.py +0 -0
  491. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/frontend/Dockerfile +0 -0
  492. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/frontend/index.html +0 -0
  493. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/test_outcome_verifier.py +0 -0
  494. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/gateway/clock_test.py +0 -0
  495. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/task_step/deploy_env_resources_test.py +0 -0
  496. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/task_step/prompt_agent_parts_test.py +0 -0
  497. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/task_step/verify_a2a_modalities_test.py +0 -0
  498. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/__init__.py +0 -0
  499. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/conftest.py +0 -0
  500. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/test_container_journey.py +0 -0
  501. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/test_plugin_changes.py +0 -0
  502. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/test_wheel.py +0 -0
  503. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/toys.py +0 -0
  504. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/__init__.py +0 -0
  505. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/__init__.py +0 -0
  506. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/__init__.py +0 -0
  507. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/a2a_agent_test.py +0 -0
  508. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/agent_triggers_e2e_test.py +0 -0
  509. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/conversation_store_test.py +0 -0
  510. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/__init__.py +0 -0
  511. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/__init__.py +0 -0
  512. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/conftest.py +0 -0
  513. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/docker_image_artifact_test.py +0 -0
  514. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/environment_artifact_test.py +0 -0
  515. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/environment_universe_artifact_test.py +0 -0
  516. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/file_artifact_test.py +0 -0
  517. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/file_artifact_universe_artifact_test.py +0 -0
  518. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/skill_artifact_test.py +0 -0
  519. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/__init__.py +0 -0
  520. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/cli_test.py +0 -0
  521. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/run_bundle_built_agents_test.py +0 -0
  522. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/run_bundle_built_envs_test.py +0 -0
  523. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/run_bundle_test.py +0 -0
  524. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/__init__.py +0 -0
  525. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/custom_env_config_test.py +0 -0
  526. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/env_test.py +0 -0
  527. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/__init__.py +0 -0
  528. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/multi_env_local_test.py +0 -0
  529. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/server_env_local_test.py +0 -0
  530. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/server_env_modal_test.py +0 -0
  531. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/service_db_changelog_test.py +0 -0
  532. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/gateway/__init__.py +0 -0
  533. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/gateway/gateway_test.py +0 -0
  534. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/__init__.py +0 -0
  535. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/task_steps_test.py +0 -0
  536. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/test_record_step_concurrency.py +0 -0
  537. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/test_task_instance_retry_resume.py +0 -0
  538. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/eval/__init__.py +0 -0
  539. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/eval/eval_test.py +0 -0
  540. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/__init__.py +0 -0
  541. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/sandbox_providers/__init__.py +0 -0
  542. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/sandbox_providers/e2b_sandbox_smoke_test.py +0 -0
  543. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/sandbox_providers/sail_vm_sandbox_smoke_test.py +0 -0
  544. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/state/__init__.py +0 -0
  545. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/__init__.py +0 -0
  546. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_image_composition_test.py +0 -0
  547. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_parallel_deploy_test.py +0 -0
  548. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_registry_image_store_test.py +0 -0
  549. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_task_lifecycle_test.py +0 -0
  550. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/oci_registry_image_store_test.py +0 -0
  551. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/__init__.py +0 -0
  552. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/review_store_test.py +0 -0
  553. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_agent_on_local_sandbox.py +0 -0
  554. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_container_sandbox_files_local.py +0 -0
  555. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_enable_docker_e2e.py +0 -0
  556. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_multiturn_verifier_delivery.py +0 -0
  557. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_prompt_agent_file_parts_local.py +0 -0
  558. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_run_code_named_sandbox_local.py +0 -0
  559. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_run_docker_container_local.py +0 -0
  560. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_verify_sandbox_local.py +0 -0
  561. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/__init__.py +0 -0
  562. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/conformance.py +0 -0
  563. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/image_conformance.py +0 -0
  564. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/object_conformance.py +0 -0
  565. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/secret_conformance.py +0 -0
  566. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/task/__init__.py +0 -0
  567. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/task/journal_invariants.py +0 -0
  568. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/__init__.py +0 -0
  569. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/__init__.py +0 -0
  570. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/add_skill_test.py +0 -0
  571. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/negotiate_agent_config_test.py +0 -0
  572. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/object_transfer_reach_test.py +0 -0
  573. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/object_transfer_test.py +0 -0
  574. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/protocol_test.py +0 -0
  575. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/readable_parts_test.py +0 -0
  576. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/staging_test.py +0 -0
  577. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/store_test.py +0 -0
  578. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/test_validator_changelog_objects.py +0 -0
  579. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/test_validator_skill_variants.py +0 -0
  580. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/validator_trajectory_dag_test.py +0 -0
  581. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/validator_uri_probes_test.py +0 -0
  582. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/verify_a2a_agent_card_test.py +0 -0
  583. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/__init__.py +0 -0
  584. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/registry_test.py +0 -0
  585. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_artifact_put.py +0 -0
  586. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_github_clone.py +0 -0
  587. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_github_push.py +0 -0
  588. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_pulled.py +0 -0
  589. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_put_ref.py +0 -0
  590. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_object_url_keys.py +0 -0
  591. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_removed_service_aliases.py +0 -0
  592. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_service_artifact_alias.py +0 -0
  593. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_service_universe_file_view.py +0 -0
  594. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_store_put_document.py +0 -0
  595. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/attribution_test.py +0 -0
  596. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/__init__.py +0 -0
  597. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/_support.py +0 -0
  598. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/artifact_toml_test.py +0 -0
  599. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/authoring_test.py +0 -0
  600. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/conftest.py +0 -0
  601. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/env_toml_test.py +0 -0
  602. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/file_artifacts_test.py +0 -0
  603. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/installed_test.py +0 -0
  604. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/ledger_digest_test.py +0 -0
  605. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/ledger_test.py +0 -0
  606. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/materialize_test.py +0 -0
  607. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/parse_test.py +0 -0
  608. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/plan_test.py +0 -0
  609. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/resolve_test.py +0 -0
  610. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/run_teardown_test.py +0 -0
  611. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/run_test.py +0 -0
  612. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/toml_refs_test.py +0 -0
  613. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/__init__.py +0 -0
  614. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/base_metadata_version_test.py +0 -0
  615. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/build_platform_test.py +0 -0
  616. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/card_naming_relocation_test.py +0 -0
  617. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/deploy_vm_sizing_test.py +0 -0
  618. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/deployed_env_output_test.py +0 -0
  619. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/env_provider_type_test.py +0 -0
  620. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/env_put_validation_test.py +0 -0
  621. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/env_state_type_parity_test.py +0 -0
  622. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/environment_name_alias_test.py +0 -0
  623. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/eval_run_teardown_test.py +0 -0
  624. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/check.json +0 -0
  625. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/check_broken.json +0 -0
  626. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/list.json +0 -0
  627. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/list_no_load.json +0 -0
  628. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/show.json +0 -0
  629. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/show_bundles.json +0 -0
  630. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/image_ref_put_test.py +0 -0
  631. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/init_env_state_cli_test.py +0 -0
  632. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/load_artifact_target_test.py +0 -0
  633. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugin_command_test.py +0 -0
  634. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugin_install_test.py +0 -0
  635. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugin_report_test.py +0 -0
  636. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugins_test.py +0 -0
  637. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/sandbox_url_relocation_test.py +0 -0
  638. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/stage_free_commands_test.py +0 -0
  639. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/task_run_teardown_test.py +0 -0
  640. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/teardown_env_state_cli_test.py +0 -0
  641. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_release_gate_decision.py +0 -0
  642. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_removed_cli_aliases.py +0 -0
  643. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_spec_conformance_display.py +0 -0
  644. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_task_create_preflight.py +0 -0
  645. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/user_facing_errors_test.py +0 -0
  646. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/write_context_filename_test.py +0 -0
  647. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/__init__.py +0 -0
  648. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_config_holds_its_document.py +0 -0
  649. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_config_profiles.py +0 -0
  650. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_default_a2a_agent.py +0 -0
  651. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_describe.py +0 -0
  652. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_explain_and_sources.py +0 -0
  653. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_fixture_prefix_keys.py +0 -0
  654. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_human_a2a_url.py +0 -0
  655. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_loader.py +0 -0
  656. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_model.py +0 -0
  657. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_no_stage_concept.py +0 -0
  658. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_one_document_per_process.py +0 -0
  659. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_paths.py +0 -0
  660. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_registry_builders_take_a_config.py +0 -0
  661. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_reset_config.py +0 -0
  662. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_unread_keys.py +0 -0
  663. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/conftest.py +0 -0
  664. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/__init__.py +0 -0
  665. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/bootstrap_test.py +0 -0
  666. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/__init__.py +0 -0
  667. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/service_db/__init__.py +0 -0
  668. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/service_db/service_db_test.py +0 -0
  669. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_env_card_loads.py +0 -0
  670. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_env_close_teardown.py +0 -0
  671. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_environment_name_alias.py +0 -0
  672. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_mcp_server_container_mode.py +0 -0
  673. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_mcp_server_load.py +0 -0
  674. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_mcp_server_plugin_provider.py +0 -0
  675. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_load_concurrency.py +0 -0
  676. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_load_resume.py +0 -0
  677. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_name.py +0 -0
  678. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_plugin_provider.py +0 -0
  679. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_snapshot_bake.py +0 -0
  680. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_snapshot_guard.py +0 -0
  681. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_snapshot_reload_name.py +0 -0
  682. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_vm_sizing.py +0 -0
  683. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_put_from_github_token.py +0 -0
  684. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_website_env_name_alias.py +0 -0
  685. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/data_plane_timeout_test.py +0 -0
  686. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/env_trajectory_route_test.py +0 -0
  687. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/gateway_card_test.py +0 -0
  688. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/get_time_test.py +0 -0
  689. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/import_graph_test.py +0 -0
  690. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/rest_proxy_socket_test.py +0 -0
  691. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/rest_proxy_stream_test.py +0 -0
  692. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/role_rules_test.py +0 -0
  693. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/trajectory_virtual_time_test.py +0 -0
  694. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/triggers_ctx_test.py +0 -0
  695. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/triggers_test.py +0 -0
  696. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/triggers_time_test.py +0 -0
  697. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/store_test.py +0 -0
  698. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/__init__.py +0 -0
  699. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/deploy_agent_env_vars_test.py +0 -0
  700. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/test_context_ops.py +0 -0
  701. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/test_score_aggregator.py +0 -0
  702. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/verify_env_card_test.py +0 -0
  703. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/verify_env_core_protocol_test.py +0 -0
  704. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_env.py +0 -0
  705. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_legacy_protocol.py +0 -0
  706. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_registry.py +0 -0
  707. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_snapshot_fingerprint.py +0 -0
  708. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/event_loop_probe.py +0 -0
  709. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/explorer/__init__.py +0 -0
  710. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/explorer/entity_ids_test.py +0 -0
  711. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/explorer/explorer_app_test.py +0 -0
  712. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugin_inventory_test.py +0 -0
  713. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugin_requirements_test.py +0 -0
  714. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugin_settings_test.py +0 -0
  715. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugins_test.py +0 -0
  716. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/__init__.py +0 -0
  717. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/compose_host_port_publish_test.py +0 -0
  718. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/__init__.py +0 -0
  719. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/env_provider_test.py +0 -0
  720. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/__init__.py +0 -0
  721. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/fakes.py +0 -0
  722. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/test_config_state_providers.py +0 -0
  723. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/test_env_state_provider.py +0 -0
  724. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/__init__.py +0 -0
  725. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/attribution_wire_test.py +0 -0
  726. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/e2b_sandbox_provider_test.py +0 -0
  727. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/e2b_template_test.py +0 -0
  728. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/egress_hosts_test.py +0 -0
  729. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/local_sandbox_host_ports_test.py +0 -0
  730. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_create_signature_test.py +0 -0
  731. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_gpu_sandbox_test.py +0 -0
  732. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_network_policy_test.py +0 -0
  733. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_network_policy_wiring_test.py +0 -0
  734. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_sandbox_started_log_test.py +0 -0
  735. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_sandbox_tags_test.py +0 -0
  736. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_sandbox_test.py +0 -0
  737. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_vm_sandbox_test.py +0 -0
  738. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/network_policy_providers_test.py +0 -0
  739. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/network_policy_stamping_test.py +0 -0
  740. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/network_policy_test.py +0 -0
  741. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sail_vm_model_key_test.py +0 -0
  742. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sail_vm_sandbox_provider_test.py +0 -0
  743. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sail_vm_sandbox_test.py +0 -0
  744. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sandbox_provider_test.py +0 -0
  745. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/test_config_sandbox_providers.py +0 -0
  746. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/test_reachability_contributions.py +0 -0
  747. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/test_url_rewrites.py +0 -0
  748. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/vm_file_transfer_test.py +0 -0
  749. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/vm_object_push_test.py +0 -0
  750. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/runner/__init__.py +0 -0
  751. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/runner/local_runner_test.py +0 -0
  752. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/runner/run_store_test.py +0 -0
  753. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/__init__.py +0 -0
  754. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/cli.json +0 -0
  755. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/docker_image.json +0 -0
  756. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/environment.json +0 -0
  757. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/environment_universe.json +0 -0
  758. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/file.json +0 -0
  759. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/file_artifact_universe.json +0 -0
  760. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/skill.json +0 -0
  761. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/gateway_server.json +0 -0
  762. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/mcp_server.json +0 -0
  763. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/multi.json +0 -0
  764. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/service_db.json +0 -0
  765. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/website.json +0 -0
  766. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/test_golden_wire_format.py +0 -0
  767. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/__init__.py +0 -0
  768. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/__init__.py +0 -0
  769. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/aws_secret_store_test.py +0 -0
  770. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/conftest.py +0 -0
  771. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/dynamodb_document_store_test.py +0 -0
  772. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/dynamodb_step_journal_test.py +0 -0
  773. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/ecr_image_store_test.py +0 -0
  774. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/s3_grant_lifetime_test.py +0 -0
  775. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/s3_object_store_test.py +0 -0
  776. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/s3_transfer_grants_test.py +0 -0
  777. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/test_secret_logging.py +0 -0
  778. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/test_shared_credentials.py +0 -0
  779. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/derived_ids_test.py +0 -0
  780. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/fake_object_store_test.py +0 -0
  781. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/fakes.py +0 -0
  782. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/firestore_mongo_document_store_test.py +0 -0
  783. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/gcp_secret_manager_secret_store_test.py +0 -0
  784. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/gcs_object_store_test.py +0 -0
  785. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/google_credentials_test.py +0 -0
  786. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/google_transport_test.py +0 -0
  787. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/grant_lifetime_test.py +0 -0
  788. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/ids_test.py +0 -0
  789. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_backends_composition_test.py +0 -0
  790. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_grant_server_test.py +0 -0
  791. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_id_acceptance_test.py +0 -0
  792. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_object_store_test.py +0 -0
  793. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_registry_image_store_test.py +0 -0
  794. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_secret_store_test.py +0 -0
  795. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_tls_test.py +0 -0
  796. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_tokens_test.py +0 -0
  797. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/mongo_document_store_test.py +0 -0
  798. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/oci_registry_credentials_test.py +0 -0
  799. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/oci_registry_image_store_test.py +0 -0
  800. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/readable_url_test.py +0 -0
  801. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/registry_api_test.py +0 -0
  802. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/routing_test.py +0 -0
  803. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/sqlite_document_store_test.py +0 -0
  804. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_document_store.py +0 -0
  805. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_image_store.py +0 -0
  806. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_model.py +0 -0
  807. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_mongo_client.py +0 -0
  808. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_object_store.py +0 -0
  809. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_secret_bundle_keys.py +0 -0
  810. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_secret_store.py +0 -0
  811. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_document_store.py +0 -0
  812. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_object_transfer_grants.py +0 -0
  813. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_task_instance_indexes.py +0 -0
  814. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/version_lookup_benchmark_test.py +0 -0
  815. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/__init__.py +0 -0
  816. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/batch_universe_ids_test.py +0 -0
  817. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/benchmark_test.py +0 -0
  818. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/depends_on_test.py +0 -0
  819. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/local_run_write_fence_test.py +0 -0
  820. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/step_journal_rules_test.py +0 -0
  821. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/step_journal_test.py +0 -0
  822. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/task_document_test.py +0 -0
  823. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/task_failure_write_retry_test.py +0 -0
  824. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/task_instance_reads_test.py +0 -0
  825. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/teardown_test.py +0 -0
  826. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/__init__.py +0 -0
  827. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/attribution_serialization_test.py +0 -0
  828. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/capture_stubs.py +0 -0
  829. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/context_ops_journal_test.py +0 -0
  830. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_agent_cleanup_test.py +0 -0
  831. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_agent_test.py +0 -0
  832. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_env_test.py +0 -0
  833. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_human_agent_test.py +0 -0
  834. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_sandbox_network_policy_test.py +0 -0
  835. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_sandbox_provider_override_test.py +0 -0
  836. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/install_agent_guards_test.py +0 -0
  837. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/install_agent_test.py +0 -0
  838. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/local_step_containers_test.py +0 -0
  839. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/prompt_agent_file_parts_test.py +0 -0
  840. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/retry_test.py +0 -0
  841. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/run_context_object_url_test.py +0 -0
  842. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/run_docker_container_test.py +0 -0
  843. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/skill_object_url_test.py +0 -0
  844. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/snapshot_env_upload_grant_test.py +0 -0
  845. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/stored_priority_test.py +0 -0
  846. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/stored_s3_form_fields_test.py +0 -0
  847. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/sync_env_clock_test.py +0 -0
  848. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_agent_model_precedence.py +0 -0
  849. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_agent_state_capture.py +0 -0
  850. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_apply_server_config.py +0 -0
  851. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_artifacts.py +0 -0
  852. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_artifacts_universe_suffix.py +0 -0
  853. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_artifacts_vm_host.py +0 -0
  854. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_integrity.py +0 -0
  855. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_combine_universe_verdicts.py +0 -0
  856. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_config_task_steps.py +0 -0
  857. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_container_sandbox_routing.py +0 -0
  858. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_changelog_objects.py +0 -0
  859. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_enable_docker.py +0 -0
  860. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_live_endpoint.py +0 -0
  861. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_mcp_alias.py +0 -0
  862. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_snapshot_objects.py +0 -0
  863. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_ttl_from_budget.py +0 -0
  864. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_entity_refs.py +0 -0
  865. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_install_agent_registers_instance.py +0 -0
  866. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_agent_container_target.py +0 -0
  867. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_container_sandbox.py +0 -0
  868. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_env_binding.py +0 -0
  869. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_file.py +0 -0
  870. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_overrides.py +0 -0
  871. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_service_payload.py +0 -0
  872. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_service_universe.py +0 -0
  873. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_snapshot_reporting.py +0 -0
  874. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_url_filenames.py +0 -0
  875. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_vm_target.py +0 -0
  876. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_manifest_cli_builder.py +0 -0
  877. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_mcp_cli_builder.py +0 -0
  878. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_modify_env_tool_access.py +0 -0
  879. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_parallel_deploy_env_binding.py +0 -0
  880. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent.py +0 -0
  881. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_human_default.py +0 -0
  882. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_model_params.py +0 -0
  883. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_snapshots.py +0 -0
  884. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_triggers.py +0 -0
  885. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_unreachable.py +0 -0
  886. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_user_model.py +0 -0
  887. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_register_agent_triggers.py +0 -0
  888. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_register_env_triggers.py +0 -0
  889. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_reset_env.py +0 -0
  890. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_review.py +0 -0
  891. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_run_code.py +0 -0
  892. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_sandbox_utils_agent_container.py +0 -0
  893. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_sandbox_utils_logs.py +0 -0
  894. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_snapshot_agent_state.py +0 -0
  895. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_snapshot_env.py +0 -0
  896. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_snapshot_env_env_binding.py +0 -0
  897. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_teardown_sandboxes.py +0 -0
  898. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_universe_comparison.py +0 -0
  899. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_validation_gate_aggregator.py +0 -0
  900. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_a2a_agent_mcp.py +0 -0
  901. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_spec_conformance.py +0 -0
  902. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_universe_agent_judge.py +0 -0
  903. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_universe_roundtrip.py +0 -0
  904. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/thread_work_test.py +0 -0
  905. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/__init__.py +0 -0
  906. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_short_keys_test.py +0 -0
  907. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/__init__.py +0 -0
  908. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_frame_selection.py +0 -0
  909. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_frame_selection_tool_name.py +0 -0
  910. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_judge_output_format.py +0 -0
  911. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_trajectory_filter.py +0 -0
  912. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/run_container_unit_tests_verifier_test.py +0 -0
  913. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_env_outcome_verifier_step.py +0 -0
  914. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_criteria_override.py +0 -0
  915. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_retry.py +0 -0
  916. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_teardown.py +0 -0
  917. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_timeout.py +0 -0
  918. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_trajectory.py +0 -0
  919. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_mistakes_entry.py +0 -0
  920. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_multiturn.py +0 -0
  921. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_per_criterion.py +0 -0
  922. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_screenshots.py +0 -0
  923. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_score_parity.py +0 -0
  924. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_trajectory_mistakes_format.py +0 -0
  925. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_verify_sandbox.py +0 -0
  926. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_capabilities.py +0 -0
  927. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_check_plugin_api.py +0 -0
  928. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_check_skip_policy.py +0 -0
  929. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_clean_install_wheel.py +0 -0
  930. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_client_identity.py +0 -0
  931. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_optional_extras_stay_optional.py +0 -0
  932. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_runtime_dependencies_are_imported.py +0 -0
  933. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_tls_verification.py +0 -0
  934. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/__init__.py +0 -0
  935. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/build_context_test.py +0 -0
  936. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/docker_build_test.py +0 -0
  937. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/exec_retry_test.py +0 -0
  938. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/test_card_naming_github_token.py +0 -0
  939. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/test_paths.py +0 -0
  940. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/__init__.py +0 -0
  941. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/a2a_test_agent.py +0 -0
  942. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/capabilities.py +0 -0
  943. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/config.py +0 -0
  944. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/exec_scripts.py +0 -0
  945. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/fake_a2a.py +0 -0
  946. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/granting_object_store.py +0 -0
  947. {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/image_cache.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agentenv-framework
3
- Version: 0.9.1302
3
+ Version: 0.9.1303
4
4
  Summary: SDK and CLI for building, deploying and running agent environments and the tasks that grade agents in them.
5
5
  Project-URL: Homepage, https://www.agentenvframework.com
6
6
  Project-URL: Documentation, https://www.agentenvframework.com/docs
@@ -29,7 +29,7 @@ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
29
29
  Classifier: Typing :: Typed
30
30
  Requires-Python: >=3.11
31
31
  Requires-Dist: a2a-sdk==0.3.26
32
- Requires-Dist: agentenv-framework-protocol==0.1.317
32
+ Requires-Dist: agentenv-framework-protocol==0.1.318
33
33
  Requires-Dist: certifi>=2024.2.2
34
34
  Requires-Dist: click>=8.0.0
35
35
  Requires-Dist: cryptography>=42
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agentenv-framework-protocol"
3
- version = "0.1.317"
3
+ version = "0.1.318"
4
4
  description = "Open data-plane protocol and server SDK for agent environments."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentenv-framework"
7
- version = "0.9.1302"
7
+ version = "0.9.1303"
8
8
  description = "SDK and CLI for building, deploying and running agent environments and the tasks that grade agents in them."
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -29,7 +29,7 @@ classifiers = [
29
29
  "Typing :: Typed",
30
30
  ]
31
31
  dependencies = [
32
- "agentenv-framework-protocol==0.1.317",
32
+ "agentenv-framework-protocol==0.1.318",
33
33
  "certifi>=2024.2.2", # the public roots the local transfer CA's trust bundle carries
34
34
  "click>=8.0.0",
35
35
  "cryptography>=42", # the local transfer CA
@@ -33,6 +33,8 @@ from agent_env.providers.sandbox_providers.local_sandbox import (
33
33
  local_grant_trust,
34
34
  start_trusting,
35
35
  )
36
+ from agent_env.providers.sandbox_providers.chained_sandbox_provider import ChainedSandboxProvider
37
+ from agent_env.providers.sandbox_providers.modal_sandbox import ModalSandboxProvider
36
38
  from agent_env.providers.sandbox_providers.sandbox_provider import all_sandbox_container_env, all_sandbox_url_rewrites
37
39
  from agent_env.attribution import Attribution
38
40
 
@@ -431,6 +433,14 @@ class A2AAgent:
431
433
 
432
434
  merged_env = await asyncio.to_thread(self._build_merged_env, resolved_env, a2a_port)
433
435
  image_name = self.docker_image_artifact.image_name
436
+ if problem := self.docker_image_artifact.by_name_problem():
437
+ if provider is None and sandbox.mode != SANDBOX_MODE_VM:
438
+ raise ValueError(f"Can't deploy agent {self.id!r} on the container sandbox {sandbox.sandbox_id!r}, which "
439
+ f"runs its own image, never the agent's: {problem}")
440
+ links = provider.providers if isinstance(provider, ChainedSandboxProvider) else [provider] if provider else []
441
+ if by_name := [link for link in links if isinstance(link, (LocalSandboxProvider, ModalSandboxProvider))]:
442
+ raise ValueError(f"Can't deploy agent {self.id!r} with {type(by_name[0]).__name__}, which runs an "
443
+ f"agent's image by name: {problem}")
434
444
 
435
445
  try:
436
446
  if provider is not None:
@@ -264,20 +264,31 @@ class DockerImageArtifact(Artifact):
264
264
  def load(self) -> bytes:
265
265
  from agent_env.artifact.store import get_artifact_store
266
266
  if not self.tar_gz_object_url:
267
- raise ValueError(self.load_problem() or f"{self.id!r} v{self.version} has no tar.gz; its image is pulled "
268
- f"from {self.image_name}")
267
+ how = "built from its build context" if self.context_only else f"pulled from {self.image_name}"
268
+ raise ValueError(f"{self.id!r} v{self.version} has no tar.gz; its image is {how}")
269
269
  return get_artifact_store().get_object(self.tar_gz_object_url)
270
270
 
271
+ @property
272
+ def context_only(self) -> bool:
273
+ """Whether only the image's build context is stored: no tar.gz, and an image name that names no registry, the
274
+ tag a VM sandbox gives the image when it builds it."""
275
+ return bool(self.build_context_object_url) and not self.tar_gz_object_url and not names_registry(self.image_name)
276
+
271
277
  def load_problem(self) -> str | None:
272
- """Why no sandbox can get this image, or None when one can: a tar.gz is loaded, and with none, ``image_name``
273
- is pulled, so it must name its registry. One registered by its build context alone isn't built yet."""
274
- if self.tar_gz_object_url or names_registry(self.image_name):
278
+ """Why no VM sandbox can get this image, or None when one can: a tar.gz is loaded, an image with none is pulled
279
+ when its name names a registry, and built from its build context when it has only that."""
280
+ if self.tar_gz_object_url or names_registry(self.image_name) or self.context_only:
275
281
  return None
276
- if self.build_context_object_url:
277
- return f"{self.id!r} v{self.version} is only a build context, and sandboxes don't build images from one yet"
278
282
  return (f"{self.id!r} v{self.version} has no tar.gz, and its image name {self.image_name!r} doesn't name a "
279
283
  "registry to pull it from")
280
284
 
285
+ def by_name_problem(self) -> str | None:
286
+ """Why a sandbox that runs an image by pulling its name can't run this one, or None when it can: a context-only
287
+ image's name is a tag only a VM sandbox's build gives it, and pulled, it would be looked up on Docker Hub."""
288
+ if self.context_only:
289
+ return f"{self.id!r} v{self.version} is only a build context, which only a VM sandbox builds"
290
+ return None
291
+
281
292
  @classmethod
282
293
  async def put_from_github(
283
294
  cls,
@@ -96,6 +96,7 @@ class _Image:
96
96
  what: str
97
97
  local_only: str | None # why only this machine has it, or None
98
98
  unloadable: str | None = None # why no sandbox can get it, or None
99
+ by_name: str | None = None # why a sandbox that runs it by pulling its name can't, or None
99
100
 
100
101
 
101
102
  @dataclass(frozen=True)
@@ -183,6 +184,10 @@ class _Walk:
183
184
  if GATEWAY in kinds and (loaders := [link for link in _links(provider)
184
185
  if not isinstance(link, ModalSandboxProvider)]):
185
186
  self._loadable(where, loaders, images) # a gateway VM loads its images; Modal's runs each by name
187
+ # A lone server runs in a container from its image's name on any provider; a gateway does on Modal.
188
+ by_name = ([link for link in _links(provider) if isinstance(link, ModalSandboxProvider)] if GATEWAY in kinds
189
+ else _links(provider))
190
+ self._by_name(where, by_name, images)
186
191
  if _local_link(provider):
187
192
  self.infra |= kinds
188
193
  self.docker_users.append(where)
@@ -291,12 +296,14 @@ class _Walk:
291
296
  if agent_id is None:
292
297
  self.default_agent_users.append((where, unnamed))
293
298
  agent_id = get_config().get_default_a2a_agent_id()
294
- loaders = [link for link in _links(provider) if not isinstance(link, (LocalSandboxProvider, ModalSandboxProvider))]
299
+ by_name = [link for link in _links(provider) if isinstance(link, (LocalSandboxProvider, ModalSandboxProvider))]
300
+ loaders = [link for link in _links(provider) if link not in by_name] # by_name run an agent in a container
295
301
  remote = _remote_links(provider)
296
- if not (loaders or remote) or (image := self._agent_image(agent_id, version)) is None:
302
+ if (image := self._agent_image(agent_id, version)) is None:
297
303
  return
298
304
  if loaders:
299
- self._loadable(where, loaders, [image]) # those two run an agent in a container, by image name
305
+ self._loadable(where, loaders, [image])
306
+ self._by_name(where, by_name, [image])
300
307
  if remote:
301
308
  self._reachable(where, remote, [image])
302
309
 
@@ -340,6 +347,15 @@ class _Walk:
340
347
  self._problem(where, f"deploys {image.what} on the {_shown(loaders[0])} sandbox provider, which can't "
341
348
  f"load it: {image.unloadable}")
342
349
 
350
+ def _by_name(self, where: str, links: list[SandboxProvider], images: list[_Image]) -> None:
351
+ """Refuse each of ``images`` a sandbox on ``links`` can't run: it pulls an image by its name, and a context-only
352
+ image's name is a tag only a VM sandbox's build gives it."""
353
+ for image in images:
354
+ if links and image.by_name:
355
+ self._problem(where, f"deploys {image.what} on the {_shown(links[0])} sandbox provider, which runs it "
356
+ f"by name: {image.by_name}; run it on a provider whose VMs build it, such as "
357
+ "--sandbox modal_vm")
358
+
343
359
  def _reachable(self, where: str, remote: list[SandboxProvider], images: list[_Image]) -> None:
344
360
  for image in images:
345
361
  if image.local_only:
@@ -361,6 +377,8 @@ class _Walk:
361
377
  images = [_image(f"the {kind} env {env_id!r}'s image {image.id!r}", image) for image in artifacts]
362
378
  if not isinstance(provider, ModalSandboxProvider): # whose containers run by name, or are swapped out
363
379
  self._loadable(where, [provider], images)
380
+ else:
381
+ self._by_name(where, [provider], images)
364
382
  self._reachable(where, [provider], images)
365
383
 
366
384
  def _default_agent(self) -> None:
@@ -439,7 +457,7 @@ def _name(provider: SandboxProvider) -> str:
439
457
 
440
458
 
441
459
  def _image(what: str, image: DockerImageArtifact) -> _Image:
442
- return _Image(what, _local_only(image), image.load_problem())
460
+ return _Image(what, _local_only(image), image.load_problem(), image.by_name_problem())
443
461
 
444
462
 
445
463
  def _local_only(image: DockerImageArtifact | str) -> str | None:
@@ -836,6 +836,9 @@ COMPOSE_EOF'''
836
836
 
837
837
  config = get_config()
838
838
  gateway_env = Env.get(config.default_gateway_env_id)
839
+ if problems := [problem for image in [gateway_env.docker_image_artifact, *mcp_server_images]
840
+ if (problem := image.by_name_problem())]:
841
+ raise ValueError(f"Can't deploy on Modal, whose gateway runs each image by name: {'; '.join(problems)}")
839
842
 
840
843
  i6pn_kwargs = {"i6pn": True, "region": config.modal_default_region} if isinstance(sandbox_provider, ModalSandboxProvider) else {}
841
844
  deploy = _ContainerDeploy(
@@ -67,6 +67,8 @@ class EnvironmentServerProvider(_SandboxEnvironmentProvider):
67
67
  from agent_env.env.envs.mcp_server import MCPServerEnv
68
68
 
69
69
  name = env.environment_name
70
+ if problem := env.docker_image_artifact.by_name_problem():
71
+ raise ValueError(f"Can't deploy {name!r} as a server, which runs its image by name: {problem}")
70
72
  server = await sandbox_provider.create_container(
71
73
  image_name=env.docker_image_artifact.image_name,
72
74
  port=AGENT_ENV_GATEWAY_MCP_PORT,
@@ -13,10 +13,12 @@ import asyncio
13
13
  import logging
14
14
  import shlex
15
15
  import time
16
+ import weakref
16
17
  from collections.abc import Iterable
17
18
  from typing import TYPE_CHECKING, Any
18
19
  from urllib.parse import urlparse
19
20
 
21
+ from agent_env.config import get_config
20
22
  from agent_env.providers.sandbox_providers.sandbox import NetworkMode, NetworkPolicy, VmSandbox
21
23
  from agent_env.providers.sandbox_providers.sandbox_provider import SANDBOX_MODE_VM
22
24
 
@@ -28,6 +30,13 @@ logger = logging.getLogger(__name__)
28
30
  E2B_ALL_TRAFFIC = "0.0.0.0/0"
29
31
 
30
32
 
33
+ # One lock per E2B sandbox in each event loop, held to widen its egress policy, so concurrent downloads don't each widen
34
+ # a stale copy and drop the other's host.
35
+ _policy_locks: weakref.WeakValueDictionary[tuple[asyncio.AbstractEventLoop, str], asyncio.Lock] = (
36
+ weakref.WeakValueDictionary()
37
+ )
38
+
39
+
31
40
  class _BytesReader:
32
41
  """The small ``StreamReader`` subset consumed by ``Sandbox.exec_with_output``."""
33
42
 
@@ -312,15 +321,30 @@ class E2BSandbox(VmSandbox):
312
321
  return
313
322
 
314
323
  signed_urls = await self._signed_image_urls(artifacts)
315
- signed_hosts = {
316
- parsed.hostname
317
- for signed_url in signed_urls
318
- if signed_url and (parsed := urlparse(signed_url)).hostname
319
- }
320
- if signed_hosts:
321
- await self.apply_network_policy(policy.with_hosts(sorted(signed_hosts)))
324
+ await self._allow_download_hosts(signed_urls)
322
325
  await self._load_docker_images(artifacts, signed_urls)
323
326
 
327
+ async def _download_object_to_vm(self, object_url: str, vm_path: str) -> None:
328
+ """Download an object after adding its signed-download host to a restrictive policy, as image tarballs are: a
329
+ build context is fetched this way before a build in the VM. A reconnected sandbox, whose policy is unknown,
330
+ downloads as before."""
331
+ policy = self.network_policy
332
+ if policy is not None and policy.restricts_egress:
333
+ signed = await asyncio.to_thread(get_config().get_object_store_at(object_url).signed_get_url, object_url)
334
+ await self._allow_download_hosts([signed])
335
+ await super()._download_object_to_vm(object_url, vm_path)
336
+
337
+ async def _allow_download_hosts(self, signed_urls: list[str | None]) -> None:
338
+ """Add the hosts of ``signed_urls`` to a restrictive applied policy, reading the policy under the sandbox's
339
+ lock, so a concurrent download's host isn't dropped."""
340
+ hosts = {parsed.hostname for url in signed_urls if url and (parsed := urlparse(url)).hostname}
341
+ if not hosts:
342
+ return
343
+ async with _policy_locks.setdefault((asyncio.get_running_loop(), self.sandbox_id), asyncio.Lock()):
344
+ policy = self.network_policy
345
+ if policy is not None and policy.restricts_egress and not hosts <= set(policy.allow_hosts):
346
+ await self.apply_network_policy(policy.with_hosts(sorted(hosts)))
347
+
324
348
  @classmethod
325
349
  async def reconnect(
326
350
  cls,
@@ -23,6 +23,7 @@ from typing import IO, TYPE_CHECKING, Any, AsyncIterator, Callable, Iterable, Op
23
23
 
24
24
  from agent_env.config import get_config
25
25
  from agent_env.store.image_store.oci_registry_credentials import registry_host_from_ref
26
+ from agent_env.utils.docker_build import DEFAULT_BUILD_PLATFORM
26
27
  from agent_env.utils.paths import validate_relative_filename
27
28
 
28
29
  if TYPE_CHECKING:
@@ -279,16 +280,54 @@ class VmSandbox(Sandbox):
279
280
  )
280
281
 
281
282
  async def load_docker_images(self, artifacts: list) -> None:
282
- """Put each DockerImageArtifact's image on the VM: those with a tar.gz are loaded from it, in parallel, and the
283
- rest are pulled by image name. An image no sandbox can get is refused before anything is loaded."""
283
+ """Put each DockerImageArtifact's image on the VM: those with a tar.gz are loaded from it, in parallel, those
284
+ with only a build context are built from it, and the rest are pulled by image name. An image no sandbox can get
285
+ is refused before anything is loaded."""
284
286
  if not artifacts:
285
287
  return
286
288
  if problems := [problem for artifact in artifacts if (problem := artifact.load_problem())]:
287
289
  raise RuntimeError(f"Can't load images: {'; '.join(problems)}")
288
290
  if tarballs := [artifact for artifact in artifacts if artifact.tar_gz_object_url]:
289
291
  await self._load_tarballs(tarballs)
290
- if pulled := [artifact.image_name for artifact in artifacts if not artifact.tar_gz_object_url]:
292
+ if pulled := [artifact.image_name for artifact in artifacts
293
+ if not artifact.tar_gz_object_url and not artifact.context_only]:
291
294
  await self.pull_images(pulled)
295
+ if built := [artifact for artifact in artifacts if artifact.context_only]:
296
+ await self.build_images(built)
297
+
298
+ async def build_images(self, artifacts: list) -> None:
299
+ """Build each context-only image from its build context, one build at a time, so heavy builds don't contend
300
+ for one VM; images with the same ``source_digest`` share a build. The build pulls its base images and packages
301
+ itself, so a network policy restricting egress must allow them; only the context's download is let through."""
302
+ builds: dict[str, list] = {}
303
+ for artifact in artifacts:
304
+ builds.setdefault(artifact.source_digest or artifact.build_context_object_url, []).append(artifact)
305
+ for source, images in builds.items():
306
+ await self._build_image(source, images)
307
+
308
+ async def _build_image(self, source: str, images: list) -> None:
309
+ """Download the context ``images`` share, extract it, and ``docker build`` it, tagged with each image's name."""
310
+ first = images[0]
311
+ names = list(dict.fromkeys(image.image_name for image in images))
312
+ work = f"/tmp/agent-env-build-{hashlib.sha256(source.encode()).hexdigest()[:16]}"
313
+ platform = first.platform or DEFAULT_BUILD_PLATFORM
314
+ tags = " ".join(f"-t {shlex.quote(name)}" for name in names)
315
+ logger.info(f"Building {', '.join(names)} from its build context, for {platform}...")
316
+ await self.exec_script(f"rm -rf {work} && mkdir -p {work}/context")
317
+ try:
318
+ await self.load_object_file(first.build_context_object_url, f"{work}/context.tar.gz")
319
+ await self.exec_script(
320
+ f"tar -xzf {work}/context.tar.gz -C {work}/context && cd {work}/context && "
321
+ f"docker build --platform {shlex.quote(platform)} -f {shlex.quote(first.dockerfile_path or 'Dockerfile')} "
322
+ f"{tags} ."
323
+ )
324
+ except RuntimeError as e:
325
+ raise RuntimeError(f"Building {', '.join(names)} from its build context failed: {e}") from e
326
+ finally:
327
+ try:
328
+ await self.exec_script(f"rm -rf {work}")
329
+ except Exception as e: # the VM may be gone; the folder goes with it
330
+ logger.warning(f"Could not remove {work} on {self.sandbox_id}: {e}")
292
331
 
293
332
  async def _load_tarballs(self, artifacts: list) -> None:
294
333
  """Load the images of ``artifacts``, each with a tar.gz, in parallel."""
@@ -0,0 +1,67 @@
1
+ """An agent whose image is only a build context deploys only where a VM builds it: a provider that runs an agent in a
2
+ container by its image's name refuses it before creating anything."""
3
+
4
+ import pytest
5
+
6
+ from agent_env.a2a_agent.a2a_agent import A2AAgent
7
+ from agent_env.artifact.artifacts.docker_image import DockerImageArtifact
8
+ from agent_env.providers.sandbox_providers import sandbox_provider
9
+ from agent_env.providers.sandbox_providers.chained_sandbox_provider import ChainedSandboxProvider
10
+ from agent_env.providers.sandbox_providers.local_sandbox import LocalSandboxProvider
11
+ from agent_env.providers.sandbox_providers.sandbox_provider import SandboxProvider
12
+
13
+
14
+ class _Created(Exception):
15
+ """Raised by a fake provider once asked for a sandbox, which is as far as a test needs to go."""
16
+
17
+
18
+ class _LocalProvider(LocalSandboxProvider):
19
+ async def create_sandbox(self, **_):
20
+ raise AssertionError("an image that is only a build context was run by name")
21
+
22
+
23
+ class _VmProvider(SandboxProvider):
24
+ async def create_sandbox(self, **_):
25
+ raise _Created
26
+
27
+
28
+ IMAGE = DockerImageArtifact(id="solver-image", version=2, description="d", image_name="local/solver-0123456789ab:v2",
29
+ build_context_object_url="s3://bucket/ctx.tar.gz")
30
+
31
+
32
+ @pytest.fixture
33
+ def litellm(monkeypatch):
34
+ monkeypatch.setenv("LITELLM_API_KEY", "k")
35
+ monkeypatch.setenv("LITELLM_BASE_URL", "http://litellm.example/v1")
36
+
37
+
38
+ @pytest.mark.asyncio
39
+ @pytest.mark.parametrize("provider", [_LocalProvider(), ChainedSandboxProvider([_VmProvider(), _LocalProvider()])],
40
+ ids=["local", "chain-with-local"])
41
+ async def test_a_provider_that_runs_the_agent_by_name_refuses_it(monkeypatch, local_stores, litellm, provider):
42
+ monkeypatch.setattr(sandbox_provider, "build_sandbox_provider", lambda name: provider)
43
+
44
+ with pytest.raises(ValueError, match="Can't deploy agent 'solver' with _LocalProvider, which runs an agent's image by "
45
+ "name: 'solver-image' v2 is only a build context, which only a VM sandbox builds"):
46
+ await A2AAgent(id="solver", version=1, docker_image_artifact=IMAGE).deploy(sandbox_type="any")
47
+
48
+
49
+ @pytest.mark.asyncio
50
+ async def test_a_vm_provider_is_asked_for_a_sandbox(monkeypatch, local_stores, litellm):
51
+ monkeypatch.setattr(sandbox_provider, "build_sandbox_provider", lambda name: _VmProvider())
52
+
53
+ with pytest.raises(_Created):
54
+ await A2AAgent(id="solver", version=1, docker_image_artifact=IMAGE).deploy(sandbox_type="any")
55
+
56
+
57
+ class _ContainerSandbox:
58
+ sandbox_id = "sb-container"
59
+ mode = "container"
60
+ tunnel_urls = {}
61
+
62
+
63
+ @pytest.mark.asyncio
64
+ async def test_an_existing_container_sandbox_refuses_it_since_it_never_runs_the_agents_image(local_stores, litellm):
65
+ with pytest.raises(ValueError, match="Can't deploy agent 'solver' on the container sandbox 'sb-container', which runs its "
66
+ "own image, never the agent's: 'solver-image' v2 is only a build context"):
67
+ await A2AAgent(id="solver", version=1, docker_image_artifact=IMAGE).deploy(sandbox=_ContainerSandbox())
@@ -7,6 +7,7 @@ import types
7
7
  import pytest
8
8
 
9
9
  from agent_env.a2a_agent.a2a_agent import DEFAULT_A2A_PORT, A2AAgent
10
+ from agent_env.artifact.artifacts.docker_image import DockerImageArtifact
10
11
  from agent_env.providers.sandbox_providers import sandbox_provider
11
12
  from agent_env.providers.sandbox_providers.sandbox_provider import SANDBOX_MODE_CONTAINER
12
13
 
@@ -37,7 +38,7 @@ async def test_a_deploy_that_stops_waiting_for_its_card_closes_its_sandbox(monke
37
38
 
38
39
  monkeypatch.setattr(sandbox_provider, "build_sandbox_provider", lambda name: _Provider())
39
40
  monkeypatch.setattr(A2AAgent, "_wait_for_agent_card", wait_for_card)
40
- agent = A2AAgent(id="solver", version=1, docker_image_artifact=types.SimpleNamespace(image_name="img"))
41
+ agent = A2AAgent(id="solver", version=1, docker_image_artifact=DockerImageArtifact(id="img", description="d", image_name="img"))
41
42
  deploying = asyncio.ensure_future(agent.deploy(
42
43
  sandbox_type="fake", env_vars={"LITELLM_API_KEY": "k", "LITELLM_BASE_URL": "http://llm"}))
43
44
  await waiting.wait()
@@ -66,11 +66,12 @@ def test_equal_sources_give_equal_digests_and_bytes(local_stores, context):
66
66
  assert three.version == 2
67
67
 
68
68
 
69
- def test_a_context_only_image_says_why_no_sandbox_can_get_it_yet(local_stores, context):
69
+ def test_a_context_only_image_is_built_by_a_vm_and_refused_where_run_by_name(local_stores, context):
70
70
  image = DockerImageArtifact.put_context("a", description="d", context_path=str(context), dockerfile_path="Dockerfile")
71
71
 
72
- assert image.load_problem() == "'a' v1 is only a build context, and sandboxes don't build images from one yet"
73
- with pytest.raises(ValueError, match="is only a build context"):
72
+ assert image.context_only and image.load_problem() is None
73
+ assert image.by_name_problem() == "'a' v1 is only a build context, which only a VM sandbox builds"
74
+ with pytest.raises(ValueError, match="has no tar.gz; its image is built from its build context"):
74
75
  image.load()
75
76
 
76
77
 
@@ -197,6 +197,57 @@ def test_an_env_image_with_no_tarball_and_no_registry_is_refused_where_a_gateway
197
197
  assert [entry.name for entry in dry_run_bundle(bundle_dir, sandbox="modal").runs] == ["t"]
198
198
 
199
199
 
200
+ # Images with only a build context, which a VM sandbox builds and nothing else can run
201
+
202
+
203
+ def _context_image(id):
204
+ with namespace_routing():
205
+ return get_artifact_store().put_document(DockerImageArtifact(
206
+ id=id, description=id, image_name=f"local/{id}-0123456789ab:v1", build_context_object_url="s3://bucket/ctx.tar.gz",
207
+ dockerfile_path="Dockerfile", platform="linux/amd64", source_digest="sha256:" + "1" * 64))
208
+
209
+
210
+ BY_NAME = ("on the {sandbox!r} sandbox provider, which runs it by name: '{id}' v1 is only a build context, which only a "
211
+ "VM sandbox builds; run it on a provider whose VMs build it, such as --sandbox modal_vm")
212
+
213
+
214
+ @pytest.mark.parametrize("sandbox, refused", [("modal_vm", False), ("local", True), ("modal", True), ("modal_vm,local", True)])
215
+ def test_an_agent_image_that_is_only_a_build_context_runs_where_a_vm_builds_it(bundle_dir, sandbox, refused):
216
+ with namespace_routing():
217
+ A2AAgent.put(id="solver", docker_image_artifact=_context_image("solver-image"))
218
+ _task(bundle_dir, [AGENT])
219
+
220
+ if refused:
221
+ link = "local" if "local" in sandbox else sandbox
222
+ assert _problems(lambda: dry_run_bundle(bundle_dir, sandbox=sandbox)) == [
223
+ "tasks/t.json: step 'agent': deploys agent 'solver''s image "
224
+ + BY_NAME.format(sandbox=sandbox if link == sandbox else link, id="solver-image")]
225
+ else:
226
+ assert [entry.name for entry in dry_run_bundle(bundle_dir, sandbox=sandbox).runs] == ["t"]
227
+
228
+
229
+ def test_an_env_image_that_is_only_a_build_context_runs_on_a_gateway_vm_and_not_on_modals_containers(bundle_dir):
230
+ with namespace_routing():
231
+ MCPServerEnv.put(id="crm", docker_image_artifact=_context_image("crm-image"), environment_name="crm")
232
+ _task(bundle_dir, [{"id": "env", "type": "deploy_env", "env_id": "crm"}])
233
+
234
+ assert [entry.name for entry in dry_run_bundle(bundle_dir, sandbox="local").runs] == ["t"]
235
+ _infra(REMOTE)
236
+ assert _problems(lambda: dry_run_bundle(bundle_dir, sandbox="modal")) == [
237
+ "tasks/t.json: step 'env': deploys env 'crm''s image 'crm-image' " + BY_NAME.format(sandbox="modal", id="crm-image")]
238
+
239
+
240
+ @pytest.mark.parametrize("sandbox", ["local", "modal_vm"])
241
+ def test_a_lone_server_whose_image_is_only_a_build_context_is_refused_on_any_provider(bundle_dir, sandbox):
242
+ with namespace_routing():
243
+ MCPServerEnv.put(id="crm", docker_image_artifact=_context_image("crm-image"), environment_name="crm",
244
+ env_provider_type="server")
245
+ _task(bundle_dir, [{"id": "env", "type": "deploy_env", "env_id": "crm"}])
246
+
247
+ assert _problems(lambda: dry_run_bundle(bundle_dir, sandbox=sandbox)) == [
248
+ "tasks/t.json: step 'env': deploys env 'crm''s image 'crm-image' " + BY_NAME.format(sandbox=sandbox, id="crm-image")]
249
+
250
+
200
251
  # What a provider can create
201
252
 
202
253