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.
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/PKG-INFO +2 -2
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/pyproject.toml +1 -1
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/pyproject.toml +2 -2
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/a2a_agent.py +10 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/docker_image.py +18 -7
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/preflight.py +22 -4
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/env_gateway_provider.py +3 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/env_server_provider.py +2 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/sandbox.py +31 -7
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sandbox.py +42 -3
- agentenv_framework-0.9.1303/tst/unit/a2a_agent/context_only_deploy_test.py +67 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/deploy_cleanup_test.py +2 -1
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_build_context.py +4 -3
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/preflight_test.py +51 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/env_gateway_provider_test.py +43 -14
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/env_server_provider_test.py +15 -3
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/e2b_sandbox_test.py +55 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/local_sandbox_test.py +2 -2
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/vm_sandbox_test.py +86 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/local_container_urls_test.py +2 -1
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/check_clean_install.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/check_plugin_api.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/check_skip_policy.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.github/scripts/clean_install.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/.gitignore +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/LICENSE +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/NOTICE +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/README.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/THIRD_PARTY_NOTICES.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/LICENSE +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/NOTICE +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/README.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/THIRD_PARTY_NOTICES.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/advanced_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/basic_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/custom_extensions_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/multimodal_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/reference_model.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/examples/streaming_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/_triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/extensions.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/framework.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/registry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/staging.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/tasks/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/a2a_agent/tasks/v1.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/agent_env_environment.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/client.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/manifest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/preflight.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/transfers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/src/agentenv_protocol/types.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_agent_examples.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_object_transfers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_a2a_staging.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_agent_env_environment.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_client.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_data_objects.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_intake.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_manifest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/packages/agentenv-protocol/tests/test_preflight.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/conversation_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/object_transfer.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/protocol.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/staging.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/validator.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifact.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/cli.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/environment.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/environment_universe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/file.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/file_artifact_universe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/artifacts/skill.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/ref.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/registry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/artifact/universe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/attribution.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/_fs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/authoring.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/installed.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/ledger.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/materialize.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/parse.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/plan.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/resolve.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/run.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/__main__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/_installers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/_plugin_changes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/add_skill.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/deploy.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/get.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/get_instance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/put.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/a2a_agent/validate.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/cli.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/environment.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/environment_universe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/file_artifact_universe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/artifact/skill.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/banner.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/deploy.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/gateway.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/get_instance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/mcp_server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/multi.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/service_db.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/snapshot.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/state/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/state/init.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/state/teardown.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/website.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/env/website_browser.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/add_tasks.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/create.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/eval/run.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/identity/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/identity/client_identity.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/plugin.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/run.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/create.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/get.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/get_instance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/run.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/task/validate.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/teardown_output.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/up.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/cli/utils.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/describe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/errors.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/loader.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/model.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/paths.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/plugin_tables.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/provenance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/runtime.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/config/snapshot.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/entity_refs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/bootstrap.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/env_artifact_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/_deployment.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/gateway_server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/mcp_server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/multi_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db/Dockerfile.db-mcp +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db/Dockerfile.db-web +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/service_db.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website_browser/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website_browser/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/envs/website_browser/entrypoint.sh +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/clock.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/constants.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/entrypoint.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/gateway.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/get_time.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/requirements.txt +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/gateway/triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/legacy_protocol.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/registry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/snapshot_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/env/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/eval/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/eval/eval.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/eval/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/README.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/artifacts/greeting/check.sh +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/artifacts/greeting/hello.txt +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/examples/hello/tasks/hello.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/app.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/entity_ids.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/openapi_docs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/plugin.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/common.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/conversations.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/objects.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/runs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/routers/triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/.env.example +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/.gitignore +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/README.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/eslint.config.mjs +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/next-env.d.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/next.config.mjs +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/package-lock.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/package.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/postcss.config.mjs +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/prettier.config.js +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/android-chrome-192x192.png +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/android-chrome-512x512.png +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/apple-touch-icon.png +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/favicon.ico +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/favicon.svg +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/logos/agentenv-icon.svg +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/logos/claude.svg +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/logos/scale-logo.svg +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/public/site.webmanifest +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/scripts/run-smokes.mjs +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/advertised-agent-card.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/advertised-environment-card.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/agent-detail-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/agents-hub-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/backend-status-banner.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/conversations-panel.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/docs-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/env-detail-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/environments-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/flow-shared.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/home-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/mcp-env-validation-entry.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/peer-qna-panel.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/rollout-deep-link.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/rubric-grading-results.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/rubric-matrix.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/run-group-step-funnel.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/run-step-progress.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/server-config-panel.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/shared.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/start-runs-panel.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/step-attempt-failures.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/step-progress.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/steps-pipeline.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-detail-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-instance-viewer.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-runner-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/task-steps-shared.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/tasks-hub-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/trajectory-viewer.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/trigger-timeline.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/triggers-graph.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/triggers-panel.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/universe-detail-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/components/universes-page.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/env.mjs +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/hooks/useLiveTriggers.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/hooks/useRunGroupPolling.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/pages/[[...slug]].tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/pages/_app.tsx +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/styles/globals.css +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/styles/tokens.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/src/types/pptx-preview.d.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/tailwind.config.ts +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/explorer/ui/tsconfig.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_cli.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_discovery.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_inventory.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_registration.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_report.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/plugins/_requirements.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/constants.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_providers/env_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/env_state_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/local_postgres.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/env_state/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/chained_sandbox_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/e2b/template.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/local_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/modal_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/modal_vm_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/README.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/_sdk.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/model_key.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sail_vm/sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/providers/sandbox_providers/sandbox_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/py.typed +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/local_runner.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/runner.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/runner/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/_google.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/_lazy.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/base.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/dynamodb_document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/evaluation.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/firestore_mongo_document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/mongo_document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/document_store/sqlite_document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/ids.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/ecr_image_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/google_credentials.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/image_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/local_registry_image_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/oci_registry_credentials.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/image_store/registry_api.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/local_state.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/gcs_object_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/grant_server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/tls.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/local/tokens.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/object_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/object_store/s3_object_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/query.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/routing.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/aws_secrets_manager_secret_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/gcp_secret_manager_secret_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/local_secret_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/store/secret_store/secret_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/interrupts.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/registry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/step_journal.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/task.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task/teardown.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/context.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/context_ops.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/registry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/review_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/snapshot_utils/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/snapshot_utils/agent_state_capture.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/snapshot_utils/snapshot_series.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_step.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/a2a_agent_validator/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/add_skills.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/apply_server_config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/collect_artifacts.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_human_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/deploy_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/env_card_validator/__init__.py +0 -0
- {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
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/install_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/load_artifact.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_cli_builder/__init__.py +0 -0
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_cli_builder/codegen.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/mcp_env_validator/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/modify_env_tool_access.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/__init__.py +0 -0
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/multienv_validator/universe_comparison.py +0 -0
- {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
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/peer_agents.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/prompt_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/register_agent_triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/register_env_triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/reset_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/review.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/run_code.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/run_code_runner.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/run_docker_container.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/sandbox_utils/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/sandbox_utils/sandbox_utils.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/snapshot_agent_state.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/snapshot_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/sync_env_clock.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/teardown_sandboxes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/__init__.py +0 -0
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/aggregate_verifiers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/env_outcome_verifier.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/judge_utils/__init__.py +0 -0
- {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
- {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
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/rubrics_verifier.py +0 -0
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/scoring.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/task_steps/verifiers/verify_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/task_step/thread_work.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/build_context.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/build_metadata.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/card_naming.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/deprecation.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/docker_build.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/exec_retry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/utils/paths.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/explorer_reads.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/journal_union.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/task_graphs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/benchmarks/version_lookup.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/conftest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/a2a_agent/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/a2a_agent/agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_mcp/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_mcp/seed.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_mcp/server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_website/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/agentenv_website/server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/base_mcp/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/base_mcp/base_database.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/base_mcp/base_service.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/cardless_mcp/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/cardless_mcp/server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_artifact.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/database.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/email_service.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/generated_data.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/models.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/requirements.txt +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/email_mcp/sample_data.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/legacy_stub/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/legacy_stub/server.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/skills/sample_skill/SKILL.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/skills/sample_skill/references/notes.md +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/skills/sample_skill/scripts/hello.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/database.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/generated_data.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/models.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/requirements.txt +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/sample_data.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_mcp/slack_service.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/api/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/api/routes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/app.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/db_extensions.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/requirements.txt +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/backend/schemas.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/frontend/Dockerfile +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/slack_website/frontend/index.html +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/data/test_outcome_verifier.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/gateway/clock_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/task_step/deploy_env_resources_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/task_step/prompt_agent_parts_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/env/task_step/verify_a2a_modalities_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/conftest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/test_container_journey.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/test_plugin_changes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/test_wheel.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/installer/toys.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/a2a_agent_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/agent_triggers_e2e_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/agent/a2a_agent/conversation_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/conftest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/docker_image_artifact_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/environment_artifact_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/environment_universe_artifact_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/file_artifact_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/file_artifact_universe_artifact_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/artifact/artifacts/skill_artifact_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/cli_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/run_bundle_built_agents_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/run_bundle_built_envs_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/cli/run_bundle_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/custom_env_config_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/env_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/multi_env_local_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/server_env_local_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/server_env_modal_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/envs/service_db_changelog_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/gateway/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/gateway/gateway_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/task_steps_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/test_record_step_concurrency.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/env/task_step/test_task_instance_retry_resume.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/eval/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/eval/eval_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/sandbox_providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/sandbox_providers/e2b_sandbox_smoke_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/sandbox_providers/sail_vm_sandbox_smoke_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/providers/state/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_image_composition_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_parallel_deploy_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_registry_image_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/local_task_lifecycle_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/store/oci_registry_image_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/review_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_agent_on_local_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_container_sandbox_files_local.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_enable_docker_e2e.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_multiturn_verifier_delivery.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_prompt_agent_file_parts_local.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_run_code_named_sandbox_local.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_run_docker_container_local.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/integration/task_step/test_verify_sandbox_local.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/conformance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/image_conformance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/object_conformance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/store/secret_conformance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/task/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/task/journal_invariants.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/add_skill_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/negotiate_agent_config_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/object_transfer_reach_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/object_transfer_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/protocol_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/readable_parts_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/staging_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/test_validator_changelog_objects.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/test_validator_skill_variants.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/validator_trajectory_dag_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/validator_uri_probes_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/a2a_agent/verify_a2a_agent_card_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/registry_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_artifact_put.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_github_clone.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_github_push.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_pulled.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_docker_image_put_ref.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_object_url_keys.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_removed_service_aliases.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_service_artifact_alias.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_service_universe_file_view.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/artifact/test_store_put_document.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/attribution_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/_support.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/artifact_toml_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/authoring_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/conftest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/env_toml_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/file_artifacts_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/installed_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/ledger_digest_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/ledger_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/materialize_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/parse_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/plan_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/resolve_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/run_teardown_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/run_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/toml_refs_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/base_metadata_version_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/build_platform_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/card_naming_relocation_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/deploy_vm_sizing_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/deployed_env_output_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/env_provider_type_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/env_put_validation_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/env_state_type_parity_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/environment_name_alias_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/eval_run_teardown_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/check.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/check_broken.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/list.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/list_no_load.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/show.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/golden/plugin_report/show_bundles.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/image_ref_put_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/init_env_state_cli_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/load_artifact_target_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugin_command_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugin_install_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugin_report_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/plugins_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/sandbox_url_relocation_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/stage_free_commands_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/task_run_teardown_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/teardown_env_state_cli_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_release_gate_decision.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_removed_cli_aliases.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_spec_conformance_display.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/test_task_create_preflight.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/user_facing_errors_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/cli/write_context_filename_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_config_holds_its_document.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_config_profiles.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_default_a2a_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_describe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_explain_and_sources.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_fixture_prefix_keys.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_human_a2a_url.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_loader.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_model.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_no_stage_concept.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_one_document_per_process.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_paths.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_registry_builders_take_a_config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_reset_config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/config/test_unread_keys.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/conftest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/bootstrap_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/service_db/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/service_db/service_db_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_env_card_loads.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_env_close_teardown.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_environment_name_alias.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_mcp_server_container_mode.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_mcp_server_load.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_mcp_server_plugin_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_load_concurrency.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_load_resume.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_name.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_plugin_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_snapshot_bake.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_snapshot_guard.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_snapshot_reload_name.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_multi_env_vm_sizing.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_put_from_github_token.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/envs/test_website_env_name_alias.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/data_plane_timeout_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/env_trajectory_route_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/gateway_card_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/get_time_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/import_graph_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/rest_proxy_socket_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/rest_proxy_stream_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/role_rules_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/trajectory_virtual_time_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/triggers_ctx_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/triggers_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/gateway/triggers_time_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/deploy_agent_env_vars_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/test_context_ops.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/test_score_aggregator.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/verify_env_card_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/task_step/verify_env_core_protocol_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_legacy_protocol.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_registry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/env/test_snapshot_fingerprint.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/event_loop_probe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/explorer/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/explorer/entity_ids_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/explorer/explorer_app_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugin_inventory_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugin_requirements_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugin_settings_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/plugins_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/compose_host_port_publish_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_providers/env_provider_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/fakes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/test_config_state_providers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/env_state/test_env_state_provider.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/attribution_wire_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/e2b_sandbox_provider_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/e2b_template_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/egress_hosts_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/local_sandbox_host_ports_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_create_signature_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_gpu_sandbox_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_network_policy_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_network_policy_wiring_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_sandbox_started_log_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_sandbox_tags_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_sandbox_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/modal_vm_sandbox_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/network_policy_providers_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/network_policy_stamping_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/network_policy_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sail_vm_model_key_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sail_vm_sandbox_provider_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sail_vm_sandbox_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/sandbox_provider_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/test_config_sandbox_providers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/test_reachability_contributions.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/test_url_rewrites.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/vm_file_transfer_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/providers/sandbox_providers/vm_object_push_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/runner/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/runner/local_runner_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/runner/run_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/cli.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/docker_image.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/environment.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/environment_universe.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/file.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/file_artifact_universe.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/artifact/skill.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/gateway_server.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/mcp_server.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/multi.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/service_db.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/golden/env/website.json +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/serialization/test_golden_wire_format.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/aws_secret_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/conftest.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/dynamodb_document_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/dynamodb_step_journal_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/ecr_image_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/s3_grant_lifetime_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/s3_object_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/s3_transfer_grants_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/test_secret_logging.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/aws/test_shared_credentials.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/derived_ids_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/fake_object_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/fakes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/firestore_mongo_document_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/gcp_secret_manager_secret_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/gcs_object_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/google_credentials_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/google_transport_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/grant_lifetime_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/ids_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_backends_composition_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_grant_server_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_id_acceptance_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_object_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_registry_image_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_secret_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_tls_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/local_tokens_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/mongo_document_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/oci_registry_credentials_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/oci_registry_image_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/readable_url_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/registry_api_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/routing_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/sqlite_document_store_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_image_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_model.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_mongo_client.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_object_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_secret_bundle_keys.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_config_secret_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_document_store.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_object_transfer_grants.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/test_task_instance_indexes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/store/version_lookup_benchmark_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/batch_universe_ids_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/benchmark_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/depends_on_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/local_run_write_fence_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/step_journal_rules_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/step_journal_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/task_document_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/task_failure_write_retry_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/task_instance_reads_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task/teardown_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/attribution_serialization_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/capture_stubs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/context_ops_journal_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_agent_cleanup_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_agent_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_env_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_human_agent_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_sandbox_network_policy_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/deploy_sandbox_provider_override_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/install_agent_guards_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/install_agent_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/local_step_containers_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/prompt_agent_file_parts_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/retry_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/run_context_object_url_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/run_docker_container_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/skill_object_url_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/snapshot_env_upload_grant_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/stored_priority_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/stored_s3_form_fields_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/sync_env_clock_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_agent_model_precedence.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_agent_state_capture.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_apply_server_config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_artifacts.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_artifacts_universe_suffix.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_artifacts_vm_host.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_collect_integrity.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_combine_universe_verdicts.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_config_task_steps.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_container_sandbox_routing.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_changelog_objects.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_enable_docker.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_live_endpoint.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_mcp_alias.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_agent_snapshot_objects.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_deploy_ttl_from_budget.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_entity_refs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_install_agent_registers_instance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_agent_container_target.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_container_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_env_binding.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_file.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_overrides.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_service_payload.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_service_universe.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_snapshot_reporting.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_url_filenames.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_load_artifact_vm_target.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_manifest_cli_builder.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_mcp_cli_builder.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_modify_env_tool_access.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_parallel_deploy_env_binding.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_human_default.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_model_params.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_snapshots.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_unreachable.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_prompt_agent_user_model.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_register_agent_triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_register_env_triggers.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_reset_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_review.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_run_code.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_sandbox_utils_agent_container.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_sandbox_utils_logs.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_snapshot_agent_state.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_snapshot_env.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_snapshot_env_env_binding.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_teardown_sandboxes.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_universe_comparison.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_validation_gate_aggregator.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_a2a_agent_mcp.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_spec_conformance.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_universe_agent_judge.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/test_verify_universe_roundtrip.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/thread_work_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_short_keys_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_frame_selection.py +0 -0
- {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
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_judge_output_format.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/judge_utils/test_trajectory_filter.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/run_container_unit_tests_verifier_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_env_outcome_verifier_step.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_criteria_override.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_retry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_teardown.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_timeout.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_judge_trajectory.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_mistakes_entry.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_multiturn.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_per_criterion.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_rubrics_verifier_screenshots.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_score_parity.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_trajectory_mistakes_format.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/task_step/verifiers/test_verify_sandbox.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_capabilities.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_check_plugin_api.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_check_skip_policy.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_clean_install_wheel.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_client_identity.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_optional_extras_stay_optional.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_runtime_dependencies_are_imported.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/test_tls_verification.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/build_context_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/docker_build_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/exec_retry_test.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/test_card_naming_github_token.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/utils/test_paths.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/__init__.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/a2a_test_agent.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/capabilities.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/config.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/exec_scripts.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/fake_a2a.py +0 -0
- {agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/util/granting_object_store.py +0 -0
- {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.
|
|
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.
|
|
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
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentenv-framework"
|
|
7
|
-
version = "0.9.
|
|
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.
|
|
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
|
{agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/a2a_agent/a2a_agent.py
RENAMED
|
@@ -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
|
-
|
|
268
|
-
|
|
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,
|
|
273
|
-
|
|
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,
|
{agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/src/agent_env/bundle/preflight.py
RENAMED
|
@@ -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
|
-
|
|
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
|
|
302
|
+
if (image := self._agent_image(agent_id, version)) is None:
|
|
297
303
|
return
|
|
298
304
|
if loaders:
|
|
299
|
-
self._loadable(where, loaders, [image])
|
|
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
|
-
|
|
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,
|
|
283
|
-
rest are pulled by image name. An image no sandbox can get
|
|
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
|
|
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=
|
|
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
|
|
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()
|
|
73
|
-
|
|
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
|
|
{agentenv_framework-0.9.1302 → agentenv_framework-0.9.1303}/tst/unit/bundle/preflight_test.py
RENAMED
|
@@ -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
|
|