agentnode-sdk 0.17.0__tar.gz → 0.18.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/CHANGELOG.md +45 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/PKG-INFO +1 -1
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/__init__.py +1 -1
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/sandbox_commands.py +381 -305
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/config.py +21 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/installer.py +29 -9
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_runner.py +17 -5
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/mcp_runner.py +12 -6
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/python_runner.py +7 -2
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/policy.py +167 -114
- agentnode_sdk-0.18.0/dist-0.18.0/.gitignore +1 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/pyproject.toml +1 -1
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_sandbox_routing.py +507 -420
- agentnode_sdk-0.18.0/tests/test_host_trust_policy.py +91 -0
- agentnode_sdk-0.18.0/tests/test_host_trust_policy_routing.py +206 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_preinstall.py +23 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_doctor.py +395 -250
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_toolpack_sandbox.py +486 -411
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/.env.example +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/.gitignore +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/README.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/REGISTRY_SIGNING_ACTIVATION.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/REGISTRY_SIGNING_SPEC.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/THREAT_MODEL.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/TRUST_STACK.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode.lock +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/_fileutil.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/async_client.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/capability_graph.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/capability_taxonomy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/__init__.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/__main__.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/audit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/auth.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/cassette_audit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/commands.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/complements.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/init.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/main.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_commands.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_status.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_submit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_verify.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/output.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/publish.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/record_cases.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/serve.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/setup_wizard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/smart_run.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/templates.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/validate.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/verify_local.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/client.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/compatibility.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/credential_handle.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/credential_resolver.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/credential_store.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/detect.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/exceptions.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/guard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/input_guard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/key_status.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/llm_providers.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/lock_integrity.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/mcp_server.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/models.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/planner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/references.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/registry_trust.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/resolve.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/resource_provider.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/risk_profile.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/run_log.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtime.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/__init__.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_llm_broker.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_llm_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_sandbox.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/mcp_consent.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/mcp_consent_store.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/remote_runner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/__init__.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/agent_container_wrapper.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/agent_rpc.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/agent_session.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/backend.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/container_backend.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/domain_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/egress.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/egress_proxy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/mcp_preinstall.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/types.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/signature.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/signing_key.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/skill.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/data/compatibility/current.json +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/sandbox-image/Dockerfile +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/sandbox-image/README.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/analyze_scores.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/batch_verify.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/ci_smoke_test.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/generate_compatibility_artifacts.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/merge_batches.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/verify_toolcalls.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/weekly_retest.sh +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/README.md +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/__init__.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/container_agent_wrapper.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/fake_llm.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/host_driver.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/trivial_agent.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/__init__.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/conftest.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/data/allowed_domains_vectors.json +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_llm_broker.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_llm_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_rpc.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_runner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_sandbox_e2e.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_sandbox_spike.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_session_container.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_async_client.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_audit_ux.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_auth_cli_vault.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_auto_upgrade_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_cli.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_cli_lock.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_cli_run_resolution.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_client.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_client_json_guard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_client_sprint_b.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_config.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_consent_prompt.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_handle.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_integration.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_resolver.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_store.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_vault.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_detect.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_detect_and_install.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_domain_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_e2e_runtime.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_edge_cases.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_domain_validation.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_e2e.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_lifecycle.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_proxy_unit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_wrap.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_env_passthrough_wrap.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_check.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_config_cache.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_preview.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_schema.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_set.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_status.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_tool_override.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_tool_override_audit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_tool_override_cli.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_ux.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_input_guard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_input_guard_escalation.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_install_hardening.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_installer_sprint_b.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_intelligence.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_key_status.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_binding.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_call_runlog.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_providers.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_vault_binding.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_lock_integrity.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_lock_runtime.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_allowed_domains_seal.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_audit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_consent.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_consent_resolver.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_consent_store.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_credentialed_launch.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_doctor.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_preinstall_run.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_sandbox.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_server.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_observability.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_planner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_policy.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_policy_integration.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_prompt_specs.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_provider_matrix.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_publish.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_references.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_registry_trust.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_remote_hardening.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_remote_runner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_resource_provider.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_resource_specs.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_risk_profile.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_run_log.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_runner.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_runtime.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_runtime_audit.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_backend.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_e2e.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_gate.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_security_hardening.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_setup_wizard.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_signature.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_signing_key.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_skill.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_smart.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_stability.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_v02.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_validate.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_validate_skill.py +0 -0
- {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/validation_lockfile.json +0 -0
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.0 — User-controlled host-trust policy
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **`sandbox.host_trust_policy`** — a new config key that lets you decide which
|
|
8
|
+
trust tiers may run directly on your host: `default` (curated + trusted on the
|
|
9
|
+
host, today's behavior), `curated_only` (trusted is sandboxed), or `none`
|
|
10
|
+
(everything is sandboxed). Set it with
|
|
11
|
+
`agentnode config set sandbox.host_trust_policy curated_only`. AgentNode trusting
|
|
12
|
+
a package's code is not the same as you trusting it with your machine — this
|
|
13
|
+
setting closes that gap.
|
|
14
|
+
- **`agentnode sandbox doctor <slug>` is now host-trust-policy aware** — it explains
|
|
15
|
+
when a package is sandboxed by the policy and distinguishes "reinstall to rebuild
|
|
16
|
+
the sandbox volume" from "the publisher must pin this MCP" from a `none`/system-
|
|
17
|
+
package warning, and flags that a sandboxed agent runs the strict profile.
|
|
18
|
+
- New `docs/security/host-trust-policy.md`.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Toolpacks, MCP servers, and agents all honor `sandbox.host_trust_policy` through
|
|
23
|
+
one shared decision. Under a stricter policy the installer builds the sealed
|
|
24
|
+
sandbox volume for trusted/curated packages at install time, and the lockfile
|
|
25
|
+
records `build_mode`, `pinnable`, and `effective_host_trust_policy_at_install`
|
|
26
|
+
(mutable metadata — the runtime still re-verifies the volume itself).
|
|
27
|
+
|
|
28
|
+
### Hardened
|
|
29
|
+
|
|
30
|
+
- A tier the active policy sandboxes is **fail-closed**: if it cannot actually be
|
|
31
|
+
isolated (no container runtime, no built volume, a non-pinnable MCP) it is
|
|
32
|
+
refused, never run on the host as a fallback.
|
|
33
|
+
|
|
34
|
+
### BREAKING / Upgrade Notes
|
|
35
|
+
|
|
36
|
+
- **Not breaking by default.** The default policy is `default`, which is exactly
|
|
37
|
+
today's behavior — nothing changes until you opt in.
|
|
38
|
+
- **Opting into `curated_only`/`none` isolates more strongly and can break
|
|
39
|
+
trusted/curated packages** that expect the host filesystem, broad tools, host LLM
|
|
40
|
+
keys, or network — the sandbox has none of these. **Agents are the strictest
|
|
41
|
+
case:** a sandboxed agent runs the same strict community profile (declared tools
|
|
42
|
+
only, default-deny host-brokered LLM, `network=none`, read-only `/pack`), with no
|
|
43
|
+
special rights for trusted agents. After tightening the policy, **reinstall**
|
|
44
|
+
affected packages so their sealed volume is built (`agentnode install <slug>`);
|
|
45
|
+
run `agentnode sandbox doctor <slug>` to see what each package needs. Community
|
|
46
|
+
agents remain governed by the separate opt-in `agent_sandbox.enabled` flag.
|
|
47
|
+
|
|
3
48
|
## 0.17.0 — MCP network isolation
|
|
4
49
|
|
|
5
50
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentnode-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.0
|
|
4
4
|
Summary: Python SDK for AgentNode — the open upgrade and discovery infrastructure for AI agents.
|
|
5
5
|
Project-URL: Homepage, https://agentnode.net
|
|
6
6
|
Project-URL: Repository, https://github.com/agentnode-ai/agentnode
|