mcp-openstack-ops 3.5.2__tar.gz → 3.5.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 (162) hide show
  1. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.github/workflows/pypi-publish.yml +1 -1
  2. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/PKG-INFO +3 -3
  3. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/README.md +1 -1
  4. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/pyproject.toml +1 -1
  5. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/PKG-INFO +3 -3
  6. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/requires.txt +1 -1
  7. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/scm_file_list.json +117 -117
  8. mcp_openstack_ops-3.5.4/src/mcp_openstack_ops.egg-info/scm_version.json +8 -0
  9. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/uv.lock +70 -68
  10. mcp_openstack_ops-3.5.2/src/mcp_openstack_ops.egg-info/scm_version.json +0 -8
  11. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.env.example +0 -0
  12. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.env.test +0 -0
  13. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.github/FUNDING.yml +0 -0
  14. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.github/copilot-instructions.md +0 -0
  15. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.github/dependabot.yml +0 -0
  16. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.gitignore +0 -0
  17. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.gitleaks.toml +0 -0
  18. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.pre-commit-config.yaml +0 -0
  19. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/.python-version +0 -0
  20. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/Dockerfile.MCP-Server +0 -0
  21. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/Dockerfile.MCPO-Proxy +0 -0
  22. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/LICENSE +0 -0
  23. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/MANIFEST.in +0 -0
  24. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/build-mcp-server-docker-image.sh +0 -0
  25. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/build-mcpo-server-docker-image.sh +0 -0
  26. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/diagnose_openstack.py +0 -0
  27. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/docker-compose.yml +0 -0
  28. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/img/MCP-Workflow-of-Quickstart-Tutorial.png +0 -0
  29. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/img/screenshot-claude-desktop.png +0 -0
  30. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/img/screenshot-claude-desktop.png:Zone.Identifier +0 -0
  31. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/img/screenshot-example-cluster-status.png +0 -0
  32. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/img/screenshot-openstack-dashboard.png +0 -0
  33. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/main.py +0 -0
  34. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/mcp-config.json.http +0 -0
  35. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/mcp-config.json.multi-project +0 -0
  36. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/mcp-config.json.stdio +0 -0
  37. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/scripts/mcp-server-docker-cmd.sh +0 -0
  38. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/scripts/run-mcp-inspector-local.sh +0 -0
  39. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/scripts/run-mcp-inspector-pypi.sh +0 -0
  40. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/setup.cfg +0 -0
  41. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/__init__.py +0 -0
  42. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/__main__.py +0 -0
  43. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/connection.py +0 -0
  44. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/functions.py +0 -0
  45. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/mcp_main.py +0 -0
  46. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/prompt_template.md +0 -0
  47. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/__init__.py +0 -0
  48. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/compute.py +0 -0
  49. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/core.py +0 -0
  50. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/identity.py +0 -0
  51. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/image.py +0 -0
  52. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/__init__.py +0 -0
  53. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/amphorae.py +0 -0
  54. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/core.py +0 -0
  55. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/health_monitors.py +0 -0
  56. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/l7_policies.py +0 -0
  57. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/listeners.py +0 -0
  58. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/management.py +0 -0
  59. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/load_balancer/pools.py +0 -0
  60. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/monitoring.py +0 -0
  61. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/network.py +0 -0
  62. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/orchestration.py +0 -0
  63. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/services/storage.py +0 -0
  64. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/__init__.py +0 -0
  65. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_availability_zones.py +0 -0
  66. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_floating_ip_pools.py +0 -0
  67. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_floating_ips.py +0 -0
  68. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_heat_stacks.py +0 -0
  69. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_hypervisor_details.py +0 -0
  70. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_image_detail_list.py +0 -0
  71. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_instance.py +0 -0
  72. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_instance_by_name.py +0 -0
  73. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_instance_details.py +0 -0
  74. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_instances_by_status.py +0 -0
  75. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_keypair_list.py +0 -0
  76. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py +0 -0
  77. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py +0 -0
  78. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_details.py +0 -0
  79. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_flavors.py +0 -0
  80. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py +0 -0
  81. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py +0 -0
  82. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py +0 -0
  83. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_list.py +0 -0
  84. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_listeners.py +0 -0
  85. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py +0 -0
  86. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_pools.py +0 -0
  87. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_providers.py +0 -0
  88. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_load_balancer_quotas.py +0 -0
  89. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_network_details.py +0 -0
  90. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_project_details.py +0 -0
  91. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_quota.py +0 -0
  92. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_resource_monitoring.py +0 -0
  93. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_role_assignments.py +0 -0
  94. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_routers.py +0 -0
  95. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_security_groups.py +0 -0
  96. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_server_events.py +0 -0
  97. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_server_groups.py +0 -0
  98. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_server_volumes.py +0 -0
  99. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_service_status.py +0 -0
  100. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_usage_statistics.py +0 -0
  101. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_user_list.py +0 -0
  102. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_volume_list.py +0 -0
  103. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_volume_snapshots.py +0 -0
  104. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/get_volume_types.py +0 -0
  105. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/search_instances.py +0 -0
  106. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_alarms.py +0 -0
  107. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_compute_agents.py +0 -0
  108. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_domains.py +0 -0
  109. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_flavor.py +0 -0
  110. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_floating_ip.py +0 -0
  111. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py +0 -0
  112. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_heat_stack.py +0 -0
  113. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_identity_groups.py +0 -0
  114. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_image.py +0 -0
  115. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_image_members.py +0 -0
  116. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_image_metadata.py +0 -0
  117. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_image_visibility.py +0 -0
  118. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_instance.py +0 -0
  119. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_keypair.py +0 -0
  120. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer.py +0 -0
  121. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_amphora.py +0 -0
  122. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py +0 -0
  123. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_flavor.py +0 -0
  124. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py +0 -0
  125. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py +0 -0
  126. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py +0 -0
  127. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_listener.py +0 -0
  128. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_pool.py +0 -0
  129. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py +0 -0
  130. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_load_balancer_quota.py +0 -0
  131. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_metrics.py +0 -0
  132. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_network_agents.py +0 -0
  133. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_network_ports.py +0 -0
  134. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_network_qos_policies.py +0 -0
  135. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_networks.py +0 -0
  136. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_project.py +0 -0
  137. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_quota.py +0 -0
  138. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_roles.py +0 -0
  139. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_backup.py +0 -0
  140. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_dump.py +0 -0
  141. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_fixed_ip.py +0 -0
  142. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_floating_ip.py +0 -0
  143. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_group.py +0 -0
  144. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_migration.py +0 -0
  145. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_network.py +0 -0
  146. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_properties.py +0 -0
  147. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_security_group.py +0 -0
  148. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_server_volume.py +0 -0
  149. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_service_logs.py +0 -0
  150. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_services.py +0 -0
  151. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_snapshot.py +0 -0
  152. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_subnets.py +0 -0
  153. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_volume.py +0 -0
  154. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_volume_backups.py +0 -0
  155. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_volume_groups.py +0 -0
  156. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops/tools/set_volume_qos.py +0 -0
  157. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/SOURCES.txt +0 -0
  158. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/dependency_links.txt +0 -0
  159. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/entry_points.txt +0 -0
  160. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/src/mcp_openstack_ops.egg-info/top_level.txt +0 -0
  161. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/test_compatibility.sh +0 -0
  162. {mcp_openstack_ops-3.5.2 → mcp_openstack_ops-3.5.4}/test_project_isolation.py +0 -0
@@ -19,7 +19,7 @@ jobs:
19
19
  with:
20
20
  persist-credentials: false
21
21
  fetch-depth: 0
22
- - uses: actions/setup-python@v6
22
+ - uses: actions/setup-python@v7
23
23
  with:
24
24
  python-version: "3.12.x"
25
25
  - name: Install build tool
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-openstack-ops
3
- Version: 3.5.2
3
+ Version: 3.5.4
4
4
  Summary: OpenStack operations automation MCP server
5
5
  Author-email: JungJungIn <call518@gmail.com>
6
6
  Requires-Python: >=3.12
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: fastmcp>=2.12.3
10
- Requires-Dist: openstacksdk<=4.17.0,>=4.1.0
10
+ Requires-Dist: openstacksdk<=4.20.0,>=4.1.0
11
11
  Requires-Dist: python-dotenv>=1.1.1
12
12
  Requires-Dist: setuptools-scm>=10.0.5
13
13
  Requires-Dist: pre-commit>=4.6.0
@@ -33,7 +33,7 @@ Dynamic: license-file
33
33
 
34
34
  ## Architecture & Internal (DeepWiki)
35
35
 
36
- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/call518/MCP-OpenStack-Ops)
36
+ [![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-blue)](https://deepwiki.com/call518/MCP-OpenStack-Ops)
37
37
 
38
38
  ---
39
39
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## Architecture & Internal (DeepWiki)
17
17
 
18
- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/call518/MCP-OpenStack-Ops)
18
+ [![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-blue)](https://deepwiki.com/call518/MCP-OpenStack-Ops)
19
19
 
20
20
  ---
21
21
 
@@ -7,7 +7,7 @@ requires-python = ">=3.12"
7
7
  authors = [{ name = "JungJungIn", email = "call518@gmail.com" }]
8
8
  dependencies = [
9
9
  "fastmcp>=2.12.3",
10
- "openstacksdk>=4.1.0,<=4.17.0",
10
+ "openstacksdk>=4.1.0,<=4.20.0",
11
11
  "python-dotenv>=1.1.1",
12
12
  "setuptools-scm>=10.0.5",
13
13
  "pre-commit>=4.6.0",
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-openstack-ops
3
- Version: 3.5.2
3
+ Version: 3.5.4
4
4
  Summary: OpenStack operations automation MCP server
5
5
  Author-email: JungJungIn <call518@gmail.com>
6
6
  Requires-Python: >=3.12
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: fastmcp>=2.12.3
10
- Requires-Dist: openstacksdk<=4.17.0,>=4.1.0
10
+ Requires-Dist: openstacksdk<=4.20.0,>=4.1.0
11
11
  Requires-Dist: python-dotenv>=1.1.1
12
12
  Requires-Dist: setuptools-scm>=10.0.5
13
13
  Requires-Dist: pre-commit>=4.6.0
@@ -33,7 +33,7 @@ Dynamic: license-file
33
33
 
34
34
  ## Architecture & Internal (DeepWiki)
35
35
 
36
- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/call518/MCP-OpenStack-Ops)
36
+ [![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-blue)](https://deepwiki.com/call518/MCP-OpenStack-Ops)
37
37
 
38
38
  ---
39
39
 
@@ -1,5 +1,5 @@
1
1
  fastmcp>=2.12.3
2
- openstacksdk<=4.17.0,>=4.1.0
2
+ openstacksdk<=4.20.0,>=4.1.0
3
3
  python-dotenv>=1.1.1
4
4
  setuptools-scm>=10.0.5
5
5
  pre-commit>=4.6.0
@@ -1,155 +1,155 @@
1
1
  {
2
2
  "files": [
3
- ".pre-commit-config.yaml",
3
+ ".env.example",
4
4
  ".env.test",
5
- "README.md",
6
- "uv.lock",
7
- "Dockerfile.MCPO-Proxy",
5
+ ".github/FUNDING.yml",
6
+ ".github/copilot-instructions.md",
7
+ ".github/dependabot.yml",
8
+ ".github/workflows/pypi-publish.yml",
9
+ ".gitignore",
10
+ ".gitleaks.toml",
11
+ ".pre-commit-config.yaml",
8
12
  ".python-version",
9
- "LICENSE",
10
13
  "Dockerfile.MCP-Server",
11
- "mcp-config.json.stdio",
12
- "pyproject.toml",
13
- "mcp-config.json.http",
14
- "test_project_isolation.py",
14
+ "Dockerfile.MCPO-Proxy",
15
+ "LICENSE",
16
+ "MANIFEST.in",
17
+ "README.md",
15
18
  "build-mcp-server-docker-image.sh",
16
- "test_compatibility.sh",
19
+ "build-mcpo-server-docker-image.sh",
17
20
  "diagnose_openstack.py",
18
- "mcp-config.json.multi-project",
19
- "MANIFEST.in",
20
- ".env.example",
21
- "main.py",
22
- ".gitleaks.toml",
23
- ".gitignore",
24
21
  "docker-compose.yml",
25
- "build-mcpo-server-docker-image.sh",
22
+ "img/MCP-Workflow-of-Quickstart-Tutorial.png",
23
+ "img/screenshot-claude-desktop.png",
24
+ "img/screenshot-claude-desktop.png:Zone.Identifier",
25
+ "img/screenshot-example-cluster-status.png",
26
+ "img/screenshot-openstack-dashboard.png",
27
+ "main.py",
28
+ "mcp-config.json.http",
29
+ "mcp-config.json.multi-project",
30
+ "mcp-config.json.stdio",
31
+ "pyproject.toml",
32
+ "scripts/mcp-server-docker-cmd.sh",
26
33
  "scripts/run-mcp-inspector-local.sh",
27
34
  "scripts/run-mcp-inspector-pypi.sh",
28
- "scripts/mcp-server-docker-cmd.sh",
29
35
  "src/mcp_openstack_ops/__init__.py",
30
- "src/mcp_openstack_ops/functions.py",
31
- "src/mcp_openstack_ops/prompt_template.md",
36
+ "src/mcp_openstack_ops/__main__.py",
32
37
  "src/mcp_openstack_ops/connection.py",
38
+ "src/mcp_openstack_ops/functions.py",
33
39
  "src/mcp_openstack_ops/mcp_main.py",
34
- "src/mcp_openstack_ops/__main__.py",
35
- "src/mcp_openstack_ops/services/monitoring.py",
36
- "src/mcp_openstack_ops/services/network.py",
37
- "src/mcp_openstack_ops/services/core.py",
40
+ "src/mcp_openstack_ops/prompt_template.md",
38
41
  "src/mcp_openstack_ops/services/__init__.py",
39
- "src/mcp_openstack_ops/services/image.py",
40
42
  "src/mcp_openstack_ops/services/compute.py",
41
- "src/mcp_openstack_ops/services/storage.py",
42
- "src/mcp_openstack_ops/services/orchestration.py",
43
+ "src/mcp_openstack_ops/services/core.py",
43
44
  "src/mcp_openstack_ops/services/identity.py",
44
- "src/mcp_openstack_ops/services/load_balancer/core.py",
45
+ "src/mcp_openstack_ops/services/image.py",
45
46
  "src/mcp_openstack_ops/services/load_balancer/__init__.py",
46
- "src/mcp_openstack_ops/services/load_balancer/management.py",
47
- "src/mcp_openstack_ops/services/load_balancer/l7_policies.py",
48
- "src/mcp_openstack_ops/services/load_balancer/listeners.py",
49
47
  "src/mcp_openstack_ops/services/load_balancer/amphorae.py",
48
+ "src/mcp_openstack_ops/services/load_balancer/core.py",
50
49
  "src/mcp_openstack_ops/services/load_balancer/health_monitors.py",
50
+ "src/mcp_openstack_ops/services/load_balancer/l7_policies.py",
51
+ "src/mcp_openstack_ops/services/load_balancer/listeners.py",
52
+ "src/mcp_openstack_ops/services/load_balancer/management.py",
51
53
  "src/mcp_openstack_ops/services/load_balancer/pools.py",
52
- "src/mcp_openstack_ops/tools/get_instance.py",
53
- "src/mcp_openstack_ops/tools/get_floating_ips.py",
54
- "src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py",
55
- "src/mcp_openstack_ops/tools/set_service_logs.py",
56
- "src/mcp_openstack_ops/tools/set_load_balancer_pool.py",
57
- "src/mcp_openstack_ops/tools/set_server_group.py",
58
- "src/mcp_openstack_ops/tools/set_network_qos_policies.py",
59
- "src/mcp_openstack_ops/tools/set_quota.py",
60
- "src/mcp_openstack_ops/tools/get_usage_statistics.py",
61
- "src/mcp_openstack_ops/tools/set_network_agents.py",
62
- "src/mcp_openstack_ops/tools/get_service_status.py",
63
- "src/mcp_openstack_ops/tools/set_metrics.py",
64
- "src/mcp_openstack_ops/tools/set_services.py",
65
- "src/mcp_openstack_ops/tools/set_networks.py",
54
+ "src/mcp_openstack_ops/services/monitoring.py",
55
+ "src/mcp_openstack_ops/services/network.py",
56
+ "src/mcp_openstack_ops/services/orchestration.py",
57
+ "src/mcp_openstack_ops/services/storage.py",
66
58
  "src/mcp_openstack_ops/tools/__init__.py",
67
- "src/mcp_openstack_ops/tools/search_instances.py",
68
- "src/mcp_openstack_ops/tools/set_image_visibility.py",
69
- "src/mcp_openstack_ops/tools/set_volume_qos.py",
70
59
  "src/mcp_openstack_ops/tools/get_availability_zones.py",
60
+ "src/mcp_openstack_ops/tools/get_floating_ip_pools.py",
61
+ "src/mcp_openstack_ops/tools/get_floating_ips.py",
62
+ "src/mcp_openstack_ops/tools/get_heat_stacks.py",
63
+ "src/mcp_openstack_ops/tools/get_hypervisor_details.py",
64
+ "src/mcp_openstack_ops/tools/get_image_detail_list.py",
65
+ "src/mcp_openstack_ops/tools/get_instance.py",
66
+ "src/mcp_openstack_ops/tools/get_instance_by_name.py",
67
+ "src/mcp_openstack_ops/tools/get_instance_details.py",
68
+ "src/mcp_openstack_ops/tools/get_instances_by_status.py",
71
69
  "src/mcp_openstack_ops/tools/get_keypair_list.py",
72
70
  "src/mcp_openstack_ops/tools/get_load_balancer_amphorae.py",
71
+ "src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py",
72
+ "src/mcp_openstack_ops/tools/get_load_balancer_details.py",
73
+ "src/mcp_openstack_ops/tools/get_load_balancer_flavors.py",
74
+ "src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py",
75
+ "src/mcp_openstack_ops/tools/get_load_balancer_l7_policies.py",
76
+ "src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py",
77
+ "src/mcp_openstack_ops/tools/get_load_balancer_list.py",
73
78
  "src/mcp_openstack_ops/tools/get_load_balancer_listeners.py",
74
- "src/mcp_openstack_ops/tools/set_server_security_group.py",
75
- "src/mcp_openstack_ops/tools/set_heat_stack.py",
76
- "src/mcp_openstack_ops/tools/set_roles.py",
77
- "src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py",
78
- "src/mcp_openstack_ops/tools/set_image_metadata.py",
79
- "src/mcp_openstack_ops/tools/get_routers.py",
80
- "src/mcp_openstack_ops/tools/set_load_balancer.py",
81
- "src/mcp_openstack_ops/tools/set_server_dump.py",
82
- "src/mcp_openstack_ops/tools/set_server_properties.py",
83
- "src/mcp_openstack_ops/tools/set_image_members.py",
84
- "src/mcp_openstack_ops/tools/set_load_balancer_listener.py",
85
- "src/mcp_openstack_ops/tools/set_snapshot.py",
86
- "src/mcp_openstack_ops/tools/set_compute_agents.py",
87
- "src/mcp_openstack_ops/tools/set_volume_groups.py",
88
- "src/mcp_openstack_ops/tools/get_image_detail_list.py",
89
- "src/mcp_openstack_ops/tools/get_role_assignments.py",
90
- "src/mcp_openstack_ops/tools/set_server_fixed_ip.py",
91
- "src/mcp_openstack_ops/tools/get_hypervisor_details.py",
92
- "src/mcp_openstack_ops/tools/get_volume_list.py",
93
- "src/mcp_openstack_ops/tools/get_heat_stacks.py",
94
- "src/mcp_openstack_ops/tools/set_server_migration.py",
95
- "src/mcp_openstack_ops/tools/get_instances_by_status.py",
96
79
  "src/mcp_openstack_ops/tools/get_load_balancer_pool_members.py",
97
- "src/mcp_openstack_ops/tools/set_volume.py",
98
- "src/mcp_openstack_ops/tools/set_floating_ip.py",
99
- "src/mcp_openstack_ops/tools/set_volume_backups.py",
80
+ "src/mcp_openstack_ops/tools/get_load_balancer_pools.py",
81
+ "src/mcp_openstack_ops/tools/get_load_balancer_providers.py",
82
+ "src/mcp_openstack_ops/tools/get_load_balancer_quotas.py",
83
+ "src/mcp_openstack_ops/tools/get_network_details.py",
84
+ "src/mcp_openstack_ops/tools/get_project_details.py",
100
85
  "src/mcp_openstack_ops/tools/get_quota.py",
101
- "src/mcp_openstack_ops/tools/set_alarms.py",
102
- "src/mcp_openstack_ops/tools/set_load_balancer_flavor.py",
103
- "src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py",
104
86
  "src/mcp_openstack_ops/tools/get_resource_monitoring.py",
87
+ "src/mcp_openstack_ops/tools/get_role_assignments.py",
88
+ "src/mcp_openstack_ops/tools/get_routers.py",
89
+ "src/mcp_openstack_ops/tools/get_security_groups.py",
90
+ "src/mcp_openstack_ops/tools/get_server_events.py",
91
+ "src/mcp_openstack_ops/tools/get_server_groups.py",
92
+ "src/mcp_openstack_ops/tools/get_server_volumes.py",
93
+ "src/mcp_openstack_ops/tools/get_service_status.py",
94
+ "src/mcp_openstack_ops/tools/get_usage_statistics.py",
105
95
  "src/mcp_openstack_ops/tools/get_user_list.py",
96
+ "src/mcp_openstack_ops/tools/get_volume_list.py",
97
+ "src/mcp_openstack_ops/tools/get_volume_snapshots.py",
98
+ "src/mcp_openstack_ops/tools/get_volume_types.py",
99
+ "src/mcp_openstack_ops/tools/search_instances.py",
100
+ "src/mcp_openstack_ops/tools/set_alarms.py",
101
+ "src/mcp_openstack_ops/tools/set_compute_agents.py",
102
+ "src/mcp_openstack_ops/tools/set_domains.py",
103
+ "src/mcp_openstack_ops/tools/set_flavor.py",
104
+ "src/mcp_openstack_ops/tools/set_floating_ip.py",
106
105
  "src/mcp_openstack_ops/tools/set_floating_ip_port_forwarding.py",
107
- "src/mcp_openstack_ops/tools/get_load_balancer_availability_zones.py",
106
+ "src/mcp_openstack_ops/tools/set_heat_stack.py",
107
+ "src/mcp_openstack_ops/tools/set_identity_groups.py",
108
108
  "src/mcp_openstack_ops/tools/set_image.py",
109
- "src/mcp_openstack_ops/tools/get_security_groups.py",
110
- "src/mcp_openstack_ops/tools/get_load_balancer_quotas.py",
111
- "src/mcp_openstack_ops/tools/set_server_network.py",
112
- "src/mcp_openstack_ops/tools/get_load_balancer_l7_rules.py",
113
- "src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py",
114
- "src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py",
115
- "src/mcp_openstack_ops/tools/set_server_volume.py",
109
+ "src/mcp_openstack_ops/tools/set_image_members.py",
110
+ "src/mcp_openstack_ops/tools/set_image_metadata.py",
111
+ "src/mcp_openstack_ops/tools/set_image_visibility.py",
112
+ "src/mcp_openstack_ops/tools/set_instance.py",
116
113
  "src/mcp_openstack_ops/tools/set_keypair.py",
117
- "src/mcp_openstack_ops/tools/get_load_balancer_health_monitors.py",
118
- "src/mcp_openstack_ops/tools/get_load_balancer_providers.py",
119
- "src/mcp_openstack_ops/tools/get_server_volumes.py",
120
- "src/mcp_openstack_ops/tools/set_project.py",
121
- "src/mcp_openstack_ops/tools/get_server_events.py",
122
- "src/mcp_openstack_ops/tools/set_domains.py",
114
+ "src/mcp_openstack_ops/tools/set_load_balancer.py",
123
115
  "src/mcp_openstack_ops/tools/set_load_balancer_amphora.py",
124
- "src/mcp_openstack_ops/tools/get_volume_types.py",
125
- "src/mcp_openstack_ops/tools/set_instance.py",
126
- "src/mcp_openstack_ops/tools/get_instance_details.py",
127
- "src/mcp_openstack_ops/tools/get_load_balancer_pools.py",
128
- "src/mcp_openstack_ops/tools/get_load_balancer_flavors.py",
129
- "src/mcp_openstack_ops/tools/set_identity_groups.py",
130
- "src/mcp_openstack_ops/tools/set_flavor.py",
131
- "src/mcp_openstack_ops/tools/set_subnets.py",
132
- "src/mcp_openstack_ops/tools/set_server_floating_ip.py",
116
+ "src/mcp_openstack_ops/tools/set_load_balancer_availability_zone.py",
117
+ "src/mcp_openstack_ops/tools/set_load_balancer_flavor.py",
118
+ "src/mcp_openstack_ops/tools/set_load_balancer_health_monitor.py",
119
+ "src/mcp_openstack_ops/tools/set_load_balancer_l7_policy.py",
133
120
  "src/mcp_openstack_ops/tools/set_load_balancer_l7_rule.py",
121
+ "src/mcp_openstack_ops/tools/set_load_balancer_listener.py",
122
+ "src/mcp_openstack_ops/tools/set_load_balancer_pool.py",
123
+ "src/mcp_openstack_ops/tools/set_load_balancer_pool_member.py",
124
+ "src/mcp_openstack_ops/tools/set_load_balancer_quota.py",
125
+ "src/mcp_openstack_ops/tools/set_metrics.py",
126
+ "src/mcp_openstack_ops/tools/set_network_agents.py",
134
127
  "src/mcp_openstack_ops/tools/set_network_ports.py",
135
- "src/mcp_openstack_ops/tools/get_instance_by_name.py",
136
- "src/mcp_openstack_ops/tools/get_project_details.py",
128
+ "src/mcp_openstack_ops/tools/set_network_qos_policies.py",
129
+ "src/mcp_openstack_ops/tools/set_networks.py",
130
+ "src/mcp_openstack_ops/tools/set_project.py",
131
+ "src/mcp_openstack_ops/tools/set_quota.py",
132
+ "src/mcp_openstack_ops/tools/set_roles.py",
137
133
  "src/mcp_openstack_ops/tools/set_server_backup.py",
138
- "src/mcp_openstack_ops/tools/get_network_details.py",
139
- "src/mcp_openstack_ops/tools/get_load_balancer_list.py",
140
- "src/mcp_openstack_ops/tools/set_load_balancer_quota.py",
141
- "src/mcp_openstack_ops/tools/get_load_balancer_details.py",
142
- "src/mcp_openstack_ops/tools/get_floating_ip_pools.py",
143
- "src/mcp_openstack_ops/tools/get_volume_snapshots.py",
144
- "src/mcp_openstack_ops/tools/get_server_groups.py",
145
- "img/screenshot-example-cluster-status.png",
146
- "img/screenshot-openstack-dashboard.png",
147
- "img/MCP-Workflow-of-Quickstart-Tutorial.png",
148
- "img/screenshot-claude-desktop.png",
149
- "img/screenshot-claude-desktop.png:Zone.Identifier",
150
- ".github/copilot-instructions.md",
151
- ".github/dependabot.yml",
152
- ".github/FUNDING.yml",
153
- ".github/workflows/pypi-publish.yml"
134
+ "src/mcp_openstack_ops/tools/set_server_dump.py",
135
+ "src/mcp_openstack_ops/tools/set_server_fixed_ip.py",
136
+ "src/mcp_openstack_ops/tools/set_server_floating_ip.py",
137
+ "src/mcp_openstack_ops/tools/set_server_group.py",
138
+ "src/mcp_openstack_ops/tools/set_server_migration.py",
139
+ "src/mcp_openstack_ops/tools/set_server_network.py",
140
+ "src/mcp_openstack_ops/tools/set_server_properties.py",
141
+ "src/mcp_openstack_ops/tools/set_server_security_group.py",
142
+ "src/mcp_openstack_ops/tools/set_server_volume.py",
143
+ "src/mcp_openstack_ops/tools/set_service_logs.py",
144
+ "src/mcp_openstack_ops/tools/set_services.py",
145
+ "src/mcp_openstack_ops/tools/set_snapshot.py",
146
+ "src/mcp_openstack_ops/tools/set_subnets.py",
147
+ "src/mcp_openstack_ops/tools/set_volume.py",
148
+ "src/mcp_openstack_ops/tools/set_volume_backups.py",
149
+ "src/mcp_openstack_ops/tools/set_volume_groups.py",
150
+ "src/mcp_openstack_ops/tools/set_volume_qos.py",
151
+ "test_compatibility.sh",
152
+ "test_project_isolation.py",
153
+ "uv.lock"
154
154
  ]
155
155
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "3.5.4",
3
+ "distance": 0,
4
+ "node": "g3f716d66758a8db4ddd3f8dedff7dd56d23aebfe",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-09"
8
+ }