sunholo 0.131.3__tar.gz → 0.131.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. {sunholo-0.131.3/src/sunholo.egg-info → sunholo-0.131.5}/PKG-INFO +2 -2
  2. {sunholo-0.131.3 → sunholo-0.131.5}/pyproject.toml +2 -2
  3. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/discovery_engine/cli.py +30 -13
  4. {sunholo-0.131.3 → sunholo-0.131.5/src/sunholo.egg-info}/PKG-INFO +2 -2
  5. {sunholo-0.131.3 → sunholo-0.131.5}/LICENSE.txt +0 -0
  6. {sunholo-0.131.3 → sunholo-0.131.5}/MANIFEST.in +0 -0
  7. {sunholo-0.131.3 → sunholo-0.131.5}/README.md +0 -0
  8. {sunholo-0.131.3 → sunholo-0.131.5}/setup.cfg +0 -0
  9. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/__init__.py +0 -0
  10. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/__init__.py +0 -0
  11. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/chat_history.py +0 -0
  12. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/dispatch_to_qa.py +0 -0
  13. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/fastapi/__init__.py +0 -0
  14. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/fastapi/base.py +0 -0
  15. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  16. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/flask/__init__.py +0 -0
  17. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/flask/base.py +0 -0
  18. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/flask/qna_routes.py +0 -0
  19. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/flask/vac_routes.py +0 -0
  20. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/langserve.py +0 -0
  21. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/pubsub.py +0 -0
  22. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/route.py +0 -0
  23. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/special_commands.py +0 -0
  24. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/agents/swagger.py +0 -0
  25. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/archive/__init__.py +0 -0
  26. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/archive/archive.py +0 -0
  27. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/auth/__init__.py +0 -0
  28. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/auth/gcloud.py +0 -0
  29. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/auth/refresh.py +0 -0
  30. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/auth/run.py +0 -0
  31. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/azure/__init__.py +0 -0
  32. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/azure/auth.py +0 -0
  33. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/azure/blobs.py +0 -0
  34. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/azure/event_grid.py +0 -0
  35. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/bots/__init__.py +0 -0
  36. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/bots/discord.py +0 -0
  37. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/bots/github_webhook.py +0 -0
  38. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/bots/webapp.py +0 -0
  39. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/__init__.py +0 -0
  40. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/azure.py +0 -0
  41. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/doc_handling.py +0 -0
  42. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/encode_metadata.py +0 -0
  43. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/images.py +0 -0
  44. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/loaders.py +0 -0
  45. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/message_data.py +0 -0
  46. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/pdfs.py +0 -0
  47. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/process_chunker_data.py +0 -0
  48. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/publish.py +0 -0
  49. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/pubsub.py +0 -0
  50. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/chunker/splitter.py +0 -0
  51. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/__init__.py +0 -0
  52. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/chat_vac.py +0 -0
  53. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/cli.py +0 -0
  54. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/cli_init.py +0 -0
  55. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/configs.py +0 -0
  56. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/deploy.py +0 -0
  57. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/embedder.py +0 -0
  58. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/merge_texts.py +0 -0
  59. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/run_proxy.py +0 -0
  60. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/sun_rich.py +0 -0
  61. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/swagger.py +0 -0
  62. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/cli/vertex.py +0 -0
  63. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/components/__init__.py +0 -0
  64. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/components/llm.py +0 -0
  65. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/components/retriever.py +0 -0
  66. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/components/vectorstore.py +0 -0
  67. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/custom_logging.py +0 -0
  68. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/__init__.py +0 -0
  69. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/alloydb.py +0 -0
  70. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/alloydb_client.py +0 -0
  71. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/database.py +0 -0
  72. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/lancedb.py +0 -0
  73. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  74. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  75. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  76. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  77. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  78. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/sql/sb/setup.sql +0 -0
  79. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/static_dbs.py +0 -0
  80. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/database/uuid.py +0 -0
  81. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/discovery_engine/__init__.py +0 -0
  82. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
  83. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/discovery_engine/create_new.py +0 -0
  84. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  85. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  86. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/embedder/__init__.py +0 -0
  87. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/embedder/embed_chunk.py +0 -0
  88. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/embedder/embed_metadata.py +0 -0
  89. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/excel/__init__.py +0 -0
  90. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/excel/plugin.py +0 -0
  91. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/gcs/__init__.py +0 -0
  92. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/gcs/add_file.py +0 -0
  93. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/gcs/download_folder.py +0 -0
  94. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/gcs/download_url.py +0 -0
  95. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/gcs/extract_and_sign.py +0 -0
  96. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/gcs/metadata.py +0 -0
  97. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/__init__.py +0 -0
  98. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/file_handling.py +0 -0
  99. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/genaiv2.py +0 -0
  100. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/images.py +0 -0
  101. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/init.py +0 -0
  102. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/process_funcs_cls.py +0 -0
  103. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/genai/safety.py +0 -0
  104. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/invoke/__init__.py +0 -0
  105. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/invoke/async_class.py +0 -0
  106. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/invoke/direct_vac_func.py +0 -0
  107. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  108. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/langchain_types.py +0 -0
  109. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/langfuse/__init__.py +0 -0
  110. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/langfuse/callback.py +0 -0
  111. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/langfuse/evals.py +0 -0
  112. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/langfuse/prompts.py +0 -0
  113. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/llamaindex/__init__.py +0 -0
  114. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/llamaindex/get_files.py +0 -0
  115. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/llamaindex/import_files.py +0 -0
  116. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  117. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/llamaindex/user_history.py +0 -0
  118. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/lookup/__init__.py +0 -0
  119. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/lookup/model_lookup.yaml +0 -0
  120. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/mcp/__init__.py +0 -0
  121. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/mcp/cli.py +0 -0
  122. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/ollama/__init__.py +0 -0
  123. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/ollama/ollama_images.py +0 -0
  124. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/pubsub/__init__.py +0 -0
  125. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/pubsub/process_pubsub.py +0 -0
  126. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  127. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/qna/__init__.py +0 -0
  128. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/qna/parsers.py +0 -0
  129. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/qna/retry.py +0 -0
  130. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/senses/__init__.py +0 -0
  131. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/senses/stream_voice.py +0 -0
  132. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/streaming/__init__.py +0 -0
  133. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/streaming/content_buffer.py +0 -0
  134. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/streaming/langserve.py +0 -0
  135. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/streaming/stream_lookup.py +0 -0
  136. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/streaming/streaming.py +0 -0
  137. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/summarise/__init__.py +0 -0
  138. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/summarise/summarise.py +0 -0
  139. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/__init__.py +0 -0
  140. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/agent_service.py +0 -0
  141. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/app.py +0 -0
  142. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/my_log.py +0 -0
  143. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  144. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  145. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/agent/vac_service.py +0 -0
  146. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/project/__init__.py +0 -0
  147. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/project/app.py +0 -0
  148. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/project/my_log.py +0 -0
  149. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/project/vac_service.py +0 -0
  150. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/system_services/__init__.py +0 -0
  151. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/system_services/app.py +0 -0
  152. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/templates/system_services/my_log.py +0 -0
  153. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/terraform/__init__.py +0 -0
  154. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/terraform/tfvars_editor.py +0 -0
  155. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/tools/__init__.py +0 -0
  156. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/tools/web_browser.py +0 -0
  157. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/__init__.py +0 -0
  158. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/api_key.py +0 -0
  159. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/big_context.py +0 -0
  160. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/config.py +0 -0
  161. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/config_class.py +0 -0
  162. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/config_schema.py +0 -0
  163. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/gcp.py +0 -0
  164. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/gcp_project.py +0 -0
  165. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/mime.py +0 -0
  166. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/parsers.py +0 -0
  167. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/timedelta.py +0 -0
  168. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/user_ids.py +0 -0
  169. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/utils/version.py +0 -0
  170. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/__init__.py +0 -0
  171. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/extensions_call.py +0 -0
  172. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/extensions_class.py +0 -0
  173. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/genai_functions.py +0 -0
  174. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/init.py +0 -0
  175. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/memory_tools.py +0 -0
  176. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/safety.py +0 -0
  177. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  178. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo.egg-info/SOURCES.txt +0 -0
  179. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo.egg-info/dependency_links.txt +0 -0
  180. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo.egg-info/entry_points.txt +0 -0
  181. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo.egg-info/requires.txt +0 -0
  182. {sunholo-0.131.3 → sunholo-0.131.5}/src/sunholo.egg-info/top_level.txt +0 -0
  183. {sunholo-0.131.3 → sunholo-0.131.5}/tests/test_async.py +0 -0
  184. {sunholo-0.131.3 → sunholo-0.131.5}/tests/test_async_genai2.py +0 -0
  185. {sunholo-0.131.3 → sunholo-0.131.5}/tests/test_chat_history.py +0 -0
  186. {sunholo-0.131.3 → sunholo-0.131.5}/tests/test_config.py +0 -0
  187. {sunholo-0.131.3 → sunholo-0.131.5}/tests/test_genai2.py +0 -0
  188. {sunholo-0.131.3 → sunholo-0.131.5}/tests/test_unstructured.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.131.3
4
- Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
3
+ Version: 0.131.5
4
+ Summary: AI DevOps - a package to help deploy GenAI to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
7
7
  Project-URL: Homepage, https://github.com/sunholo-data/sunholo-py
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.131.3"
8
- description = "Large Language Model DevOps - a package to help deploy LLMs to the Cloud."
7
+ version = "0.131.5"
8
+ description = "AI DevOps - a package to help deploy GenAI to the Cloud."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  license = { text = "Apache License, Version 2.0" }
@@ -7,6 +7,8 @@ import traceback # For detailed error logging
7
7
  try:
8
8
  # Assuming sun_rich is in your project structure relative to this file
9
9
  from ..cli.sun_rich import console
10
+ from google.protobuf.json_format import MessageToDict
11
+
10
12
  except ImportError:
11
13
  # Fallback if rich is not available or path is wrong
12
14
  class ConsoleFallback:
@@ -340,17 +342,31 @@ def search_engine_command(args):
340
342
  console.print("\n[bold green]Search Summary:[/bold green]")
341
343
  console.print(page.summary.summary_text)
342
344
  if args.include_citations and hasattr(page.summary, 'summary_with_metadata') and page.summary.summary_with_metadata:
343
- citations = page.summary.summary_with_metadata.citations
344
- if citations:
345
- console.print("[bold cyan]Citations:[/bold cyan]")
346
- for i, citation in enumerate(citations):
347
- source_info = ", ".join([f"'{s.citation_source}'" for s in citation.sources]) if citation.sources else "N/A"
348
- console.print(f" [{i+1}] Sources: {source_info}")
349
- references = page.summary.summary_with_metadata.references
350
- if references:
351
- console.print("[bold cyan]References:[/bold cyan]")
352
- for ref in references:
353
- console.print(f" - Title: {getattr(ref, 'title', 'N/A')}, URI: {getattr(ref, 'uri', 'N/A')}") # Adjust based on actual reference structure
345
+ citation_metadata = page.summary.summary_with_metadata.citation_metadata
346
+ if citation_metadata and hasattr(citation_metadata, 'citations'):
347
+ # Get the actual list of Citation objects
348
+ citation_list = citation_metadata.citations
349
+ console.print("[bold cyan]Citations:[/bold cyan]")
350
+ for i, citation in enumerate(citation_list):
351
+ # citation is now a Citation object with start_index, end_index, sources
352
+ source_details = []
353
+ # Check if the citation has sources and iterate through them
354
+ if hasattr(citation, 'sources') and citation.sources:
355
+ for source in citation.sources:
356
+ # source is a CitationSource object with reference_index
357
+ ref_idx = getattr(source, 'reference_index', 'N/A')
358
+ source_details.append(f"RefIdx:{ref_idx}") # Append details of each source
359
+
360
+ source_info = ", ".join(source_details) if source_details else "No Source Info"
361
+ start_idx = getattr(citation, 'start_index', 'N/A')
362
+ end_idx = getattr(citation, 'end_index', 'N/A')
363
+ console.print(f" Citation {i+1}: Segment [{start_idx}-{end_idx}], Sources [{source_info}]")
364
+
365
+ references = page.summary.summary_with_metadata.references
366
+ if references:
367
+ console.print("[bold cyan]References:[/bold cyan]")
368
+ for ref in references:
369
+ console.print(f" - Title: {getattr(ref, 'title', 'N/A')}, URI: {getattr(ref, 'uri', 'N/A')}") # Adjust based on actual reference structure
354
370
 
355
371
  console.print("-" * 20)
356
372
 
@@ -369,9 +385,10 @@ def search_engine_command(args):
369
385
  if doc.struct_data:
370
386
  try:
371
387
  # Convert Struct to dict for nice printing
372
- struct_dict = dict(doc.struct_data)
388
+ struct_dict = MessageToDict(doc.struct_data._pb)
373
389
  console.print(f" Metadata: {json.dumps(struct_dict, indent=2)}")
374
- except Exception:
390
+ except Exception as json_err:
391
+ console.print(f"[yellow] Warning: Could not convert metadata Struct to JSON: {json_err}[/yellow]")
375
392
  console.print(f" Metadata: {doc.struct_data}") # Fallback
376
393
 
377
394
  # Display Snippets if requested and available
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.131.3
4
- Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
3
+ Version: 0.131.5
4
+ Summary: AI DevOps - a package to help deploy GenAI to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
7
7
  Project-URL: Homepage, https://github.com/sunholo-data/sunholo-py
File without changes
File without changes
File without changes
File without changes
File without changes