Render results as a flat JSONable object. max_snippet_lines=None → full content per result. max_snippet_lines=0 → file path and line range only, no content. max_snippet_lines=N>0 → first N lines of content.
(query: str, results: list[SearchResult], max_snippet_lines: int | None = None)
| 33 | |
| 34 | |
| 35 | def format_results(query: str, results: list[SearchResult], max_snippet_lines: int | None = None) -> dict[str, Any]: |
| 36 | """Render results as a flat JSONable object. |
| 37 | |
| 38 | max_snippet_lines=None → full content per result. |
| 39 | max_snippet_lines=0 → file path and line range only, no content. |
| 40 | max_snippet_lines=N>0 → first N lines of content. |
| 41 | """ |
| 42 | formatted = [] |
| 43 | for r in results: |
| 44 | entry: dict[str, Any] = { |
| 45 | "file_path": r.chunk.file_path, |
| 46 | "start_line": r.chunk.start_line, |
| 47 | "end_line": r.chunk.end_line, |
| 48 | "score": r.score, |
| 49 | } |
| 50 | if max_snippet_lines is None: |
| 51 | entry["content"] = r.chunk.content |
| 52 | elif max_snippet_lines > 0: |
| 53 | lines = r.chunk.content.splitlines() |
| 54 | entry["content"] = "\n".join(lines[:max_snippet_lines]) |
| 55 | formatted.append(entry) |
| 56 | return {"query": query, "results": formatted} |
| 57 | |
| 58 | |
| 59 | def resolve_model_name() -> str: |
no outgoing calls