clio-kit 2.7.2__tar.gz → 2.9.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 (534) hide show
  1. {clio_kit-2.7.2 → clio_kit-2.9.0}/PKG-INFO +2 -2
  2. {clio_kit-2.7.2 → clio_kit-2.9.0}/README.md +1 -1
  3. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/server.json +1 -1
  4. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/server.json +1 -1
  5. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/arxiv_base.py +95 -4
  6. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/server.json +1 -1
  7. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/server.json +1 -1
  8. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/server.json +1 -1
  9. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/server.json +1 -1
  10. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/server.json +1 -1
  11. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/server.json +1 -1
  12. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/server.json +1 -1
  13. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/__init__.py +21 -0
  14. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/_base.py +11 -0
  15. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/artifact_documents.py +124 -0
  16. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/compat.py +143 -0
  17. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/datasets.py +142 -0
  18. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/describe.py +65 -0
  19. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/execution.py +359 -0
  20. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/packages.py +211 -0
  21. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/progress.py +135 -0
  22. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/service_runtime.py +146 -0
  23. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/package_discovery.py +669 -0
  24. clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/server.py +1582 -0
  25. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/server.json +1 -1
  26. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/server.json +1 -1
  27. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/server.json +1 -1
  28. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/server.json +1 -1
  29. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/server.json +1 -1
  30. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/server.json +1 -1
  31. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/server.json +1 -1
  32. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/server.json +1 -1
  33. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/server.json +1 -1
  34. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/server.json +1 -1
  35. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/server.json +1 -1
  36. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/server.json +1 -1
  37. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/server.json +1 -1
  38. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/server.json +1 -1
  39. clio_kit-2.9.0/clio-kit-mcp-servers/web/.claude-plugin/plugin.json +5 -0
  40. clio_kit-2.9.0/clio-kit-mcp-servers/web/README.md +94 -0
  41. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/docs/web_tools.md +18 -6
  42. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/pyproject.toml +2 -2
  43. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/server.json +8 -8
  44. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/src/web_mcp/__init__.py +1 -1
  45. clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/document_service.py +136 -0
  46. clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/fetch_utils.py +267 -0
  47. clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/searxng.py +181 -0
  48. clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/server.py +725 -0
  49. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/uv.lock +1 -1
  50. {clio_kit-2.7.2 → clio_kit-2.9.0}/mcp-server-versions.toml +3 -3
  51. {clio_kit-2.7.2 → clio_kit-2.9.0}/pyproject.toml +1 -1
  52. clio_kit-2.7.2/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/server.py +0 -3109
  53. clio_kit-2.7.2/clio-kit-mcp-servers/web/.claude-plugin/plugin.json +0 -5
  54. clio_kit-2.7.2/clio-kit-mcp-servers/web/README.md +0 -87
  55. clio_kit-2.7.2/clio-kit-mcp-servers/web/src/web_mcp/server.py +0 -739
  56. {clio_kit-2.7.2 → clio_kit-2.9.0}/.gitignore +0 -0
  57. {clio_kit-2.7.2 → clio_kit-2.9.0}/LICENSE +0 -0
  58. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/README.md +0 -0
  59. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/pyproject.toml +0 -0
  60. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/__init__.py +0 -0
  61. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/api/__init__.py +0 -0
  62. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/api/app.py +0 -0
  63. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/cli/__init__.py +0 -0
  64. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/cli/main.py +0 -0
  65. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/__init__.py +0 -0
  66. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/filesystem/__init__.py +0 -0
  67. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/filesystem/connector.py +0 -0
  68. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/graph_store/__init__.py +0 -0
  69. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/graph_store/connector.py +0 -0
  70. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/kv_log_store/__init__.py +0 -0
  71. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/kv_log_store/connector.py +0 -0
  72. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/object_store/__init__.py +0 -0
  73. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/object_store/connector.py +0 -0
  74. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/vector_store/__init__.py +0 -0
  75. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/vector_store/connector.py +0 -0
  76. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/__init__.py +0 -0
  77. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/connectors.py +0 -0
  78. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/namespace_config.py +0 -0
  79. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/namespace_registry.py +0 -0
  80. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/seeding.py +0 -0
  81. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/evals/__init__.py +0 -0
  82. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/evals/quality_gate.py +0 -0
  83. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/evals/scientific.py +0 -0
  84. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/__init__.py +0 -0
  85. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/lexical.py +0 -0
  86. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/scientific.py +0 -0
  87. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/text_features.py +0 -0
  88. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/jobs.py +0 -0
  89. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/models/__init__.py +0 -0
  90. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/models/contracts.py +0 -0
  91. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/__init__.py +0 -0
  92. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/ann.py +0 -0
  93. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/capabilities.py +0 -0
  94. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/coordinator.py +0 -0
  95. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/rerank.py +0 -0
  96. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/scientific.py +0 -0
  97. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retry.py +0 -0
  98. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/storage/__init__.py +0 -0
  99. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/storage/contracts.py +0 -0
  100. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/storage/duckdb_store.py +0 -0
  101. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/tasks.py +0 -0
  102. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/telemetry/__init__.py +0 -0
  103. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/uv.lock +0 -0
  104. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-clients/wrp_bin/README.md +0 -0
  105. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/.claude-plugin/plugin.json +0 -0
  106. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/.mcp.json +0 -0
  107. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/README.md +0 -0
  108. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/docs/adios_setup.md +0 -0
  109. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/docs/basic_install.md +0 -0
  110. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/docs/example_uses.md +0 -0
  111. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/pyproject.toml +0 -0
  112. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/data.0 +0 -0
  113. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.0 +0 -0
  114. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.idx +0 -0
  115. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/mmd.0 +0 -0
  116. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/data.0 +0 -0
  117. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.0 +0 -0
  118. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.idx +0 -0
  119. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/mmd.0 +0 -0
  120. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/data.0 +0 -0
  121. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.0 +0 -0
  122. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.idx +0 -0
  123. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/mmd.0 +0 -0
  124. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/data.0 +0 -0
  125. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.0 +0 -0
  126. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.idx +0 -0
  127. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/mmd.0 +0 -0
  128. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/__init__.py +0 -0
  129. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/__init__.py +0 -0
  130. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_attributes.py +0 -0
  131. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_inspect_variables.py +0 -0
  132. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_inspect_variables_at_step.py +0 -0
  133. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_list.py +0 -0
  134. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_read_variable_at_step.py +0 -0
  135. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/mcp_handlers.py +0 -0
  136. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/server.py +0 -0
  137. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/uv.lock +0 -0
  138. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/.claude-plugin/plugin.json +0 -0
  139. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/.mcp.json +0 -0
  140. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/README.md +0 -0
  141. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/demo.py +0 -0
  142. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/docs/basic_install.md +0 -0
  143. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/pyproject.toml +0 -0
  144. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/__init__.py +0 -0
  145. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/__init__.py +0 -0
  146. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/category_search.py +0 -0
  147. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/date_search.py +0 -0
  148. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/download_paper.py +0 -0
  149. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/export_utils.py +0 -0
  150. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/paper_details.py +0 -0
  151. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/text_search.py +0 -0
  152. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/mcp_handlers.py +0 -0
  153. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/server.py +0 -0
  154. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/uv.lock +0 -0
  155. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/.claude-plugin/plugin.json +0 -0
  156. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/.mcp.json +0 -0
  157. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/README.md +0 -0
  158. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-client.png +0 -0
  159. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-clientstartchronolog.png +0 -0
  160. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-retievecopilot.png +0 -0
  161. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-retrieve-diseasepred.png +0 -0
  162. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/docs/Chronolog_setup.md +0 -0
  163. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/pyproject.toml +0 -0
  164. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/__init__.py +0 -0
  165. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/__init__.py +0 -0
  166. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/record_handler.py +0 -0
  167. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/retrieve_handler.py +0 -0
  168. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/start_handler.py +0 -0
  169. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/stop_handler.py +0 -0
  170. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/CMakeLists.txt +0 -0
  171. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/HDF5ArchiveReadingAgent.h +0 -0
  172. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/reader.cpp +0 -0
  173. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/server.py +0 -0
  174. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/config.py +0 -0
  175. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py +0 -0
  176. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/uv.lock +0 -0
  177. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/.claude-plugin/plugin.json +0 -0
  178. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/.mcp.json +0 -0
  179. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/README.md +0 -0
  180. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/data/sample_data.csv +0 -0
  181. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/data/sample_log.txt +0 -0
  182. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/pyproject.toml +0 -0
  183. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/pytest.ini +0 -0
  184. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/__init__.py +0 -0
  185. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/__init__.py +0 -0
  186. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/compression_base.py +0 -0
  187. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/mcp_handlers.py +0 -0
  188. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/server.py +0 -0
  189. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/uv.lock +0 -0
  190. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/.claude-plugin/plugin.json +0 -0
  191. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/.mcp.json +0 -0
  192. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/README.md +0 -0
  193. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/pyproject.toml +0 -0
  194. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/__init__.py +0 -0
  195. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/__init__.py +0 -0
  196. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/darshan_parser.py +0 -0
  197. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/server.py +0 -0
  198. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/uv.lock +0 -0
  199. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/.claude-plugin/plugin.json +0 -0
  200. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/.mcp.json +0 -0
  201. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/README.md +0 -0
  202. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/pyproject.toml +0 -0
  203. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/__init__.py +0 -0
  204. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/__init__.py +0 -0
  205. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/arcgis.py +0 -0
  206. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/geocode.py +0 -0
  207. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/map_render.py +0 -0
  208. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/overlap.py +0 -0
  209. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/proximity.py +0 -0
  210. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/server.py +0 -0
  211. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/uv.lock +0 -0
  212. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/.claude-plugin/plugin.json +0 -0
  213. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/.mcp.json +0 -0
  214. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/README.md +0 -0
  215. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/pyproject.toml +0 -0
  216. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/__init__.py +0 -0
  217. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/implementation/__init__.py +0 -0
  218. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/implementation/inspect.py +0 -0
  219. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/server.py +0 -0
  220. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/uv.lock +0 -0
  221. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/.claude-plugin/plugin.json +0 -0
  222. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/.mcp.json +0 -0
  223. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/README.md +0 -0
  224. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/TESTING.md +0 -0
  225. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/ARCHITECTURE.md +0 -0
  226. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/EXAMPLES.md +0 -0
  227. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/MIGRATION.md +0 -0
  228. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/TOOLS.md +0 -0
  229. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/TRANSPORTS.md +0 -0
  230. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/examples/README.md +0 -0
  231. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/examples/create_demo_data.py +0 -0
  232. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/examples/demo_script.py +0 -0
  233. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/pyproject.toml +0 -0
  234. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/__init__.py +0 -0
  235. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/config.py +0 -0
  236. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/resources.py +0 -0
  237. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py +0 -0
  238. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/utils.py +0 -0
  239. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/uv.lock +0 -0
  240. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/.claude-plugin/plugin.json +0 -0
  241. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/.mcp.json +0 -0
  242. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/README.md +0 -0
  243. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/GUIDE.md +0 -0
  244. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 160800.png +0 -0
  245. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162219.png +0 -0
  246. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162322.png +0 -0
  247. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162545.png +0 -0
  248. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162922.png +0 -0
  249. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163023.png +0 -0
  250. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163516.png +0 -0
  251. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163651.png +0 -0
  252. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163759.png +0 -0
  253. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/basic_install.md +0 -0
  254. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/pyproject.toml +0 -0
  255. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/requirements.txt +0 -0
  256. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/scripts/live_ares_semantic_mcp_probe.py +0 -0
  257. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/__init__.py +0 -0
  258. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/admin_server.py +0 -0
  259. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/artifacts.py +0 -0
  260. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/__init__.py +0 -0
  261. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py +0 -0
  262. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/progress.py +0 -0
  263. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/user_server.py +0 -0
  264. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/windows_job.py +0 -0
  265. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/uv.lock +0 -0
  266. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/.claude-plugin/plugin.json +0 -0
  267. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/.mcp.json +0 -0
  268. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/README.md +0 -0
  269. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/pyproject.toml +0 -0
  270. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/__init__.py +0 -0
  271. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/__init__.py +0 -0
  272. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/lmod_handler.py +0 -0
  273. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/server.py +0 -0
  274. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/uv.lock +0 -0
  275. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/.claude-plugin/plugin.json +0 -0
  276. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/.mcp.json +0 -0
  277. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/README.md +0 -0
  278. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/docs/mcp_development_guide.md +0 -0
  279. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/docs/ndp_api.md +0 -0
  280. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/docs/ndp_docs.md +0 -0
  281. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/pyproject.toml +0 -0
  282. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/src/ndp_mcp/__init__.py +0 -0
  283. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py +0 -0
  284. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/uv.lock +0 -0
  285. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/.claude-plugin/plugin.json +0 -0
  286. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/.mcp.json +0 -0
  287. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/README.md +0 -0
  288. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/pyproject.toml +0 -0
  289. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/__init__.py +0 -0
  290. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/__init__.py +0 -0
  291. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/cpu_info.py +0 -0
  292. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/disk_info.py +0 -0
  293. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/gpu_info.py +0 -0
  294. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/hardware_summary.py +0 -0
  295. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/memory_info.py +0 -0
  296. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/network_info.py +0 -0
  297. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/performance_monitor.py +0 -0
  298. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/process_info.py +0 -0
  299. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/remote_node_info.py +0 -0
  300. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/sensor_info.py +0 -0
  301. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/system_info.py +0 -0
  302. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/utils.py +0 -0
  303. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/mcp_handlers.py +0 -0
  304. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/server.py +0 -0
  305. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/utils/__init__.py +0 -0
  306. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/utils/output_formatter.py +0 -0
  307. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/uv.lock +0 -0
  308. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/.claude-plugin/plugin.json +0 -0
  309. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/.mcp.json +0 -0
  310. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/README.md +0 -0
  311. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/example_script/create_sample_data.py +0 -0
  312. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/pyproject.toml +0 -0
  313. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/pytest.ini +0 -0
  314. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/__init__.py +0 -0
  315. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/__init__.py +0 -0
  316. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/csv_profiling.py +0 -0
  317. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_cleaning.py +0 -0
  318. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_io.py +0 -0
  319. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_profiling.py +0 -0
  320. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/filtering.py +0 -0
  321. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/memory_optimization.py +0 -0
  322. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/output_formatter.py +0 -0
  323. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/pandas_statistics.py +0 -0
  324. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/time_series.py +0 -0
  325. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/transformations.py +0 -0
  326. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/validation.py +0 -0
  327. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/mcp_handlers.py +0 -0
  328. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/server.py +0 -0
  329. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/uv.lock +0 -0
  330. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/.claude-plugin/plugin.json +0 -0
  331. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/.mcp.json +0 -0
  332. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/README.md +0 -0
  333. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/USAGE_GUIDE.md +0 -0
  334. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/pyproject.toml +0 -0
  335. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/pytest.ini +0 -0
  336. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/__init__.py +0 -0
  337. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/__init__.py +0 -0
  338. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/export_handler.py +0 -0
  339. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/filter_handler.py +0 -0
  340. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/parallel_processor.py +0 -0
  341. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/pattern_detection.py +0 -0
  342. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/sort_handler.py +0 -0
  343. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/statistics_handler.py +0 -0
  344. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/mcp_handlers.py +0 -0
  345. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/server.py +0 -0
  346. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/uv.lock +0 -0
  347. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/.claude-plugin/plugin.json +0 -0
  348. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/.mcp.json +0 -0
  349. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/LICENSE +0 -0
  350. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/README.md +0 -0
  351. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/USAGE_README.md +0 -0
  352. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/prompt.md +0 -0
  353. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/pyproject.toml +0 -0
  354. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/pytest.ini +0 -0
  355. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/requirements.txt +0 -0
  356. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/__init__.py +0 -0
  357. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/automate_setup.py +0 -0
  358. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/build_paraview.py +0 -0
  359. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/configure_paraview.py +0 -0
  360. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/install_deps.py +0 -0
  361. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/installation_example.py +0 -0
  362. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/launch_gui.py +0 -0
  363. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/launch_server.py +0 -0
  364. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/test_installation.py +0 -0
  365. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/__init__.py +0 -0
  366. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/__init__.py +0 -0
  367. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/paraview_capabilities.py +0 -0
  368. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/server.py +0 -0
  369. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/viz.html +0 -0
  370. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/uv.lock +0 -0
  371. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/.claude-plugin/plugin.json +0 -0
  372. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/.mcp.json +0 -0
  373. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/README.md +0 -0
  374. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/data.csv +0 -0
  375. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/huge_log.txt +0 -0
  376. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/small_log.txt +0 -0
  377. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/weather_data.parquet +0 -0
  378. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/datasets/batch_1.parquet +0 -0
  379. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/datasets/batch_large_strings.parquet +0 -0
  380. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/evaluation.xml +0 -0
  381. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/compress.png +0 -0
  382. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/getResource.png +0 -0
  383. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/listResources.png +0 -0
  384. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/listTools.png +0 -0
  385. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/pandas.png +0 -0
  386. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/parquet.png +0 -0
  387. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/sort.png +0 -0
  388. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/tests.png +0 -0
  389. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/pyproject.toml +0 -0
  390. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/pytest.ini +0 -0
  391. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/__init__.py +0 -0
  392. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/__init__.py +0 -0
  393. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/__init__.py +0 -0
  394. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/parquet_handler.py +0 -0
  395. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/server.py +0 -0
  396. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/uv.lock +0 -0
  397. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/.claude-plugin/plugin.json +0 -0
  398. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/.mcp.json +0 -0
  399. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/README.md +0 -0
  400. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/data/sample_data.csv +0 -0
  401. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/data/temperature.csv +0 -0
  402. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/pyproject.toml +0 -0
  403. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/pytest.ini +0 -0
  404. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/__init__.py +0 -0
  405. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/__init__.py +0 -0
  406. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/plot_capabilities.py +0 -0
  407. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/server.py +0 -0
  408. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/uv.lock +0 -0
  409. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/.claude-plugin/plugin.json +0 -0
  410. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/.mcp.json +0 -0
  411. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/README.md +0 -0
  412. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/pyproject.toml +0 -0
  413. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/__init__.py +0 -0
  414. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/__init__.py +0 -0
  415. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/analysis.py +0 -0
  416. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/sac_io.py +0 -0
  417. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/server.py +0 -0
  418. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/uv.lock +0 -0
  419. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/.claude-plugin/plugin.json +0 -0
  420. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/.mcp.json +0 -0
  421. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/README.md +0 -0
  422. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/pyproject.toml +0 -0
  423. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/__init__.py +0 -0
  424. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/backend.py +0 -0
  425. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/models.py +0 -0
  426. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/server.py +0 -0
  427. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/uv.lock +0 -0
  428. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/.claude-plugin/plugin.json +0 -0
  429. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/.mcp.json +0 -0
  430. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/README.md +0 -0
  431. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/pyproject.toml +0 -0
  432. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/__init__.py +0 -0
  433. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/__init__.py +0 -0
  434. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/analysis.py +0 -0
  435. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/catalog_io.py +0 -0
  436. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/plotting.py +0 -0
  437. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/server.py +0 -0
  438. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/uv.lock +0 -0
  439. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/.claude-plugin/plugin.json +0 -0
  440. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/.mcp.json +0 -0
  441. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/README.md +0 -0
  442. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/MCP_SERVER_GUIDE.md +0 -0
  443. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/agent-contract-v3.md +0 -0
  444. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/basic_install.md +0 -0
  445. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/run.md +0 -0
  446. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/NATIVE_SLURM_SUCCESS_REPORT.md +0 -0
  447. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/SLURM_INSTALLATION_GUIDE.md +0 -0
  448. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/final_verification.sh +0 -0
  449. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/install_slurm.sh +0 -0
  450. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/parallel_job.sh +0 -0
  451. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/quick_native_test.sh +0 -0
  452. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm.conf +0 -0
  453. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm_config.conf +0 -0
  454. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/README.md +0 -0
  455. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/SLURM_SCRIPT_GENERATION_PROMPT.md +0 -0
  456. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/array_job.sh +0 -0
  457. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/data_processing.sh +0 -0
  458. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/generate_slurm_script.sh +0 -0
  459. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/hello_world.sh +0 -0
  460. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/long_simulation.sh +0 -0
  461. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/python_computation.sh +0 -0
  462. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/logs/README.md +0 -0
  463. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/pyproject.toml +0 -0
  464. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/pytest.ini +0 -0
  465. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/__init__.py +0 -0
  466. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/agent_contract.py +0 -0
  467. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/__init__.py +0 -0
  468. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/array_jobs.py +0 -0
  469. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/cluster_info.py +0 -0
  470. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_cancellation.py +0 -0
  471. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_details.py +0 -0
  472. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_listing.py +0 -0
  473. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_output.py +0 -0
  474. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_status.py +0 -0
  475. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_submission.py +0 -0
  476. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_allocation.py +0 -0
  477. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_info.py +0 -0
  478. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/queue_info.py +0 -0
  479. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/slurm_handler.py +0 -0
  480. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/utils.py +0 -0
  481. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/mcp_handlers.py +0 -0
  482. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/server.py +0 -0
  483. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/uv.lock +0 -0
  484. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/.claude-plugin/plugin.json +0 -0
  485. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/.mcp.json +0 -0
  486. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/README.md +0 -0
  487. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/pyproject.toml +0 -0
  488. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/__init__.py +0 -0
  489. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/admin_server.py +0 -0
  490. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/backend.py +0 -0
  491. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/server.py +0 -0
  492. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/user_server.py +0 -0
  493. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/windows_job.py +0 -0
  494. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/uv.lock +0 -0
  495. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/.claude-plugin/plugin.json +0 -0
  496. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/.mcp.json +0 -0
  497. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/README.md +0 -0
  498. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/pyproject.toml +0 -0
  499. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/__init__.py +0 -0
  500. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/__init__.py +0 -0
  501. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/_common.py +0 -0
  502. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/dem.py +0 -0
  503. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/errors.py +0 -0
  504. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/pointcloud.py +0 -0
  505. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/server.py +0 -0
  506. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/uv.lock +0 -0
  507. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/.mcp.json +0 -0
  508. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/README.md +0 -0
  509. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/HomepageFeatures/index.js +0 -0
  510. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/HomepageFeatures/styles.module.css +0 -0
  511. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPDetail/index.js +0 -0
  512. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPDetail/styles.module.css +0 -0
  513. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPShowcase/index.js +0 -0
  514. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPShowcase/styles.module.css +0 -0
  515. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/css/custom.css +0 -0
  516. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/data/mcpData.js +0 -0
  517. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/pages/index.js +0 -0
  518. {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/pages/index.module.css +0 -0
  519. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/__init__.py +0 -0
  520. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/index.json +0 -0
  521. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.1.json +0 -0
  522. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.2.json +0 -0
  523. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.3.json +0 -0
  524. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.4.json +0 -0
  525. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.5.json +0 -0
  526. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.6.json +0 -0
  527. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.json +0 -0
  528. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/scientific-catalog-user-v1.1.json +0 -0
  529. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/scientific-catalog-user-v1.json +0 -0
  530. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/slurm-user-v3.json +0 -0
  531. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/spack-user-v2.1.json +0 -0
  532. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/spack-user-v2.json +0 -0
  533. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/env_cache.py +0 -0
  534. {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/mcp_contracts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clio-kit
3
- Version: 2.7.2
3
+ Version: 2.9.0
4
4
  Summary: CLIO Kit - MCP Servers, Clients, and Tools for AI Agents
5
5
  Project-URL: Homepage, https://github.com/iowarp/clio-kit
6
6
  Project-URL: Repository, https://github.com/iowarp/clio-kit
@@ -291,7 +291,7 @@ distinct `not_installed` semantic, while real Spack failures remain errors.
291
291
  | **`slurm`** | 3.0.0 | HPC | Job submission and management | `clio-kit mcp-server slurm` |
292
292
  | **`spack`** | 2.1.0 | Package Management | Structured package discovery, installation, and location | `clio-kit mcp-server spack` |
293
293
  | **`terrain`** | 2.2.3 | Geospatial | Analyze DEMs and terrain point clouds | `clio-kit mcp-server terrain` |
294
- | **`web`** | 1.0.0 | Web | Fetch a URL to Markdown and search the web | `clio-kit mcp-server web` |
294
+ | **`web`** | 2.0.0 | Web | Provider-fixed web search plus unified URL, DOI, and document fetching | `clio-kit mcp-server web` |
295
295
 
296
296
  </div>
297
297
 
@@ -265,7 +265,7 @@ distinct `not_installed` semantic, while real Spack failures remain errors.
265
265
  | **`slurm`** | 3.0.0 | HPC | Job submission and management | `clio-kit mcp-server slurm` |
266
266
  | **`spack`** | 2.1.0 | Package Management | Structured package discovery, installation, and location | `clio-kit mcp-server spack` |
267
267
  | **`terrain`** | 2.2.3 | Geospatial | Analyze DEMs and terrain point clouds | `clio-kit mcp-server terrain` |
268
- | **`web`** | 1.0.0 | Web | Fetch a URL to Markdown and search the web | `clio-kit mcp-server web` |
268
+ | **`web`** | 2.0.0 | Web | Provider-fixed web search plus unified URL, DOI, and document fetching | `clio-kit mcp-server web` |
269
269
 
270
270
  </div>
271
271
 
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -2,13 +2,32 @@
2
2
  Base utilities for ArXiv search capabilities.
3
3
  """
4
4
 
5
+ import asyncio
5
6
  import httpx
7
+ import math
6
8
  import xml.etree.ElementTree as ET
7
9
  from typing import Dict, List, Any, Union, cast
8
10
  import logging
9
11
 
10
12
  logger = logging.getLogger(__name__)
11
13
 
14
+ # ArXiv's public API rate-limits aggressively under concurrent load (HTTP 429).
15
+ # A well-behaved client retries a 429 with backoff rather than failing the
16
+ # caller's request outright -- this is standard practice for this API, not a
17
+ # test-only accommodation. Bounded (a few seconds worst case) so a genuinely
18
+ # sustained block still surfaces as a real failure instead of hanging.
19
+ #
20
+ # `Retry-After` is untrusted external input: a misconfigured or hostile server
21
+ # response naming an enormous or non-finite value (86400, inf, nan) must never
22
+ # make this hang -- _RATE_LIMIT_MAX_DELAY_SECONDS caps every individual sleep
23
+ # regardless of source (server-supplied or our own exponential backoff), and
24
+ # _RATE_LIMIT_TOTAL_BUDGET_SECONDS caps the SUM of all sleeps across the whole
25
+ # retry loop as an independent, defense-in-depth ceiling.
26
+ _RATE_LIMIT_MAX_ATTEMPTS = 4
27
+ _RATE_LIMIT_BACKOFF_SECONDS = 1.0
28
+ _RATE_LIMIT_MAX_DELAY_SECONDS = 10.0
29
+ _RATE_LIMIT_TOTAL_BUDGET_SECONDS = 20.0
30
+
12
31
 
13
32
  def parse_arxiv_entry(
14
33
  entry: ET.Element,
@@ -95,10 +114,7 @@ async def execute_arxiv_query(
95
114
  base_url = "https://export.arxiv.org/api/query"
96
115
 
97
116
  try:
98
- async with httpx.AsyncClient(timeout=30.0) as client:
99
- logger.info(f"Executing ArXiv query with params: {params}")
100
- response = await client.get(base_url, params=params)
101
- response.raise_for_status()
117
+ response = await _get_with_rate_limit_retry(base_url, params)
102
118
 
103
119
  # Parse XML response
104
120
  root = ET.fromstring(response.content)
@@ -128,6 +144,81 @@ async def execute_arxiv_query(
128
144
  raise Exception(f"ArXiv query failed: {str(e)}")
129
145
 
130
146
 
147
+ async def _get_with_rate_limit_retry(
148
+ base_url: str, params: Dict[str, Any]
149
+ ) -> httpx.Response:
150
+ """Issue the ArXiv API GET, retrying a 429 response with bounded backoff.
151
+
152
+ Every other outcome (success, timeout, a non-429 HTTP error, a connection
153
+ error) is returned or raised on the first attempt unchanged -- only a 429
154
+ is treated as transient and retried, honoring ``Retry-After`` when the API
155
+ sends one. Every sleep is clamped to ``_RATE_LIMIT_MAX_DELAY_SECONDS`` and
156
+ the loop stops early once ``_RATE_LIMIT_TOTAL_BUDGET_SECONDS`` of
157
+ cumulative sleep has been spent, so an oversized or non-finite
158
+ ``Retry-After`` (86400, inf, nan) can never make this hang.
159
+ """
160
+ last_error: httpx.HTTPStatusError | None = None
161
+ total_slept = 0.0
162
+ for attempt in range(_RATE_LIMIT_MAX_ATTEMPTS):
163
+ async with httpx.AsyncClient(timeout=30.0) as client:
164
+ logger.info(f"Executing ArXiv query with params: {params}")
165
+ response = await client.get(base_url, params=params)
166
+ if response.status_code != 429:
167
+ response.raise_for_status()
168
+ return response
169
+ last_error = httpx.HTTPStatusError(
170
+ f"Client error '429 Too Many Requests' for url '{response.url}'",
171
+ request=response.request,
172
+ response=response,
173
+ )
174
+ if attempt + 1 >= _RATE_LIMIT_MAX_ATTEMPTS:
175
+ break
176
+ remaining_budget = _RATE_LIMIT_TOTAL_BUDGET_SECONDS - total_slept
177
+ if remaining_budget <= 0:
178
+ logger.warning(
179
+ "ArXiv API rate-limited (429); retry time budget "
180
+ f"({_RATE_LIMIT_TOTAL_BUDGET_SECONDS:.0f}s) exhausted, giving up"
181
+ )
182
+ break
183
+ retry_after = _parse_retry_after(response.headers.get("Retry-After"))
184
+ requested_delay = (
185
+ retry_after
186
+ if retry_after is not None
187
+ else (_RATE_LIMIT_BACKOFF_SECONDS * (2**attempt))
188
+ )
189
+ delay = max(
190
+ 0.0, min(requested_delay, _RATE_LIMIT_MAX_DELAY_SECONDS, remaining_budget)
191
+ )
192
+ logger.warning(
193
+ f"ArXiv API rate-limited (429); retrying in {delay:.1f}s "
194
+ f"(attempt {attempt + 1}/{_RATE_LIMIT_MAX_ATTEMPTS})"
195
+ )
196
+ await asyncio.sleep(delay)
197
+ total_slept += delay
198
+ assert last_error is not None
199
+ raise last_error
200
+
201
+
202
+ def _parse_retry_after(value: str | None) -> float | None:
203
+ """Parse a numeric ``Retry-After`` header value in seconds, if present.
204
+
205
+ ``Retry-After`` is untrusted external input. ``inf``/``nan`` parse
206
+ successfully as floats in Python but are rejected here explicitly --
207
+ callers still clamp the result to ``_RATE_LIMIT_MAX_DELAY_SECONDS``
208
+ regardless, but a non-finite value should never reach that clamp as a
209
+ seemingly legitimate number in the first place.
210
+ """
211
+ if value is None:
212
+ return None
213
+ try:
214
+ parsed = float(value)
215
+ except ValueError:
216
+ return None
217
+ if not math.isfinite(parsed):
218
+ return None
219
+ return max(0.0, parsed)
220
+
221
+
131
222
  def generate_bibtex(
132
223
  paper: Dict[str, Union[str, List[str], List[Dict[str, str]]]],
133
224
  ) -> str:
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.7.2",
15
+ "version": "2.9.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -0,0 +1,21 @@
1
+ """Wire-facing data models for the jarvis MCP server, grouped by concern.
2
+
3
+ Split out of ``jarvis_mcp.server`` (clio-kit campaign #362, Slice 1) so the
4
+ 44 Pydantic/TypedDict/dataclass models that previously lived inline in the
5
+ 3109-line ``server.py`` have owner modules. Tool registration (the
6
+ ``@mcp.tool`` surface) stays thin in ``server.py``, importing from here.
7
+
8
+ Submodules, by concern:
9
+
10
+ - ``_base``: the shared ``_ClosedDocument`` base (``extra="forbid"``).
11
+ - ``compat``: the JARVIS-CD manager compatibility adapter.
12
+ - ``packages``: package inventory/description/deployment/settings documents.
13
+ - ``describe``: the ``jarvis_describe`` discriminated result union.
14
+ - ``execution``: execution handle/record/run-result documents, and the
15
+ ``ExecutionIntent`` request model with its validation/conversion helpers.
16
+ - ``progress``: package progress event/snapshot documents.
17
+ - ``artifact_documents``: artifact location/document/page documents and the
18
+ ``ExecutionArtifactQuery`` request filter.
19
+ - ``datasets``: the JARVIS-owned dataset descriptor documents.
20
+ - ``service_runtime``: execution-owned service-runtime documents.
21
+ """
@@ -0,0 +1,11 @@
1
+ """Shared base for every closed (``extra="forbid"``) agent-visible document."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic import BaseModel, ConfigDict
6
+
7
+
8
+ class _ClosedDocument(BaseModel):
9
+ """Base for agent-visible documents with no undeclared fields."""
10
+
11
+ model_config = ConfigDict(extra="forbid")
@@ -0,0 +1,124 @@
1
+ """Artifact location/document/page documents and the artifact query filter."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any, Literal
6
+
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+
12
+ class JarvisArtifactLocationDocument(TypedDict):
13
+ """Transport-neutral location in a JARVIS artifact manifest."""
14
+
15
+ kind: Literal["execution_path", "cluster_path", "external_uri"]
16
+ value: str
17
+
18
+
19
+ class JarvisArtifactDocument(TypedDict):
20
+ """Current JARVIS-owned lifecycle observation for one generated artifact."""
21
+
22
+ schema_version: Literal["jarvis.artifact.v1"]
23
+ package_name: str
24
+ package_id: str
25
+ execution_id: str
26
+ artifact_id: str
27
+ logical_name: str
28
+ kind: str
29
+ role: Literal[
30
+ "intermediate",
31
+ "output",
32
+ "log",
33
+ "checkpoint",
34
+ "provenance",
35
+ "validation",
36
+ ]
37
+ structure: Literal["file", "directory", "collection", "stream"]
38
+ ownership: Literal["execution", "external", "shared"]
39
+ state: Literal["producing", "available", "finalized", "incomplete", "failed"]
40
+ revision: int
41
+ sequence: int
42
+ observed_at_epoch: float
43
+ metadata: dict[str, Any]
44
+ location: NotRequired[JarvisArtifactLocationDocument]
45
+ media_type: NotRequired[str]
46
+ format: NotRequired[str]
47
+ size_bytes: NotRequired[int]
48
+ checksum: NotRequired[str]
49
+ message: NotRequired[str]
50
+
51
+
52
+ class JarvisExecutionArtifactPageDocument(BaseModel):
53
+ """Bounded artifact page nested in a unified execution query."""
54
+
55
+ model_config = ConfigDict(extra="forbid", frozen=True)
56
+
57
+ producer_schema_version: Literal["jarvis.execution.artifacts.v1"]
58
+ pipeline_id: str
59
+ execution_id: str
60
+ execution_state: Literal[
61
+ "preparing",
62
+ "scripted",
63
+ "submitting",
64
+ "submitted",
65
+ "running",
66
+ "completed",
67
+ "failed",
68
+ "canceled",
69
+ "unknown",
70
+ ]
71
+ terminal: bool
72
+ artifacts: list[JarvisArtifactDocument]
73
+ matching_artifact_count: int
74
+ returned_artifact_count: int
75
+ next_cursor: str | None
76
+
77
+
78
+ class ExecutionArtifactQuery(BaseModel):
79
+ """Optional filters for one bounded page of execution artifacts."""
80
+
81
+ model_config = ConfigDict(extra="forbid", strict=True)
82
+
83
+ package_id: str | None = Field(
84
+ default=None,
85
+ description="Exact JARVIS package alias filter.",
86
+ max_length=256,
87
+ )
88
+ role: (
89
+ Literal[
90
+ "intermediate",
91
+ "output",
92
+ "log",
93
+ "checkpoint",
94
+ "provenance",
95
+ "validation",
96
+ ]
97
+ | None
98
+ ) = None
99
+ state: (
100
+ Literal[
101
+ "producing",
102
+ "available",
103
+ "finalized",
104
+ "incomplete",
105
+ "failed",
106
+ ]
107
+ | None
108
+ ) = None
109
+ artifact_id: str | None = Field(
110
+ default=None,
111
+ description="Exact opaque JARVIS artifact ID filter.",
112
+ max_length=90,
113
+ )
114
+ page_size: int = Field(
115
+ default=50,
116
+ description="Maximum artifacts to return in this page.",
117
+ ge=1,
118
+ le=100,
119
+ )
120
+ cursor: str | None = Field(
121
+ default=None,
122
+ description="Opaque next-page cursor.",
123
+ max_length=1024,
124
+ )
@@ -0,0 +1,143 @@
1
+ """Compatibility adapter over the current JARVIS-CD ``Jarvis`` singleton."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib
6
+ from pathlib import Path
7
+ from typing import Any, Optional
8
+
9
+
10
+ class _CurrentJarvisManager:
11
+ """Compatibility adapter over the current JARVIS-CD Jarvis singleton."""
12
+
13
+ @classmethod
14
+ def get_instance(cls) -> "_CurrentJarvisManager":
15
+ jarvis_module = importlib.import_module("jarvis_cd.core.config")
16
+ return cls(jarvis_module.Jarvis.get_instance())
17
+
18
+ def __init__(self, jarvis: Any) -> None:
19
+ self.jarvis = jarvis
20
+
21
+ def create(
22
+ self, config_dir: str, private_dir: str, shared_dir: Optional[str] = None
23
+ ) -> "_CurrentJarvisManager":
24
+ self.jarvis.initialize(
25
+ config_dir=config_dir,
26
+ private_dir=private_dir,
27
+ shared_dir=shared_dir or private_dir,
28
+ )
29
+ return self
30
+
31
+ def load(self) -> "_CurrentJarvisManager":
32
+ _ = self.jarvis.config
33
+ return self
34
+
35
+ def save(self) -> "_CurrentJarvisManager":
36
+ if getattr(self.jarvis, "_config", None) is not None:
37
+ self.jarvis.save_config(self.jarvis.config)
38
+ if getattr(self.jarvis, "_repos", None) is not None:
39
+ self.jarvis.save_repos(self.jarvis.repos)
40
+ return self
41
+
42
+ def set_hostfile(self, path: str) -> "_CurrentJarvisManager":
43
+ self.jarvis.set_hostfile(path)
44
+ return self
45
+
46
+ def bootstrap_from(self, machine: str) -> "_CurrentJarvisManager":
47
+ raise NotImplementedError(
48
+ f"bootstrap templates are not exposed by current JARVIS-CD: {machine}"
49
+ )
50
+
51
+ def bootstrap_list(self) -> list[str]:
52
+ return []
53
+
54
+ def reset(self) -> "_CurrentJarvisManager":
55
+ raise NotImplementedError(
56
+ "reset is not exposed through the compatibility adapter"
57
+ )
58
+
59
+ def list_pipelines(self) -> list[str]:
60
+ pipelines_dir = self.jarvis.get_pipelines_dir()
61
+ if not pipelines_dir.exists():
62
+ return []
63
+ return sorted(path.name for path in pipelines_dir.iterdir() if path.is_dir())
64
+
65
+ def cd(self, pipeline_id: str) -> "_CurrentJarvisManager":
66
+ self.jarvis.set_current_pipeline(pipeline_id)
67
+ return self
68
+
69
+ def list_repos(self) -> list[str]:
70
+ return list(self.jarvis.repos.get("repos", []))
71
+
72
+ def add_repo(self, path: str, force: bool = False) -> "_CurrentJarvisManager":
73
+ self.jarvis.add_repo(path, force=force)
74
+ return self
75
+
76
+ def remove_repo(self, repo_name: str) -> "_CurrentJarvisManager":
77
+ repo_paths = list(self.jarvis.repos.get("repos", []))
78
+ matches = [
79
+ repo_path
80
+ for repo_path in repo_paths
81
+ if repo_path == repo_name or Path(repo_path).name == repo_name
82
+ ]
83
+ if not matches:
84
+ self.jarvis.remove_repo(repo_name)
85
+ for repo_path in matches:
86
+ self.jarvis.remove_repo(repo_path)
87
+ return self
88
+
89
+ def promote_repo(self, repo_name: str) -> "_CurrentJarvisManager":
90
+ repos = self.jarvis.repos.copy()
91
+ repo_paths = list(repos.get("repos", []))
92
+ matches = [
93
+ repo_path
94
+ for repo_path in repo_paths
95
+ if repo_path == repo_name or Path(repo_path).name == repo_name
96
+ ]
97
+ if not matches:
98
+ raise ValueError(f"repository not found: {repo_name}")
99
+ for repo_path in reversed(matches):
100
+ repo_paths.remove(repo_path)
101
+ repo_paths.insert(0, repo_path)
102
+ repos["repos"] = repo_paths
103
+ self.jarvis.save_repos(repos)
104
+ return self
105
+
106
+ def get_repo(self, repo_name: str) -> dict[str, Any] | None:
107
+ for index, repo_path in enumerate(self.jarvis.repos.get("repos", []), start=1):
108
+ if repo_path == repo_name or Path(repo_path).name == repo_name:
109
+ return {
110
+ "index": index,
111
+ "name": Path(repo_path).name,
112
+ "path": repo_path,
113
+ "exists": Path(repo_path).exists(),
114
+ }
115
+ return None
116
+
117
+ def construct_pkg(self, pkg_type: str) -> Any:
118
+ raise NotImplementedError(
119
+ f"package construction is not exposed by current JARVIS-CD: {pkg_type}"
120
+ )
121
+
122
+ def resource_graph_show(self) -> dict[str, Any]:
123
+ return self.jarvis.resource_graph
124
+
125
+ def resource_graph_build(self, net_sleep: float) -> dict[str, Any]:
126
+ _ = net_sleep
127
+ raise NotImplementedError(
128
+ "resource graph build is not exposed through the compatibility adapter"
129
+ )
130
+
131
+ def resource_graph_modify(self, net_sleep: float) -> dict[str, Any]:
132
+ _ = net_sleep
133
+ raise NotImplementedError(
134
+ "resource graph modify is not exposed through the compatibility adapter"
135
+ )
136
+
137
+
138
+ def _load_jarvis_manager_class() -> Any:
139
+ try:
140
+ module = importlib.import_module("jarvis_cd.basic.jarvis_manager")
141
+ return module.JarvisManager
142
+ except ModuleNotFoundError:
143
+ return _CurrentJarvisManager