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.
- {clio_kit-2.7.2 → clio_kit-2.9.0}/PKG-INFO +2 -2
- {clio_kit-2.7.2 → clio_kit-2.9.0}/README.md +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/arxiv_base.py +95 -4
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/server.json +1 -1
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/__init__.py +21 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/_base.py +11 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/artifact_documents.py +124 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/compat.py +143 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/datasets.py +142 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/describe.py +65 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/execution.py +359 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/packages.py +211 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/progress.py +135 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/models/service_runtime.py +146 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/package_discovery.py +669 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/server.py +1582 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/server.json +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/server.json +1 -1
- clio_kit-2.9.0/clio-kit-mcp-servers/web/.claude-plugin/plugin.json +5 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/web/README.md +94 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/docs/web_tools.md +18 -6
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/pyproject.toml +2 -2
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/server.json +8 -8
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/src/web_mcp/__init__.py +1 -1
- clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/document_service.py +136 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/fetch_utils.py +267 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/searxng.py +181 -0
- clio_kit-2.9.0/clio-kit-mcp-servers/web/src/web_mcp/server.py +725 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/uv.lock +1 -1
- {clio_kit-2.7.2 → clio_kit-2.9.0}/mcp-server-versions.toml +3 -3
- {clio_kit-2.7.2 → clio_kit-2.9.0}/pyproject.toml +1 -1
- clio_kit-2.7.2/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/server.py +0 -3109
- clio_kit-2.7.2/clio-kit-mcp-servers/web/.claude-plugin/plugin.json +0 -5
- clio_kit-2.7.2/clio-kit-mcp-servers/web/README.md +0 -87
- clio_kit-2.7.2/clio-kit-mcp-servers/web/src/web_mcp/server.py +0 -739
- {clio_kit-2.7.2 → clio_kit-2.9.0}/.gitignore +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/LICENSE +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/api/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/api/app.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/cli/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/cli/main.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/filesystem/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/filesystem/connector.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/graph_store/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/graph_store/connector.py +0 -0
- {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
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/object_store/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/object_store/connector.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/vector_store/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/connectors/vector_store/connector.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/connectors.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/namespace_config.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/namespace_registry.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/core/seeding.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/evals/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/evals/quality_gate.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/evals/scientific.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/lexical.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/scientific.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/indexing/text_features.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/jobs.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/models/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/models/contracts.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/ann.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/capabilities.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/coordinator.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/rerank.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retrieval/scientific.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/retry.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/storage/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/storage/contracts.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/storage/duckdb_store.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/tasks.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/src/clio_agentic_search/telemetry/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-agentic-search/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-clients/wrp_bin/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/docs/adios_setup.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/docs/basic_install.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/docs/example_uses.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/data.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.idx +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data1.bp/mmd.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/data.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.idx +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data2.bp/mmd.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/data.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.idx +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data3.bp/mmd.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/data.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.idx +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/sample_data/data4.bp/mmd.0 +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_attributes.py +0 -0
- {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
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_list.py +0 -0
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/mcp_handlers.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/src/adios_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/adios/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/demo.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/docs/basic_install.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/category_search.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/date_search.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/download_paper.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/export_utils.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/paper_details.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/text_search.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/mcp_handlers.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/arxiv/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-client.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-clientstartchronolog.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-retievecopilot.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/assets/mcp-retrieve-diseasepred.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/docs/Chronolog_setup.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/record_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/retrieve_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/start_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/stop_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/CMakeLists.txt +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/HDF5ArchiveReadingAgent.h +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/reader.cpp +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/config.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/chronolog/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/data/sample_data.csv +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/data/sample_log.txt +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/compression_base.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/mcp_handlers.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/src/compression_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/compression/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/darshan_parser.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/src/darshan_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/darshan/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/arcgis.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/geocode.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/map_render.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/overlap.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/implementation/proximity.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/src/geo_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geo/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/implementation/inspect.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/src/geojson_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/geojson/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/TESTING.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/ARCHITECTURE.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/EXAMPLES.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/MIGRATION.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/TOOLS.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/docs/TRANSPORTS.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/examples/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/examples/create_demo_data.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/examples/demo_script.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/config.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/resources.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/utils.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/hdf5/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/GUIDE.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/docs/basic_install.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/requirements.txt +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/scripts/live_ares_semantic_mcp_probe.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/admin_server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/artifacts.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/progress.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/user_server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/windows_job.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/jarvis/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/lmod_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/src/lmod_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/lmod/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/docs/mcp_development_guide.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/docs/ndp_api.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/docs/ndp_docs.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/src/ndp_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/ndp/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/server.py +0 -0
- {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
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/node-hardware/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/example_script/create_sample_data.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/csv_profiling.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_cleaning.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_io.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_profiling.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/filtering.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/memory_optimization.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/output_formatter.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/pandas_statistics.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/time_series.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/transformations.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/validation.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/mcp_handlers.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/src/pandas_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/pandas/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/USAGE_GUIDE.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parallel-sort/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/LICENSE +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/USAGE_README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/prompt.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/requirements.txt +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/automate_setup.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/build_paraview.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/configure_paraview.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/install_deps.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/installation_example.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/launch_gui.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/launch_server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/scripts/test_installation.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/paraview_capabilities.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/src/paraview_mcp/viz.html +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/paraview/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/data.csv +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/huge_log.txt +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/small_log.txt +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/data/weather_data.parquet +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/datasets/batch_1.parquet +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/datasets/batch_large_strings.parquet +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/evaluation.xml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/compress.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/getResource.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/listResources.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/listTools.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/pandas.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/parquet.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/sort.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/images/tests.png +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/parquet_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/src/parquet_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/parquet/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/data/sample_data.csv +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/data/temperature.csv +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/plot_capabilities.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/src/plot_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/plot/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/analysis.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/implementation/sac_io.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/src/sac_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/sac/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/backend.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/models.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/src/scientific_catalog_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/scientific-catalog/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/analysis.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/catalog_io.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/implementation/plotting.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/src/seismic_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/seismic/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/MCP_SERVER_GUIDE.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/agent-contract-v3.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/basic_install.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/run.md +0 -0
- {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
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/SLURM_INSTALLATION_GUIDE.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/final_verification.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/install_slurm.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/parallel_job.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/quick_native_test.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm.conf +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm_config.conf +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/SLURM_SCRIPT_GENERATION_PROMPT.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/array_job.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/data_processing.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/generate_slurm_script.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/hello_world.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/long_simulation.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/example_scripts/python_computation.sh +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/logs/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/pytest.ini +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/agent_contract.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/array_jobs.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/cluster_info.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_cancellation.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_details.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_listing.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_output.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_status.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_submission.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_allocation.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_info.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/queue_info.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/slurm_handler.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/utils.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/mcp_handlers.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/src/slurm_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/slurm/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/admin_server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/backend.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/user_server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/src/spack_mcp/windows_job.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/spack/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/.claude-plugin/plugin.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/pyproject.toml +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/_common.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/dem.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/errors.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/implementation/pointcloud.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/src/terrain_mcp/server.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/terrain/uv.lock +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-mcp-servers/web/.mcp.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/README.md +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/HomepageFeatures/index.js +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/HomepageFeatures/styles.module.css +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPDetail/index.js +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPDetail/styles.module.css +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPShowcase/index.js +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/components/MCPShowcase/styles.module.css +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/css/custom.css +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/data/mcpData.js +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/pages/index.js +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/clio-kit-website/src/pages/index.module.css +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/__init__.py +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/index.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.1.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.2.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.3.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.4.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.5.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.6.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/jarvis-user-v3.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/scientific-catalog-user-v1.1.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/scientific-catalog-user-v1.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/slurm-user-v3.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/spack-user-v2.1.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/_mcp_contracts/spack-user-v2.json +0 -0
- {clio_kit-2.7.2 → clio_kit-2.9.0}/src/clio_kit/env_cache.py +0 -0
- {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.
|
|
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`** |
|
|
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`** |
|
|
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
|
|
|
@@ -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
|
-
|
|
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:
|
|
@@ -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
|