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.
Files changed (217) hide show
  1. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/CHANGELOG.md +45 -0
  2. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/PKG-INFO +1 -1
  3. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/__init__.py +1 -1
  4. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/sandbox_commands.py +381 -305
  5. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/config.py +21 -0
  6. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/installer.py +29 -9
  7. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_runner.py +17 -5
  8. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/mcp_runner.py +12 -6
  9. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/python_runner.py +7 -2
  10. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/policy.py +167 -114
  11. agentnode_sdk-0.18.0/dist-0.18.0/.gitignore +1 -0
  12. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/pyproject.toml +1 -1
  13. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_sandbox_routing.py +507 -420
  14. agentnode_sdk-0.18.0/tests/test_host_trust_policy.py +91 -0
  15. agentnode_sdk-0.18.0/tests/test_host_trust_policy_routing.py +206 -0
  16. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_preinstall.py +23 -0
  17. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_doctor.py +395 -250
  18. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_toolpack_sandbox.py +486 -411
  19. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/.env.example +0 -0
  20. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/.gitignore +0 -0
  21. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/README.md +0 -0
  22. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/REGISTRY_SIGNING_ACTIVATION.md +0 -0
  23. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/REGISTRY_SIGNING_SPEC.md +0 -0
  24. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/THREAT_MODEL.md +0 -0
  25. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/TRUST_STACK.md +0 -0
  26. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode.lock +0 -0
  27. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/_fileutil.py +0 -0
  28. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/async_client.py +0 -0
  29. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/capability_graph.py +0 -0
  30. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/capability_taxonomy.py +0 -0
  31. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/__init__.py +0 -0
  32. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/__main__.py +0 -0
  33. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/audit.py +0 -0
  34. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/auth.py +0 -0
  35. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/cassette_audit.py +0 -0
  36. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/commands.py +0 -0
  37. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/complements.py +0 -0
  38. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/init.py +0 -0
  39. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/main.py +0 -0
  40. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_commands.py +0 -0
  41. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_status.py +0 -0
  42. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_submit.py +0 -0
  43. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/mcp_verify.py +0 -0
  44. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/output.py +0 -0
  45. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/publish.py +0 -0
  46. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/record_cases.py +0 -0
  47. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/serve.py +0 -0
  48. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/setup_wizard.py +0 -0
  49. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/smart_run.py +0 -0
  50. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/templates.py +0 -0
  51. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/validate.py +0 -0
  52. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/cli/verify_local.py +0 -0
  53. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/client.py +0 -0
  54. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/compatibility.py +0 -0
  55. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/credential_handle.py +0 -0
  56. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/credential_resolver.py +0 -0
  57. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/credential_store.py +0 -0
  58. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/detect.py +0 -0
  59. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/exceptions.py +0 -0
  60. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/guard.py +0 -0
  61. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/input_guard.py +0 -0
  62. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/key_status.py +0 -0
  63. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/llm_providers.py +0 -0
  64. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/lock_integrity.py +0 -0
  65. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/mcp_server.py +0 -0
  66. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/models.py +0 -0
  67. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/planner.py +0 -0
  68. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/policy.py +0 -0
  69. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/references.py +0 -0
  70. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/registry_trust.py +0 -0
  71. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/resolve.py +0 -0
  72. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/resource_provider.py +0 -0
  73. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/risk_profile.py +0 -0
  74. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/run_log.py +0 -0
  75. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runner.py +0 -0
  76. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtime.py +0 -0
  77. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/__init__.py +0 -0
  78. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_llm_broker.py +0 -0
  79. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_llm_policy.py +0 -0
  80. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/agent_sandbox.py +0 -0
  81. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/mcp_consent.py +0 -0
  82. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/mcp_consent_store.py +0 -0
  83. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/runtimes/remote_runner.py +0 -0
  84. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/__init__.py +0 -0
  85. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/agent_container_wrapper.py +0 -0
  86. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/agent_rpc.py +0 -0
  87. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/agent_session.py +0 -0
  88. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/backend.py +0 -0
  89. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/container_backend.py +0 -0
  90. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/domain_policy.py +0 -0
  91. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/egress.py +0 -0
  92. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/egress_proxy.py +0 -0
  93. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/mcp_preinstall.py +0 -0
  94. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/sandbox/types.py +0 -0
  95. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/signature.py +0 -0
  96. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/signing_key.py +0 -0
  97. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/agentnode_sdk/skill.py +0 -0
  98. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/data/compatibility/current.json +0 -0
  99. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/sandbox-image/Dockerfile +0 -0
  100. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/sandbox-image/README.md +0 -0
  101. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/analyze_scores.py +0 -0
  102. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/batch_verify.py +0 -0
  103. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/ci_smoke_test.py +0 -0
  104. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/generate_compatibility_artifacts.py +0 -0
  105. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/merge_batches.py +0 -0
  106. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/verify_toolcalls.py +0 -0
  107. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/scripts/weekly_retest.sh +0 -0
  108. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/README.md +0 -0
  109. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/__init__.py +0 -0
  110. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/container_agent_wrapper.py +0 -0
  111. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/fake_llm.py +0 -0
  112. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/host_driver.py +0 -0
  113. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/spikes/agent_sandbox_routing/trivial_agent.py +0 -0
  114. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/__init__.py +0 -0
  115. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/conftest.py +0 -0
  116. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/data/allowed_domains_vectors.json +0 -0
  117. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_llm_broker.py +0 -0
  118. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_llm_policy.py +0 -0
  119. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_rpc.py +0 -0
  120. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_runner.py +0 -0
  121. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_sandbox_e2e.py +0 -0
  122. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_sandbox_spike.py +0 -0
  123. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_agent_session_container.py +0 -0
  124. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_async_client.py +0 -0
  125. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_audit_ux.py +0 -0
  126. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_auth_cli_vault.py +0 -0
  127. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_auto_upgrade_policy.py +0 -0
  128. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_cli.py +0 -0
  129. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_cli_lock.py +0 -0
  130. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_cli_run_resolution.py +0 -0
  131. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_client.py +0 -0
  132. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_client_json_guard.py +0 -0
  133. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_client_sprint_b.py +0 -0
  134. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_config.py +0 -0
  135. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_consent_prompt.py +0 -0
  136. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_handle.py +0 -0
  137. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_integration.py +0 -0
  138. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_resolver.py +0 -0
  139. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_store.py +0 -0
  140. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_credential_vault.py +0 -0
  141. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_detect.py +0 -0
  142. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_detect_and_install.py +0 -0
  143. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_domain_policy.py +0 -0
  144. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_e2e_runtime.py +0 -0
  145. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_edge_cases.py +0 -0
  146. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_domain_validation.py +0 -0
  147. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_e2e.py +0 -0
  148. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_lifecycle.py +0 -0
  149. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_proxy_unit.py +0 -0
  150. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_egress_wrap.py +0 -0
  151. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_env_passthrough_wrap.py +0 -0
  152. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard.py +0 -0
  153. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_check.py +0 -0
  154. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_config_cache.py +0 -0
  155. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_policy.py +0 -0
  156. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_preview.py +0 -0
  157. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_schema.py +0 -0
  158. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_set.py +0 -0
  159. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_status.py +0 -0
  160. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_tool_override.py +0 -0
  161. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_tool_override_audit.py +0 -0
  162. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_tool_override_cli.py +0 -0
  163. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_guard_ux.py +0 -0
  164. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_input_guard.py +0 -0
  165. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_input_guard_escalation.py +0 -0
  166. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_install_hardening.py +0 -0
  167. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_installer_sprint_b.py +0 -0
  168. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_intelligence.py +0 -0
  169. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_key_status.py +0 -0
  170. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_binding.py +0 -0
  171. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_call_runlog.py +0 -0
  172. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_providers.py +0 -0
  173. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_llm_vault_binding.py +0 -0
  174. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_lock_integrity.py +0 -0
  175. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_lock_runtime.py +0 -0
  176. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_allowed_domains_seal.py +0 -0
  177. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_audit.py +0 -0
  178. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_consent.py +0 -0
  179. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_consent_resolver.py +0 -0
  180. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_consent_store.py +0 -0
  181. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_credentialed_launch.py +0 -0
  182. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_doctor.py +0 -0
  183. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_preinstall_run.py +0 -0
  184. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_sandbox.py +0 -0
  185. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_mcp_server.py +0 -0
  186. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_observability.py +0 -0
  187. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_planner.py +0 -0
  188. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_policy.py +0 -0
  189. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_policy_integration.py +0 -0
  190. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_prompt_specs.py +0 -0
  191. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_provider_matrix.py +0 -0
  192. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_publish.py +0 -0
  193. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_references.py +0 -0
  194. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_registry_trust.py +0 -0
  195. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_remote_hardening.py +0 -0
  196. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_remote_runner.py +0 -0
  197. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_resource_provider.py +0 -0
  198. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_resource_specs.py +0 -0
  199. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_risk_profile.py +0 -0
  200. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_run_log.py +0 -0
  201. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_runner.py +0 -0
  202. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_runtime.py +0 -0
  203. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_runtime_audit.py +0 -0
  204. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_backend.py +0 -0
  205. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_e2e.py +0 -0
  206. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_sandbox_gate.py +0 -0
  207. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_security_hardening.py +0 -0
  208. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_setup_wizard.py +0 -0
  209. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_signature.py +0 -0
  210. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_signing_key.py +0 -0
  211. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_skill.py +0 -0
  212. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_smart.py +0 -0
  213. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_stability.py +0 -0
  214. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_v02.py +0 -0
  215. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_validate.py +0 -0
  216. {agentnode_sdk-0.17.0 → agentnode_sdk-0.18.0}/tests/test_validate_skill.py +0 -0
  217. {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.17.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
@@ -38,7 +38,7 @@ from agentnode_sdk.runtime import AgentNodeRuntime
38
38
  Client = AgentNodeClient
39
39
  ToolError = AgentNodeToolError
40
40
 
41
- __version__ = "0.17.0"
41
+ __version__ = "0.18.0"
42
42
  __all__ = [
43
43
  "AgentNode",
44
44
  "AsyncAgentNode",