sunholo 0.144.0__tar.gz → 0.144.1__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.144.0/src/sunholo.egg-info → sunholo-0.144.1}/PKG-INFO +1 -1
- {sunholo-0.144.0 → sunholo-0.144.1}/pyproject.toml +1 -1
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/fastapi/vac_routes.py +29 -4
- {sunholo-0.144.0 → sunholo-0.144.1/src/sunholo.egg-info}/PKG-INFO +1 -1
- {sunholo-0.144.0 → sunholo-0.144.1}/LICENSE.txt +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/MANIFEST.in +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/README.md +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/setup.cfg +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/a2a/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/a2a/agent_card.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/a2a/task_manager.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/a2a/vac_a2a_agent.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/flask/vac_routes.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/langserve.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/route.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/agents/swagger.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/archive/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/archive/archive.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/auth/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/auth/gcloud.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/auth/refresh.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/auth/run.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/azure/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/azure/auth.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/azure/blobs.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/azure/event_grid.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/bots/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/bots/discord.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/bots/webapp.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/azure.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/encode_metadata.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/images.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/process_chunker_data.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/publish.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/pubsub.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/cli.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/configs.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/deploy.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/embedder.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/swagger.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/cli/vertex.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/components/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/components/llm.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/components/retriever.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/custom_logging.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/alloydb.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/alloydb_client.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/database.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/lancedb.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/database/uuid.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/discovery_engine/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/discovery_engine/cli.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/discovery_engine/create_new.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/embedder/embed_metadata.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/excel/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/excel/plugin.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/download_folder.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/download_gcs_text.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/extract_and_sign.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/file_handling.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/genaiv2.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/images.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/init.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/process_funcs_cls.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/genai/safety.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/invoke/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/invoke/async_class.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/invoke/direct_vac_func.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/langchain_types.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/langfuse/evals.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/llamaindex/user_history.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/cli.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/cli_fastmcp.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/mcp_manager.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/stdio_http_bridge.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/vac_mcp_server.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/mcp/vac_mcp_server_fastmcp.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/ollama/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/ollama/ollama_images.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/qna/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/qna/parsers.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/qna/retry.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/senses/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/senses/stream_voice.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/agent_service.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/app.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/my_log.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/tools/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/agent/vac_service.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/project/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/project/app.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/project/my_log.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/project/vac_service.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/system_services/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/system_services/app.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/templates/system_services/my_log.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/terraform/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/terraform/tfvars_editor.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/tools/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/tools/web_browser.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/api_key.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/big_context.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/config.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/config_class.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/gcp.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/mime.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/parsers.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/proto_convert.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/utils/version.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/extensions_call.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/extensions_class.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/genai_functions.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/init.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/safety.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo/vertex/type_dict_to_json.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/src/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_async.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_async_genai2.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_chat_history.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_config.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_genai2.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_unstructured.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_vac_routes_fastapi.py +0 -0
- {sunholo-0.144.0 → sunholo-0.144.1}/tests/test_vac_routes_mcp.py +0 -0
@@ -22,6 +22,7 @@ import inspect
|
|
22
22
|
import asyncio
|
23
23
|
from typing import Dict, List, Optional, Callable, Any, TYPE_CHECKING
|
24
24
|
from functools import partial
|
25
|
+
from contextlib import asynccontextmanager
|
25
26
|
|
26
27
|
if TYPE_CHECKING:
|
27
28
|
from fastapi import FastAPI, Request, Response, HTTPException
|
@@ -253,12 +254,36 @@ class VACRoutesFastAPI:
|
|
253
254
|
methods=route.get("methods", ["GET"])
|
254
255
|
)
|
255
256
|
|
256
|
-
#
|
257
|
-
|
258
|
-
|
259
|
-
|
257
|
+
# Set up lifespan for MCP initialization
|
258
|
+
self._setup_lifespan()
|
259
|
+
|
260
|
+
def _setup_lifespan(self):
|
261
|
+
"""Set up lifespan context manager for app initialization."""
|
262
|
+
# Only set lifespan if we have MCP servers to initialize
|
263
|
+
if not (self.mcp_servers and self.mcp_client_manager):
|
264
|
+
return
|
265
|
+
|
266
|
+
# Store the existing lifespan if any
|
267
|
+
existing_lifespan = getattr(self.app, 'router', self.app).lifespan_context
|
268
|
+
|
269
|
+
@asynccontextmanager
|
270
|
+
async def lifespan(app: FastAPI):
|
271
|
+
# Startup
|
272
|
+
if not self._mcp_initialized:
|
260
273
|
await self._initialize_mcp_servers()
|
261
274
|
self._mcp_initialized = True
|
275
|
+
|
276
|
+
# Call existing lifespan startup if any
|
277
|
+
if existing_lifespan:
|
278
|
+
async with existing_lifespan(app) as lifespan_state:
|
279
|
+
yield lifespan_state
|
280
|
+
else:
|
281
|
+
yield
|
282
|
+
|
283
|
+
# Shutdown (no cleanup needed for now)
|
284
|
+
|
285
|
+
# Set the new lifespan
|
286
|
+
self.app.router.lifespan_context = lifespan
|
262
287
|
|
263
288
|
async def home(self):
|
264
289
|
"""Home endpoint."""
|
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
|
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
|