sunholo 0.131.4__py3-none-any.whl → 0.131.6__py3-none-any.whl
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/discovery_engine/cli.py +68 -35
 - {sunholo-0.131.4.dist-info → sunholo-0.131.6.dist-info}/METADATA +1 -1
 - {sunholo-0.131.4.dist-info → sunholo-0.131.6.dist-info}/RECORD +7 -7
 - {sunholo-0.131.4.dist-info → sunholo-0.131.6.dist-info}/WHEEL +0 -0
 - {sunholo-0.131.4.dist-info → sunholo-0.131.6.dist-info}/entry_points.txt +0 -0
 - {sunholo-0.131.4.dist-info → sunholo-0.131.6.dist-info}/licenses/LICENSE.txt +0 -0
 - {sunholo-0.131.4.dist-info → sunholo-0.131.6.dist-info}/top_level.txt +0 -0
 
    
        sunholo/discovery_engine/cli.py
    CHANGED
    
    | 
         @@ -342,50 +342,83 @@ def search_engine_command(args): 
     | 
|
| 
       342 
342 
     | 
    
         
             
                                    console.print("\n[bold green]Search Summary:[/bold green]")
         
     | 
| 
       343 
343 
     | 
    
         
             
                                    console.print(page.summary.summary_text)
         
     | 
| 
       344 
344 
     | 
    
         
             
                                    if args.include_citations and hasattr(page.summary, 'summary_with_metadata') and page.summary.summary_with_metadata:
         
     | 
| 
       345 
     | 
    
         
            -
             
     | 
| 
       346 
     | 
    
         
            -
             
     | 
| 
       347 
     | 
    
         
            -
             
     | 
| 
       348 
     | 
    
         
            -
             
     | 
| 
       349 
     | 
    
         
            -
             
     | 
| 
       350 
     | 
    
         
            -
             
     | 
| 
       351 
     | 
    
         
            -
             
     | 
| 
       352 
     | 
    
         
            -
             
     | 
| 
       353 
     | 
    
         
            -
             
     | 
| 
       354 
     | 
    
         
            -
             
     | 
| 
       355 
     | 
    
         
            -
             
     | 
| 
      
 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
         
     | 
| 
       356 
370 
     | 
    
         | 
| 
       357 
371 
     | 
    
         
             
                                    console.print("-" * 20)
         
     | 
| 
       358 
372 
     | 
    
         | 
| 
       359 
     | 
    
         
            -
             
     | 
| 
       360 
373 
     | 
    
         
             
                                # Print Document Results (available on the page level)
         
     | 
| 
       361 
374 
     | 
    
         
             
                                if hasattr(page, 'results') and page.results:
         
     | 
| 
       362 
     | 
    
         
            -
             
     | 
| 
       363 
     | 
    
         
            -
             
     | 
| 
       364 
     | 
    
         
            -
             
     | 
| 
       365 
     | 
    
         
            -
             
     | 
| 
       366 
     | 
    
         
            -
             
     | 
| 
       367 
     | 
    
         
            -
             
     | 
| 
       368 
     | 
    
         
            -
             
     | 
| 
       369 
     | 
    
         
            -
             
     | 
| 
       370 
     | 
    
         
            -
             
     | 
| 
       371 
     | 
    
         
            -
             
     | 
| 
       372 
     | 
    
         
            -
             
     | 
| 
       373 
     | 
    
         
            -
             
     | 
| 
       374 
     | 
    
         
            -
             
     | 
| 
       375 
     | 
    
         
            -
             
     | 
| 
       376 
     | 
    
         
            -
             
     | 
| 
       377 
     | 
    
         
            -
             
     | 
| 
       378 
     | 
    
         
            -
             
     | 
| 
       379 
     | 
    
         
            -
             
     | 
| 
       380 
     | 
    
         
            -
             
     | 
| 
       381 
     | 
    
         
            -
             
     | 
| 
      
 375 
     | 
    
         
            +
                                    console.print(f"[bold blue]Documents Found ({len(page.results)} on this page):[/bold blue]")
         
     | 
| 
      
 376 
     | 
    
         
            +
                                    for i, result in enumerate(page.results):
         
     | 
| 
      
 377 
     | 
    
         
            +
                                        results_found_on_any_page = True
         
     | 
| 
      
 378 
     | 
    
         
            +
                                        results_found_on_this_page = True
         
     | 
| 
      
 379 
     | 
    
         
            +
                                        console.print(f"\n[bold]Result {i+1}:[/bold]")
         
     | 
| 
      
 380 
     | 
    
         
            +
                                        doc = result.document
         
     | 
| 
      
 381 
     | 
    
         
            +
                                        console.print(f"  ID: {doc.id}")
         
     | 
| 
      
 382 
     | 
    
         
            +
                                        console.print(f"  Name: {doc.name}")
         
     | 
| 
      
 383 
     | 
    
         
            +
                                        # Display structData if present
         
     | 
| 
      
 384 
     | 
    
         
            +
                                        if doc.struct_data:
         
     | 
| 
      
 385 
     | 
    
         
            +
                                            # Attempt 1: Preferred - Use proto-plus .to_json() if available
         
     | 
| 
      
 386 
     | 
    
         
            +
                                            if hasattr(doc.struct_data, 'to_json'):
         
     | 
| 
      
 387 
     | 
    
         
            +
                                                console.print(f"[yellow]  to_json[/yellow]")
         
     | 
| 
      
 388 
     | 
    
         
            +
                                                # Pass indent directly if the method supports it
         
     | 
| 
      
 389 
     | 
    
         
            +
                                                try:
         
     | 
| 
      
 390 
     | 
    
         
            +
                                                    metadata_output = doc.struct_data.to_json(indent=2)
         
     | 
| 
      
 391 
     | 
    
         
            +
                                                except TypeError: # In case to_json doesn't accept indent
         
     | 
| 
      
 392 
     | 
    
         
            +
                                                    metadata_output = doc.struct_data.to_json()
         
     | 
| 
      
 393 
     | 
    
         
            +
                                                    # Optionally re-parse and indent if needed, but often okay as is
         
     | 
| 
      
 394 
     | 
    
         
            +
                                                    # parsed_json = json.loads(metadata_output)
         
     | 
| 
      
 395 
     | 
    
         
            +
                                                    # metadata_output = json.dumps(parsed_json, indent=2)
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
      
 398 
     | 
    
         
            +
                                            # Attempt 2: Use proto-plus .to_dict() then json.dumps
         
     | 
| 
      
 399 
     | 
    
         
            +
                                            elif hasattr(doc.struct_data, 'to_dict'):
         
     | 
| 
      
 400 
     | 
    
         
            +
                                                console.print(f"[yellow]  to_dict[/yellow]")
         
     | 
| 
      
 401 
     | 
    
         
            +
             
     | 
| 
      
 402 
     | 
    
         
            +
                                                struct_dict = doc.struct_data.to_dict()
         
     | 
| 
      
 403 
     | 
    
         
            +
                                                metadata_output = json.dumps(struct_dict, indent=2)
         
     | 
| 
      
 404 
     | 
    
         
            +
                                            elif MessageToDict:
         
     | 
| 
      
 405 
     | 
    
         
            +
                                                try:
         
     | 
| 
      
 406 
     | 
    
         
            +
                                                    # Convert Struct to dict for nice printing
         
     | 
| 
      
 407 
     | 
    
         
            +
                                                    struct_dict = MessageToDict(doc.struct_data._pb)
         
     | 
| 
      
 408 
     | 
    
         
            +
                                                except Exception as json_err:
         
     | 
| 
      
 409 
     | 
    
         
            +
                                                    console.print(f"[yellow]  Warning: Could not convert metadata Struct to JSON: {json_err}[/yellow]")
         
     | 
| 
      
 410 
     | 
    
         
            +
                                                    metadata_output = struct_dict
         
     | 
| 
      
 411 
     | 
    
         
            +
                                        console.print(f"  Metadata: {json.dumps(metadata_output, indent=2)}")
         
     | 
| 
      
 412 
     | 
    
         
            +
                                        # Display Snippets if requested and available
         
     | 
| 
      
 413 
     | 
    
         
            +
                                        if args.return_snippet and 'snippets' in doc.derived_struct_data:
         
     | 
| 
       382 
414 
     | 
    
         
             
                                               console.print("[bold cyan]  Snippets:[/bold cyan]")
         
     | 
| 
       383 
415 
     | 
    
         
             
                                               for snippet in doc.derived_struct_data['snippets']:
         
     | 
| 
       384 
416 
     | 
    
         
             
                                                    console.print(f"    - {snippet.get('snippet', 'N/A').strip()}") # Adjust key if needed
         
     | 
| 
       385 
     | 
    
         
            -
             
     | 
| 
      
 417 
     | 
    
         
            +
                                        elif args.return_snippet:
         
     | 
| 
       386 
418 
     | 
    
         
             
                                               console.print("[yellow]  (Snippets requested but not found in result)[/yellow]")
         
     | 
| 
       387 
     | 
    
         
            -
             
     | 
| 
       388 
     | 
    
         
            -
             
     | 
| 
      
 419 
     | 
    
         
            +
                                        console.print("-" * 5)
         
     | 
| 
      
 420 
     | 
    
         
            +
                                    
         
     | 
| 
      
 421 
     | 
    
         
            +
                                    console.print("-" * 20) # End of results list for page
         
     | 
| 
       389 
422 
     | 
    
         | 
| 
       390 
423 
     | 
    
         
             
                                if not results_found_on_this_page:
         
     | 
| 
       391 
424 
     | 
    
         
             
                                     console.print("[yellow](No summary or document results on this page)[/yellow]")
         
     | 
| 
         @@ -73,7 +73,7 @@ sunholo/database/sql/sb/return_sources.sql,sha256=89KAnxfK8n_qGK9jy1OQT8f9n4uYUt 
     | 
|
| 
       73 
73 
     | 
    
         
             
            sunholo/database/sql/sb/setup.sql,sha256=CvoFvZQev2uWjmFa3aj3m3iuPFzAAJZ0S7Qi3L3-zZI,89
         
     | 
| 
       74 
74 
     | 
    
         
             
            sunholo/discovery_engine/__init__.py,sha256=hLgqRDJ22Aov9o2QjAEfsVgnL3kMdM-g5p8RJ9OyKdQ,130
         
     | 
| 
       75 
75 
     | 
    
         
             
            sunholo/discovery_engine/chunker_handler.py,sha256=wkvXl4rFtYfN6AZUKdW9_QD49Whf77BukDbO82UwlAg,7480
         
     | 
| 
       76 
     | 
    
         
            -
            sunholo/discovery_engine/cli.py,sha256= 
     | 
| 
      
 76 
     | 
    
         
            +
            sunholo/discovery_engine/cli.py,sha256=NpyOJY8lBb2WLy1Up9JZF917wRsCKbvFk-sLrpS4i7g,32817
         
     | 
| 
       77 
77 
     | 
    
         
             
            sunholo/discovery_engine/create_new.py,sha256=WUi4_xh_dFaGX3xA9jkNKZhaR6LCELjMPeRb0hyj4FU,1226
         
     | 
| 
       78 
78 
     | 
    
         
             
            sunholo/discovery_engine/discovery_engine_client.py,sha256=nV4loBBnOqGPRlEbFIFRJEB6cXKDVgJOMRMdf4-v510,51775
         
     | 
| 
       79 
79 
     | 
    
         
             
            sunholo/discovery_engine/get_ai_search_chunks.py,sha256=I6Dt1CznqEvE7XIZ2PkLqopmjpO96iVEWJJqL5cJjOU,5554
         
     | 
| 
         @@ -168,9 +168,9 @@ sunholo/vertex/init.py,sha256=1OQwcPBKZYBTDPdyU7IM4X4OmiXLdsNV30C-fee2scQ,2875 
     | 
|
| 
       168 
168 
     | 
    
         
             
            sunholo/vertex/memory_tools.py,sha256=tBZxqVZ4InTmdBvLlOYwoSEWu4-kGquc-gxDwZCC4FA,7667
         
     | 
| 
       169 
169 
     | 
    
         
             
            sunholo/vertex/safety.py,sha256=S9PgQT1O_BQAkcqauWncRJaydiP8Q_Jzmu9gxYfy1VA,2482
         
     | 
| 
       170 
170 
     | 
    
         
             
            sunholo/vertex/type_dict_to_json.py,sha256=uTzL4o9tJRao4u-gJOFcACgWGkBOtqACmb6ihvCErL8,4694
         
     | 
| 
       171 
     | 
    
         
            -
            sunholo-0.131. 
     | 
| 
       172 
     | 
    
         
            -
            sunholo-0.131. 
     | 
| 
       173 
     | 
    
         
            -
            sunholo-0.131. 
     | 
| 
       174 
     | 
    
         
            -
            sunholo-0.131. 
     | 
| 
       175 
     | 
    
         
            -
            sunholo-0.131. 
     | 
| 
       176 
     | 
    
         
            -
            sunholo-0.131. 
     | 
| 
      
 171 
     | 
    
         
            +
            sunholo-0.131.6.dist-info/licenses/LICENSE.txt,sha256=SdE3QjnD3GEmqqg9EX3TM9f7WmtOzqS1KJve8rhbYmU,11345
         
     | 
| 
      
 172 
     | 
    
         
            +
            sunholo-0.131.6.dist-info/METADATA,sha256=A8PX4p1pS-ne9BwFKrs2YHIbfyWMzFSjue114EKiu18,10067
         
     | 
| 
      
 173 
     | 
    
         
            +
            sunholo-0.131.6.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
         
     | 
| 
      
 174 
     | 
    
         
            +
            sunholo-0.131.6.dist-info/entry_points.txt,sha256=bZuN5AIHingMPt4Ro1b_T-FnQvZ3teBes-3OyO0asl4,49
         
     | 
| 
      
 175 
     | 
    
         
            +
            sunholo-0.131.6.dist-info/top_level.txt,sha256=wt5tadn5--5JrZsjJz2LceoUvcrIvxjHJe-RxuudxAk,8
         
     | 
| 
      
 176 
     | 
    
         
            +
            sunholo-0.131.6.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |