agentenv-framework-protocol 0.1.511__tar.gz → 0.1.513__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_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/PKG-INFO +1 -1
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/pyproject.toml +1 -1
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_session_windows.py +8 -3
- agentenv_framework_protocol-0.1.513/tests/test_computer_driver_keys.py +44 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_session_windows.py +25 -5
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/.gitignore +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/LICENSE +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/NOTICE +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/README.md +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/THIRD_PARTY_NOTICES.md +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/advanced_agent.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/basic_agent.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/custom_extensions_agent.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/multimodal_agent.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/reference_model.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/streaming_agent.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/.gitignore +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/Dockerfile +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/Dockerfile.dockerignore +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/README.md +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/data/seed.json +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/env.toml +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/site.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/web/index.html +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/web/package-lock.json +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/web/package.json +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/web/src/main.js +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/web/src/style.css +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/website/notes/web/vite.config.js +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/_trajectory_log.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/_triggers.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/extensions.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/framework.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/peer_agents.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/proxy.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/registry.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/staging.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/tasks/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/a2a_agent/tasks/v1.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/agent_env_environment.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/browser_cdp.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/client.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_declare.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_desktop.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_job.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_linux.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_load.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_macos.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_reaping.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_session_posix.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_windows.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_with_fds.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/_x11.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/app.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/app_data.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/app_runtime.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/apps.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/card.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/checks.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/__main__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/checks.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/client.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/desk.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/fixture.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/mp4.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/page_fixture.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/report.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/conformance/wayland_fixture.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/dataplane.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/driver.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/errors.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/extensions.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/frames.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/keys.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/launch.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/manifest.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/operations.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/platform.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/prefix.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/queue.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/recording.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/results.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/run_install_step.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/runtime.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/seed.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/serve.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/serve_app.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/served.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/session.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/settings.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/skill.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/spaces.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/svc.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/computer/tools.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/errors.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/manifest.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/preflight.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/tool_access.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/tool_client.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/tool_context.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/transfers.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/types.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/clock.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/conformance.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/environment.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/errors.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/readiness.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/routes.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website/session.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website_browser/__init__.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website_browser/control.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website_browser/data.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website_browser/devtools.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website_browser/environment.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/src/agentenv_protocol/website_browser/shapes.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/computer_fake.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/probe_fake.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_agent.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_agent_examples.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_cdp_config.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_object_transfers.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_peer_agents.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_proxy.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_staging.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_trajectory_log.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_agent_env_environment.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_browser_cdp.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_browser_data.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_browser_state.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_client.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_app_data.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_app_server.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_conformance.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_conformance_checks.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_conformance_page.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_conformance_recording.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_dataplane.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_declare.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_driver.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_extensions.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_frames.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_macos.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_page.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_queue.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_recording.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_seed.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_serve.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_served.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_spaces.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_svc_forward.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_tool_prefix.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_computer_windows_driver.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_control_token.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_data_objects.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_errors.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_extension_methods.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_intake.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_manifest.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_preflight.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_tool_access.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_tool_annotations.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_tool_client.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_tool_context.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_tool_context_fastmcp.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_tool_context_injection.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_api.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_browser.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_conformance.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_environment.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_live.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_mcp.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_notes_example.py +0 -0
- {agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_website_readiness.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agentenv-framework-protocol
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.513
|
|
4
4
|
Summary: Open data-plane protocol and server SDK for agent environments.
|
|
5
5
|
Project-URL: Homepage, https://www.agentenvframework.com
|
|
6
6
|
Project-URL: Documentation, https://www.agentenvframework.com/docs
|
|
@@ -72,8 +72,9 @@ async def launch(argv: list[str], cwd: Path, env: dict[str, str], fds: Optional[
|
|
|
72
72
|
|
|
73
73
|
async def stop(pid: int, timeout_s: float) -> None:
|
|
74
74
|
"""End the job the helper ``pid`` holds, every process in it: its windows asked to close, then the job ended after
|
|
75
|
-
``timeout_s``, or at once when it has no window to close
|
|
76
|
-
|
|
75
|
+
``timeout_s``, or at once when it has no window to close; once the app's processes have closed, the helper, which
|
|
76
|
+
leaves when its job holds no process but itself, waited on to leave, the job ended should it not; and waited on
|
|
77
|
+
until each process it held has exited and it holds none. No one asks how it exited once it's stopped."""
|
|
77
78
|
_reaping.forget(pid)
|
|
78
79
|
job = _win32.open_job(pid)
|
|
79
80
|
if job is None:
|
|
@@ -85,7 +86,11 @@ async def stop(pid: int, timeout_s: float) -> None:
|
|
|
85
86
|
deadline = time.monotonic() + (timeout_s if windows else 0)
|
|
86
87
|
while _app_pids(job, pid) and time.monotonic() < deadline:
|
|
87
88
|
await asyncio.sleep(POLL_S)
|
|
88
|
-
if _app_pids(job, pid):
|
|
89
|
+
if not _app_pids(job, pid):
|
|
90
|
+
deadline = time.monotonic() + ENDED_TIMEOUT_S
|
|
91
|
+
while _win32.job_pids(job) and time.monotonic() < deadline:
|
|
92
|
+
await asyncio.sleep(POLL_S)
|
|
93
|
+
if _win32.job_pids(job):
|
|
89
94
|
ending = _win32.open_processes(_win32.job_pids(job))
|
|
90
95
|
try:
|
|
91
96
|
_win32.terminate_job(job)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""The named keys X11Driver, WindowsDriver and MacOSDriver map: each a W3C key value, the two PC keyboards' the same,
|
|
2
|
+
and the Mac's those but the keys its keyboard lacks, with its Help key; read from the drivers' sources, so that none of
|
|
3
|
+
the libraries an OS driver imports is needed."""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import ast
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
from agentenv_protocol.computer import keys
|
|
10
|
+
|
|
11
|
+
COMPUTER = Path(keys.__file__).parent
|
|
12
|
+
#: The PC keys a Mac keyboard has no key code for, and the Mac's own Help key, which a PC keyboard lacks.
|
|
13
|
+
MAC_LACKS = {"ContextMenu", "Insert", "Pause", "PrintScreen", "F21", "F22", "F23", "F24"}
|
|
14
|
+
MAC_ONLY = {"Help"}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _named(module: str, *tables: str) -> set[str]:
|
|
18
|
+
"""The keys of the module-level dicts ``tables`` in ``computer/<module>.py``, a dict comprehension's included."""
|
|
19
|
+
found = set()
|
|
20
|
+
for node in ast.parse((COMPUTER / f"{module}.py").read_text()).body:
|
|
21
|
+
if isinstance(node, ast.Assign) and {getattr(t, "id", None) for t in node.targets} & set(tables):
|
|
22
|
+
for key, value in zip(node.value.keys, node.value.values):
|
|
23
|
+
if key is None:
|
|
24
|
+
names = ast.DictComp(key=value.key, value=ast.Constant(None), generators=value.generators)
|
|
25
|
+
found |= set(eval(compile(ast.fix_missing_locations(ast.Expression(names)), module, "eval")))
|
|
26
|
+
else:
|
|
27
|
+
found.add(ast.literal_eval(key))
|
|
28
|
+
return found
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_every_named_key_a_driver_maps_is_a_w3c_key_value():
|
|
32
|
+
tables = {"_x11": _named("_x11", "KEYSYMS"), "_windows": _named("_windows", "VIRTUAL_KEYS"),
|
|
33
|
+
"_macos": _named("_macos", "NAMED", "MODIFIERS")}
|
|
34
|
+
|
|
35
|
+
assert all(tables.values())
|
|
36
|
+
assert {module: sorted(names - set(keys.NAMED) - {" "}) for module, names in tables.items()} == {
|
|
37
|
+
"_x11": [], "_windows": [], "_macos": []}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def test_the_pc_drivers_map_the_same_named_keys_and_the_mac_those_its_keyboard_has():
|
|
41
|
+
x11, windows = _named("_x11", "KEYSYMS"), _named("_windows", "VIRTUAL_KEYS")
|
|
42
|
+
|
|
43
|
+
assert windows == x11
|
|
44
|
+
assert _named("_macos", "NAMED", "MODIFIERS") == x11 - MAC_LACKS | MAC_ONLY
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"""The Windows session's own logic, its Win32 calls faked and its job helper stood in for: a launch goes through the
|
|
2
2
|
helper and returns its pid once the app has started, or fails saying why it couldn't, and hands no fds; stopping asks
|
|
3
|
-
the app's windows to close, then ends the job after the timeout, or at once with no window to ask, and
|
|
4
|
-
|
|
3
|
+
the app's windows to close, then ends the job after the timeout, or at once with no window to ask, and, once they've
|
|
4
|
+
closed, waits for the helper to leave, ending the job should it not, until each process it held has exited and it
|
|
5
|
+
holds none; pausing suspends each of the app's processes but the helper's, and
|
|
5
6
|
any one starts as they're suspended, and resumes them, even when the block raises; a job that's gone is neither alive,
|
|
6
7
|
stopped nor paused; the windows listed are those shown, by program, class and title; and the menu launcher is a Start
|
|
7
8
|
Menu shortcut PowerShell writes, named for the app."""
|
|
@@ -32,12 +33,14 @@ sys.exit(int(command[0]))
|
|
|
32
33
|
class FakeWin32:
|
|
33
34
|
"""Jobs by their helper's pid, each a list of the pids in it, the helper's first; the session's windows; and every
|
|
34
35
|
call that acts, recorded. An app whose window is asked to close ``closes`` or doesn't, a process ``spawns`` one
|
|
35
|
-
into its job just before it's suspended,
|
|
36
|
-
|
|
36
|
+
into its job just before it's suspended, a job ended by force holds its processes for ``lingers`` more looks, then
|
|
37
|
+
none, though it's there until its handles close, and a helper alone in its job ``leaves`` after that many looks, as
|
|
38
|
+
the real one does, or, for None, stays."""
|
|
37
39
|
|
|
38
40
|
def __init__(self, jobs: dict[int, list[int]], windows: list[Window], closes: bool = True,
|
|
39
|
-
spawns: dict[int, int] | None = None, lingers: int = 0) -> None:
|
|
41
|
+
spawns: dict[int, int] | None = None, lingers: int = 0, leaves: int | None = 5) -> None:
|
|
40
42
|
self.jobs, self._windows, self.closes, self.spawns, self.lingers = jobs, windows, closes, spawns or {}, lingers
|
|
43
|
+
self.leaves = leaves
|
|
41
44
|
self.ending: dict[int, int] = {}
|
|
42
45
|
self.posted, self.terminated, self.suspended, self.resumed, self.waited, self.open = [], [], [], [], [], 0
|
|
43
46
|
|
|
@@ -52,6 +55,10 @@ class FakeWin32:
|
|
|
52
55
|
self.ending[job] -= 1
|
|
53
56
|
if self.ending[job] < 0:
|
|
54
57
|
self.jobs[job] = []
|
|
58
|
+
elif self.jobs[job] == [job] and self.leaves is not None:
|
|
59
|
+
self.leaves -= 1
|
|
60
|
+
if self.leaves < 0:
|
|
61
|
+
self.jobs[job] = []
|
|
55
62
|
return list(self.jobs[job])
|
|
56
63
|
|
|
57
64
|
def open_processes(self, pids):
|
|
@@ -107,16 +114,29 @@ def win32(monkeypatch):
|
|
|
107
114
|
async def test_stopping_asks_the_apps_windows_to_close_and_ends_the_job_only_if_they_dont(win32):
|
|
108
115
|
obliging = win32({HELPER: [HELPER, 901, 902]}, [_window(1, 901), _window(2, 777), _window(3, 902, shown=False)])
|
|
109
116
|
await _session_windows.stop(HELPER, timeout_s=5)
|
|
117
|
+
obliging_left = not _session_windows.alive(HELPER)
|
|
110
118
|
stubborn = win32({HELPER: [HELPER, 901]}, [_window(1, 901)], closes=False, lingers=3)
|
|
111
119
|
started = time.monotonic()
|
|
112
120
|
await _session_windows.stop(HELPER, timeout_s=0.2)
|
|
113
121
|
|
|
114
122
|
assert obliging.posted == [1, 3] and obliging.terminated == obliging.waited == [] and obliging.open == 0
|
|
123
|
+
assert obliging_left
|
|
115
124
|
assert stubborn.posted == [1] and stubborn.terminated == [HELPER] and time.monotonic() - started >= 0.2
|
|
116
125
|
assert stubborn.waited == [[HELPER, 901]] and stubborn.open == 0
|
|
117
126
|
assert stubborn.jobs[HELPER] == [] and not _session_windows.alive(HELPER)
|
|
118
127
|
|
|
119
128
|
|
|
129
|
+
@pytest.mark.asyncio
|
|
130
|
+
async def test_a_helper_that_stays_once_its_apps_window_has_closed_is_ended_with_its_job(win32, monkeypatch):
|
|
131
|
+
monkeypatch.setattr(_session_windows, "ENDED_TIMEOUT_S", 0.1)
|
|
132
|
+
stuck = win32({HELPER: [HELPER, 901]}, [_window(1, 901)], leaves=None)
|
|
133
|
+
|
|
134
|
+
await _session_windows.stop(HELPER, timeout_s=5)
|
|
135
|
+
|
|
136
|
+
assert stuck.posted == [1] and stuck.terminated == [HELPER] and stuck.waited == [[HELPER]] and stuck.open == 0
|
|
137
|
+
assert not _session_windows.alive(HELPER)
|
|
138
|
+
|
|
139
|
+
|
|
120
140
|
@pytest.mark.asyncio
|
|
121
141
|
async def test_an_app_with_no_window_to_ask_is_ended_at_once_and_a_gone_job_is_left_be(win32):
|
|
122
142
|
windowless = win32({HELPER: [HELPER, 901]}, [_window(1, 777)])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/THIRD_PARTY_NOTICES.md
RENAMED
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/examples/basic_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/computer_fake.py
RENAMED
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/probe_fake.py
RENAMED
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_a2a_proxy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_intake.py
RENAMED
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_manifest.py
RENAMED
|
File without changes
|
{agentenv_framework_protocol-0.1.511 → agentenv_framework_protocol-0.1.513}/tests/test_preflight.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|