sunholo 0.116.1__tar.gz → 0.116.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.
- {sunholo-0.116.1 → sunholo-0.116.2}/PKG-INFO +8 -2
- {sunholo-0.116.1 → sunholo-0.116.2}/README.md +6 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/setup.py +1 -1
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/cli.py +3 -3
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/mcp/cli.py +20 -17
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo.egg-info/PKG-INFO +8 -2
- {sunholo-0.116.1 → sunholo-0.116.2}/LICENSE.txt +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/MANIFEST.in +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/setup.cfg +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/flask/qna_routes.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/flask/vac_routes.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/route.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/agents/swagger.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/archive/archive.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/auth/gcloud.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/auth/refresh.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/auth/run.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/azure/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/azure/auth.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/azure/blobs.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/azure/event_grid.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/bots/discord.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/azure.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/encode_metadata.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/images.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/process_chunker_data.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/pubsub.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/configs.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/swagger.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/cli/vertex.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/components/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/components/llm.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/components/retriever.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/custom_logging.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/alloydb_client.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/database.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/database/uuid.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/discovery_engine/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/discovery_engine/chunker_handler.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/discovery_engine/create_new.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/excel/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/excel/plugin.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/gcs/download_folder.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/gcs/extract_and_sign.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/genai/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/genai/file_handling.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/genai/images.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/genai/init.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/genai/process_funcs_cls.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/genai/safety.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/invoke/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/invoke/async_class.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/invoke/direct_vac_func.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/invoke/invoke_vac_utils.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/langfuse/evals.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/llamaindex/llamaindex_class.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/llamaindex/user_history.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/mcp/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/qna/retry.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/senses/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/senses/stream_voice.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/terraform/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/terraform/tfvars_editor.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/tools/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/tools/web_browser.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/types.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/api_key.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/config.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/config_class.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/mime.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/utils/version.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/extensions_call.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/extensions_class.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/genai_functions.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/init.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/safety.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo/vertex/type_dict_to_json.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/tests/test_async.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/tests/test_chat_history.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/tests/test_config.py +0 -0
- {sunholo-0.116.1 → sunholo-0.116.2}/tests/test_unstructured.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.116.
|
|
3
|
+
Version: 0.116.2
|
|
4
4
|
Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
|
|
5
5
|
Home-page: https://github.com/sunholo-data/sunholo-py
|
|
6
|
-
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.116.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.116.2.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -190,6 +190,12 @@ pip install . --use-feature=in-tree-build
|
|
|
190
190
|
pytest tests
|
|
191
191
|
```
|
|
192
192
|
|
|
193
|
+
## Local dev
|
|
194
|
+
|
|
195
|
+
```sh
|
|
196
|
+
uv tool install --from "sunholo[cli]" sunholo --with ".[all]"
|
|
197
|
+
```
|
|
198
|
+
|
|
193
199
|
## Demos
|
|
194
200
|
|
|
195
201
|
Using https://github.com/charmbracelet/vhs
|
|
@@ -16,7 +16,6 @@ from ..terraform import setup_tfvarseditor_subparser
|
|
|
16
16
|
from ..senses.stream_voice import setup_tts_subparser
|
|
17
17
|
from ..mcp.cli import setup_mcp_subparser
|
|
18
18
|
|
|
19
|
-
|
|
20
19
|
from ..utils import ConfigManager
|
|
21
20
|
from ..utils.version import sunholo_version
|
|
22
21
|
|
|
@@ -24,7 +23,7 @@ from ..custom_logging import log
|
|
|
24
23
|
|
|
25
24
|
from .sun_rich import console
|
|
26
25
|
import sys
|
|
27
|
-
|
|
26
|
+
|
|
28
27
|
|
|
29
28
|
def load_default_gcp_config():
|
|
30
29
|
try:
|
|
@@ -43,6 +42,7 @@ class CustomHelpAction(argparse.Action):
|
|
|
43
42
|
super().__init__(option_strings, dest, nargs=nargs, **kwargs)
|
|
44
43
|
|
|
45
44
|
def __call__(self, parser, namespace, values, option_string=None):
|
|
45
|
+
from rich.panel import Panel
|
|
46
46
|
console.print(
|
|
47
47
|
Panel("Welcome to Sunholo Command Line Interface, your assistant to deploy GenAI Virtual Agent Computers (VACs) to Multivac or your own Cloud.",
|
|
48
48
|
title="Sunholo GenAIOps Assistant CLI",
|
|
@@ -64,7 +64,7 @@ def main(args=None):
|
|
|
64
64
|
"""
|
|
65
65
|
default_project, default_region = load_default_gcp_config()
|
|
66
66
|
|
|
67
|
-
parser = argparse.ArgumentParser(description="sunholo CLI tool for deploying GenAI VACs
|
|
67
|
+
parser = argparse.ArgumentParser(description=f"sunholo CLI tool for deploying GenAI VACs - [{sunholo_version()}]", add_help=False)
|
|
68
68
|
parser.add_argument('-h', '--help', action=CustomHelpAction, help='Show this help message and exit')
|
|
69
69
|
parser.add_argument('--debug', action='store_true', help='Enable debug output')
|
|
70
70
|
parser.add_argument('--project', default=default_project, help='GCP project to list Cloud Run services from.')
|
|
@@ -3,6 +3,7 @@ import asyncio
|
|
|
3
3
|
from typing import Any, Sequence
|
|
4
4
|
from functools import lru_cache
|
|
5
5
|
import subprocess
|
|
6
|
+
from ..utils.version import sunholo_version
|
|
6
7
|
|
|
7
8
|
try:
|
|
8
9
|
from mcp.server import Server
|
|
@@ -24,12 +25,10 @@ except ImportError:
|
|
|
24
25
|
from pydantic import AnyUrl
|
|
25
26
|
|
|
26
27
|
# Configure logging
|
|
27
|
-
import
|
|
28
|
-
|
|
29
|
-
logger = logging.getLogger("sunholo-mcp")
|
|
28
|
+
from ..custom_logging import setup_logging
|
|
29
|
+
logger = setup_logging("sunholo-mcp")
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
class SunholoMCPServer2:
|
|
31
|
+
class SunholoMCPServer:
|
|
33
32
|
def __init__(self):
|
|
34
33
|
logger.info("Initializing Sunholo MCP Server")
|
|
35
34
|
|
|
@@ -58,8 +57,8 @@ class SunholoMCPServer2:
|
|
|
58
57
|
"""List available Sunholo resources"""
|
|
59
58
|
return [
|
|
60
59
|
Resource(
|
|
61
|
-
uri="sunholo://vacs/
|
|
62
|
-
name="Available Sunholo VACs
|
|
60
|
+
uri="sunholo://vacs/list",
|
|
61
|
+
name="Available Sunholo VACs",
|
|
63
62
|
mimeType="application/json",
|
|
64
63
|
description="List of available Virtual Agent Computers"
|
|
65
64
|
)
|
|
@@ -70,7 +69,7 @@ class SunholoMCPServer2:
|
|
|
70
69
|
"""Read Sunholo resources based on URI"""
|
|
71
70
|
logger.info(f"{uri} available")
|
|
72
71
|
console.print(f"{uri} available")
|
|
73
|
-
if str(uri) == "sunholo://vacs/
|
|
72
|
+
if str(uri) == "sunholo://vacs/list":
|
|
74
73
|
try:
|
|
75
74
|
# Execute sunholo vac list command
|
|
76
75
|
result = subprocess.run(
|
|
@@ -78,7 +77,6 @@ class SunholoMCPServer2:
|
|
|
78
77
|
capture_output=True,
|
|
79
78
|
text=True
|
|
80
79
|
)
|
|
81
|
-
console.print(f"{result=}")
|
|
82
80
|
return result.stdout
|
|
83
81
|
except subprocess.CalledProcessError as e:
|
|
84
82
|
raise RuntimeError(f"Failed to list VACs: {str(e)}")
|
|
@@ -96,7 +94,7 @@ class SunholoMCPServer2:
|
|
|
96
94
|
return [
|
|
97
95
|
Tool(
|
|
98
96
|
name="chat_with_vac",
|
|
99
|
-
description="Chat with a specific Sunholo
|
|
97
|
+
description="Chat with a specific Sunholo VAC",
|
|
100
98
|
inputSchema={
|
|
101
99
|
"type": "object",
|
|
102
100
|
"properties": {
|
|
@@ -114,7 +112,7 @@ class SunholoMCPServer2:
|
|
|
114
112
|
),
|
|
115
113
|
Tool(
|
|
116
114
|
name="list_configs",
|
|
117
|
-
description="List Sunholo
|
|
115
|
+
description="List Sunholo configurations",
|
|
118
116
|
inputSchema={
|
|
119
117
|
"type": "object",
|
|
120
118
|
"properties": {
|
|
@@ -135,7 +133,7 @@ class SunholoMCPServer2:
|
|
|
135
133
|
),
|
|
136
134
|
Tool(
|
|
137
135
|
name="embed_content",
|
|
138
|
-
description="Embed content in a VAC's vector
|
|
136
|
+
description="Embed content in a VAC's vector store",
|
|
139
137
|
inputSchema={
|
|
140
138
|
"type": "object",
|
|
141
139
|
"properties": {
|
|
@@ -269,11 +267,16 @@ def cli_mcp(args):
|
|
|
269
267
|
"""CLI handler for the MCP server command"""
|
|
270
268
|
try:
|
|
271
269
|
|
|
270
|
+
if not os.getenv("VAC_CONFIG_FOLDER"):
|
|
271
|
+
raise ValueError("sunholo configuration folder must be present in config/ or via VAC_CONFIG_FOLDER")
|
|
272
|
+
|
|
272
273
|
# Create and run the MCP server
|
|
273
|
-
server =
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
274
|
+
server = SunholoMCPServer()
|
|
275
|
+
msg = {"message": "Starting Sunholo MCP server..."}
|
|
276
|
+
|
|
277
|
+
logger.info(msg)
|
|
278
|
+
console.print(msg)
|
|
279
|
+
|
|
277
280
|
asyncio.run(server.run())
|
|
278
281
|
|
|
279
282
|
except Exception as e:
|
|
@@ -292,6 +295,6 @@ def setup_mcp_subparser(subparsers):
|
|
|
292
295
|
```
|
|
293
296
|
"""
|
|
294
297
|
mcp_parser = subparsers.add_parser('mcp',
|
|
295
|
-
help='Start an Anthropic MCP server that wraps `sunholo`
|
|
298
|
+
help='Start an Anthropic MCP server that wraps `sunholo` functionality')
|
|
296
299
|
|
|
297
300
|
mcp_parser.set_defaults(func=cli_mcp)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.116.
|
|
3
|
+
Version: 0.116.2
|
|
4
4
|
Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
|
|
5
5
|
Home-page: https://github.com/sunholo-data/sunholo-py
|
|
6
|
-
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.116.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.116.2.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -190,6 +190,12 @@ pip install . --use-feature=in-tree-build
|
|
|
190
190
|
pytest tests
|
|
191
191
|
```
|
|
192
192
|
|
|
193
|
+
## Local dev
|
|
194
|
+
|
|
195
|
+
```sh
|
|
196
|
+
uv tool install --from "sunholo[cli]" sunholo --with ".[all]"
|
|
197
|
+
```
|
|
198
|
+
|
|
193
199
|
## Demos
|
|
194
200
|
|
|
195
201
|
Using https://github.com/charmbracelet/vhs
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|