# ----------------------------------------------------------------------------
#
#  Welcome to Baml! To use this generated code, please run the following:
#
#  $ pip install baml
#
# ----------------------------------------------------------------------------

# This file was generated by BAML: please do not edit it. Instead, edit the
# BAML files and re-generate this code using: baml-cli generate
# baml-cli is available with the baml package.

_file_map = {
    "clients.baml": '// Cerebras inference via OpenAI-compatible API.\n// For cache-friendly prompts, static content (system instructions, file context)\n// is placed at the front of each prompt so the provider can cache the prefix.\nclient<llm> Cerebras {\n  provider openai-generic\n  options {\n    base_url "https://api.cerebras.ai/v1"\n    model "gpt-oss-120b"\n    api_key env.CEREBRAS_API_KEY\n    max_tokens 4096\n  }\n}\n',
    "generators.baml": 'generator python {\n  output_dir "../mcp_server/indexing/baml_client"\n  output_type "python/pydantic"\n  version "0.220.0"\n}\n',
    "summarization.baml": '// ---------------------------------------------------------------------------\n// Data types\n// ---------------------------------------------------------------------------\n\nclass ChunkInput {\n  chunk_id string\n  symbol string\n  node_type string\n  line_start int\n  line_end int\n  content string\n}\n\nclass ChunkSummary {\n  chunk_id string\n  summary string\n}\n\nclass FileSummaryResult {\n  summaries ChunkSummary[]\n}\n\n// ---------------------------------------------------------------------------\n// Batch function — one API call per file\n//\n// Prompt layout (cache-friendly: static content first, dynamic last):\n//   [system]  static task instructions\n//   [user]    language + file path + full file content  ← cached prefix\n//             chunk list                                ← dynamic suffix\n// ---------------------------------------------------------------------------\n\nfunction SummarizeFileChunks(\n  language: string,\n  file_path: string,\n  file_content: string,\n  chunks: ChunkInput[]\n) -> FileSummaryResult {\n  client Cerebras\n  prompt #"\n    {{ _.role("system") }}\n    You are a concise code documentation assistant.\n    For each code chunk listed below, write 1-2 sentences describing: what it does,\n    and what it returns, produces, or causes (including side effects such as file writes,\n    printed output, or state mutations). Mention key parameters only when they\n    meaningfully affect behavior. Do not repeat or output code.\n\n    {{ _.role("user") }}\n    Language: {{ language }}\n    File: {{ file_path }}\n\n    Full source file:\n    ```{{ language }}\n    {{ file_content }}\n    ```\n\n    Summarize each of the following chunks from that file.\n    Return one ChunkSummary per chunk using the exact chunk_id provided.\n\n    Chunks to summarize:\n    {% for chunk in chunks %}\n    ---\n    chunk_id: {{ chunk.chunk_id }}\n    symbol: {{ chunk.symbol }}\n    node_type: {{ chunk.node_type }}\n    lines: {{ chunk.line_start }}-{{ chunk.line_end }}\n    ```{{ language }}\n    {{ chunk.content }}\n    ```\n    {% endfor %}\n\n    {{ ctx.output_format }}\n  "#\n}\n\n// ---------------------------------------------------------------------------\n// Single-chunk function — fallback for per-chunk summarization\n//\n// Prompt layout (cache-friendly: static instructions first, dynamic chunk last):\n//   [system]  static task instructions\n//   [user]    language + file context  ← relatively static within a file\n//             parent context           ← changes per chunk\n//             chunk content            ← most dynamic, at the end\n// ---------------------------------------------------------------------------\n\nfunction SummarizeChunkAlone(\n  language: string,\n  symbol: string,\n  line_start: int,\n  line_end: int,\n  content: string,\n  parent_context: string,\n  file_context: string\n) -> ChunkSummary {\n  client Cerebras\n  prompt #"\n    {{ _.role("system") }}\n    You are a concise code documentation assistant.\n    Write 1-2 sentences describing the code chunk: what it does, and what it\n    returns, produces, or causes (including side effects such as file writes,\n    printed output, or state mutations). Mention key parameters only when they\n    meaningfully affect behavior. Do not repeat or output code.\n\n    {{ _.role("user") }}\n    Language: {{ language }}\n    {{ file_context }}\n    {{ parent_context }}\n    Code chunk \'{{ symbol }}\' (lines {{ line_start }}-{{ line_end }}):\n    ```{{ language }}\n    {{ content }}\n    ```\n\n    Set chunk_id to "{{ symbol }}" in your response.\n\n    {{ ctx.output_format }}\n  "#\n}\n',
}


def get_baml_files():
    return _file_map
