clio-kit 2.5.23__tar.gz → 2.6.2__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 (507) hide show
  1. {clio_kit-2.5.23 → clio_kit-2.6.2}/PKG-INFO +2 -2
  2. {clio_kit-2.5.23 → clio_kit-2.6.2}/README.md +1 -1
  3. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/server.json +1 -1
  4. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/server.json +1 -1
  5. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/server.json +1 -1
  6. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/server.json +1 -1
  7. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/server.json +1 -1
  8. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/server.json +1 -1
  9. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/server.json +1 -1
  10. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/server.json +1 -1
  11. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/.claude-plugin/plugin.json +1 -1
  12. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/pyproject.toml +2 -2
  13. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/scripts/live_ares_semantic_mcp_probe.py +4 -4
  14. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/server.json +6 -6
  15. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/admin_server.py +4 -0
  16. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/__init__.py +2 -2
  17. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py +140 -12
  18. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/server.py +386 -35
  19. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/user_server.py +4 -0
  20. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/uv.lock +5 -5
  21. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/server.json +1 -1
  22. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/server.json +1 -1
  23. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/server.json +1 -1
  24. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/server.json +1 -1
  25. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/server.json +1 -1
  26. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/server.json +1 -1
  27. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/server.json +1 -1
  28. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/server.json +1 -1
  29. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/server.json +1 -1
  30. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/server.json +1 -1
  31. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/server.json +1 -1
  32. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/server.json +1 -1
  33. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/server.json +2 -2
  34. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/src/spack_mcp/backend.py +7 -1
  35. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/src/spack_mcp/server.py +10 -5
  36. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/server.json +1 -1
  37. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/data/mcpData.js +1 -1
  38. {clio_kit-2.5.23 → clio_kit-2.6.2}/mcp-server-versions.toml +2 -2
  39. {clio_kit-2.5.23 → clio_kit-2.6.2}/pyproject.toml +1 -1
  40. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/__init__.py +236 -42
  41. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/index.json +17 -8
  42. clio_kit-2.6.2/src/clio_kit/_mcp_contracts/jarvis-user-v3.6.json +3845 -0
  43. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/spack-user-v2.1.json +4 -3
  44. clio_kit-2.6.2/src/clio_kit/env_cache.py +843 -0
  45. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/mcp_contracts.py +14 -3
  46. {clio_kit-2.5.23 → clio_kit-2.6.2}/.gitignore +0 -0
  47. {clio_kit-2.5.23 → clio_kit-2.6.2}/LICENSE +0 -0
  48. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/README.md +0 -0
  49. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/pyproject.toml +0 -0
  50. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/__init__.py +0 -0
  51. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/api/__init__.py +0 -0
  52. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/api/app.py +0 -0
  53. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/cli/__init__.py +0 -0
  54. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/cli/main.py +0 -0
  55. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/__init__.py +0 -0
  56. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/filesystem/__init__.py +0 -0
  57. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/filesystem/connector.py +0 -0
  58. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/graph_store/__init__.py +0 -0
  59. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/graph_store/connector.py +0 -0
  60. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/kv_log_store/__init__.py +0 -0
  61. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/kv_log_store/connector.py +0 -0
  62. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/object_store/__init__.py +0 -0
  63. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/object_store/connector.py +0 -0
  64. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/vector_store/__init__.py +0 -0
  65. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/connectors/vector_store/connector.py +0 -0
  66. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/core/__init__.py +0 -0
  67. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/core/connectors.py +0 -0
  68. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/core/namespace_config.py +0 -0
  69. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/core/namespace_registry.py +0 -0
  70. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/core/seeding.py +0 -0
  71. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/evals/__init__.py +0 -0
  72. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/evals/quality_gate.py +0 -0
  73. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/evals/scientific.py +0 -0
  74. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/indexing/__init__.py +0 -0
  75. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/indexing/lexical.py +0 -0
  76. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/indexing/scientific.py +0 -0
  77. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/indexing/text_features.py +0 -0
  78. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/jobs.py +0 -0
  79. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/models/__init__.py +0 -0
  80. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/models/contracts.py +0 -0
  81. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retrieval/__init__.py +0 -0
  82. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retrieval/ann.py +0 -0
  83. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retrieval/capabilities.py +0 -0
  84. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retrieval/coordinator.py +0 -0
  85. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retrieval/rerank.py +0 -0
  86. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retrieval/scientific.py +0 -0
  87. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/retry.py +0 -0
  88. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/storage/__init__.py +0 -0
  89. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/storage/contracts.py +0 -0
  90. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/storage/duckdb_store.py +0 -0
  91. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/tasks.py +0 -0
  92. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/src/clio_agentic_search/telemetry/__init__.py +0 -0
  93. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-agentic-search/uv.lock +0 -0
  94. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-clients/wrp_bin/README.md +0 -0
  95. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/.claude-plugin/plugin.json +0 -0
  96. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/.mcp.json +0 -0
  97. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/README.md +0 -0
  98. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/docs/adios_setup.md +0 -0
  99. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/docs/basic_install.md +0 -0
  100. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/docs/example_uses.md +0 -0
  101. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/pyproject.toml +0 -0
  102. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data1.bp/data.0 +0 -0
  103. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.0 +0 -0
  104. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.idx +0 -0
  105. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data1.bp/mmd.0 +0 -0
  106. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data2.bp/data.0 +0 -0
  107. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.0 +0 -0
  108. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.idx +0 -0
  109. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data2.bp/mmd.0 +0 -0
  110. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data3.bp/data.0 +0 -0
  111. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.0 +0 -0
  112. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.idx +0 -0
  113. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data3.bp/mmd.0 +0 -0
  114. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data4.bp/data.0 +0 -0
  115. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.0 +0 -0
  116. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.idx +0 -0
  117. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/sample_data/data4.bp/mmd.0 +0 -0
  118. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/__init__.py +0 -0
  119. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/__init__.py +0 -0
  120. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_attributes.py +0 -0
  121. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_inspect_variables.py +0 -0
  122. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_inspect_variables_at_step.py +0 -0
  123. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_list.py +0 -0
  124. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_read_variable_at_step.py +0 -0
  125. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/mcp_handlers.py +0 -0
  126. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/src/adios_mcp/server.py +0 -0
  127. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/adios/uv.lock +0 -0
  128. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/.claude-plugin/plugin.json +0 -0
  129. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/.mcp.json +0 -0
  130. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/README.md +0 -0
  131. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/demo.py +0 -0
  132. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/docs/basic_install.md +0 -0
  133. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/pyproject.toml +0 -0
  134. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/__init__.py +0 -0
  135. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/__init__.py +0 -0
  136. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/arxiv_base.py +0 -0
  137. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/category_search.py +0 -0
  138. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/date_search.py +0 -0
  139. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/download_paper.py +0 -0
  140. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/export_utils.py +0 -0
  141. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/paper_details.py +0 -0
  142. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/text_search.py +0 -0
  143. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/mcp_handlers.py +0 -0
  144. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/server.py +0 -0
  145. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/arxiv/uv.lock +0 -0
  146. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/.claude-plugin/plugin.json +0 -0
  147. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/.mcp.json +0 -0
  148. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/README.md +0 -0
  149. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/assets/mcp-client.png +0 -0
  150. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/assets/mcp-clientstartchronolog.png +0 -0
  151. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/assets/mcp-retievecopilot.png +0 -0
  152. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/assets/mcp-retrieve-diseasepred.png +0 -0
  153. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/docs/Chronolog_setup.md +0 -0
  154. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/pyproject.toml +0 -0
  155. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/__init__.py +0 -0
  156. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/__init__.py +0 -0
  157. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/record_handler.py +0 -0
  158. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/retrieve_handler.py +0 -0
  159. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/start_handler.py +0 -0
  160. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/stop_handler.py +0 -0
  161. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/CMakeLists.txt +0 -0
  162. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/HDF5ArchiveReadingAgent.h +0 -0
  163. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/reader.cpp +0 -0
  164. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/server.py +0 -0
  165. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/config.py +0 -0
  166. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py +0 -0
  167. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/chronolog/uv.lock +0 -0
  168. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/.claude-plugin/plugin.json +0 -0
  169. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/.mcp.json +0 -0
  170. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/README.md +0 -0
  171. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/data/sample_data.csv +0 -0
  172. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/data/sample_log.txt +0 -0
  173. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/pyproject.toml +0 -0
  174. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/pytest.ini +0 -0
  175. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/src/compression_mcp/__init__.py +0 -0
  176. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/__init__.py +0 -0
  177. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/compression_base.py +0 -0
  178. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/src/compression_mcp/mcp_handlers.py +0 -0
  179. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/src/compression_mcp/server.py +0 -0
  180. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/compression/uv.lock +0 -0
  181. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/.claude-plugin/plugin.json +0 -0
  182. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/.mcp.json +0 -0
  183. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/README.md +0 -0
  184. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/pyproject.toml +0 -0
  185. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/src/darshan_mcp/__init__.py +0 -0
  186. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/__init__.py +0 -0
  187. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/darshan_parser.py +0 -0
  188. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/src/darshan_mcp/server.py +0 -0
  189. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/darshan/uv.lock +0 -0
  190. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/.claude-plugin/plugin.json +0 -0
  191. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/.mcp.json +0 -0
  192. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/README.md +0 -0
  193. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/pyproject.toml +0 -0
  194. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/__init__.py +0 -0
  195. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/__init__.py +0 -0
  196. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/arcgis.py +0 -0
  197. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/geocode.py +0 -0
  198. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/map_render.py +0 -0
  199. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/overlap.py +0 -0
  200. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/proximity.py +0 -0
  201. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/src/geo_mcp/server.py +0 -0
  202. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geo/uv.lock +0 -0
  203. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/.claude-plugin/plugin.json +0 -0
  204. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/.mcp.json +0 -0
  205. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/README.md +0 -0
  206. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/pyproject.toml +0 -0
  207. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/src/geojson_mcp/__init__.py +0 -0
  208. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/src/geojson_mcp/implementation/__init__.py +0 -0
  209. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/src/geojson_mcp/implementation/inspect.py +0 -0
  210. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/src/geojson_mcp/server.py +0 -0
  211. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/geojson/uv.lock +0 -0
  212. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/.claude-plugin/plugin.json +0 -0
  213. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/.mcp.json +0 -0
  214. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/README.md +0 -0
  215. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/TESTING.md +0 -0
  216. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/docs/ARCHITECTURE.md +0 -0
  217. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/docs/EXAMPLES.md +0 -0
  218. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/docs/MIGRATION.md +0 -0
  219. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/docs/TOOLS.md +0 -0
  220. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/docs/TRANSPORTS.md +0 -0
  221. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/examples/README.md +0 -0
  222. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/examples/create_demo_data.py +0 -0
  223. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/examples/demo_script.py +0 -0
  224. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/pyproject.toml +0 -0
  225. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/__init__.py +0 -0
  226. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/config.py +0 -0
  227. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/resources.py +0 -0
  228. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py +0 -0
  229. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/utils.py +0 -0
  230. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/hdf5/uv.lock +0 -0
  231. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/.mcp.json +0 -0
  232. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/README.md +0 -0
  233. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/GUIDE.md +0 -0
  234. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 160800.png +0 -0
  235. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162219.png +0 -0
  236. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162322.png +0 -0
  237. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162545.png +0 -0
  238. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162922.png +0 -0
  239. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163023.png +0 -0
  240. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163516.png +0 -0
  241. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163651.png +0 -0
  242. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163759.png +0 -0
  243. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/docs/basic_install.md +0 -0
  244. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/requirements.txt +0 -0
  245. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/__init__.py +0 -0
  246. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/artifacts.py +0 -0
  247. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/progress.py +0 -0
  248. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/windows_job.py +0 -0
  249. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/.claude-plugin/plugin.json +0 -0
  250. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/.mcp.json +0 -0
  251. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/README.md +0 -0
  252. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/pyproject.toml +0 -0
  253. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/src/lmod_mcp/__init__.py +0 -0
  254. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/__init__.py +0 -0
  255. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/lmod_handler.py +0 -0
  256. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/src/lmod_mcp/server.py +0 -0
  257. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/lmod/uv.lock +0 -0
  258. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/.claude-plugin/plugin.json +0 -0
  259. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/.mcp.json +0 -0
  260. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/README.md +0 -0
  261. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/docs/mcp_development_guide.md +0 -0
  262. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/docs/ndp_api.md +0 -0
  263. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/docs/ndp_docs.md +0 -0
  264. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/pyproject.toml +0 -0
  265. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/src/ndp_mcp/__init__.py +0 -0
  266. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py +0 -0
  267. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/ndp/uv.lock +0 -0
  268. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/.claude-plugin/plugin.json +0 -0
  269. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/.mcp.json +0 -0
  270. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/README.md +0 -0
  271. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/pyproject.toml +0 -0
  272. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/__init__.py +0 -0
  273. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/__init__.py +0 -0
  274. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/cpu_info.py +0 -0
  275. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/disk_info.py +0 -0
  276. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/gpu_info.py +0 -0
  277. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/hardware_summary.py +0 -0
  278. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/memory_info.py +0 -0
  279. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/network_info.py +0 -0
  280. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/performance_monitor.py +0 -0
  281. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/process_info.py +0 -0
  282. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/remote_node_info.py +0 -0
  283. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/sensor_info.py +0 -0
  284. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/system_info.py +0 -0
  285. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/utils.py +0 -0
  286. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/mcp_handlers.py +0 -0
  287. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/server.py +0 -0
  288. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/utils/__init__.py +0 -0
  289. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/utils/output_formatter.py +0 -0
  290. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/node-hardware/uv.lock +0 -0
  291. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/.claude-plugin/plugin.json +0 -0
  292. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/.mcp.json +0 -0
  293. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/README.md +0 -0
  294. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/example_script/create_sample_data.py +0 -0
  295. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/pyproject.toml +0 -0
  296. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/pytest.ini +0 -0
  297. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/__init__.py +0 -0
  298. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/__init__.py +0 -0
  299. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/csv_profiling.py +0 -0
  300. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_cleaning.py +0 -0
  301. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_io.py +0 -0
  302. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_profiling.py +0 -0
  303. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/filtering.py +0 -0
  304. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/memory_optimization.py +0 -0
  305. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/output_formatter.py +0 -0
  306. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/pandas_statistics.py +0 -0
  307. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/time_series.py +0 -0
  308. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/transformations.py +0 -0
  309. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/validation.py +0 -0
  310. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/mcp_handlers.py +0 -0
  311. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/src/pandas_mcp/server.py +0 -0
  312. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/pandas/uv.lock +0 -0
  313. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/.claude-plugin/plugin.json +0 -0
  314. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/.mcp.json +0 -0
  315. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/README.md +0 -0
  316. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/USAGE_GUIDE.md +0 -0
  317. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/pyproject.toml +0 -0
  318. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/pytest.ini +0 -0
  319. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/__init__.py +0 -0
  320. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/__init__.py +0 -0
  321. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/export_handler.py +0 -0
  322. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/filter_handler.py +0 -0
  323. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/parallel_processor.py +0 -0
  324. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/pattern_detection.py +0 -0
  325. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/sort_handler.py +0 -0
  326. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/statistics_handler.py +0 -0
  327. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/mcp_handlers.py +0 -0
  328. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/server.py +0 -0
  329. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parallel-sort/uv.lock +0 -0
  330. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/.claude-plugin/plugin.json +0 -0
  331. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/.mcp.json +0 -0
  332. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/LICENSE +0 -0
  333. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/README.md +0 -0
  334. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/USAGE_README.md +0 -0
  335. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/prompt.md +0 -0
  336. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/pyproject.toml +0 -0
  337. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/pytest.ini +0 -0
  338. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/requirements.txt +0 -0
  339. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/__init__.py +0 -0
  340. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/automate_setup.py +0 -0
  341. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/build_paraview.py +0 -0
  342. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/configure_paraview.py +0 -0
  343. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/install_deps.py +0 -0
  344. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/installation_example.py +0 -0
  345. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/launch_gui.py +0 -0
  346. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/launch_server.py +0 -0
  347. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/scripts/test_installation.py +0 -0
  348. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/src/paraview_mcp/__init__.py +0 -0
  349. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/__init__.py +0 -0
  350. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/paraview_capabilities.py +0 -0
  351. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/src/paraview_mcp/server.py +0 -0
  352. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/src/paraview_mcp/viz.html +0 -0
  353. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/paraview/uv.lock +0 -0
  354. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/.claude-plugin/plugin.json +0 -0
  355. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/.mcp.json +0 -0
  356. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/README.md +0 -0
  357. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/data/data.csv +0 -0
  358. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/data/huge_log.txt +0 -0
  359. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/data/small_log.txt +0 -0
  360. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/data/weather_data.parquet +0 -0
  361. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/datasets/batch_1.parquet +0 -0
  362. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/datasets/batch_large_strings.parquet +0 -0
  363. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/evaluation.xml +0 -0
  364. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/compress.png +0 -0
  365. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/getResource.png +0 -0
  366. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/listResources.png +0 -0
  367. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/listTools.png +0 -0
  368. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/pandas.png +0 -0
  369. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/parquet.png +0 -0
  370. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/sort.png +0 -0
  371. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/images/tests.png +0 -0
  372. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/pyproject.toml +0 -0
  373. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/pytest.ini +0 -0
  374. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/src/__init__.py +0 -0
  375. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/src/parquet_mcp/__init__.py +0 -0
  376. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/__init__.py +0 -0
  377. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/parquet_handler.py +0 -0
  378. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/src/parquet_mcp/server.py +0 -0
  379. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/parquet/uv.lock +0 -0
  380. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/.claude-plugin/plugin.json +0 -0
  381. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/.mcp.json +0 -0
  382. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/README.md +0 -0
  383. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/data/sample_data.csv +0 -0
  384. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/data/temperature.csv +0 -0
  385. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/pyproject.toml +0 -0
  386. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/pytest.ini +0 -0
  387. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/src/plot_mcp/__init__.py +0 -0
  388. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/__init__.py +0 -0
  389. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/plot_capabilities.py +0 -0
  390. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/src/plot_mcp/server.py +0 -0
  391. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/plot/uv.lock +0 -0
  392. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/.claude-plugin/plugin.json +0 -0
  393. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/.mcp.json +0 -0
  394. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/README.md +0 -0
  395. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/pyproject.toml +0 -0
  396. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/src/sac_mcp/__init__.py +0 -0
  397. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/__init__.py +0 -0
  398. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/analysis.py +0 -0
  399. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/sac_io.py +0 -0
  400. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/src/sac_mcp/server.py +0 -0
  401. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/sac/uv.lock +0 -0
  402. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/.claude-plugin/plugin.json +0 -0
  403. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/.mcp.json +0 -0
  404. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/README.md +0 -0
  405. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/pyproject.toml +0 -0
  406. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/__init__.py +0 -0
  407. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/backend.py +0 -0
  408. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/models.py +0 -0
  409. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/server.py +0 -0
  410. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/scientific-catalog/uv.lock +0 -0
  411. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/.claude-plugin/plugin.json +0 -0
  412. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/.mcp.json +0 -0
  413. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/README.md +0 -0
  414. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/pyproject.toml +0 -0
  415. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/src/seismic_mcp/__init__.py +0 -0
  416. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/__init__.py +0 -0
  417. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/analysis.py +0 -0
  418. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/catalog_io.py +0 -0
  419. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/plotting.py +0 -0
  420. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/src/seismic_mcp/server.py +0 -0
  421. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/seismic/uv.lock +0 -0
  422. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/.claude-plugin/plugin.json +0 -0
  423. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/.mcp.json +0 -0
  424. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/README.md +0 -0
  425. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/MCP_SERVER_GUIDE.md +0 -0
  426. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/agent-contract-v3.md +0 -0
  427. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/basic_install.md +0 -0
  428. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/run.md +0 -0
  429. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/NATIVE_SLURM_SUCCESS_REPORT.md +0 -0
  430. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/SLURM_INSTALLATION_GUIDE.md +0 -0
  431. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/final_verification.sh +0 -0
  432. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/install_slurm.sh +0 -0
  433. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/parallel_job.sh +0 -0
  434. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/quick_native_test.sh +0 -0
  435. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm.conf +0 -0
  436. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm_config.conf +0 -0
  437. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/README.md +0 -0
  438. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/SLURM_SCRIPT_GENERATION_PROMPT.md +0 -0
  439. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/array_job.sh +0 -0
  440. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/data_processing.sh +0 -0
  441. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/generate_slurm_script.sh +0 -0
  442. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/hello_world.sh +0 -0
  443. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/long_simulation.sh +0 -0
  444. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/example_scripts/python_computation.sh +0 -0
  445. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/logs/README.md +0 -0
  446. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/pyproject.toml +0 -0
  447. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/pytest.ini +0 -0
  448. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/__init__.py +0 -0
  449. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/agent_contract.py +0 -0
  450. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/__init__.py +0 -0
  451. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/array_jobs.py +0 -0
  452. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/cluster_info.py +0 -0
  453. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_cancellation.py +0 -0
  454. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_details.py +0 -0
  455. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_listing.py +0 -0
  456. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_output.py +0 -0
  457. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_status.py +0 -0
  458. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_submission.py +0 -0
  459. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_allocation.py +0 -0
  460. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_info.py +0 -0
  461. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/queue_info.py +0 -0
  462. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/slurm_handler.py +0 -0
  463. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/utils.py +0 -0
  464. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/mcp_handlers.py +0 -0
  465. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/src/slurm_mcp/server.py +0 -0
  466. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/slurm/uv.lock +0 -0
  467. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/.claude-plugin/plugin.json +0 -0
  468. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/.mcp.json +0 -0
  469. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/README.md +0 -0
  470. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/pyproject.toml +0 -0
  471. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/src/spack_mcp/__init__.py +0 -0
  472. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/src/spack_mcp/admin_server.py +0 -0
  473. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/src/spack_mcp/user_server.py +0 -0
  474. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/src/spack_mcp/windows_job.py +0 -0
  475. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/spack/uv.lock +0 -0
  476. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/.claude-plugin/plugin.json +0 -0
  477. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/.mcp.json +0 -0
  478. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/README.md +0 -0
  479. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/pyproject.toml +0 -0
  480. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/__init__.py +0 -0
  481. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/__init__.py +0 -0
  482. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/_common.py +0 -0
  483. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/dem.py +0 -0
  484. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/errors.py +0 -0
  485. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/pointcloud.py +0 -0
  486. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/src/terrain_mcp/server.py +0 -0
  487. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-mcp-servers/terrain/uv.lock +0 -0
  488. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/README.md +0 -0
  489. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/components/HomepageFeatures/index.js +0 -0
  490. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/components/HomepageFeatures/styles.module.css +0 -0
  491. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/components/MCPDetail/index.js +0 -0
  492. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/components/MCPDetail/styles.module.css +0 -0
  493. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/components/MCPShowcase/index.js +0 -0
  494. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/components/MCPShowcase/styles.module.css +0 -0
  495. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/css/custom.css +0 -0
  496. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/pages/index.js +0 -0
  497. {clio_kit-2.5.23 → clio_kit-2.6.2}/clio-kit-website/src/pages/index.module.css +0 -0
  498. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/jarvis-user-v3.1.json +0 -0
  499. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/jarvis-user-v3.2.json +0 -0
  500. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/jarvis-user-v3.3.json +0 -0
  501. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/jarvis-user-v3.4.json +0 -0
  502. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/jarvis-user-v3.5.json +0 -0
  503. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/jarvis-user-v3.json +0 -0
  504. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/scientific-catalog-user-v1.1.json +0 -0
  505. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/scientific-catalog-user-v1.json +0 -0
  506. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/slurm-user-v3.json +0 -0
  507. {clio_kit-2.5.23 → clio_kit-2.6.2}/src/clio_kit/_mcp_contracts/spack-user-v2.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clio-kit
3
- Version: 2.5.23
3
+ Version: 2.6.2
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
@@ -275,7 +275,7 @@ distinct `not_installed` semantic, while real Spack failures remain errors.
275
275
  | **`geo`** | 2.2.3 | Geospatial | Render GeoJSON vector layers with basemaps | `clio-kit mcp-server geo` |
276
276
  | **`geojson`** | 2.2.3 | Geospatial | Inspect, validate, and summarize GeoJSON | `clio-kit mcp-server geojson` |
277
277
  | **`hdf5`** | 2.2.3 | Data I/O | HPC-optimized scientific data with 27 tools, AI insights, caching, streaming | `clio-kit mcp-server hdf5` |
278
- | **`jarvis`** | 3.5.4 | Workflow | Durable pipeline, bounded package discovery, progress, artifact, and service-runtime management | `clio-kit mcp-server jarvis` |
278
+ | **`jarvis`** | 3.6.0 | Workflow | Durable pipeline, bounded package discovery, progress, artifact, and service-runtime management | `clio-kit mcp-server jarvis` |
279
279
  | **`lmod`** | 2.2.3 | Environment | Environment module management | `clio-kit mcp-server lmod` |
280
280
  | **`ndp`** | 2.2.3 | Data Protocol | Search and discover datasets across CKAN instances | `clio-kit mcp-server ndp` |
281
281
  | **`node-hardware`** | 2.2.3 | System | System hardware information | `clio-kit mcp-server node-hardware` |
@@ -249,7 +249,7 @@ distinct `not_installed` semantic, while real Spack failures remain errors.
249
249
  | **`geo`** | 2.2.3 | Geospatial | Render GeoJSON vector layers with basemaps | `clio-kit mcp-server geo` |
250
250
  | **`geojson`** | 2.2.3 | Geospatial | Inspect, validate, and summarize GeoJSON | `clio-kit mcp-server geojson` |
251
251
  | **`hdf5`** | 2.2.3 | Data I/O | HPC-optimized scientific data with 27 tools, AI insights, caching, streaming | `clio-kit mcp-server hdf5` |
252
- | **`jarvis`** | 3.5.4 | Workflow | Durable pipeline, bounded package discovery, progress, artifact, and service-runtime management | `clio-kit mcp-server jarvis` |
252
+ | **`jarvis`** | 3.6.0 | Workflow | Durable pipeline, bounded package discovery, progress, artifact, and service-runtime management | `clio-kit mcp-server jarvis` |
253
253
  | **`lmod`** | 2.2.3 | Environment | Environment module management | `clio-kit mcp-server lmod` |
254
254
  | **`ndp`** | 2.2.3 | Data Protocol | Search and discover datasets across CKAN instances | `clio-kit mcp-server ndp` |
255
255
  | **`node-hardware`** | 2.2.3 | System | System hardware information | `clio-kit mcp-server node-hardware` |
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
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.5.23",
15
+ "version": "2.6.2",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "clio-jarvis",
3
3
  "description": "JARVIS-CD MCP with a compact user pipeline contract and explicit admin compatibility profiles",
4
- "version": "3.5.4"
4
+ "version": "3.6.0"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "jarvis-mcp"
3
- version = "3.5.4"
3
+ version = "3.6.0"
4
4
  description = "JARVIS-CD MCP with a compact user pipeline contract and explicit admin compatibility profiles"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -15,7 +15,7 @@ dependencies = [
15
15
  "fastmcp>=3.2.0",
16
16
  "fastapi",
17
17
  "python-dotenv>=1.2.2",
18
- "jarvis-cd @ https://github.com/grc-iit/jarvis-cd/releases/download/v1.4.8/jarvis_cd-1.4.8-py3-none-any.whl#sha256=ebf5e5f375b921f20c79075d461926431a5a017ca8b45e598878a89b229b3935",
18
+ "jarvis-cd @ https://github.com/grc-iit/jarvis-cd/releases/download/v1.6.0/jarvis_cd-1.6.0-py3-none-any.whl#sha256=c4853138f3263715e806fcd794233d89f4aa58161e3c5fbab59e7f96d24f0e98",
19
19
  "starlette>=1.3.1",
20
20
  "authlib>=1.6.12",
21
21
  "cryptography>=48.0.1",
@@ -18,13 +18,13 @@ from urllib.parse import urlsplit
18
18
 
19
19
 
20
20
  Json = dict[str, Any]
21
- EXPECTED_JARVIS_VERSION = "1.4.8"
21
+ EXPECTED_JARVIS_VERSION = "1.6.0"
22
22
  EXPECTED_JARVIS_URL = (
23
- "https://github.com/grc-iit/jarvis-cd/releases/download/v1.4.8/"
24
- "jarvis_cd-1.4.8-py3-none-any.whl"
23
+ "https://github.com/grc-iit/jarvis-cd/releases/download/v1.6.0/"
24
+ "jarvis_cd-1.6.0-py3-none-any.whl"
25
25
  )
26
26
  EXPECTED_JARVIS_SHA256 = (
27
- "ebf5e5f375b921f20c79075d461926431a5a017ca8b45e598878a89b229b3935"
27
+ "c4853138f3263715e806fcd794233d89f4aa58161e3c5fbab59e7f96d24f0e98"
28
28
  )
29
29
 
30
30
 
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.iowarp/jarvis-mcp",
4
4
  "title": "CLIO Jarvis",
5
5
  "description": "JARVIS-CD MCP with a compact user pipeline contract and explicit admin compatibility profiles",
6
- "version": "3.5.4",
6
+ "version": "3.6.0",
7
7
  "repository": {
8
8
  "url": "https://github.com/iowarp/clio-kit",
9
9
  "source": "github"
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "pypi",
14
14
  "identifier": "clio-kit",
15
- "version": "2.5.23",
15
+ "version": "2.6.2",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -35,11 +35,11 @@
35
35
  },
36
36
  {
37
37
  "name": "jarvis_describe",
38
- "description": "Describe JARVIS packages, one package, a pipeline, or one pipeline step. For a named application, first use target='package' with its unique short name or fully qualified package name. Use target='package_search' for bounded discovery, then describe the selected canonical name. target='packages' is an exhaustive legacy inventory with every package's settings and can be large; use it only when the complete installed catalog is explicitly required."
38
+ "description": "Describe JARVIS packages, one package, a pipeline, or one pipeline step. For a named application, first use target='package' with its unique short name or fully qualified package name. Use target='package_search' for bounded discovery, then describe the selected canonical name. A package description returns package-owned configuration metadata and, when supported, a versioned deployment contract covering execution profiles, runtime requirements, readiness, and configuration rules. Package settings include only semantic parameters explicitly marked agent-visible. A setting may include a versioned input_binding descriptor for a declared local input that must be staged; callers must not infer file semantics from setting names or prose. Installer, scheduler, and other implementation controls remain owned by their dedicated contracts. target='packages' is an exhaustive legacy inventory with every agent-visible package setting and can be large; use it only when the complete installed catalog is explicitly required."
39
39
  },
40
40
  {
41
41
  "name": "jarvis_add_step",
42
- "description": "Add and configure a package-backed step in a JARVIS pipeline. First use jarvis_describe(target='package') for the selected package; config keys must use its canonical setting names exactly, except for aliases explicitly listed there. User-level step configuration is always validated and cannot be bypassed."
42
+ "description": "Add and configure a package-backed step in a JARVIS pipeline. First use jarvis_describe(target='package') for the selected package; config keys must use its canonical setting names exactly, except for aliases explicitly listed there. Explicit null is accepted only when that setting reports nullable=true; omit a setting to use its declared default. Only settings marked agent-visible by the package are accepted here. User-level step configuration is always validated and cannot be bypassed."
43
43
  },
44
44
  {
45
45
  "name": "jarvis_edit_step",
@@ -47,11 +47,11 @@
47
47
  },
48
48
  {
49
49
  "name": "jarvis_run",
50
- "description": "Start a configured JARVIS pipeline and return its durable execution handle without waiting for workload completion. Optional execution intent selects local, cluster, or hostfile mode without exposing scheduler internals. Optional spack_specs are resolved into a filtered environment that JARVIS persists before direct or scheduler execution. Use jarvis_get_execution with the returned pipeline_id and execution_id to query lifecycle, progress, artifacts, and execution-owned service runtimes."
50
+ "description": "Start a configured JARVIS pipeline and return its durable execution handle without waiting for workload completion. Optional execution intent selects local, cluster, or hostfile mode without exposing scheduler internals. For each runtime resolved with Spack, copy spack_locate.output.load_spec unchanged into one element of jarvis_run.input.spack_specs; do not derive an executable path from the Spack prefix. JARVIS resolves those specs into a filtered environment and persists it before direct or scheduler execution. Use jarvis_get_execution with the returned pipeline_id and execution_id to query lifecycle, progress, artifacts, and execution-owned service runtimes."
51
51
  },
52
52
  {
53
53
  "name": "jarvis_get_execution",
54
- "description": "Query one JARVIS execution handle, durable lifecycle record, and runtime metadata. Progress is included by default and can be omitted. Set include_service_runtimes=true to include execution-owned network services such as an interactive ParaView runtime; authenticated services expose only a non-secret bearer token SHA-256 fingerprint. Set artifacts to {} or filters to include one bounded artifact page; omit artifacts to avoid querying the artifact manifest."
54
+ "description": "Query one JARVIS execution handle, durable lifecycle record, and runtime metadata. Progress is included by default and can be omitted. Set include_service_runtimes=true to include execution-owned network services; authenticated services expose only a non-secret bearer token SHA-256 fingerprint. Set artifacts to {} or filters to include one bounded artifact page; omit artifacts to avoid querying the artifact manifest."
55
55
  }
56
56
  ],
57
57
  "resources": [
@@ -6,8 +6,10 @@ import argparse
6
6
  import os
7
7
 
8
8
  from .server import (
9
+ add_jarvis_root_argument,
9
10
  add_spack_command_argument,
10
11
  apply_tool_profile,
12
+ configure_jarvis_root,
11
13
  configure_spack_command,
12
14
  mcp,
13
15
  )
@@ -21,8 +23,10 @@ def main() -> None:
21
23
  parser.add_argument("--transport", choices=["stdio", "http"], default=None)
22
24
  parser.add_argument("--host", default="0.0.0.0")
23
25
  parser.add_argument("--port", type=int, default=8000)
26
+ add_jarvis_root_argument(parser)
24
27
  add_spack_command_argument(parser)
25
28
  args = parser.parse_args()
29
+ configure_jarvis_root(args.jarvis_root)
26
30
  configure_spack_command(args.spack_command)
27
31
  transport = args.transport or os.getenv("MCP_TRANSPORT", "stdio")
28
32
  if transport == "http":
@@ -3,12 +3,12 @@ Jarvis MCP Server
3
3
 
4
4
  Jarvis-CD MCP - Pipeline Management for High-Performance Computing with comprehensive workflow operations
5
5
 
6
- Version: 3.5.4
6
+ Version: 3.6.0
7
7
  Author: IoWarp Team - Gnosis Research Center
8
8
  License: BSD-3-Clause
9
9
  """
10
10
 
11
- __version__ = "3.5.4"
11
+ __version__ = "3.6.0"
12
12
  __author__ = "IoWarp Team - Gnosis Research Center"
13
13
  __email__ = "grc@illinoistech.edu"
14
14
  __license__ = "BSD-3-Clause"
@@ -482,6 +482,7 @@ async def append_pkg(
482
482
  pkg_type: str,
483
483
  pkg_id: Optional[str] = None,
484
484
  do_configure: bool = True,
485
+ agent_visible_only: bool = False,
485
486
  **kwargs: Any,
486
487
  ) -> dict:
487
488
  try:
@@ -489,6 +490,8 @@ async def append_pkg(
489
490
  config_flag = do_configure
490
491
  if "do_configure" in raw_kwargs:
491
492
  config_flag = raw_kwargs.pop("do_configure")
493
+ if agent_visible_only:
494
+ _reject_non_agent_visible_package_settings(pkg_type, raw_kwargs)
492
495
 
493
496
  with _protocol_stdout_to_stderr():
494
497
  pipeline = _load_pipeline(pipeline_id)
@@ -506,13 +509,19 @@ async def append_pkg(
506
509
  pipeline.append(pkg_type, package_alias=pkg_id, config_args=config_args)
507
510
  try:
508
511
  expected = _normalize_package_config_request(
509
- pipeline, resolved_pkg_id, raw_kwargs
512
+ pipeline,
513
+ resolved_pkg_id,
514
+ raw_kwargs,
515
+ agent_visible_only=agent_visible_only,
510
516
  )
511
517
  persisted_config = _package_config(
512
518
  _get_package(pipeline, resolved_pkg_id)
513
519
  )
514
520
  _require_persisted_package_config(
515
- resolved_pkg_id, expected, persisted_config
521
+ resolved_pkg_id,
522
+ expected,
523
+ persisted_config,
524
+ pipeline=pipeline,
516
525
  )
517
526
  if config_flag:
518
527
  pipeline.configure_package(resolved_pkg_id, config_args)
@@ -521,7 +530,10 @@ async def append_pkg(
521
530
  _get_package(persisted, resolved_pkg_id)
522
531
  )
523
532
  _require_persisted_package_config(
524
- resolved_pkg_id, expected, persisted_config
533
+ resolved_pkg_id,
534
+ expected,
535
+ persisted_config,
536
+ pipeline=persisted,
525
537
  )
526
538
  except BaseException as exc:
527
539
  try:
@@ -581,20 +593,43 @@ async def update_pipeline(pipeline_id: str) -> dict:
581
593
 
582
594
 
583
595
  @_locked_pipeline_operation
584
- async def configure_pkg(pipeline_id: str, pkg_id: str, **kwargs: Any) -> dict:
596
+ async def configure_pkg(
597
+ pipeline_id: str,
598
+ pkg_id: str,
599
+ *,
600
+ agent_visible_only: bool = False,
601
+ **kwargs: Any,
602
+ ) -> dict:
585
603
  try:
586
604
  with _protocol_stdout_to_stderr():
587
605
  pipeline = _load_pipeline(pipeline_id)
588
606
  if _is_legacy_pipeline(pipeline):
607
+ if agent_visible_only:
608
+ _normalize_package_config_request(
609
+ pipeline,
610
+ pkg_id,
611
+ kwargs,
612
+ agent_visible_only=True,
613
+ )
589
614
  pipeline.configure(pkg_id, **kwargs)
590
615
  _save_pipeline(pipeline)
591
616
  persisted_config = _package_config(_get_package(pipeline, pkg_id))
592
617
  else:
593
- expected = _normalize_package_config_request(pipeline, pkg_id, kwargs)
618
+ expected = _normalize_package_config_request(
619
+ pipeline,
620
+ pkg_id,
621
+ kwargs,
622
+ agent_visible_only=agent_visible_only,
623
+ )
594
624
  pipeline.configure_package(pkg_id, _kwargs_to_config_args(kwargs))
595
625
  persisted = _load_pipeline(pipeline_id)
596
626
  persisted_config = _package_config(_get_package(persisted, pkg_id))
597
- _require_persisted_package_config(pkg_id, expected, persisted_config)
627
+ _require_persisted_package_config(
628
+ pkg_id,
629
+ expected,
630
+ persisted_config,
631
+ pipeline=persisted,
632
+ )
598
633
  return {
599
634
  "pipeline_id": pipeline_id,
600
635
  "configured": pkg_id,
@@ -3242,7 +3277,11 @@ def _package_config(pkg: Any) -> Any:
3242
3277
 
3243
3278
 
3244
3279
  def _normalize_package_config_request(
3245
- pipeline: Any, pkg_id: str, kwargs: dict[str, Any]
3280
+ pipeline: Any,
3281
+ pkg_id: str,
3282
+ kwargs: dict[str, Any],
3283
+ *,
3284
+ agent_visible_only: bool = False,
3246
3285
  ) -> dict[str, Any]:
3247
3286
  """Validate and normalize structured settings with the package-owned parser."""
3248
3287
  pkg = _get_package(pipeline, pkg_id)
@@ -3261,6 +3300,7 @@ def _normalize_package_config_request(
3261
3300
  if not isinstance(menu, list):
3262
3301
  raise RuntimeError(f"Package '{pkg_id}' returned an invalid configuration menu")
3263
3302
  canonical_names: dict[str, str] = {}
3303
+ nullable_names: set[str] = set()
3264
3304
  for spec in menu:
3265
3305
  if not isinstance(spec, dict):
3266
3306
  raise RuntimeError(
@@ -3271,7 +3311,11 @@ def _normalize_package_config_request(
3271
3311
  raise RuntimeError(
3272
3312
  f"Package '{pkg_id}' returned an invalid configuration option name"
3273
3313
  )
3314
+ if agent_visible_only and spec.get("agent_visible", True) is False:
3315
+ continue
3274
3316
  canonical_names[name] = name
3317
+ if "default" in spec and spec["default"] is None:
3318
+ nullable_names.add(name)
3275
3319
  aliases = spec.get("aliases", [])
3276
3320
  if not isinstance(aliases, list) or not all(
3277
3321
  isinstance(alias, str) and alias for alias in aliases
@@ -3286,11 +3330,15 @@ def _normalize_package_config_request(
3286
3330
  raise ValueError(
3287
3331
  f"Package '{pkg_id}' does not support settings: {', '.join(unknown)}"
3288
3332
  )
3289
- null_names = sorted(name for name, value in kwargs.items() if value is None)
3333
+ null_names = sorted(
3334
+ name
3335
+ for name, value in kwargs.items()
3336
+ if value is None and canonical_names[name] not in nullable_names
3337
+ )
3290
3338
  if null_names:
3291
3339
  raise ValueError(
3292
- "Package settings cannot be null; provide a concrete value for: "
3293
- + ", ".join(null_names)
3340
+ "Package settings cannot be null unless their package description reports "
3341
+ "nullable=true; provide a concrete value for: " + ", ".join(null_names)
3294
3342
  )
3295
3343
 
3296
3344
  parser = cast(Any, get_argparse())
@@ -3314,10 +3362,65 @@ def _normalize_package_config_request(
3314
3362
  return normalized
3315
3363
 
3316
3364
 
3365
+ def _reject_non_agent_visible_package_settings(
3366
+ package_name: str,
3367
+ kwargs: dict[str, Any],
3368
+ ) -> None:
3369
+ """Reject implementation settings before a user append can mutate a pipeline."""
3370
+
3371
+ if not kwargs:
3372
+ return
3373
+ try:
3374
+ from jarvis_cd.core.pkg import Pkg # type: ignore[import-untyped]
3375
+
3376
+ instance = Pkg.load_standalone(package_name)
3377
+ menu = instance.configure_menu()
3378
+ except Exception as exc:
3379
+ raise RuntimeError(
3380
+ f"Package '{package_name}' does not expose agent configuration metadata"
3381
+ ) from exc
3382
+ if not isinstance(menu, list):
3383
+ raise RuntimeError(
3384
+ f"Package '{package_name}' returned an invalid configuration menu"
3385
+ )
3386
+ hidden_names: set[str] = set()
3387
+ for spec in menu:
3388
+ if not isinstance(spec, dict):
3389
+ raise RuntimeError(
3390
+ f"Package '{package_name}' returned an invalid configuration option"
3391
+ )
3392
+ if spec.get("agent_visible", True) is not False:
3393
+ continue
3394
+ name = spec.get("name")
3395
+ if not isinstance(name, str) or not name:
3396
+ raise RuntimeError(
3397
+ f"Package '{package_name}' returned an invalid configuration option name"
3398
+ )
3399
+ hidden_names.add(name)
3400
+ aliases = spec.get("aliases", [])
3401
+ if not isinstance(aliases, list) or not all(
3402
+ isinstance(alias, str) and alias for alias in aliases
3403
+ ):
3404
+ raise RuntimeError(
3405
+ f"Package '{package_name}' returned invalid aliases for '{name}'"
3406
+ )
3407
+ hidden_names.update(aliases)
3408
+ requested = sorted(set(kwargs) & hidden_names)
3409
+ if requested:
3410
+ raise ValueError(
3411
+ "Package settings are implementation-owned and not agent-visible: "
3412
+ + ", ".join(requested)
3413
+ )
3414
+
3415
+
3317
3416
  def _require_persisted_package_config(
3318
- pkg_id: str, expected: dict[str, Any], persisted: Any
3417
+ pkg_id: str,
3418
+ expected: dict[str, Any],
3419
+ persisted: Any,
3420
+ *,
3421
+ pipeline: Any | None = None,
3319
3422
  ) -> None:
3320
- """Fail unless every normalized setting survived a durable pipeline reload."""
3423
+ """Require exact persistence or a verified package-owned input rewrite."""
3321
3424
  if not isinstance(persisted, dict):
3322
3425
  raise RuntimeError(f"Package '{pkg_id}' persisted an invalid configuration")
3323
3426
  mismatches = [
@@ -3325,6 +3428,31 @@ def _require_persisted_package_config(
3325
3428
  for name, value in expected.items()
3326
3429
  if name not in persisted or _jsonable(persisted[name]) != _jsonable(value)
3327
3430
  ]
3431
+ if mismatches and pipeline is not None:
3432
+ package = _get_package(pipeline, pkg_id)
3433
+ loader = getattr(pipeline, "_load_package_instance", None)
3434
+ instance = (
3435
+ loader(package, getattr(pipeline, "env", {}))
3436
+ if package is not None and callable(loader)
3437
+ else package
3438
+ )
3439
+ verifier = getattr(
3440
+ instance,
3441
+ "configuration_input_materialization_matches",
3442
+ None,
3443
+ )
3444
+ if callable(verifier):
3445
+ verified: set[str] = set()
3446
+ for name in mismatches:
3447
+ if name not in persisted:
3448
+ continue
3449
+ try:
3450
+ matches = verifier(name, expected[name], persisted[name])
3451
+ except Exception:
3452
+ matches = False
3453
+ if matches is True:
3454
+ verified.add(name)
3455
+ mismatches = [name for name in mismatches if name not in verified]
3328
3456
  if mismatches:
3329
3457
  raise ValueError(
3330
3458
  f"Package '{pkg_id}' did not persist settings: {', '.join(mismatches)}"