vmware-aria 2.4.2__tar.gz → 2.4.4__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 (213) hide show
  1. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.claude-plugin/plugin.json +1 -1
  2. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.mcp.json +1 -1
  3. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/PKG-INFO +24 -8
  4. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/README-CN.md +22 -6
  5. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/README.md +22 -6
  6. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/RELEASE_NOTES.md +24 -3
  7. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/SECURITY.md +3 -3
  8. vmware_aria-2.4.4/gemini-extension.json +16 -0
  9. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/openclaw.plugin.json +1 -1
  10. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/package.json +1 -1
  11. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/pyproject.toml +2 -2
  12. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/server.json +2 -2
  13. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/SKILL.md +4 -4
  14. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/setup-guide.md +24 -19
  15. vmware_aria-2.4.4/tests/eval/regression/test_macos_proxy_bypass.py +47 -0
  16. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/uv.lock +1 -1
  17. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/__init__.py +1 -1
  18. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/connection.py +10 -0
  19. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.clawhubignore +0 -0
  20. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.env.example +0 -0
  21. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.gitignore +0 -0
  22. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/Dockerfile +0 -0
  23. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/config.example.yaml +0 -0
  24. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/docker-compose.yml +0 -0
  25. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/examples/mcp-configs/claude-code.json +0 -0
  26. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/examples/mcp-configs/cursor.json +0 -0
  27. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/examples/mcp-configs/goose.json +0 -0
  28. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/evals/evals.json +0 -0
  29. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/agent-guardrails.md +0 -0
  30. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/capabilities.md +0 -0
  31. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/cli-reference.md +0 -0
  32. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/investigation-protocol.md +0 -0
  33. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/ops-playbooks.md +0 -0
  34. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/smithery.yaml +0 -0
  35. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/__init__.py +0 -0
  36. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/conftest.py +0 -0
  37. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/__init__.py +0 -0
  38. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/__init__.py +0 -0
  39. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_family.py +0 -0
  40. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_scores.json +0 -0
  41. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_scoring.py +0 -0
  42. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_skill.py +0 -0
  43. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/conftest.py +0 -0
  44. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_entity_reachability.py +0 -0
  45. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_error_actionability.py +0 -0
  46. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_tool_description_quality.py +0 -0
  47. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_tool_manifest_budget.py +0 -0
  48. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_adapter_childs_no_data.json +0 -0
  49. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_notes_404.json +0 -0
  50. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_notes_empty.json +0 -0
  51. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_vcapp_health.json +0 -0
  52. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alertdefinition_adapter_childs_no_data.json +0 -0
  53. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alertdefinition_vcapp_health.json +0 -0
  54. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/contributingsymptoms_vcapp_health.json +0 -0
  55. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_relationships_all.json +0 -0
  56. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_relationships_child.json +0 -0
  57. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_relationships_parent.json +0 -0
  58. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_statkey_definitions.json +0 -0
  59. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/maintenanceschedules_empty.json +0 -0
  60. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/node_status_503.json +0 -0
  61. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_adapters.json +0 -0
  62. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_node_statkey_definitions.json +0 -0
  63. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_node_statkeys.json +0 -0
  64. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_resources_node.json +0 -0
  65. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_resources_watchdog.json +0 -0
  66. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_stats_latest.json +0 -0
  67. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_stats_query.json +0 -0
  68. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_watchdog_statkey_definitions.json +0 -0
  69. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_watchdog_statkeys.json +0 -0
  70. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/properties_bulk_vcapp_services.json +0 -0
  71. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/recommendation_404.json +0 -0
  72. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/recommendations_by_id_adapter_childs.json +0 -0
  73. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/recommendations_by_id_vcapp.json +0 -0
  74. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/resource_test_llm.json +0 -0
  75. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/service_resource_mem.json +0 -0
  76. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/services_info.json +0 -0
  77. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/stats_query_mixed.json +0 -0
  78. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/stats_query_no_values.json +0 -0
  79. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/symptoms_ignores_id_filter.json +0 -0
  80. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/topn_no_groups.json +0 -0
  81. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vcapp_children.json +0 -0
  82. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/versions_current.json +0 -0
  83. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_properties.json +0 -0
  84. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_relationships_all.json +0 -0
  85. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_relationships_child.json +0 -0
  86. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_relationships_parent.json +0 -0
  87. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_resource_test_llm.json +0 -0
  88. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkey_definitions.json +0 -0
  89. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkey_definitions_full.json +0 -0
  90. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkeys.json +0 -0
  91. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkeys_180.json +0 -0
  92. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/__init__.py +0 -0
  93. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/_live_8187.py +0 -0
  94. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/fixtures/aria_8187_alerts.json +0 -0
  95. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/fixtures/aria_8187_rightsizing.json +0 -0
  96. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_a_9x_only_404_is_not_a_bad_id.py +0 -0
  97. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_alert_ids_are_pasteable_and_times_readable.py +0 -0
  98. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_alert_notes.py +0 -0
  99. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_alert_recommendations.py +0 -0
  100. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_anomaly_count_is_total_anomalies.py +0 -0
  101. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_anomaly_limit_bounds_the_answer.py +0 -0
  102. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_aria_spec_conformance.py +0 -0
  103. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_aria_spec_shapes.py +0 -0
  104. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_aria_specific.py +0 -0
  105. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_cached_loader_agrees_with_the_resolver.py +0 -0
  106. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_capability_grader.py +0 -0
  107. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_cli_value_errors_are_usage_errors.py +0 -0
  108. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_cli_writes_guarded.py +0 -0
  109. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_credential_env_override.py +0 -0
  110. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_destructive_cli_asks_twice.py +0 -0
  111. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_doctor_does_not_send_you_to_doctor.py +0 -0
  112. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_doctor_uses_the_config_the_tools_use.py +0 -0
  113. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_documented_metric_keys_exist.py +0 -0
  114. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_empty_metrics_say_why.py +0 -0
  115. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_empty_vs_unrecognized.py +0 -0
  116. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_env_secret_obfuscation.py +0 -0
  117. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_fleet_rows_survive_the_container_key.py +0 -0
  118. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_health_degraded_is_not_down.py +0 -0
  119. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_health_says_what_it_observed.py +0 -0
  120. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_ids_must_be_uuid_shaped.py +0 -0
  121. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_instructions_name_targets.py +0 -0
  122. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_live_8187_alert_names.py +0 -0
  123. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_maintenance_mode.py +0 -0
  124. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_maintenance_schedules.py +0 -0
  125. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_mcp_parity.py +0 -0
  126. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_metrics_interval.py +0 -0
  127. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_metrics_summary.py +0 -0
  128. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_paging_loop_terminates.py +0 -0
  129. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_platform_adapters.py +0 -0
  130. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_platform_node_resources.py +0 -0
  131. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_platform_surfaces.py +0 -0
  132. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_product_version_is_read_and_parseable.py +0 -0
  133. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_release_blockers.py +0 -0
  134. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_report_fields_do_not_lie.py +0 -0
  135. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_resource_catalog.py +0 -0
  136. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_resource_list_says_which_objects_stopped_reporting.py +0 -0
  137. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_result_envelope.py +0 -0
  138. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_rightsizing_live_8187.py +0 -0
  139. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_rightsizing_recommendation_history.py +0 -0
  140. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_service_health_is_not_the_badge.py +0 -0
  141. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_stats_n1.py +0 -0
  142. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_text_io_declares_encoding.py +0 -0
  143. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_top_consumers_value_is_the_ranking.py +0 -0
  144. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_vcapp_symptoms_name_their_resources.py +0 -0
  145. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_vcf91_fleet_spec.py +0 -0
  146. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_verify_ssl_false_needs_no_urllib3.py +0 -0
  147. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_version_gated_calls_declare_their_floor.py +0 -0
  148. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_api_escape.py +0 -0
  149. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_config.py +0 -0
  150. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_error_hints.py +0 -0
  151. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_gated_writes.py +0 -0
  152. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_init_and_onboarding.py +0 -0
  153. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_investigate.py +0 -0
  154. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_no_destructive_ops.py +0 -0
  155. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_policy_roles.py +0 -0
  156. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_safe_error_passthrough.py +0 -0
  157. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_session_pool.py +0 -0
  158. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/api_spec/vcf91_fleet_operations.json +0 -0
  159. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/api_spec/vcfops91_operations.json +0 -0
  160. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/api_spec/vrops86_operations.json +0 -0
  161. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli.py +0 -0
  162. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_api.py +0 -0
  163. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_catalog.py +0 -0
  164. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_platform.py +0 -0
  165. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_workflow.py +0 -0
  166. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/config.py +0 -0
  167. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/doctor.py +0 -0
  168. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/init_wizard.py +0 -0
  169. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/__init__.py +0 -0
  170. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/__main__.py +0 -0
  171. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/_shared.py +0 -0
  172. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/server.py +0 -0
  173. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/__init__.py +0 -0
  174. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/alert_definitions.py +0 -0
  175. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/alert_workflow.py +0 -0
  176. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/alerts.py +0 -0
  177. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/anomaly.py +0 -0
  178. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/api.py +0 -0
  179. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/capacity.py +0 -0
  180. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/catalog.py +0 -0
  181. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/fleet.py +0 -0
  182. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/health.py +0 -0
  183. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/maintenance.py +0 -0
  184. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/reports.py +0 -0
  185. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/resources.py +0 -0
  186. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/notify/__init__.py +0 -0
  187. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/notify/audit.py +0 -0
  188. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/__init__.py +0 -0
  189. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/_collection.py +0 -0
  190. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/_ids.py +0 -0
  191. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/_paging.py +0 -0
  192. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/alert_notes.py +0 -0
  193. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/alert_recommendations.py +0 -0
  194. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/alerts.py +0 -0
  195. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/anomaly.py +0 -0
  196. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/api_escape.py +0 -0
  197. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/capacity.py +0 -0
  198. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/catalog.py +0 -0
  199. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/fleet.py +0 -0
  200. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/gate_measures.py +0 -0
  201. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/health.py +0 -0
  202. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/investigate.py +0 -0
  203. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/maintenance.py +0 -0
  204. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/metric_summary.py +0 -0
  205. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/platform.py +0 -0
  206. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/promql.py +0 -0
  207. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/reports.py +0 -0
  208. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/resources.py +0 -0
  209. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/service_state.py +0 -0
  210. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/symptom_resources.py +0 -0
  211. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/write_gate.py +0 -0
  212. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/policy_environment.py +0 -0
  213. {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/policy_roles.py +0 -0
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "vmware-aria",
4
4
  "displayName": "VMware Aria",
5
- "version": "2.4.2",
5
+ "version": "2.4.4",
6
6
  "description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
7
7
  "author": {
8
8
  "name": "Wei Zhou",
@@ -5,7 +5,7 @@
5
5
  "command": "uvx",
6
6
  "args": [
7
7
  "--from",
8
- "vmware-aria==2.4.2",
8
+ "vmware-aria==2.4.4",
9
9
  "vmware-aria-mcp"
10
10
  ]
11
11
  }
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vmware-aria
3
- Version: 2.4.2
3
+ Version: 2.4.4
4
4
  Summary: VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning
5
5
  Project-URL: Homepage, https://github.com/vmware-skills/VMware-Aria
6
6
  Project-URL: Repository, https://github.com/vmware-skills/VMware-Aria
7
7
  Project-URL: Issues, https://github.com/vmware-skills/VMware-Aria/issues
8
8
  Project-URL: Changelog, https://github.com/vmware-skills/VMware-Aria/blob/main/RELEASE_NOTES.md
9
- Author-email: Wei Zhou <wei-wz.zhou@broadcom.com>
9
+ Author-email: Wei Zhou <zhouwei008@gmail.com>
10
10
  License-Expression: MIT
11
11
  Keywords: ai-ops,aria,capacity,mcp,monitoring,vmware,vrealize,vrops
12
12
  Classifier: Development Status :: 4 - Beta
@@ -30,7 +30,7 @@ For a read-only check of this skill with your model and agent host, use the shar
30
30
 
31
31
  > **Note**: In VCF 9.0 and later, **VMware Aria Operations** has been rebranded as **VCF Operations**. This skill works against both names — the `/suite-api/` REST endpoints are unchanged.
32
32
 
33
- > **Author**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com
33
+ > **Author**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
34
34
  > This is a community-driven project by a VMware engineer, not an official VMware product.
35
35
  > For official VMware developer tools see [developer.broadcom.com](https://developer.broadcom.com).
36
36
 
@@ -39,6 +39,10 @@ AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealiz
39
39
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
40
40
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
41
41
 
42
+ MCP uses local stdio by default. Opt-in HTTPS opens the configured listener and requires TLS plus caller authentication; it is a network service, not a local-only mode. Credential examples create owner-only placeholder files without overwriting existing files; edit secrets locally.
43
+
44
+ Container examples build a local version-tagged image and run it with `--pull=never`, avoiding registry fallback. A local version tag is not an immutable image digest.
45
+
42
46
  ## Upgrading to 2.0
43
47
 
44
48
  2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`). The full old → new table is in
@@ -72,7 +76,7 @@ against both the old and the new name, so one file serves both.
72
76
 
73
77
  ```bash
74
78
  # Install
75
- uv tool install vmware-aria
79
+ uv tool install vmware-aria==2.4.4
76
80
 
77
81
  # Configure
78
82
  mkdir -p ~/.vmware-aria
@@ -88,13 +92,25 @@ default_target: prod
88
92
  EOF
89
93
 
90
94
  # Set password (never in config.yaml)
91
- echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.env
92
- chmod 600 ~/.vmware-aria/.env
95
+ (
96
+ umask 077
97
+ set -C # Refuse existing files; edit an existing .env locally instead
98
+ cat > ~/.vmware-aria/.env <<'EOF'
99
+ VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
100
+ EOF
101
+ )
102
+ # Before continuing, edit .env locally; never type live secrets into shell commands.
93
103
 
94
104
  # Verify setup
95
105
  vmware-aria doctor
96
106
  ```
97
107
 
108
+ This writes placeholders only. Enter passwords or tokens using a local editor after creation; do not paste live credentials into terminal commands, chat or commits. If the file exists, the command refuses to overwrite it; edit the existing file after checking its permissions are `600`.
109
+
110
+ On macOS, v2.4.3 honors the system proxy bypass list for Aria targets. If an
111
+ older installation reaches TCP/443 but token acquisition ends with a TLS close,
112
+ upgrade and rerun `vmware-aria doctor`. `doctor --skip-auth` checks TCP only.
113
+
98
114
  ### Offline / Air-Gapped Install (from source)
99
115
 
100
116
  This project uses the modern PEP 517 build system (hatchling), so there is **no
@@ -167,7 +183,7 @@ vmware-aria alert recommendations <alert-id>
167
183
 
168
184
  ## MCP Setup (Claude Code)
169
185
 
170
- After `uv tool install vmware-aria`, add to `~/.claude.json`:
186
+ After `uv tool install vmware-aria==2.4.4`, add to `~/.claude.json`:
171
187
 
172
188
  ```json
173
189
  {
@@ -185,7 +201,7 @@ After `uv tool install vmware-aria`, add to `~/.claude.json`:
185
201
 
186
202
  > **v1.5.15+** uses the single-command form `vmware-aria mcp`. The legacy
187
203
  > `vmware-aria-mcp` console script is still kept for backward compatibility.
188
- > If you must use `uvx --from vmware-aria vmware-aria mcp` (no install) and hit
204
+ > If you must use `uvx --from vmware-aria==2.4.4 vmware-aria mcp` (no install) and hit
189
205
  > `invalid peer certificate: UnknownIssuer` behind a corporate TLS proxy, set
190
206
  > `UV_NATIVE_TLS=true` or use the recommended `vmware-aria mcp` form above.
191
207
 
@@ -3,12 +3,16 @@
3
3
 
4
4
  要用自己的模型和 Agent 平台进行只读自测,请看 marketplace 根目录的[共享模型适配自测任务](https://github.com/vmware-skills/marketplace/blob/main/MODEL_FIT_SELF_TEST.md)。
5
5
 
6
- > **作者**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com
6
+ > **作者**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
7
7
  > 本项目由 VMware 工程师维护的社区项目,非 VMware 官方产品。
8
8
  > VMware 官方开发者工具请访问 [developer.broadcom.com](https://developer.broadcom.com)。
9
9
 
10
10
  通过 Model Context Protocol (MCP) 为 VMware Aria Operations(原 vRealize Operations)提供 AI 辅助的监控与容量规划能力。
11
11
 
12
+ MCP 默认使用本地 stdio。启用可选 HTTPS 后会打开配置的监听端口,并要求 TLS 与调用者认证;此时属于网络服务。凭据示例先创建仅当前用户可读写的占位文件,拒绝覆盖已有文件,再由用户在本地编辑秘密值。
13
+
14
+ 容器示例先在本地构建带版本标签的镜像,再用 `--pull=never` 运行,避免回退到镜像仓库拉取。本地版本标签不等于不可变的镜像摘要。
15
+
12
16
  ## 升级到 2.0
13
17
 
14
18
  2.0 把 MCP 工具名改成动词在前(共改名 4 处)(例如 `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`),完整的新旧名对照表见
@@ -40,7 +44,7 @@ vmware-policy ≥ 1.18 下仍然生效(`vmware-audit policy` 会列出因改
40
44
 
41
45
  ```bash
42
46
  # 安装
43
- uv tool install vmware-aria
47
+ uv tool install vmware-aria==2.4.4
44
48
 
45
49
  # 配置
46
50
  mkdir -p ~/.vmware-aria
@@ -56,13 +60,25 @@ default_target: prod
56
60
  EOF
57
61
 
58
62
  # 设置密码(绝不存入 config.yaml)
59
- echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.env
60
- chmod 600 ~/.vmware-aria/.env
63
+ (
64
+ umask 077
65
+ set -C # 拒绝覆盖已有文件;已有 .env 请直接用本地编辑器修改
66
+ cat > ~/.vmware-aria/.env <<'EOF'
67
+ VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
68
+ EOF
69
+ )
70
+ # 继续前,先用本地编辑器填写 .env;不要在终端命令中输入真实秘密值。
61
71
 
62
72
  # 验证配置
63
73
  vmware-aria doctor
64
74
  ```
65
75
 
76
+ 模板只写入占位符。创建后用本地编辑器填写密码或令牌;不要把真实凭据粘贴到终端命令、聊天或提交中。若文件已存在,上述命令会拒绝覆盖;直接编辑现有文件并先确认权限为 `600`。
77
+
78
+ macOS 上的 v2.4.3 会遵守系统代理对 Aria 目标的绕过规则。如果旧版本能连通 TCP/443,
79
+ 但获取认证 token 时 TLS 连接被关闭,请升级后重新运行 `vmware-aria doctor`。
80
+ `doctor --skip-auth` 只检查 TCP 连通性。
81
+
66
82
  ### 离线 / 气隙环境安装(从源码)
67
83
 
68
84
  本项目采用现代 PEP 517 构建系统(hatchling),因此**没有 `setup.py`**——这是
@@ -132,7 +148,7 @@ vmware-aria alert recommendations <alert-id>
132
148
 
133
149
  ## MCP 配置(Claude Code)
134
150
 
135
- 完成 `uv tool install vmware-aria` 后,在 `~/.claude.json` 中添加:
151
+ 完成 `uv tool install vmware-aria==2.4.4` 后,在 `~/.claude.json` 中添加:
136
152
 
137
153
  ```json
138
154
  {
@@ -149,7 +165,7 @@ vmware-aria alert recommendations <alert-id>
149
165
  ```
150
166
 
151
167
  > **v1.5.15+** 推荐使用单命令 `vmware-aria mcp`。旧的 `vmware-aria-mcp` 入口仍然
152
- > 保留以向后兼容。如必须使用 `uvx --from vmware-aria vmware-aria mcp`(不安装)
168
+ > 保留以向后兼容。如必须使用 `uvx --from vmware-aria==2.4.4 vmware-aria mcp`(不安装)
153
169
  > 且公司 TLS 代理报 `invalid peer certificate: UnknownIssuer`,请设置
154
170
  > `UV_NATIVE_TLS=true`,或直接使用上面的 `vmware-aria mcp` 形式。
155
171
 
@@ -5,7 +5,7 @@ For a read-only check of this skill with your model and agent host, use the shar
5
5
 
6
6
  > **Note**: In VCF 9.0 and later, **VMware Aria Operations** has been rebranded as **VCF Operations**. This skill works against both names — the `/suite-api/` REST endpoints are unchanged.
7
7
 
8
- > **Author**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com
8
+ > **Author**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
9
9
  > This is a community-driven project by a VMware engineer, not an official VMware product.
10
10
  > For official VMware developer tools see [developer.broadcom.com](https://developer.broadcom.com).
11
11
 
@@ -14,6 +14,10 @@ AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealiz
14
14
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
15
15
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
16
16
 
17
+ MCP uses local stdio by default. Opt-in HTTPS opens the configured listener and requires TLS plus caller authentication; it is a network service, not a local-only mode. Credential examples create owner-only placeholder files without overwriting existing files; edit secrets locally.
18
+
19
+ Container examples build a local version-tagged image and run it with `--pull=never`, avoiding registry fallback. A local version tag is not an immutable image digest.
20
+
17
21
  ## Upgrading to 2.0
18
22
 
19
23
  2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`). The full old → new table is in
@@ -47,7 +51,7 @@ against both the old and the new name, so one file serves both.
47
51
 
48
52
  ```bash
49
53
  # Install
50
- uv tool install vmware-aria
54
+ uv tool install vmware-aria==2.4.4
51
55
 
52
56
  # Configure
53
57
  mkdir -p ~/.vmware-aria
@@ -63,13 +67,25 @@ default_target: prod
63
67
  EOF
64
68
 
65
69
  # Set password (never in config.yaml)
66
- echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.env
67
- chmod 600 ~/.vmware-aria/.env
70
+ (
71
+ umask 077
72
+ set -C # Refuse existing files; edit an existing .env locally instead
73
+ cat > ~/.vmware-aria/.env <<'EOF'
74
+ VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
75
+ EOF
76
+ )
77
+ # Before continuing, edit .env locally; never type live secrets into shell commands.
68
78
 
69
79
  # Verify setup
70
80
  vmware-aria doctor
71
81
  ```
72
82
 
83
+ This writes placeholders only. Enter passwords or tokens using a local editor after creation; do not paste live credentials into terminal commands, chat or commits. If the file exists, the command refuses to overwrite it; edit the existing file after checking its permissions are `600`.
84
+
85
+ On macOS, v2.4.3 honors the system proxy bypass list for Aria targets. If an
86
+ older installation reaches TCP/443 but token acquisition ends with a TLS close,
87
+ upgrade and rerun `vmware-aria doctor`. `doctor --skip-auth` checks TCP only.
88
+
73
89
  ### Offline / Air-Gapped Install (from source)
74
90
 
75
91
  This project uses the modern PEP 517 build system (hatchling), so there is **no
@@ -142,7 +158,7 @@ vmware-aria alert recommendations <alert-id>
142
158
 
143
159
  ## MCP Setup (Claude Code)
144
160
 
145
- After `uv tool install vmware-aria`, add to `~/.claude.json`:
161
+ After `uv tool install vmware-aria==2.4.4`, add to `~/.claude.json`:
146
162
 
147
163
  ```json
148
164
  {
@@ -160,7 +176,7 @@ After `uv tool install vmware-aria`, add to `~/.claude.json`:
160
176
 
161
177
  > **v1.5.15+** uses the single-command form `vmware-aria mcp`. The legacy
162
178
  > `vmware-aria-mcp` console script is still kept for backward compatibility.
163
- > If you must use `uvx --from vmware-aria vmware-aria mcp` (no install) and hit
179
+ > If you must use `uvx --from vmware-aria==2.4.4 vmware-aria mcp` (no install) and hit
164
180
  > `invalid peer certificate: UnknownIssuer` behind a corporate TLS proxy, set
165
181
  > `UV_NATIVE_TLS=true` or use the recommended `vmware-aria mcp` form above.
166
182
 
@@ -1,4 +1,25 @@
1
- ## v2.4.2 — p95 in metric summaries; the `confirmed` alias is gone; error hints fit the error
1
+ ## v2.4.4 — Security documentation and Gemini extension packaging
2
+
3
+ Released 2026-11-09.
4
+
5
+ Clarify actual capability, credential, local-write and transport boundaries where applicable.
6
+ Pin documented setup/fallback tools and make credential examples owner-only before writing,
7
+ without overwriting existing files. Runtime permissions, TLS defaults and approval behavior are unchanged.
8
+ These edits do not establish a new ClawHub scan verdict.
9
+
10
+ Add the root Gemini CLI extension manifest and discovery metadata, using the existing canonical skill and exact MCP package version. No duplicate skill entrypoint is introduced.
11
+
12
+ Runtime infrastructure operations, permissions, TLS defaults and confirmation behavior are unchanged. No new vSphere/VCF 9.x or live product compatibility is claimed. ClawHub skill and bundle verdicts are checked separately after publication; documentation corrections are not a clean-scan claim.
13
+
14
+ ## v2.4.3 — honor macOS proxy bypass for Aria targets (2026-11-08)
15
+
16
+ * Update public author/project contact metadata to `zhouwei008@gmail.com`.
17
+
18
+ * **Connection fix:** when macOS marks an Aria host as bypassed from its system HTTPS proxy, the HTTP client now uses a direct route for that host. It still honors CA bundle settings such as `SSL_CERT_FILE`; targets without a bypass keep their existing proxy route. Previously `httpx` picked up the proxy but missed the bypass, so token acquisition failed with a TLS connection close even though the appliance was healthy.
19
+ * **Live verification on Aria Operations 8.18.7:** `get_aria_health` returned `HEALTHY`; resource and metric-key discovery succeeded. For a powered-on VM, 24-hour `cpu|usage_average` had 56 five-minute points and p95 44.154666900634766. The summary p95 exactly matched an independent nearest-rank calculation from the raw points. A powered-off VM had no CPU points and correctly reported `no_data_in_window`, not zero.
20
+
21
+
22
+ ## v2.4.2 — p95 in metric summaries; the `confirmed` alias is gone; error hints fit the error (2026-11-01)
2
23
 
3
24
  * **Breaking for callers still sending `confirmed`:** the deprecated alias on `acknowledge_alert`, `cancel_alert`,
4
25
  `delete_alert_definition`, `delete_report`, `start_resource_maintenance` and `end_resource_maintenance` is removed. A call that passes it is refused
@@ -6,7 +27,7 @@
6
27
  `confirm` previews, as before.
7
28
  * **`get_resource_metrics(summary=true)` adds `p95`** per series (nearest rank), with `p95_unavailable` saying why
8
29
  when the window holds fewer than 20 numeric points ("widen the window or use a finer interval"). Issue #22.
9
- Live on 8.18.7: 288 five-minute points, `cpu|demandmhz` p95 50.2.
30
+ Live on 8.18.7: 288 five-minute points, `cpu|demandmhz` p95 50.2. A fresh lab call on 2026-11-01 was unavailable because the configured appliance did not accept a TCP 443 connection; this release does not claim a second live measurement.
10
31
  * **Error hints fit the error.** A malformed id, a 400/404/409/422 the message already explains (including the
11
32
  9.0+-only fleet / findings / PromQL endpoints on 8.x) and a missing password env var now say "The error message
12
33
  says what to change; connectivity is not the problem" instead of sending the agent to `doctor`, which would
@@ -1663,7 +1684,7 @@ This release tracks vmware-pilot v1.5.17 (new `investigate_alert` template + `re
1663
1684
  - **[READ]/[WRITE] tool prefixes**: All MCP tool descriptions now start with [READ] or [WRITE] to clearly indicate operation type
1664
1685
  - **Read/write split counts**: SKILL.md MCP Tools section header shows exact read vs write tool counts
1665
1686
  - **Negative routing**: Description frontmatter includes "Do NOT use when..." clause to prevent misrouting
1666
- - **Broadcom author attestation**: README.md, README-CN.md, and pyproject.toml include VMware by Broadcom author identity (wei-wz.zhou@broadcom.com) to resolve Snyk E005 brand warnings
1687
+ - **Broadcom author attestation**: README.md, README-CN.md, and pyproject.toml include VMware by Broadcom author identity (zhouwei008@gmail.com) to resolve Snyk E005 brand warnings
1667
1688
 
1668
1689
  ### Aria-specific
1669
1690
 
@@ -4,13 +4,13 @@
4
4
 
5
5
  This is a community-maintained open-source project and is **not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc.** "VMware" and "Aria" are trademarks of Broadcom Inc.
6
6
 
7
- **Author**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com
7
+ **Author**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
8
8
 
9
9
  ## Reporting Vulnerabilities
10
10
 
11
11
  If you discover a security vulnerability, please report it privately:
12
12
 
13
- - **Email**: wei-wz.zhou@broadcom.com
13
+ - **Email**: zhouwei008@gmail.com
14
14
  - **GitHub**: Open a [private security advisory](https://github.com/vmware-skills/VMware-Aria/security/advisories/new)
15
15
 
16
16
  Do **not** open a public GitHub issue for security vulnerabilities.
@@ -69,7 +69,7 @@ This skill makes no webhook, HTTP listener, or outbound network connections beyo
69
69
  This project is scanned with [Bandit](https://bandit.readthedocs.io/) before every release, targeting 0 Medium+ issues:
70
70
 
71
71
  ```bash
72
- uvx bandit -r vmware_aria/
72
+ uvx bandit==1.9.4 -r vmware_aria/
73
73
  ```
74
74
 
75
75
  ## Supported Versions
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "vmware-aria",
3
+ "version": "2.4.4",
4
+ "description": "VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning",
5
+ "mcpServers": {
6
+ "vmware-aria": {
7
+ "type": "stdio",
8
+ "command": "uvx",
9
+ "args": [
10
+ "--from",
11
+ "vmware-aria==2.4.4",
12
+ "vmware-aria-mcp"
13
+ ]
14
+ }
15
+ }
16
+ }
@@ -11,7 +11,7 @@
11
11
  "command": "uvx",
12
12
  "args": [
13
13
  "--from",
14
- "vmware-aria==2.4.2",
14
+ "vmware-aria==2.4.4",
15
15
  "vmware-aria-mcp"
16
16
  ]
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zw008/vmware-aria",
3
- "version": "2.4.2",
3
+ "version": "2.4.4",
4
4
  "description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
5
5
  "private": true,
6
6
  "license": "MIT",
@@ -4,12 +4,12 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vmware-aria"
7
- version = "2.4.2"
7
+ version = "2.4.4"
8
8
  description = "VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning"
9
9
  readme = "README.md"
10
10
  license = "MIT"
11
11
  requires-python = ">=3.10"
12
- authors = [{ name = "Wei Zhou", email = "wei-wz.zhou@broadcom.com" }]
12
+ authors = [{ name = "Wei Zhou", email = "zhouwei008@gmail.com" }]
13
13
  keywords = ["vmware", "aria", "vrealize", "vrops", "monitoring", "capacity", "mcp", "ai-ops"]
14
14
  classifiers = [
15
15
  "Development Status :: 4 - Beta",
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/vmware-skills/VMware-Aria",
8
8
  "source": "github"
9
9
  },
10
- "version": "2.4.2",
10
+ "version": "2.4.4",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "vmware-aria",
15
- "version": "2.4.2",
15
+ "version": "2.4.4",
16
16
  "runtimeHint": "uvx",
17
17
  "packageArguments": [
18
18
  {
@@ -16,7 +16,7 @@ compatibility: >
16
16
  vmware-policy auto-installed as Python dependency (provides @vmware_tool decorator and audit logging). All write operations audited to ~/.vmware/audit.db.
17
17
  Credentials: Each Aria Operations target requires a per-target password env var in ~/.vmware-aria/.env following the pattern VMWARE_ARIA_<TARGET_NAME_UPPER>_PASSWORD. Passwords are never logged or echoed.
18
18
  Read-heavy: 36 of 46 tools are read-only. Write operations limited to alert acknowledge/cancel, alert notes, alert definition management, report management, and resource maintenance start/end.
19
- No webhooks, no outbound network calls, no guest operations. Local only: stdio MCP + Aria Operations REST API (HTTPS 443).
19
+ No webhooks or guest operations. API calls use the configured Aria endpoint (HTTPS 443); MCP defaults to stdio, with opt-in authenticated HTTPS.
20
20
  Transitive dependencies: Only vmware-policy (audit/policy). No post-install scripts or background services.
21
21
  ---
22
22
 
@@ -51,7 +51,7 @@ VMware Aria Operations (vRealize Operations 8.x, VCF Operations 9.x) AI-assisted
51
51
  ## Quick Install
52
52
 
53
53
  ```bash
54
- uv tool install vmware-aria==2.4.2
54
+ uv tool install vmware-aria==2.4.4
55
55
  vmware-aria init # guided setup: writes config + .env (chmod 600, password grep-safe), then verifies
56
56
  vmware-aria doctor
57
57
  ```
@@ -308,13 +308,13 @@ Set `VMWARE_ARIA_<TARGET_NAME_UPPER>_PASSWORD` (hyphens become underscores; targ
308
308
 
309
309
  ### `invalid peer certificate: UnknownIssuer` when running uvx (corporate TLS proxy)
310
310
 
311
- `uvx` re-resolves from PyPI on every launch, and a TLS-intercepting proxy breaks that. Run `vmware-aria mcp` after `uv tool install vmware-aria==2.4.2` (no network on launch), or set `UV_NATIVE_TLS=true` to use the system cert store.
311
+ `uvx` re-resolves from PyPI on every launch, and a TLS-intercepting proxy breaks that. Run `vmware-aria mcp` after `uv tool install vmware-aria==2.4.4` (no network on launch), or set `UV_NATIVE_TLS=true` to use the system cert store.
312
312
 
313
313
  ## Audit & Safety
314
314
 
315
315
  1. **Source code**: [github.com/vmware-skills/VMware-Aria](https://github.com/vmware-skills/VMware-Aria) (MIT).
316
316
  2. **Config and credentials**: `config.yaml` holds hosts and usernames only; passwords live in `~/.vmware-aria/.env` (chmod 600) as `VMWARE_ARIA_<TARGET>_PASSWORD` and are never logged.
317
- 3. **No webhooks**: no outbound calls besides the Aria Operations REST API over HTTPS 443; the MCP server is local stdio.
317
+ 3. **Network**: no webhooks. API calls use configured Aria HTTPS endpoints; MCP defaults to local stdio, with opt-in authenticated HTTPS.
318
318
  4. **TLS**: verification on by default; for a private CA set `SSL_CERT_FILE` rather than `verify_ssl: false` (isolated labs only).
319
319
  5. **Prompt-injection defense**: API text is sanitized (control characters stripped, length capped) before it reaches the agent.
320
320
  6. **Least privilege**: use an Aria Operations account with read-only roles unless the write tools (alert acknowledge/cancel, alert notes, alert definitions, reports, resource maintenance) are needed.
@@ -16,19 +16,19 @@ Complete setup and security guide for `vmware-aria`.
16
16
  ### Via uv (recommended)
17
17
 
18
18
  ```bash
19
- uv tool install vmware-aria==2.4.2
19
+ uv tool install vmware-aria==2.4.4
20
20
  ```
21
21
 
22
22
  ### Via pip
23
23
 
24
24
  ```bash
25
- pip install vmware-aria==2.4.2
25
+ pip install vmware-aria==2.4.4
26
26
  ```
27
27
 
28
28
  ### From source
29
29
 
30
30
  ```bash
31
- git clone --branch v2.4.2 https://github.com/vmware-skills/VMware-Aria.git
31
+ git clone --branch v2.4.4 https://github.com/vmware-skills/VMware-Aria.git
32
32
  cd VMware-Aria
33
33
  pip install -e .
34
34
  ```
@@ -65,16 +65,21 @@ default_target: prod
65
65
 
66
66
  **Option A — .env file (recommended)**:
67
67
  ```bash
68
- cat > ~/.vmware-aria/.env << 'EOF'
69
- VMWARE_ARIA_PROD_PASSWORD=your_password_here
68
+ (
69
+ umask 077
70
+ set -C # Refuse existing files; edit an existing .env locally instead
71
+ cat > ~/.vmware-aria/.env <<'EOF'
72
+ VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
70
73
  EOF
71
- chmod 600 ~/.vmware-aria/.env
74
+ )
75
+ # Before continuing, edit .env locally; never type live secrets into shell commands.
72
76
  ```
73
77
 
74
- **Option B — shell environment**:
75
- ```bash
76
- export VMWARE_ARIA_PROD_PASSWORD=your_password_here
77
- ```
78
+ This writes placeholders only. Enter passwords or tokens using a local editor after creation; do not paste live credentials into terminal commands, chat or commits. If the file exists, the command refuses to overwrite it; edit the existing file after checking its permissions are `600`.
79
+
80
+ **Option B — injected environment**: have your secret manager or launcher set
81
+ `VMWARE_ARIA_PROD_PASSWORD` in the process environment. Do not type the secret in
82
+ a terminal command or include it in MCP configuration committed to source control.
78
83
 
79
84
  Password variable naming convention: `VMWARE_ARIA_<TARGET_UPPER>_PASSWORD`
80
85
  - Target `prod` → `VMWARE_ARIA_PROD_PASSWORD`
@@ -194,7 +199,7 @@ Add to `~/.claude.json` (or use `claude mcp add`):
194
199
 
195
200
  > v1.5.15+ recommends `vmware-aria mcp`. Pre-1.5.15 used the legacy
196
201
  > `vmware-aria-mcp` console script (still kept for backward compatibility).
197
- > If using `uvx --from vmware-aria==2.4.2 vmware-aria mcp` and you hit
202
+ > If using `uvx --from vmware-aria==2.4.4 vmware-aria mcp` and you hit
198
203
  > `invalid peer certificate: UnknownIssuer` behind a corporate TLS proxy,
199
204
  > set `UV_NATIVE_TLS=true` or use the recommended form above.
200
205
 
@@ -307,19 +312,19 @@ decide:
307
312
  ### Build and run
308
313
 
309
314
  ```bash
310
- docker build -t vmware-aria .
311
- docker run -i \
315
+ docker build -t vmware-aria:2.4.4 .
316
+ docker run --pull=never -i \
312
317
  -v ~/.vmware-aria:/root/.vmware-aria:ro \
313
318
  -e VMWARE_ARIA_CONFIG=/root/.vmware-aria/config.yaml \
314
- vmware-aria
319
+ vmware-aria:2.4.4
315
320
  ```
316
321
 
322
+ These commands run the image built locally above; `--pull=never` prevents a missing local image from falling back to a registry. The version tag identifies this build, not an immutable digest.
323
+
317
324
  ### Using docker-compose
318
325
 
319
326
  ```bash
320
- # Set password in your shell first
321
- export VMWARE_ARIA_PROD_PASSWORD=your_password
322
-
327
+ # Inject VMWARE_ARIA_PROD_PASSWORD through your secret manager/launcher first.
323
328
  docker-compose up
324
329
  ```
325
330
 
@@ -361,7 +366,7 @@ Aria Operations Manager
361
366
  VMs / Hosts / Clusters / Datastores / Alerts / Capacity
362
367
  ```
363
368
 
364
- The MCP server uses stdio transport (local only, no network listener). Connections to Aria Ops use HTTPS on port 443 with vRealizeOpsToken authentication (6-hour sliding token validity, auto-refreshed).
369
+ By default the MCP server uses local stdio without a listener; opt-in HTTPS opens a listener and requires TLS plus caller authentication. Connections to Aria Ops use HTTPS on port 443 with vRealizeOpsToken authentication (6-hour sliding token validity, auto-refreshed).
365
370
 
366
371
  ## Security Notes
367
372
 
@@ -371,7 +376,7 @@ The MCP server uses stdio transport (local only, no network listener). Connectio
371
376
  - **Never** store passwords in `config.yaml` — use env vars or `.env` file
372
377
  - `.env` file must be `chmod 600` (owner read/write only)
373
378
  - TLS verification is on by default (`verify_ssl: true`); trust a private CA with `SSL_CERT_FILE` rather than disabling verification (see [TLS Certificate Verification](#tls-certificate-verification))
374
- - The MCP server uses stdio transport — it runs locally only, no network listener
379
+ - By default the MCP server uses local stdio without a listener. Opt-in HTTPS requires TLS plus caller authentication and opens the configured listener
375
380
  - Audit log at `~/.vmware/audit.db` (SQLite WAL, via vmware-policy) records all write operations (alert acknowledge/cancel, alert definition management, report generate/delete)
376
381
  - Tokens have a 6-hour sliding validity (extended on each call); the client re-acquires automatically 60 seconds before expiry. Requests carry `Authorization: vRealizeOpsToken <token>`
377
382
 
@@ -0,0 +1,47 @@
1
+ """A macOS proxy bypass must cover the Aria HTTP client, including login."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import time
6
+ import urllib.request
7
+
8
+ import httpx
9
+
10
+ from vmware_aria import connection
11
+ from vmware_aria.config import TargetConfig
12
+
13
+
14
+ def test_system_proxy_bypass_routes_aria_auth_directly(monkeypatch):
15
+ """httpx sees system proxies but does not apply macOS's bypass list."""
16
+ monkeypatch.setenv("HTTPS_PROXY", "http://127.0.0.1:1")
17
+ monkeypatch.delenv("NO_PROXY", raising=False)
18
+ monkeypatch.setattr(urllib.request, "proxy_bypass", lambda host: host == "aria.invalid")
19
+
20
+ seen = []
21
+
22
+ def direct(request: httpx.Request) -> httpx.Response:
23
+ seen.append(request.url.path)
24
+ if request.url.path.endswith("/auth/token/acquire"):
25
+ return httpx.Response(
26
+ 200,
27
+ json={"token": "test-token", "validity": int((time.time() + 3600) * 1000)},
28
+ )
29
+ return httpx.Response(200, json={})
30
+
31
+ monkeypatch.setattr(
32
+ connection.httpx,
33
+ "HTTPTransport",
34
+ lambda **_kwargs: httpx.MockTransport(direct),
35
+ )
36
+
37
+ client = connection.AriaClient(
38
+ TargetConfig(host="aria.invalid", username="admin", verify_ssl=False),
39
+ "test-password",
40
+ )
41
+ try:
42
+ assert client._token == "test-token"
43
+ assert client._client.get("https://aria.invalid/suite-api/api/resources").status_code == 200
44
+ assert any(path.endswith("/auth/token/acquire") for path in seen)
45
+ assert any(path.endswith("/resources") for path in seen)
46
+ finally:
47
+ client.close()
@@ -1142,7 +1142,7 @@ wheels = [
1142
1142
 
1143
1143
  [[package]]
1144
1144
  name = "vmware-aria"
1145
- version = "2.4.2"
1145
+ version = "2.4.4"
1146
1146
  source = { editable = "." }
1147
1147
  dependencies = [
1148
1148
  { name = "httpx" },
@@ -1,3 +1,3 @@
1
1
  """VMware Aria Operations (vRealize Operations) monitoring and capacity planning."""
2
2
 
3
- __version__ = "2.4.2"
3
+ __version__ = "2.4.4"
@@ -17,6 +17,7 @@ from __future__ import annotations
17
17
  import logging
18
18
  import re
19
19
  import time
20
+ import urllib.request
20
21
  from typing import Any
21
22
 
22
23
  import httpx
@@ -288,10 +289,19 @@ class AriaClient:
288
289
  self._product_version: str | None | object = _UNPROBED
289
290
 
290
291
 
292
+ # httpx reads macOS system proxies but can miss their bypass list. Route
293
+ # an explicitly bypassed Aria host directly while keeping trust_env for
294
+ # CA bundle settings such as SSL_CERT_FILE.
295
+ mounts = None
296
+ if urllib.request.proxy_bypass(target.host):
297
+ origin = f"https://{target.host}:{target.port}"
298
+ mounts = {origin: httpx.HTTPTransport(verify=target.verify_ssl, trust_env=True)}
299
+
291
300
  self._client = httpx.Client(
292
301
  base_url=self._base_url,
293
302
  verify=target.verify_ssl,
294
303
  timeout=30.0,
304
+ mounts=mounts,
295
305
  )
296
306
  self._acquire_token()
297
307
 
File without changes
File without changes
File without changes
File without changes